薄文嘉,倪受東
(南京工業大學機械與動力工程學院,江蘇 南京211800)
隨著5G技術的興起以及重點發展集成電路的政策提出,大量的電子元件需要在自動化生產線上被分揀、安裝。其中視覺的目標檢測算法系統在近幾年來取得了飛速的發展,極大地提高了生產工作的效率,是研究的一個重要方向。
由于機器學習和深度學習突飛猛進的發展,目標檢測技術研究的重點已經從傳統的圖像分割、模板匹配方式發展到特征提取結合分類器的方式,再到神經網絡的方式[1]。現有的多位姿目標檢測主要使用模板匹配的方式,此方式需人工提取目標特征,再制作模板,要耗費大量精力;并且算法受光照、陰影等因素干擾較大,魯棒性差。
而神經網絡的方式由于訓練難度較高,計算資源開銷較大,使此技術在多位姿檢測的應用中受到了限制[2]。在大量算法中,方向梯度直方圖(Histogram of Orientation Gradient)與支持向量機(Support Vector Machine,SVM)結合的算法方式因其泛化性能好,魯棒性較強,訓練難度較小,適合小樣本而受廣泛關注,現被嘗試應用于多位姿目標檢測中。
訓練HOG-SVM分類器需要人工拍攝圖像并制作相應的樣本,這將投入大量精力。例如著名的PASCAL目標分類數據集,在收集和制作樣本時花費了700個h[3]。因此研究出合適的訓練樣本數量,對于減少算法開發周期具有一定的參考價值。并且在現場使用0°角環形光源,供料器底部加裝背光板,減少光照和陰影對目標產生影響的相對理想光照環境下,檢測精確率初步要求達到65%以上。
考察到以上這些問題與需求,對目標檢測分類算法進行了研究。通過機器學習,對振動供料器內擺放無規律,翻轉后姿態高度相似并有可能重疊的小型電子元件利用HOG-SVM算法實現檢測及分類。并且,分析了多組不同旋轉角度提取的樣本及其數量對于目標檢測算法的影響,最終選取其中的最優結果使分類器性能趨于穩定,達到現場精確率要求。
電子元件檢測系統主要可以分為軟件及硬件兩個模塊,硬件模塊,如圖1所示。主要包括:工業機器人,相機,振動供料器,光源等設備。相機使用Allied Vison工業相機獲取目標圖像,并且通過I/0線材連接到計算機。軟件模塊:基于visual studio 2015平臺、運用MFC界面、使用OpenCV計算機開源庫開發系統軟件。

圖1 系統硬件流程圖Fig.1 System Hardware Flow Chart
機器人分揀系統的運作原理和過程為:當電子元件被放入振動供料器中后,通過計算機的控制,振動供料器對電子元件進行振動、翻轉,然后相機在光源的配合下自動地獲取電子元件圖像,之后由分類器檢測并分類出電子元件的正類姿態和負類姿態并得到正類姿態的圖像坐標,通過坐標轉換獲得正類姿態的用戶坐標,控制機器人對正類姿態的電子元件進行抓?。唤酉聛碓俅慰刂普駝庸┝掀鲗κS嗟碾娮釉M行振動并多次重復上述工作過程,最終將全部電子元件抓取分揀完畢,標志著系統的整個工作過程結束。
待檢測的電子元件以圖2為例,此類元件體型微小,被振動翻轉后的姿態相似度高,因此對檢測算法的準確率與魯棒性要求較高。

圖2 電子元件示意圖Fig.2 Electronic Component Schematic Diagram
元件被振動翻轉后會出現如圖3所示的5種姿態。其中圖中所示1和2的姿態為正類姿態,標記為label=1與label=2。這兩種正立的姿態會被機器人抓取、分揀以便于下一步的安裝工作。圖中所示的3、4和5姿態為負類姿態,標記為label=3,label=4,label=5。這三種姿態為非正立姿態,機器人會對此進行抓取分揀工作。

圖3 電子元件姿態示意圖Fig.3 Electronic Component Posture Schematic Diagram
檢測系統首先會實時拍攝采集振動供料器中的元件獲得圖片,作為待測圖像。通過機器學習對事先人工制作的樣本進行學習,并訓練產生分類器。將待測圖像輸入分類器中,實現圖像分類,最后輸出檢測后的圖像得到最終結果反饋給機器人控制系統。其工作流程,如圖4所示。

圖4 檢測任務工作流程圖Fig.4 Inspection Task Workflow Diagram
當訓練樣本是線性可分時,線性分類的SVM用一個超平面將兩類樣本分開,這個超平面是一條直線[4]。但在此類實際問題中,原始樣本空間內并不存在一個超平面能將樣本正確劃分為兩類。針對這個問題,要將原始空間的樣本映射到更高維的特征空間中去,達到樣本在這個高維特征空間內線性可分的目的[4]。
其中,φ(x)為x映射后的特征向量,那么,特征空間中劃分超平面的模型表示為:

