魏 挺
(西安航空職業(yè)技術(shù)學(xué)院 陜西 西安 710000)
隨著我國科學(xué)技術(shù)的高速發(fā)展,越來越多智能技術(shù)開始投入到工業(yè)、農(nóng)業(yè)等各個(gè)領(lǐng)域。在此背景下,智能小車成為各領(lǐng)域代替人工作業(yè)的主要設(shè)備。如在農(nóng)業(yè)領(lǐng)域中,應(yīng)用智能小車進(jìn)行噴灑農(nóng)藥、收割作物,種耕除草等工作,極大程度上提高了農(nóng)業(yè)工作效率。但就目前情況來看,智能小車在各領(lǐng)域的應(yīng)用過程中,存在一個(gè)極為嚴(yán)重的問題,那就是無法對(duì)行駛過程的障礙進(jìn)行很好的躲避,這將直接影響到智能小車的工作效率[1-3]。由此可見,對(duì)基于ARM的車輛障礙自動(dòng)識(shí)別技術(shù)研究極具現(xiàn)實(shí)意義。對(duì)此,本文將以提高智能小車行駛過程中安全性為主要目的,對(duì)基于ARM的車輛障礙自動(dòng)識(shí)別系統(tǒng)進(jìn)行設(shè)計(jì),以提高智能小車避障的識(shí)別能力,進(jìn)而提升小車運(yùn)行過程中的安全性。
對(duì)基于ARM的車輛障礙自動(dòng)識(shí)別系統(tǒng)的主要目的,是為了使智能小車在運(yùn)行過程中能夠自動(dòng)規(guī)避道路中存在的障礙。因此,在對(duì)該系統(tǒng)進(jìn)行設(shè)計(jì)之前,必須考慮系統(tǒng)應(yīng)實(shí)現(xiàn)的功能需求。根據(jù)筆者對(duì)相關(guān)方面的了解,認(rèn)為基于ARM的車輛障礙自動(dòng)識(shí)別系統(tǒng)的設(shè)計(jì)需求具有以下3點(diǎn):
1)該系統(tǒng)需具備對(duì)前方靜止障礙物的識(shí)別功能。智能小車在進(jìn)行各種作業(yè)的過程中,途中必不可少地將出現(xiàn)部分不可預(yù)知的靜止障礙。此時(shí)若是智能小車無法識(shí)別到該障礙物,將會(huì)影響到相關(guān)作業(yè)的進(jìn)展。因此,本次設(shè)計(jì)的基于ARM的車輛障礙自動(dòng)識(shí)別系統(tǒng)需具備對(duì)前方靜止障礙物的識(shí)別功能,幫助智能小車及時(shí)判斷出前方障礙情況,為之后的路徑選擇及避障反應(yīng)提供依據(jù);
2)需具備路徑選址功能。該系統(tǒng)在進(jìn)行前方障礙物識(shí)別之后,還需對(duì)小車與障礙物之間的關(guān)系進(jìn)行分析,以此為智能小車提供一個(gè)避開障礙物的最優(yōu)路徑;
3)需具備引導(dǎo)小車避障功能。該系統(tǒng)在為智能小車提供最優(yōu)路徑之后,還需利用相應(yīng)的驅(qū)動(dòng)模塊,引導(dǎo)智能小車轉(zhuǎn)變至避障方向,完美避開前方障礙物,以此提高智能小車在作業(yè)過程中的安全性。
對(duì)基于ARM的車輛障礙自動(dòng)識(shí)別系統(tǒng)的硬件系統(tǒng)設(shè)計(jì),主要分為4大模塊,分別為圖像采集模塊、ARM處理器模塊、電機(jī)驅(qū)動(dòng)模塊以及系統(tǒng)供電模塊。其中圖像采集模塊主要負(fù)責(zé)對(duì)系統(tǒng)外界環(huán)境信息的采集;ARM處理器模塊是整個(gè)硬件系統(tǒng)的核心所在,主要起到障礙物識(shí)別以及路徑?jīng)Q策的關(guān)鍵作用;電機(jī)驅(qū)動(dòng)模塊主要負(fù)責(zé)改變智能小車的最初前進(jìn)方向,引導(dǎo)智能小車避開障礙物;系統(tǒng)供電模塊主要起到為整個(gè)系統(tǒng)提供電能的作用。具體硬件結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)框圖
2.2.1 主要功能設(shè)計(jì)
在對(duì)該系統(tǒng)的構(gòu)建中,其功能可以劃分為障礙識(shí)別與路徑規(guī)劃、圖像管理、驅(qū)動(dòng)管理等。其中圖像管理負(fù)責(zé)對(duì)小車前方的圖像進(jìn)行采集,以此為障礙分析奠定基礎(chǔ);障礙識(shí)別是通過障礙識(shí)別算法,完成對(duì)前方障礙物的識(shí)別,并根據(jù)識(shí)別的結(jié)果,對(duì)小車運(yùn)行的路徑進(jìn)行規(guī)劃;驅(qū)動(dòng)管理主要對(duì)系統(tǒng)運(yùn)行的驅(qū)動(dòng)程序進(jìn)行設(shè)計(jì)。
2.2.2 開發(fā)關(guān)鍵技術(shù)
對(duì)該系統(tǒng)軟件部分的設(shè)計(jì),主要采用Open CV(開源計(jì)算機(jī))視覺庫[4]和Qt圖形庫進(jìn)行。
1)Open CV視覺庫
Open CV是一種具備多種圖像視覺處理的基礎(chǔ)算法的跨平臺(tái)計(jì)算機(jī)視覺庫,能夠運(yùn)行于各類操作系統(tǒng)之中,如Linux、Windows、Android等。因此,若是將Open CV移植至ARM平臺(tái)中,將會(huì)極大程度地減輕開發(fā)人員在進(jìn)行障礙識(shí)別系統(tǒng)編程時(shí)的工作量,提高本次設(shè)計(jì)的可實(shí)現(xiàn)性。在對(duì)Open CV進(jìn)行移植的過程中,首先需對(duì)Open CV進(jìn)行交叉編譯,以此形成相關(guān)的動(dòng)態(tài)庫文件;其次需將編譯生產(chǎn)的動(dòng)態(tài)庫文件存儲(chǔ)至相應(yīng)的目錄中;最后將該動(dòng)態(tài)文件拷貝至ARM板子下的相應(yīng)目錄中,以此達(dá)到ARM對(duì)Open CV進(jìn)行調(diào)用的目的。
2)Qt圖形庫
Qt是一種由Qt Company所開發(fā)的跨平臺(tái)C++圖形用戶界面應(yīng)用程序,具有跨平臺(tái)特性及豐富的API等特征。發(fā)展至今,Qt在產(chǎn)品開發(fā)領(lǐng)域的應(yīng)用已極為廣泛,將該程序應(yīng)用至產(chǎn)品開發(fā)中,不僅能夠?yàn)閼?yīng)用程序構(gòu)建起可視化及友好的桌面環(huán)境,還能為產(chǎn)品的開發(fā)構(gòu)建起較為復(fù)雜的應(yīng)用程序。因此,若是將Qt移植到ARM的車輛障礙自動(dòng)識(shí)別中,將會(huì)對(duì)本次系統(tǒng)的界面設(shè)計(jì)提供幫助。Qt的移植過程主要是將編譯安裝之后的相關(guān)內(nèi)容下載至開發(fā)板中,并且配置Qt運(yùn)行的環(huán)境變量。
為了實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)識(shí)別障礙、選擇路徑以及避障的功能需求,本文將根據(jù)眾多學(xué)者在多種圖像分割算法方面的研究,提出將基于固定區(qū)域分割原理的避障算法應(yīng)用至本次基于ARM的車輛障礙自動(dòng)識(shí)別系統(tǒng)中。具體的功能實(shí)現(xiàn)如以下步驟。
首先,將采用在該系統(tǒng)中安裝攝像頭的方式對(duì)前方是否具有障礙物進(jìn)行判斷。一般情況下,路面的特征信息基本不會(huì)發(fā)生變化。因此可根據(jù)攝像頭獲取到的前方圖像完整與否,來對(duì)前方障礙物情況進(jìn)行判斷。在圖像中破損區(qū)域則代表道路障礙物,以此實(shí)現(xiàn)系統(tǒng)對(duì)障礙物的識(shí)別功能。值得注意的是,在對(duì)攝像頭進(jìn)行安裝的過程中,需將攝像頭與路面形成傾斜的角度進(jìn)行安置,以此保障該攝像頭獲取到的圖像具備完整性。具體攝像頭安裝示意如圖2所示。
圖2 攝像頭安裝示意圖
其次,在系統(tǒng)的路徑選址功能及避障方面,出于對(duì)智能小車與障礙物之間4種關(guān)系的考慮,本文將采用基于固定區(qū)域分割原理的避障算法來實(shí)現(xiàn)系統(tǒng)這一功能。具體小車與障礙物位置關(guān)系如圖3所示。
圖3 智能小車與障礙物位置關(guān)系
根據(jù)圖3顯示的4種小車與障礙物位置關(guān)系,當(dāng)智能小車在行徑過程中遇到其中任意一種位置關(guān)系時(shí),基于固定區(qū)域分割原理的避障算法都將把該位置關(guān)系區(qū)域分割為若干小區(qū)域。通過相對(duì)應(yīng)運(yùn)動(dòng)策略將小區(qū)域歸為一類的方式,形成系統(tǒng)4種固定障礙位置關(guān)系的避障方式。當(dāng)智能小車行進(jìn)過程中遇到正前方障礙物位置關(guān)系時(shí),系統(tǒng)將會(huì)根據(jù)固定區(qū)域分割原理的避障算法引導(dǎo)智能小車向右側(cè)轉(zhuǎn)向,根據(jù)轉(zhuǎn)向后智能小車的位置重新判斷障礙位置關(guān)系,并給出相應(yīng)的固定避障方案;當(dāng)智能小車處于左前方障礙或是右前方障礙位置關(guān)系時(shí),系統(tǒng)將引導(dǎo)智能小車從沒有障礙物的一側(cè)通行;當(dāng)智能小車前方未發(fā)現(xiàn)障礙物時(shí),系統(tǒng)將引導(dǎo)智能小車進(jìn)行正常行駛。
雖然基于固定區(qū)域分割原理的避障算法已經(jīng)能夠很好地實(shí)現(xiàn)基于ARM的車輛障礙自動(dòng)識(shí)別系統(tǒng)的功能需求,但由于該算法只能針對(duì)固定障礙位置而給出避障方案,無法在智能小車面臨多個(gè)障礙物的情況下,為其提供相應(yīng)的避障功能[5-6]。因此,為了使該系統(tǒng)能夠?yàn)橹悄苄≤囋诿媾R多個(gè)障礙物時(shí)提供避障方案,本文將以逐一區(qū)分每個(gè)障礙目標(biāo)的特征信息為基礎(chǔ),采用圖像分割分別標(biāo)定出目標(biāo)障礙物的特征信息,以此確定出障礙物所在的區(qū)域。
出于對(duì)圖像分割最終目的性的考慮,本文將從區(qū)域角度對(duì)智能小車的多個(gè)障礙物進(jìn)行圖像分割。在圖像分割過程中,假設(shè)以R來表示整幅障礙圖像,那么圖像分割n個(gè)子區(qū)域則為R1,R2,…,Rn,且滿足以下條件:首先,若是將這些子區(qū)域進(jìn)行組合,若是拼湊出一副完整的障礙圖像,則說明本次障礙圖像分割具備完全性,以公式表示為:Yni=1Ri=R;其次,若是這些子區(qū)域中若干子區(qū)域像素具有特定相似度準(zhǔn)則,則Ri,i∈{1,2,…,n}表示為一個(gè)連通區(qū)域。與此同時(shí),若是子區(qū)域之間像素為相互獨(dú)立,則RiIRj=Φ,i,j∈{1,2,…,n},i≠j;最后,若是子區(qū)域的相鄰區(qū)域內(nèi),子區(qū)域的像素點(diǎn)所滿足的性質(zhì)皆不同,則相鄰區(qū)域Ri與Rj,P(Ri)I P(Rj)=Φ。在該公式中,P(Ri)表示像素點(diǎn)在分割子區(qū)域內(nèi)應(yīng)滿足的性質(zhì)。
通過圖像分割的方式,將目標(biāo)障礙物區(qū)域以矩形框進(jìn)行包圍。根據(jù)矩形框范圍就可了解障礙物范圍。智能小車再根據(jù)障礙物范圍情況,選擇相應(yīng)的運(yùn)動(dòng)方式,避開多個(gè)障礙物。
智能小車避障流程圖如圖4所示。
圖4 智能小車避障流程圖
根據(jù)圖4所示,智能小車在進(jìn)行避障過程中,基于ARM的車輛障礙自動(dòng)識(shí)別系統(tǒng)將利用區(qū)域分割算法對(duì)環(huán)境坐標(biāo)系進(jìn)行確定。若在該算法判斷智能小車前面未出現(xiàn)障礙物,或是該障礙物未對(duì)智能小車構(gòu)成阻礙時(shí),該系統(tǒng)將會(huì)引導(dǎo)智能小車沿初始方向運(yùn)行;若是算法判斷出障礙目標(biāo),該系統(tǒng)將引導(dǎo)智能小車執(zhí)行智能避障。
為了驗(yàn)證本次設(shè)計(jì)的可行性,本文將對(duì)基于ARM的車輛障礙自動(dòng)識(shí)別系統(tǒng)的智能小車避障過程進(jìn)行實(shí)驗(yàn)。實(shí)驗(yàn)開始之前,筆者將采用在智能小車行駛的右上方放置障礙物的方式,然后通過在小車前方布置CCD攝像機(jī),完成對(duì)障礙物圖像的采集,并測(cè)試智能小車能否成功避開相關(guān)障礙物。具體實(shí)驗(yàn)過程如圖5所示。
圖5 系統(tǒng)實(shí)驗(yàn)過程
根據(jù)圖5所示,基于ARM的車輛障礙自動(dòng)識(shí)別系統(tǒng)的智能小車在面臨前方障礙物時(shí),能夠自動(dòng)完成避障過程,這足以說明本次設(shè)計(jì)具有實(shí)際性及合理性。
通過上述的設(shè)計(jì)看出,通過硬件和軟件的搭建,并借助基于區(qū)域障礙物識(shí)別算法,可有效地判別小車運(yùn)行的過程中的障礙物,進(jìn)而為車輛自動(dòng)作業(yè)提供了參考和借鑒。但是本文研究是以水平地面作為研究,在實(shí)際的研究中,還需要結(jié)合道路的復(fù)雜性,進(jìn)行更加深入的探討和分析。