丘海斌,陳 丹,王孝順
(福州大學(xué) 電氣工程與自動化學(xué)院,福州 350108)
水表廣泛用于日常生活與工業(yè)當(dāng)中,水表作為計量收費的依據(jù)屬于國家強(qiáng)制檢定的工作器具,必須經(jīng)過嚴(yán)格的檢定并檢定合格才能投入使用.所以生產(chǎn)水表的企業(yè)或計量部門需要對水表的示值誤差按照相關(guān)部門制定的規(guī)程進(jìn)行性能檢定.傳統(tǒng)的水表檢定,主要依靠人工來對水表進(jìn)行裝夾、校驗、計算記錄和卸表工作,通過人工檢定的方式不可避免的存在著工作量大,操作過程中存在較大的人為誤差,效率低等問題.隨著工業(yè)的發(fā)展,各種生產(chǎn)線自動化水平的不斷提高,為滿足生產(chǎn)與市場需要,提高生產(chǎn)效率,降低勞動強(qiáng)度,將傳統(tǒng)的人工水表檢定線改造成自動化流水線式檢定線已成為一種必然趨勢.針對水表檢定線的自動化改造,有許多學(xué)者進(jìn)行了相關(guān)的研究,在水表自動讀數(shù)方面,現(xiàn)主要有基于水表梅花針轉(zhuǎn)過的齒數(shù)計數(shù)[1,2]和指針識別獲取水表讀數(shù)[3,4],都有不錯的效果,在自動水表檢定裝置方面,周兵等[5]提出了一種靜態(tài)容積法水表自動檢定裝置,詹志杰等[6]提出一種基于流量時間法、活塞為標(biāo)準(zhǔn)器的家用冷水水表示值誤差動態(tài)全自動檢定方法.但這些研究主要集中在水表的流量檢定和校驗上,而在水表的上料,裝夾以及卸表工作鮮有研究.
目前,整個水表檢定過程中還存在著許多需要人力的重復(fù)操作如水表的上料、裝夾和分揀等,在這些階段采用工業(yè)機(jī)器人代替人工進(jìn)行工作可以有效減少人力需求,提高工作效率,并進(jìn)一步增加檢定線的自動化程度,實現(xiàn)水表檢定真正意義上的全自動檢定.當(dāng)前,國內(nèi)已有了全自動電表檢定線,能實現(xiàn)機(jī)器人的自動掛(摘)表[7].然而,此類的檢定線并不能簡單地應(yīng)用于水表檢定線上,原因有多方面:一是電表具有統(tǒng)一的國家標(biāo)準(zhǔn),且形狀是規(guī)則的立方體,而水表沒有統(tǒng)一的國家標(biāo)準(zhǔn),且形狀也不規(guī)則;二是在水表檢定過程中,流經(jīng)水表的水流是有向的,并且多個水表需要串聯(lián)連接檢定,這要求機(jī)器人在抓取過程中要能準(zhǔn)確判斷水表的方向和姿態(tài);三是在水表檢定流程上需要抓取的環(huán)節(jié)有多個,背景不一且較為復(fù)雜.由于檢定線上需要檢定的水表型號通常有多種,每種水表的參數(shù)又有所差別同時后續(xù)的檢定也需要進(jìn)行型號的區(qū)分以放置到對應(yīng)的檢定裝置中,因此需要對水表進(jìn)行分類抓取.然而,水表之間有差別的同時又具有較大的相似性,這對于基于人工設(shè)計特征的模式識別方法是比較困難的問題.針對上述問題,本文設(shè)計了一個基于深度學(xué)習(xí)網(wǎng)絡(luò)YOLOv3[8]的水表抓取系統(tǒng),該系統(tǒng)通過YOLOv3 網(wǎng)絡(luò)進(jìn)行目標(biāo)水表檢測,獲得水表的類型和相應(yīng)水表位置,再進(jìn)行水表的位姿檢測獲取水表抓取點的像素坐標(biāo)和姿態(tài)角,最后驅(qū)動機(jī)器人進(jìn)行抓取、調(diào)整姿態(tài)并放置.本文的水表抓取系統(tǒng)在進(jìn)行抓取時不需要使用特定的托盤裝載水表,可以實現(xiàn)機(jī)器人在不同背景下對流水線上不同型號水和不同姿態(tài)水表進(jìn)行分類抓取與位姿調(diào)整,抓取成功率較高,在一定條件下受外部環(huán)境影響小,可靠性高.
水表抓取系統(tǒng)的框圖如圖1 所示,整個系統(tǒng)分為3 個部分即視覺檢測識別部分、機(jī)器人定位部分和機(jī)器人控制部分.視覺檢測識別部分使用CCD 攝像頭獲取檢定流水線上的圖像,為減少檢測時間,將原圖分辨率改為416×416 輸入到訓(xùn)練好的YOLOv3 的網(wǎng)絡(luò)模型獲取水表區(qū)域坐標(biāo)與示數(shù)區(qū)域坐標(biāo),根據(jù)得到的坐標(biāo)將相關(guān)區(qū)域分割出來,其中水表區(qū)域用來計算抓取點即水表表盤圓心的坐標(biāo),示數(shù)區(qū)用于檢測其長邊所在的直線,根據(jù)示數(shù)區(qū)位于出水口方向且與水表橫向垂直的特性,結(jié)合得到直線再結(jié)合表盤圓心坐標(biāo)就可以確定水表的位姿.機(jī)器人定位部分則通過手眼標(biāo)定得到相機(jī)和機(jī)器人坐標(biāo)系的旋轉(zhuǎn)矩陣和平移矩陣,進(jìn)而將圓心的像素坐標(biāo)和角轉(zhuǎn)化為機(jī)器人坐標(biāo)系下的坐標(biāo)與姿態(tài).機(jī)器人控制部分負(fù)責(zé)驅(qū)動機(jī)器人移動并進(jìn)行水表的抓取,并根據(jù)水表需要放置的位置控制機(jī)器人移動到指定位置進(jìn)行放置.
YOLOv3 為YOLO[9]算法的第3 個版本,屬于One-Stage 檢測算法,這類算法將檢測問題轉(zhuǎn)換為回歸問題,將物體的定位和分類放在一個步驟完成,直接在輸出層回歸邊界框的位置及其所屬的類別,因此在檢測速度上獲得了較大的提升.YOLOv3 在YOLOv2 的基礎(chǔ)上進(jìn)行了改進(jìn),YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示,在特征提取方面,Y O L O v 3 提出了新的特征提取網(wǎng)絡(luò)Darknet-53,整個特征提取網(wǎng)絡(luò)完全由卷積層組成,沒有用到池化操作,同時借鑒了ResNet[10]的思想添加許多的殘差模塊防止訓(xùn)練時梯度爆炸或消失以減少訓(xùn)練難度.在預(yù)測方面,YOLOv3 中抽取了3 個不同尺度的圖像特征進(jìn)行多尺度的預(yù)測,分別對特征圖大小為13×13、26×26、52×52 的3 個尺度進(jìn)行二倍的上采樣融合并在每個尺度的特征圖上獨立做檢測,YOLOv3 中將圖片按特征圖的大小劃分為N×N個單元格,每個單元格需要預(yù)測3 個邊界框(bounding box),最后每個尺度輸出的張量為N×N×[3×(4+1+C)],包括4 個邊界框的信息,一個置信度得分,C個預(yù)測的類別數(shù).

