朱小波,車 進 ,郝志洋 ,劉 毅 ,杭 立
1.寧夏大學 物理與電子電氣工程學院,銀川 750021
2.寧夏沙漠信息智能感知重點實驗室(寧夏大學),銀川 750021
隨著計算機視覺技術的不斷發(fā)展,其現(xiàn)代智能化越來越高,它廣泛應用于各行各業(yè)。利用機器視覺走迷宮的問題也是當今研究熱點之一[1-2]。文獻[3]以NAO機器人為實驗平臺,利用AdaBoost機器學習和HOG特征檢測來獲得識別區(qū)域的導航線,但該算法對室內(nèi)光線變化的魯棒性以及算法實時性不好。文獻[4]提出了利用移動機器單目視覺測距的方法,此方法主要使用Hough變換進行目標檢測,由于距離目標遠近不同時,圖像尺度也不同,因此該方法不適應于復雜環(huán)境。文獻[5]提出了利用MoZAK算法來統(tǒng)計圖像邊緣復雜度,進行單目測距。物體在不同的距離時,其邊緣復雜度是不同的。但當圖像背景較復雜時不能較好地得到邊緣信息。文獻[6]利用NAO Marks作為機器人通過視覺識別的一種專門標志,來解決NAO機器人識別拐點問題,但是該方法速度較慢,也沒有解決航偏矯正的問題。文獻[7]提出了航向矯正和機體側(cè)移相結合的方法來解決機器人航向偏移問題,該算法在實現(xiàn)時比較耗時。此外國內(nèi)外測距的主要方式還有毫米波雷達測距、超聲波測距、激光測距儀等,這些方法在室內(nèi)也容易受到較大的干擾。
目前基于圖像測距的方法主要是無人駕駛領域,而在室內(nèi)這種復雜的環(huán)境下研究得較少,所涉及到航向矯正的一些算法也比較容易受到干擾,造成功能不穩(wěn)定,而在室內(nèi)圖像測距的方法通常運算量較大,比較復雜,不夠快速。針對以上問題,提出一種快速測距以及航偏矯正算法。將所提出的方法與當前已有的算法進行了深入的對比與分析,并探討了本文方法的優(yōu)勢以及不足的地方。
由于迷宮在室內(nèi)搭建,因此環(huán)境干擾因素比較大,尤其是光線干擾。陰影、反光、顏色相近的物體多等等構成了圖像處理程序不穩(wěn)定的因素。因此程序的編寫選擇在最壞的情況下,以此來增加算法的魯棒性和健壯性[8]。
在拐點檢測時需要對獲取的圖像進行預處理,通過NAO攝像頭獲取迷宮中導航線的RGB圖片,對其平滑濾波,分離各分量,通過顏色空間轉(zhuǎn)換獲得HSI各分量[9-10]。其中HSI顏色空間可以解決光照強度帶來的影響。然后分別獲得HSI各分量的邊緣強度再進行合成,此時獲取初步處理后的導航線。下一步通過非極大值抑制以及閾值選取獲得二值化圖像。最后通過直線檢測算法檢測直線并求圖片內(nèi)各直線的交點,所求交點便是目前機器人遇到的拐點。實現(xiàn)過程如圖1所示。
圖1 拐點檢測流程圖
NAO拍攝到的迷宮路徑圖片是三維空間向二維空間的轉(zhuǎn)換,因此按照攝像機成像原理構建理想的成像幾何模型[11-14]。如圖2所示為構建的簡化幾何模型。圖中平面IBDG代表實際的路面,梯形平面JBDF為攝像機拍攝到的路面區(qū)域。A點為攝像機的光心,AM為光軸,M點為光軸與路面交點,同時也是梯形JBDF的對角線交點,T為迷宮中的拐點。AN為NAO機器人光心到路面的高度。平面dfjb為攝像機投影平面,以像平面的中心m點為坐標原點建立如圖2所示的像平面坐標系xmy。以M點為坐標原點建立路面坐標系XMY。
圖2 攝像機投影幾何模型
由于上面的立體幾何模型推導比較復雜,因此需要對上述的幾何模型繼續(xù)建模簡化[11-14],將其放在二維平面推導。在縱軸方向的模型如圖3所示;由于本文的測距推導方法為直接測得圖2中NTY的距離,以及測量NT的距離(NAO距離拐點的距離),因此只需要建立縱向模型。為了更加利于推導還需繼續(xù)簡化模型[11-14]。如圖3(b)所示。
圖3 縱軸方向建模
距離推導分為兩種情況:一種是迷宮拐點在光軸的前方;另一種是拐點在光軸的后方。下面分別進行推導,推導的距離均為圖2中NTY的距離。
(1)迷宮拐點在光軸前方時,如圖4所示,任何一拐點,都可以過拐點TY作與光軸垂直的直線。A點為攝像機光心,h為光心距地面高度(NAO攝像機光心到NAO腳底平面的高度),TY為拐點T在路平面Y軸上的投影。 fe為投影平面,fe垂直于AM交AM于r點,t′為拐點在成像平面上的投影。2α為攝像機垂直方向視角。θ為NAO頭部的俯仰角。NAO拍攝到的圖片大小為M×N,即 fe=M。由以上條件可得:
其中 yt′為拐點在像平面的 y軸坐標,由式(1)和式(2)可得:
又可得:
NTY距離為:
圖4 拐點在光軸前方
(2)迷宮拐點在光軸后方時,如圖5所示。
圖5 拐點在光軸后方
圖5中的幾何關系和條件與(1)中的相同,可得:
由式(6)和(7)可得:
NTY距離為:
NAO在迷宮中巡線行走時,由于自身等因素會導致NAO行走發(fā)生偏差,需要對其行走方向進行矯正。以下測距與矯正相結合的辦法解決了NAO行走緩慢及航偏問題,同時避免了先求特定點坐標再求距離一類算法的復雜性。模型如圖6所示。AB、CD代表迷宮墻壁,平面HEFG為拍攝的畫面,JQ為機器人正對方向,即圖像的垂直平分線。J、Q均為中點。KM、PN為機器人在迷宮中拍攝到的拐點及導航線在圖像中的兩種情況,M、N為兩情況下的拐點。PN交HG為P,KM交JQ為K。NK、ML垂直于JQ。I點為NAO機器人腳底位置。
圖6 測距及矯正模型
由于這兩種情況的推導方法相同,所以這里選擇拐點N來推導。N、P、J坐標可以很方便地求出來。分別為 (xN,yN)、(xP,yP)、(xJ,yJ)??傻茫?/p>
又由以上條件可得ΔIJP與ΔIKN相似,所以可得:
其中 IK=IJ+JK 。由式(10)和(11)可得:
式(10)到式(12)中使用的長度均為像素長度。θ0即為需要矯正的偏轉(zhuǎn)角。下面將推導IN對應的實際距離。從上面距離的推導已經(jīng)知道IK對應的實際距離已經(jīng)知道。所以可得NAO距離拐點的實際距離即為IN。以下的線段長度均為世界坐標系下的實際長度。其長度為:
將式(12)代入式(13)即可。所以只要控制NAO向拐點方向轉(zhuǎn)動θ0角度即可以實現(xiàn)航向矯正。矯正完后只需要沿著旋轉(zhuǎn)后的方向向前沿直線走IN的距離即可到達拐點,然后按照需要進行拐彎。而這里只需要給出NAO頭部的俯仰角θ即可以測距和矯正,而θ可以通過內(nèi)部函數(shù)獲得。這就完全實現(xiàn)了快速自主測距及航向矯正。
為了驗證所提算法的有效性,以NAO機器人和室內(nèi)搭建的迷宮作為實驗對象,采用python作為編程語言,NAO在迷宮中行走時通過攝像頭獲取拐點圖像,并通過本文所用的拐點檢測算法對圖像處理,快速獲得拐點坐標,如圖7所示。
圖7 獲取拐點
在圖7中(a)為獲取的原圖,可以看出受光線影響較大,因此采用上文提到的算法將其二值化,如圖(b)所示。從圖中可以很好地看出算法處理二值圖像較好。圖(c)為對圖(b)優(yōu)化后進行拐點檢測。圖中紅色即為檢測到的拐點。
實驗中迷宮大小為360 cm×360 cm,拍攝高度為0.447 m,俯仰角為 45°,垂直視角為 2α=34.80°,NAO拍攝的圖片大小為640×480。本實驗使NAO在不同的拐點處進行測試,除此之外還和別的算法進行了比較。T1代表使用參考論文[5]中算法走完整個迷宮所用的時間,T2代表用本文的算法所使用的時間,兩種方法均進行了5次測試。如表1所示。
表1 測試結果
實驗結果表明,所提出的算法能按照要求順利快速地走完迷宮。經(jīng)過計算,由幾何推導得到的角度、距離理論數(shù)據(jù)和實際測得的數(shù)據(jù)相比較,在航偏矯正的錯誤率低于0.4%,而行走速率提升了約34.8%。和文獻[5]所提出的算法相比較,本文所提出的算法更快。因此本文所提出的算法是可行的,節(jié)約了時間成本,具有較好的應用價值。
本文提出的基于單目視覺測距改進算法,主要分為三部分。第一部分在復雜的環(huán)境中快速地獲取迷宮中的拐點坐標;第二部分利用圖像幾何關系測得機器人當前位置距離拐點的位置;第三部分利用與到航線間的夾角進行航偏矯正。由實驗數(shù)據(jù)可以看出該方法明顯提升了NAO機器人在迷宮中的行走速度。同時也避免了求特定點坐標算法的復雜性。因此所提方法是可行與準確的。
:
[1]梁付新,劉洪彬,張福雷,等.基于NAO機器人的目標識別方法[J].計算機工程與設計,2017,38(8):35-39.
[2]王丹丹,宋懷波,何東健.蘋果采摘機器人視覺系統(tǒng)研究進展[J].農(nóng)業(yè)工程學報,2017,33(10):59-69.
[3]孫翔侃,白寶興.基于機器學習的NAO機器人檢測跟蹤[J].長春理工大學學報,2016,39(2):116-119.
[4]Wahab M N A,Sivadev N,Sundaraj K.Development of monocular vision system for depth estimation in robotsoccer[C]//Sustainable Utilization and Development in Engineering and Technolgy,2011:36-41.
[5]Haris S M,Zakaria M K,Nuawi M Z.Depth estimation from monocular vision using image edge complexity[C]//Advanced Intelligent Mechatronics,2011:868-873.
[6]張婷.基于NAO的迷宮解決算法研究[J].國外電子測量技術,2013,32(5):68-71.
[7]白雪冰,車進,趙婧.基于NAO的迷宮航偏校正方法[J].計算機工程與設計,2017,38(6):57-61.
[8]苗姣姣,徐望明.HSV空間和形態(tài)學處理相結合的車牌定位方法[J].電視技術,2015,39(5):146-149.
[9]郭佳,劉曉玉,吳冰,等.一種光照不均勻圖像的二值化方法[J].計算機應用與軟件,2014,31(3):183-186.
[10]金浩陽.基于彩色深度圖像的室內(nèi)人體跌倒檢測[D].廣東深圳:深圳大學,2017.
[11]Li Deren,Liu Yong,Yuan XiuXiao.Image-based selfposition and orientation method for moving platform[J].Science China Information Sciences,2013,56:1-14.
[12]Jurek C,Evangelos K,Dominik P,et al.Patrolling by robots equipped with visibility[C]//21stInternational Colloquium,2014:224-234.
[13]王文波.基于單目視覺的實時測距方法研究[D].遼寧大連:大連理工大學,2014.
[14]胡榮春,楊濤,馬娟.視覺巡線機器人中的攝像頭圖像透視校正方法[J].計算機與數(shù)字工程,2012,40(6):104-108.