基于Kinect的拖拉機防撞系統
電子信息科學與技術專業學生 sukeysun
摘要:隨著智能車輛技術的發展,智能導航定位和實時車載監控等技術被更多的應用到日常生活照。在農業領域上,車輛自主感知道路環境并制定實時避障策略還存在不足,特別是在農田,因為人員高強度勞動和環境復雜等因素,智能拖拉機自動駕駛對田間勞動人員造成一定的安全隱患本文針對田間行駛的拖拉機,提出了一個基于低成本Kinect2.0 攝像頭的拖拉機防撞系統設計。首先用Kinect2.0采集移動人體目標的深度圖像和骨骼信息并進行卡爾曼濾波處理;再計算出人相對于拖拉機的相對速度等基本避障參數;最后根據這些避障參數制定相應的避障策略,實現智能拖拉機在遇到人員時安全避險。
關鍵詞:拖拉機;Kinect2.0;卡爾曼濾波;防撞
Tractor Collision Avoidance System Based on Kinect
Student majoring in Electronic Information Science and Technology Name Sun Yubo
Tutor Name Lu Wei
Abstract: With the development of the intelligent transportation system, such technologies as intelligent navigation and real-time vehicle monitoring are increasingly applied to people's daily life. There are still some limations on the perception of the road environment or the real-time obstacle avoidance, especially in the field of agriculture. Due to the high-intensity labor and environmental complexity and other factors, self-driving tractors may pose some threats on the labors working on the field. Therefore, for the tractors driving in the field, this paper put forward a tractor collision avoidance system design based on a low-cost Kinect2.0 camera. Firstly, Kinect2.0 is used to collect the depth image and skeleton information of the targeted human body and then these datum are carry processed through Kalman filter. Secondly, the basic obstacle avoidance parameters like the relative speed between the tractor and the targeted human are calculated. Finally, according to these obstacle avoidance parameters, this system can achieve intelligent tractors avoiding the labors in front of them and therefore guarantee the safety.
Key words: tractor; Kinect2.0; Kalman filter; collision
引言
農業機械的智能化和機械化為我國帶來了農作物的快速增產,不僅弱化了有限的土地資源與快速增長人口之間的矛盾,還為農民帶來了收入的增加[1]。實時檢測并識別障礙是智能拖拉機安全操作的關鍵,其主要有以下幾種技術支持:機器視覺,雷達技術,GPS技術,紅外技術,超聲波技術以及多傳感器融合技術[2]。
1.國內外發展現狀
1.1 國外現狀
中國雖是農業大國,但智能農業的發展水平卻相對落后于歐美等國家。2010年,Bakker, Asselt, Bontsema等人提出的玉米田除草機器人通過拖拉機引導系統分別記錄初始路徑和播種路徑位置(A-B線)。再將(A-B線)引入現有的自動進料器,從而生成拖拉機行走路線圖,提高導航精度并且達到避障效果[3]。2011年,Takaibarawid等人通過使用RTK-GPS和IMU作為自主導航傳感器,并以不同的速度對履帶式拖拉機進行試驗,其橫向誤差為1cm到3cm[4]。同年,Noguchi等人使用二維激光掃描儀作為傳感器,放置于拖拉機前段以獲取相關距離與角度。當激光掃描儀在設定的掃描范圍內檢測到前方有障礙物時,導航程序立刻命令拖拉機停止[5]。然而雖然激光掃描儀有相對較高的精度,其造價對于農民來說卻是昂貴的。Gomez-Gil, San-Jose-Gonzalez, Nicolas-Alonso等人通過基于EMG的HMI來引導拖拉機,檢測四個狀態下司機的肌肉情況:眼睛向右看后下巴打開,眼睛向右看后下巴閉合,眼睛向左看后下巴打開和眼睛向右看后下巴閉合。并通過對比手動避障和自動避障的精度,得出了該方法與手動避障具有幾乎相同精度的結論[6]。2012年,Yang 等人采用Lucas-Kanade光流檢測方法在全景圖像中檢測人類,并進行3D重建,使用平方差方法來獲取人的具體位置從而達到避障預警的效果[7]。然而其檢測方法僅在白天的限定條件下才可以完成。2013年,Kraus, Kayacan, De Baerdemaeker等人提出了基于模型預測控制的拖拉機自主避障方法,模擬拖拉機潮濕和顛簸的行駛軌跡,在線識別滑動參數已使拖拉機進行縱向或者側向行駛,從而達到避障效果[8]。2016年,ZhangNoguchi 等人將每個拖拉機簡化成一個矩形區域,將路徑規劃,控制轉向等參數發送到拖拉機的ECU上,拖拉機從ECU上接受反饋信息以及閱讀來自客戶端/服務器的命令,從而達到實時避障的效果[9]。同年,Ball等人介紹了一種基于視覺障礙物的檢測技術。基于低廉的全球定位技術和慣性導航技術,完成了障礙物檢測和視覺輔導的無碰撞路徑規劃[10]。其智能拖拉機裝備如圖1-1所示。Ramezani, ZakiDizaji, Masoudi等人則將單個攝像頭安裝在拖拉機前方,將采集到的RGB圖像轉化成審圖圖像,然后將該圖像劃分區域,并刪除不必要的區域。之后使用幅度梯度函數來檢測物體的邊緣,從背景中分割對象以獲取行人的圖像。其實驗方法在早中晚不同的照明條件下進行,其測量結果最后與基于定向梯度方法和級聯方法的直方圖進行對比,得出該實驗方法具有良好的人體障礙物識別效果[11]。
圖1-1 基于視覺的避障拖拉機
1.2 國內現狀
在我國國內,雖然智能農業技術的起步晚于國外的發達國家,但在多年的努力下,也已取得良好的成果。1986年,清華大學的何克忠教授團隊,結合激光雷達,CCD二維彩色攝像機實現了智能車輛在行駛過程中的自主避障功能。90年代初,吉林大學就開始研發智能車輛,其JUITV型號的智能車輛已發展到第四代。其最新一代的智能車輛結合3D激光成像儀,利用多傳感器融合的技術,實現了道路識別的功能。1999年,沈明霞和李詢結合發射電路,接收電路,技術電路,雙穩電路,報警電路,以及數字式超聲筆防撞雷達達到車輛避障效果[12]。近些年來,智能拖來及的自主避障功能取得了新的突破。2015年,薛龍和馬蓉為研究拖拉機自動駕駛,提出了基于嵌入式智能終端和多線程的實時監控軟件系統,該方法最終的測量誤差的絕對平局值為9.7cm[13]。同年,宋春月研究了GPS導航技術,硬件上采用S3C2440為核心處理器,通過角度傳感器完成了前輪轉角的測量,軟件上了開發了嵌入式用戶界面,完成了拖拉機的直線方向的避障仿真[14]。2016年,石翔通過GPS獲取拖拉機行駛前方的障礙物信息,通過卡爾曼濾波分別對靜態下和動態下的前輪轉角進行濾波,再基于純追蹤模糊跟蹤算法,分別在室內室外進行檢測,完成拖拉機直線路徑跟蹤實驗[15]。同年,譚德權, 蔣蘋, 羅亞輝和胡文武針對履帶式拖拉機,采用雙源激光法對障礙物進行定位,并根據拖拉機實時速度控制系統完成對拖拉機點火和熄火的控制,達到避障的效果。該方法的有效范圍為100m內[16]。
1.3主要研究內容以及擬解決方案
1.3.1 研究內容
農作物生長環境復雜,駕駛員在行駛拖拉機的過程中,如果出現疲勞駕駛,將會導致拖拉機田間工作的安全隱患。相比于其他傳感器,機器視覺探測范圍廣,信息量大,可對較大物體進行識別,且滿足實時性。本文研究對象為在田野上行駛的拖拉機,因此需要傳感器具有良好的探測范圍,且出于對人隱私權的保護,在識別人體時只需要提取骨骼信息。同時出于對近距離物體位置的測定以及預算成本的考慮,故選用微軟推出的Kinect2.0作為機器視覺傳感器,并在VS2015的平臺上對其進行開發。
1.3.2擬解決方案
本防撞系統需要解決的數據處理問題有數據獲取,數據預處理以及數據融合。再基于處理過后的數據獲取避障參數,并制定相應的防撞策略,其技術路線圖如下所示:
圖1-2 技術路線圖
1.基于Win10系統,VSCommunity2015搭建適合Kinect2.0的開發的軟件平臺,將Kinect2.0安裝到拖拉機橫梁上方,搭建測試平臺。
2.用Kinect2.0獲取深度數據,并將其保存至數據庫中。
3.描述人體25個關節點,并用BodyFrameReader獲取其3D位置及方向,并將人體25個關節畫出來。
4.骨骼數據進行基于視頻流的預處理。
5.將獲取的深度2D數據與人體骨骼3D數據融合。
6.編寫基于多線程的延時函數,獲取相隔一秒的人體質心位置,從而獲取人相對于拖拉機的速度及方向。
7.獲取避障參數。
8.制定基于相對速度和避障參數的防撞方案。
1.4可行性分析
在農業生產中,拖拉機作為播種、耕種、運輸等方面重要的交通工具,被廣泛地使用。然而在拖拉機行駛過程中,如果駕駛員疲勞駕駛或者注意力不集中,在田間行駛拖拉機的過程中不能輕易識別出被農作物遮擋住的人,難免碰撞到前方在田地里務農的人,從而造成不可挽回的財產乃至生命的重大損失。而將智能車輛自主避障的技術應用到農業生產所需的拖拉機上,不僅可以規避財產以及生命的損失,還順應了時代的發展以及人們的需求,有著重要的研究意義和應用價值。
相比于其他攝像頭,Kinect2.0有相對較低的造價和良好的功能,可降低智能車輛技術在農業領域的經濟負擔,并提高農業領域的智能化。
本防撞系統,即使人前方有農作物或者樹木的遮蓋,也可以及時對人體進行識別,并進行相應的預警處理,從而降低不必要的生命與財產的損失。
1.5論文結構
本文將從以下幾個部分介紹:
1.介紹國內外發展現狀,本文研究內容及擬解決方案;
2.介紹Kinect2.0以及常發金冠拖拉機的基本信息;
3.介紹采取的彩×××像信息以及經過基于視頻流濾波后的人體骨骼信息,并對這兩種信息進行融合;
4.介紹避障策略以及實驗結果;
5.進行課題總結。
2.避障平臺介紹
2.1 Kinect2.0簡介
三維環境的捕捉在許多應用領域都有應用。諸如激光掃描,立體視覺或以三角測量為基礎的系統等各種各樣的科技,使捕捉三維環境和目標具有更廣泛的可能性。考慮到價格和計算時間等方面,近期RGB-D相機為用戶提供了更好的選擇。2014年,微軟公司發布了一個新型傳感器,適用于Windows v2的傳感器,該傳感器即是Kinect2.0,其依賴的技術為飛行時間準則(TOF)[17]。Kinect2.0由一個彩色攝像頭,一個紅外/深度攝像頭和四個麥克風陣列組成。彩色攝像機可以捕獲到1920x1080像素分辨率的彩色信息,而紅外/深度攝像機用來獲取實時深度圖和512*424像素分辨率的紅外數據。其視野范圍為水平70度和垂直60度。
圖2-1 Kinect2.0
由微軟提供的技術規格規定,Kinect2.0的有效測量范圍是0.5m到4.5m。為了確保開發者和研發者對該傳感器的使用,微軟官方的SDK2.0可從網上下載。不僅提供了開發程序,還提供了為個人開發所能使用的一系列的函數或者樣本代碼。
2.2 Kinect2.0測距原理
Kinect2.0使用光學飛行時間(TOF)技術測量距離如圖2-2。通過傳輸脈沖之間的時間延遲來獲取深度信息。而發射器和接收信號之間的被測量的相移可替換直接測量運行時間。在這種情況下,傳感器和捕捉目標之間的估計距離取決于確定相移:如公式:
(2.1)
其中,f=調制頻率
c=光速
圖2-2 TOF測距原理圖
2.3 Kinect2.0 成像原理
Kinect2.0由紅發射器發射雷射光,透過光柵投射至測量空間。測量空間中的粗糙物體在反射后會形成隨機的散斑,再通過紅外攝影機記錄空間中的每個散斑,通過晶片的計算便得到三維圖像。Kinect2.0的三維坐標系為右手螺旋坐標系,如下所示:
圖2-3 成像坐標系
2.4 軟件開發平臺
本文基于Kinect2.0的拖拉機防撞系統在微軟發布的Visio Studio Community 2015上操作,計算機語言為C#。在實驗過程中,為更直觀地看出數據處理效果,尋找適合該系統的濾波算法,同時結合Matlab2012進行圖像分析,以及效果對比。用Matlab2012分析得到適合的預處理算法后,將該算法運用到Visio Studio Community 2015上,獲取基于視頻流的實時濾波數據,以獲取有效的避障參數并制定適合的避障策略。
3.數據處理與圖像融合
3.1數據獲取
Kinect2.0為用戶提供三種有效信息,分別為深度數據、彩色數據、音頻數據,為骨骼追蹤、身份識別和語音識別的處理過程提供原始數據流。本文中需獲取的數據分別為深度數據,人體骨骼數據。獲取的深度圖像如圖3-1:
圖3-1 深度圖像
然而在從深度圖像中識別人體,進行骨骼追蹤的過程中,Kinect2.0會面臨一系列的干擾背景,如書桌,椅子,書架等。而從背景中提取人體的過程就是從噪聲中提取有用信息的過程。首先分析接近Kinect2.0紅外/深度攝像頭的區域,由其是呈現“大”字的區域,對其進行深度圖像像素逐點掃描。再通過計算機圖形視覺技術如邊緣檢測、噪聲閾值處理等方法來對人體特征點分類[18]。之后,通過約定字節編碼,將被追蹤到的“大”字玩家周圍建立“分割遮罩”,將上文中提到的干擾背景剔除后,即可得到用戶的深度圖像區域。最后將每個用戶ID數據轉換成RGBQUAD數據,規定用戶ID區域所用顏色,則其他區域即為另一種顏色,從而完成將人體深度圖像的摳圖。接下來需進一步獲取人體骨骼數據。Kinect2.0通過機器學習,根據骨骼關節圖(圖3-2)對人體25個關節進行快速識別分類,完成骨骼三維建模。
圖3-2 骨骼關節圖
在允許的延時范圍內,快速構建人體25個關節需要注意以下問題:
1.激光散斑測距的采樣精度;
2.紅外/深度攝像頭的分辨率;
3.允許延時范圍內的骨骼構建。
最終完成人體骨骼構圖,如圖3.3
圖3-3 骨骼構架圖
3.2數據預處理
然而由圖3-3可得,當人體的關節點出現重合或被物體遮擋的情況時,畫出的骨骼圖像會抖動,因此需對其進行預處理。常見的骨骼預處理方法有平滑濾波,指數濾波以及卡爾曼濾波。
為更直觀地對比濾波效果,本文將38s內的動態骨骼三維數據A保存到excel表格中,并導入Matlab軟件上,進行濾波效果分析。為便于觀察,該38s內,人基本保持靜止狀態。圖3-4為其未進行濾波的原始圖。
圖3-4原始圖像
平滑濾波就是用窗口長度為5的移動平均濾波器對三維數據A進行處理,再返回與A大小相同的向量AA。其計算方法如公式3.1,濾波效果圖如圖3-5:
圖3-5 平滑濾波圖像
1960年Kalman提出了卡爾曼濾波,其在航空、導航等多個領域中都有使用[19]。濾波其實是指信號在處理和變化的過程。濾波的本質就是根據用戶的自己需求,將信號中沒用的部分去除或者減弱,將自己需要的有用信號部分進行放大增強。也就是說,需要將抖動帶來的不必要信息去除,并放大有用的關節位置信息。在動態數據處理的過程中,卡爾曼濾波有相對較好的預處理效果。
卡爾曼濾波方程可通過輸入輸出觀測數據,進行最優估計算法,由于觀測數據中包括系統中的噪聲干擾,所以最優估計也可看作是濾波過程[20] 。在高斯分布干擾的情況下,如果測量均方誤差最小,測量值的抖動最小,也就最平滑。卡爾曼濾波的動態模型主要由卡爾曼狀態方程和卡爾曼觀測方程組成,分別為:
卡爾曼狀態方程:
(3.2)
其中, 為時刻到時刻的狀態轉移矩陣;
為系統噪聲矩陣;
為系統噪聲矢量。
卡爾曼觀測方程為:
(3.3)
其中:為k時刻的測量矩陣;
為k時刻的量測噪聲矢量。
而方程(3.2)、(3.3)中的,需滿足以下條件:
=, (3.4) (3.5) (3.6)
其中,稱為動態噪聲協方差陣;
,稱為量測噪聲協方差陣。
由上述方程可得,離散卡爾曼濾波方程如下:
(1)在(k-1)時刻得到,根據公式(3.2),可以得到在k時刻時狀態的預測方程:
(3.7)
(2)相應的預測的均方誤差方差為:
= (3.8)
(3)濾波增益方程為:
(3.9)
(4)由實際k時刻測量值所獲得的狀態估計方程為:
(3.10)
(5)估計均方誤差方程:
(3.11)
方程(3.2)為動態系統的狀態模型,方程(3.7)至方程(3.11)即為它的卡爾曼濾波基本方程。只需要給定卡爾曼濾波的初值以及,就可以根據k時刻的觀測方程遞推計算出在k時刻的狀態估計。其算法方程如圖(3.6)所示:
圖3-6 卡爾曼濾波算法流程圖
根據介紹的卡爾曼濾波方法,骨骼關節點卡爾曼濾波算法的仿真實驗過程主要分為了三部分:(1)Kinect2.0測量到的骨骼關節三維坐標數據為原始數據,為了更直觀地看出處理效果,將數據導入Matlab中進行分析。(2)建立卡爾曼濾波方程,編寫卡爾曼濾波仿真程序,對接收到的原始數據進行卡爾曼濾波處理。(3)對濾波過后的數據進行處理。其濾波處理效果如圖3-7所示:
圖3-7 卡爾曼濾波圖像
經過Matlab的驗證分析,可得到以下結論:平滑濾波雖起到了一定的濾波效果,卻仍出現微小抖動,為更好的消除抖動時帶來的不必要信息,本文最終選用卡爾曼濾波對骨骼關節位置進行濾波。實時濾波效果在VS2015平臺上的結果顯示如下:
a b
圖3-8 實時骨骼濾波對比圖: a.濾波前的圖片;b.濾波后的圖片
3.3圖像融合
深度數據是每像素為一個16位short的二維數據。而骨骼數據為包含25個關節位置三維數據。二維數據可精確表示空間位置之間的關系,用于定量分析[21] 。而骨骼三維數據包含了骨骼關節點的方向,位置,可通過該數據進行關節改變角度,幅度等參數的分析。為了得到更詳細,多元,直觀的數據,需要將描繪出的骨骼關節圖疊加到采集的深度圖像中,進行數據融合。深度二維數據與骨骼三維數據融合的具體步驟如下:
1.打開多種幀: DepthFrame, BodyIndex, Body;
2.創建圖像生成器,并將彩色框圖和骨骼框圖比例調整為1:1;
3.定義數組和位圖:存放彩×××像的字節數組的長度=幀寬度幀高度每個像素占用的字節數,位圖初始化:寬度,高度,96.0表示分辨率,像素格式,blue,green,red,alpha,共32位;
4.將骨骼幀,深度幀分別拷貝到數組,數組寫到位圖;
5.通過調用MapSpacePointToDepthPoint將骨骼坐標轉化為彩×××像坐標,再轉化為屏幕坐標。
其流程圖如下:
圖3:9 數據融合流程圖
融合后的圖像如圖3-10:
圖3-10 數據融合圖
4.避障策略設計與實現
4.1 獲取避障參數
本文的避障參數為人骨骼關節點的位置,以及制定人和拖拉機在XOZ平面上的最大尺寸包圍框,以確保在拖拉機預警執行過程中,人與拖拉機可以保持一定的安全距離,最后獲取人與拖拉機行駛的相對速度,
4.1.1 獲取骨骼關節點位置
設在Kinect2.0測量范圍內有一點A,其距離攝像頭的距離為,由Kinect內部規定可得點A在空間中的實際位置為[22]:
(4.1)
其中,H=3.5rad;
K=12.36cm;
O=3.7cm;
L=1.18rad。
求出實際位置d(cm)后,就可以獲得點A的坐標矢量設A為其投影坐標,則其三維坐標可由公式(4.2)計算:
(4.2)
其中,;
;
;
。
4.1.2 獲取包圍框參數
在拖拉機行駛過程中,需要明確在XOZ平面上,人與拖拉機最大尺寸的包圍框,以此確保人與拖拉機保持相對安全的距離。
首先獲取拖拉機包圍框,已知常發金冠拖拉機的基本參數如表4.1所示,將Kinect2.0放置于拖拉機的橫梁中心,其包圍框確立公式如(4.3):
表4.1 常發金冠拖拉機參數
常發金冠拖拉機參數 數值(cm)
寬()
橫梁中心到車頭的距離) 1700
1500
(4.3)
其中,N1,N2分別為X軸,Z軸拖拉機包圍框的擴展因子;
,分別為擴展后的邊長;
,分別為包圍框X軸方向的左半邊長和右半邊長;
其次,再獲取人體的包圍框。由公式(4.2)可獲取人體25個關節的三維坐標,由于Kinect2.0的安裝位置距離車頭有1.5m,在檢測并顯示在Z軸方向,人距離拖拉機的位置時,需要減去這一段固有距離。之后用排序法得到人體關節在X 軸,Z軸的最大位置,最小位置,分別記為,則人體包圍框確立公式如下:
(4.4)
其中,,分別為X軸,Z軸的人體包圍框的擴展因子;
、分別為人體包圍框X軸的最大值和最小值;
、分別為人體包圍框X軸的最大值和最小值。
4.1.3 獲取相對速度
要計算出人相對于拖拉機的行駛速度,需將運動的人看作是一個質點,分析其從位置到的運動過程。參考文獻[23]選擇有效地跟蹤行人的頭部位置,但行人的頭部不是最穩定的追蹤目標。這是由于人頭部的偏轉和旋轉會造成不必要的數據抖動。由其是當速度過快(>1.4m/s)時[24],選取人體的肩部可以更加穩定一些。因此A點的位置由當前時刻人的左肩(position1),右肩(position2)以及脊椎中心(position3)位置確定,最終得到的位置如公式(4.5)
(4.5)
則人與拖拉機的相對速度
(4.6)
4.2 避障策略
由于Kinect2.0安裝在拖拉機正前方橫梁中心,故避障策略只考慮人在拖拉機前方時的狀態如圖4-1,不考慮拖拉機倒車時的狀態。
圖4-1 避障情況
已知拖拉機在田間緩慢行駛的制動距離為0.5m到1m,人行駛速度低于拖拉機行駛速度。規定人當前時刻位置為,下一時刻位置為;當前時刻拖拉機在X軸包圍框坐標值分別為 ,,下一時刻包圍框坐標值分別為 ,;Z軸正方向當前時刻拖拉機包圍框坐標值為,下一時刻坐標值為;當前時刻人在X軸包圍框的坐標最大值和最小值分別為、,下一時刻包圍框坐標值,;當前時刻人在Z軸包圍框的坐標最大值和最小值分別為、;參考坐標系為以Kinect2.0的紅外/深度攝像頭為中心的右手螺旋坐標系,即拖拉機行駛方向為Z軸正方向,Kinect2.0左側為X軸正方向,上方為Y軸正方向。由于Kinect2.0檢測人體骨骼的深度范圍在0.5m到4.5m,且在Z軸方向,測得人體包圍框與拖拉機包圍框的距離等于人與攝像頭的距離減去攝像頭距離拖拉機包圍框的距離。又考慮到拖拉機在田間行駛的最大制動距離為1m,故本避障策略預警的必要條件為人與拖拉機相距1m到2m。
本系統的避障策略按照以下三種情況進行討論:
1.當行人當前時刻和下一時刻都在拖拉機包圍框的范圍內時,該情況在XOZ平面的二維圖像如圖4-2所示:
圖4-2 避障情況1(平面圖)
在X軸方向,如果當前時刻和下一時刻人的包圍框一直在拖拉機包圍框(藍色虛線)內,即<<,如果人與拖拉機之間在Z軸上的距離差為1m到3m之間,拖拉機防撞系統預警:立即停止;如果人與拖拉機之間的距離差在Z軸上為2m以上,則拖拉機可以繼續行駛。
2.當行人當前時刻不在拖拉機包圍框內,而下一刻在包圍框內時,該情況在XOZ平面的二維圖像如圖(4-3)所示:
圖4-3 避障情況2(平面圖)
在X軸方向,如果當前時刻人的包圍框不在拖拉機包圍框內,即或者,而下一時刻在拖拉機包圍框內,即<<。同樣地,如果人與拖拉機之間在Z軸上的距離差為1m到2m之間,拖拉機防撞系統預警:立即停止;如果人與拖拉機之間的距離差在Z軸上為2m以上,則拖拉機可以繼續行駛。
3.當行人下一刻不在包圍框內時,該情況在XOZ平面的二維圖像如圖4-4所示:
圖4-4 避障情況3(平面圖)
在X軸方向,人在下一時刻也不在拖拉機包圍框內,或者,即人的運動狀態是偏離拖拉機行駛方向,則在拖拉機保持直行的情況下,不啟動預警系統,拖拉機直行。
以上三種情況的避障方案可由流程圖如圖4-5所示:
圖4-5 避障流程圖
4.3 實驗結果
在獲取避障參數并明確避障策略之后,本拖拉機防撞系統在南京農業大學工學院進行實際檢測。主要檢測人在不同的位置,不同的姿態時,本防撞系統的預警狀態。其檢測環境由Kinect2.0拍攝,如圖4-6:
圖4-6 檢測環境
本系統由拖拉機的電瓶經過逆變器成220v后,給電腦和kinect2.0供電,其安裝成果如圖4-7所示:
圖4-7 Kinect2.0安裝圖
分別檢測在Kinect2.0的識別范圍內,模擬插秧播種時人的坐立狀態,彎腰狀態,站立狀態和預警狀況,其實驗結果如下所示:
a.
b.
c.
d.
e.
e.
f.
g
圖4-8 實驗結果:a.坐立狀態;b.彎腰狀態;c.站立狀態1;
d.站立狀態2;e.站立狀態3;f.無人狀態;g.夜間測試
表4.1 狀態檢測
狀態 光照 (m/s) 深度距離(m) 骨骼識別狀態 實際預警狀態
坐立
彎腰
站立1
站立2
站立3(有遮擋)
無人狀態
坐立 光照充足
光照充足
光照充足
光照充足
光照充足
光照充足
夜間 -0.0007093996
-0.06668031
-0.8409945
0.003467858
0.001958132
-6.988645 1.233494
1.521136
1.626469
2.551911
2.127553
1.099358 可識別
可識別
可識別
可識別
可識別
不可識別
可識別 停止
停止
停止
前進
前進
前進
停止
由上述圖表可得,本系統實現了拖拉機的防撞預警功能,但有著一定的條件,如下:
表4.2 避障系統限定條件
識別條件 識別范圍
識別深度距離
識別水平范圍
識別垂直范圍
光照 1m到4.5m
70度
60度
5.課題總結
智能交通技術在人們的日常生活中越來越常見,其適用范圍也逐步擴大到農業領域。本文設計的基于Kinect2.0的拖拉機防撞系統,不僅應用到了微軟市場上提供的最新科技,還提出了一個低成本高效率的實時解決方案。由于微軟為推行Kinect2.0傳感器而調整技術,深度測量比Kinect1.0取得了更高的準確度。除此之外,由于在捕捉深度圖像上的測距上,也呈現了一個更好的措施。使得小目標物體也可以取得更準確的檢測。彩×××片的質量也得到了提高。在避障前期準備工作中,本系統分別獲取了二維深度數據和三維人體骨骼數據,并對兩種數據進行信息融合,以取得更加豐富直觀地信息。之后根據人與拖拉機的相對速度以及避障參數制定相應的避障方案,已達到拖拉機行駛過程中及時預警的目的。
本系統采用低成本的Kinect2.0攝像頭,相比于其他視覺傳感器,對于農業工作者來說,其價格具有一定的價格優勢。此外,本系統可預警正在行駛的拖拉機,從而避免駕駛員疲勞駕駛時出現事故,從而保障了田間工作者的安全,在一定程度上緩解了農機安全隱患。
但如果要更好地應用到真實環境中,本系統仍然存在不足:
首先,Kinect2.0傳感器對開發平臺的要求較為苛刻,如必須在Win8或8.1配備的USB3接口。需要的額外電源輸入限制了如SLAM應用的移動。
其次,Kinect2.0雖然對光照不太敏感,即使在晴天,也可以獲得相應數據。然而,需要應用到一些濾波器來克服噪聲影響,獲取有效信息。本文通過對比平滑濾波和卡爾曼濾波,最終得出卡爾曼濾波對動態數據有更好的去除噪聲和消除抖動效果。但由于濾波過程中會帶來一定的延時,這使實時的拖拉機防撞系統來說存在指令滯后的缺陷。
最后,本系統的防撞對象是行走中的人,當農作物遮擋人的時候,人體的深度信息和骨骼信息難以被檢測到。下一步應考慮在僅能識別出人臉或者肩部以上部位的時候,能對人體進行三維重建,以獲取有效的信息。
轉載于:https://blog.51cto.com/13544350/2052749