式中:ω、b-模型參數,由于該問題是線性不可分的問題,需要對此進行擴展,加入松弛變量ξi和懲罰因子c對錯誤分類的樣本進行懲罰,從而得出解決線性不可分問題的模型:

公式(2)本身是一個凸二次規劃問題,可以對此式使用拉格朗日乘子法轉化為對偶問題來進行更高效的求解,則對偶問題為:


求解后得到預測時的分類判別函數為:

選用核函數為高斯核函數:

HOG特征提取是基于對稠密網格中歸一化的局部方向梯度直方圖的計算。它的基本思想是:即使不知道局部目標的外表與形狀對應的梯度和邊緣的位置,目標還是可以被局部梯度或邊緣方向的分布很好地描述[6]。并且對于幾何和光學變化都有很好的不變性。針對隨意擺放,不同姿態的電子元件提取HOG特征的步驟如下:
(1)對圖片進行預處理,剪裁圖片并重新設置為固定大小。再用gamma參數壓縮,歸一化。
(2)進行梯度計算。先計算水平和垂直方向的梯度。事實表明簡單的梯度算子結果最好,所以選用[ ]-1,0,1模板進行計算[7]。接下來使用下列公式(7)和(8)計算梯度的幅值g和θ。

圖像中的梯度去除掉了許多不必要的信息,加重了電子元件的輪廓。
(3)計算方向梯度直方圖。將一張圖片分割成由多個8×8細胞單元(cell)組成的網格。此時使用無符號梯度,在這里0°和180°是一樣的,所以將每個單元格中(0-160)°的梯度方向分為9個組距(bin)。對單元格中的每個像素基于它的方向組距進行投票,投票數值為像素的梯度幅值[8]。最后將每個細胞單元的直方圖加在一起,得到整個圖像的方向梯度直方圖。
(4)對梯度做局部歸一化。圖片的梯度對光照的變化十分敏感,會造成梯度強度變化范圍很大的結果[9]。為達到描述子塊和光線變換無關的目的,要進行直方圖歸一化。將4個8×8的細胞單元組成一塊(block),對這個16×16的塊歸一化,之后從圖像原點開始以一個單元格為步長,向后移動遍歷整個圖像依次歸一化。雖然在這個過程中,塊之間的細胞單元被重復歸一化,但是這樣做明顯會提升性能。
(5)0將每個block的梯度向量合并,得到整幅圖像最終的HOG特征。
電子元件通過振動、翻轉后以(0~360)°范圍內的任意旋轉角度隨機散落在供料器內,散落姿態包括5種姿態。針對電子元件各不同角度的特征提取豐富程度以及樣本數量對于算法性能的影響,提出以元件左側邊為軸,在(0~360)°的范圍內,每逆時針旋轉一個固定角度拍攝一個樣本。如圖5所示,為元件以第1種姿態旋轉45°所得到8個的樣本。
舉例:基于特征b33a589d3627bc6f2e5bd0e6b42f 53b6,探測到URL http://198.98.122.172/cunty.sh,進而截取獲得IP 198.98.122.172,針對這個IP進行端口探測和協議識別198.98.122.172:50

圖5 樣本示意圖Fig.5 Sample Schematic Diagram
對5種姿態旋轉5°、10°、15°、30°、45°來獲取樣本,最終得到5個不同特征豐富程度和樣本數量的訓練樣本集,如表1所示。

表1 樣本旋轉角度及相應數量Tab.1 Sample Rotation Angle and Corresponding Quantity
由于元件體積小,質量輕,且引腳之間有空隙,所以在振動翻轉后極易出現元件重疊擺放的情況,影響算法對目標物體的分割,最終造成分類器的分類錯誤。在HOG特征提取完畢后,實際效果為加重元件的輪廓;假設待測圖像分割后電子元件特征區域的像素面積為Tm那么:

式中:a,b-檢測到電子元件輪廓區域的像素面積范圍,在這個數值范圍內的物體會被識別為元件重疊,從而不會進行分類,等待下次振動分離后,再次進行檢測。在實驗和生產的拍攝獲取圖像過程中,必須保持相機拍攝的深度始終一致,從而使得設置的像素面積范圍與圖像中目標物體的像素面積相匹配。
將a,b分別設置為100與550,當分類器檢測到有目標元件的像素面積在此范圍內時,會識別為元件重疊,避免分類錯誤,增強分類器的魯棒性。
對分類器的泛化性能進行評估,不僅需要有效的實驗方法,還需要衡量模型的評價指標。對于二分類問題,可以將目標根據其真實類別與分類器分類類別劃分為以下四種情況:
真正例(TP):將正類分類為正類數,假正例(FP):將負類分類為正類數;
真反例(TN):將正類分類為負類數,假反例(FN):將正類分類為負類數。
且對于分類問題常用的性能度量有[10]:準確率(Accuracy),精確率(Precision),召回率(Recall),F1度量。其中F1是基于精確率與召回率的調和平均,可用來度量分類器的整體性能。

