重 陽,趙建凱,馬修才
(內(nèi)蒙古自治區(qū)大氣探測(cè)技術(shù)保障中心,呼和浩特 010051)
內(nèi)蒙古自治區(qū)是牧業(yè)大區(qū),草原生態(tài)建設(shè)及牧業(yè)發(fā)展對(duì)氣象服務(wù)提出了更高的要求,迫切需要生態(tài)氣象、牧業(yè)氣象為草原生態(tài)建設(shè)、現(xiàn)代牧業(yè)的發(fā)展提供時(shí)效更快、內(nèi)容更多、水平更高、針對(duì)性更強(qiáng)的服務(wù)產(chǎn)品。因此,獲取高精度、高密度、多要素、連續(xù)穩(wěn)定的牧草觀測(cè)信息勢(shì)在必行。當(dāng)前的牧草觀測(cè)技術(shù)、手段、時(shí)效、內(nèi)容以及觀測(cè)站點(diǎn)密度等遠(yuǎn)不能滿足草原生態(tài)建設(shè)、現(xiàn)代牧業(yè)氣象業(yè)務(wù)和服務(wù)發(fā)展的需求,牧草觀測(cè)自動(dòng)化程度低,目前牧草觀測(cè)仍以人工和手工方式為主[1-5],勞動(dòng)強(qiáng)度大,費(fèi)時(shí)費(fèi)力;牧草觀測(cè)精度有限,可比性不強(qiáng),由于觀測(cè)人員的專業(yè)素質(zhì)、熟練程度、觀測(cè)習(xí)慣和責(zé)任心等不同,造成觀測(cè)精度差別較大。當(dāng)前以目測(cè)或簡(jiǎn)單器測(cè)、手工記錄和報(bào)表寄送、紙質(zhì)存檔等為主的牧草觀測(cè)業(yè)務(wù)[4-5],與氣象現(xiàn)代化建設(shè)要求相差甚遠(yuǎn),亟需提高其自動(dòng)化觀測(cè)能力。
現(xiàn)代科學(xué)技術(shù)的發(fā)展使得自動(dòng)觀測(cè)能力和水平不斷提高,新設(shè)備、新方法的應(yīng)用越來越多,原有的以人工觀測(cè)為主的業(yè)務(wù)體系正在發(fā)生根本性的變革[6-10]。目前國內(nèi)在牧草觀測(cè)自動(dòng)化技術(shù)發(fā)面的研究大多是采用2個(gè)網(wǎng)絡(luò)攝像頭(帶網(wǎng)絡(luò)接口的工業(yè)或民用相機(jī))采集圖像[11-14],通過網(wǎng)絡(luò)傳向后端(即上位機(jī),工控機(jī)或PC),在后端進(jìn)行圖像處理與模式識(shí)別[15-18]。用于觀測(cè)的傳感器并非智能圖像傳感器,未實(shí)現(xiàn)智能感知,采集到的觀測(cè)圖片完全依賴于后端計(jì)算機(jī)的圖像識(shí)別處理能力,此技術(shù)思路設(shè)計(jì)的系統(tǒng)穩(wěn)定性較差,功耗較大,數(shù)據(jù)傳輸壓力大(高分辨率原始圖片文件較大)。為滿足專業(yè)觀測(cè)業(yè)務(wù)現(xiàn)代化建設(shè)需求,實(shí)現(xiàn)為專業(yè)觀測(cè)業(yè)務(wù)提供基礎(chǔ)支撐,發(fā)展牧業(yè)、生態(tài)氣象的自動(dòng)化觀測(cè)業(yè)務(wù)為目標(biāo),筆者在研究符合內(nèi)蒙古特點(diǎn)的牧草觀測(cè)自動(dòng)化技術(shù)的基礎(chǔ)上,設(shè)計(jì)基于嵌入式技術(shù)和并行計(jì)算技術(shù)的智能傳感器的觀測(cè)系統(tǒng),采集完成直接在本地完成處理后再將結(jié)果向后端傳輸,以適應(yīng)對(duì)體積、功耗、數(shù)據(jù)傳輸、工作環(huán)境及穩(wěn)定性要求極高的野外觀測(cè)場(chǎng)合。
本研究及系統(tǒng)設(shè)計(jì)總體技術(shù)思路遵循以下原則進(jìn)行:適合用于對(duì)體積、功耗、工作環(huán)境及穩(wěn)定性要求極高的野外觀測(cè)場(chǎng)合;在超高速圖像處理和大分辨率圖像處理方面可實(shí)現(xiàn)牧草自動(dòng)連續(xù)觀測(cè),能夠滿足實(shí)時(shí)業(yè)務(wù)要求;觀測(cè)端到應(yīng)用端可實(shí)現(xiàn)數(shù)據(jù)的高速實(shí)時(shí)傳輸。根據(jù)以上原則,本研究及系統(tǒng)設(shè)計(jì)包括算法研究設(shè)計(jì)、硬件結(jié)構(gòu)設(shè)計(jì)、軟件結(jié)構(gòu)設(shè)計(jì)。
在技術(shù)研究及系統(tǒng)設(shè)計(jì)中,對(duì)草原地表面牧草形態(tài)進(jìn)行自動(dòng)識(shí)別檢測(cè)的圖像處理算法設(shè)計(jì),是利用數(shù)理統(tǒng)計(jì)及圖像處理技術(shù)實(shí)現(xiàn)牧草密度(蓋度)的自動(dòng)觀測(cè)、牧草株高的自動(dòng)測(cè)量、牧草發(fā)育期圖像信息提取及定量化處理的方法。采用現(xiàn)代電子技術(shù)以及DSP技術(shù)、圖像處理技術(shù)相結(jié)合的方式研制圖像處理與模式識(shí)別的智能傳感器,實(shí)現(xiàn)牧草覆蓋度、層(株)高以及牧草生長(zhǎng)期的自動(dòng)觀測(cè)功能,觀測(cè)產(chǎn)品提供形式為OSD、圖片文件、Excel表。系統(tǒng)設(shè)計(jì)主要包括硬件系統(tǒng)和軟件系統(tǒng)2個(gè)部分的設(shè)計(jì),硬件系統(tǒng)主要由圖像采集模塊、圖像處理模塊和網(wǎng)絡(luò)傳輸模塊組成;軟件系統(tǒng)包括下位機(jī)(DSP)程序和上位機(jī)(VC++)程序。DSP程序?qū)崿F(xiàn)圖像的實(shí)時(shí)采集,覆蓋度、株高的計(jì)算,生長(zhǎng)發(fā)育期的判別;上位機(jī)程序?qū)崿F(xiàn)相機(jī)的遠(yuǎn)程控制,圖像的接收、存儲(chǔ),系統(tǒng)參數(shù)配置,檢測(cè)結(jié)果的顯示、記錄及數(shù)據(jù)產(chǎn)品的生成。
按照總體設(shè)計(jì)技術(shù)思路,選擇的硬件方案應(yīng)遵循數(shù)據(jù)傳輸壓力小、適合用于對(duì)體積、功耗、工作環(huán)境及穩(wěn)定性要求極高的野外觀測(cè)場(chǎng)合的設(shè)計(jì)原則。采用2個(gè)200萬像素工業(yè)相機(jī)在前端采集圖像,并在前端通過DSP進(jìn)行圖像處理與檢測(cè)判別,將處理后的結(jié)果再通過網(wǎng)絡(luò)傳向客戶端(即用戶,智能手機(jī)或PC)。
面向嵌入式微型化視覺圖像領(lǐng)域,系統(tǒng)由FPGA板塊和DSP板塊2塊核心板塊組成。FPGA擴(kuò)展有2路Full Camera Link接口,其中一路為輸入,一路為輸出;DSP板進(jìn)行圖像處理,并通過網(wǎng)絡(luò)口傳輸處理結(jié)果。2塊板卡通過FMC接口連接,相機(jī)的圖像數(shù)據(jù)先從Camera Link接口傳輸至FPGA板,F(xiàn)PGA對(duì)其進(jìn)行預(yù)處理,然后通過FMC接口上的RapidIO傳輸至DSP板塊。DSP板上的網(wǎng)絡(luò)口將處理結(jié)果及圖像傳輸給遠(yuǎn)程的客戶(PC或智能手機(jī))。此嵌入式方案相對(duì)于采用2個(gè)帶網(wǎng)絡(luò)接口的工業(yè)相機(jī)采集圖像,通過網(wǎng)絡(luò)傳向后端(即上位機(jī),工控機(jī)或PC),在后端進(jìn)行圖像處理與檢測(cè)判別的非嵌入式方案,不但體積及功耗小、自帶多種外設(shè)、運(yùn)算速度快、魯棒性好,而且能夠大大減輕數(shù)據(jù)傳輸壓力,在超高速圖像處理和大分辨率圖像處理方面具有領(lǐng)先優(yōu)勢(shì)。
整個(gè)系統(tǒng)的硬件部分主要由圖像采集模塊、圖像處理模塊和網(wǎng)絡(luò)傳輸模塊組成,如圖1所示。工業(yè)相機(jī)通過CameraLink接口與DSP相連,相機(jī)采集到的數(shù)據(jù)通過DSP上的EDMA傳送到片外的SDRAM,以便圖像處理應(yīng)用程序使用。圖像處理應(yīng)用程序?qū)D像進(jìn)行相應(yīng)的處理之后,將處理后的圖像及原圖進(jìn)行JPEG壓縮,然后將JPEG圖像及處理結(jié)果通過以太網(wǎng)控制器進(jìn)行網(wǎng)絡(luò)傳輸。
圖1 硬件結(jié)構(gòu)
系統(tǒng)的硬件部分包括2臺(tái)200萬像素智能工業(yè)相機(jī)(工業(yè)相機(jī)內(nèi)自帶DSP),2個(gè)200萬像素C口鏡頭,1臺(tái)交換機(jī),1臺(tái)服務(wù)器(可用PC機(jī)代替),以及支架、光源、相機(jī)防護(hù)罩等其他設(shè)備。其中工業(yè)智能相機(jī)內(nèi)有1個(gè)網(wǎng)口,通過DSP編程對(duì)圖像進(jìn)行采集、處理,并通過網(wǎng)口傳向遠(yuǎn)端的服務(wù)器端(上位機(jī)端),服務(wù)器端將2路信號(hào)進(jìn)行同步、綜合分析后再通過網(wǎng)絡(luò)傳給客戶端。
硬件系統(tǒng)共有3種供電方式,采用12 V 1.0 A直流電源供電,采用外接170~264 V 50/60 Hz的交流電源供電,實(shí)際在野外使用時(shí)采用太陽能供電。
軟件系統(tǒng)包括下位機(jī)(DSP)程序和上位機(jī)(VC++)程序。上位機(jī)與下位機(jī)之間通過TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)通信。下位機(jī)由2部完全相同的智能工業(yè)相機(jī)構(gòu)成,2部相機(jī)的圖像采集、牧草檢測(cè)、網(wǎng)絡(luò)傳輸?shù)菵SP程序基本相同,不同在于圖像處理算法程序不同。2部相機(jī)的軟件實(shí)現(xiàn)任務(wù)及分工如表1所示。
表1 系統(tǒng)2部相機(jī)任務(wù)劃分
下位機(jī)的DSP程序的軟件架構(gòu)采用了TI的RF5參考框架。在本系統(tǒng)中,圖像數(shù)據(jù)的壓縮采用JPEG壓縮算法。網(wǎng)絡(luò)傳輸采用TI公司專門為C6000 DSP推出的NDK(Network Developer′s Kit)網(wǎng)絡(luò)開發(fā)包。在操作系統(tǒng)方面,采用了基于DSP/BIOS的實(shí)時(shí)操作系統(tǒng)。首先,在DSP/BIOS配置工具中靜態(tài)建立3個(gè)任務(wù)線程,包括圖像采集線程、圖像處理線程、網(wǎng)絡(luò)初始化線程,如圖2所示。網(wǎng)絡(luò)傳輸線程由網(wǎng)絡(luò)初始化線程在程序中動(dòng)態(tài)創(chuàng)建。
圖2 DSP任務(wù)線程
main函數(shù)主要完成整個(gè)程序的初始化工作,如片上L2緩存的分配,目標(biāo)板的初始化,RF5模塊的初始化,視頻采集和顯示的初始化與啟動(dòng)等。然后DSP把程序的控制權(quán)交給DSP/BIOS線程調(diào)度器(scheduler),由調(diào)度器按線程的優(yōu)先級(jí)來調(diào)度執(zhí)行。系統(tǒng)線程關(guān)系圖如圖2所示,線程之間通過RF5中的SCOM模塊(synchronized communication)進(jìn)行同步通信。圖像幀在各個(gè)任務(wù)之間的傳遞是通過指針實(shí)現(xiàn)的,即通過SCOM消息將圖像數(shù)據(jù)的指針(首地址)傳遞到下一個(gè)任務(wù)。
牧草模式識(shí)別是對(duì)草原地表面牧草形態(tài)的識(shí)別檢測(cè),其算法研究設(shè)計(jì)主要包括設(shè)計(jì)一套利用數(shù)理統(tǒng)計(jì)及圖像處理技術(shù)實(shí)現(xiàn)牧草蓋度的自動(dòng)觀測(cè)、牧草株高的自動(dòng)測(cè)量、牧草發(fā)育期圖像信息提取及定量化處理的方法。
3.2.1 牧草的檢測(cè) 由相機(jī)采集的圖像中的像素是否具備某些特征,從而直接在RGB空間上轉(zhuǎn)換成二值化圖像,分割出牧草與非牧草區(qū)域。這些特征應(yīng)既考慮牧草的色度信息又考慮牧草的光照信息,這些特征由用戶根據(jù)4個(gè)參數(shù)來定義,如表2。
表2 牧草檢測(cè)圖像參數(shù)
對(duì)綠色植被來說,dominant RGB component與dominated RGB component分別對(duì)應(yīng)G(green)通道和B(blue)通道;而shadow和light代表了2個(gè)亮度門限值,這2個(gè)門限值能夠?qū)⑻?≤shadow)或太亮的(≥light)像素濾除掉。對(duì)于綠色和黃色,分別采用圖3和圖4的邏輯來檢測(cè)[19]。
圖3 綠色檢測(cè)邏輯
圖4 黃色檢測(cè)邏輯
通過上述方法,將牧草區(qū)域用白色表示,非牧草區(qū)域用黑色表示,這樣檢測(cè)出牧草區(qū)域。light典型值取200,shadow典型值取50。此算法具有很好的通用性,只需根據(jù)要檢測(cè)的特定目標(biāo)調(diào)整相應(yīng)的主導(dǎo)成分、受控成分、最小亮度和最大亮度,即可檢測(cè)出黃色、紫色、紅色等各種植被目標(biāo)。
3.2.2 覆蓋度檢測(cè) 根據(jù)3.2.1小節(jié)方法檢測(cè)出牧草后,再統(tǒng)計(jì)出圖像中牧草區(qū)域的像素個(gè)數(shù),與總像素的比值即為牧草(綠草)的覆蓋度[20-22]。
3.2.3 層高與株高檢測(cè) 對(duì)牧草層高的檢測(cè)采用4個(gè)步驟實(shí)現(xiàn)。
(1)用一個(gè)相機(jī)水平放置(略偏上)拍攝牧草,要求能拍到天空背景。
(2)采用3.2.1節(jié)的方法將RGB圖像轉(zhuǎn)化為二值圖[23],在二值圖中用黑色(0)表示綠草區(qū)域,白色(255)表示非綠草區(qū)域。通過顏色空間提取到的綠草(里面混著非綠草的干擾以及不連通的綠草)如圖5所示。
圖5 通過顏色空間提取到的綠草示例
(3)通過每行綠色像素點(diǎn)數(shù)量的變化曲線(如圖6所示)獲得最高一層的高度信息,同時(shí)以橫坐標(biāo)為參考點(diǎn),獲得每個(gè)(每列)最高點(diǎn)的高度信息(最高的行號(hào))。
圖6 每行綠色像素點(diǎn)數(shù)量的變化
圖6中橫坐標(biāo)是行號(hào),縱坐標(biāo)是該行的綠色像素的點(diǎn)數(shù)(圖5圖像左上角為第1行第1列,右下角是最后一行最后一列)。圖5從最上面的第1行到最高點(diǎn)(最高行)置為255(非目標(biāo)的白色),通過這種方法可以將非綠草的干擾濾除,濾波后的圖像如圖7所示。
圖7 濾除非綠草干擾后
(4)計(jì)算每一列中最下一行到該列最高點(diǎn)的行的長(zhǎng)度(即為這一列的綠草的高度),然后求所有列的平均高度,根據(jù)式(1)求出草的平均高度。
根據(jù)式(1)計(jì)算出圖7中草的層高為95.3760個(gè)像素。當(dāng)然,牧草可能不會(huì)這么密集,可能某些地方出現(xiàn)間斷,因此圖像中不是所有列都有牧草像素,此時(shí)若直接采用圖像的寬度作為分母來獲取牧草的層高顯然會(huì)使其值偏大。為了解決這個(gè)問題,可以在程序中設(shè)置一個(gè)閥值,當(dāng)該列的綠色像素個(gè)數(shù)少于該閥值時(shí)認(rèn)為該列不應(yīng)參與層高的運(yùn)算。
注意這種方法得到的層高的單位是像素?cái)?shù),即圖7中草的層高是N個(gè)像素的高度,每個(gè)像素的高度為H μm(這個(gè)由相機(jī)的CCD參數(shù)決定),因此圖像中的層高為層高的像素?cái)?shù)與像素高度的乘積,單位為μm。其實(shí)際高度需要相機(jī)標(biāo)定后通過標(biāo)定后的空間關(guān)系得到[24-25]。設(shè)一個(gè)由像高轉(zhuǎn)物高的轉(zhuǎn)換系數(shù)depthscale,則以mm為單位的層高為層高×轉(zhuǎn)換系數(shù)。
對(duì)于株高的計(jì)算,可以采用二項(xiàng)式擬合的方式得到。即設(shè)y1=ax2+bx+c,其中x為層高,通過以上方法由系統(tǒng)直接得到;y1為株高,a、b、c為擬合系數(shù)。首先由本系統(tǒng)直接得到層高(x以mm為單位),然后人工測(cè)出與該圖像對(duì)應(yīng)的株高(以mm為單位)y。通過這種方法測(cè)得多組數(shù)據(jù),例如12組,然后將x、y數(shù)據(jù)(分別有12個(gè))代入到Matlab函數(shù)p=polyfit(x,y,2)中,這樣就可得到了擬合系數(shù),即a=p(1),b=p(2),c=p(3)。
3.2.4 生長(zhǎng)發(fā)育期檢測(cè) 生長(zhǎng)發(fā)育期的檢測(cè)利用水平和垂直2個(gè)方向上的特征提取。由水平放置的相機(jī)獲取的綠色像素的密度、黃色像素的密度與垂直放置的相機(jī)獲取的綠色覆蓋度、黃色覆蓋度,根據(jù)預(yù)設(shè)的閥值共同確定牧草的當(dāng)前生長(zhǎng)發(fā)育期。本研究需要實(shí)現(xiàn)牧草中返青、抽穗(或花序形成)、開花、種子成熟、黃枯的檢測(cè)。春天牧草返青,然后經(jīng)歷抽穗(花序形成)、開花、種子成熟,秋天進(jìn)入黃枯期。這5個(gè)生長(zhǎng)發(fā)育期基本上是連續(xù)觀測(cè)的一個(gè)生長(zhǎng)周期,也是大部分牧草的發(fā)育期。但具體要判別所處發(fā)育期要按照牧草的種類確定。
檢測(cè)牧草的生長(zhǎng)發(fā)育期時(shí)需要采用數(shù)理統(tǒng)計(jì)的方法事先設(shè)置各個(gè)生長(zhǎng)發(fā)育期的判別閥值。發(fā)育期的各個(gè)階段條件設(shè)置如表3所示,表中g(shù)v0、gh1、gh4、yv2、yh2、yh3、yh4表示算法中預(yù)先設(shè)置的判別閾值(通過實(shí)驗(yàn)得到)。
表3 牧草發(fā)育期階段判別
遠(yuǎn)端相機(jī)采集的圖像可以在上位機(jī)的控制下保存為bayer格式(RAW)圖片、YUV格式圖片以及JPEG圖片。由于算法是在RGB彩色空間上處理的,為了降低數(shù)據(jù)量,減少網(wǎng)絡(luò)傳輸壓力,將DSP上圖像處理的結(jié)果先轉(zhuǎn)換成yuv420格式,然后通過jpeg壓縮變成數(shù)據(jù)流,接著通過UDP或FTP將數(shù)據(jù)流傳輸?shù)缴衔粰C(jī),由上位機(jī)保存為jpeg圖片文件。圖像處理過的圖片文件以jpg格式保存,其文件命名方式為:垂直放置的相機(jī)采集的圖片以“年月日-時(shí)分秒-毫秒_V.jpg”方式,水平放置的相機(jī)采集的圖片以“年月日-時(shí)分秒-毫秒_H.jpg”方式。
DSP處理后的結(jié)果(牧草自動(dòng)化觀測(cè)結(jié)果)以如下3種方式呈現(xiàn),以便于后端的數(shù)據(jù)產(chǎn)品開發(fā)。
(1)OSD方式??梢栽谇岸耍―SP端)將檢測(cè)結(jié)果(高度、覆蓋度、發(fā)育期)直接疊加在圖片上。除了疊加檢測(cè)結(jié)果外,還可以疊加采集時(shí)間、站點(diǎn)等信息,疊加在圖片上的位置、字符的顯示顏色等均可以設(shè)置。
(2)存放于jpeg文件尾部。在DSP端將檢測(cè)的結(jié)果存放于jpeg數(shù)據(jù)流的尾部。jpeg文件以“FF D9”結(jié)束,而“FF D9”之后的數(shù)據(jù)就是要通過網(wǎng)絡(luò)傳輸給上位機(jī)的數(shù)據(jù)。通過WinHex軟件讀取jpeg文件,“FF D9”之后的最開始4個(gè)字節(jié)表示該結(jié)果數(shù)據(jù)的傳輸相機(jī)?!?8 00 00 00”表示數(shù)據(jù)0x48,而0x48即為字符“H”的ASCII碼,表示水平放置的相機(jī),如這4個(gè)字節(jié)為56 00 00 00,則表示是垂直放置的相機(jī)(0x56即為“V”);緊接著的第2個(gè)4字節(jié)66 86 5E 41(0x415E8666,即為浮點(diǎn)數(shù)據(jù)13.90781),表示水平相機(jī)檢測(cè)出的綠色像素密度;第3個(gè)4字節(jié)89 68 E9 40(0x40E96889,即浮點(diǎn)數(shù)7.294011)表示水平相機(jī)檢測(cè)出的黃色像素密度;第4個(gè)4字節(jié)C2 17 16 40(0x401617C2,即浮點(diǎn)數(shù)2.3452)表示層高(單位為mm);最后一個(gè)4字節(jié)15 02 00 00(0x0215)表示一定點(diǎn)數(shù)據(jù)(533),代表以像素?cái)?shù)為單位的層高。
(3)檢測(cè)結(jié)果直接存儲(chǔ)在Excel文件中。DSP檢測(cè)的結(jié)果也可以直接保存到Excel文件result.xls中。這樣更加有利于后端檢測(cè)數(shù)據(jù)的可視化、分析統(tǒng)計(jì)以及相關(guān)數(shù)據(jù)產(chǎn)品生成。Excel文件中A列表示提供結(jié)果數(shù)據(jù)的相機(jī),1表示垂直相機(jī),2表示水平相機(jī);B列表示數(shù)據(jù)產(chǎn)生的時(shí)間,用“年月日-時(shí)分秒”表示;C~F列分別是垂直相機(jī)產(chǎn)生的綠色覆蓋度、黃色覆蓋度以及水平相機(jī)產(chǎn)生的綠色密度、黃色密度;G、H列分別是以像素?cái)?shù)為單位和以mm為單位的層高;第I列表示由第H列進(jìn)行二項(xiàng)式擬合得到的以mm為單位的株高;最后一列表示檢測(cè)判別出的當(dāng)前牧草所處的生長(zhǎng)發(fā)育期,0表示返青期、1表示抽穗期(或花序形成期)、2表示開花期、3表示種子成熟期、4表示枯黃期。
選擇一種天然牧草品種為自動(dòng)觀測(cè)研究對(duì)象,以其發(fā)育期、生長(zhǎng)高度、及牧草覆蓋度為主要觀測(cè)要素運(yùn)行本系統(tǒng),測(cè)試本系統(tǒng)的軟硬件及算法的正確性、實(shí)時(shí)性、穩(wěn)定性。用本系統(tǒng)運(yùn)行結(jié)果與人工檢測(cè)結(jié)果進(jìn)行對(duì)比,將本系統(tǒng)運(yùn)行結(jié)果與實(shí)測(cè)覆蓋度數(shù)值、實(shí)測(cè)株高數(shù)值進(jìn)行顯著相關(guān)檢驗(yàn)。
在matlab中運(yùn)行算法仿真程序,對(duì)提供的多張已知檢測(cè)結(jié)果(已人工檢測(cè)并給出檢測(cè)結(jié)果)的圖片進(jìn)行算法驗(yàn)證,示例結(jié)果如圖8~11所示,圖中左圖為原圖,右圖為對(duì)應(yīng)二值圖。
圖8 示例1檢測(cè)綠草覆蓋度(30.8245)
大量檢測(cè)數(shù)據(jù)結(jié)果表明,圖像處理與實(shí)測(cè)覆蓋度數(shù)值顯著相關(guān)檢驗(yàn)R0.05>0.90,圖像處理與實(shí)測(cè)株高數(shù)值顯著相關(guān)檢驗(yàn)R0.05>0.85。
圖9 示例2檢測(cè)綠草覆蓋度(74.1079)
圖10 示例3檢測(cè)綠草覆蓋度(18.5507)
相機(jī)采集的是Bayer格式(每個(gè)像素只有R、G、B中的一個(gè)通道),通過內(nèi)插,轉(zhuǎn)換得到RGB圖像(以便圖像處理),圖像處理后再轉(zhuǎn)回yuv格式以便OSD以及jpeg壓縮,在上位機(jī)這一端先jpeg解壓才能顯示圖像。本研究基于RGB彩色空間進(jìn)行檢測(cè),因此RGB轉(zhuǎn)換的正確性很重要。檢測(cè)DSP程序正確性時(shí)先檢測(cè)RGB轉(zhuǎn)換是否成功。方法是先注釋掉圖像處理算法,觀察顯示的結(jié)果是否與原圖一致。經(jīng)檢測(cè),基本無差別,表明RGB轉(zhuǎn)換成功。
檢測(cè)DSP圖像處理算法移植是否成功。方法是采集一張?jiān)瓐D(圖12a),然后將圖像處理算法加入得到DSP處理后的圖像(圖12b)。再將相機(jī)采集的原圖用Matlab仿真程序運(yùn)行,得到matlab處理后的圖像(圖12c),將2種方法得到的處理結(jié)果、圖片進(jìn)行比較。在shadow=35、light=200時(shí),dsp處理的覆蓋度為39.58,matlab處理的覆蓋度為41.5015。經(jīng)比較,一般dsp處理的結(jié)果比matlab處理的結(jié)果稍偏小,差別不大,表明算法移植正確。
圖11 示例4檢測(cè)綠草覆蓋度(26.8432)
圖12 DSP圖像處理算法移植效果對(duì)比
結(jié)果差異較大可能是光線過暗或過亮,因此需要調(diào)整參數(shù)shadow與light。shadow不能設(shè)置得太高,否則有些本來是綠草目標(biāo),但由于亮度太低,而門限值(shadow)設(shè)置得太高,從而將很多本來是綠草的目標(biāo)剔除掉了。
在程序中設(shè)置一個(gè)計(jì)時(shí)器,在需要測(cè)試運(yùn)行時(shí)間的代碼塊前后通過PRD_getticks()函數(shù)得到運(yùn)行代碼前后的計(jì)時(shí)值,2個(gè)值相減即為這段代碼運(yùn)行的時(shí)間。經(jīng)測(cè)試,運(yùn)行覆蓋度檢測(cè)算法需要大約838個(gè)時(shí)鐘周期。由于DSP的主頻是600 MHz,因此覆蓋度檢測(cè)算法所需的時(shí)間大約為2 μs。
此外,也可以采用全幀連續(xù)方式觸發(fā),采用軟件JPEG輸出,啟用OSD的時(shí)間標(biāo)記功能,然后選中圖像預(yù)覽功能,在預(yù)覽窗口中觀察每幀圖像時(shí)間字符串的變化,發(fā)現(xiàn)它們按照3 s左右變化,這個(gè)時(shí)間包括圖像的采集、圖像處理、jpeg編碼、網(wǎng)絡(luò)傳輸以及上位機(jī)的jpeg解碼、圖像顯示,也就是說整個(gè)過程只需要3 s左右時(shí)間。因此處理速度能達(dá)到自動(dòng)化觀測(cè)要求,實(shí)時(shí)性較好。
筆者根據(jù)草原生態(tài)及牧業(yè)氣象業(yè)務(wù)服務(wù)需求,以內(nèi)蒙古自治區(qū)特色的牧業(yè)氣象觀測(cè)項(xiàng)目——牧草觀測(cè)為研究?jī)?nèi)容,依據(jù)牧草觀測(cè)業(yè)務(wù)服務(wù)重點(diǎn)和觀測(cè)要求,設(shè)計(jì)牧草模式識(shí)別算法與自動(dòng)觀測(cè)系統(tǒng)架構(gòu),以獲取高精度、高密度、多要素、連續(xù)穩(wěn)定的牧草觀測(cè)信息,實(shí)現(xiàn)遠(yuǎn)距離、多樣區(qū)、高精度自動(dòng)監(jiān)測(cè),相比人工觀測(cè)具有省時(shí)、省工、客觀性強(qiáng)等優(yōu)點(diǎn),對(duì)提高觀測(cè)資料的客觀性、數(shù)據(jù)質(zhì)量和降低觀測(cè)人員野外勞動(dòng)強(qiáng)度和工作量、提高觀測(cè)效率等具有重要意義。
基于嵌入式技術(shù)和并行計(jì)算技術(shù)的系統(tǒng)設(shè)計(jì)相對(duì)于在后端PC系統(tǒng)進(jìn)行圖像處理的同類型自動(dòng)化觀測(cè)系統(tǒng)設(shè)計(jì),不但運(yùn)算速度快、魯棒性好,而且能夠大大減輕數(shù)據(jù)傳輸壓力,并適合用于體積、功耗、工作環(huán)境及穩(wěn)定性要求極高的場(chǎng)合。
該技術(shù)研究及系統(tǒng)設(shè)計(jì)是根據(jù)內(nèi)蒙古牧業(yè)氣象觀測(cè)和草地生態(tài)系統(tǒng)觀測(cè)內(nèi)容,以牧業(yè)生產(chǎn)、草原生態(tài)環(huán)境保護(hù)提供氣象服務(wù)為出發(fā)點(diǎn)開展的,初步研究設(shè)計(jì)主要針對(duì)影響牧業(yè)生產(chǎn)和草原生態(tài)的牧草生長(zhǎng)狀態(tài)的自動(dòng)化觀測(cè),但不能涵蓋所規(guī)定的所有牧草觀測(cè)項(xiàng)目。目前,牧草的覆蓋度與層高檢測(cè)較準(zhǔn)確,其中圖像處理與實(shí)測(cè)覆蓋度數(shù)值顯著相關(guān)檢驗(yàn)R0.05>0.90,圖像處理與實(shí)測(cè)株高數(shù)值顯著相關(guān)檢驗(yàn)R0.05>0.85。
由于生長(zhǎng)發(fā)育期需要連續(xù)觀測(cè)至少1個(gè)周期(1年),且具體判別所處發(fā)育期要按照牧草的種類確定,因此還需大量連續(xù)觀測(cè)實(shí)驗(yàn)才能確定牧草發(fā)育各個(gè)階段的參數(shù)閾值,這也是今后的重點(diǎn)研究?jī)?nèi)容。