作者:路亞寧 ,陸 翔 ,方鳳才
引 言
近些年,智能機器的發(fā)展使得人們能夠突破自身能力的局限性,來完成困難且復(fù)雜的任務(wù),同時智能機器利用其模擬人類感知功能的特點,能夠有效地替代人們完成機械從重復(fù)性任務(wù)。因此,具有視覺功能的智能機器能夠準(zhǔn)確地識別物體并連續(xù)地操作,進而在產(chǎn)品質(zhì)量檢驗、零件識別及組件定位等方面得到廣泛應(yīng)用。隨著機器視覺識別技術(shù)的提升,許多先進的智能機器都將機器視覺技術(shù)嵌入到產(chǎn)品內(nèi)部,提升其與環(huán)境的感知功能,如大疆、零度等企業(yè)研發(fā)的新一代無人機產(chǎn)品使用基于機器視覺技術(shù)的目標(biāo)識別與追蹤技術(shù)。以色列拉斐爾公司研發(fā)的“保護者”號的無人艇能夠通過機器視覺的圖像技術(shù)獲得環(huán)境信息,進而自動識別和監(jiān)視附近船只。在傳統(tǒng)上,以勘探為目標(biāo)的智能車大多數(shù)是人工遙控和判斷的。雖然機器一定程度地避免了勘察人員遇險,但人們依然需要通過感官去找尋目標(biāo)物體。因此,將機器視覺技術(shù)加入到勘探智能車?yán)飳O大地減輕勘探人員的負(fù)擔(dān)。
本文設(shè)計并實現(xiàn)一種基于機器視覺的智能車系統(tǒng)。該系統(tǒng)基于目標(biāo)物體的顏色,采用顏色識別、圖像去噪、輪廓檢測等算法準(zhǔn)確地識別并定位目標(biāo)物體。另外,智能車的運動控制系統(tǒng)采用STM32F4處理器完成車體方向移動以及機械臂抓取物體功能。整個設(shè)計結(jié)合了機器視覺識別技術(shù)、網(wǎng)絡(luò)數(shù)據(jù)交互技術(shù)以及車體控制技術(shù)。
1、 智能車平臺硬件搭建
1.1 硬件設(shè)計框架與組成
整個智能車控制系統(tǒng)如圖1所示。智能車采用STM32F407單片機作為主控器。攝像頭模塊將采集的物體圖像信息以視頻流的形式通過無線路由(WiFi)模塊實時傳給電腦端。電腦端對視頻流的每一幀進行相應(yīng)的圖像算法處理后,將對應(yīng)的指令通過WiFi模塊傳至主控芯片,進而控制車體的移動;當(dāng)?shù)竭_(dá)指定位置后控制機械臂抓取物體以實現(xiàn)顏色物體的定位與搬運。
STM32F407系統(tǒng)板作為車體系統(tǒng)的控制中心,負(fù)責(zé)處理數(shù)據(jù)和指令,并將WiFi網(wǎng)絡(luò)模塊傳來的指令轉(zhuǎn)為硬件的控制(如PWM脈沖),進而控制電機和機械臂,實現(xiàn)向目標(biāo)物體前進并抓取的功能。車體系統(tǒng)的電機驅(qū)動模塊采用的是一種高電壓、大電流的電機驅(qū)動芯片L298N。L298N電機驅(qū)動芯片負(fù)責(zé)驅(qū)動直流減速電機GM25?370,通過對應(yīng)輸出端口的高低電平實現(xiàn)車體的前進、停止及左右方向的轉(zhuǎn)動[5]。車體系統(tǒng)的機械臂模塊采用 MG996R 舵機作為關(guān)節(jié)驅(qū)動,并配合四自由度的鋁合金結(jié)構(gòu),能夠完成一些較為精細(xì)的動作。主控芯片通過調(diào)節(jié)PWM脈沖的占空比進而控制每個舵機所需要轉(zhuǎn)動的角度,并通過計時器來控制每個舵機角度的保持時間[6],最終完成相應(yīng)的機械臂動作。
1.2 網(wǎng)絡(luò)模塊設(shè)計
WiFi網(wǎng)絡(luò)模塊作為整個車體控制系統(tǒng)與電腦連接的媒介,負(fù)責(zé)完成系統(tǒng)的網(wǎng)絡(luò)通信,同時與攝像頭模塊交互,實現(xiàn)視頻流的傳輸。網(wǎng)絡(luò)模塊能夠搭建服務(wù)器,并在后臺實現(xiàn)實時監(jiān)控指令數(shù)據(jù)與指令轉(zhuǎn)碼,進而傳輸?shù)杰圀w主控芯片的I/O端口來控制車體的動作。因此,WiFi網(wǎng)絡(luò)模塊的功能主要體現(xiàn)在攝像頭視頻流傳輸與電腦指令傳輸兩個方面。
1.2.1 視頻流傳輸
為了實現(xiàn)遠(yuǎn)程視頻傳輸,電腦端需要借助網(wǎng)絡(luò)端口傳輸。由于電腦端與 WiFi模塊需要同處于一個網(wǎng)絡(luò),因此WiFi模塊通過手機的個人熱點連接上級無線路由器,即二級路由器模式作為網(wǎng)絡(luò)的接入。同時,啟動DHCP協(xié)議將電腦端連至WiFi模塊的網(wǎng)絡(luò),此時電腦端作為網(wǎng)絡(luò)客戶端發(fā)送請求指令,而WiFi模塊作為網(wǎng)絡(luò)服務(wù)器端對其響應(yīng)[7]。經(jīng)無線網(wǎng)絡(luò)配置,電腦端通過視頻流傳輸?shù)姆绞将@取實時畫面,即“mjpg?streamer”服務(wù)。其中,mjpg作為一種視頻編碼格式,能夠?qū)z像頭的模擬視頻信號壓縮翻譯成視頻流[8]。當(dāng)電腦客戶端通過Socket套接字與 WiFi模塊服務(wù)器連接完成后,電腦客戶端請求發(fā)送視頻流,將圖片壓縮后以數(shù)據(jù)流的形式傳輸。
1.2.2 指令轉(zhuǎn)碼傳輸
在電腦客戶端與 WiFi 模塊服務(wù)器端完成連接后,電腦客戶端將緩存的指令發(fā)送到服務(wù)器上??紤]到十進制表示的習(xí)慣,電腦客戶端只需要發(fā)送十進制的數(shù)字字符串,服務(wù)器即可完成轉(zhuǎn)碼操作。首先,服務(wù)器利用atoi函數(shù)掃描十進制字符串,當(dāng)掃描到數(shù)字時,字符串內(nèi)的數(shù)字將轉(zhuǎn)為整數(shù)格式;其次,服務(wù)器利用 itoa函數(shù)將十進制數(shù)轉(zhuǎn)為二進制數(shù)存到一維數(shù)組,進而分配給4位GPIO 端口;最后,指令以4位二進制高低電平與主控芯片串口傳輸。
1.3 車體控制
車體控制系統(tǒng)作為整個車體的執(zhí)行端,以STM32F407小系統(tǒng)為核心控制器,將接收到的操作指令轉(zhuǎn)換為對應(yīng)車體的操作,其中主要的車體操作是對直流電機的驅(qū)動及機械臂的轉(zhuǎn)動。車體控制臺共使用了5個舵機和2個電機,因此需要STM32處理器輸出6路PWM信號。而PWM信號輸出的原理是一種計數(shù)模式對波形占空比的調(diào)控。在一個周期內(nèi),高低電平持續(xù)的時間是可變的,通過改變在一個周期內(nèi)高電平所占整個周期的時間的長短去控制舵機的角度。PWM信號的控制主要由STM32F4芯片中的自動重裝載寄存器和捕獲比較寄存器完成[9]。
2、 機器視覺算法
2.1 目標(biāo)顏色識別算法
顏色是識別目標(biāo)物體的首要特征。電腦端通過顏色的閾值來識別目標(biāo)物體,而顏色空間通常分為RGB色彩模型和HSV色彩模型。其中,RGB模型的色彩是由紅(R)、綠(G)、藍(lán)(B)三個分量的矢量和表示[10],其色彩、深淺和明暗的變化是沿三維直角空間幾何線遞進的。而HSV模型的顏色是由色調(diào)(Hue)、飽和度(Saturation)和明亮度(Value)三個維度的倒錐形表示[11],其分量直接描述了色彩、深淺和明暗。因此,基于顏色特征檢測目標(biāo)選取HSV閾值更為直觀可靠。
由于攝像頭采集圖像是以RGB色彩模型的格式存儲,因此電腦端在處理圖像時需要進行色彩模型轉(zhuǎn)換。在遍歷圖像每一個像素的過程中,電腦端根據(jù)RGB模型與 HSV模型之間的關(guān)系,將RGB值轉(zhuǎn)換為HSV值。進而,根據(jù)設(shè)定的HSV顏色范圍,將各色彩通道中滿足閾值范圍的像素點轉(zhuǎn)為純白色,即(255,255,255);否則轉(zhuǎn)為黑色,即(0,0,0)。最終,目標(biāo)物體與環(huán)境完全分離,效果如圖2所示。
2.2 圖像填充去噪算法
考慮到部分物體有表面部分鏤空的情況,如圖3所示,圖像可以通過膨脹形態(tài)學(xué)操作填充細(xì)小輪廓附近的空洞。而對于光線的強弱造成圖像有噪聲的情況(圖3小球團邊緣所示),圖像可以通過腐蝕形態(tài)學(xué)操作去除噪聲。然而,腐蝕操作會使目標(biāo)區(qū)域的面積變小,膨脹操作會使目標(biāo)區(qū)域的面積變大。因此,選用開運算即先腐蝕再膨脹的操作,不僅保證了目標(biāo)區(qū)域的面積大致不變,還對圖像進行了降噪、填充處理,使得圖像輪廓更清晰[12]。圖像填充去噪算法選用3×3的卷積核,通過卷積核在原圖像上的滑動及像素運算分別完成腐蝕、膨脹操作。在腐蝕的過程中,若卷積核的元素與對應(yīng)的原圖像的像素值相與為1,則中心元素賦值為,否則為0,其效果如圖4a)、圖4b)所示;而在膨脹的過程中,若卷積核的元素與對應(yīng)的腐蝕后圖像的像素值相或為1,則中心元素賦值為1,否則為0,其效果如圖4c)、圖4d)所示。
2.3 最大輪廓檢測算法
考慮到在目標(biāo)物體的周圍可能存在相同顏色雜物的情況,圖像通過最大輪廓檢測法能夠有效地排除小型雜物,準(zhǔn)確地框選出物體。
輪廓檢測的原理是通過確定外邊界、孔邊界以及它們的層次關(guān)系,將邊界與原圖對應(yīng)即可完成用邊界表示原圖的操作[13]。而在遍歷圖像的過程中,當(dāng)遇到外邊界以及孔邊界的起始點時,圖像開始標(biāo)記邊界的像素,再利用編碼的思想給不同邊界賦不同的數(shù)值就能確定出邊界的層次關(guān)系。
最大輪廓檢測的原理是在檢測出最外層的邊界后將其存儲在點的序列里,按照邊界面積降序排序選出最大面積的輪廓。而選取最外層的邊界也能夠有效地篩去內(nèi)部的孔輪廓,對于大面積鏤空的目標(biāo)物體,利用輪廓檢測也能準(zhǔn)確地識別出來。同時,選取最大面積的輪廓也能有效地篩去體積較小的雜物,其效果如圖5所示。
2.4 算法總體框架
機器視覺算法的設(shè)計目標(biāo)是實現(xiàn)對目標(biāo)顏色物體的識別和方位判斷,進而使智能車控制系統(tǒng)能夠自動找尋物體并實現(xiàn)抓取。該算法所選取的目標(biāo)物體特征以顏色為首要特征,但在實際的環(huán)境中車體會面臨同顏色雜物的干擾,從而造成目標(biāo)判斷的失誤。因此,該算法在圖像處理算法中增添了最大輪廓檢測,確保目標(biāo)的準(zhǔn)確性。
電腦端機器視覺算法處理與方位判定是整個設(shè)計的核心,它不僅實現(xiàn)了獲取和處理畫面的功能,還實現(xiàn)了上位機對下位機的指令操控,設(shè)計流程如圖6所示。
在目標(biāo)物體識別之前,電腦端先從視頻中提取每一幀圖像,然后基于顏色識別算法、圖像去噪填充算法以及最大輪廓檢測算法,實現(xiàn)對一幀畫面的處理。檢測出目標(biāo)物體后,電腦端計算出物體的面積和質(zhì)點坐標(biāo),通過判斷質(zhì)心橫坐標(biāo)在畫面的區(qū)域來給出車體行進方向的控制指令。
當(dāng)目標(biāo)物體未被檢測出時,車體將不停旋轉(zhuǎn)直到找到紅色物體。電腦端控制系統(tǒng)將物體面積的大小以及質(zhì)心橫坐標(biāo)大小作為指令的判斷值,當(dāng)物體面積未達(dá)到預(yù)設(shè)的面積值及方位時,車體一直前進并根據(jù)方位實時調(diào)整方向,直到物體面積到達(dá)預(yù)設(shè)值且在畫面中心,則向車體發(fā)出停止指令,然后執(zhí)行物體抓取指令。
3、 系統(tǒng)測試與實現(xiàn)
3.1 圖像處理的測試與結(jié)果分析
通過在電腦端調(diào)整不同顏色的閾值范圍,使得系統(tǒng)對各種顏色的物體進行精準(zhǔn)識別。其中,圖7描述出目標(biāo)物體分別為紅色和藍(lán)色特征時系統(tǒng)識別的情況。由圖像所示,紅色和藍(lán)色物體均可被系統(tǒng)識別與框選。
3.2 物體距離的測試與結(jié)果分析
目標(biāo)物體與車體的距離是通過視覺中目標(biāo)顏色的面積判斷的。面積越大,說明物體與車體距離越近。選取10個面積值,面積與距離之間的對應(yīng)關(guān)系如表1所示。經(jīng)輪廓檢測后的物體面積是通過OpenCV庫對像素點進行幾何計算得到的有向面積值。
表1反映出視覺內(nèi)物體面積與車物距離成反比,且面積的增長與距離的減小呈非線性關(guān)系。當(dāng)面積在1000 pixel以內(nèi)時,距離變化范圍可達(dá)2m之遠(yuǎn);而面積在1000~10000 pixel變化的過程中,距離變化范圍不到70cm;當(dāng)面積在11686 pixel以上時,距離變化范圍不會超過34cm,同時面積的變化值與距離的變化值之比將更小。
由于機械臂伸展抓取物體的長度固定為25cm,結(jié)合面積與距離的關(guān)系,在面積達(dá)到20 000時,車體即可停止并借助機械臂完成物體抓取的過程。
3.3 物體方位的測試與結(jié)果分析
目標(biāo)物體的質(zhì)心橫坐標(biāo)代表目標(biāo)物體相對車體的橫向方位,質(zhì)心的縱坐標(biāo)代表目標(biāo)物體相對車體的縱向方位。由于目標(biāo)物體與車體攝像頭始終處于同一水平線上,因此目標(biāo)物體與車體的方位僅通過目標(biāo)物體質(zhì)心橫坐標(biāo)判斷即可,進而使車體判斷左轉(zhuǎn)、右轉(zhuǎn)或指令。因此,攝像頭視野范圍的區(qū)域?qū)M向分為三個區(qū)域用以判斷車體方位,而區(qū)域的選取是車體對物體定位精準(zhǔn)的關(guān)鍵。在機械臂抓取物體前,車體要確保正對物體,因此中間的區(qū)域會比兩側(cè)的區(qū)域窄。經(jīng)過調(diào)試,左側(cè)區(qū)域的橫坐標(biāo)范圍定為0~270,中間區(qū)域的橫坐標(biāo)范圍定為270~380,右側(cè)區(qū)域的橫坐標(biāo)范圍定為380~600。
于是,當(dāng)物體質(zhì)心在左側(cè)區(qū)域時,車體將接收到左轉(zhuǎn)指令‘2’,視覺效果與網(wǎng)絡(luò)監(jiān)視情況如圖8所示。物體質(zhì)心在中間區(qū)域時,車體將接收到前進指令‘1’,效果如圖9所示。當(dāng)物體質(zhì)心在右側(cè)區(qū)域時,車體將接收到右轉(zhuǎn)指令‘3’,效果如圖10所示。
4 、結(jié) 語
基于機器視覺的智能車采用特定的圖像處理算法能夠長期準(zhǔn)確地識別和定位目標(biāo)物體。在網(wǎng)絡(luò)數(shù)據(jù)交互方面,該設(shè)計采用無線傳輸?shù)姆绞綄崟r交換圖像信息與動作指令。同時,在車體控制方面,該設(shè)計采用嵌入式處理能夠高效地控制車體的移動以及機械臂的轉(zhuǎn)動。結(jié)合了機器視覺算法、網(wǎng)絡(luò)傳輸與硬件控制系統(tǒng)的智能車設(shè)計能夠準(zhǔn)確地找尋并抓取目標(biāo)物體,在勘探與分揀領(lǐng)域有著極大的研究價值。
審核編輯:
-
單片機
+關(guān)注
關(guān)注
6067文章
45000瀏覽量
650715 -
機器視覺
+關(guān)注
關(guān)注
163文章
4598瀏覽量
122938 -
WIFI
+關(guān)注
關(guān)注
81文章
5406瀏覽量
208397
原文標(biāo)題:論文速覽 | 基于機器視覺的智能車設(shè)計與實驗研究
文章出處:【微信號:現(xiàn)代電子技術(shù),微信公眾號:現(xiàn)代電子技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論