圖2 YOLOv3 的網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv3 在檢測過程中沿用了YOLOv2 中使用的anchor box,anchor box 的初始參數(shù)會直接影響網(wǎng)絡(luò)的學(xué)習(xí)速度和檢測精度,需要根據(jù)自己的數(shù)據(jù)集重新聚類分析.在聚類算法中,K-means 具備簡潔快速,易于實現(xiàn)的優(yōu)點[11],因此本文使用K-means 對數(shù)據(jù)集重新進(jìn)行聚類得到適合的anchor box.
本文采用真空吸盤作為水表的抓取工具,為使抓取時可以容許最大誤差,因此以水表表盤的圓心做為抓取點,計算圓心像素坐標(biāo)的檢測流程如圖4 所示,相應(yīng)圖片處理結(jié)果如圖5 所示.

圖4 圓心檢測的算法流程圖

圖5 水表圖片處理結(jié)果圖
3.1.1 水表區(qū)域提取與灰度化
經(jīng)過YOLOv3 檢測后可以得到水表區(qū)域的坐標(biāo),經(jīng)過轉(zhuǎn)換可以將水表區(qū)域從原圖提取出來處理,避免多余背景的干擾,提取后進(jìn)行灰度化處理.式(1)的灰度化算法是采用根據(jù)人眼對光譜適應(yīng)能力得到的一組灰度化系數(shù)[12],如下:

