劉宇飛 黃秋實 霍彥明 王 昱
(河北科技大學(xué) 電氣工程學(xué)院 石家莊 050018)
在通用照明領(lǐng)域,透鏡需求量大,而透鏡在安裝過程中種類繁多,這就對透鏡識別效果有了更高的需求[1]。傳統(tǒng)方法采用的機械定位速度慢、容易對器件造成損傷,隨著透鏡數(shù)量和復(fù)雜程度的提高,不易達(dá)到現(xiàn)在生產(chǎn)工藝的精度要求。隨著半導(dǎo)體封裝向著系統(tǒng)集成化、小型化、密集化、高精度方向發(fā)展,貼片機也需要提高其相應(yīng)的貼片速率、精度和穩(wěn)定性,而視覺識別技術(shù)是實現(xiàn)此類要求的基礎(chǔ)一環(huán)[2]。Li PL等人設(shè)計了一種工件邊緣特征檢測方法,是根據(jù)次特征來判別工件,該方法檢測的工件種類不多,工件特征比較少[3]。田甜等提出了一種基于OpenCV的PCB板基準(zhǔn)點識別與定位的算法。該算法可以從復(fù)雜的背景中選取目標(biāo)輪廓,并計算出輪廓中心坐標(biāo)。此方法有較高的效率和準(zhǔn)確度,能夠滿足基準(zhǔn)點定位的要求。但是對光源條件較為敏感,對環(huán)境的需求較為苛刻[4]。
神經(jīng)網(wǎng)絡(luò)是通過模仿動物的神經(jīng)網(wǎng)絡(luò)行為特征并進(jìn)行分布式并行信息處理的一種數(shù)學(xué)算法模型,其有自學(xué)習(xí)、自適應(yīng)、收斂速度快以及逼近能力強等優(yōu)點[5-7]。近年來,不少人將神經(jīng)網(wǎng)絡(luò)應(yīng)用到貼片機運動精度控制上[8-10],通過神經(jīng)網(wǎng)絡(luò)的加入使貼片機的運動精度有所提升。然而以上方法都是神經(jīng)網(wǎng)絡(luò)在貼片機運行軌跡的優(yōu)化,但是關(guān)于神經(jīng)網(wǎng)絡(luò)在散點透鏡識別方面的應(yīng)用還有待進(jìn)一步的探究。
本文將神經(jīng)網(wǎng)絡(luò)訓(xùn)練原理應(yīng)用在貼片機散點透鏡的識別領(lǐng)域,經(jīng)過驗證,神經(jīng)網(wǎng)絡(luò)在不同透鏡圖像的識別與定位上表現(xiàn)突出,通過對不同種類透鏡特征的識別訓(xùn)練,能夠達(dá)到快速識別精準(zhǔn)定位的效果,以縮短貼片機貼裝時間,提高生產(chǎn)效率[11]。
在不同的條件下,照明所應(yīng)用的透鏡類型不盡相同。在貼片機散點透鏡放置區(qū)里,透鏡的正反以及偏轉(zhuǎn)角都呈隨機分布,各個透鏡在物料區(qū)的位置也沒有規(guī)律,實際的貼裝過程存在較大困難,若想實現(xiàn)散點透鏡的自動貼裝,傳統(tǒng)的模板匹配算法僅能找到大小形狀旋轉(zhuǎn)角度都與模板相同的透鏡,在實際生產(chǎn)中無法滿足貼片機對散點透鏡的識別,而卷積神經(jīng)網(wǎng)絡(luò)算法卻可以有效的實現(xiàn)對散點透鏡的準(zhǔn)確識別。
卷積神經(jīng)網(wǎng)絡(luò)算法的基本思路就是通過對大量不同特征的透鏡數(shù)據(jù)進(jìn)行訓(xùn)練,找到樣本中的不同透鏡類別之間的不同規(guī)律特征和本質(zhì)屬性。在卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練的過程中,不同的卷積層能夠有效的實時改變網(wǎng)絡(luò)參數(shù)并進(jìn)行數(shù)據(jù)的迭代與更新,進(jìn)而提高貼片機的工作效率。CNN搭建以及識別流程如圖1所示。
通過圖1所示的應(yīng)用設(shè)計思路進(jìn)行散點透鏡的識別可以有效的對不同種類的透鏡進(jìn)行識別,相比于傳統(tǒng)的模板匹配算法,卷積神經(jīng)網(wǎng)絡(luò)算法的識別率更高,并且可以針對更多形狀的透鏡進(jìn)行識別,較好的拓寬了散點式貼片機的應(yīng)用領(lǐng)域。
圖1 神經(jīng)網(wǎng)絡(luò)搭建及識別流程
在神經(jīng)網(wǎng)絡(luò)訓(xùn)練之前,需要準(zhǔn)備大量的圖像數(shù)據(jù)。由于透鏡是生活中常見的光學(xué)元件,在天文、軍事、交通、醫(yī)學(xué)、藝術(shù)等領(lǐng)域發(fā)揮著重要作用,且其種類多,形狀各異,大小不同,因此適宜用神經(jīng)網(wǎng)絡(luò)進(jìn)行分類識別訓(xùn)練,在數(shù)據(jù)不斷迭代過程中提取本質(zhì)特征,并將訓(xùn)練好權(quán)重參數(shù)的神經(jīng)網(wǎng)絡(luò)應(yīng)用到之后的識別之中。本項目在實施過程中,將以不同種類的透鏡為數(shù)據(jù)樣本,進(jìn)行完整的神經(jīng)網(wǎng)絡(luò)訓(xùn)練。
如圖2所示,由于散落在物料區(qū)內(nèi)的透鏡位置是隨機的,所以存在類型不確定,角度歪斜,正反不一等問題,因此在采集數(shù)據(jù)過程中,必須要考慮到不同透鏡的實際狀態(tài),針對不同狀態(tài)的透鏡做到精準(zhǔn)識別。
圖2 不同種類透鏡及其不同狀態(tài)
由于網(wǎng)絡(luò)結(jié)構(gòu)可以接收的數(shù)據(jù)格式是固定的,因此在將數(shù)據(jù)喂給網(wǎng)絡(luò)之前,需要將數(shù)據(jù)樣本進(jìn)行預(yù)處理。
圖像的預(yù)處理需要樣本提純,其目的是剔除掉部分由于曝光過度等因素導(dǎo)致的不能被使用的數(shù)據(jù),消除圖像采集過程中這些非典型數(shù)據(jù)對后續(xù)識別帶來的影響。
然后需要對提純后的樣本進(jìn)行標(biāo)準(zhǔn)化或歸一化處理,這樣做一來可以保留目標(biāo)原始數(shù)據(jù)特性,二來可以使圖形中的目標(biāo)特征信息更加鮮明,具體的標(biāo)準(zhǔn)化的數(shù)學(xué)表達(dá)如式(1)、式(2)所示:
式中:
μ—圖像的均值;
x—表示圖像矩陣;
σ—表示標(biāo)準(zhǔn)方差;
N—表示圖像x的像素數(shù)量。
圖像標(biāo)準(zhǔn)化處理是將數(shù)據(jù)通過去均值實現(xiàn)中心化的處理,根據(jù)凸優(yōu)化理論與數(shù)據(jù)概率分布相關(guān)知識以及數(shù)據(jù)中心化符合數(shù)據(jù)分布規(guī)律,通過此方式處理的圖像訓(xùn)練之后的泛化效果更強。
為了增加數(shù)據(jù)的多樣性。本文在預(yù)處理階段進(jìn)行圖形擴充,通過對原始數(shù)據(jù)集圖像進(jìn)行旋轉(zhuǎn)、鏡像、裁切等操作,將圖片的空間特征多樣性呈現(xiàn),這樣不僅可以有效的完成對數(shù)據(jù)集樣本的擴充還可以使訓(xùn)練出來的模型具有更好的魯棒性。
經(jīng)過圖像提純、增強以及歸一化等操作之后需要對圖像進(jìn)行批量標(biāo)準(zhǔn)化,將圖像resize成圖像神經(jīng)網(wǎng)絡(luò)訓(xùn)練所需要的數(shù)據(jù)格式,本項目對透鏡標(biāo)準(zhǔn)化成96*96*3像素的RGB格式的圖像。之后則進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)的搭建與訓(xùn)練學(xué)習(xí)。
神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)示意圖如圖3所示。在輸入層之前,需要將采集到的訓(xùn)練集圖片進(jìn)行標(biāo)準(zhǔn)化、歸一化處理,使訓(xùn)練數(shù)據(jù)達(dá)到符合要求的格式。
圖3 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
在輸入層的目的是將預(yù)處理之后批量標(biāo)準(zhǔn)化成96*96*3的RGB圖像數(shù)據(jù)輸入給神經(jīng)網(wǎng)絡(luò)。卷積層通過局部計算做到全局感知,在CNN神經(jīng)網(wǎng)絡(luò)識別過程中首先對于圖片中的每一個特征局部感知,然后更深層次的卷積層對局部進(jìn)行綜合操作,從而得到全局信息。卷積層的Padding設(shè)置為向上補零模式,步長設(shè)置為1。添加Padding后,可以有效地提取到圖像輪廓特征,避免神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中圖像邊緣部分參與卷積運算次數(shù)過少導(dǎo)致的信息丟失問題。
在激勵層,對每個卷積層的輸出結(jié)果做一次非線性映射,用卷積的方式處理,也就是對每個像素點賦予一個權(quán)值,這個操作是線性的,而對于樣本并非線性可分,因此在激勵函數(shù)層引入非線性因素,采用RELU函數(shù)作為非線性映射的激勵函數(shù),解決線性模型不能解決的問題。
在池化層完成對特征圖數(shù)據(jù)信息的壓縮,一方面使特征圖像變小,簡化網(wǎng)絡(luò)計算復(fù)雜度;另一方面進(jìn)行特征壓縮,提取圖像主要特征。
經(jīng)過若干次卷積、激勵、池化后,在輸出層進(jìn)行簡單的對比分類,從而輸出結(jié)果。
卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程分為兩個階段。一個使前向傳播階段:該階段是數(shù)據(jù)特征信息的提取階段,通過不斷深化的卷積層與激勵函數(shù)的非線性映射,神經(jīng)網(wǎng)絡(luò)完成信息逐漸由低層次的表層紋理特征向高層次特征的提取。另外一個階段是隨機梯度下降的反向傳播階段,通過前向傳播得出的結(jié)果與數(shù)據(jù)訓(xùn)練集真實值進(jìn)行對比得到損失函數(shù),再通過損失函數(shù)對權(quán)重求偏導(dǎo)數(shù)的形式,完成誤差數(shù)據(jù)從后向到前向的傳播與更新。訓(xùn)練過程如圖4所示。
圖4 神經(jīng)網(wǎng)絡(luò)訓(xùn)練流程
在完成卷積神經(jīng)網(wǎng)絡(luò)的搭建以及學(xué)習(xí)訓(xùn)練后,即可用來進(jìn)行識別。識別過程需要進(jìn)行以下步驟:重置并初始化傳感器;設(shè)置圖像采集窗口;調(diào)整相機獲取頻率;調(diào)用神經(jīng)網(wǎng)絡(luò)進(jìn)行比對識別。
1)要對傳感器進(jìn)行重置初始化。在設(shè)置好傳感器數(shù)值之后,即能進(jìn)行待識別圖像的獲取工作。
2)設(shè)置圖像采集窗口。將OpenMV的攝像頭采集窗口設(shè)置為240*240。只有處于在設(shè)定的區(qū)域內(nèi)的數(shù)據(jù),才能作為有效數(shù)據(jù)進(jìn)行識別。
3)調(diào)整相機拍攝頻率。不同的相機拍攝頻率意味著可獲得不同的幀數(shù),將相機獲取頻率設(shè)定為每2 000 ms拍攝一次。這樣就等識別不同時間的多幀圖像,做到更加精準(zhǔn)。
獲取了符合格式要求的圖像之后,調(diào)用搭建好的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),在不同的卷積層進(jìn)行多次分析比對,利用圖像窗口滑動,對局部數(shù)據(jù)進(jìn)行計算,參考每個神經(jīng)元的擬定的權(quán)值,進(jìn)行識別判斷。在不同的卷積層中間加入池化層,用于壓縮數(shù)據(jù)和參數(shù)的量,減小過擬合現(xiàn)象。
對兩種透鏡以及正反兩種狀態(tài)的識別進(jìn)行初步實驗,得出實驗數(shù)據(jù)如表1。
由表1中數(shù)據(jù)可知:對于不同的透鏡類型識別,準(zhǔn)確率不同。識別效果也受到實際環(huán)境的影響,如:光線強弱、攝像頭質(zhì)量等。整體準(zhǔn)確率高,在增加訓(xùn)練數(shù)據(jù)之后,神經(jīng)網(wǎng)絡(luò)識別能夠做到更高的精準(zhǔn)度。
表1 訓(xùn)練及測試數(shù)據(jù)
本文主要研究了神經(jīng)網(wǎng)絡(luò)在貼片機識別透鏡過程中的應(yīng)用,將神經(jīng)網(wǎng)絡(luò)訓(xùn)練的方法應(yīng)用到散點透鏡識別中,并具有以下特點:首先、該方法在保證檢測精度的同時運算時間較少,所以透鏡的檢測效率較高。其次、神經(jīng)網(wǎng)絡(luò)的散點式透鏡識別方法自適應(yīng)性高、可修改性強,能夠針對不同的處理對象進(jìn)行數(shù)據(jù)集的調(diào)整、提高了散點式貼片機的適用范圍。
通過實驗,證明該方法在檢測精度和檢測時間上均能滿足貼片機的實際生產(chǎn)要求。利用本文介紹的神經(jīng)網(wǎng)絡(luò)訓(xùn)練識別方法能夠?qū)ιⅫc透鏡進(jìn)行無接觸的、高精度的辨識定位,具有高精度、高效率的優(yōu)勢,是今后發(fā)展的主流。但是,對于多種差別不明顯透鏡同時存在的情況下,仍存在著學(xué)習(xí)識別不流暢的問題,處理過程仍需完善。