2. 佛山广工大数控装备研究院,广东 佛山 528225
2. Guangdong University of Technology Numerical Control Equipment Research Institute, Foshan 528225, China
光伏产业是我国新能源产业的中坚,国家十三五规划将继续大力发展光伏产业. 而光伏组件制造是光伏产业的主要组成部分. 光伏组件的生产制造工艺包括太阳能电池片检测分选、电池片串焊、汇流带焊接、排版铺设、中测、层压、装框、接线盒安装以及组件终测等环节,整个生产工艺中基本上每个工艺环节都涉及视觉检测技术,尤其在光伏组件的检测、分选、串焊等工艺环节[1],因此视觉检测技术的攻关程度将直接影响着整个光伏组件制造的生产效率. 本文主要研究太阳能电池片串焊工艺.
太阳能全自动串焊机主要用于电池片的自动焊接. 在串焊前有一道重要的工序是电池片的纠偏定位,电池片的定位精度直接影响串焊机的焊接效果. 传统的定位通常以电池片边缘作为定位基准进行机械纠偏,由于电池片的特性极薄易碎,这种定位方式有很多缺陷,譬如:耗时长,拖慢了生产速度;增加了一次工件吸取和放置,增大了工件的损坏几率;对于偏差较大的工件,机械校正工位可能会将工件挤碎;无法适应实际生产线中工件尺寸常常会变化,等等[2]. 而目前存在的视觉解决方案多采用一个专门的视觉定位工位,需要将电池片放置在专门的定位工位进行停机离线定位,同样无法解决矫正耗时和工件损坏的问题. 针对这一生产问题,本文提出了一种硅晶片视觉定位及矫正系统,用工业相机、图像处理软件和运动控制机构替代传统的机械校正工位. 其优势是提高了生产的柔性和自动化程度,在大批量工业生产中可大大提高生产效率,并且机器视觉易于实现信息集成,是实现计算机集成制造的基础技术. 本文研发的微薄硅晶片高速视觉定位及矫正系统于2016年在广东佛山某企业已正式投入使用. 在实际生产应用中,定位矫正过程在100 ms以内,定位精度达到0.1 mm,角度精度达到0.1°,精度比现有机械矫正方式提高1倍以上,在显著提高生产效率的同时提高了串焊精度.
1 视觉定位及矫正系统设计 1.1 视觉系统硬件设计本太阳能硅晶片视觉定位及矫正系统主要由图像采集系统、图像处理系统、运动控制系统和动作执行机构几部分构成,如图1所示. 其中:
![]() |
图 1 系统结构 Figure 1 System structure |
(1) 图像采集系统:主要包括德国映美精DMK 23GP031型号的千兆网面阵CCD工业相机、日本CCS LED同轴环形光源;相机置于同轴光源正下方,垂直向上拍摄待检电池片.
(2) 图像处理系统:主要包括Lenovo工控机、人机交互界面;工业相机通过 1394B接口与工控机相连接,将采集的图像数据传输给工控机处理,人机交互界面使用C#语言搭建.
(3) 运动控制系统:主要包括DELTA (DVP40 EH00T3) PLC和伺服电机驱动器;PLC作为动作执行机构的控制中枢.
(4) 动作执行机构:执行机构由串焊机的三轴机械手以及步进电机等组成. 计算机将控制命令发送PLC,PLC发出指令控制电机和机械手动作.
同时,本文还设计了一种太阳能硅晶片串焊前视觉定位及角度检测设备,包括:支撑架;固定在支撑架顶端的Y 轴滑轨;安装在Y 轴滑轨上且可沿Y 轴滑轨方向移动的X 轴滑轨;安装在X 轴滑轨上且可沿X 轴滑轨方向移动的机械手;安装在Y 轴滑轨下方的支架台板;安装在支架台板上的成像机构;安装在成像机构右侧的电池片矫正机构,以及安装在电池片矫正机构右侧的上料盘. 模型图如图2所示.
![]() |
图 2 串焊前视觉定位矫正上料机构模型 Figure 2 String of welding visual orientation correction before feeding mechanism model |
流程如图3所示.
![]() |
图 3 视觉定位及矫正系统流程 Figure 3 Visual position and correction system process |
本文视觉定位及矫正系统工作流程分为3步:(1) 系统初始化,电池片放置于标准工位,由机械定位后,机械手抓取电池片移动至检测位,相机采集图像后通过软件处理得到电池片的标准位置和角度,作为之后处理的标准值. (2) 待系统连续运行后,机械手在上料位抓取电池片,直接移动至检测位,上位机软件处理,得到当前电池片的位置和角度. (3) 当前值与初始化得到的标准值作差,差值进一步处理,得到实际偏差;工控机的软件处理程序将该偏差值通过以太网发送给PLC,PLC控制机械手平移和旋转对电池片进行位置和角度矫正,接着进行下道工序的串焊.
2 视觉系统软件设计该太阳能电池片视觉系统软件设计包括软件界面模块、图像处理算法模块和数据通信模块.
2.1 软件界面模块软件界面基于微软基础库类(Microsoft Foundation Classes,MFC)在VS2013开发,如图4所示为某企业设计的太阳能电池片位置及角度矫正系统. 界面包括用户模块和显示模块. 用户模块主要用于用户管理、模板选取以及系统调试和通讯调试;显示模块主要用于图像显示、处理结果和统计结果的输出. 经现场测试,该软件能够快速准确地计算电池片位置和角度偏差,性能良好.
![]() |
图 4 软件显示界面 Figure 4 Software display |
在该电池片定位及矫正系统中,很重要的一部分工作是对实时采集的电池片位置和角度数据进行显示、查询、统计、计算、生成报表分析等[3],其中涉及的主要任务是对电池片图像位置和角度的读取和写入、实际偏差的计算,即与数据库系统进行交互. 本模块采用动态SQL[4],在运行时以字符串形式构建SQL查询、提交查询,然后把结果存入程序变量中,每次一个元组,采用Visual C++ 和SQL2014 接口语言直接调用和修改数据库内容. UI界面中处理结果列表和统计结果列表,用以存放计算机每次读取的图像位置和角度信息,处理结果列表包括x位置、y位置、角度和处理时间. 统计结果列表包括x最大偏差、y最大偏差、角度最大偏差和最大耗时. 如图5所示.
![]() |
图 5 软件数据界面 Figure 5 Software data interface |
太阳能电池片串焊前视觉定位及矫正的核心是图像处理. 本文首先采用Canny算子获得图像边缘,接着通过链码跟踪以及PCA (Principal Component Analysis)获得“主元”,在其基础上基于线段聚类的直线检测算法对直线进行拟合,经过测试,可以很好地满足电池片串焊前的视觉定位. 算法流程图如图6所示.
![]() |
图 6 算法流程 Figure 6 Algorithm process |
(1) 选定ROI区域. 本文需要定位检测的是156 mm×156 mm的多晶硅电池片. 当前视觉定位检测多采用相机对电池片全局拍摄,但电池片由于生产工艺、装载运输、现场检测环境等客观因素的影响,导致电池片表面有严重的划痕和噪声,加之表面格栅的影响,拍摄范围增大,误差随之增大. 所以,为定位准确、减小误差,本文选取电池片长宽各一半(78 mm×78 mm),即电池片1/4区域作为图像处理区域.
(2) 二值化处理. 将ROI区域二值化,进Canny边缘检测,为后续电池片定位做准备. 如图7所示.
![]() |
图 7 预处理效果图 Figure 7 Pretreatment effect diagram |
本文通过比较经典的直线特征提取算法,包括Hough变换及其改进算法、相位编组算法、基于LSD (Line Segment Detector)的直线提取算法[5-7],发现霍夫变换直线的本质是穷尽式搜索,计算量很大,不利于实际检测作业;LSD是一种局部提取直线的算法,速度比Hough要快,但是有局部算法的缺点,比如两直线若相交必有至少一条直线被割裂为两条,对于长线段被遮挡、局部模糊等原因经常割裂为多条直线;相位编组算法利用了局部方向信息并拥有较快的计算速度,但在背景复杂图像上的应用表明,相位编组算法会存在严重的误检或漏检[8].
针对以上算法存在的问题,本文提出了一种基于Freeman链码跟踪、主元分析和线段聚类[9]鲁棒性极强的方法来检测直线. 实验结果表明,该算法速度较快,检测结果较理想.
第1步:对二值化图像进行8领域Freeman链码跟踪. 跟踪canny边缘检测后的边缘点并将其生成链表,在分叉处优先选择可能在同一直线上的边缘点.
第2步:利用主元分析对边缘像素点集进行简化,拟合出单元线段. 这种方法可以有效地找出数据中最主要的元素和结构,去除噪声和冗余[10]. 经过多次实验,发现主元方向提取在Canny检测到的边缘点进行,效果较好.以边缘上一点A为中心,
${{w}_{11}} = \frac{1}{n}\mathop \sum \limits_{t = 1}^n {\left( {{{x}_t} - {{x}_m}} \right)^2},$ | (1) |
${{w}_{12}} = {{w}_{21}} = \frac{1}{n}\mathop \sum \limits_{t = 1}^n \left( {{{x}_t} - {{x}_k}} \right)\left( {{{y}_t} - {{y}_k}} \right),$ | (2) |
${{w}_{22}} = \frac{1}{n}\mathop \sum \limits_{t = 1}^n {\left( {{{y}_t} - {{y}_m}} \right)^2}.$ | (3) |
式(2)中
${{x}_k} = \frac{1}{n}\mathop \sum \limits_{t = 1}^n {{x}_t},$ | (4) |
${{y}_k} = \frac{1}{n}\mathop \sum \limits_{t = 1}^n {{y}_t}.$ | (5) |
通过上述协方差矩阵可以得到特征向量和特征值,其中特征向量代表数据集中点的主分布方向即主元,特征值λ1代表点集在主分布方向投影长度,特征值λ2可以获取数据集的直线度. 特征值的计算公式为
${{\lambda }_1} = \frac{1}{2}\left\{ {{{w}_{11}} + {{w}_{22}} + \sqrt {{{\left( {{{w}_{11}} - {{w}_{22}}} \right)}^2} - 4{{w}_{12}}^2} } \right\},$ | (6) |
${{\lambda }_2} = \frac{1}{2}\left\{ {{{w}_{11}} + {{w}_{22}} - \sqrt {{{\left( {{{w}_{11}} - {{w}_{22}}} \right)}^2} - 4{{w}_{12}}^2} } \right\}.$ | (7) |
从特征向量可以获取主分布方向,故直线的方向角度为
${{\theta}} = {\rm{arctan}}\frac{{{{w}_{12}}}}{{{{\lambda }_1} - {{w}_{22}}}}.$ |
接下来对其余数据集,将其投影到过点
由于所拟合的线段不一定在一条直线上,还需要用共线性度量[11]删除不合条件的线段,定义两条线段之间共线度为
${\rm{colinearity}} = \frac{{\left( {{{{T}}_d} - d/l} \right)\left( {{{{{T}}_a}} - a} \right)\left( {{{{T}}_b} - b} \right)}}{{{{{T}}_d}{{{T}}_a}{{{T}}_b}}},$ | (8) |
其中,l为两线段平均长度,d为最接近的一对端点距离,a为两线段之间的夹角,b为两线段中点连线与线段的夹角平均值,Td、Ta、Tb为归一化阈值参数. 由多次实验可得Td=3~5,Ta=π/36~π/18,Tb=π/18~π/9时,拟合出的单元线段最理想. 效果图如图8所示.
![]() |
图 8 PCA主元分析 Figure 8 PCA principal component analysis |
第3步:将上述拟合的共线短线段进行聚类. 得到短线段后,采用线段聚类的方法从所有短线段中分析可能存在的直线. 检测算法流程图见图9.
![]() |
图 9 算法流程 Figure 9 Algorithm process |
线段聚类中,数据元素为线段,聚类中心为目标直线. 需要对线段到聚类中心的距离进行合理的定义,并给出相应计算聚类中心的方法. 定义线段到直线的距离为线段上所有点到直线距离之和. 设给定单元线段AB:
直线L用极坐标表示为:
$d\left( {AB,L} \right) = \displaystyle\mathop \smallint \limits_0^1 d\left( {{S}\left( t \right),L} \right){\rm{d}}t.$ | (9) |
式(9)中
${x}\left( t \right) = {{x}_1} + \left( {{{x}_2} - {{x}_1}} \right)t,$ | (10) |
${y}\left( t \right) = {{y}_1} + \left( {{{y}_2} - {{y}_1}} \right)t,$ | (11) |
故有:
$\begin{split}{l}\left( {{S}\left( t \right),L} \right) =& \left| {{x}\left( t \right){\rm{cos}}{{\theta}} + {y}\left( t \right){\rm{sin}}{{\theta}} + \rho } \right| = \\[4pt]&| {\left( {{{x}_2} - {{x}_1}} \right)t\cos {{\theta}} + \left( {{{y}_2} - {{y}_1}} \right)t\sin {{\theta}} } + \\[4pt]& {{{x}_1}\cos {{\theta}} + {{y}_1}\sin {{\theta}} + \rho } |.\end{split}$ | (12) |
目标函数为
${\rm{err}}\left( L \right) = \mathop \sum \limits_i \mathop \smallint \limits_0^1 {d^2}\left( {{{S}_i}\left( t \right),L} \right){\rm{d}}t.$ | (13) |
根据err(L)最小化条件,对式(13)关于θ和t求导,得:
$\begin{array}{l}0 = {{g}_1}{\rm{si}}{{\rm{n}}^2}{{\theta}} + {{g}_2}{\rm{co}}{{\rm{s}}^2}{{\theta}} + {{g}_3}{\rm{cos}}{{\theta}} {\rm{sin}}{{\theta}} + \\[6pt]\;\;\;\;\;\rho \left( {{{g}_4}{\rm{sin}}{{\theta}} + {{g}_5}{\rm{cos}}{{\theta}} } \right),\end{array}$ | (14) |
$0 = {{L}_1}{\rm{sin}}{{\theta}} - {{L}_2}{\rm{cos}}{{\theta}} + 2\rho {{L}_3}.$ | (15) |
式(14)、(15)中,g1, …, g5和L1、L2、L3为关于聚类内线段端点坐标的表达式. 从(14)、(15)两式可计算出θ和t,这样就完成了拟合过程. 从而得到直线L的解析式,将其表示成对应的斜截式:y=kx+b即可.
第4步:定位太阳能电池片. 由于不同规格电池片4个角为变量,所以本文选其不变量即相邻两边缘为检测对象,对电池片进行定位. 设其方程分别为
$y = {{k}_1}x + {{b}_1}, \\y = {{k}_2}x + {{b}_2},$ | (16) |
其中
该算法得到的图像处理结果如图10(b)所示.
![]() |
图 10 图像处理前后对比 Figure 10 Contrast before and after image processing |
相机标定. 采用相机标定柔性算法,使用精确测量的棋盘格标定模板,标定模板每个小方块的边长为25 mm,通过随机变换相机或标定模板的位置,令相机至少在两个以上相对标定模板的不同方位成像,然后通过角点检测获得角点的图像坐标,从而得到相机参数将图像坐标转换为世界坐标并对图像传感器畸变进行矫正.
将定位中得到的位置和角度结果与初始化得到的标准值
$\left\{ {\begin{array}{*{20}{c}}{{{x}_r} = \displaystyle\frac{{{\mathit{\boldsymbol{z}}_c}\left( {{{x}_d} - {{u}_0}} \right)}}{{{f_x}}},}\\[11pt]{{{y}_r} = \displaystyle\frac{{{\mathit{\boldsymbol{z}}_c}\left( {{{y}_d} - {{v}_0}} \right)}}{{{{f}_y}}},}\end{array}} \right.$ | (17) |
其中,u0、fy为相机参数.
2.3 数据通信模块本系统的通信主要是PC与PLC的数据通信. 软件系统把检测出太阳能硅晶片的位置信息传输给PLC,PLC控制机械手进行位置和角度矫正. 本系统采用DELTA (DVP40EH00T3)系列的PLC控制相机触发信号,PC与PLC的通信采用以太网Modbus TCP/IP协议. Telnet通信先进行握手,然后进行数据的读写操作. 握手信号成功后,相机充当客户端,通过TcpClient类中的connect方法进行网络通信,利用NetWorkStream类来进行网络数据传输.
3 实验与分析在串焊机前端上料部分,依次将工业相机、工控机、PLC接于端口. 调整好相机的拍摄视角,相机位于同轴环形光源正下方,垂直向上拍摄;调试相机焦距、曝光时间和频闪;分别测试PLC通信和机械手通信,均正常连接后调试整个系统,进行试验:将电池片从上料位移动至检测位,触发相机拍照,调试相机焦距和曝光时间,使电池片在视野范围内清晰成像.
为验证本软件的准确性,在生产现场抽取2 000块电池片作为样本. 将本软件与另外一款已被市场普遍使用的Cognex公司的视觉软件Insight进行对比实验[14],分别检测1 000片电池片. 为减少实验带来的随机误差,每块电池片从上料位至检测位往返移动10次,将测得的10组结果(包括x位置、y位置、角度、处理时间)取平均值作为最终定位结果. 将最终定位所得结果进行对比,如表1所示.
表2是本软件与Cognex公司的Insight软件检测结果对比。由表2分析可知,使用本系统软件得到的电池片位置误差。不超过0.1 mm,角度误差不超过0.1°,矫正过程100 ms内完成,符合生产要求。表3是本文软件与Insight软件各项指标差异。由表3分析可知,本软件与专业视觉软件Insight的各项指标差异很小,其中x位置和y位置误差不超过0.01 mm,角度误差不超过0.1°,处理时间方面,稍优于Insight软件。总体而言,两款软件各自定位误差差距很小,基本可以忽略不计,而本软件的部分指标则优于Insight视觉处理软件。然而Insight作为Cognex公司成熟的产品,其高昂的成本,成为制约其市场推广的一大掣肘。相比之下,本系统视觉检测系统成本低廉,性能优越,满足电池片串焊行业的生产要求。
![]() |
表 1 检测结果对比(节选) Table 1 Contrast of test result (excerpts) |
![]() |
表 2 两款软件各自定位误差对比(部分) Table 2 Comparison of respective software of position error (part) |
![]() |
表 3 两款软件实验数据对比1) Table 3 Comparison of experimental data |
本文提出的基于机器视觉的太阳能硅晶片定位及矫正系统具有良好的柔性,能大大提高生产效率,减少废品率. 通过在现场的测试,检测速度达到1 200片/h,检测精确度>98%,精确度高,动态响应快,适用于太阳能电池片串焊前的定位纠偏,保证串焊机的焊接效果,对光伏产业的大力发展具有良好的推动作用.
4 结论(1) 本文结合串焊行业中具体的太阳能电池片定位检测问题,开发了一种太阳能硅晶片的视觉定位及矫正系统,用机器视觉检测替代原来的人工检测,大大解放了劳动力,提高了生产效率和自动化程度.
(2) 本文算法通过Freeman链码跟踪以及PCA获得主元,在主元基础上基于线段聚类的直线检测获取电池片边缘直线,消除格栅和划痕影响,鲁棒性强. 实验结果表明,此算法可以准确地获得电池片边缘直线,通过计算角点对电池片进行准确定位.
(3) 自主开发的软件性能良好,在实际生产作业中能够准确地定位并矫正硅晶片位置,有较好的实用性.
[1] | 王楠. 基于视觉的硅太阳能电池检测方法的研究[D]. 保定: 河北农业大学农业机械化工程学院, 2014. |
[2] |
钱晓亮, 张鹤庆, 陈永信. 基于机器视觉的太阳能电池片表面缺陷检测研究现状及展望[J].
北京工业大学学报, 2017, 43(1): 76-85.
QIAN X L, ZHANG H Q, CHEN Y X, et al. Research status and Prospect of solar cell surface defect detection based on machine vision[J]. Journal of Beijing University of Technology, 2017, 43(1): 76-85. DOI: 10.11936/bjutxb2016040063. |
[3] | ABRAHAM S, HENRY F K, SUDARSHAN S. 数据库系统概念[M]. 3版. 机械工业出版社, 2008. |
[4] |
郭斯羽, 周乐前, 温和. 基于二值图像邻域加权的直线Hough变换[J].
电子测量与仪器学报, 2014, 28(5): 478-485.
GUO S Y, ZHOU L Q, WEN H, et al. Linear Hough transform based on binary image neighborhood weighted[J]. Journal of Electronic Measurement and Instrument, 2014, 28(5): 478-485. |
[5] | RAFAEL C G, RICHARD E W. 数字图像处理[M]. 2版. 北京: 电子工业出版社, 2007. |
[6] |
居玲. 基于机器视觉的太阳能电池片位置误差检测[J].
机械制造与自动化, 2012, 41(5): 166-167.
JU L. Solar cell slice position error detection based on machine vision[J]. Journal of Mechanical Manufacturing and Automation, 2012, 41(5): 166-167. |
[7] | ANWAR S A, ABDULLAH M Z. Micro-crack detection of multicrystalline solar cells featuring an improved anisotropic diffusion filter and image segmentation technique[J]. Eurasip Journal on Image & Video Processing, 2014, 2014(1): 1-17. |
[8] |
李晨曦, 袁红兵. 基于VisionPro的太阳能电池片定位与缺陷检测系统[J].
机电一体化, 2014(12): 50-54.
LI C X, YUAN H B. Solar cells positioning and defect detection system based on the VisionPro[J]. Mechanical and Electrical Integration, 2014(12): 50-54. |
[9] |
袁清珂, 张振亚, 毕庆. 改进RANSAC算法在直线拟合中的应用[J].
组合机床与自动化加工技术, 2015(1): 123-125.
YUAN Q K, ZHANG Z Y, BI Q. Application of improved RANSAC algorithm in line fitting[J]. Combination Machine Tool and Automatic Machining Technology, 2015(1): 123-125. |
[10] |
戴激光, 张力, 李晋威. 一种链码跟踪与相位验证相结合的直线提取方法[J].
测绘学报, 2017, 46(2): 218-227.
DAI J G, ZHANG L, LI J W, et al. A method of line extraction combining chain code tracking with phase verification[J]. Journal of Surveying and Mapping, 2017, 46(2): 218-227. DOI: 10.11947/j.AGCS.2017.20160303. |
[11] |
董晶, 杨夏, 于起峰. 基于边缘连接的快速直线段检测算法[J].
光学学报, 2013, 33(3): 1-8.
DONG J, YANG X, YU Q F. Fast line segment detection based on edge connecting[J]. Journal of Optics, 2013, 33(3): 1-8. |
[12] | BASTARI A, BRUNI A, CRISTALLI C. Classification of silicon solar cells using Electroluminescence texture analysis [C]// IEEE International Symposium on Industrial Electronics. [S.l.]: IEEE Xplore, 2010: 1722-1727. |
[13] |
吴振锋. 基于图像传感器的太阳能电池片定位系统[J].
电子工业专用设备, 2014, 43(7): 9-12.
WU Z F. Positioning system for solar cells based on image sensor[J]. Special Equipment of Electronics Industry, 2014, 43(7): 9-12. |
[14] |
刘巍, 金文标, 肖仙谦. 基于主元分析和聚类的直线检测算法[J].
计算机应用, 2011, 31(5): 1202-1204.
LIU W, JIN W B, XIAO X Q. Approach for line detection based on principal component analysis and clustering[J]. Journal of Computer Application, 2011, 31(5): 1202-1204. |
[15] |
欧阳敏, 汪仁煌, 陈府庭. 基于LAB颜色距离的共生矩阵的纹理特征提取[J].
广东工业大学学报, 2011, 28(4): 48-50.
OUYANG M, WANG R H, CHEN F T. Texture feature co-occurrence matrix LAB color distance extraction based on[J]. Journal of Guangdong University of Technology, 2011, 28(4): 48-50. |
[16] |
戴知圣, 潘晴, 常桂林, 等. 基于机器视觉的贴片引脚焊接缺陷检测[J].
广东工业大学学报, 2016, 33(3): 65-69.
DAI Z S, PAN Q, CHANG L. Machine vision chip pin welding defect detection based on[J]. Journal of Guangdong University of Technology, 2016, 33(3): 65-69. |