劉宇飛 黃秋實 霍彥明 王 昱
(河北科技大學 電氣工程學院 石家莊 050018)
在通用照明領域,透鏡需求量大,而透鏡在安裝過程中種類繁多,這就對透鏡識別效果有了更高的需求[1]。傳統方法采用的機械定位速度慢、容易對器件造成損傷,隨著透鏡數量和復雜程度的提高,不易達到現在生產工藝的精度要求。隨著半導體封裝向著系統集成化、小型化、密集化、高精度方向發展,貼片機也需要提高其相應的貼片速率、精度和穩定性,而視覺識別技術是實現此類要求的基礎一環[2]。Li PL等人設計了一種工件邊緣特征檢測方法,是根據次特征來判別工件,該方法檢測的工件種類不多,工件特征比較少[3]。田甜等提出了一種基于OpenCV的PCB板基準點識別與定位的算法。該算法可以從復雜的背景中選取目標輪廓,并計算出輪廓中心坐標。此方法有較高的效率和準確度,能夠滿足基準點定位的要求。但是對光源條件較為敏感,對環境的需求較為苛刻[4]。
神經網絡是通過模仿動物的神經網絡行為特征并進行分布式并行信息處理的一種數學算法模型,其有自學習、自適應、收斂速度快以及逼近能力強等優點[5-7]。近年來,不少人將神經網絡應用到貼片機運動精度控制上[8-10],通過神經網絡的加入使貼片機的運動精度有所提升。然而以上方法都是神經網絡在貼片機運行軌跡的優化,但是關于神經網絡在散點透鏡識別方面的應用還有待進一步的探究。
本文將神經網絡訓練原理應用在貼片機散點透鏡的識別領域,經過驗證,神經網絡在不同透鏡圖像的識別與定位上表現突出,通過對不同種類透鏡特征的識別訓練,能夠達到快速識別精準定位的效果,以縮短貼片機貼裝時間,提高生產效率[11]。
在不同的條件下,照明所應用的透鏡類型不盡相同。在貼片機散點透鏡放置區里,透鏡的正反以及偏轉角都呈隨機分布,各個透鏡在物料區的位置也沒有規律,實際的貼裝過程存在較大困難,若想實現散點透鏡的自動貼裝,傳統的模板匹配算法僅能找到大小形狀旋轉角度都與模板相同的透鏡,在實際生產中無法滿足貼片機對散點透鏡的識別,而卷積神經網絡算法卻可以有效的實現對散點透鏡的準確識別。
卷積神經網絡算法的基本思路就是通過對大量不同特征的透鏡數據進行訓練,找到樣本中的不同透鏡類別之間的不同規律特征和本質屬性。在卷積神經網絡訓練的過程中,不同的卷積層能夠有效的實時改變網絡參數并進行數據的迭代與更新,進而提高貼片機的工作效率。CNN搭建以及識別流程如圖1所示。
通過圖1所示的應用設計思路進行散點透鏡的識別可以有效的對不同種類的透鏡進行識別,相比于傳統的模板匹配算法,卷積神經網絡算法的識別率更高,并且可以針對更多形狀的透鏡進行識別,較好的拓寬了散點式貼片機的應用領域。

圖1 神經網絡搭建及識別流程
在神經網絡訓練之前,需要準備大量的圖像數據。由于透鏡是生活中常見的光學元件,在天文、軍事、交通、醫學、藝術等領域發揮著重要作用,且其種類多,形狀各異,大小不同,因此適宜用神經網絡進行分類識別訓練,在數據不斷迭代過程中提取本質特征,并將訓練好權重參數的神經網絡應用到之后的識別之中。本項目在實施過程中,將以不同種類的透鏡為數據樣本,進行完整的神經網絡訓練。
如圖2所示,由于散落在物料區內的透鏡位置是隨機的,所以存在類型不確定,角度歪斜,正反不一等問題,因此在采集數據過程中,必須要考慮到不同透鏡的實際狀態,針對不同狀態的透鏡做到精準識別。

圖2 不同種類透鏡及其不同狀態
由于網絡結構可以接收的數據格式是固定的,因此在將數據喂給網絡之前,需要將數據樣本進行預處理。
圖像的預處理需要樣本提純,其目的是剔除掉部分由于曝光過度等因素導致的不能被使用的數據,消除圖像采集過程中這些非典型數據對后續識別帶來的影響。
然后需要對提純后的樣本進行標準化或歸一化處理,這樣做一來可以保留目標原始數據特性,二來可以使圖形中的目標特征信息更加鮮明,具體的標準化的數學表達如式(1)、式(2)所示:

