袁志浩 劉桂陽 陳國太
摘要:針對傳統(tǒng)農(nóng)機翻地作業(yè)季節(jié)時令性強且不易觀察的問題,以水稻本田作業(yè)農(nóng)機為研究對象,設計了一種基于ArUco標志碼的農(nóng)機翻地移動增強現(xiàn)實仿真系統(tǒng)。通過對手機視頻流進行自適應閾值處理、輪廓查找以及比特位比對等操作,識別空間中的ArUco標志;使用張正友標定法對手機相機鏡頭進行標定,通過ArUco標志的角點對手機相機進行位姿估計并通過坐標空間轉(zhuǎn)換實現(xiàn)AR的定位與追蹤。利用3DS Max設計本田作業(yè)農(nóng)機具三維虛擬模型,對模型主體作業(yè)部分進行拆分,重新定向各部分的模型軸心。結合Unity 3D引擎對農(nóng)機翻地作業(yè)過程進行仿真設計,并移植到手機移動端。通過手機移動端掃描地板上的ArUco標志,便可以在真實物理空間中還原水稻本田農(nóng)機翻地作業(yè)環(huán)境,實現(xiàn)對虛擬農(nóng)機翻地過程的仿真模擬與交互控制。在谷歌Pixcel XL手機上對仿真系統(tǒng)進行真機測試,結果表明:系統(tǒng)在手機移動端運行幀率穩(wěn)定在46 fps以上,且AR識別速度快、準確率高,為其他農(nóng)業(yè)仿真應用提供了新的技術參考。
關鍵詞:ArUco標志;移動增強現(xiàn)實;農(nóng)機翻地模擬;三維建模;農(nóng)業(yè)仿真
中圖分類號:TP391 文獻標志碼: A
文章編號:1002-1302(2021)08-0189-07
收稿日期:2021-03-04
基金項目:黑龍江省農(nóng)墾總局科技攻關項目(編號:HNK125B-04-06);全國大學生創(chuàng)新創(chuàng)業(yè)比賽項目(編號:201810223015)。
作者簡介:袁志浩(1995—),男,山東聊城人,碩士研究生,研究方向為增強現(xiàn)實技術與計算機視覺。E-mail:499920072@qq.com。
水稻本田的農(nóng)機翻地作業(yè)過程一直都是水稻智慧旅游的重點。由于農(nóng)機作業(yè)過程受到季節(jié)時令等問題的影響,在實際旅游時難以隨時隨地對其進行參觀,因此農(nóng)機翻地作業(yè)的可視化仿真一直是亟待解決的問題。傳統(tǒng)水稻本田農(nóng)機的作業(yè)過程是通過虛擬現(xiàn)實技術進行模擬仿真的,這種方式只是在個人計算機(PC)端建立農(nóng)機作業(yè)的虛擬仿真程序,跟真實世界沒有任何聯(lián)系,系統(tǒng)交互性差,沉浸感不強,難以在水稻田旅游業(yè)中推廣應用。
目前增強現(xiàn)實(augmented reality,AR)的表現(xiàn)形式有很多種,比如張力新等利用微軟Hololens AR眼鏡進行腦-機接口研究[1],李乾等通過局部不變性進行無標志增強現(xiàn)實方法的研究[2],郭曉敏等使用正的溫度系數(shù)(positive temperature coefficient,PTC)的Vuforia增強現(xiàn)實引擎進行AR導覽系統(tǒng)的研究[3],此外還有市場上流行的ARkit與ARcore等增強現(xiàn)實開發(fā)組件。上述AR開發(fā)工具雖然可以實現(xiàn)對圖像、平面進行AR識別與定位,但對于特征點較少的地板很難進行穩(wěn)定的識別與定位。因此,筆者提出一種基于ArUco標志的移動增強現(xiàn)實技術(mobile argument reality,MAR)[4-6]仿真方案。該方案通過放置在地板上ArUco標志碼即可實現(xiàn)AR的識別與定位,在真實空間中生成虛擬仿真環(huán)境,使用手機移動端就可以對虛擬仿真環(huán)境進行全方位觀察與交互。該方案不僅解決了原有AR開發(fā)組件對光滑地板難以識別定位的問題,通過ArUco標志碼還能夠穩(wěn)定地生成翻地作業(yè)三維AR仿真環(huán)境,解決了季節(jié)時令性強而導致的難以觀察的問題,為水稻旅游業(yè)的可視化仿真提供新的解決方案。
1 系統(tǒng)整體方案設計
水稻本田作業(yè)農(nóng)機翻地仿真系統(tǒng)主要包括基于ArUco標志碼的AR系統(tǒng)的搭建和在Unity 3D引擎中設計農(nóng)機翻地的虛擬作業(yè)環(huán)境。這2個部分的功能設計如圖1所示。
1.1 系統(tǒng)仿真效果
通過使用手機移動端掃描地板上放置的ArUco標志碼,系統(tǒng)會在該地板區(qū)域生成1塊固定大小的虛擬水稻田以及與翻地作業(yè)相關的農(nóng)機具模型。用戶可以通過手機對翻地作業(yè)以及農(nóng)機的行進和轉(zhuǎn)向等過程進行360°的AR觀察與交互,如同在真實水稻田中進行參觀,從而帶來更強的體驗感。圖2為手機端農(nóng)機翻地作業(yè)的仿真效果。
1.2 ArUco的識別與定位設計
ArUco是一種二進制平方黑白標志碼,結果如圖3所示。其最外側黑色邊框幫助檢索算法可以在復雜的檢測背景中快速找到待識別的標志碼,內(nèi)部不規(guī)則排列的黑白區(qū)域構成二維矩陣,用于確定每個檢測碼的唯一身份標志,并固定自身4個外圍角點的排列順序。ArUco檢測庫現(xiàn)已集成到OpenCV開源計算機視覺處理庫中,被廣泛用于增強現(xiàn)實、機器人導航等領域。
1.2.1 自適應閾值處理 閾值處理是指將灰度圖像中小于閾值的像素點全部設置為0,大于閾值的像素點設置為255,實現(xiàn)從灰度圖到二值圖像的轉(zhuǎn)換,降低圖像處理的復雜度,提高計算效率。自適應閾值處理是圖像二值化的一種常用方式,它屬于局部閾值處理的范疇,常被用于光照強度分布不均的圖像二值化操作。即光照強度較高的部分閾值較大,光照強度較低的部分閾值較小[7]。
自適應閾值的重點在于局部閾值的確定,常用的方式有:計算某領域的像素平均值,計算某領域的像素中值,計算某領域的像素高斯加權平均值等。筆者采用計算某領域的像素點高斯加權平均值作為局部閾值(即通過高斯內(nèi)核與二階高斯分布函數(shù)進行卷積),對視頻圖像進行閾值處理。二階高斯分布函數(shù)為:
G(x,y)=12∏σ2e-x2+y22σ2(1)
式(1)中σ決定了高斯分布函數(shù)的寬度。
取3×3的高斯內(nèi)核與二階高斯分布函數(shù)相卷積,得出每個像素鄰域的最佳局部閾值,完成自適應閾值處理,處理結果如圖4所示。
1.2.2 ArUco識別 ArUco標志碼的檢測需要預先指定標志碼字典的規(guī)格,不同規(guī)格字典的選擇會導致不同的檢測結果。如“DICT_4×4_50”表示從視頻流中檢測內(nèi)部二維矩陣為4×4,唯一身份id取值為[0,50),左閉右開區(qū)間內(nèi)共50類ArUco檢測碼。通過對閾值處理后的源圖像進行輪廓查找,找到圖像中類似ArUco標志的方形輪廓,通過對輪廓中的ArUco標志按照預設字典的規(guī)模進行比特位提取,確定檢測對象的唯一身份id(圖5)。若id存在于當前字典中,則該ArUco標志碼識別成功。圖6為不同規(guī)格字典中ArUco標志碼的檢測結果。
將地形點高度圖抽象成如圖12-b所示的地形點網(wǎng)格,使像素點與網(wǎng)格頂點一一對應。若地形面積較大或程序運行卡頓,應減少網(wǎng)格頂點的數(shù)量,以保證程序運行流暢。
數(shù)據(jù)地形使用二維數(shù)組對網(wǎng)格頂點進行存儲,設Terrain[m,n]為儲存地形點網(wǎng)格的二維數(shù)組,其中m、n分別為地形點網(wǎng)格x、z軸方向網(wǎng)格點數(shù)量。由于網(wǎng)格頂點與像素點是一一對應的,所以Terrain[m,n]數(shù)組的索引值用來表示高度圖中對應
的像素點。地形點的高度值由高度圖中像素點的灰度值表示,Terrain[m,n]數(shù)組中每個索引值對應的數(shù)組元素尚未存儲任何數(shù)值,因此可以用來存儲對應像素點的灰度值。
通過數(shù)組索引定位到高度圖中對應像素點的具體位置,該像素點的灰度值再通過數(shù)組索引存儲到二維數(shù)組中,完成二維地形點數(shù)組與高度圖映射。通過動態(tài)改變數(shù)組中存儲的索引值進而改變地形點高度值,實現(xiàn)地形動態(tài)起伏效果。
2.2.2 翻地仿真 稻田秋翻地是指牽引農(nóng)機牽引翻地犁進行翻地作業(yè)的過程,結果如圖13所示。
秋翻的實際翻地區(qū)域為圖13中陰影翻地區(qū)域的總和,但實際利用二維數(shù)組設置地形點高度時設置二維數(shù)組中所有的數(shù)據(jù),對未進行翻地的空白區(qū)域也同樣進行地形點高度設置,從而導致仿真結果偏差。因此,需要去除二維數(shù)組中左上三角區(qū)地形點數(shù)據(jù)。其具體方法如圖14所示。
最后根據(jù)牽引農(nóng)機的行進速度,逐幀改變每個翻地齒對應的數(shù)據(jù)地形中的地形點高度,完成整個稻田秋翻地仿真模擬過程。最終的仿真效果如圖15所示。
2.2.3 農(nóng)機機械運動狀態(tài)模擬 牽引農(nóng)機的機械運動主要包括行進與轉(zhuǎn)向2個狀態(tài), 其中農(nóng)機的轉(zhuǎn)向控制是設計的重點與難點。牽引農(nóng)機轉(zhuǎn)向原理如圖16所示。
水稻本田作業(yè)的牽引農(nóng)機是前輪轉(zhuǎn)向方式,由前輪轉(zhuǎn)向機動車的轉(zhuǎn)向約束[15-16]可求得牽引農(nóng)機兩轉(zhuǎn)向輪之間的差速方程:
n2n1=2L+B(sin β)2L-B(sin β)。(7)
其中:n1為內(nèi)側轉(zhuǎn)向輪的轉(zhuǎn)速;n2為外側轉(zhuǎn)向輪的轉(zhuǎn)速。由公式(7)可以求得牽引農(nóng)機轉(zhuǎn)向時前轉(zhuǎn)向輪的轉(zhuǎn)速關系,根據(jù)轉(zhuǎn)速關系設計農(nóng)機轉(zhuǎn)向時轉(zhuǎn)向輪的轉(zhuǎn)動速度,實現(xiàn)差速轉(zhuǎn)動。
牽引農(nóng)機的行進狀態(tài)比較單一,4個行進輪的轉(zhuǎn)速由輪胎半徑與行進速度決定。其轉(zhuǎn)速表達式為:
n=V作2πr輪。(8)
式中:n為行進輪的轉(zhuǎn)速;V作為農(nóng)機作業(yè)時的行進速度;r輪為輪胎的半徑。通過公式(8)可以得出牽引農(nóng)機行進時每個輪胎的轉(zhuǎn)速。
3 討論與結論
打開手機移動端的農(nóng)機翻地仿真APP,掃描放置在地板上的ArUco標志,掃描成功會在手機屏幕中加載農(nóng)機翻地仿真環(huán)境,筆者對農(nóng)機的AR觀察、農(nóng)機的行進與轉(zhuǎn)型控制以及農(nóng)機翻地等過程分別進行移動端的性能測試與分析,分析結果如圖17所示。
圖17-a為農(nóng)機的AR觀察與農(nóng)機行進與轉(zhuǎn)型控制操作時中央處理器(CPU)的性能開銷示意,可以看出此時CPU消耗較小,系統(tǒng)主循環(huán)僅為 8.15 ms,幀率穩(wěn)定在60 fps以上。由于翻地模擬需要動態(tài)更改地形點的高度,系統(tǒng)主循環(huán)耗時為 22.18 ms,耗時明顯增加,此時系統(tǒng)幀率為46 fps,運行流暢,滿足農(nóng)業(yè)仿真的需求(圖17-b)。翻地結果測試表明,用于AR仿真的虛擬地形尺寸不宜過大,在不影響仿真效果的前提下,應盡量降低地形系統(tǒng)的解析度。
筆者通過移動增強現(xiàn)實技術實現(xiàn)水稻本田作業(yè)農(nóng)機翻地作業(yè)的模擬設計,解決傳統(tǒng)水稻本田作業(yè)季節(jié)時令性強、農(nóng)機作業(yè)過程不易觀察等問題。通過手機移動端掃描ArUco標志碼,就可以在真實物理空間中生成水稻本田農(nóng)機翻地作業(yè)虛擬環(huán)境,解決了傳統(tǒng)VR仿真程序沉浸感不足的問題。隨著智能穿戴設備的發(fā)展,未來可將該模擬系統(tǒng)移植到AR智能眼鏡設備中,擺脫移動設備的束縛,進一步提高系統(tǒng)的仿真效果。
參考文獻:
[1]張力新,張裕坤,柯余峰,等. 基于Hololens的增強現(xiàn)實腦-機接口研究[J]. 中國生物醫(yī)學工程學報,2019,38(1):54-61.
[2]李 乾,高尚兵,潘志庚,等. 基于無標記識別的增強現(xiàn)實方法研究[J]. 系統(tǒng)仿真學報,2018,30(7):2608-2614.
[3]郭曉敏,申閆春. 基于Unity/Vuforia的AR導覽系統(tǒng)研究[J]. 計算機仿真,2019,36(8):165-169.
[4]宋燕燕,曹效業(yè),周 靈. 移動增強現(xiàn)實技術在互動展示中的應用研究[J]. 計算機技術與發(fā)展,2016,26(9):83-86.
[5]孫 源,陳 靖. 智能手機的移動增強現(xiàn)實技術研究[J]. 計算機科學,2012,39(S1):493-498.
[6]李 丹,程耕國. 基于Android平臺的移動增強現(xiàn)實的應用與研究[J]. 計算機應用與軟件,2015,32(1):16-19,23.
[7]程淑紅,尚果超. 基于視覺的答題卡自動判分系統(tǒng)設計[J]. 計量學報,2018,39(6):804-810.
[8]夏仁波,劉偉軍,趙吉賓,等. 基于圓形標志點的全自動相機標定方法[J]. 儀器儀表學報,2009,30(2):368-373.
[9]Zhang Z Y. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(11):1330-1334.
[10]王世安,王向軍,陰 雷. 基于擴展正交迭代的快速加權的相機位姿估計[J]. 紅外技術,2020,42(3):205-212.
[11]閻曉東,張永生. 基于3DS MAX環(huán)境的3維場景重建工具[J]. 測繪學院學報,2002,19(2):109-112.
[12]許捍衛(wèi),房曉亮,任家勇,等. 基于SketchUp的城市三維建模技術[J]. 測繪科學,2011,36(1):213-214.
[13]蔣充劍,韓海良,翟永翠. 基于Unity 3D的推土機模擬訓練平臺設計[J]. 中國工程機械學報,2017,15(6):517-521.
[14]黃敏兒,杜志強,朱 慶,等. 利用像素高度圖的三維建筑物屋頂和立面提取方法[J]. 武漢大學學報(信息科學版),2014,39(10):1221-1224.
[15]瞿濟偉,郭康權,宋樹杰,等. 農(nóng)用柔性底盤偏置軸轉(zhuǎn)向機構聯(lián)動耦合控制策略及試驗[J]. 農(nóng)業(yè)工程學報,2019,35(23):55-65.
[16]賈 全,張小超,苑嚴偉,等. 拖拉機自動駕駛系統(tǒng)上線軌跡規(guī)劃方法[J]. 農(nóng)業(yè)機械學報,2018,49(4):36-44.