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