武逸凡,李曉斌,郭子文,田壯壯,吳彥強(qiáng)
(山西農(nóng)業(yè)大學(xué)工學(xué)院,山西太谷 030801)
機(jī)器視覺和圖像處理作為一種高效、準(zhǔn)確、可實時監(jiān)測的技術(shù)手段,是研發(fā)智能農(nóng)機(jī)裝備所依賴的一項關(guān)鍵技術(shù)。該技術(shù)可在一定程度上代替駕駛員的眼睛,對拖拉機(jī)機(jī)組的作業(yè)質(zhì)量、運(yùn)動參數(shù)等進(jìn)行實時監(jiān)測,不但為機(jī)組的自動導(dǎo)航和路徑規(guī)劃等提供依據(jù),而且極大地拓展了駕駛員對周圍環(huán)境的感知能力,使駕駛員處理拖拉機(jī)起步、作業(yè)、轉(zhuǎn)彎、停車、作物保護(hù)、規(guī)避障礙、檢測農(nóng)機(jī)具運(yùn)行狀態(tài)等情況時輕松自如。
目前,將視覺技術(shù)與拖拉機(jī)相結(jié)合的研究主要集中在拖拉機(jī)自動導(dǎo)航、自動駕駛、行駛路線規(guī)劃等方面[1-6],研究成果極大地提高了拖拉機(jī)的自動化和智能化駕駛水平,但也存在圖像畸變大[7]、失真嚴(yán)重、拼接效果不理想[8]等問題。因此,筆者以上海500型拖拉機(jī)為載體,通過采集其四周的實時影像,經(jīng)Matlab圖像處理后顯示在GUI界面中,最終形成拖拉機(jī)360°全景俯視圖像。駕駛員通過該圖像可實時觀察到拖拉機(jī)所處的位置和周邊情況,便于及時采取措施以減少作物損傷、人員受傷、農(nóng)機(jī)具損壞的發(fā)生。
該研究以MATLAB為平臺,將布置在拖拉機(jī)駕駛室頂端的4個攝像頭傳回的實時影像拼接為一幅以拖拉機(jī)為中心的360°環(huán)影圖像,駕駛員不但可以觀察到機(jī)組周邊情況,而且可以對圖像進(jìn)行視覺增強(qiáng)和局部縮放等操作,極大地提高了駕駛的安全性。界面設(shè)計路線如圖1所示。
圖1 技術(shù)路線Fig.1 The route of designing
2.1界面總體設(shè)計啟動MATLAB(R2015b),在命令行輸入“guide”后,彈出“Blank GUI”空白模板,點擊“OK”按鈕進(jìn)行編輯[9]。調(diào)整界面大小,布置按鈕和坐標(biāo)軸等控件。界面由控制面板、顯示界面1和顯示界面2組成??刂泼姘逯械陌粹o從上至下分別為環(huán)影系統(tǒng)總開關(guān)、顯示環(huán)繞影像、視覺增強(qiáng)輔助、選擇縮放視角、選擇放大視角等;顯示界面1和顯示界面2均顯示處理之后的實時影像,其中axes10顯示視覺增強(qiáng)輔助功能的圖像特征直方圖,以此選擇畫質(zhì)增強(qiáng)參數(shù);調(diào)節(jié)縮放比例(滑塊按鈕),用于指定縮放值,使局部圖像得以放大顯示。界面設(shè)計結(jié)果如圖2所示。
2.2系統(tǒng)功能設(shè)計
2.2.1視頻圖像處理邏輯關(guān)系。該系統(tǒng)由于要在多個功能按鈕中調(diào)用同一個圖片句柄,并且需要在不同的坐標(biāo)軸中同時顯示,為了滿足系統(tǒng)的實時性,在視頻圖像采集函數(shù)、主函數(shù)以及子函數(shù)之間,需要實現(xiàn)如下邏輯關(guān)系,如圖3所示。
圖2 界面設(shè)計結(jié)果Fig.2 The designing results of interface
圖3 視頻圖像處理邏輯關(guān)系模型Fig.3 Video image processing logic relation model
2.2.2視頻圖像采集。利用MATLAB中的videoinput函數(shù)[10]可對固定在拖拉機(jī)駕駛室頂端的4個攝像頭傳回的實時影像進(jìn)行采集,圖像分辨率為640×360。其回調(diào)函數(shù)如下:
i=0;
vid1=videoinput( " winvideo " ,1, " MJPG_640×360 " );
%設(shè)定攝像頭參數(shù)
triggerconfig(vid1, " manual " );
start(vid1);%手動觸發(fā)攝像頭
tic
while i ......%指定循環(huán) I=i+1; End%停止 2.2.3視頻圖像預(yù)處理。對于一個動態(tài)的視頻處理,攝像頭拍攝所獲得的視頻句柄經(jīng)過圖像預(yù)處理被分割為逐幀排列的圖片句柄,并將圖片句柄作為圖像處理的目標(biāo)對象。通過各按鈕的觸發(fā)獲得不同的switch-case語句判斷值來運(yùn)行主程序中需要被激活的子程序,并將由子程序處理后的圖片句柄組成視頻句柄顯示在確定的坐標(biāo)軸內(nèi)。同時為了減少計算機(jī)運(yùn)行內(nèi)存的占用,在顯示一張?zhí)幚磉^的圖片后,將該圖片句柄從內(nèi)存中刪除,其回調(diào)函數(shù)如下: ......%將視頻圖像句柄分割為逐幀排列的圖片句柄 for i= i+1 %指定循環(huán) switch y %觸發(fā)判斷值 case 1 %選擇判斷值1 ......%運(yùn)行子程序1 case 2%選擇判斷值2 ......%運(yùn)行子程序2 ......otherwise...... End %停止 I=... ......%圖片句柄轉(zhuǎn)換視頻句柄 Delete......%刪除上一幀圖片句柄 2.2.4視頻圖像拼接。以matlab為基礎(chǔ),將固定在拖拉機(jī)駕駛室頂端的攝像頭按照黑白相間的棋盤紙進(jìn)行角度調(diào)整,保證獲取的實時影像拼接準(zhǔn)確。經(jīng)過畸變校正后,影像拼接結(jié)果如圖4所示。 由圖4可知,GUI界面中的axes2、axes5、axes3、axes6分別顯示拖拉機(jī)前、后、左、右的實時影像,axes7則為事先獲取的拖拉機(jī)駕駛室頂部圖像,屬于固定圖像。 圖像整體拼接結(jié)果較理想,邊界處過渡自然、平滑,且真實反映了拖拉機(jī)周圍的客觀環(huán)境情況。駕駛員根據(jù)圖4所示的實時影像可及時觀察到拖拉機(jī)的周圍人或物,及時采取措施以確保機(jī)組安全、高效地工作。 另外,axes5顯示的拖拉機(jī)后方圖像的白平衡與其他3幅圖像明顯不同,這可能是由于攝像頭及圖像傳感器對環(huán)境光線的不同處理方式造成的,后續(xù)應(yīng)研究相應(yīng)的算法,保證各攝像頭不受環(huán)境光線的影響,具有統(tǒng)一的白平衡。 圖4 圖像拼接結(jié)果Fig.4 Image stitching results 2.2.5局部圖像顯示。駕駛員可以通過點按相應(yīng)按鈕對拖拉機(jī)前后左右的影像進(jìn)行局部放大,以便在必要時仔細(xì)觀察機(jī)組工作過程中的某些對象。放大的影像顯示在axes8中,如圖5所示(以前攝像頭為例)。 該研究基于MATLAB進(jìn)行了拖拉機(jī)360°環(huán)影系統(tǒng)的GUI設(shè)計,利用安裝在拖拉機(jī)駕駛室頂端的4個攝像頭,將拖拉機(jī)周圍的實時影像顯示在相應(yīng)的坐標(biāo)軸中,利用畸變校正技術(shù)對原始影像校正后,拼接為一幅完整的環(huán)影影像。存在的問題主要是各攝像頭白平衡不一致,后續(xù)應(yīng)研究相應(yīng)算法,進(jìn)一步改善圖像拼接的質(zhì)量,最大限度地還原拖拉機(jī)周圍的實際環(huán)境。該研究所述方法一方面提高了拖拉機(jī)駕駛的安全性;另一方面也為智能拖拉機(jī)和自動駕駛拖拉機(jī)的研發(fā)提供一定的參考。 圖5 前攝像頭局部圖像放大Fig.5 Front camera partial image magnification3 結(jié)論