(西華大學(xué) 電氣與電子信息學(xué)院,四川 成都 610039)
耕地的數(shù)量和質(zhì)量是保持農(nóng)業(yè)可持續(xù)發(fā)展的關(guān)鍵,利用衛(wèi)星遙感影像可以識(shí)別并提取耕地,并對(duì)耕地進(jìn)行遙感制圖,準(zhǔn)確的耕地分布能夠?yàn)閲?guó)家決策部門(mén)提供重要支撐。目前高精度的耕地信息提取主要還是依靠人工解譯,耗費(fèi)大量人力、財(cái)力且效率較低,因此,遙感圖像的耕地識(shí)別算法、研究將對(duì)耕地遙感制圖提供重要幫助。[1]
1.2.1 問(wèn)題一:耕地比例
計(jì)算十幅給出的耕地圖在各圖像中所占比例,并將得出數(shù)字,填寫(xiě)到給出的表格(表1)。
1.2.2 問(wèn)題二:制作耕地標(biāo)簽圖
從給定的兩幅測(cè)試圖像(Test1.tif、Test2.tif)中提取出耕地,制作耕地標(biāo)簽圖,并將標(biāo)簽圖分別上傳到競(jìng)賽平臺(tái)中。
1.2.3 問(wèn)題三:快速、精準(zhǔn)識(shí)別田塊
我國(guó)土地遼闊,地貌復(fù)雜,希望團(tuán)隊(duì)尋找新的思路和模型,能夠快速、精準(zhǔn)的識(shí)別出田塊。
我們通過(guò)Python 語(yǔ)言的:PIL、NumPy 等第三方庫(kù)完成了這個(gè)問(wèn)題一的模型建立與求解。
PIL 是Python 的第三方圖像處理庫(kù),這個(gè)庫(kù)的功能非常的強(qiáng)大,我們不僅能夠拿它來(lái)畫(huà)圖,PIL 還可以使圖像的對(duì)比度自動(dòng)增強(qiáng)。
NumPy(Numerical Python)是Python 中科學(xué)計(jì)算的基礎(chǔ)包。NumPy 可以處理Python 里的數(shù)組和列,針對(duì)Python的各種數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,這樣的能力使其廣受眾多Python編程者的喜愛(ài)。
首先運(yùn)用PIL 中的核心類(lèi)--Image 類(lèi),賽題圖像數(shù)據(jù)初始化。然后利用NumPy 庫(kù)的轉(zhuǎn)換矩陣功能,先將RGB 圖片轉(zhuǎn)為灰度圖片,再利用Numpy 庫(kù)的Where 函數(shù)功能的廣播機(jī)制統(tǒng)計(jì)圖像像素個(gè)數(shù)。
我們團(tuán)隊(duì)通過(guò)將圖像的所有像素點(diǎn)的參數(shù)計(jì)算得到,然后再將黑與白兩種圖像的像素個(gè)數(shù)計(jì)算得到。然后通過(guò)白色(值為1)代表耕地的像素點(diǎn)與總像素點(diǎn)之比,得到耕地所占面積結(jié)果。
表1 耕地在各圖像中所占比例
問(wèn)題二是需要我們從給定的兩幅測(cè)試圖像(Test1.tif、Test2.tif)中取出耕地,制作對(duì)應(yīng)的耕地標(biāo)簽圖,并將標(biāo)簽圖分別上傳到競(jìng)賽平臺(tái)中。為此我們選擇了Python 中的Pyqt5和深度學(xué)習(xí)圖像標(biāo)注工具Labelme 進(jìn)行對(duì)耕地打上標(biāo)簽的工作,其中關(guān)于Python、Labelme 和Pyqt5 的介紹如下:
Python:Python 由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì)的Guido van Rossum 于1990 年代初設(shè)計(jì),作為一門(mén)叫做ABC語(yǔ)言的替代品。Python 提供了高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),還能簡(jiǎn)單有效地面向?qū)ο缶幊獭ython 語(yǔ)法和動(dòng)態(tài)類(lèi)型,以及解釋型語(yǔ)言的本質(zhì),使它成為多數(shù)平臺(tái)上寫(xiě)腳本和快速開(kāi)發(fā)應(yīng)用的編程語(yǔ)言,隨著版本的不斷更新和語(yǔ)言新功能的添加,逐漸被用于獨(dú)立的、大型項(xiàng)目的開(kāi)發(fā)。
圖1 問(wèn)題一模型流程圖
圖2 問(wèn)題二流程圖
圖3 標(biāo)注后的Test1
Labelme:LabelMe 是一個(gè)用于在線圖像標(biāo)注的標(biāo)注工具。我們可以使用該工具對(duì)圖像進(jìn)行自己的規(guī)劃和標(biāo)注,使得標(biāo)注這件原本十分枯燥的事情變的十分的簡(jiǎn)單。此外,它也可以幫助我們標(biāo)注圖像,使得原本需要人工標(biāo)注的東西變得十分簡(jiǎn)單,節(jié)約了大量的人力物力。
Pyqt5:Pyqt5 是基于Digia 公司強(qiáng)大的圖形程式框架Qt5 的Python 接口,由一組Python 模塊構(gòu)成。Pyqt5 本身?yè)碛谐^(guò)620 個(gè)類(lèi)和6000 函數(shù)及方法。在可以運(yùn)行于多個(gè)平臺(tái),包括:Unix、Windows、MacOS。
假設(shè)圖像中的耕地圖像都是準(zhǔn)確的,其中的耕地面積無(wú)變化,假設(shè)通過(guò)模型得到的標(biāo)注圖像準(zhǔn)確,問(wèn)題二的流程圖如上圖2 所示。
我們想要通過(guò)標(biāo)注工具Labelme 進(jìn)行對(duì)耕地打上標(biāo)簽,我們需要先將相關(guān)的軟件準(zhǔn)備好,這里使用的是Python3.8,并且調(diào)用Anaconda prompt 對(duì)相對(duì)應(yīng)的Labelme 與Pyq5 進(jìn)行安裝,注意這里安裝的Labelme 版本為3.16.7,必須需要安裝對(duì)應(yīng)的labelme 版本才可以。在Anaconda 安裝好了過(guò)后,需要在終端運(yùn)行一下Labelme 接著就會(huì)出現(xiàn)的畫(huà)面[2]。
圖4 標(biāo)注后的Test2
圖5 Test1 的標(biāo)簽圖
接著我們打開(kāi)上方的Open 選擇我們需要的圖片,并且對(duì)其進(jìn)行標(biāo)注,標(biāo)注的方法為標(biāo)點(diǎn),將點(diǎn)連為線便可以得到一塊被標(biāo)注后的圖形,再對(duì)這個(gè)圖形打上標(biāo)簽,并且為這個(gè)標(biāo)簽命名,例如本次命名為耕地那么圖片就算是標(biāo)注好了。
接著將其保存,保存后再打開(kāi)一個(gè)終端,也就是Anac onda prompt。首先利用cd 將路徑轉(zhuǎn)到你的圖片文件所對(duì)應(yīng)的地方,接著在終端繼續(xù)輸入命令行:labelme_json_to_dataset<文件名>.json,接著就可以在相應(yīng)的文件夾中找到標(biāo)注好后對(duì)應(yīng)的圖片。
但是在這里的Labelme 中的標(biāo)注顏色為黑紅具體標(biāo)注效果如下所述。所以我們需要改變其標(biāo)注顏色,這里需要改一個(gè)文件,Labelme 是通過(guò)Anaconda 虛擬環(huán)境運(yùn)行的,那么我們?cè)谛薷腖abelme 時(shí),自然就要找到Labelme 所在的目錄,修改labelme 特定的文件才行。如下圖所示,在Anaconda 環(huán)境下的Lib/site-packages/目錄下可以找到該環(huán)境安裝的包。找到Labelme 后,進(jìn)入Labelme 的Utils 目錄則可以找到配置文件Draw.py 進(jìn)行修改。
將其改寫(xiě)后再次運(yùn)行l(wèi)abelme 就可以得到黑白的效果,接下來(lái)我們就可以看看改寫(xiě)后得到的圖像。其中圖像3 和圖像4 分別為標(biāo)注前后的Test1,Test2。
圖6 Test2 的標(biāo)簽圖
圖7 模型流程圖
最后通過(guò)Labelme 的一系列的操作得到了標(biāo)簽圖如上圖5、圖6 所示。
我們團(tuán)隊(duì)在利用傳統(tǒng)分割方法和機(jī)器視覺(jué)進(jìn)行田塊分割時(shí),會(huì)造成邊緣出現(xiàn)許多非田塊的小塊區(qū)域,因而導(dǎo)致我們計(jì)算的數(shù)據(jù)和分割、識(shí)別的田塊有難以忽視的誤差。
我們考慮到,在一定氣候和區(qū)域內(nèi)的田塊,所種植的植物的類(lèi)型都會(huì)是相同的。這樣的特點(diǎn)既滿足種植者培育農(nóng)作物的方便,也會(huì)帶來(lái)農(nóng)作物收割的便利。
而我們的衛(wèi)星遙感圖像技術(shù),可以根據(jù)大面積農(nóng)作物種植的分布特點(diǎn),在對(duì)農(nóng)田信息進(jìn)行提取時(shí),采用面向?qū)ο蟮膱D像處理方法,對(duì)于田塊的農(nóng)作物如大豆、玉米、大米等,能有效地利用不同農(nóng)作物具有的圖像的光譜特征、結(jié)構(gòu)信息和幾何信息,來(lái)進(jìn)行對(duì)于田塊進(jìn)行識(shí)別,能更準(zhǔn)確地統(tǒng)計(jì)田塊面積。[3]
我們關(guān)于問(wèn)題三的模型流程圖如上圖7 所示:
首先我們采用資料中查閱到的亮度均衡的圖像分割方法,去處理地物的光譜特征;再將亮度均衡和邊緣檢測(cè)算法的區(qū)域分割法有效地結(jié)合,可得到封閉的區(qū)域邊界,依據(jù)田塊邊緣和種植區(qū)域特征結(jié)合的不同,我們可以將圖像特征和光譜特性結(jié)合的分割方法和邊緣檢測(cè)的后處理方法一同結(jié)合,完成類(lèi)矩形引導(dǎo)的圖像分割與識(shí)別,對(duì)田塊的分割與識(shí)別形成了閉合且有效的區(qū)域;最后將算法的分割結(jié)果與人工解釋的分析結(jié)果進(jìn)行對(duì)比,得出結(jié)論。
4.2.1 農(nóng)作物圖像、光譜特征提取
圖8 植被反射曲線圖
圖9 冠層反射示意圖
從農(nóng)作物植被角度來(lái)看,植被遙感特征主要基于植被與光(輻射)的相互作用,而我們已知植被冠層的形狀大小和空間結(jié)構(gòu)是比較復(fù)雜的,不同種類(lèi)的植被冠層的葉片大小,形狀和密度均不相同。因此在植被遙感中,很多時(shí)候我們會(huì)對(duì)植被的葉片、冠層做一些簡(jiǎn)化,如將葉片簡(jiǎn)化成某種簡(jiǎn)單幾何形狀,將冠層分層處理,甚至將單獨(dú)一株樹(shù)木看作某個(gè)簡(jiǎn)單幾何體。
從遙感原理角度來(lái)看,在可見(jiàn)光-近紅外區(qū)域內(nèi),近紅外波段對(duì)于植被遙感有重要作用,因葉片內(nèi)部的結(jié)構(gòu)影響,植被在近紅外區(qū)域的反射極為明顯。[4]植被的發(fā)射特征主要表現(xiàn)在熱紅外波段和微波波段,植被的理化反應(yīng)和結(jié)構(gòu)會(huì)對(duì)其發(fā)射能量造成影響。植被自身反射率曲線如上圖8所示。
大多數(shù)農(nóng)作物植被冠層的多次反射(如上圖9)會(huì)對(duì)能量進(jìn)行一定的散射透射,使得我們難以描述這種反射能量。
自然界中的許多自然地表的反射有一定的規(guī)律,這些地表面對(duì)太陽(yáng)入射的反射具有方向性,這種方向性隨著太陽(yáng)入射角和觀測(cè)角度的變化而有明顯的差異,類(lèi)似于鏡面反射。
植被冠層反射示意圖如圖9 所示:
在不同波段的光譜信息受葉內(nèi)不同結(jié)構(gòu)(如葉綠素、細(xì)胞結(jié)構(gòu))和葉片狀態(tài)(如含水量)等條件控制。因此,對(duì)于復(fù)雜的植被遙感,我們常常利用多光譜遙感數(shù)據(jù)紀(jì)念館過(guò)一定的分析運(yùn)算(加減乘除等線性或非線性組合方式)產(chǎn)生某些對(duì)植被長(zhǎng)勢(shì)、生物量等具有一定指示意義的數(shù)值,即植被指數(shù)。
圖10 全色圖像
圖11 邊界提取效果圖
圖12 計(jì)算映像關(guān)系示意圖
下圖可見(jiàn),健康植被的光譜曲線近似于數(shù)學(xué)中的根號(hào),而干土的曲線則接近于一條傾斜線,不健康植被的曲線逐漸接近于干土。圖像和光譜特征包括4 個(gè)多光譜波段:藍(lán)(0.45~0.52μm)、綠(0.52~0.59μm)、紅(0.63~0.69μm)和近紅外(0.77~0.89μm)波段,分辨率均為8m;1 個(gè)全色波段(0.45~0.90μm)。我們假設(shè)模型運(yùn)用地點(diǎn)的地勢(shì)較為平整,對(duì)研究類(lèi)似玉米與水稻的農(nóng)作物特征曲線查到了光譜曲線。
4.2.2 特定田塊邊緣區(qū)域特征提取
我們選擇了一些網(wǎng)絡(luò)上的資源資料,試著用我們獲取的處理模型和方法去獲得區(qū)域特征提取數(shù)據(jù),下圖就是我們選擇的一處田塊覆蓋區(qū)域的圖像數(shù)據(jù)。
該地區(qū)是我們選取的氣候較為適宜,圖像也較為工整,整個(gè)地區(qū)都比較適合用于我們本次模型的使用,并且我們對(duì)其也已經(jīng)進(jìn)行了一些處理。
圖10 就是通過(guò)GS 算法處理過(guò)后的全色圖像:
在基于圖的分割算法中,利用提取的邊界區(qū)域構(gòu)建無(wú)向圖,采用本文的類(lèi)矩形引導(dǎo)分割規(guī)則進(jìn)行分割處理。如下圖邊界提取效果圖所示,檢測(cè)出的邊緣線細(xì)膩而光滑,有較好的連續(xù)性,有效地體現(xiàn)了玉米田地塊的邊緣特征,且定位精度較高效果很好。
分割提取的結(jié)果圖中可以看出,加入類(lèi)矩形閾值函數(shù)的本文分割方法在有效區(qū)分不同地物的同時(shí),減少了地塊邊緣的小塊區(qū)域,凸顯了特定田塊的類(lèi)矩形的形狀特點(diǎn)。符合我們一開(kāi)始預(yù)期結(jié)合的效果。
4.2.3 亮度均衡算法
我們所使用的亮度均衡算法,針對(duì)大小為的灰度圖像G,對(duì)于任意位置所對(duì)應(yīng)像素灰度值大小為(指圖像灰度級(jí)總數(shù)),不同灰度級(jí)出現(xiàn)概率可表示為:
統(tǒng)計(jì)原始圖像各灰度級(jí)的像素頻數(shù)并計(jì)算各灰度級(jí)的像素頻率以得到灰度級(jí)累計(jì)直方圖;之后取整計(jì)算并確定映像關(guān)系進(jìn)行灰度變換作出新的直方圖。
為了檢驗(yàn)類(lèi)矩形引導(dǎo)的分割結(jié)果與實(shí)際農(nóng)作物特征的符合情況,一般都會(huì)將算法與人工解譯的目標(biāo)區(qū)域樣本進(jìn)行比較。人工解譯樣本是由專(zhuān)業(yè)人員結(jié)合影像目視解譯與光譜特征分析獲取的。
我們結(jié)合資料提出的類(lèi)矩形引導(dǎo)的田塊分割方法,在對(duì)目標(biāo)有效分割的同時(shí),結(jié)合了田塊形狀特征和農(nóng)作物的外形光譜特征,減少了邊緣小塊區(qū)域?qū)μ飰K面積統(tǒng)計(jì)的影響。通過(guò)類(lèi)矩形的引導(dǎo),增強(qiáng)了特定形狀的分割,對(duì)含有大量類(lèi)矩形地塊的大面積植被田遙感圖像有很好的分割效果。并且也與人工解釋的數(shù)據(jù)對(duì)比,發(fā)現(xiàn)效果符合預(yù)期,為我國(guó)耕地面積計(jì)提供了有效幫助的方法。