基于深度学习的芯片位置检测系统
2021-06-04左怀见卢胜强段吉安
左怀见,徐 聪,卢胜强,段吉安
(中南大学 高性能复杂制造国家重点实验室,长沙 410083)
0 引言
工业加工中,加工物体的精准位置检测是一个很常见的问题。人工操作存在着精度低、效率低的缺点。传统机器视觉算法可以实现物体位置检测,所以现在一般采用基于传统机器视觉算法的位置检测系统。传统机器视觉算法通常对图像进行复杂的变换处理,再进行复杂的数学计算得到物体位置信息,过程非常繁琐。而且算法对图像里的场景要求很苛刻,不同场景需要不同的特定算法处理,不具有通用性。
深度学习的概念由Hinton等人在2006年首先提出,直到2012年Krizhevsky在ImageNet图像分类比赛中使用的深度学习方法力压传统方法取得突破性成绩后,深度学习呈现出了爆发式发展[1]。近几年深度学习被广泛应用在图像处理、自然语言处理和搜索推荐等领域中,并且取得传统方法达不到的成绩。特别是在图像处理中,物体位置检测使用深度学习算法表现的非常优秀[2]。深度学习算法对图像场景要求不苛刻,通用性强。图像是相似的场景中不需修改算法也能得到很好的结果。深度学习算法一端接收图像,另一端输出图像中物体的位置,不需要设计复杂的图像变换和数学计算,过程非常简洁。深度学习算法很好的解决了上述传统机器视觉算法在实际生产中的不足。怎么将这些深度学习算法应用在工业生产中成为近几年工业界里边一个重要的问题。
我们开发了一套基于深度学习的芯片位置检测系统。系统检测激光bar条上芯片的位置,控制运动平台将芯片移动到测试和加工的位置。系统使用的深度学习位置检测算法定位精确度高、通用向强,可以应用在不同的场景中。
1 位置检测系统
基于深度学习的芯片位置检测系统分为图像处理部分和物理加工部分,如图1所示。图像处理部分包括图像采集模块和深度学习模块。物理加工部分包括通信模块和运动加工模块。
图1 芯片位置检测系统
图像采集模块采集加工平台上含芯片的图像。深度学习模块接收图像,输出图像中的芯片的位置。通信模块将芯片的位置信息传递到运动加工模块。运动加工模块依据接收的位置信息将运动平台移动到正确的位置。其中图像采集模块需要合适的相机配合光源才能得到高质量图像,运动加工模块需要搭建物理加工平台实现移动及加工。下边介绍相机选型的细节和物理加工平台的结构。
1.1 相机选型
黑白相机是图像采集模块中最重要的物理装置,其作用是利用光学系统聚焦于成像平面的光线生成图像。高质量的图像自然需要高质量且合适的相机。相机中最重要的光学器件是镜头。镜头的几何关系如式(1)所示。
式中:Hi为实际物体的高度;Ho为相机成像后物体的高度;Di为物距;Do为相距;TIMES为镜头的放大倍数。镜头里参数的几何意义如如2所示。
图2 镜头里参数的几何意义
系统里的工业相机选用海康威视公司的黑白相机,型号为MV-CE050-30UM黑白相机。相机500万像素,传感器为cmos,通信接口为usb3.0,输出图像分辨率为2592×1944。cmos传感器对实际物体扫描采样的最小单位是0.0022mm×0.0022mm。系统采集的图像精度为0.0022mm(亚微米级别),完全达到检测要求。图3物理加工平台中相机位置大约在芯片位置的正上方。
正常的LED灯可以提供合适的照明状态。在图像采集过程中,保持良好的照明状态可以降低采集高质量图3物理加工平台图像的难度,提高系统的可靠性。
图3 物理加工平台
1.2 物理加工平台
物理加工平台分为通信部分和物理移动部分。通信部分控制器MPC08控制卡接收计算机发送的芯片位置信息。物理移动部分控制器MPC08控制卡依据芯片的位置信息发出控制命令。步进电机和气缸依据控制命令移动进而带动运动平台运动。图4展示了整个物理加工的流程。
图4 物理加工流程
通信部分的物理接口是PCI口。控制器MPC08控制卡直接插在计算机的PCI扩展口上。计算机按照设计好的信息格式将芯片的位置信息发送到MPC08控制卡上,MPC08控制卡按照相应的信息格式解析出物理移动信息。MPC08控制卡依据解析出的信息,发出控制指令,控制运动装置移动。
物理移动部分的器件为步进电机和气缸。气缸通过电气装置完成气缸的开闭,进而带动运动平台快速移动。步进电机依据MPC08控制卡发出不同的电流旋转,进而带动运动平台进行精确位置的移动。气缸配合步进电机将芯片快速且准确的移动到测试和加工的位置。
2 深度学习算法
2.1 算法整体框架
深度学习算法只需将合适的预处理层、骨干网和检测层连接在一起。位置检测系统里的深度学习算法接收采集的原始图像,输出图像中芯片的位置,如图5所示。预处理层将尺寸不一的原始图像经过双线性插值变成固定尺寸,同时将像素值大小归一化到(0,1)之间。骨干网接收预处理层输出的图像,输出边缘信息、颜色信息、亮度信息之类的简单描述信息。检测层接收骨干网输出的简单描述信息,输出高级抽象信息得到图像中芯片的位置。
图5 算法整体框架
骨干网是由卷积层、激活层和池化层等组成的。大量的深度学习实验表明,某些特定的卷积层、激活层和池化层等组成的模型结构可以很好的提取出图像里边缘信息、颜色信息、亮度信息之类的简单描述信息[3]。经典的骨干网有何恺明提出的ResNet、牛津大学提出的VGG和谷歌公司提出的Inception。
本文中骨干网选用何恺明提出的ResNet。随着深度学习算法中骨干网的层数变多,却出现了不是由过拟合造成的(过拟合的情况训练集应该准确率很高)算法性能下降的现象。针对这个问题何恺明提出了ResNet。它允许网络尽可能的加深,并且引入了图6中全新的结构。张量x一个分支经过三个卷积层和池化层得到F(x),另一个分支直接传递下来,x和F(x)相加输出y,如式(2)所示:
x和F(x)融合在一起解决因为网络层数变多导致算法性能下降的现象[4]。
检测层接收骨干网输出的简单特征信息,输出高级抽象信息。图像分类任务中,输出图像是某个类别的概率。物体检测任务中,输出图像中物体的位置。
图6 ResNet中使用的网络结构
图像中物体的位置用矩形框来表示[5]:矩形框中心点在水平方向的坐标X,矩形框中心点在竖直方向的坐标Y,矩形框的宽W、矩形框的高H,矩形框里有物体的概率O。如果X、Y、W和H信息是预测框位置的绝对坐标会丧失模型的通用性,所以它们为预测框位置的相对坐标。相对坐标按设计好的公式转换得到绝对坐标。
反向传播时需要计算模型输出的损失L。模型的损失L采用下面smooth L1损失计算公式。即模型的输出值X、Y、W、H和O与正确值的差x,代入式(3)得到smooth L1即为损失L。
反向传播时需要计算损失L对模型里参数P的偏导数。η为放大系数,依据式(4)对参数进行更新。模型更新参数后,模型的输出值和正确值的偏差变小。重复训练,直至模型的输出值和正确值的偏差在实际可以接受的范围内。
2.2 实验过程
深度学习算法需要大量的图像训练,来调试模型里的参数才能达到预期的结果。实验员在机器上随机采集1000张不同场景的加工图像,标注出图像中芯片的位置,制成训练集。模型使用训练集中的图像进行训练。因为训练过程不知道模型性能怎么样,所以还需要验证集测试当前模型的好坏。实验员随机采集100张和训练集不重复的图像制成验证集。
图7 采集的原始图像
本文实验在linux平台下,使用Facebook公司开源的深度学习框架PyTorch进行训练[6]。图8显示随着训练次数增多,模型损失越来越小。
模型性能的好坏用交叉比衡量[7]。预测框和芯片重叠部分的面积除以预测框和芯片总共占的面积为交叉比。交叉比最大为1,表示预测框和芯片完全重合。图8显示随着训练次数增多,模型输出的预测框和芯片的交叉比无限接近于1,预测框和芯片完全重合。
图8 模型损失值的变化
2.3 模型后处理
模型输出多个预测框。不同预测框可能预测的是同一个物体,此时需要保留O值比较大的预测框[8]。通常预测框越准确,预测框的O值越大。图10中位置较左的框和位置较右的框预测的是同一个芯片,这时保留O值较大的预测框。
图9 预测框和芯片的交叉比的变化
在这里引入非最大值抑制操作进行去重。非最大值抑制的核心操作:
1)拿出当前的预测框中O值最高的预测框B。
2)舍掉和B重叠面积大于一定阈值的预测框。
3 位置检测系统的优点
深度学习算法模型得到图像中芯片的位置后,计算机控制物理装置将芯片移动到合适的位置。物理加工过程中计算机和控制硬件通信,控制硬件发出指令控制物理装置完成加工。系统具有以下的优点:
图10 左边的框和右边框预测的是同一个芯片
1)速度快。系统自动完成芯片位置检测的整个过程。从芯片放在加工平台上开始,平台上的相机自动采集图像,经过深度学习算法处理,向硬件平台发送运动控制命令。整个过程在计算机的控制下自动完成全部的操作。
2)通用性强。在不同的场景下测试,模型在不加修改的情况下,也能很好的检测出物体。即在相似的场景下,可以很好的移植系统的位置检测算法,减少大量的重复性开发工作。系统采集图像的精度为亚微米级别,检测出来物体的位置精度也是亚微米级别的,精度完全符合要求。
4 结语
我们提出了一种基于深度学习的位置检测系统。系统很好的将前沿的深度学习技术和现在的芯片加工技术融合在一起,对加工系统中的传统机器视觉算法进行改进。基于深度学习的位置检测系统的对加工环境要求不那么苛刻,过程非常简洁,算法通用性强,可以很好的移植到类似的场景中。而且算法精度随着训练图像增多,会变得越来越准确,和传统算法比具有天然优势[9]。
不仅是在位置检测上,在关键点检测、图像分割上,深度学习算法比传统算法表现的更好[10]。我们只是将其运用在芯片的位置检测上。在当前工业生产中,缺陷检测、边缘检测等场景中同样可以采用基于深度学习的算法,来提高自动化生产的效率。国内工业发展离不开新兴技术的推动,各个领域的新兴技术交叉共同推动工业的升级。人工智能和机械自动化加工的结合是未来的必然趋势,希望更多人加入进来,让制造业散发出新的活力。