3.1.2 中值濾波
由于原始圖像中存在較多的噪聲,需要對圖片進(jìn)行濾波處理.中值濾波采用像素點鄰域灰度值的中值來代替該像素點的灰度值,相比于其他濾波算法在去除噪聲的同時可以保留圖像的邊緣細(xì)節(jié),能夠避免噪聲對邊緣檢測造成較大的影響,因此在本文中采用中值濾波對圖片進(jìn)行降噪處理.
3.1.3 自適應(yīng)閾值
在圖像處理應(yīng)用中閾值化操作是一個很常用的處理方式,本文中采用的閾值方法是局部自適應(yīng)閾值,每個像素點的閾值根據(jù)點(x,y)局部鄰域塊的高斯加權(quán)和來確定二值化的閾值T(x,y),確定閾值后根據(jù)式(2)進(jìn)行二值化,d(x,y)為閾值化后點的像素值,src(x,y)為閾值化之前對應(yīng)點的像素值.
(2)學(xué)校應(yīng)加強(qiáng)校園安全管理,注重欺凌行為的預(yù)防。一方面,學(xué)校要加強(qiáng)宣傳工作,讓學(xué)生了解相應(yīng)法律及欺凌行為的危害,從思想上降低學(xué)生實施欺凌行為的沖動。學(xué)校可以采取多樣化的宣傳方式,通過圖片、視頻、戲劇化表演等方式增強(qiáng)教育的趣味性,使學(xué)生切實感受到欺凌的危害性;另一方面,學(xué)校也要不斷尋求新的管理方式,消滅校園監(jiān)控管理盲區(qū),加強(qiáng)對校園的安全巡視工作,課間時段要鼓勵班主任或任課教師走進(jìn)教室及走廊,及時了解學(xué)生及班級情況。

3.1.4 連通小區(qū)域的去除
經(jīng)過閾值化后存在有許多連通小區(qū)域,為避免對之后圖片處理造成干擾需要去除多余的黑色的小連通區(qū)域,本文通過指針訪問像素,對圖像中各個連通區(qū)域進(jìn)行標(biāo)記,統(tǒng)計各個連通區(qū)域的像素總數(shù)并與給定閾值相比,小于閾值則將此連通域像素值全部變?yōu)?55,大于閾值連通域像素值不變化.
3.1.5 橢圓擬合
由于水表在不同位置會導(dǎo)致圖像中水表表盤不為標(biāo)準(zhǔn)圓形,所以本文使用橢圓擬合尋找表盤圓心,橢圓的表達(dá)公式如式(3)所示,算法中通過式(4)~式(8)轉(zhuǎn)化為用圓心(x0,y0),長短軸a,b,旋轉(zhuǎn)角α及長短軸比ρ等5 個參數(shù)唯一表示.


從圖5 中第5 張圖片中可以看出經(jīng)過連通小區(qū)域的去除后表盤圓形輪廓保存的比較完整,因此本文利用輪廓的點集進(jìn)行擬合得到表盤所在的圓,但在某些情況下輪廓會發(fā)生斷裂不連貫,一個輪廓被分為多個點集以致擬合不出所需要的圓如圖6(a)所示,因此本文對其進(jìn)行了改進(jìn),改進(jìn)后橢圓擬合的結(jié)果如圖6(b)所示,橢圓檢測使用的具體過程如算法1.

?

圖6 直接擬合和改進(jìn)后的擬合效果對比圖
本文利用水表示數(shù)區(qū)所在一側(cè)為出水口方向且示數(shù)區(qū)的橫向與水表整體位姿基本是垂直的特性來判斷水表的姿態(tài),具體流程如圖7 所示.

圖7 水表姿態(tài)判斷流程圖
3.2.1 邊緣檢測
通過邊緣檢測可以更好的將圖像中的邊緣信息表示在圖片中,更方便于下一步的直線檢測,系統(tǒng)中采用Canny 算子進(jìn)行邊緣檢測,先使用式(9)的高斯函數(shù)進(jìn)行圖像的去噪、平滑,再使用一對卷積陣列計算水平和垂直方向的梯度分量Gx和Gy并用式(10)與式(11)計算梯度的幅值G和方向θ,最后使用非極大值抑制排除非像素邊緣保留候選邊緣,并根據(jù)雙閾值從候選邊緣點中尋找最終的邊緣點,Canny 算子使用了兩個滯后閾值其中低閾值用于邊緣連接,高閾值用于控制邊緣初始段,Canny 算子的高低閾值比一般在2:1~3:1 之間.

