魏 挺
(西安航空職業技術學院 陜西 西安 710000)
隨著我國科學技術的高速發展,越來越多智能技術開始投入到工業、農業等各個領域。在此背景下,智能小車成為各領域代替人工作業的主要設備。如在農業領域中,應用智能小車進行噴灑農藥、收割作物,種耕除草等工作,極大程度上提高了農業工作效率。但就目前情況來看,智能小車在各領域的應用過程中,存在一個極為嚴重的問題,那就是無法對行駛過程的障礙進行很好的躲避,這將直接影響到智能小車的工作效率[1-3]。由此可見,對基于ARM的車輛障礙自動識別技術研究極具現實意義。對此,本文將以提高智能小車行駛過程中安全性為主要目的,對基于ARM的車輛障礙自動識別系統進行設計,以提高智能小車避障的識別能力,進而提升小車運行過程中的安全性。
對基于ARM的車輛障礙自動識別系統的主要目的,是為了使智能小車在運行過程中能夠自動規避道路中存在的障礙。因此,在對該系統進行設計之前,必須考慮系統應實現的功能需求。根據筆者對相關方面的了解,認為基于ARM的車輛障礙自動識別系統的設計需求具有以下3點:
1)該系統需具備對前方靜止障礙物的識別功能。智能小車在進行各種作業的過程中,途中必不可少地將出現部分不可預知的靜止障礙。此時若是智能小車無法識別到該障礙物,將會影響到相關作業的進展。因此,本次設計的基于ARM的車輛障礙自動識別系統需具備對前方靜止障礙物的識別功能,幫助智能小車及時判斷出前方障礙情況,為之后的路徑選擇及避障反應提供依據;
2)需具備路徑選址功能。該系統在進行前方障礙物識別之后,還需對小車與障礙物之間的關系進行分析,以此為智能小車提供一個避開障礙物的最優路徑;
3)需具備引導小車避障功能。該系統在為智能小車提供最優路徑之后,還需利用相應的驅動模塊,引導智能小車轉變至避障方向,完美避開前方障礙物,以此提高智能小車在作業過程中的安全性。
對基于ARM的車輛障礙自動識別系統的硬件系統設計,主要分為4大模塊,分別為圖像采集模塊、ARM處理器模塊、電機驅動模塊以及系統供電模塊。其中圖像采集模塊主要負責對系統外界環境信息的采集;ARM處理器模塊是整個硬件系統的核心所在,主要起到障礙物識別以及路徑決策的關鍵作用;電機驅動模塊主要負責改變智能小車的最初前進方向,引導智能小車避開障礙物;系統供電模塊主要起到為整個系統提供電能的作用。具體硬件結構框圖如圖1所示。

圖1 系統硬件結構框圖
2.2.1 主要功能設計
在對該系統的構建中,其功能可以劃分為障礙識別與路徑規劃、圖像管理、驅動管理等。其中圖像管理負責對小車前方的圖像進行采集,以此為障礙分析奠定基礎;障礙識別是通過障礙識別算法,完成對前方障礙物的識別,并根據識別的結果,對小車運行的路徑進行規劃;驅動管理主要對系統運行的驅動程序進行設計。
2.2.2 開發關鍵技術
對該系統軟件部分的設計,主要采用Open CV(開源計算機)視覺庫[4]和Qt圖形庫進行。
1)Open CV視覺庫
Open CV是一種具備多種圖像視覺處理的基礎算法的跨平臺計算機視覺庫,能夠運行于各類操作系統之中,如Linux、Windows、Android等。因此,若是將Open CV移植至ARM平臺中,將會極大程度地減輕開發人員在進行障礙識別系統編程時的工作量,提高本次設計的可實現性。在對Open CV進行移植的過程中,首先需對Open CV進行交叉編譯,以此形成相關的動態庫文件;其次需將編譯生產的動態庫文件存儲至相應的目錄中;最后將該動態文件拷貝至ARM板子下的相應目錄中,以此達到ARM對Open CV進行調用的目的。
2)Qt圖形庫
Qt是一種由Qt Company所開發的跨平臺C++圖形用戶界面應用程序,具有跨平臺特性及豐富的API等特征。發展至今,Qt在產品開發領域的應用已極為廣泛,將該程序應用至產品開發中,不僅能夠為應用程序構建起可視化及友好的桌面環境,還能為產品的開發構建起較為復雜的應用程序。因此,若是將Qt移植到ARM的車輛障礙自動識別中,將會對本次系統的界面設計提供幫助。Qt的移植過程主要是將編譯安裝之后的相關內容下載至開發板中,并且配置Qt運行的環境變量。
為了實現系統設計識別障礙、選擇路徑以及避障的功能需求,本文將根據眾多學者在多種圖像分割算法方面的研究,提出將基于固定區域分割原理的避障算法應用至本次基于ARM的車輛障礙自動識別系統中。具體的功能實現如以下步驟。
首先,將采用在該系統中安裝攝像頭的方式對前方是否具有障礙物進行判斷。一般情況下,路面的特征信息基本不會發生變化。因此可根據攝像頭獲取到的前方圖像完整與否,來對前方障礙物情況進行判斷。在圖像中破損區域則代表道路障礙物,以此實現系統對障礙物的識別功能。值得注意的是,在對攝像頭進行安裝的過程中,需將攝像頭與路面形成傾斜的角度進行安置,以此保障該攝像頭獲取到的圖像具備完整性。具體攝像頭安裝示意如圖2所示。

