高興宇,陳凱生,黃 寅,張 朋
(桂林電子科技大學 廣西制造系統(tǒng)與先進制造技術重點實驗室,廣西 桂林 541004)
在工業(yè)中生產(chǎn)中,多類產(chǎn)品均涉及到釘類安裝問題,釘類包括螺釘,拉釘,鉚釘?shù)鹊?,釘?shù)穆┭b問題將對產(chǎn)品的安全性、用戶體驗及企業(yè)形象有重大影響。釘類安裝質(zhì)量常通過機器視覺進行檢測,因產(chǎn)品外觀條件的復雜性,檢測過程中主要存在兩方面問題,一方面,焦距不變情況下,不同尺寸的產(chǎn)品所成像像素(清晰度)不同;另一方面,釘周圍底紋及釘自帶形狀、顏色多種多樣,并且他們都有可能出現(xiàn)在某款產(chǎn)品中。
目前,深度學習在面向交通標志識別、機器人視覺識別、智能駕駛等領域都有一定的應用,但鮮少有用于工業(yè)檢測中,主要因為一方面?zhèn)鹘y(tǒng)視覺算法穩(wěn)定[1],另一方面深度學習開發(fā)成本高,本文提出一種改進卷積神經(jīng)網(wǎng)絡(CNN)的檢測算法與優(yōu)化策略是采用基于CPU訓練,在解決檢測適用性問題的同時,筆記本便可完成工作,極大降低企業(yè)的成本與工作人員學習操作難度。
圖1為部分需檢測的產(chǎn)品圖,本文以交換機外殼上的螺釘與螺孔為研究對象來展開研究。
圖1 部分產(chǎn)品圖
在深度學習應用于智能駕駛的交通標志識別中,其中一個方向是自動尋找檢測對象[2],技術相對尚未成熟,若將該技術應用工業(yè)檢測中,不僅樣本收集難度大,成本昂貴,魯棒性與正確率也不能達到工業(yè)要求,因此本研究先采用傳統(tǒng)圖像處理算法,根據(jù)產(chǎn)品實際尺寸建立模板實現(xiàn)釘?shù)亩ㄎ弧?/p>
圖2a為產(chǎn)品的其中一個經(jīng)過高斯濾波去噪后的檢測面,中間有兩個螺釘,以產(chǎn)品左上角(紅圈)為基點,輸入產(chǎn)品的長與寬,釘相對于基點X方向(橫向)與Y方向(縱向)的距離,其它釘同理,便可建立相應檢測面的模板,如圖2b所示。檢測面通過Canny算子[3]提取交換機外殼檢測面邊緣,如圖3所示。提取邊緣為產(chǎn)品外殼在圖像中的尺寸,要將輸入模板的尺寸定位至圖像的尺寸,因此,需通過透視變換將提取邊緣尺寸縮放映射至模板尺寸,實現(xiàn)尺寸統(tǒng)一。
(a) 檢測面 (b) 模版 圖2 交換機外殼及檢測模板
圖3 交換機外殼圖像邊緣提取
透視變換本質(zhì)是投影映射,即一種將圖片投影至一個新的平面[4],其中圖片位移、角度、大小尺度的改變都屬于透視變換中的一種特殊形式。要將提取邊緣后的矩形投影模板中矩形,根據(jù)透視變換公式只需找到變換前矩形4個角的坐標點(u1,v1),(u2,v2),(u3,v3),(u4,v4)與映射后圖像4個點對應坐標點(x1′,y1′),(x2′,y2′),(x3′,y3′),(x4′,y4′),聯(lián)立方程組可求解透視變換矩陣。
變換公式為:
變換后得:
利用透視變換后,在產(chǎn)品檢測面圖像中,只要涉及檢測的釘,通過模板輸入釘?shù)淖鴺宋恢?,即可定位。在定位過程中,會出現(xiàn)與輸入模板尺寸與理想定位偏差,本文采用50×50尺寸的圖片基本適應釘?shù)拇笮〔⑶也杉柧殬颖緮?shù)據(jù)時已經(jīng)覆蓋所有釘偏移情況,故這個偏差不影響檢測準確度并且可降低對定位精度算法開發(fā)難度。
在CNN網(wǎng)絡輸入圖片數(shù)據(jù)中,小尺寸的圖有利于卷積提取特征并且減少網(wǎng)絡訓練時間,在經(jīng)過建立模板后,可以定位截取同一種釘?shù)牟煌庹障赂鞣N姿態(tài)及偏移的訓練樣本。在樣本采集中,建立“標準”樣本庫作為補充,所謂標準為釘?shù)奈恢檬冀K位于50×50圖像中心,在原圖上利用截圖軟件截取標準樣本。圖4所示為列舉6種螺釘(第0類)與對應螺孔(第1類)的部分樣本,每種螺釘與螺孔的樣本中存在位置,光照,背景與像素的變化干擾。
圖4 螺釘對樣本圖
以L1螺釘對為例,需采集7種不同光照下,3種旋轉(zhuǎn)90°的樣本,以釘圓中心上下左右8個方位偏移采集16×16種樣本,螺釘2種(×與+)位姿,共10752個樣本,另外補充非偏移標準樣本以達到1.25萬個樣本。L1螺孔與螺釘是對應的同樣數(shù)目,最終L1螺釘與螺釘孔總數(shù)為2.5萬個樣本,L2~L6也同理采集樣本。
不同于ResNet、SSD等復雜深度卷積神經(jīng)網(wǎng)絡,分析螺釘與螺釘孔的圖像特點,兩者差異較明顯,本文提出基于數(shù)字識別網(wǎng)絡LENet進行超參數(shù)優(yōu)化的CNN網(wǎng)絡結(jié)構算法,本質(zhì)上屬于有監(jiān)督學習算法。一個卷積神經(jīng)網(wǎng)絡構建基礎由卷積層,池化(Pooling)層,全連接層組成[5],本網(wǎng)絡有三個卷積層和三個池化層結(jié)合超參數(shù)(在開始深度學習過程之前設置值的參數(shù))的選擇構建而成的網(wǎng)絡結(jié)構,通過對輸入50×50的樣本圖像特征進行提取形成特征子圖,再把特征子圖全部展開,形成一維特征子集,最后運用全連接層平鋪連接特征子集,對輸入的圖像進行分類識別,并輸出結(jié)果。網(wǎng)絡的結(jié)構與參數(shù)如圖5、表1所示,超參數(shù)的設置如表2所示。
圖5 用于螺釘對識別的CNN模型網(wǎng)絡圖
層數(shù)類型特征圖個數(shù)及尺寸核大小步長1輸入層X01&50×50——2卷積層C124&46×465×513池化層P124&23×232×224卷積層C260&19×195×515池化層P260&10×102×226卷積層C3120&8×83×317池化層P3120&4×42×228全連接F4560&1×11×1—9輸出成N4100&1×1——
表2 超參數(shù)表
深度學習與傳統(tǒng)視覺算法不同之處在于利用已知框架對輸入信息的卷積神經(jīng)網(wǎng)絡進行系統(tǒng)訓練,可以提取特征子圖的同時學習在輸入與輸出的一種多層數(shù)據(jù)模式的非線性關系[6]。卷積層每個神經(jīng)元與部分神經(jīng)元相連,每組連接可以共享同一個權值實現(xiàn)降低計算量,利用池化層減少每層的樣本數(shù),進一步減少參數(shù)數(shù)量提高魯棒性同時增加迭代次數(shù)以提高網(wǎng)絡訓練的精度。
本網(wǎng)絡結(jié)構在Caffe框架搭建,Caffe框架可將所有訓練樣本圖片數(shù)據(jù)轉(zhuǎn)換生成一種閃電般的內(nèi)存映射型數(shù)據(jù)庫管理(LMDB),有利于減少讀取圖片數(shù)據(jù)時間。
制造交換機外殼行業(yè)不同于智能機器人行業(yè),并非都可以投入人工成本及高昂服務器進行開發(fā),本網(wǎng)絡結(jié)構采用Caffe框架并且用普通配置酷睿i5處理器或以上電腦即可進行CPU訓練,除了可達到檢測準確度要求外,可降低工業(yè)開發(fā)周期與成本,有利于推進工業(yè)檢測發(fā)展。
本實驗采用聯(lián)想筆記本小新系列V4000型號,CPU配置為i7-5500U,結(jié)合在虛擬機Mware Workstation Pro下安裝ubuntu16.04版本Linux系統(tǒng)中安裝Caffe并訓練。
將6組螺釘與螺釘孔對即L1~L6依次添加樣本數(shù)量,發(fā)現(xiàn)生成LMDB時間隨著樣本總數(shù)量增加,而訓練在最大迭代次數(shù)5000次完成的消耗時間相對穩(wěn)定在80min左右。若繼續(xù)放入螺釘對數(shù)量,會造成生成LMDB時間不斷延長,這不利于解決驗證模型問題。
將螺釘與螺釘孔以隨機方式輸入模型進行測試500次,記錄是否準確判斷結(jié)果。
在本網(wǎng)絡結(jié)構與超參數(shù)的選定中,發(fā)現(xiàn)Caffe顯示準確率穩(wěn)定在99%以上,但實際測試時,在樣本數(shù)10萬以外則無法達到與訓練準確率一致,下降極其明顯,結(jié)果見表3。
表3 訓練結(jié)果表
分析數(shù)據(jù)發(fā)現(xiàn)原因之一是在所有參數(shù),特別訓練深度(卷積核數(shù)量)保持不變而不斷增加樣本數(shù)量時,該網(wǎng)絡難對10萬以后的訓練樣本更深入的讀取與訓練。增加卷積核會延長訓練時間,考慮螺釘對遠不止列舉的6種,不利解決工程問題。將L1~L6的螺釘對中隨機抽取出一部分螺釘與螺釘孔,每對螺釘與螺釘孔的樣本數(shù)壓縮至2萬,結(jié)果見表4,樣本數(shù)量保證在10萬內(nèi)的準確率與實際測試準確率一致,更重要是比表3中(L1~L4)檢測多一種螺釘對(L5)。
表4 減少樣本訓練結(jié)果表
在交換機外殼行業(yè)中,一款產(chǎn)品的釘一般由螺釘,拉釘?shù)榷喾N釘裝配,而螺釘種類一般不會超過4種不同類型,比如L1~L6中,只出現(xiàn)其中4種或少于4種,其余釘為拉釘,鉚釘?shù)鹊柔旑?,因此采取一種“一產(chǎn)品一螺釘模型”優(yōu)化策略,即對一個產(chǎn)品中出現(xiàn)的螺釘種類進行訓練相應螺釘模型,當換產(chǎn)品檢測時,調(diào)用相應螺釘模型檢測。
首先這種優(yōu)化策略有利于工業(yè)檢測穩(wěn)定性,工業(yè)上在每次批量檢測某款產(chǎn)品時換上相應模型可提高檢測準確率的方式更容易讓企業(yè)接受。其次,本網(wǎng)絡結(jié)構在采樣后利用普通電腦可進行短時間模型訓練,相對容易實現(xiàn)。第三,需提前細分螺釘中第1~n種的螺釘對,采樣分類過程繁瑣,但在不同產(chǎn)品的螺釘對中,只要出現(xiàn)與之前分類的n種釘一樣的螺釘對即可調(diào)用樣本,不用再重新采集,有利于維護與增加可檢測產(chǎn)品。最后,采用優(yōu)化策略后每款產(chǎn)品測試500次,結(jié)果表5所示,產(chǎn)品一至三分別包括2、3、4種螺釘對,綜合準確率為實際測試準確率取均值,保持99%以上,可達到工業(yè)檢測標準。
表5 優(yōu)化策略結(jié)果表
針對交換機的同一檢測面上存在多種類型的釘并且每種釘有位置變化,光照變化,背景干擾,像素模糊等因素影響的問題,采取了現(xiàn)實場景采集樣本輸入改進的CNN中進行一系列訓練與測試,并通過在換產(chǎn)品檢測時,自動調(diào)用相應釘模型的優(yōu)化策略,實現(xiàn)工業(yè)釘類是否漏裝的精確檢測。實驗結(jié)果表明利用本文方法,穩(wěn)定性高,平均識別準確率達到99%以上。為了使其更具有智能性,研制能夠?qū)崿F(xiàn)與裝釘機器人配合進行實時補裝釘?shù)南到y(tǒng)是下一步的工作重點。