實驗檢測在Win10操作系統下進行,CPU為Intel i5-7200U,主頻為2.50GHz,內存8GB,使用VC++通過OpenCV進行編程。且實驗在只使用小型0度環形光源,不加裝背光板,使光照和陰影對目標產生相對影響的非理想環境下進行采圖。將拍攝好的樣本按不同姿態放相應的程序路徑中,由程序縮放至64×64大小,并進行1764維的HOG特征提取,從而得到5種姿態的訓練集樣本。實驗按照振動供料器所能放置目標物體數量的規格,設置每張待測圖像中有20個電子元件。其中,label=1與label=2的兩種正類姿態各5個,label=3、label=4、label=5的三種負類姿態共10個。之后由5個不同數量的樣本集訓練得到的分類器分別對待測圖像進行檢測分類,并將同一數量樣本分類器分類記為1組實驗。為減小偶然性對實驗帶來的誤差,對同一個數量的樣本集重復做5組獨立實驗,最終以5組實驗的平均值作為實驗結果。實驗過程中所得到的檢測后圖像,如圖6所示。
分類器會對圖像中的電子元件形成外接矩,打上標簽進行分類;并對第一種和第二種正類姿態標識出元件的質心,以便于下一步機器人的抓取工作。由公式(11)、(12)計算得到label=1和label=2兩種正類姿態的精確率和召回率隨樣本數量變化的趨勢,如圖6所示。

圖6 檢測示意圖Fig.6 Detection Schematic Diagram
如圖7所示,橫軸為樣本數量,縱軸為精確率和召回率。從圖7(a)可以看出,兩種正類姿態的總體趨勢基本一致,在樣本數量較少時精確率都會出現不穩定和震蕩。在第三個點當樣本數量達到120個時整體變得穩定且呈現向上增長的態勢;在樣本數量超過180個后,精確率趨于平緩,幾乎未再增長。同樣,在圖7(b)中兩種姿態的召回率趨勢與準確率大體一致。雖然在樣本數量到達180個時,第一種姿態的召回率出現下降,但幅度非常小,在(120~360)數量的區間內基本穩定??梢钥闯觯琀OG-SVM分類算法對于第一種姿態的檢測效果更好,精確率與召回率最高可達79.3%和64%;對于第二種姿態沒有第一種高,但最終也能有67.3%的精確率和65.2%的召回率。說明不同檢測對象對此種算法有一定的影響。

圖7 樣本數量-精確率和樣本數量-召回率折線圖Fig.7 Sample Number-Precision and Sample Number-Recall Rate Line Chart
通過式(13)得出F1,進行深入一步的分析,如圖8所示。

圖8 樣本數量-F1折線圖Fig.8 Sample Number-F1 Line Chart
從圖中得出,兩種姿態F1折線的總體趨勢與精確率、召回率趨勢十分相似。當樣本數量達到180個以后,F1增長速度變緩且呈現穩定的態勢。
最后,使用對元件每隔10°旋轉所得180個樣本的樣本集對元件重疊的特殊情況進行了實驗檢測,結果如圖9所示。

圖9 元件重疊檢測圖Fig.9 Component Overlap Detection Diagram
從圖中可以看出,對于有接觸以及交叉堆疊的元件,分類器未形成外接矩進行分割,并且未影響其他姿態的分類。因此,對重疊元件特征輪廓像素面積閾值進行設置,從而避免分類混亂這一方法是可行的。
針對微小電子元件振動翻轉以后姿態相似度高,元件重疊的分類檢測問題,以及不同旋轉角度獲取的不同樣本數量對開發成本和算法性能的影響;采用HOG-SVM算法進行了研究。經過實驗發現,當樣本數量達到180個以后,算法整體性能趨于穩定并在非理想環境下兩種姿態的檢測精確率分別為79.3%和67.3%,都達到了現場相對理想環境下精確率65%以上的初步要求。并通過對重疊元件特征像素面積閾值的設置,避免了分類的錯誤,增強魯棒性。最終得出,每隔10°旋轉獲得的樣本對目標的特征提取更加豐富,且由此得到的180個數量的樣本集使得分類器整體達到了現場精確率的初步要求。實驗僅在非理想環境下得出相應精確率,且第二種姿態的初步精確率相較于第一種姿態有差距;今后將在相對理想環境下進行實驗,并優化SVM參數使兩種姿態精確率得到進一步的提升。