圖2 攝像頭安裝示意圖
其次,在系統的路徑選址功能及避障方面,出于對智能小車與障礙物之間4種關系的考慮,本文將采用基于固定區域分割原理的避障算法來實現系統這一功能。具體小車與障礙物位置關系如圖3所示。

圖3 智能小車與障礙物位置關系
根據圖3顯示的4種小車與障礙物位置關系,當智能小車在行徑過程中遇到其中任意一種位置關系時,基于固定區域分割原理的避障算法都將把該位置關系區域分割為若干小區域。通過相對應運動策略將小區域歸為一類的方式,形成系統4種固定障礙位置關系的避障方式。當智能小車行進過程中遇到正前方障礙物位置關系時,系統將會根據固定區域分割原理的避障算法引導智能小車向右側轉向,根據轉向后智能小車的位置重新判斷障礙位置關系,并給出相應的固定避障方案;當智能小車處于左前方障礙或是右前方障礙位置關系時,系統將引導智能小車從沒有障礙物的一側通行;當智能小車前方未發現障礙物時,系統將引導智能小車進行正常行駛。
雖然基于固定區域分割原理的避障算法已經能夠很好地實現基于ARM的車輛障礙自動識別系統的功能需求,但由于該算法只能針對固定障礙位置而給出避障方案,無法在智能小車面臨多個障礙物的情況下,為其提供相應的避障功能[5-6]。因此,為了使該系統能夠為智能小車在面臨多個障礙物時提供避障方案,本文將以逐一區分每個障礙目標的特征信息為基礎,采用圖像分割分別標定出目標障礙物的特征信息,以此確定出障礙物所在的區域。
出于對圖像分割最終目的性的考慮,本文將從區域角度對智能小車的多個障礙物進行圖像分割。在圖像分割過程中,假設以R來表示整幅障礙圖像,那么圖像分割n個子區域則為R1,R2,…,Rn,且滿足以下條件:首先,若是將這些子區域進行組合,若是拼湊出一副完整的障礙圖像,則說明本次障礙圖像分割具備完全性,以公式表示為:Yni=1Ri=R;其次,若是這些子區域中若干子區域像素具有特定相似度準則,則Ri,i∈{1,2,…,n}表示為一個連通區域。與此同時,若是子區域之間像素為相互獨立,則RiIRj=Φ,i,j∈{1,2,…,n},i≠j;最后,若是子區域的相鄰區域內,子區域的像素點所滿足的性質皆不同,則相鄰區域Ri與Rj,P(Ri)I P(Rj)=Φ。在該公式中,P(Ri)表示像素點在分割子區域內應滿足的性質。
通過圖像分割的方式,將目標障礙物區域以矩形框進行包圍。根據矩形框范圍就可了解障礙物范圍。智能小車再根據障礙物范圍情況,選擇相應的運動方式,避開多個障礙物。
智能小車避障流程圖如圖4所示。

圖4 智能小車避障流程圖
根據圖4所示,智能小車在進行避障過程中,基于ARM的車輛障礙自動識別系統將利用區域分割算法對環境坐標系進行確定。若在該算法判斷智能小車前面未出現障礙物,或是該障礙物未對智能小車構成阻礙時,該系統將會引導智能小車沿初始方向運行;若是算法判斷出障礙目標,該系統將引導智能小車執行智能避障。
為了驗證本次設計的可行性,本文將對基于ARM的車輛障礙自動識別系統的智能小車避障過程進行實驗。實驗開始之前,筆者將采用在智能小車行駛的右上方放置障礙物的方式,然后通過在小車前方布置CCD攝像機,完成對障礙物圖像的采集,并測試智能小車能否成功避開相關障礙物。具體實驗過程如圖5所示。

圖5 系統實驗過程
根據圖5所示,基于ARM的車輛障礙自動識別系統的智能小車在面臨前方障礙物時,能夠自動完成避障過程,這足以說明本次設計具有實際性及合理性。
通過上述的設計看出,通過硬件和軟件的搭建,并借助基于區域障礙物識別算法,可有效地判別小車運行的過程中的障礙物,進而為車輛自動作業提供了參考和借鑒。但是本文研究是以水平地面作為研究,在實際的研究中,還需要結合道路的復雜性,進行更加深入的探討和分析。