3.2.2 直線檢測與篩選
本文采用累計概率霍夫變換對直線進(jìn)行檢測,霍夫變換中選擇使用極坐標(biāo)系來表示直線,將圖像上的點映射到極坐標(biāo)系通過式(12)表示,因此可以通過檢測交于一點的曲線數(shù)量是否超過閾值來判斷是否檢測到了直線,累計概率霍夫變換是對霍夫變換的改進(jìn),不需要對每個點都進(jìn)行追蹤,在一定范圍內(nèi)進(jìn)行霍夫變換,對于隨機(jī)的前景點,當(dāng)曲線滿足最小閾值時將直線找出并將直線上的點刪除,記錄起始點和中點判斷是否滿足最小長度,若滿足記錄下對應(yīng)參數(shù).累計概率霍夫變換得到的參數(shù)為檢測到線段的端點坐標(biāo),為便于直線篩選姿態(tài)角的判斷,本文將其轉(zhuǎn)化為y=kx+b直線方程來表示所在的直線.檢測出來的直線通常不止一條,算法中根據(jù)示數(shù)區(qū)擬合的兩條邊緣直線平行進(jìn)行篩選,并從中選取一條得到最后所需直線.

3.2.3 姿態(tài)角的計算
經(jīng)過上述的檢測后,可以得到水表的表盤圓心(x0,y0)與示數(shù)區(qū)直線方程,如圖8 所示,uov表示像素坐標(biāo)系,箭頭垂直指向直線位置,L表示實驗時圖像姿態(tài)角為0°時示數(shù)區(qū)直線的所在的位置,L1和L2表示兩種不同姿態(tài)時檢測直線所在的位置,此時水表的姿態(tài)方向為圖中箭頭所指方向,結(jié)合機(jī)械臂第六軸的旋轉(zhuǎn)方向,將角度θ范圍限制在0°到180°,以0°姿態(tài)角為標(biāo)準(zhǔn)線,左邊為負(fù)角度,右邊為正角度,設(shè)在圖8 中當(dāng)水表兩種姿態(tài)與標(biāo)準(zhǔn)線的夾角分別為θ1和θ2,則水表的姿態(tài)角分別為θ1和-θ2.所以在求取角度θ時只需要聯(lián)立圓心與直線方程就可以計算出姿態(tài)角θ.

圖8 像素坐標(biāo)系下的旋轉(zhuǎn)角度示意圖
由橢圓擬合后可以得到抓取點的像素坐標(biāo),還需要通過標(biāo)定將其轉(zhuǎn)化為機(jī)器人坐標(biāo)系下的坐標(biāo)以實現(xiàn)機(jī)器人對目標(biāo)的抓取.其中像素坐標(biāo)和相機(jī)坐標(biāo)系關(guān)系可由式(13)表示,式中(u,v)為像素坐標(biāo)系中的坐標(biāo),Xc,Yc,Zc表示相機(jī)坐標(biāo)系下的坐標(biāo),其中K為相機(jī)內(nèi)參,本文中利用文獻(xiàn)[13]標(biāo)定法對相機(jī)進(jìn)行標(biāo)定.實驗中相機(jī)以眼在手外的方式固定,因為機(jī)器人和相機(jī)均固定,所以由相機(jī)坐標(biāo)系到基座標(biāo)系的變換矩陣T可以唯一確定.相機(jī)坐標(biāo)系到基座標(biāo)系的坐標(biāo)轉(zhuǎn)換關(guān)系可以用式(14)表示,其中R為旋轉(zhuǎn)矩陣,t為平移矩陣,Xb,Yb,Zb為機(jī)器人基座標(biāo)系下的坐標(biāo).本文利用最小二乘法來計算兩個坐標(biāo)系的變換矩陣,在圖像中選取系列的點,計算這些點在相機(jī)坐標(biāo)系下的坐標(biāo)pi,并控制機(jī)器人末端移動到指定的點獲得一一對應(yīng)的基座標(biāo)qi,將其建模為式(15)的形式,再利用文獻(xiàn)[14]介紹的SVD(Singular Value Decomposition)求解方法對式(15)進(jìn)行求解得到相機(jī)到基座標(biāo)的旋轉(zhuǎn)矩陣R和平移矩陣t.得到變換矩陣后就可以計算出在機(jī)器人基坐標(biāo)系下抓取點的坐標(biāo),通過正運(yùn)動學(xué)可以求解出末端手爪要到達(dá)的位置,再由逆運(yùn)動學(xué)求解6 個關(guān)節(jié)角并驅(qū)動機(jī)器人進(jìn)行抓取.


