王化明,劉茂興,熊峻峰,于金龍
(南京航空航天大學(xué) 機電學(xué)院,江蘇 南京 210016)
目前,生產(chǎn)線上的牙刷分揀主要由人工完成,存在效率低下、成本較高等缺點.現(xiàn)有自動化設(shè)備可實現(xiàn)牙刷的有序上料,但是設(shè)備占地體積大,工作過程復(fù)雜,且不能針對所有的牙刷工序.機器視覺已經(jīng)廣泛應(yīng)用于目標(biāo)的視覺定位,通過視覺檢測出牙刷的位置并識別出牙刷的姿態(tài),將位置和姿態(tài)信息傳輸給機器人,實現(xiàn)牙刷的操作,可以達(dá)到提高效率、降低成本的目的.然而由于牙刷種類非常多,形狀不規(guī)則,在輸送帶上通常呈現(xiàn)4種姿態(tài),根據(jù)不同的刷頭朝向,將牙刷的姿態(tài)分為:向上、向下、向左、向右,如圖1所示.傳統(tǒng)圖像處理方法對牙刷姿態(tài)識別的準(zhǔn)確率還較低,需要根據(jù)牙刷種類手動調(diào)節(jié)相關(guān)參數(shù),操作者也要具有較強的專業(yè)知識,難以滿足工業(yè)生產(chǎn)的實際需求.目前,深度學(xué)習(xí)方法已經(jīng)用于目標(biāo)的分類、檢測等領(lǐng)域[1-2],對多種類目標(biāo)、圖像形變及局部遮擋等因素的適應(yīng)性更強,因此文中在確定牙刷位置的基礎(chǔ)上研究基于深度學(xué)習(xí)的牙刷姿態(tài)識別方法,提高牙刷分揀準(zhǔn)確率,降低使用難度,以滿足工業(yè)自動化生產(chǎn)需求.
圖1 牙刷姿態(tài)圖
圖像采集系統(tǒng)設(shè)計如圖2所示.該系統(tǒng)主要由傳送帶、光源和工業(yè)相機組成.光源及照明方式影響所采集的圖像質(zhì)量,圖像應(yīng)滿足:① 清晰度高,牙刷輪廓清晰,位置和姿態(tài)信息明確;② 對比度高,牙刷與傳送帶的邊界分明.綜合實際需求和經(jīng)濟(jì)性因素,選用LED條形光源KW-L10516-W,工業(yè)相機MER-310-12UC-L,照明方式選擇暗場漫射照明.
圖2 圖像采集系統(tǒng)
牙刷位置計算算法流程[3]如圖3所示,基于圖像的動量矩計算牙刷的外接矩形和方向角,以外接矩形的中心作為牙刷位置.
圖3 算法流程圖
實際鏡頭由于加工及安裝誤差,其難以實現(xiàn)理想的成像模型,會存在一定的透鏡畸變.此外,在實際抓取作業(yè)中,首先對圖像進(jìn)行處理獲得牙刷中心的像素坐標(biāo),根據(jù)相機與傳送帶間的位姿關(guān)系得到牙刷在傳送帶上的位姿,最后由機器人與傳送帶間的標(biāo)定結(jié)果確定牙刷在機器人基坐標(biāo)系下的坐標(biāo),文中主要建立視覺系統(tǒng)與傳送帶的位姿關(guān)系.
首先利用張正友標(biāo)定法[4]對相機內(nèi)參數(shù)進(jìn)行標(biāo)定,內(nèi)參矩陣為
畸變系數(shù)為
k1=-0.045 5,k2=0.108 2,
p1=-0.000 9,p2=-0.001 5.
在完成相機內(nèi)參標(biāo)定的基礎(chǔ)上,對相機坐標(biāo)系與傳送帶坐標(biāo)系的位姿關(guān)系進(jìn)行標(biāo)定,標(biāo)定板選擇7×7圓點標(biāo)定板.首先將相機與傳送帶的位姿固定,并將平面標(biāo)定板置于傳送帶表面,采集標(biāo)定板圖像,可以計算得到相機的外參數(shù)矩陣.此時標(biāo)定板的中心點為世界坐標(biāo)系OWXWYW原點,旋轉(zhuǎn)矩陣:
平移矩陣:
T=[0.070 208 0.069 771 0.049 827]T.
以標(biāo)定板的中心點為原點建立傳送帶坐標(biāo)系OSXSYS,且傳送帶水平運動方向作為XS軸正方向.在外參數(shù)標(biāo)定過程中,世界坐標(biāo)系OWXWYW與傳動帶坐標(biāo)系OSXSYS存在一定的旋轉(zhuǎn)角度θ,如圖4所示.
圖4 傳送帶坐標(biāo)系與世界坐標(biāo)系
旋轉(zhuǎn)角度θ的計算方法如下:在傳送帶上放置一個圓柱物體E,提取該物體的亞像素邊緣,利用最小二乘法進(jìn)行圓擬合求得圓心世界坐標(biāo)(xw1,yw1);傳送帶移動一段距離,再次計算圓心世界坐標(biāo)(xw2,yw2),計算結(jié)果如表1所示.
表1 圓心像素坐標(biāo)與世界坐標(biāo)
利用兩次的計算結(jié)果即可求得
圖像容易受到采集現(xiàn)場干擾因素的影響,產(chǎn)生噪聲,不利于牙刷定位,需要對圖像進(jìn)行去噪增強.首先將彩色圖像轉(zhuǎn)換為灰度圖像,然后使用中值濾波去除圖像中的噪聲,再采用分段線性灰度變換對圖像進(jìn)行增強.圖像去噪增強結(jié)果如圖5所示.
圖5 圖像去噪增強結(jié)果
在計算牙刷位置時,需要將牙刷從背景中分割.經(jīng)過去噪增強后圖像被分為兩部分:前景與背景.背景區(qū)域像素灰度值基本被設(shè)置為0,前景與背景區(qū)域的灰度值存在明顯差異,因此通過閾值法將牙刷從背景中分割.通過牙刷圖像的灰度直方圖找到最佳的圖像分割閾值[5],對于圖5中去噪增強后的圖像,最佳閾值范圍為(15,65).此外,進(jìn)行閾值分割后得到的圖像會存在部分孔洞,孔洞區(qū)域會對計算牙刷中心坐標(biāo)與方向角帶來一定的干擾,因此需要對這些孔洞進(jìn)行填充.使用漫水填充法對孔洞進(jìn)行填充,對于圖像中一些細(xì)小孤立的點,使用形態(tài)學(xué)開運算將其去除,閾值分割結(jié)果如圖6所示.
圖6 閾值分割結(jié)果
通過確定牙刷外接矩形的方法計算牙刷的中心位置及方向角.首先,通過圖像的動量矩計算牙刷的重心和方向角,計算得到主軸線.作主軸線的垂線,平移主軸線和垂線,得到牙刷的外接矩形,外接矩形的中心點坐標(biāo)即為牙刷的中心坐標(biāo).檢測結(jié)果如圖7所示,4只牙刷的中心位置坐標(biāo)和方向角如表2所示,檢測過程單只牙刷所耗時間為0.083 s.
圖7 檢測結(jié)果圖
表2 檢測結(jié)果
文中使用深度學(xué)習(xí)的方法來對牙刷的姿態(tài)進(jìn)行識別,其實質(zhì)為對牙刷4種姿態(tài)的圖像進(jìn)行分類,是一個多分類問題.姿態(tài)識別過程如圖8所示,包括:① 采集和標(biāo)注不同姿態(tài)的牙刷圖像作為數(shù)據(jù)集,并對數(shù)據(jù)集進(jìn)行預(yù)處理,對牙刷圖像按照外接矩形進(jìn)行裁剪,只保留矩形框內(nèi)的牙刷圖像;② 將數(shù)據(jù)集劃分訓(xùn)練數(shù)據(jù)集與測試數(shù)據(jù)集,使用訓(xùn)練數(shù)據(jù)集對模型進(jìn)行訓(xùn)練,使用測試數(shù)據(jù)集對訓(xùn)練完成的模型進(jìn)行測試.若測試正確率不符合要求,則調(diào)整訓(xùn)練參數(shù)重新進(jìn)行訓(xùn)練,若正確率符合要求,則保存訓(xùn)練好的模型;③ 將待識別的圖像輸入訓(xùn)練完的模型,模型將判斷結(jié)果輸出.
圖8 姿態(tài)識別流程
采用深度殘差網(wǎng)絡(luò)[6](residual network,ResNet)作為牙刷姿態(tài)識別模型.在深度神經(jīng)網(wǎng)絡(luò)[6]訓(xùn)練中,隨著網(wǎng)絡(luò)深度的增加,理論上可以取得更好的訓(xùn)練結(jié)果,但實際過深的網(wǎng)絡(luò)會產(chǎn)生梯度彌散和梯度爆炸問題,導(dǎo)致模型達(dá)不到理想的訓(xùn)練效果[7].深度殘差網(wǎng)絡(luò)通過引入殘差網(wǎng)絡(luò)結(jié)構(gòu)來解決上述問題.殘差模塊結(jié)構(gòu)如圖9所示.
圖9 殘差模塊結(jié)構(gòu)
模塊目的是學(xué)習(xí)輸入x、輸出y之間的殘差映射F(x)=H(x)-x,而非像普通卷積神經(jīng)網(wǎng)絡(luò)直接學(xué)習(xí)輸入x、輸出y之間的映射H(x),因此大幅簡化了學(xué)習(xí)目標(biāo),降低了訓(xùn)練難度.而且通過跳躍連接直接將輸入傳遞給輸出,一方面在前向傳播中減少了信息的損失,提高了模型的分類準(zhǔn)確率,另一方面在反向傳播中保證了梯度的傳播,降低了梯度彌散問題出現(xiàn)的概率[8-9].
網(wǎng)絡(luò)模型結(jié)構(gòu)如圖10所示.
圖10 網(wǎng)絡(luò)模型結(jié)構(gòu)
文中試驗的硬件環(huán)境為Win10操作系統(tǒng),i7-3560QM CPU,4 GB內(nèi)存.采集4種牙刷的4種姿態(tài)各400張圖片,其中200張用于模型訓(xùn)練,200張用于測試模型正確率.在模型訓(xùn)練的過程中,選用權(quán)重衰減為0.004,批量大小為4,學(xué)習(xí)速率從0.000 1開始,整個模型進(jìn)行50次訓(xùn)練.進(jìn)行多組訓(xùn)練,試驗參數(shù)如表3所示,所對應(yīng)的測試數(shù)據(jù)集的正確率曲線如圖11所示.結(jié)合正確率曲線與參數(shù)表發(fā)現(xiàn):選用學(xué)習(xí)率為0.000 1,動量為0.88,權(quán)重衰減為0.000 4,批次大小為4時,模型經(jīng)過15次的訓(xùn)練測試正確率達(dá)到100%.使用模型對100張圖像進(jìn)行姿態(tài)識別,每1張的平均時間為0.205 s.該模型訓(xùn)練后對圖12中3只牙刷進(jìn)行檢測,平均1只牙刷所耗時間為0.380 s.
表3 參數(shù)表
圖11 正確率曲線
圖12 識別圖片
1) 研究了牙刷位置及方向角計算算法.首先在完成相機內(nèi)參標(biāo)定的基礎(chǔ)上,求解視覺系統(tǒng)與傳送帶之間的位姿變換關(guān)系.對牙刷圖像進(jìn)行去噪增強,通過閾值分割提取感興趣區(qū)域,計算圖像的動量矩獲得牙刷的方向角和外接矩形,以外接矩形的中心作為牙刷位置,結(jié)果表明該方法可以快速準(zhǔn)確計算牙刷位置和方向角.
2) 提出了一種基于深度學(xué)習(xí)的牙刷姿態(tài)識別方法,采用深度殘差網(wǎng)絡(luò)作為牙刷姿態(tài)識別模型,使用矩形框內(nèi)的牙刷圖像訓(xùn)練殘差網(wǎng)絡(luò)模型,當(dāng)模型正確率達(dá)到要求時保存該模型,用于判斷圖像中牙刷的姿態(tài),試驗驗證了該方法的正確性,達(dá)到預(yù)期識別目標(biāo).后續(xù)將優(yōu)化深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu),進(jìn)一步提高牙刷姿態(tài)識別的速度.