李 斌,劉明興,姚明杰,麻方達(dá),李曉帆,符朝興
(青島大學(xué)機(jī)電工程學(xué)院,青島 266071)
為解決生產(chǎn)車間人工運(yùn)輸物資效率低、工人勞動(dòng)強(qiáng)度大、企業(yè)人力成本高等問題,采用AGV完成車間物流調(diào)度已成為最佳選擇之一。AGV泛指采用導(dǎo)引方式運(yùn)輸物質(zhì)的輪式移動(dòng)機(jī)器人,最早出現(xiàn)于物流系統(tǒng)領(lǐng)域,此后,應(yīng)用范圍逐步向各領(lǐng)域擴(kuò)展[1]。相比于傳統(tǒng)運(yùn)輸車,AGV能夠?qū)崿F(xiàn)自動(dòng)啟停、避障、導(dǎo)引、尋跡、充電等功能,體現(xiàn)出當(dāng)前工業(yè)發(fā)展下智能化、無人化的特點(diǎn)。視覺定位是通過攝像頭獲取環(huán)境信息,將信息返回至設(shè)備控制端實(shí)現(xiàn)設(shè)備的定位。視覺導(dǎo)航根據(jù)相機(jī)安裝位置可分為全局視覺導(dǎo)航和局部視覺導(dǎo)航[2],其中全局視覺導(dǎo)航相機(jī)安裝在場景正上方,與車體分離;局部視覺導(dǎo)航相機(jī)一般安裝于AGV車體之上。全局視覺對(duì)AGV的定位流程可分為識(shí)別和定位[3],首先在全局圖像中識(shí)別到AGV,隨后確定AGV在世界坐標(biāo)系中位姿。目標(biāo)識(shí)別根據(jù)識(shí)別方式分為傳統(tǒng)目標(biāo)識(shí)別方式和基于深度學(xué)習(xí)的目標(biāo)識(shí)別方式。傳統(tǒng)目標(biāo)識(shí)別方式根據(jù)原理不同可以分為基于圖像特征匹配的識(shí)別方式和基于顏色的識(shí)別方式。如通過混合高斯模型和輪廓提取完成目標(biāo)車輛位姿的粗估,實(shí)現(xiàn)了泊車AGV和目標(biāo)車輛的粗對(duì)齊[4]。而基于車輪點(diǎn)云對(duì)稱性特征的車輛位姿精確估計(jì)方法通過對(duì)目標(biāo)車輛的位姿做出精確估計(jì),實(shí)現(xiàn)了泊車AGV和目標(biāo)車輛的精確對(duì)齊。Donmez等[5]在機(jī)器人上設(shè)計(jì)了三個(gè)標(biāo)記點(diǎn),根據(jù)標(biāo)記點(diǎn)與目的地組成三角形的邊長和夾角控制速度和方向,并與PID和fuzzy-PID進(jìn)行了實(shí)驗(yàn)比較。對(duì)機(jī)器人做標(biāo)記進(jìn)行識(shí)別定位的方式還有設(shè)計(jì)標(biāo)記卡、掃描二維碼等[6-7],如通過在移動(dòng)機(jī)器人上設(shè)計(jì)的蝴蝶式標(biāo)記進(jìn)行定位,利用顏色外形等信息通過全局?jǐn)z像頭定位在足球機(jī)器人中應(yīng)用較多[8]。傳統(tǒng)目標(biāo)檢測方式原理簡單、成本低、易實(shí)現(xiàn),但需提前設(shè)計(jì)特征,對(duì)復(fù)雜環(huán)境檢測效果不好?;谏疃葘W(xué)習(xí)的識(shí)別方式分為基于回歸的One-Stage和基于區(qū)域候選的Two-Stage方法[9]。One-Stage方法主要包括YOLO、SSD兩種,Two-Stage方法主要包括R-CNN、Fast R-CNN、R-FCN等[10]。萬元芳[11]分別采用傳統(tǒng)圖像分割和基于深度學(xué)習(xí)的圖像分割方式識(shí)別機(jī)器魚的位姿;段曉磊等[3]主要針對(duì)AGV遮擋丟失問題,利用長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)預(yù)測目標(biāo)運(yùn)動(dòng)狀態(tài),支持向量機(jī)(Support Vector Machine,SVM)進(jìn)行再識(shí)別和矯正。YOLO算法檢測目標(biāo)時(shí),利用均值漂移跟蹤目標(biāo)對(duì)AGV進(jìn)行定位[12]?;谏疃葘W(xué)習(xí)的目標(biāo)檢測準(zhǔn)確率和精度較高,對(duì)復(fù)雜環(huán)境檢測優(yōu)于傳統(tǒng)方法,但是檢測模型需要提前訓(xùn)練,速度相對(duì)較低。為此,本文選用基于深度學(xué)習(xí)的目標(biāo)檢測方法對(duì)AGV定位,訓(xùn)練YOLO檢測模型,并通過卡爾曼濾波、ORB算法進(jìn)一步提高定位速度,最后采用巴氏系數(shù)判斷定位結(jié)果的準(zhǔn)確性。
本系統(tǒng)由硬件系統(tǒng)及軟件算法構(gòu)成。硬件系統(tǒng)主要包括圖像采集模塊、AGV和PC上位機(jī)三個(gè)模塊,整體控制流程如圖1所示。圖像采集模塊將實(shí)時(shí)拍攝的車間生產(chǎn)場景傳輸?shù)絇C,PC負(fù)責(zé)處理圖像和任務(wù)調(diào)度,并通過圖像實(shí)時(shí)確定AGV位置和規(guī)劃路徑。PC規(guī)劃好每個(gè)AGV行走路線后,通過局域網(wǎng)向AGV發(fā)送指令,控制其沿指定路徑行走,并持續(xù)定位防止AGV偏離路線。在AGV到達(dá)目的地停止后,PC將AGV位姿記錄到數(shù)據(jù)庫中,在下次開始導(dǎo)航時(shí),直接獲得AGV位置姿態(tài),縮小搜索范圍。軟件算法采用YOLOv4算法進(jìn)行關(guān)鍵幀檢測,非關(guān)鍵幀通過ORB特征點(diǎn)與卡爾曼濾波結(jié)合的方式定位。
圖1 導(dǎo)航系統(tǒng)整體控制流程
1.2.1 攝像頭選型 采用單目攝像頭作為圖像采集模塊。車間模擬環(huán)境范圍為4 m×6 m,攝像頭懸掛高度為5 m。使用的攝像頭為??低旸S-IPC-T12-I,焦距為4 mm,分辨率為1 920×1 080。
1.2.2 仿真環(huán)境和硬件參數(shù) 本文通過基于深度學(xué)習(xí)的目標(biāo)檢測方式對(duì)AGV定位,不同的硬件和軟件環(huán)境檢測效果不同,采用的仿真環(huán)境和硬件參數(shù)見表1。使用MySQL數(shù)據(jù)庫,記錄AGV每次停車時(shí)位置信息,并記錄AGV具體物流信息。
表1 仿真環(huán)境和硬件參數(shù)
1.2.3 運(yùn)行空間數(shù)字化環(huán)境構(gòu)建 全局視覺定位中涉及的坐標(biāo)系有世界坐標(biāo)系、相機(jī)坐標(biāo)系、圖像坐標(biāo)系和像素坐標(biāo)系[13]。世界坐標(biāo)系用W表示,描述相機(jī)位置(m);相機(jī)坐標(biāo)系以光心為原點(diǎn)(m),用字母C表示;圖像坐標(biāo)系中光心為圖像中點(diǎn)(mm);像素坐標(biāo)系原點(diǎn)為圖像左上角(pixel),將圖像從上到下作為x軸正向,從左到右作為y軸正向,以xoy表示。在全局視覺定位算法中,根據(jù)AGV在圖像中的像素坐標(biāo)和像素坐標(biāo)與世界坐標(biāo)的轉(zhuǎn)化關(guān)系來確定AGV在世界坐標(biāo)系下的位姿。
基于目標(biāo)檢測的AGV定位算法整體流程如圖2所示,間隔n幀通過YOLO檢測AGV定位,中間幀通過卡爾曼濾波和ORB特征點(diǎn)相結(jié)合的方式定位。首先通過YOLO目標(biāo)檢測選定目標(biāo)AGV的初始位置,并保存此時(shí)檢測區(qū)域作為模板;后續(xù)幀利用卡爾曼濾波預(yù)測下一幀AGV出現(xiàn)位置,并通過特征點(diǎn)與AGV中心點(diǎn)相對(duì)位置矯正AGV定位位置,當(dāng)間隔n幀后再次通過目標(biāo)檢測矯正定位結(jié)果,減小累計(jì)誤差。
圖2 基于目標(biāo)檢測定位流程圖
2.1.1 YOLOv4算法 選擇YOLOv4作為目標(biāo)檢測的方法對(duì)AGV進(jìn)行定位。YOLOv4算法實(shí)現(xiàn)了端到端的目標(biāo)檢測,采用Darknet-53的網(wǎng)絡(luò)結(jié)構(gòu)提取圖像特征,Darknet-53網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。圖像在訓(xùn)練過程中會(huì)得到3個(gè)不同尺度的特征圖,小尺度特征圖的感受野比較大,所以可以檢測大尺寸目標(biāo),而大尺度的特征圖適合檢測小尺寸的目標(biāo)。將特征圖劃分為S×S的網(wǎng)格,對(duì)于不同尺度和數(shù)量的特征圖使用不同尺寸的先驗(yàn)框,每個(gè)網(wǎng)格負(fù)責(zé)檢測中心點(diǎn)落在該網(wǎng)格內(nèi)的目標(biāo)。特征圖中每個(gè)網(wǎng)格會(huì)預(yù)測3個(gè)邊界框,每個(gè)邊界框要預(yù)測的信息包括:邊界框位置信息(x,y,w,h),其中x、y為邊界框中心點(diǎn)坐標(biāo),w和h為邊界框的寬和高[14];物體識(shí)別度Pr(object),當(dāng)目標(biāo)中心點(diǎn)恰好落入該網(wǎng)格內(nèi),則Pr(object)=1,否則為0;voc數(shù)據(jù)集有20類,coco數(shù)據(jù)集有80類。
圖3 Darknet-53
邊框位置信息(x,y,w,h)可以通過先驗(yàn)框解碼得到
>bx=σ(tx)+cx
by=σ(ty)+cy
bw=pwetw
bh=pheth
(1)
其中,bx,by,bw,bh為邊界框相對(duì)于特征圖的位置和大小,σ為激活函數(shù)sigmoid,σ(tx)和σ(ty)是先驗(yàn)框中心點(diǎn)與左上角格點(diǎn)的偏移量,pw,ph為先驗(yàn)框的寬和高,tw,th是尺度縮放。將計(jì)算結(jié)果乘以特征圖采樣率后即可得到正式檢測框信息。
置信度可以度量框中是否存在對(duì)象的概率和邊界框位置的準(zhǔn)確度
(2)
2.1.2 YOLOv4算法的數(shù)據(jù)集訓(xùn)練 YOLO中損失函數(shù)包括分類損失、定位損失和置信度損失,通過加權(quán)三者得到總損失。IOU用來衡量模型檢測計(jì)算結(jié)果的好壞程度,表示預(yù)測框與實(shí)際物體位置的交并比,當(dāng)比值為1時(shí)說明兩者完全重合。目標(biāo)訓(xùn)練過程中損失(loss)曲線和Avg IOU曲線如圖4所示(圖中橫坐標(biāo)batches表示數(shù)據(jù)集的大小)。
圖4 訓(xùn)程圖(a)損失曲線;(b)區(qū)域平均IOU曲線
使用900張AGV圖片作為數(shù)據(jù)集訓(xùn)練YOLOv4網(wǎng)絡(luò),訓(xùn)練次數(shù)為5 000次,由圖4可知,loss趨近于0,IOU趨近于1,說明訓(xùn)練次數(shù)足夠。
直接使用YOLOv4對(duì)AGV定位時(shí),速度較慢。定義初始位置及循環(huán)間隔n幀之后的幀數(shù)為關(guān)鍵幀,采用關(guān)鍵幀檢測可以極大提高檢測速度。提高效果與間隔幀數(shù)有關(guān),間隔越多速度越快,但當(dāng)中間間隔幀數(shù)過多時(shí),無法對(duì)AGV進(jìn)行檢測和監(jiān)控狀態(tài),容易偏離預(yù)定路線而發(fā)生撞擊。為此,對(duì)間隔幀采用卡爾曼濾波和ORB特征點(diǎn)結(jié)合的方式定位,實(shí)現(xiàn)間隔幀狀態(tài)下對(duì)AGV的檢測和監(jiān)控。由于關(guān)鍵幀能矯正檢測位置,故對(duì)間隔幀定位算法的精度要求較低,但對(duì)定位速度有一定要求。
2.2.1 卡爾曼濾波原理 卡爾曼濾波(Kalman filtering)認(rèn)為觀測值可信度模型、控制模型符合正態(tài)分布,信號(hào)是線性變化的,在運(yùn)算過程中僅通過上一時(shí)刻的最優(yōu)估計(jì)和此時(shí)刻的測量值進(jìn)行迭代,而不涉及過去時(shí)刻的狀態(tài)值與觀測值,有效減小了運(yùn)算過程的計(jì)算量,因此具有計(jì)算量小、遞推性好等優(yōu)點(diǎn)。
由于卡爾曼濾波適用于信號(hào)是線性變化的系統(tǒng)上,當(dāng)間隔幀數(shù)過大會(huì)導(dǎo)致AGV位置變化非直線,影響濾波效果,且間隔幀數(shù)越大影響越大,故應(yīng)通過實(shí)驗(yàn)將間隔幀數(shù)控制在合適的范圍內(nèi)。
AGV在車間行駛速度較慢,卡爾曼濾波預(yù)測當(dāng)前時(shí)刻狀態(tài)比較準(zhǔn)確,AGV定位過程主要關(guān)心中心點(diǎn)位置。若僅預(yù)測中心點(diǎn)位置,由于卡爾曼濾波不支持多步預(yù)測,當(dāng)間隔幀數(shù)過多時(shí),中心點(diǎn)位置會(huì)發(fā)生漂移。
2.2.2 ORB算法 為解決卡爾曼濾波多步預(yù)測不準(zhǔn)確的問題,通過中心點(diǎn)與特征點(diǎn)間空間位置關(guān)系重新計(jì)算中心點(diǎn)位置,將其作為測量值輸入到卡爾曼濾波中。特征點(diǎn)代表圖像中帶有特征性質(zhì)的點(diǎn),具備旋轉(zhuǎn)或尺度不變性或小的仿射變換的不變性。特征點(diǎn)尋找技術(shù)包括SIFT、SURF、FAST、ORB等。由于ORB 算法速度快,受噪聲影響較弱,因此選用ORB特征點(diǎn)。
ORB(Oriented Fast and Rotated Brief)算法可以對(duì)圖像中的特征進(jìn)行提取和創(chuàng)建向量,這些特征向量可以用來識(shí)別圖像中的對(duì)象。ORB通過FAST算法從圖像中檢測特征點(diǎn),對(duì)不同尺度的圖片檢測特征點(diǎn)[15]。ORB通過BRIEF算法(Binary Robust Independent Elementary Features)將一組特征點(diǎn)轉(zhuǎn)換為二元特征向量,向量中僅含0、1兩個(gè)值,可以高效存儲(chǔ)在內(nèi)存中,便于快速計(jì)算。為使描述具備旋轉(zhuǎn)不變性,ORB以特征點(diǎn)為原點(diǎn),以特征點(diǎn)和取點(diǎn)區(qū)域的質(zhì)心的連線為x軸建立坐標(biāo)系[16]。使用ORB算法分別在模板圖像和目標(biāo)圖像上創(chuàng)建描述符,根據(jù)描述符之間距離可以進(jìn)行匹配,在目標(biāo)圖像上識(shí)別目標(biāo)。
2.2.3 卡爾曼濾波和ORB特征點(diǎn)的中心點(diǎn)定位 由于兩次檢測之間間隔幀數(shù)不會(huì)過大,因此認(rèn)為AGV在圖像上短時(shí)間內(nèi)不會(huì)發(fā)生形變,AGV上各點(diǎn)相對(duì)位置不發(fā)生變化,AGV外形寬和高不變,即選擇框大小不變。目標(biāo)檢測框選的AGV區(qū)域作為感興趣區(qū)域,提取ORB特征。以預(yù)測中心為選擇框中心,選擇區(qū)域并提取特征,與目標(biāo)檢測結(jié)果匹配,通過中心點(diǎn)與目標(biāo)檢測區(qū)域特征點(diǎn)位置關(guān)系,計(jì)算中心點(diǎn)在目前幀的位置,將計(jì)算的中心點(diǎn)坐標(biāo)作為測量值輸入到卡爾曼濾波。
目標(biāo)檢測中心點(diǎn)O1坐標(biāo)為(xo1,yo1),O1在當(dāng)前幀對(duì)應(yīng)匹配對(duì)的特征點(diǎn)O2坐標(biāo)為(xo2,yo2),特征點(diǎn)A1的坐標(biāo)為(xa1,ya1),A1在當(dāng)前幀對(duì)應(yīng)匹配對(duì)的特征點(diǎn)A2坐標(biāo)為(xa2,ya2),特征點(diǎn)B1坐標(biāo)為(xb1,yb1),B1在當(dāng)前幀對(duì)應(yīng)匹配對(duì)的特征點(diǎn)B2坐標(biāo)為(xb2,yb2),求解當(dāng)前幀AGV中心點(diǎn)坐標(biāo)(x,y),將A2O2看作由A1O1平移旋轉(zhuǎn)而來
(3)
其中,T為平移矩陣,R為旋轉(zhuǎn)矩陣,tx、ty分別為將A1點(diǎn)平移到A2點(diǎn)x、y軸的平移量,θ為平移后A1B1與A2B2夾角。A1、B1點(diǎn)距離不應(yīng)太近,為保證計(jì)算的精確度,可選擇多對(duì)特征點(diǎn)計(jì)算。
圖5為間隔25幀使用YOLO檢測一次時(shí)僅使用卡爾曼濾波與根據(jù)ORB特征點(diǎn)定位中心點(diǎn)效果對(duì)比,圖中A邊框?yàn)閮H使用卡爾曼濾波結(jié)果,B邊框?yàn)榻Y(jié)合ORB特征點(diǎn)定位后的結(jié)果,邊框中心點(diǎn)為預(yù)測或定位的AGV中心點(diǎn)位置。
圖5 基于卡爾曼濾波和ORB特征點(diǎn)的中心點(diǎn)定位
與特征匹配方式相比,該方法利用卡爾曼濾波提前確定AGV位置,僅需對(duì)選擇框進(jìn)行調(diào)整移動(dòng)即可準(zhǔn)確定位AGV,不必搜索整幅圖像進(jìn)行匹配,比直接模板匹配更加快速。當(dāng)兩幅圖像匹配不上時(shí),使用YOLO檢測定位目標(biāo),當(dāng)YOLO也無法檢測到AGV時(shí),說明目標(biāo)丟失,發(fā)送停止命令,直至再次檢測到AGV。MOSSE目標(biāo)追蹤算法檢測一幀圖像花費(fèi)21.46 ms,本方法花費(fèi)時(shí)間為19.04 ms。當(dāng)多AGV運(yùn)行時(shí),可根據(jù)數(shù)據(jù)庫記錄上次停車位置,選擇目標(biāo)AGV。定位過程可參考SORT算法進(jìn)行多目標(biāo)追蹤,通過最大交并比IOU關(guān)聯(lián)目標(biāo),使用匈牙利指派算法[17]關(guān)聯(lián)檢測框到目標(biāo),通過特征點(diǎn)和卡爾曼濾波進(jìn)一步提高運(yùn)行速度。
2.2.4 評(píng)價(jià)器設(shè)計(jì) 通過卡爾曼濾波結(jié)合ORB算法對(duì)AGV定位,可能由于ORB特征點(diǎn)匹配錯(cuò)位導(dǎo)致定位不準(zhǔn)確,因此需要一個(gè)評(píng)價(jià)器來判斷定位是否準(zhǔn)確。巴氏系數(shù)(Bhattacharyya coefficient)可以測量兩個(gè)樣本之間的相似性,故通過巴氏系數(shù)計(jì)算定位結(jié)果與YOLO檢測結(jié)果的相似度。當(dāng)相似度小于閾值時(shí),則認(rèn)為本次定位結(jié)果不準(zhǔn)確,重新使用YOLO進(jìn)行識(shí)別定位。巴氏系數(shù)其中,p為模板的顏色直方圖,q為待檢測圖像的顏色直方圖。ρ(p,q)越大說明兩圖片越相似,當(dāng)為同一張圖像時(shí)ρ(p,q)=1。
(4)
將YOLO檢測結(jié)果作為模板,將卡爾曼濾波結(jié)合ORB算法獲取的非關(guān)鍵幀作為待評(píng)價(jià)區(qū)域,通過多組圖片實(shí)驗(yàn)后選取0.9作為閾值。
本節(jié)對(duì)改進(jìn)算法(設(shè)計(jì)的AGV定位算法)進(jìn)行定位精度、定位速度實(shí)驗(yàn)驗(yàn)證,確定改進(jìn)算法是否可滿足實(shí)際應(yīng)用要求。在間隔一定幀數(shù)后重新檢測的累積誤差主要與檢測精度和間隔幀的定位誤差有關(guān),可以直接反應(yīng)在定位精度上。
如圖6所示,攝像頭拍攝場景時(shí),圖像存在較大的畸變,產(chǎn)生定位誤差,因此要對(duì)攝像頭去畸變。本文使用張正友攝像機(jī)標(biāo)定法結(jié)合OpenCV對(duì)攝像頭進(jìn)行標(biāo)定,獲取相機(jī)內(nèi)參,提高精度。攝像機(jī)標(biāo)定過程中使用的標(biāo)定模板如圖7所示。標(biāo)定模板中共有69個(gè)角點(diǎn),每個(gè)棋盤格寬度為2.75 cm。
圖6 攝像頭拍攝場景
圖7 標(biāo)定模板
相機(jī)內(nèi)參為
(5)
矯正后模擬場地如圖8所示,為檢驗(yàn)AGV定位精度,需要計(jì)算每個(gè)像素點(diǎn)代表的實(shí)際距離。因此本文任選4個(gè)點(diǎn),測量4點(diǎn)間實(shí)際距離和對(duì)應(yīng)間隔像素?cái)?shù)。經(jīng)過計(jì)算得單位像素的寬度對(duì)應(yīng)實(shí)際2.3 mm。
圖8 去畸變后圖像
由于攝像頭投影關(guān)系的影響,當(dāng)AGV行駛至邊緣時(shí),在圖像上測量的中心點(diǎn)與實(shí)際中心點(diǎn)位置像素坐標(biāo)會(huì)不一致。AGV高度為29 cm,在行駛路徑上任取6個(gè)點(diǎn),實(shí)際坐標(biāo)點(diǎn)與采集像素坐標(biāo)點(diǎn)誤差見表2??芍獂軸方向誤差近似保持不變,平均誤差為9.83像素。y軸方向的測量坐標(biāo)yc和y軸方向誤差δ的擬合結(jié)果如圖9所示。
圖9 y軸方向誤差擬合結(jié)果
表2 測量結(jié)果與實(shí)際結(jié)果對(duì)比
δ=-0.2417×yc+163.4
(6)
控制AGV從(532,1313)沿直線行駛至(513,839),改進(jìn)算法測得的路徑坐標(biāo)校正結(jié)果其中,(x,y)為校正后坐標(biāo),(xc,yc)為算法定位坐標(biāo)。
(7)
對(duì)僅使用YOLO、YOLO間隔2幀及改進(jìn)算法三種定位方式實(shí)驗(yàn)驗(yàn)證。定位速度見表3,實(shí)驗(yàn)采用同一視頻,花費(fèi)時(shí)間為檢測視頻所花費(fèi)的總時(shí)間,平均幀數(shù)為每秒檢測幀數(shù),由總幀數(shù)除以花費(fèi)時(shí)間得到。
由表3可知,改進(jìn)算法(間隔2幀)定位速度為24.96幀/s,考慮該算法對(duì)非關(guān)鍵幀也進(jìn)行了定位,因此其定位速度慢于YOLO定位(間隔2幀)。但隨著改進(jìn)算法中間隔幀數(shù)逐漸增多,定位速度也逐漸加快,改進(jìn)算法在間隔12幀時(shí)定位速度已達(dá)29.81幀/s,高于YOLO定位(間隔2幀)定位速度,在間隔24幀時(shí)定位速度比間隔2幀及YOLO定位速度都有明顯地提高。
表3 基于目標(biāo)檢測定位速度對(duì)比
對(duì)定位精度采用定位生成路徑與實(shí)際路徑的歐式距離做出評(píng)價(jià),分別計(jì)算像素坐標(biāo)系、世界坐標(biāo)系下的最大誤差、最小誤差及平均誤差。定位精度見表4,部分定位方式軌跡如圖10至13所示(圖中pixel表示像素)。
圖10 YOLO定位(a)AGV實(shí)際路徑與定位路徑;(b)誤差統(tǒng)計(jì)
圖11 YOLO(間隔2幀)定位(a)AGV實(shí)際路徑與定位路徑;(b)誤差統(tǒng)計(jì)
圖12 改進(jìn)算法(間隔2幀)定位(a)AGV實(shí)際路徑與定位路徑;(b)誤差統(tǒng)計(jì)
圖13 改進(jìn)算法(間隔24幀)定位(a)AGV實(shí)際路徑與定位路徑; (b)誤差統(tǒng)計(jì)
表4 基于目標(biāo)檢測定位精度對(duì)比
可知,改進(jìn)算法(間隔2幀)定位精度為11.13 mm,相較于YOLO定位精度10.76 mm及YOLO(間隔2幀)定位精度10.52 mm都有降低。隨著改進(jìn)算法中間隔幀數(shù)逐漸增大,定位精度也逐漸降低,但下降很小,從(間隔2幀)時(shí)的11.13 mm下降到(間隔24幀)時(shí)的11.89 mm。此外由于間隔幀數(shù)過多,AGV運(yùn)行的穩(wěn)定性也有降低。由于YOLO算法在每次檢測時(shí)都會(huì)重新生成選擇框,選擇框大小的變化及與真實(shí)選擇框的差別,會(huì)導(dǎo)致定位中心點(diǎn)發(fā)生波動(dòng),但實(shí)驗(yàn)整體結(jié)果較穩(wěn)定。
綜上,較傳統(tǒng)的YOLO算法,改進(jìn)算法的定位精度和穩(wěn)定性有一定下降,但其精度在間隔幀數(shù)增大時(shí)下降很小,從間隔2幀的11.13mm下降為間隔24幀的11.89 mm,且系統(tǒng)整體較穩(wěn)定。較傳統(tǒng)YOLO算法,改進(jìn)算法定位速度有明顯提高,從15.41幀/s提高到33.92幀/s,且隨著間隔幀數(shù)的增多,定位速度提升更加明顯,從間隔2幀的24.96幀/s提升為間隔24幀的33.92幀/s。故在滿足定位精度及穩(wěn)定性的前提下,使用基于改進(jìn)算法設(shè)計(jì)的AGV導(dǎo)航可最大限度地提高定位速度,提升自動(dòng)化效率。
本文提出一種基于深度學(xué)習(xí)的目標(biāo)檢測及定位方法,采用YOLO算法進(jìn)行關(guān)鍵幀檢測,通過ORB特征點(diǎn)與卡爾曼濾波結(jié)合的方式定位非關(guān)鍵幀。該算法在滿足定位精度的前提下,有效提高了定位速度。今后研究考慮將新算法擴(kuò)展應(yīng)用于不同場景中,滿足實(shí)際應(yīng)用對(duì)AGV導(dǎo)航定位速度的要求。