王 杰 經(jīng)俊森,2 陳正偉 徐照勝 王少平
(1.中國科學院合肥物質(zhì)科學研究院, 合肥 230031; 2.安徽大學物質(zhì)科學與信息技術研究院, 合肥 230601)
隨著智慧農(nóng)業(yè)[1-2]發(fā)展,農(nóng)業(yè)機器人輔助或者替代人工參與農(nóng)業(yè)作業(yè)逐漸成為研究熱點,其中計算機視覺是重要的機器人環(huán)境感知研究內(nèi)容,如植物工廠、溫室大棚以及丘陵果園中的植株病蟲害[3-4]巡檢機器人[5-6]、高附加值果蔬精準施藥機器人[7-8]以及各類采摘作業(yè)機器人[9-10]等。通常,研究人員需要機器人行走運動同時進行高速圖像采集處理工作。例如,在農(nóng)業(yè)巡檢機器人病蟲害巡檢方面,機器人通過前端圖像采集,利用專家數(shù)據(jù)庫或深度學習等方法實現(xiàn)特定病蟲害自動識別,實時向后端傳輸采集圖像,交付人工遠程復檢或完成機器無法自動識別的內(nèi)容,提升巡檢效率,并將圖像信息作為后期植保、施肥等管護作業(yè)基礎數(shù)據(jù)支持[11];在農(nóng)業(yè)機器人自主行走方面,針對無衛(wèi)星或者衛(wèi)星信號嚴重遮擋情況下的機器人定位導航問題,基于視覺或視覺與激光雷達融合技術的定位導航方法是區(qū)別于UWB、藍牙等技術的重要研究內(nèi)容[12]。由于田間路面起伏,易造成機器人視覺圖像抖動,且機器人運動速度越高,抖動越嚴重,不利于類似前述圖像采集數(shù)據(jù)進一步應用,譬如通過實時畫面對作物表型進行人工精準識別,以及基于視覺或視覺與激光雷達融合的田間自主行走導航控制。因此,針對農(nóng)業(yè)機器人運動圖像采集工作,研究實時穩(wěn)像方法具有重要意義。
電子穩(wěn)像技術作為圖像處理的一個重要發(fā)展方向,在軍事、航空等領域研究較多。相比云臺等專業(yè)穩(wěn)像設備,電子穩(wěn)像不需額外硬件,具有一定成本優(yōu)勢,且可以針對圖像感興趣區(qū)域進行局部穩(wěn)像,盡可能提高穩(wěn)像實時性,減小甚至消除抖動,獲得平穩(wěn)圖像序列,因此,農(nóng)業(yè)領域相關研究也在逐漸增多。電子穩(wěn)像方法[13-15]中最關鍵技術是運動估計。根據(jù)運動估計方法差異,分為塊匹配[16]、位平面匹配法[17]、灰度投影法[18]、特征匹配法[19]和光流法[20]。光流法具有跟蹤精度高和應用范圍廣等優(yōu)勢,是電子穩(wěn)像研究熱點。由于傳統(tǒng)光流法是計算整幅圖像光流矢量,存在計算量大和實時性差缺陷,所以本文對每幀圖像進行角點檢測,僅計算角點處光流,達到降低計算量和提高整體算法實時性目的。因此,當使用光流法作為運動估計方法時,角點檢測必不可少。研究表明,利用SIFT[21]和SURF[22]提取特征點進行穩(wěn)像的速度相較于使用基于Harris角點檢測的穩(wěn)像算法慢很多。而傳統(tǒng)Harris角點檢測算法[23]存在角點提取分布不均勻,角點數(shù)目少問題,尤其在農(nóng)業(yè)領域,由于環(huán)境復雜,該問題更為突出。針對以上問題,本文通過改進Harris角點檢測算法和卡爾曼濾波算法,設計一種適用于農(nóng)業(yè)機器人顛簸田間環(huán)境的實時電子穩(wěn)像方法。
HARRIS等[24]首次提出Harris角點檢測方法,其主要思路是利用圖像自相關性,并結(jié)合微分運算來提取圖像特征點,具有很好魯棒性。
Harris角點檢測核心是描述像素鄰域梯度分布的二階矩陣M,其具體形式為
(1)
式中Ix——圖像在x方向上梯度
Iy——圖像在y方向上梯度
w(x,y)——以點(x,y)為中心的窗口函數(shù),通常取高斯函數(shù)
二階矩陣M存在2個特征值λ1和λ2,特征值反映了像素點的位置關系和突出程度。通常利用兩個特征值構(gòu)建角點響應函數(shù)re
re=detM-ktr(M)2
(2)
式中 detM——矩陣M的行列式
tr(M)——矩陣M的跡
k——系數(shù),取0.04~0.06
角點響應函數(shù)re值越大的點,表明該點突出程度越高,代表性越強。如果re大于設定閾值T,則該像素點為角點,反之不為角點。
傳統(tǒng)Harris角點檢測算法基于閾值T進行檢測,如果整幅圖像采用相同閾值T,當圖像灰度差異過大時,將導致特征點分布不均勻,易造成特征點聚簇且影響算法實時性。因此,本文設計了一種自適應閾值選取方法:將圖像分割為無重合子區(qū)域,通過計算每塊區(qū)域的灰度均方差進行自適應閾值構(gòu)建。
當某塊圖像區(qū)域灰度值具有差異明顯,反映該區(qū)域存在大量的特征角點,反之特征角點較少。圖像灰度差異通常由圖像灰度均方差計算獲得,灰度均方差較大區(qū)域,應設置較大閾值,灰度均方差較小區(qū)域,應設置較小閾值。通過不同區(qū)域設置不同閾值,保持每塊區(qū)域的特征角點分布更加均勻。
具體的步驟如下:
(1)將每幀圖像進行等比例分割,分割成3×3同等尺寸子區(qū)域。
(2)計算每個子區(qū)域平均灰度,計算式為
(3)
式中m、n——子區(qū)域的尺寸參數(shù)
I(i,j)——圖像在點(i,j)的灰度
(3)計算每塊子區(qū)域灰度均方差P,計算式為
(4)
(4)計算子區(qū)域中最大灰度均方差Pmax。
(5)根據(jù)各子區(qū)域灰度均方差與Pmax的比例設定自適應閾值T,計算式為
(5)
式中T0——初始設置最大的閾值參數(shù)
該閾值設置方法能夠?qū)崿F(xiàn)圖像灰度差異較大時,提取到的特征角點分布均勻。
為了克服局部角點過于聚簇的問題,需要對提取后的角點增加距離約束。具體角點選取步驟:先通過選取每塊子區(qū)域的角點響應函數(shù)re值大于該區(qū)域自適應閾值T的像素點作為特征角點,并避免選取的點距離過近,設定距離約束條件d,圖像尺寸與d相關,本文選取5個像素;然后對特征角點依次遍歷,若在特征角點鄰域內(nèi)存在其他特征角點,比較兩個點之間的距離,若距離小于約束條件d,再判斷兩點測量噪聲協(xié)方差矩陣R值,保留R值更大的點作為角點。
針對田間路況,采用基于圖像金字塔的L-K光流法[25]對提取的角點進行跟蹤,再利用RANSAC[26]算法去除Harris角點檢測中存在的誤匹配點,最終得到水平偏移量dx、垂直偏移量dy和旋轉(zhuǎn)量dθ。
前述運動估計參數(shù)包含相機的主動運動和隨機運動,可利用卡爾曼濾波算法[27]對相機的運動進行分離,對相機的隨機運動進行抑制或消除,僅保留相機的主動運動,從而實現(xiàn)對得到的運動估計量的平滑操作。
卡爾曼濾波的預測模型計算式為
(6)
式中X(k|k-1)——第k幀對應的狀態(tài)量預估值
P(k|k-1)——第k幀對應的狀態(tài)協(xié)方差
A——系統(tǒng)的狀態(tài)轉(zhuǎn)移矩陣
Q——過程噪聲方差矩陣
卡爾曼濾波的更新模型計算式為
(7)
式中K(k)——第k幀卡爾曼增益
Z(k)——測量值
H——觀測矩陣
P(k|k)——平滑濾波后協(xié)方差
I——單位矩陣
田間抖動視頻運動估計參數(shù)進行平滑過程中,R和Q取值既要考慮濾除抖動分量也要保留主動運動分量,經(jīng)試驗可取Q=0.01和R=1對運動參數(shù)進行濾波,能夠達到較好濾波效果。
當田間路面起伏較大時,運動估計變化會很劇烈,如果全局均設置單一Q和R進行濾波操作,輸出結(jié)果將會跟原曲線存在較大偏差,造成輸出的視頻圖像存在大范圍未定義區(qū)域,增加運動補償?shù)碾y度且降低圖像質(zhì)量。為了解決全局單一濾波參數(shù)問題,本文研究了自適應調(diào)整濾波參數(shù)的卡爾曼濾波算法。
由于Q取值較小,難以根據(jù)運動量進行準確調(diào)節(jié),故本文通過自適應調(diào)節(jié)參數(shù)R,提高整體算法跟蹤及平滑效果。當視頻序列中存在大幅度主動運動時,應減小R,提高系統(tǒng)跟隨性能。
先設一個長度為L的隊列,將得到的運動估計參數(shù)(dx,dy,dθ)存入隊列;當隊列已滿時,計算當前幀運動估計量及整個隊列運動估計量總和D(dx,dy,dθ),之后刪除隊首元素,當前幀運動估計量入隊,根據(jù)總和D自適應修正R值。具體計算方式為
(8)
(9)
式中R0——初始值參數(shù)
Dx、Dy、Dθ——x、y、θ每個方向估計量單獨總和
當存在主動運動時,D中各方向累積量將會增加,此時R將會減小,卡爾曼濾波器增益K增加,整體跟隨性能提高,保留了主動運動;反之,累積量較小,則相機主動運動量較小,濾波器平滑性能提升,有效去除隨機抖動。
經(jīng)過卡爾曼濾波后得到抖動運動估計量,對前后幀圖像進行仿射變換,利用雙線性插值[28]對變換后圖像中未定義區(qū)域進行校正,最終輸出穩(wěn)像后圖像。
本文基于中國科學院合肥物質(zhì)科學研究院智能機械研究所研制的履帶式農(nóng)業(yè)機器人平臺進行試驗。如圖1所示,機器人運動速度1.8~5.4 km/h,采用的相機傳感器為森云智能公司SG2-IMX390C型低噪聲卷簾快門攝像機,幀頻率為30 f/s,快門時間約5 ms,水平視場角為90°,垂直視場角為47°,有效焦距為4 mm,曝光時間充足,不易出現(xiàn)單幀圖像晃動、斜坡圖形和部分曝光,可以近乎實時地捕獲和處理高分辨率圖像。攝像機水平安裝于農(nóng)業(yè)機器人平臺正前方。
圖1 試驗平臺及場景Fig.1 Experiment platform and scene1.信號接收器 2.農(nóng)業(yè)機器人平臺 3.攝像頭
為檢驗改進后Harris角點檢測穩(wěn)像算法對田間起伏路面適用性和穩(wěn)像效果,本文選取長豐縣崗集鎮(zhèn)皖信家庭農(nóng)莊葡萄樹、火龍果和橘樹種植試驗場景。通過農(nóng)業(yè)機器人平臺以分辨率1 920像素×1 080像素、幀率30 f/s采集機器人田間運動期間起伏路況視頻圖像。
圖2a為農(nóng)業(yè)機器人平臺在橘樹田間路況場景,圖2b為傳統(tǒng)Harris角點檢測算法提取的角點示意圖。角點檢測過程中,計算出角點響應函數(shù)中det(M)與tr(M)值關系如圖2c所示。在設置初始閾值時,通常設為角點響應函數(shù)re最大值的k倍,k一般取0.005~0.015,為了提取足夠多角點,本文k取0.005。
圖2 傳統(tǒng)Harris角點檢測算法Fig.2 Traditional Harris corner detection algorithm
通過圖2b可知,傳統(tǒng)Harris角點檢測算法提取到的角點全部集中在圖像上半部分,分布非常不均勻,且提取的角點數(shù)目較少。由圖2c可見,傳統(tǒng)Harris角點檢測算法提取的角點呈現(xiàn)聚簇現(xiàn)象,導致提取結(jié)果不均勻。
由圖3a可見,與傳統(tǒng)Harris角點檢測算法相比,改進后提取的角點分布更加均勻。由圖3b可見,由于采用子區(qū)域自適應閾值設定,角點呈現(xiàn)均勻分布。通過圖3c和圖3d對比可見,改進前后設置的特征角點尺寸相同,改進前角點間易發(fā)生聚簇現(xiàn)象,導致同一塊區(qū)域的特征角點連在一起難以區(qū)分,角點誤匹配率高,不利于后續(xù)光流跟蹤;改進后同一區(qū)域的角點間隙明顯,避免了局部角點過于聚集問題。
圖3 改進Harris角點檢測算法Fig.3 Improved Harris corner detection algorithm
為了驗證改進后Harris角點檢測的分布情況,在VS2013+Inter(R)Core(TM)i5-8300H CPU試驗設備上分別對300幅圖像使用改進前后的Harris角點檢測方法,進行角點提取。將每幅圖像劃分成3×3子區(qū)域,統(tǒng)計每一子區(qū)域的角點數(shù),最終計算整幅圖像的子區(qū)域角點分布標準差。為確保單一變量原則,保持改進前后角點檢測方法角點數(shù)提取一致,將300幅圖像平均分成3份,每份角點數(shù)分別為500、800和1 000,計算平均標準差。通常角點數(shù)可根據(jù)圖像尺寸確定,本文起始角點數(shù)設置500,即可較好觀測角點分布情況。為了分析角點數(shù)對平均分布標準差影響,需要增加角點數(shù),故設置了800和1 000。表1 為改進前后Harris角點的區(qū)域平均分布。
表1 改進前后Harris角點的區(qū)域平均分布Tab.1 Regional average distribution of Harris corner points before and after improvement
通過表1可得,改進后Harris角點檢測方法的分布標準差均小于改進前,表明提取的角點分布比原先更加均勻。隨著角點數(shù)的增加,改進后標準差的降低率將增大,分布將更加均勻。
針對不同Q、R參數(shù)在卡爾曼濾波中影響,本文研究了參數(shù)Q、R在實際運動參數(shù)平滑中的特點。圖4為未改進前卡爾曼濾波器中不同Q、R值的濾波效果。由圖4可知,Q越小、R越大曲線越平滑。保留相機主動運動情況下,濾波后的曲線越平滑表明高頻抖動分量消除效果越好。綜合圖4a、4b可知,Q=0.01,R=1時,平滑效果最好。
圖4 R和Q取值不同時的濾波結(jié)果Fig.4 Filter results with different values of R and Q
針對卡爾曼濾波器全局單一Q、R參數(shù)問題,當相機主動運動分量較大時,恒定系數(shù)不能很好保持相機主動運動,需要設置自適應卡爾曼濾波系數(shù)進行平滑操作。由于Q系數(shù)較小,改進卡爾曼濾波器僅改變R。圖5為改進前后卡爾曼濾波器對旋轉(zhuǎn)量平滑效果,改進前后Q設置均為0.01,而改進前R設置為1,改進后R設置為自適應,其值同累積量相關。可以看出,當主動運動較小時,改進前后都能保證較好平滑效果;當主動運動較大時,改進前濾波后曲線明顯不能跟蹤相機運動。
圖5 改進前后卡爾曼濾波器的平滑結(jié)果Fig.5 Smoothing results of Kalman filter before and after improvement
圖5a為跟蹤存在單峰主動運動時改進前后卡爾曼濾波平滑結(jié)果,改進前其峰值僅為原始參數(shù)25.4%,跟蹤效果差,改進后其峰值為原始參數(shù)80.5%,在保證隨機運動平滑效果前提下,其跟蹤效果提升55.1個百分點,極大提升了跟蹤性能。
由圖5b可見,跟蹤第1個單峰時,改進后跟蹤效果明顯優(yōu)于改進前,跟蹤第2個單峰,改進前其峰值為原始參數(shù)18.4%,而改進后其雙峰值為原始參數(shù)24.8%,在保證隨機運動平滑效果的前提下,其跟蹤效果提升6.4個百分點。綜合單雙峰跟蹤情況,改進后平均跟蹤性能比改進前提升30.75個百分點。
本文以常用的峰值信噪比(PSNR)[29]和單幀處理時間指標評估測試算法有效性。PSNR越大,說明前后兩幀圖像重合度越高,圖像穩(wěn)定效果越好;單幀處理時間越短,實時性越好。
取試驗平臺在田間采集的任意200幀抖動視頻圖像計算穩(wěn)像前后的PSNR。圖6為穩(wěn)像前后圖像序列的PSNR,可見針對同一幀圖像:穩(wěn)像后的PSNR普遍大于穩(wěn)像前,穩(wěn)像前圖像平均PSNR為18.52 dB,穩(wěn)像后圖像平均PSNR為21.47 dB,提高2.95 dB,相對于穩(wěn)像前提高15.93%。
圖6 穩(wěn)像前后圖像PSNR對比結(jié)果Fig.6 PSNR comparison results before and after image stabilization
為更加直觀表明穩(wěn)像前后效果,如圖7所示,設置相鄰幀圖像穩(wěn)像前后對照,其中紅色直線為參考輔助線,便于觀察基于參照物圖框中線選取。通過對比穩(wěn)像前后背景參照物離輔助線的距離,可直觀評估穩(wěn)像效果:穩(wěn)像前同一水平線下,景物位置發(fā)生了明顯偏移,而穩(wěn)像后景物位置幾乎在同一位置,穩(wěn)像后視頻抖動干擾去除明顯。
圖7 穩(wěn)像前后相鄰幀對比結(jié)果Fig.7 Comparison results before and after image stabilization
為驗證本文算法改進效果,選擇基于Harris角點檢測的常用穩(wěn)像算法開展對比測試。測試圖像數(shù)據(jù)均來源于試驗平臺采集的田間抖動視頻。測試中設置特征點采集個數(shù)為200,進一步提高穩(wěn)像算法實時性。試驗仿真環(huán)境為ubuntu 16.04操作系統(tǒng)及ROS架構(gòu),系統(tǒng)配置為Intel(R)Core(TM)i7-8700CPU, 3.20 GHz。為驗證改進后的Harris角點檢測算法與自適應卡爾曼濾波算法對穩(wěn)像效果影響,分別進行了測試。
通過表2可知,本文算法穩(wěn)像后圖像的PSNR相比于穩(wěn)像前提高15.93%,單幀處理時間為25.66 ms;改進后Harris角點檢測算法相對于改進前,PSNR提高3.51個百分點;自適應卡爾曼濾波算法相對于改進前,PSNR提高1.56個百分點;本文算法PSNR總體提高6.64個百分點。自適應卡爾曼濾波算法對實時性影響很小,本文單幀處理時間為25.66 ms,相對于未改進前縮短44.42%,能夠滿足幀速率30 f/s下的實時處理。
表2 穩(wěn)像效果和速度Tab.2 Image stabilization effect and speed
(1)分析了農(nóng)業(yè)機器人平臺采集的田間抖動視頻圖像序列,利用改進Harris角點檢測算法,解決了傳統(tǒng)Harris角點檢測算法提取角點分布不均勻和局部角點聚簇問題;采用自適應卡爾曼濾波算法,解決了傳統(tǒng)卡爾曼濾波算法無法很好跟蹤相機主動運動問題;最后經(jīng)過穩(wěn)像處理抑制了相機隨機抖動對視頻圖像影響。
(2)試驗表明,改進后Harris角點檢測算法能有效解決角點聚簇問題,角點區(qū)域平均分布標準差隨著角點數(shù)目的增加而下降;自適應卡爾曼濾波算法在保證平滑隨機運動前提下,跟蹤主動運動性能提升30.75個百分點;本文算法同傳統(tǒng)基于Harris角點檢測的穩(wěn)像算法相比,PSNR提高6.64個百分點,單幀處理時間縮短44.42%,且穩(wěn)像后圖像PSNR相比于穩(wěn)像前提高15.93%,單幀處理時間為25.66 ms,滿足農(nóng)業(yè)機器人以運動速度1.8~5.4 km/h運動及圖像采集幀速率30 f/s的實時處理要求。