曲 鵬,龔麗農(nóng),高鴻雁,張惠莉,趙澤民,付全青
(1.青島農(nóng)業(yè)大學 機電工程學院,山東 青島 266109;2.北京中宸泓昌科技有限公司,北京 100083;3.山東中煙工業(yè)有限公司青島卷煙廠,山東 青島 266101)
田間異物指農(nóng)田中非作物性目標,如機井、土墳、大型石塊或在農(nóng)機作業(yè)前方的人等。農(nóng)機作業(yè)時,尤其是大田作業(yè),長時間在同一視覺背景下工作,農(nóng)機手由于慣性等原因會對突然出現(xiàn)的田間異物反映速度下降,從而可能引發(fā)人機安全事故。為此,針對田間機井、石塊、土堆等體積較大異物的識別進行了算法的研究,以研究快速、低成本且能夠廣泛應用在普通農(nóng)機上的田間異物識別報警系統(tǒng)。
農(nóng)機在正常情況下作業(yè),農(nóng)機手工作前方的背景是大片相同景觀,以視覺觀察,大致沒有色差,如圖1所示。圖像像素為2 048×1 536,可分別獲取到2 048×1 536個點的R、G、B值[1]。
分別對兩張圖片找出各像素點的R、G、B及R+G+B值中的最大值、最小值,以及整張圖片的每個像素點所對應的R、G、B值,相加后求平均值。將圖片分成16行12列共192個區(qū)域,分別計算各個區(qū)域的R、G、B的R+G+B值的平均值,并找出其中的最大值、最小值,數(shù)據(jù)如表1所示。
(a) 麥田背景 (b) 綠植被背景
由表1可知:在麥田背景下按像素計算,最小的差值達到229。按區(qū)域均值計算法,每個區(qū)域與整張圖片的均值差值的最大差值為23,明顯小于像素計算方法。這種計算方法,符合農(nóng)機手在觀測大田時,“大致觀察”而忽略極小差別的習慣,而按R+G+B進行分析也有相同的結論[2]。
設圖像的像素為m×n,則圖像數(shù)據(jù)可為m×n×3的三維像素矩陣,分別代表3種色系R*(b,c)、G*(b,c)、B*(b,c),設定區(qū)域分塊參數(shù)為a,則有
(1)
在計算中,為確保m、n被整除,取a為m、n的公約數(shù)。
將矩陣R*(b,c)、G*(b,c)、B*(b,c)的行值m、列值n分別除以a,則矩陣被分成b×c塊區(qū)域,每塊區(qū)域中所含的像素點數(shù)為a2;對每個區(qū)域的像素點求平均值,將所有區(qū)域的像素平均值列入矩陣中,得到行c列的矩陣R(b,c)、G(b,c)、B(b,c)[3]。
則區(qū)域均值矩陣R(b,c)中的元素計算公式為
(2)
對于矩陣G(b,c)、B(b,c)中的元素也是采用式(2)的方法計算。
表1 無異物背景圖片主要參數(shù)計算表
大田內(nèi)有墳包的圖片,拍攝所得圖像像素為2 048×1 536,如圖2所示。
(a) 無異物背景 (b) 墳包異物原圖 (c) 區(qū)域均值處理圖
計算無異物背景圖像下大田的均值為R1=60、G1=124、B1=27。根據(jù)區(qū)域均值計算模型,按照a=128分區(qū)進行計算。獲取區(qū)域均值矩陣R、G、B。
將矩陣R中的所有元素與R1進行對比,畫出矩陣中與R1差值的絕對值大于50的區(qū)域。用相同方法對比G中的元素與G1的差值和B中的元素與B1的差值,畫出差值絕對值大于50的區(qū)域??梢钥闯觯撼霈F(xiàn)明顯數(shù)據(jù)差值的位置與異物存在的位置大致相同。利用MatLab圖像生成函數(shù)將經(jīng)區(qū)域均值計算后的數(shù)據(jù)顯示成圖像[見圖2(c)]可看到相同的結果。則有
值得注意的是模擬矩陣G的左下被畫出的部分與G1差值的絕對值也大于50,但是綜合看3個模擬矩陣中R和B中對應部分并不滿足絕對條件且此區(qū)域與其他區(qū)域相比過小,所以忽略不計。
將以上3個矩陣進行相加,得到圖像的R+G+B數(shù)據(jù),利用同樣的算法進行計算得到R+G+B均值數(shù)據(jù),畫出與均值差值的絕對值大于50的區(qū)域,與異物存在位置有相同的結果。這個結論對于將這種算法應用到機具上有很重要的意義。由于大部分車載攝像頭的數(shù)據(jù)傳輸格式為RGB連續(xù)型,應用R+G+B數(shù)據(jù)可大大減少運算時間,即
圖3為綠色植被內(nèi)有基井的圖片,拍攝所得圖像像素為2 048×1 536,R+G+B矩陣的均值為320。該圖的特點是背景圖片不太均勻,且異物與背景的反差沒有圖2大。用同樣的方法進行區(qū)域均值計算,分別取a=128和a=256,獲得矩陣R+G+B。
(a) 無異物背景圖 (b) 基井異物背景圖
(c) a=128均值模擬圖 (d) a=256均值模擬圖
當a=128時,R+G+B為
增大a的取值,可以減少計算時間,當a=256時,R+G+B為
分析當a分別為128和256時的矩陣R+G+B,并畫出與均值差的絕對值大于150的元素,可知:在圖片像素不太均勻、且異物與背景的反差沒有圖2大的情況下,a取不同的值都能得出與圖2相同的結論,可以說明本算法具有比較好的兼容性。
不同的是,當a=128時,被畫出的區(qū)域中有個別數(shù)據(jù)并不滿足判別條件,分析原圖可知主要原因是:基井中井蓋部分與背景的色差很小使像素差值未能達到要求。
對比圖3(c)和圖3(d)可以發(fā)現(xiàn):當a=256時圖像中的異物失真比較嚴重,并不能判斷出異物的大小和輪廓,結果不理想;但是,與a=128相比此時處理的數(shù)據(jù)要更少,計算更為快捷。所以,如果圖像中異物的比例較大且于背景顏色差別較大時,適當增大a的取值,可以在不影響結果的前提下減少計算時間。
攝像頭位置、拍攝角度與農(nóng)機的關系。如圖4(a)所示,攝像頭安裝在A點,設安裝高度為hAD,相機的傾斜角為α。圖4(b)為拍攝圖像所對應的實際區(qū)域,相當于一個梯形。
(a) 攝像頭安裝示意圖 (b) 實際拍攝區(qū)域示意圖
由圖4(a)可知lDC=hAE·tanα,設農(nóng)機最快的速度為vM,處理器處理完一張圖片所需的時間為tM,從緊急制動到剎停所需的距離記為lZD,則當lDC≥3lZD+vMtM時認為農(nóng)機有足夠安全的剎車距離。其中,lDC為農(nóng)機最前端D點到攝像頭所拍攝實際區(qū)域距離農(nóng)機最近的C點的距離。為滿足安全的剎車距離lDC通過調(diào)節(jié)安裝高度hAD,相機的傾斜角α來實現(xiàn)。在滿足剎車距離的同時還需要w1大于農(nóng)機的作業(yè)寬度,此時認為攝像頭的安裝滿足要求。
設通過區(qū)域均值計算模型得到的R(b,c)矩陣中每個區(qū)域小塊的面積為sK,高為Δh。其中,sK的大小根據(jù)區(qū)域小塊的坐標變化而不斷變化,攝像頭與垂直方向的夾角為α,攝像機的橫向視角為θ,縱向視角為θ′,攝像機傳感器橫向分辨率是m、縱向分辨率是n。
根據(jù)圖4計算得出,sK與區(qū)域小塊坐標之間的關系,即
(3)
設當背景圖像無異物時,大田背景圖像R+G+B矩陣的均值為M,并根據(jù)均值計算模型計算出RGB相加的均值矩陣RGBaver(i,j),令辨識參數(shù)為t,則有
(4)
其中,若x(i,j)與均值M的差值大于t則對RGBaver(i,j)的對應位置1,其余位置置0,這樣處理后得到的矩陣RGB01(b,c)為二值矩陣。
此時,若要判斷圖像中是否存在異物,只需判斷矩陣RGB01(b,c)中連片1的個數(shù)是否達到一定數(shù)值ZL(ZL為正整數(shù)),若達到則說明存在異物;反之,則說明圖像中不存在異物。ZL的設置應與機具的規(guī)模和a值相關。
將RGB01(b,c)矩陣從最靠近機具側的b行開始,按行將每個元素相加,設第x行的元素相加的和為
(5)
其中,x矩陣的行索引x=b,b-1,…,1;sx為第x各元素相加之合。
若sx=0,令x=x-1繼續(xù)計算sx-1的值;若sx≠0,則Zi=1。此時若ZL=1,證明圖像中存在異物,第x行中第一個值為1的元素的位置,即為異物所在的位置;若ZL>1,將第x行中第一個不為0的元素記為K(i,j),一旦找到K(i,j)則進行如下計算,即
(6)
其中,Zi是以K(i,j)為起始點連片1的個數(shù);fi表示K(i,j)周圍元素值為1的個數(shù)。
當fi=0在K(i,j)周圍與之相連的元素值都為0,不存在連片的1,則證明該點不存在異物,此時將Zi′的值清0。
當fi≠0時,判斷Zi與ZL的大小關系,若Zi′≥ZL,說明圖片中存在異物,K(i,j)的位置即為異物所在的位置;若Zi′ 當點K(i,j)不存在異物時,繼續(xù)尋找下一個不為0的元素,循環(huán)進行上述計算。 因對圖像的處理是從最靠近機具側的b行開始,故判斷出的第一個異物距離農(nóng)機最近,此時認為本張圖片處理完畢。 本系統(tǒng)硬件主要由電源供電模塊、STM32主控模塊、液晶屏顯示模塊、圖像數(shù)據(jù)處理模塊、異物識別模塊、聲光報警模塊,以及攝像頭組成,如圖5所示。 單片機選用了意法半導體公司的STM32407芯片,時鐘控制運用晶體振蕩器模式,外部晶振使用12MHz的無源晶振為系統(tǒng)提供精確的主時鐘,負載電容值根據(jù)振蕩器調(diào)整為20pF[4]。采用OV2640攝像頭,分辨率為1 600×1 200。控制系統(tǒng)采用TFTLCD電容觸摸液晶屏作為顯示模塊,具有功耗低、亮度均勻及穩(wěn)定性好等優(yōu)點[5]。數(shù)據(jù)處理模塊對攝像頭所采集的圖像數(shù)據(jù)進行讀取與處理,通過異物識別模塊來判斷圖像中是否存在異物,如存在異物則通過單片機驅動聲光報警電路實現(xiàn)報警。 圖5 系統(tǒng)硬件結構圖 系統(tǒng)軟件部分主要包括主程序、攝像頭數(shù)據(jù)讀取程序、圖像數(shù)據(jù)處理程序、異物識別程序、液晶顯示屏圖像顯示和串口發(fā)送數(shù)據(jù)程序,以及系統(tǒng)報警的程序設計等。當單片機讀取到攝像頭拍攝的圖像數(shù)據(jù)時,對數(shù)據(jù)做相應的處理,通過異物識別模塊進行異物的判別,根據(jù)判別結果決定是否進行報警。初始化程序包括定時器中斷及串口中斷等必要的寄存器和工作模式的配置,主程序流程圖如圖6所示。 圖6 系統(tǒng)軟件主程序流程圖 1)試驗方法及過程:將攝像頭安裝于五證TA354型拖拉機上,進行實地的田間圖像采集。拍攝時攝像頭距離地面的垂直高度為3m,將攝像頭與水平方向的夾角α分別調(diào)至45°與55°進行拍攝,拍攝圖像的像素為1 600×1 200。已知攝像頭的橫向視角θ=40°,所以縱向視角θ′=30°。 當α=45°時,農(nóng)機最前端到攝像頭所拍攝實際區(qū)域的距離為3m,系統(tǒng)處理一張圖像所需要的時間約為0.97s。農(nóng)機在田間作業(yè)期間速度不會超過4.5km/h,經(jīng)測量拖拉機從最大作業(yè)速度緊急制動到靜止所需要的制動距離小于0.5m,則有3m≥3lZD+vMtM,且圖像所對應的實際區(qū)域的最小寬度為2.18m,大于拖拉機的作業(yè)寬度。當α=55°時,攝像頭的安裝依然符合要求。 改變安裝角度α與分塊參數(shù)a的取值,對區(qū)域小塊所對應面積的最大值與最小值之間的關系,如表2 所示。 表2 α與a取值對區(qū)域小塊面積影響 由表2可以看出:當α一定時,a的取值越大,每個區(qū)域小塊所對應的實際面積增大。當a的取值一定時,隨著α的增加,每個區(qū)域小塊所對應的實際面積增大且面積的最大值與最小值的比例增加。 2)試驗結果分析:以α=45°時采集的圖像為例,如圖7所示。 (a) (b) (c) (d) 當a=128時,得到圖7所對應的二值矩陣RGB01(16,12)此時將二值矩陣根據(jù)距離農(nóng)機側的遠近劃分為近、中、遠3個區(qū)域:橫坐標在11~16之間的為近區(qū)域;橫坐標在5~10之間的為中間區(qū)域;橫坐標在1~6之間的為遠區(qū)域。矩陣中相鄰區(qū)域小塊的實際面積相差較小,為方便計算可用0.06、0.14、0.36m2分別代替近、中、遠3個區(qū)域中每個區(qū)域小塊所對應的實際面積。 設所求的異物的面積要大于0.5m2,此時近、中、遠3個區(qū)域的ZL值分別為9、4、2,即3個區(qū)域中連片1的數(shù)個分別大于對應的ZL值時證明存在異物。 1)以田間體積較大的異物包括土堆、石塊和機井等為研究對象,以實現(xiàn)快速識別田間異物為目的,建立田間異物識別數(shù)學模型。將區(qū)域均值計算模型作為圖像數(shù)據(jù)處理的基礎,并且采用將R、G、B矩陣的對應區(qū)域均值相加及閾值法求二值矩陣等方法,實現(xiàn)了異物的快速定位法。 2)試驗表明:田間異物識別算法能夠快速地識別出圖像中的異物,且可以對異物的位置進行較為準確的定位,具有較高的實用性和研究價值。本設計適用于田間體積比較大的異物,但并不適應于雜草、農(nóng)作物的識別。 參考文獻: [1] 何希平,張瓊華.基于MATLAB的圖像處理與分析[J].重慶工商大學學報,2003,20(2):22-26. [2] 張瑾,楊常清.基于矩陣分析的數(shù)字圖像處理方法[J].微機發(fā)展,2003,13(5):37-38. [3] 馬永慧.基于MatLab的圖像分割的技術研究[J].陜西電子技術,2012,91(4):2. [4] 唐雪松.基于STM32F407的IEEE1588從時鐘設計與實現(xiàn)[D].大連:大連理工大學,2014. [5] 熊雪艷,梁光勝,賴程鵬,等.基于OV2640模塊的網(wǎng)絡視頻監(jiān)控系統(tǒng)設計[J].單片機與嵌入式系統(tǒng)應用,2015(12):23-26.3 系統(tǒng)實現(xiàn)
4 試驗與分析
5 結論