嚴 成,何 寧,龐維慶,鄧德迎
(1. 桂林電子科技大學信息與通信學院,廣西 桂林 541004; 2. 廣西高校無人機遙測重點實驗室,廣西 桂林 541004)
近年來,為維持港口和沿海水域秩序,保證航行安全,防止水域污染,我國特制定了相應的船舶管理規則[1- 2]。現階段,國內對于早期的航道污染監測,主要借助人力地面瞭望臺觀測和飛機巡航監視。目前,普遍采用兩種方法:一種是利用光學探測儀主動搜索污染區域;另一種是定時接收衛星向地面傳送的圖像信息,分辨污染區域的存在與否[3]。這些方法耗時耗力,過程煩瑣,尤其是對于一些無人問津的海域和監測盲點精度更低。利用無人機進行水域監測,并迅速界定水污染區域,可為海事部門提供有效的處置依據,為事故處理爭取時間,其中,快速準確地獲取和測量污染區域就尤為重要。
文獻[4]提出了一種精確的目標實際面積測量方法,克服了雙目視覺對應點匹配和面積計算所利用的像素當量產生的誤差,但算法沒有包含拍攝角度參數,缺少對角度變化測量結果的正確性評估。文獻[5]提出了一種基于航拍圖像的森林火災面積計算方法,可滿足對森林火場面積計算的要求,但該方法通過彩色和灰度信息提取航拍圖像中的森林火場區域,圖像中的色差直接影響圖像分割的誤差,并且該方法沒有通過軟件實現,無法實時、高效地提供面積測量結果。文獻[6]開發了一套無人機地理信息視頻系統,基于GPS數據實現無人機航跡坐標的實時展示、視頻影像定位和距離面積量測等功能,但無法實現無人機定點測量小范圍面積的功能。
本文通過電子自動測量手段,提出一種高精度的水面污染面積測量方案,通過無人機飛控將視頻圖像與字符信息疊加傳輸[7],為該測量方案提供評估參數。在此基礎上,利用適用于該面積測量的機器視覺圖像處理方法,設計了水面污染面積測量軟件,實時進行水面污染區域檢測。根據面積測量方案,計算出視覺圖像中單個像素點所代表的實際面積,采用圖像處理方法,提取出圖像中污染區域的像素總值,實現快速獲取污染區域面積。通過無人機在幾十米到幾百米的高空飛行,可實現城市、海域、陸地、森林等環境態勢的遠程監測和信息獲取,為執法和救援提供幫助。
基于機器視覺的水域遠程監測系統由無人機載具端與地面監測端組成。無人機飛控為測量系統提供采集的環境及物理參數,地面監測端用于接收分析監控圖像和數據,以便快速測量和記錄特征區域的面積。系統結構如圖1所示。
通過無人機航拍進行圖像采集,圖像處理過程包括對攝取圖像進行微元化,然后將提取的特征區域像素點總數與每個像素點的實際面積相乘,即可計算出特征區域的面積。
1.2.1 經典的閾值分割方法
圖像分割(segmentation)是指將數字圖像細分為多個圖像子區域(像素的集合)[8]。其中閾值分割方法的步驟為:①確定合適的閾值Th;②將圖像中的每個像素分別與該閾值作比較,將像素分為幾個不同的區域[9- 10]。在閾值分割算法中,較經典的有最大熵閾值分割和最大類間方差(Otsu)閾值分割等。圖2為經典的閾值分割方法處理結果,采用閾值分割對原始拍攝圖像(如圖2(a)所示)中的污染區域進行提取,通過最大熵閾值分割得到圖2(b),經Otsu閾值分割得到圖2(c)。
由圖2可知,分割效果圖中特征區域邊界模糊不分明,故傳統的閾值分割方法無法滿足污染區域提取的要求,需要對分割方法進行改進以適應復雜的污染區域提取。
1.2.2 改進分割方法
為了達到圖像復雜色差區域分割目的,提高特征區域分割的精度,設計系統在傳統閾值分割方法的基礎上增加前后面板圖像堆疊形式。具體算法實現過程如下:
(1) 將原始圖像(設置為變量image_mask)像素值RGB均設置為(0,0,0)并作為掩膜,放置在底板;將采集到的圖像(設置為變量image)放置在前面板。通過鼠標響應函數在前面板上繪制出目標區域,底板也將記載該區域,區域邊界線RGB分量為(0,255,255)。
(2) 對原始圖像通過漫水填充算法[11]進行處理,經式(1)將目標區域內像素顏色RGB分量設置為(255,255,255)。算法以目標區域內的像素點(x0,y0)為中心(種子),如果像素點(x,y)屬于繪制的目標區域Sxy,將(x,y)與(x0,y0)合并在同一個區域內。
(1)
(3) 統計目標區域的像素點總數。首先將步驟(2)中經漫水填充算法處理后的圖像轉換為256個灰度等級的灰度圖像[12],得到像素點值Gray(x,y)
Gray(x,y)=0.299×R+0.587×G+0.114×B
(2)
之后通過單閾值分割方法將灰度圖像轉換為二值化圖像[13],單閾值設置為254,由下式計算像素點值g(x,y)
(3)
通過迭代器訪問二值化圖像中的像素點,統計非零像素值的點。
(4) 將二值化圖像與采集到的圖像進行乘運算,前者像素點值為1的區域將保留后者對應的區域,像素點值為0的區域將抑制后者對應的區域,達到同時分割處理多個區域目的。
通過此方法達到圖像分割的目的,并統計特征區域像素點總數,最終結果如圖3所示。相比于傳統閾值分割方法,本文改進的閾值分割方法特征區域邊界清晰分明,更適用于水域污染區域的提取,實現計算特征區域像素點總數的功能。
在機器視覺的單目視覺測距系統中,攝像機以一定的俯仰角對地面物體進行拍攝,將所拍攝圖像上某點的坐標轉換為世界坐標系下的坐標,并找出圖像與對應坐標的映射關系,為面積測量方案提供理論依據[14]。
基于單目視覺測距原理建立一種適應于水面目標的面積測量方案。該處理過程獲取計算圖像對應的實際平面高度、求取單個像素點所代表的實際面積、計算區域像素點總數并求和得到被監測區域面積。
圖4所示為采用三角法測量圖像對應的實際平面原理。圖中陰影部分為攝像機拍攝區域,閉合區域為特征區域,其面積S是整個測量方案求取的最終值。AB和DE分別為圖像對應的實際平面高度和寬度,其中AB為測量系統的待測目標值。
由圖4的幾何關系可知,垂直視場半角度θ與圖像平面高度AB可分別用下式求出
(4)
AB=AM-BM=h[tan(φ+θ)-tan(φ-θ)]
(5)
式中,t=GJ,為底片高度的一半;f=OJ,為焦距;h=OM,為相機的離地高度;φ為相機拍攝角度,相機垂直地面拍攝時φ為0°。
圖5所示為相機拍攝的單幅圖像,其中特征區域為待計算目標值。
利用式(5)求得的AB,得到圖5中單個像素點的實際面積為
(6)
式中,Sx和Sy分別為圖像寬度和高度的像素總量。
依據圖像分割處理所獲取特征區域的像素點總數,求取特征區域的實際面積;將面積數據與原始拍攝圖像進行疊加,結果如圖6所示。
為了適應不同拍照設備,軟件將不同像素圖像統一處理為800×600像素圖像,根據改進的分割方法統計特征區域的像素點總數為15 006個。
使用的攝像頭靶面高度為6.6 mm,焦距為25 mm,拍攝高度為11 m。讀取角度顯示數據為35.7°,則互余角為54.3°,再加上器件放置的補償角0.53°,最終得到相機對目標的拍攝角度為54.83°。
由下式求解角度
(7)
求圖像對應的實際平面高度
AB=11 m×[tan(54.83°+7.519 6°)-tan(54.83°-7.519 6°)]≈9.071 m
(8)
由上面給出的像素參數,得到面積(結果截取小數點后三位)為
(9)
為了對水面污染區域進行實時監控和測量,系統使用C++編程語言在VS2013中調用OpenCv庫編寫上位機交互軟件[15]。將無人機飛控、視頻圖像處理、面積測量模塊集成在一起,以實現實時快速的面積測量和調用拍攝圖像后期測量的功能。
測量軟件分為參數設置功能區和吊艙控制功能區。其中參數設置區可進行拍攝高度、拍攝角度(俯仰角)、靶面高度和焦距等參數設置;吊艙控制區用于轉向控制、視頻切換和變焦等操作。通過設計的人機交互界面可對視頻及圖像進行操控,包括打開與關閉攝像頭、存取與打開圖片、拍照,并可對實時拍下的圖像進行區域選擇及面積測量,具體界面控件區域分布參見系統測試驗證部分展示。
基于機器視覺的水域遠程監測系統如圖7所示。其中圖7(a)為系統無人機巡視場景,圖7(b)為系統軟件測量界面。通過無人機搭載圖像采集和無線數據收發的吊艙裝置,采集圖像和數據并實時向地面監測基站發送,以便監察管理者對水面態勢進行判斷識別和分析處理,并根據圖像特征場景快速獲得第一手資料。
地面端操作人員控制無人機抵達污染區域上空,并在軟件的視頻顯示區發現待測目標區域之后,根據無人機相機提供的焦距、靶面高度及回傳的拍攝高度VPS數據,對圖7(b)中相應的控件拍攝高度(3 m)、拍攝角度(0°)、靶面高度(4.17 mm)、焦距(3.6 mm)進行設置。經手動在拍攝的圖像上描繪污染區域、上位機處理計算得到污染區域的面積為4.491 m2。根據無人機在拍攝區域位置所處的經緯度及高度數據,可得到試驗中被拍區域的方位為25.313°N、110.421°E。無人機飛控一般是在被測點的上方,根據捕獲目標范圍,通過變化拍攝高度,以垂直或小于一定角度進行獲取目標圖像,達到減小誤差目的。
為了驗證此系統軟件測量面積的正確性與誤差,按特征區域圖像分割到面積測量的算法流程進行試驗并分析數據。表1是矩形規則樣本的實際測量和圖像處理計算所得面積結果的對比。

表1 面積測量數據對比
對比結果表明,隨著無人機的拍攝高度和角度變化,其誤差大小有所變化,當測量角度小于90°時相對誤差不大于5%,小角度(±5°范圍內)和垂直拍攝平均相對誤差低于1.3%,優于文獻[4]中的平均相對誤差1.48%,滿足對污染面積測量工作的需求。本文測量軟件運行順暢,很好地完成污染區域面積測量工作,彌補了文獻[6]無法實現無人機定點測量小范圍面積的不足。
本文根據機器視覺的單目視覺測距原理,提出了一種高精度水面污染面積測量方案,采用圖像分割技術提取視覺圖像中污染區域的像素點總數,在圖像處理與面積測量的基礎上設計水面污染面積測量軟件,建立了一套基于機器視覺的水域遠程監測應用系統。依據面積測量評估試驗統計和外場實操分析的數據結果:模擬水面污染面積測量精度為10-3m2,測量相對誤差低于5%,垂直拍攝平均相對誤差低于1.3%,表明系統滿足水域遠程監測需求。