分享 | 機器視覺基礎(chǔ)之顏色追蹤

? ? ? ?機器視覺就是機器的視覺,換句話說:就是將視覺感知賦予機器,使機器具有和生物視覺系統(tǒng)類似的場景感知能力。機器視覺主要用計算機來模擬人的視覺功能,從客觀事物的圖像中提取信息,進行處理并加以理解,最終用于實際檢測、測量和控制。機器視覺技術(shù)最大的特點是速度快、信息量大、功能多。

? ? ? ?機器視覺是人工智能正在快速發(fā)展的一個分支。簡單說來,機器視覺就是用機器代替人眼來做測量和判斷。機器視覺系統(tǒng)是通過機器視覺產(chǎn)品(即圖像攝取裝置,分CMOS和CCD兩種)將被攝取目標轉(zhuǎn)換成圖像信號,傳送給專用的圖像處理系統(tǒng),得到被攝目標的形態(tài)信息,根據(jù)像素分布和亮度、顏色等信息,轉(zhuǎn)變成數(shù)字化信號;圖像系統(tǒng)對這些信號進行各種運算來抽取目標的特征,進而根據(jù)判別的結(jié)果來控制現(xiàn)場的設(shè)備動作。
? ? ? ?機器視覺的主要任務(wù):通過分析圖像,對圖像中所涉及到的場景或物體生成一組描述信息。也就是說,機器視覺系統(tǒng)的輸入是圖像(或者圖像序列),輸出是對這些圖像的感知描述。這組描述與這些圖像中的物體或場景息息相關(guān),并且這些描述可以幫助機器來完成特定的后續(xù)任務(wù),指導(dǎo)機器人系統(tǒng)與周圍的環(huán)境進行交互。

? ? ? ?機器視覺系統(tǒng)的特點是提高生產(chǎn)的柔性和自動化程度。在一些不適合于人工作業(yè)的危險工作環(huán)境或人工視覺難以滿足要求的場合,常用機器視覺來替代人工視覺;同時在大批量工業(yè)生產(chǎn)過程中,用人工視覺檢查產(chǎn)品質(zhì)量效率低且精度不高,用機器視覺檢測方法可以大大提高生產(chǎn)效率和生產(chǎn)的自動化程度。

? ? ? ?下面我們將結(jié)合機器視覺基礎(chǔ),基于開源的機器人平臺,來分享一下顏色追蹤的實驗開發(fā)案例。

? ? ? ?該項目利用探索者平臺制作。這里我們利用底盤小車來完成顏色追蹤實驗。【詳細的樣機組裝步驟圖可加QQ交流群:221964861進行獲取】
? ? ? ?實現(xiàn)思路:攝像頭采集到紅色物品后,通過串口通信來發(fā)布信息,底盤小車訂閱消息然后進行相應(yīng)的運動。


一、主要使用的器材
? ? ? ?樹莓派、SD卡、攝像頭、樹莓派相關(guān)的實驗器材(顯示屏、鍵盤鼠標、充電寶/手機充電器)

二、電路連接? ? ??
? ? ? ?對底盤小車進行電路連接,如下圖。


一、軟件環(huán)境介紹
? ? ? ?在使用樹莓派之前,我們需要給樹莓派的SD卡里燒錄系統(tǒng)鏡像。而本次實驗中的SD卡已經(jīng)燒錄好系統(tǒng)鏡像,相關(guān)配置如下:
? ? ? ?操作系統(tǒng):Ubuntu18.04系統(tǒng),基于Debian?GNU/Linux,支持x86、amd64(即x64)、ARM和ppc架構(gòu)。
? ? ? ?仿真系統(tǒng):基于開源機器人操作系統(tǒng)ROS melodic和開源軟件平臺Arduino開發(fā),上位機采用ROS melodic,基于Rviz完成全向移動底盤小車slam導(dǎo)航運動規(guī)劃,采用gazebo完成全向移動底盤小車物理運動仿真;下位機采用Arduino實現(xiàn)對全向移動底盤小車運動的控制。
二、程序編寫? ? ??
? ? ? ?(1)將以下程序下載到主機中【詳細的程序源碼可加QQ交流群:221964861進行獲取】

? ? ? ?(2)打開終端(Alt+ctrl+T),輸入roslaunch?color_tracking?Monocular_Camera_calibration.launch 命令,見下圖。

? ? ? ?(3)移動紅色物體(這里用紅色的滅火器代表待追蹤的物體),觀察底盤小車跟隨滅火器運動的效果。
? ? ? ?注意1:請把滅火器放置在攝像頭可采集到的區(qū)域內(nèi);
? ? ? ?注意2:受硬件的影響,移動滅火器的速度建議稍微慢點,如可以先把滅火器移動到一個位置,觀察底盤小車追蹤的效果。
? ? ? ?我們可以在rviz界面里看到攝像頭采集到紅色目標的中心坐標及面積,供追蹤使用(見下圖);同時可以觀察到底盤小車進行追蹤紅色的滅火器,直到運動到靠近滅火器的地方。