實驗平臺如圖9(a)所示,硬件部分包括一臺ABB1200 型六自由度機(jī)器人,一臺500 萬像素的CCD 工業(yè)相機(jī),其拍攝的圖片尺寸為2588×1940,一臺通用計算機(jī),其使用的CPU 為i7-8700,GPU 為1080Ti,機(jī)器人實際抓取圖像如圖9(b)所示.軟件開發(fā)環(huán)境為Visual Studio 2013,并配置有CUDA 庫、cuDNN 庫和OpenCV 圖像處理庫.

圖9 實驗平臺和水表抓取圖像
將水表擺放在相機(jī)視野內(nèi),使用YOLOv3 模型可以準(zhǔn)確檢測出每個水表的類別以及水表、示數(shù)區(qū)的位置,檢測結(jié)果如圖10(a)所示,其中框為水表的位置區(qū)域,框的左上方為物體的類別和置信度,水表的位姿檢測結(jié)果如圖10(b)所示.
為驗證YOLOv3 在水表抓取系統(tǒng)中的有效性,實驗中與兩種比較典型的深度學(xué)習(xí)網(wǎng)絡(luò)Faster RCNN[15]和SSD(Single Shot multibox Detector)[16]進(jìn)行比較,依次對3 種水表進(jìn)行抓取,每種水表抓取20 次,以將水表抓取到指定位置并且將水表方向旋轉(zhuǎn)到姿態(tài)角為0 的狀態(tài)視為成功抓取,其他情況則視為抓取失敗,抓取結(jié)果如表1 所示.
從表1 中可以看出使用Faster RCNN 和YOLOv3網(wǎng)絡(luò)的抓取效果相對較好,但Faster RCNN 的檢測時間要明顯要長于YOLOv3.使用SSD 網(wǎng)絡(luò)的抓取成功率比較低,通過分析SSD 檢測的結(jié)果發(fā)現(xiàn)SSD 對于水表示數(shù)區(qū)域識別效果比較差,會出現(xiàn)識別不全、錯誤的情況導(dǎo)致姿態(tài)角計算錯誤出現(xiàn)抓取失敗的情況.綜合抓取效果和檢測時間YOLOv3 比較適用于本文的抓取系統(tǒng)中.為進(jìn)一步驗證水表抓取系統(tǒng)的可靠性,本文分別在一般亮度環(huán)境下、偏暗環(huán)境、偏亮環(huán)境和兩種不同背景中對3 類水表分別進(jìn)行抓取實驗,實驗環(huán)境如圖11 所示,每類水表單獨連續(xù)抓取20 次,并在有其他水表干擾的情況下連續(xù)抓取10 次,判定抓取成功條件與上述實驗相同,抓取的結(jié)果如表2 所示.

圖10 檢測結(jié)果圖

表1 使用不同網(wǎng)絡(luò)進(jìn)行水表抓取的結(jié)果
從表2 中的實驗數(shù)據(jù)可以看出,系統(tǒng)可以實現(xiàn)在不同的背景下進(jìn)行水表抓取,同時在光照范圍一定的條件下,受到環(huán)境光的影響小.但過暗和過亮也會影響系統(tǒng)的檢測,系統(tǒng)識別率會降低無法正常工作.實驗數(shù)據(jù)中水表3 的抓取成功率更低,主要原因是因為水表表盤相比其他兩個水表較小有個突出的部分,抓取時吸盤碰到突出部分閉合不緊導(dǎo)致抓取失敗.在實際的水表檢定線上,檢定環(huán)節(jié)需要檢定水表的最大流量、分界流量與最小流量等,所需要的時間較長,所以對于其他環(huán)節(jié)執(zhí)行速度上要求不高,本文的水表抓取系統(tǒng)能夠以較快的速度識別水表并進(jìn)行抓取,能夠滿足實際水表檢定線上的水表抓取需求.

圖11 不同的抓取環(huán)境圖

表2 不同環(huán)境下水表抓取結(jié)果
本文設(shè)計了一個基于機(jī)器視覺的水表抓取系統(tǒng),利用該系統(tǒng)可以實現(xiàn)對檢定線上的水表進(jìn)行型號識別并準(zhǔn)確抓取.系統(tǒng)通過YOLOv3 網(wǎng)絡(luò)模型能準(zhǔn)確的實現(xiàn)水表型號的識別以及位置的檢測,得到水表型號后可以防止誤抓也能夠使系統(tǒng)可以根據(jù)不同型號設(shè)置相應(yīng)的參數(shù)減少誤差提高抓取的成功率.實驗結(jié)果表明,本文的設(shè)計的抓取系統(tǒng)受到背景和光照的影響小,3 類水表都有較高的抓取成功率,能夠有效可靠的完成自動化檢定線上水表的抓取.