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