式中:
μ—圖像的均值;
x—表示圖像矩陣;
σ—表示標準方差;
N—表示圖像x的像素數量。
圖像標準化處理是將數據通過去均值實現中心化的處理,根據凸優化理論與數據概率分布相關知識以及數據中心化符合數據分布規律,通過此方式處理的圖像訓練之后的泛化效果更強。
為了增加數據的多樣性。本文在預處理階段進行圖形擴充,通過對原始數據集圖像進行旋轉、鏡像、裁切等操作,將圖片的空間特征多樣性呈現,這樣不僅可以有效的完成對數據集樣本的擴充還可以使訓練出來的模型具有更好的魯棒性。
經過圖像提純、增強以及歸一化等操作之后需要對圖像進行批量標準化,將圖像resize成圖像神經網絡訓練所需要的數據格式,本項目對透鏡標準化成96*96*3像素的RGB格式的圖像。之后則進行卷積神經網絡的搭建與訓練學習。
神經網絡的結構示意圖如圖3所示。在輸入層之前,需要將采集到的訓練集圖片進行標準化、歸一化處理,使訓練數據達到符合要求的格式。

圖3 神經網絡結構圖
在輸入層的目的是將預處理之后批量標準化成96*96*3的RGB圖像數據輸入給神經網絡。卷積層通過局部計算做到全局感知,在CNN神經網絡識別過程中首先對于圖片中的每一個特征局部感知,然后更深層次的卷積層對局部進行綜合操作,從而得到全局信息。卷積層的Padding設置為向上補零模式,步長設置為1。添加Padding后,可以有效地提取到圖像輪廓特征,避免神經網絡在訓練過程中圖像邊緣部分參與卷積運算次數過少導致的信息丟失問題。
在激勵層,對每個卷積層的輸出結果做一次非線性映射,用卷積的方式處理,也就是對每個像素點賦予一個權值,這個操作是線性的,而對于樣本并非線性可分,因此在激勵函數層引入非線性因素,采用RELU函數作為非線性映射的激勵函數,解決線性模型不能解決的問題。
在池化層完成對特征圖數據信息的壓縮,一方面使特征圖像變小,簡化網絡計算復雜度;另一方面進行特征壓縮,提取圖像主要特征。
經過若干次卷積、激勵、池化后,在輸出層進行簡單的對比分類,從而輸出結果。
卷積神經網絡的訓練過程分為兩個階段。一個使前向傳播階段:該階段是數據特征信息的提取階段,通過不斷深化的卷積層與激勵函數的非線性映射,神經網絡完成信息逐漸由低層次的表層紋理特征向高層次特征的提取。另外一個階段是隨機梯度下降的反向傳播階段,通過前向傳播得出的結果與數據訓練集真實值進行對比得到損失函數,再通過損失函數對權重求偏導數的形式,完成誤差數據從后向到前向的傳播與更新。訓練過程如圖4所示。

圖4 神經網絡訓練流程
在完成卷積神經網絡的搭建以及學習訓練后,即可用來進行識別。識別過程需要進行以下步驟:重置并初始化傳感器;設置圖像采集窗口;調整相機獲取頻率;調用神經網絡進行比對識別。
1)要對傳感器進行重置初始化。在設置好傳感器數值之后,即能進行待識別圖像的獲取工作。
2)設置圖像采集窗口。將OpenMV的攝像頭采集窗口設置為240*240。只有處于在設定的區域內的數據,才能作為有效數據進行識別。
3)調整相機拍攝頻率。不同的相機拍攝頻率意味著可獲得不同的幀數,將相機獲取頻率設定為每2 000 ms拍攝一次。這樣就等識別不同時間的多幀圖像,做到更加精準。
獲取了符合格式要求的圖像之后,調用搭建好的神經網絡結構,在不同的卷積層進行多次分析比對,利用圖像窗口滑動,對局部數據進行計算,參考每個神經元的擬定的權值,進行識別判斷。在不同的卷積層中間加入池化層,用于壓縮數據和參數的量,減小過擬合現象。
對兩種透鏡以及正反兩種狀態的識別進行初步實驗,得出實驗數據如表1。
由表1中數據可知:對于不同的透鏡類型識別,準確率不同。識別效果也受到實際環境的影響,如:光線強弱、攝像頭質量等。整體準確率高,在增加訓練數據之后,神經網絡識別能夠做到更高的精準度。

表1 訓練及測試數據
本文主要研究了神經網絡在貼片機識別透鏡過程中的應用,將神經網絡訓練的方法應用到散點透鏡識別中,并具有以下特點:首先、該方法在保證檢測精度的同時運算時間較少,所以透鏡的檢測效率較高。其次、神經網絡的散點式透鏡識別方法自適應性高、可修改性強,能夠針對不同的處理對象進行數據集的調整、提高了散點式貼片機的適用范圍。
通過實驗,證明該方法在檢測精度和檢測時間上均能滿足貼片機的實際生產要求。利用本文介紹的神經網絡訓練識別方法能夠對散點透鏡進行無接觸的、高精度的辨識定位,具有高精度、高效率的優勢,是今后發展的主流。但是,對于多種差別不明顯透鏡同時存在的情況下,仍存在著學習識別不流暢的問題,處理過程仍需完善。