尹 朵,丁文龍,邱 崧
(華東師范大學(xué) 通信與電子工程學(xué)院,上海 200241)
近年來,機器視覺技術(shù)在國內(nèi)外獲得快速發(fā)展。在機器視覺研究中,實現(xiàn)對目標(biāo)物體的識別與跟蹤具有重要意義。單純的目標(biāo)檢測跟蹤并不能準(zhǔn)確預(yù)判下一時刻物體的運動狀態(tài)和位置,物體的軌跡預(yù)測逐漸成為機器視覺領(lǐng)域的重點和難點。
目前常用的軌跡預(yù)測方法主要包括:基于傳統(tǒng)多項式擬合的動態(tài)軌跡預(yù)測、基于卡爾曼濾波的動態(tài)軌跡預(yù)測、基于神經(jīng)網(wǎng)絡(luò)的動態(tài)軌跡預(yù)測。其中,基于傳統(tǒng)多項式擬合的動態(tài)軌跡預(yù)測通過擬合含有1個參數(shù)的階多項式,在原始數(shù)據(jù)足夠多的情況下,逼近函數(shù)曲線,使得誤差最小化,得到運動物體軌跡預(yù)測的函數(shù)曲線,該原理簡單、易于實現(xiàn)、建模迅速,適用于小數(shù)據(jù)量、簡單的軌跡預(yù)測,缺點是精度不高,擬合階數(shù)越高、系統(tǒng)越發(fā)散;基于卡爾曼濾波的動態(tài)軌跡預(yù)測通過前一時刻的估計值和當(dāng)前時刻的觀測值更新對狀態(tài)變量的估計,實現(xiàn)對下一時刻的軌跡位置的預(yù)測,該方法對運動狀態(tài)頻繁改變的運動目標(biāo)具有很好的適應(yīng)性,但無法長時間進(jìn)行軌跡預(yù)測;基于神經(jīng)網(wǎng)絡(luò)的動態(tài)軌跡預(yù)測可以有效地學(xué)習(xí)運動目標(biāo)的歷史運動狀態(tài),利用機器學(xué)習(xí)方法建立輸入輸出的映射關(guān)系,有效實現(xiàn)運動目標(biāo)的軌跡預(yù)測,該方法可以充分逼近非線性系統(tǒng),軌跡預(yù)測結(jié)果精確,但需要依賴大量數(shù)據(jù)訓(xùn)練模型,實時性差。
近年來,對乒乓球軌跡預(yù)測的研究主要是圍繞無旋球展開,對旋轉(zhuǎn)球的研究更多地集中在旋轉(zhuǎn)球識別分類上,或采用機器學(xué)習(xí)的方式進(jìn)行旋轉(zhuǎn)球的軌跡預(yù)測。文獻(xiàn)[1]基于4臺高速1394火線相機和一臺功能強大的工業(yè)PC構(gòu)成的高速視覺系統(tǒng),提出了一種取決于摩擦系數(shù)和垂直恢復(fù)系數(shù)的旋轉(zhuǎn)速度的新型物理彈跳模型,用于球軌跡預(yù)測。文獻(xiàn)[2]構(gòu)建了一個集成的視覺系統(tǒng)來觀測乒乓球的旋轉(zhuǎn)運動,并利用位置和自旋信息,通過擴(kuò)展卡爾曼濾波器(EKF)來實現(xiàn)軌跡預(yù)測。文獻(xiàn)[3]提出了一種通過反向傳播神經(jīng)網(wǎng)絡(luò)(BPN)進(jìn)行軌跡預(yù)測的方案,通過2個神經(jīng)網(wǎng)絡(luò)分別對碰撞前后的飛行拋物線進(jìn)行學(xué)習(xí)訓(xùn)練,通過第一拋物線的10個點即可預(yù)測軌跡。文獻(xiàn)[4]通過構(gòu)建空氣動力學(xué)模型以及回彈模型對乒乓球軌跡進(jìn)行預(yù)測,并根據(jù)預(yù)測的軌跡計算擊球點球的狀態(tài)。
上述方法在一定程度上提高了軌跡預(yù)測的精度,但存在硬件要求高、算法復(fù)雜、忽略旋轉(zhuǎn)球角速度等問題。本文提出了一種雙目視覺下基于無跡卡爾曼濾波及運動學(xué)模型的軌跡預(yù)測算法,首先通過無跡卡爾曼濾波的方式對碰撞前軌跡進(jìn)行預(yù)測;預(yù)測到落點后,采用碰撞模型及運動學(xué)模型預(yù)測碰撞后軌跡。該方法能夠更加準(zhǔn)確地實現(xiàn)乒乓球的軌跡預(yù)測,且對視覺系統(tǒng)硬件性能要求較低。經(jīng)實驗驗證,該方法對碰撞后乒乓球軌跡預(yù)測實時性更高,預(yù)測較準(zhǔn)確。
乒乓球軌跡的預(yù)測是指通過乒乓球的部分三維世界坐標(biāo)預(yù)測乒乓球的軌跡,從而確定乒乓球的落點。對乒乓軌跡預(yù)測的要求主要分為實時性及準(zhǔn)確性兩部分。采用傳統(tǒng)多項式擬合方法預(yù)測乒乓球軌跡的方法實時性較好,但對于旋轉(zhuǎn)乒乓球的預(yù)測效果較差;基于神經(jīng)網(wǎng)絡(luò)的軌跡預(yù)測方法可以對旋轉(zhuǎn)乒乓球軌跡進(jìn)行有效預(yù)測,但需要大量數(shù)據(jù)訓(xùn)練模型。本文采用無跡卡爾曼濾波及運動學(xué)模型對旋轉(zhuǎn)乒乓球軌跡進(jìn)行預(yù)測,可以兼顧實時性的同時保證旋轉(zhuǎn)球預(yù)測的準(zhǔn)確性。
乒乓球在運動過程中,由于在擊球瞬間球拍對乒乓球作用力、即馬格努斯力的方向不一定完全通過球心,乒乓球在飛行過程中會產(chǎn)生旋轉(zhuǎn)。旋轉(zhuǎn)的乒乓球存在自身角速度,如果直接將其視為質(zhì)點而忽略角速度,在軌跡預(yù)測的結(jié)果中會出現(xiàn)較大誤差。飛行過程中,旋轉(zhuǎn)的乒乓球主要會受到重力、空氣阻力和馬格努斯力三個力的作用,影響馬格努斯力的主要因素就是角速度,若使用硬件設(shè)備直接獲取角速度需要配備超高速攝像機或紅外設(shè)備,成本昂貴,實驗條件難以保證。本文采用UKF間接估計角速度這一未知狀態(tài)。
UKF是一種基于最小方差估計準(zhǔn)則的非線性高斯?fàn)顟B(tài)估計器,采用無損變換(Unscented Transform,UT)來近似系統(tǒng)狀態(tài)的后驗均值及后驗協(xié)方差,所需估計時間更短,精確度更高。
離散非線性系統(tǒng)可以用一個過程方程和一個觀測方程表示,其數(shù)學(xué)表述可寫為:
其中,為狀態(tài)過程函數(shù);為觀測過程函數(shù);U為時刻輸入向量;Z為時刻觀測向量;W和V分別為時刻過程噪聲和量測噪聲,兩者互不相關(guān)且均為高斯白噪聲;X為時刻運動狀態(tài)向量。
1.1.1 系統(tǒng)過程方程構(gòu)建
對于旋轉(zhuǎn)的乒乓球,過程方程是非線性的,而觀測方程是線性的。采用9維向量表示乒乓球的狀態(tài)變量,具體公式如下:
其中,p,p,p表示乒乓球在,,軸的坐標(biāo);v,v,v分別表示乒乓球在,,軸的速度;ω,ω,ω分別表示乒乓球在,,軸的角速度。
觀測向量用三維向量表示,即通過雙目視覺得到的乒乓球三維坐標(biāo)信息,見式(3):
定義 [p,p,p,v,v,v,ω,ω,ω]為系統(tǒng)時刻的9維狀態(tài)向量,構(gòu)建乒乓球運動模型的系統(tǒng)過程方程,列出的方程分別如下:
其中,W(1,2,3,…9)為時刻9維零均值過程噪聲向量中的各項;系數(shù)為空氣阻力因子;為馬格努斯力因子;‖‖表示第1時刻3個方向線速度的模值。
進(jìn)一步,研究推得的數(shù)學(xué)計算公式可寫為:
其中,C取決于乒乓球表面粗糙程度;為空氣密度;為乒乓球最大橫截面積。
同時,研究推得的數(shù)學(xué)計算公式可寫為:
其中,C為升力系數(shù);為乒乓球直徑;為乒乓球質(zhì)量。
綜上可得,時刻乒乓球在,,坐標(biāo)軸的角速度可由如下公式計算求得:
至此,乒乓球運動模型的系統(tǒng)過程方程構(gòu)建完成。
1.1.2 系統(tǒng)觀測方程研究
乒乓球運動模型的系統(tǒng)觀測方程,表示形式為:
其中,V(1,2,3)為時刻三維零均值觀測噪聲向量。
W與V線性無關(guān),且滿足式(10):
在這一部分,關(guān)于初始值的運算可給出研究表述如下。
其中,表示采樣點的分布信息。
并計算下一步誤差協(xié)方差(1),數(shù)學(xué)定義式如下:
計算誤差協(xié)方差(1),對此可寫為如下形式:
計算互協(xié)方差(1),可由下式確定:
快速地獲取碰撞后乒乓球的軌跡,以便機械臂具有充足的時間調(diào)整姿態(tài)和位置將乒乓球擊回,由于乒乓球碰撞后運動狀態(tài)發(fā)生改變,碰撞后傳統(tǒng)UKF乒乓球軌跡預(yù)測的收斂時間更長,預(yù)測誤差逐漸增大。本文通過構(gòu)建反彈后簡單物理運動模型(SPM)的方式預(yù)測碰撞后的乒乓球軌跡。
由于帶有馬格努斯力的乒乓球物理運動模型構(gòu)建復(fù)雜、且馬格努斯力較小,在構(gòu)建碰撞后的乒乓球物理模型時,忽略馬格努斯力。乒乓球運動時的受力分析如圖1所示。
圖1 乒乓球運動時受力分析圖Fig.1 Force analysis diagram during the moving of table tennis
圖1中,F為乒乓球所受重力;F為空氣阻力;C為空氣阻力系數(shù);F為空氣浮力;為乒乓球的速度。
由于空氣浮力數(shù)值太小,不加入后續(xù)模型推導(dǎo)計算。乒乓球所受各力的數(shù)學(xué)公式具體如下:
其中,C為空氣阻力系數(shù);為空氣密度;為乒乓球最大橫截面積;為乒乓球直徑。
由于空氣浮力數(shù)值太小,不加入后續(xù)模型推導(dǎo)計算。
對式23()積分可得,時刻乒乓球在軸上的分速度v的數(shù)學(xué)公式可寫為:
其中,v表示0時刻乒乓球在軸上的初始分速度。
乒乓球時刻在軸上分速度v,以及時刻乒乓球在軸的坐標(biāo)p的計算公式分別如下:
其中,v表示0時刻乒乓球在軸上的初始分速度,表示0時刻乒乓球在軸上的初始位置坐標(biāo)。
乒乓球在軸方向受到空氣阻力及重力的影響,當(dāng)v>0時,根據(jù)乒乓球受力分析及牛頓第二定律可得式(26):
對式(26)積分可以得時刻乒乓球在軸上的分速度v的數(shù)學(xué)公式可寫為:
其中,v表示0時刻乒乓球在軸上的初始分速度。
對式(27)中的速度v在0時刻積分可得,時刻乒乓球在軸的坐標(biāo)p,可由下式計算求得:
其中,表示0時刻乒乓球在軸上的初始位置坐標(biāo)。
當(dāng)v≤0時,根據(jù)乒乓球受力分析及牛頓第二定律可得式(29):
對式(29)積分可以得到:
對式(30)中的速度v在0時刻積分可得,時刻乒乓球在軸的坐標(biāo)p,運算公式見式(31):
乒乓球與桌面發(fā)生碰撞時,由于球速、球的運動方式不同,在水平方向和垂直方向上的摩擦系數(shù)和衰減系數(shù)也不同。構(gòu)建乒乓球的反彈模型,計算反彈后乒乓球在,,軸的速度v,v,v,推得的數(shù)學(xué)公式分別如下:
其中,k、k、k、b、b表示反彈擬合參數(shù),v、v、v分別表示,,軸反彈前乒乓球的速度。
利用乒乓球碰撞反彈的軌跡擬合,采樣多條乒乓球反彈軌跡,記錄反彈前后坐標(biāo),利用最小二乘法擬合確定反彈擬合參數(shù)。
在搭建高速運動的乒乓球系統(tǒng)中驗證本文算法的有效性。乒乓球機器人系統(tǒng)中的圖像采集設(shè)備為USB工業(yè)攝像機,幀率為120 fps。軌跡預(yù)測的數(shù)據(jù)采樣時間間隔為20 ms。傳統(tǒng)UKF方法與SPMUKF方法軌跡預(yù)測結(jié)果對比如圖2所示。
由圖2可知,傳統(tǒng)UKF預(yù)測方法的結(jié)果在軸上誤差不超過10 mm,、軸誤差不超過20 mm。由于UKF算法需要測量值的輸入不斷修正狀態(tài)估計量,從而更好地預(yù)測下一個點的位置,因此當(dāng)只輸入部分?jǐn)?shù)據(jù)時,隨著時間的推移,軌跡預(yù)測值會出現(xiàn)較大誤差。而改進(jìn)后的UKF乒乓球軌跡預(yù)測算法通過對物理模型的建模,在乒乓球反彈后的軌跡預(yù)測中整體誤差有所降低,、軸方向誤差在10 mm內(nèi),軸誤差在15 mm內(nèi),相較于傳統(tǒng)的UKF預(yù)測方法,誤差有一定減少。
圖2 不同算法結(jié)果對比圖Fig.2 Comparison of results with different algorithms
本文針對傳統(tǒng)的UKF算法在乒乓球碰撞后軌跡預(yù)測誤差隨時間增大的問題,提出了改進(jìn)的UKF乒乓球軌跡預(yù)測算法。對乒乓球碰撞前的軌跡采用UKF算法預(yù)測,在碰撞后采用簡單物理運動模型預(yù)測乒乓球的軌跡。實驗證明改進(jìn)的UKF乒乓球軌跡預(yù)測算法可以一定程度上提高軌跡預(yù)測的精度,為后續(xù)乒乓球機器人擊球工作的開展提供了保障。