左懷見,徐 聰,盧勝強,段吉安
(中南大學 高性能復雜制造國家重點實驗室,長沙 410083)
工業(yè)加工中,加工物體的精準位置檢測是一個很常見的問題。人工操作存在著精度低、效率低的缺點。傳統(tǒng)機器視覺算法可以實現(xiàn)物體位置檢測,所以現(xiàn)在一般采用基于傳統(tǒng)機器視覺算法的位置檢測系統(tǒng)。傳統(tǒng)機器視覺算法通常對圖像進行復雜的變換處理,再進行復雜的數(shù)學計算得到物體位置信息,過程非常繁瑣。而且算法對圖像里的場景要求很苛刻,不同場景需要不同的特定算法處理,不具有通用性。
深度學習的概念由Hinton等人在2006年首先提出,直到2012年Krizhevsky在ImageNet圖像分類比賽中使用的深度學習方法力壓傳統(tǒng)方法取得突破性成績后,深度學習呈現(xiàn)出了爆發(fā)式發(fā)展[1]。近幾年深度學習被廣泛應用在圖像處理、自然語言處理和搜索推薦等領域中,并且取得傳統(tǒng)方法達不到的成績。特別是在圖像處理中,物體位置檢測使用深度學習算法表現(xiàn)的非常優(yōu)秀[2]。深度學習算法對圖像場景要求不苛刻,通用性強。圖像是相似的場景中不需修改算法也能得到很好的結果。深度學習算法一端接收圖像,另一端輸出圖像中物體的位置,不需要設計復雜的圖像變換和數(shù)學計算,過程非常簡潔。深度學習算法很好的解決了上述傳統(tǒng)機器視覺算法在實際生產(chǎn)中的不足。怎么將這些深度學習算法應用在工業(yè)生產(chǎn)中成為近幾年工業(yè)界里邊一個重要的問題。
我們開發(fā)了一套基于深度學習的芯片位置檢測系統(tǒng)。系統(tǒng)檢測激光bar條上芯片的位置,控制運動平臺將芯片移動到測試和加工的位置。系統(tǒng)使用的深度學習位置檢測算法定位精確度高、通用向強,可以應用在不同的場景中。
基于深度學習的芯片位置檢測系統(tǒng)分為圖像處理部分和物理加工部分,如圖1所示。圖像處理部分包括圖像采集模塊和深度學習模塊。物理加工部分包括通信模塊和運動加工模塊。
圖1 芯片位置檢測系統(tǒng)
圖像采集模塊采集加工平臺上含芯片的圖像。深度學習模塊接收圖像,輸出圖像中的芯片的位置。通信模塊將芯片的位置信息傳遞到運動加工模塊。運動加工模塊依據(jù)接收的位置信息將運動平臺移動到正確的位置。其中圖像采集模塊需要合適的相機配合光源才能得到高質(zhì)量圖像,運動加工模塊需要搭建物理加工平臺實現(xiàn)移動及加工。下邊介紹相機選型的細節(jié)和物理加工平臺的結構。
黑白相機是圖像采集模塊中最重要的物理裝置,其作用是利用光學系統(tǒng)聚焦于成像平面的光線生成圖像。高質(zhì)量的圖像自然需要高質(zhì)量且合適的相機。相機中最重要的光學器件是鏡頭。鏡頭的幾何關系如式(1)所示。
式中:Hi為實際物體的高度;Ho為相機成像后物體的高度;Di為物距;Do為相距;TIMES為鏡頭的放大倍數(shù)。鏡頭里參數(shù)的幾何意義如如2所示。
圖2 鏡頭里參數(shù)的幾何意義
系統(tǒng)里的工業(yè)相機選用海康威視公司的黑白相機,型號為MV-CE050-30UM黑白相機。相機500萬像素,傳感器為cmos,通信接口為usb3.0,輸出圖像分辨率為2592×1944。cmos傳感器對實際物體掃描采樣的最小單位是0.0022mm×0.0022mm。系統(tǒng)采集的圖像精度為0.0022mm(亞微米級別),完全達到檢測要求。圖3物理加工平臺中相機位置大約在芯片位置的正上方。
正常的LED燈可以提供合適的照明狀態(tài)。在圖像采集過程中,保持良好的照明狀態(tài)可以降低采集高質(zhì)量圖3物理加工平臺圖像的難度,提高系統(tǒng)的可靠性。
圖3 物理加工平臺
物理加工平臺分為通信部分和物理移動部分。通信部分控制器MPC08控制卡接收計算機發(fā)送的芯片位置信息。物理移動部分控制器MPC08控制卡依據(jù)芯片的位置信息發(fā)出控制命令。步進電機和氣缸依據(jù)控制命令移動進而帶動運動平臺運動。圖4展示了整個物理加工的流程。
圖4 物理加工流程
通信部分的物理接口是PCI口。控制器MPC08控制卡直接插在計算機的PCI擴展口上。計算機按照設計好的信息格式將芯片的位置信息發(fā)送到MPC08控制卡上,MPC08控制卡按照相應的信息格式解析出物理移動信息。MPC08控制卡依據(jù)解析出的信息,發(fā)出控制指令,控制運動裝置移動。
物理移動部分的器件為步進電機和氣缸。氣缸通過電氣裝置完成氣缸的開閉,進而帶動運動平臺快速移動。步進電機依據(jù)MPC08控制卡發(fā)出不同的電流旋轉(zhuǎn),進而帶動運動平臺進行精確位置的移動。氣缸配合步進電機將芯片快速且準確的移動到測試和加工的位置。
深度學習算法只需將合適的預處理層、骨干網(wǎng)和檢測層連接在一起。位置檢測系統(tǒng)里的深度學習算法接收采集的原始圖像,輸出圖像中芯片的位置,如圖5所示。預處理層將尺寸不一的原始圖像經(jīng)過雙線性插值變成固定尺寸,同時將像素值大小歸一化到(0,1)之間。骨干網(wǎng)接收預處理層輸出的圖像,輸出邊緣信息、顏色信息、亮度信息之類的簡單描述信息。檢測層接收骨干網(wǎng)輸出的簡單描述信息,輸出高級抽象信息得到圖像中芯片的位置。
圖5 算法整體框架
骨干網(wǎng)是由卷積層、激活層和池化層等組成的。大量的深度學習實驗表明,某些特定的卷積層、激活層和池化層等組成的模型結構可以很好的提取出圖像里邊緣信息、顏色信息、亮度信息之類的簡單描述信息[3]。經(jīng)典的骨干網(wǎng)有何愷明提出的ResNet、牛津大學提出的VGG和谷歌公司提出的Inception。
本文中骨干網(wǎng)選用何愷明提出的ResNet。隨著深度學習算法中骨干網(wǎng)的層數(shù)變多,卻出現(xiàn)了不是由過擬合造成的(過擬合的情況訓練集應該準確率很高)算法性能下降的現(xiàn)象。針對這個問題何愷明提出了ResNet。它允許網(wǎng)絡盡可能的加深,并且引入了圖6中全新的結構。張量x一個分支經(jīng)過三個卷積層和池化層得到F(x),另一個分支直接傳遞下來,x和F(x)相加輸出y,如式(2)所示:
x和F(x)融合在一起解決因為網(wǎng)絡層數(shù)變多導致算法性能下降的現(xiàn)象[4]。
檢測層接收骨干網(wǎng)輸出的簡單特征信息,輸出高級抽象信息。圖像分類任務中,輸出圖像是某個類別的概率。物體檢測任務中,輸出圖像中物體的位置。
圖6 ResNet中使用的網(wǎng)絡結構
圖像中物體的位置用矩形框來表示[5]:矩形框中心點在水平方向的坐標X,矩形框中心點在豎直方向的坐標Y,矩形框的寬W、矩形框的高H,矩形框里有物體的概率O。如果X、Y、W和H信息是預測框位置的絕對坐標會喪失模型的通用性,所以它們?yōu)轭A測框位置的相對坐標。相對坐標按設計好的公式轉(zhuǎn)換得到絕對坐標。
反向傳播時需要計算模型輸出的損失L。模型的損失L采用下面smooth L1損失計算公式。即模型的輸出值X、Y、W、H和O與正確值的差x,代入式(3)得到smooth L1即為損失L。
反向傳播時需要計算損失L對模型里參數(shù)P的偏導數(shù)。η為放大系數(shù),依據(jù)式(4)對參數(shù)進行更新。模型更新參數(shù)后,模型的輸出值和正確值的偏差變小。重復訓練,直至模型的輸出值和正確值的偏差在實際可以接受的范圍內(nèi)。
深度學習算法需要大量的圖像訓練,來調(diào)試模型里的參數(shù)才能達到預期的結果。實驗員在機器上隨機采集1000張不同場景的加工圖像,標注出圖像中芯片的位置,制成訓練集。模型使用訓練集中的圖像進行訓練。因為訓練過程不知道模型性能怎么樣,所以還需要驗證集測試當前模型的好壞。實驗員隨機采集100張和訓練集不重復的圖像制成驗證集。
圖7 采集的原始圖像
本文實驗在linux平臺下,使用Facebook公司開源的深度學習框架PyTorch進行訓練[6]。圖8顯示隨著訓練次數(shù)增多,模型損失越來越小。
模型性能的好壞用交叉比衡量[7]。預測框和芯片重疊部分的面積除以預測框和芯片總共占的面積為交叉比。交叉比最大為1,表示預測框和芯片完全重合。圖8顯示隨著訓練次數(shù)增多,模型輸出的預測框和芯片的交叉比無限接近于1,預測框和芯片完全重合。
圖8 模型損失值的變化
模型輸出多個預測框。不同預測框可能預測的是同一個物體,此時需要保留O值比較大的預測框[8]。通常預測框越準確,預測框的O值越大。圖10中位置較左的框和位置較右的框預測的是同一個芯片,這時保留O值較大的預測框。
圖9 預測框和芯片的交叉比的變化
在這里引入非最大值抑制操作進行去重。非最大值抑制的核心操作:
1)拿出當前的預測框中O值最高的預測框B。
2)舍掉和B重疊面積大于一定閾值的預測框。
深度學習算法模型得到圖像中芯片的位置后,計算機控制物理裝置將芯片移動到合適的位置。物理加工過程中計算機和控制硬件通信,控制硬件發(fā)出指令控制物理裝置完成加工。系統(tǒng)具有以下的優(yōu)點:
圖10 左邊的框和右邊框預測的是同一個芯片
1)速度快。系統(tǒng)自動完成芯片位置檢測的整個過程。從芯片放在加工平臺上開始,平臺上的相機自動采集圖像,經(jīng)過深度學習算法處理,向硬件平臺發(fā)送運動控制命令。整個過程在計算機的控制下自動完成全部的操作。
2)通用性強。在不同的場景下測試,模型在不加修改的情況下,也能很好的檢測出物體。即在相似的場景下,可以很好的移植系統(tǒng)的位置檢測算法,減少大量的重復性開發(fā)工作。系統(tǒng)采集圖像的精度為亞微米級別,檢測出來物體的位置精度也是亞微米級別的,精度完全符合要求。
我們提出了一種基于深度學習的位置檢測系統(tǒng)。系統(tǒng)很好的將前沿的深度學習技術和現(xiàn)在的芯片加工技術融合在一起,對加工系統(tǒng)中的傳統(tǒng)機器視覺算法進行改進?;谏疃葘W習的位置檢測系統(tǒng)的對加工環(huán)境要求不那么苛刻,過程非常簡潔,算法通用性強,可以很好的移植到類似的場景中。而且算法精度隨著訓練圖像增多,會變得越來越準確,和傳統(tǒng)算法比具有天然優(yōu)勢[9]。
不僅是在位置檢測上,在關鍵點檢測、圖像分割上,深度學習算法比傳統(tǒng)算法表現(xiàn)的更好[10]。我們只是將其運用在芯片的位置檢測上。在當前工業(yè)生產(chǎn)中,缺陷檢測、邊緣檢測等場景中同樣可以采用基于深度學習的算法,來提高自動化生產(chǎn)的效率。國內(nèi)工業(yè)發(fā)展離不開新興技術的推動,各個領域的新興技術交叉共同推動工業(yè)的升級。人工智能和機械自動化加工的結合是未來的必然趨勢,希望更多人加入進來,讓制造業(yè)散發(fā)出新的活力。