同濟(jì)大學(xué)機(jī)械與能源工程學(xué)院 上海 201804
橋式起重機(jī)是現(xiàn)代工業(yè)生產(chǎn)和起重運(yùn)輸中實(shí)現(xiàn)生產(chǎn)過程機(jī)械化、自動(dòng)化的重要設(shè)備,廣泛應(yīng)用于室內(nèi)外工礦作業(yè)、鋼鐵化工、鐵路交通、港口碼頭以及車間物流周轉(zhuǎn)等場(chǎng)所[1]。提高橋式起重機(jī)的效率和實(shí)現(xiàn)無人化控制的研究是當(dāng)前熱點(diǎn),其中閉環(huán)防搖控制是實(shí)現(xiàn)起重機(jī)自動(dòng)化控制的重要一環(huán)。閉環(huán)防搖控制需要實(shí)時(shí)檢測(cè)擺角作為防搖算法的反饋量,對(duì)于擺角檢測(cè)的研究具有重要意義。
目前的擺角檢測(cè)方式主要有:直接檢測(cè)和間接檢測(cè)。直接檢測(cè)采用在吊鉤上安裝角度傳感器或者加速度傳感器進(jìn)行測(cè)量,主要缺點(diǎn)是需要對(duì)起重機(jī)的吊鉤結(jié)構(gòu)進(jìn)行改造,且在運(yùn)行過程中容易造成損壞。間接檢測(cè)有激光檢測(cè)和機(jī)器視覺檢測(cè),激光檢測(cè)是在小車運(yùn)行下方安裝一組激光發(fā)射裝置和接收裝置,通過三角幾何關(guān)系可以測(cè)得吊重?cái)[角信息;機(jī)器視覺檢測(cè)是采用高速的CCD攝像頭,通過面陣攝像機(jī)采集吊重偏擺的圖像,然后進(jìn)行圖像處理,通過線性回歸分析得到直線方程,從而得到吊重的擺動(dòng)信息[2]。激光檢測(cè)的成本較高,而視覺檢測(cè)對(duì)起重機(jī)的機(jī)械結(jié)構(gòu)改造較小且成本較低,推廣應(yīng)用更方便。目前的視覺檢測(cè)多采用識(shí)別外加標(biāo)志物的方法實(shí)現(xiàn)[3],對(duì)于直接識(shí)別吊鉤檢測(cè)的研究較少。由于機(jī)器視覺技術(shù)和深度學(xué)習(xí)技術(shù)的發(fā)展,直接識(shí)別吊鉤的方案有了實(shí)現(xiàn)的可能。文中提出了一種使用YOLOv3算法直接識(shí)別吊鉤的擺角檢測(cè)系統(tǒng)。
擺角檢測(cè)系統(tǒng)是通過用YOLOv3算法提前訓(xùn)練好的模型對(duì)吊鉤的實(shí)時(shí)圖像進(jìn)行檢測(cè),由計(jì)算機(jī)根據(jù)圖像中吊鉤偏離平衡位置的距離結(jié)合吊繩繩長(zhǎng)計(jì)算出吊繩的擺動(dòng)角度。系統(tǒng)的前端部分是一個(gè)攝像頭和數(shù)據(jù)采集卡,系統(tǒng)的硬件組成如圖1所示,由攝像頭、圖像采集卡和計(jì)算機(jī)組成。
圖1 硬件組成
攝像頭垂直固定在起重機(jī)小車的吊繩吊點(diǎn)附近,對(duì)吊鉤進(jìn)行攝像,如圖2所示。
圖2 攝像頭安裝位置示意圖
攝像頭完成圖像的獲取,圖像采集卡將圖像信息轉(zhuǎn)為計(jì)算機(jī)信號(hào),計(jì)算機(jī)進(jìn)行圖像預(yù)處理,并運(yùn)行YOLOv3目標(biāo)檢測(cè)程序,識(shí)別吊鉤并輸出位置,通過吊鉤的位置和吊繩的長(zhǎng)度計(jì)算出擺角,其中吊繩的長(zhǎng)度通過安裝在起升電機(jī)上的旋轉(zhuǎn)編碼器測(cè)得。圖3為擺角檢測(cè)的流程圖。
圖3 視覺擺角檢測(cè)流程圖
使用OpenCV攝像頭采集吊鉤在運(yùn)行過程中的圖像,并制作數(shù)據(jù)集,根據(jù)吊鉤擺動(dòng)頻率確定,一般吊鉤擺動(dòng)頻率大于1 Hz,故可采用大于10以上的幀率,本文采用的幀率為20幀,將拍攝的圖像放入文件夾中,主要采集不同光照、不同背景下吊鉤在不同高度的圖像,選取1 100張圖像,1 000張作為訓(xùn)練圖像,100張作為測(cè)試圖像,每張圖片大小為640×480像素。
用開源軟件Labeling手工框選出每幀圖像中的滑輪,標(biāo)注所需要的數(shù)據(jù),包括每幅圖像中目標(biāo)區(qū)域的位置、尺寸和名字,生成相應(yīng)信息保存在相應(yīng)的xml文件中[4]。
YOLOv3是一種使用深卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的特征來檢測(cè)物體的目標(biāo)檢測(cè)算法[5]。如圖4為YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)圖,圖中采用了Darknet-53的網(wǎng)絡(luò)結(jié)構(gòu),由卷積和殘差結(jié)構(gòu)組成,輸出有三個(gè)尺度,每個(gè)尺度內(nèi)通過卷積核的方式實(shí)現(xiàn)局部特征交互,三個(gè)尺度可以對(duì)應(yīng)檢測(cè)不同類型的目標(biāo),13×13用于檢測(cè)大型目標(biāo),26×26用于檢測(cè)中型目標(biāo),52×52用于檢測(cè)小型目標(biāo)。多尺度的輸出可以兼顧檢測(cè)不同大小的目標(biāo)。
圖4 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)圖
YOLOv3相對(duì)于目前的其他目標(biāo)檢測(cè)算法,可以兼顧檢測(cè)速度和精度,符合擺角檢測(cè)的實(shí)時(shí)性要求,并且該算法可以兼顧不同尺度的目標(biāo),吊鉤在不同起升高度時(shí)的尺度相差較大,適合于擺角檢測(cè)系統(tǒng)。
在Linux系統(tǒng)中先配置Darknet框架,對(duì)數(shù)據(jù)集進(jìn)行處理,修改保存為YOLOv3的訓(xùn)練格式,使用訓(xùn)練圖像進(jìn)行預(yù)訓(xùn)練和訓(xùn)練,測(cè)試圖像進(jìn)行模型測(cè)試,最后進(jìn)行預(yù)測(cè)。
圖5為復(fù)雜背景下滑輪的檢測(cè)結(jié)果,檢測(cè)單張圖片的運(yùn)行時(shí)間是0.02 s,IoU可以達(dá)到100%。
圖5 滑輪檢測(cè)結(jié)果
根據(jù)YOLOv3檢測(cè)到的吊鉤的位置,通過像素坐標(biāo)系與世界坐標(biāo)系之間的坐標(biāo)變換,可計(jì)算出實(shí)際的吊鉤的擺動(dòng)量,再根據(jù)吊繩的長(zhǎng)度可計(jì)算出擺角的大小。圖6為像素坐標(biāo)系與世界坐標(biāo)系的變換示意圖。圖中Ow-XwYwZw為世界坐標(biāo)系,O-XcYcZc為相機(jī)坐標(biāo)系,OD-uv,為像素坐標(biāo)系,O1-XY為圖像坐標(biāo)系。
圖6 像素坐標(biāo)系與世界坐標(biāo)系變換示意圖
世界坐標(biāo)系通過旋轉(zhuǎn)和平移變化可以得到相機(jī)坐標(biāo)系,根據(jù)透視投影關(guān)系可以將三維的相機(jī)坐標(biāo)系轉(zhuǎn)換為二維的圖像坐標(biāo)系,像素坐標(biāo)系與圖像坐標(biāo)的坐標(biāo)原點(diǎn)不同,通過平移變換可得,最終像素坐標(biāo)系和世界坐標(biāo)系之間的變換關(guān)系可用公式表示為
上述是理想線性模型,而實(shí)際的鏡頭并非理想的透視成像,而是有徑向畸變和切向畸變[6]。
徑向畸變可以描述為
切向畸變可以表示為
式中:(x, y)為平面畸變點(diǎn),(x',y')為理想點(diǎn)。
采用張正友標(biāo)定法獲得內(nèi)參、外參和畸變系數(shù)。綜上所述,通過張正友標(biāo)定法和吊繩的長(zhǎng)度可得到像素坐標(biāo)系到世界坐標(biāo)系之間的變換關(guān)系。
如圖7為擺角計(jì)算示意圖,α為吊繩擺角大小,△x、△y為上述所求,l為吊繩長(zhǎng)度,可得
圖7 擺角計(jì)算示意圖
式中l(wèi)和坐標(biāo)變換中Zc表示的物理值相同,通過數(shù)學(xué)計(jì)算可約掉,最后可計(jì)算出擺角。
1)所設(shè)計(jì)的擺角檢測(cè)系統(tǒng)滿足實(shí)時(shí)性要求。
2)通過YOLOv3算法可實(shí)時(shí)檢測(cè)吊鉤并輸出位置,檢測(cè)速度和精度滿足要求。
3)基于視覺的擺角檢測(cè)系統(tǒng)可實(shí)現(xiàn)擺角的檢測(cè)。