馬瑞雪,杜忠華,肖 雨,劉仁杰,劉健瑩
(南京理工大學(xué) 機(jī)械工程學(xué)院,南京 210094)
隨著高科技的迅猛發(fā)展,許多行業(yè)開(kāi)始和高科技融合起來(lái)提高效率,如體育競(jìng)技運(yùn)動(dòng)中高科技已經(jīng)開(kāi)始大范圍滲入了.在乒乓球比賽中戰(zhàn)況時(shí)常是很激烈的,對(duì)戰(zhàn)雙方的快節(jié)奏使比賽一直處于迅速變換中,許多精彩瞬間都是一閃而過(guò),之前通過(guò)慢動(dòng)作和肉眼來(lái)捕捉落點(diǎn)處和運(yùn)動(dòng)軌跡已經(jīng)不太適應(yīng)如今的需求.利用雙目立體視覺(jué)系統(tǒng)對(duì)乒乓球[1,2]的運(yùn)行軌跡進(jìn)行三維重現(xiàn),不僅可以在比賽中精確判定落點(diǎn),還可以在日常訓(xùn)練中用來(lái)提高訓(xùn)練效果.在日常訓(xùn)練中長(zhǎng)期依靠教練的肉眼觀察和經(jīng)驗(yàn)去判定運(yùn)動(dòng)員的訓(xùn)練情況是比較受限的,獲得乒乓球的三維運(yùn)動(dòng)信息可以用來(lái)輔助分析運(yùn)動(dòng)員的擊球技術(shù)及訓(xùn)練情況,及時(shí)制定合適的訓(xùn)練方案.
隨著各種智能機(jī)器人的出現(xiàn),乒乓球機(jī)器人也開(kāi)始出現(xiàn)在人們的視野中,而視覺(jué)系統(tǒng)是研究這類(lèi)機(jī)器人的重中之重.雙目視覺(jué)系統(tǒng)相似于人類(lèi)的視覺(jué)系統(tǒng),從二維圖像中獲取三維信息,這就是三維重建技術(shù)實(shí)現(xiàn)的目的.目前三維重建技術(shù)[3-5]已經(jīng)日漸成熟,許多行業(yè)都開(kāi)始應(yīng)用該技術(shù),例如在醫(yī)學(xué)影像、化石結(jié)構(gòu)重現(xiàn)、影視動(dòng)畫(huà)設(shè)計(jì)等方面.最初的三維重建技術(shù)主要是針對(duì)靜態(tài)建筑或處于靜止?fàn)顟B(tài)的物體等,隨著該技術(shù)的成熟和廣泛的應(yīng)用范圍,近幾年來(lái),三維重建也開(kāi)始應(yīng)用在物體的運(yùn)動(dòng)捕捉方面[6],比如人體的動(dòng)作、物體的運(yùn)動(dòng)軌跡以及柔性物體的變形[7,8]等等,這些都可以通過(guò)三維重建技術(shù)重建出他們?cè)谌S空間中不同時(shí)刻的三維坐標(biāo),從而重建出該物體的運(yùn)動(dòng)軌跡.
本文主要提出了一種基于圖像序列的乒乓球三維運(yùn)動(dòng)軌跡重建方法,通過(guò)雙目立體相機(jī)系統(tǒng)來(lái)采集乒乓球運(yùn)動(dòng)的序列圖像,對(duì)采集的圖像進(jìn)行處理,并重構(gòu)出該乒乓球的運(yùn)動(dòng)軌跡,對(duì)不同幀的圖像中乒乓球所處的位置進(jìn)行處理可得到一定時(shí)刻內(nèi)乒乓球的運(yùn)動(dòng)速度及加速度.
通過(guò)搭建起來(lái)的雙目立體相機(jī)系統(tǒng)采集棋盤(pán)處于不同位置時(shí)的圖像,一共20 組,并對(duì)采集的圖像進(jìn)行立體標(biāo)定[9,10],得出左右相機(jī)的內(nèi)參矩陣、畸變系數(shù),以及關(guān)于左右相機(jī)之間的平移和旋轉(zhuǎn)矩陣.
先通過(guò)立體校正獲得的左右相機(jī)畸變系數(shù)對(duì)左右圖像進(jìn)行畸變校正,消除相機(jī)畸變;然后再對(duì)消除畸變的兩幅圖像旋轉(zhuǎn)使其共面,并使其同行對(duì)準(zhǔn),完成圖像的立體校正.
本文主要基于乒乓球的顏色和形狀進(jìn)行特征檢測(cè),先通過(guò)顏色識(shí)別過(guò)濾圖像,再通過(guò)改進(jìn)的Hough 圓檢測(cè)算法準(zhǔn)確地定位乒乓球在圖像中的位置.乒乓球檢測(cè)算法的主要步驟如下:① 顏色識(shí)別過(guò)濾圖像;② 圖像預(yù)處理(形態(tài)學(xué)操作和濾波);③ Canny 邊緣檢測(cè)算法;④ 設(shè)置輪廓面積范圍,粗略篩選所提取輪廓;⑤ 霍夫圓檢測(cè)[11],確定球心位置.
通常我們所獲取的圖像都是RGB 模型,相比RGB模型,HSV 顏色模型更符合人對(duì)顏色的描述,它包括色調(diào)(H)、飽和度(S)、亮度(V).首先將BGR 圖像轉(zhuǎn)換為HSV 圖像,并對(duì)轉(zhuǎn)換后圖像的第三通道進(jìn)行均衡化處理,增強(qiáng)圖像的對(duì)比度;接下來(lái)就是對(duì)增強(qiáng)對(duì)比度后的圖像進(jìn)行顏色檢測(cè),通過(guò)分別設(shè)置圖像三通道的最小值和最大值,來(lái)篩選出和乒乓球顏色相同或相近的背景,得到二值圖像.
由于采集的圖像序列容易受光照和背景的影響,為了提高圖像顏色檢測(cè)的速度和準(zhǔn)確度,將圖像二值化的閾值參數(shù)設(shè)置為動(dòng)態(tài),可根據(jù)圖像背景自動(dòng)調(diào)節(jié).
為了更好地消除圖像中的噪聲,需對(duì)二值圖像進(jìn)行預(yù)處理,先對(duì)獲取到的目標(biāo)二值圖進(jìn)行開(kāi)運(yùn)算,剔除掉一些細(xì)小的噪聲,然后再用中值濾波平滑處理圖像.中值濾波的工作原理就是用像素點(diǎn)的一個(gè)領(lǐng)域內(nèi)各點(diǎn)灰度值的中值來(lái)替換該像素點(diǎn)原來(lái)的灰度值,使周?chē)南袼刂当容^接近真實(shí)值.
邊緣檢測(cè)算法的效果影響后續(xù)霍夫圓檢測(cè)的精度,本文選用比較經(jīng)典的Canny 邊緣檢測(cè)算法.Canny 算法的實(shí)現(xiàn)步驟:
(1)首先用高斯濾波來(lái)消除噪聲,高斯內(nèi)核示例(size=5)如下:
(2)依照Sobel 算子的原理來(lái)計(jì)算梯度幅值和方向.
幅值和方向:
(3)沿著梯度方向?qū)Ψ颠M(jìn)行非極大值抑制.
(4)設(shè)置滯后閾值,如果像素位置的幅值低于最小閾值則被排除,若高于最大閾值則保留為邊緣,處于兩者之間則根據(jù)具體情況判斷.
由于霍夫圓檢測(cè)算法計(jì)算量大,比較耗時(shí),為了提高算法的運(yùn)行效率,將先進(jìn)行一次粗略篩選,再進(jìn)行圓檢測(cè).對(duì)邊緣檢測(cè)后的圖像提取輪廓,用contourArea函數(shù)來(lái)計(jì)算所有輪廓的面積,設(shè)置符合目標(biāo)條件的輪廓面積范圍,排除一些面積相對(duì)比較大或者比較小的輪廓.
霍夫圓檢測(cè)[11-14]的原理和霍夫線檢測(cè)的原理類(lèi)似,就是將二維圖像空間中的圓轉(zhuǎn)換為三維參數(shù)空間中的點(diǎn),通過(guò)投票方式,生成累計(jì)坐標(biāo)平面,設(shè)置一個(gè)累積權(quán)重來(lái)定位圓的位置.
圖像空間中的圓方程一般為:
其中,圓心坐標(biāo)為(a,b),半徑為r.
將圓坐標(biāo)方程轉(zhuǎn)換為極坐標(biāo)方程如下:
圓轉(zhuǎn)換為三維參數(shù)空間的點(diǎn)其實(shí)就是將圓方程轉(zhuǎn)換為極坐標(biāo)方程(即:xy坐標(biāo)系轉(zhuǎn)換為abr三維坐標(biāo)系),在xy坐標(biāo)系中經(jīng)過(guò)某一點(diǎn)的所有圓轉(zhuǎn)換到abr坐標(biāo)系中就變成了一條曲線,因此通過(guò)判斷abr坐標(biāo)系中每一相交點(diǎn)的曲線累積數(shù)量,大于一定閾值則認(rèn)為該點(diǎn)為所檢測(cè)的圓.
為了提高霍夫圓檢測(cè)的速度和準(zhǔn)確度,減少不必要的計(jì)算,可以提前設(shè)置所需檢測(cè)圓的半徑范圍.
要重構(gòu)出乒乓球的運(yùn)動(dòng)軌跡,就需要對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行不同幀序列圖像的匹配.在比賽中兵乓球的運(yùn)動(dòng)速度是較快的,因此采用高速相機(jī)來(lái)進(jìn)行拍攝,本文使用的相機(jī)為168 幀/s,所以不同幀圖像中的物體運(yùn)動(dòng)范圍不是很大,通過(guò)設(shè)置前后兩幀圖像的特征點(diǎn)坐標(biāo)差值(由采集的運(yùn)動(dòng)圖像獲得)在一定范圍內(nèi),在該范圍內(nèi)進(jìn)行搜索檢測(cè)乒乓球,可以實(shí)現(xiàn)不同幀圖像的匹配,此方法也能排除有些幀圖像中誤檢測(cè)的其他特征點(diǎn),從而提高準(zhǔn)確度.
假設(shè)第n幀圖像的特征點(diǎn)坐標(biāo)為在第n+1幀圖像的特征點(diǎn)坐標(biāo)為x、y方向上的增量為Δσx,Δσy,需滿(mǎn)足以下條件:
在匹配特征點(diǎn)后,會(huì)得到一系列不同幀所對(duì)應(yīng)的特征點(diǎn)坐標(biāo),通過(guò)對(duì)這些坐標(biāo)點(diǎn)進(jìn)行平滑處理,排除一些波動(dòng)太大的坐標(biāo)點(diǎn).
空間點(diǎn)的三維重建[15]上就是圖像坐標(biāo)系向世界坐標(biāo)系轉(zhuǎn)換的過(guò)程,求出特征點(diǎn)在空間中的位置是建立在雙目立體系統(tǒng)的基礎(chǔ)上,兩個(gè)相機(jī)水平放置,已知兩相機(jī)之間的距離T,由于所采集的雙目圖像已經(jīng)立體校正過(guò),此時(shí)兩個(gè)圖像平面完全共面,且像素行已對(duì)準(zhǔn),因此可將該雙目立體系統(tǒng)認(rèn)定為理想的,光軸完全平行的系統(tǒng),因此可通過(guò)視差和深度之間的關(guān)系求出特征點(diǎn)的三維坐標(biāo).
以左相機(jī)為世界坐標(biāo)系原點(diǎn)建立坐標(biāo)系,假設(shè)特征點(diǎn)在左相機(jī)圖像坐標(biāo)系中的坐標(biāo)為(xLi,yLi),在右相機(jī)圖像坐標(biāo)系中的坐標(biāo)為 (xRi,yRi),主點(diǎn)偏移坐標(biāo)為該主點(diǎn)坐標(biāo)是左右相機(jī)內(nèi)參得到的,F為左右相機(jī)焦距的平均值,則三維坐標(biāo)求解公式為:
使用張正友標(biāo)定法對(duì)兩臺(tái)相機(jī)標(biāo)定,標(biāo)定后獲得兩個(gè)相機(jī)的內(nèi)參矩陣KL、KR及畸變系數(shù)DL、DR,以及兩個(gè)相機(jī)之間的旋轉(zhuǎn)向量r、平移向量t,如下所示:
為了更好地體現(xiàn)本文算法檢測(cè)的效果,將與其他檢測(cè)算法做比較.圖1(a)是圖像閾值分割后,然后篩選出符合乒乓球的特征(如面積、周長(zhǎng)等)的輪廓并擬合輪廓的結(jié)果,而圖1(b)是由本文算法檢測(cè)出來(lái)的效果,由以下效果圖的比較可知,本文檢測(cè)出的乒乓球輪廓更貼合乒乓球的形狀,這樣會(huì)更加精確地定位乒乓球的球心位置.
圖1 特征檢測(cè)結(jié)果比較
在圖2中的復(fù)雜背景中,由于球剛好接近乒乓球臺(tái)的表面,從圖片可看出接近的區(qū)域表面正好反光,會(huì)使乒乓球的識(shí)別困難,用以上兩種算法分別檢測(cè),只有本文算法可以檢測(cè)出乒乓球,可見(jiàn)本文算法有很好的適應(yīng)性,在背景復(fù)雜的情況下依然可以檢測(cè)出目標(biāo).
本文將提取圖像序列中前6 幀匹配好的特征點(diǎn)坐標(biāo)數(shù)據(jù)來(lái)更好體現(xiàn)乒乓球運(yùn)動(dòng)在圖像中的特點(diǎn),因左右圖像在時(shí)間序列上的特征匹配相差不大,表1將僅以左圖像特征點(diǎn)在時(shí)間序列上的匹配為代表.
圖2 復(fù)雜背景下的檢測(cè)結(jié)果
表1 乒乓球前6 幀匹配的圖像坐標(biāo)
由表1可知,在相鄰幀下乒乓球球心的圖像坐標(biāo)波動(dòng)不大,x軸坐標(biāo)差為? 15≤σx≤15;y軸坐標(biāo)差為?10≤σy≤10.
利用Matlab 軟件將重建出的一系列三維坐標(biāo)點(diǎn)重現(xiàn)出來(lái),這些坐標(biāo)表示了乒乓球在空間中處于不同時(shí)刻的位置,為了更好地顯示出乒乓球的運(yùn)動(dòng)軌跡,將對(duì)重建出的數(shù)據(jù)進(jìn)行非線性曲線擬合.本文將提取乒乓球比賽或訓(xùn)練中的一些片段來(lái)進(jìn)行軌跡重現(xiàn),如圖3所示.
在重構(gòu)出乒乓球相對(duì)比較精確的運(yùn)動(dòng)軌跡后,可對(duì)乒乓球的運(yùn)動(dòng)形態(tài)進(jìn)行進(jìn)一步的分析,計(jì)算出在某一段時(shí)間內(nèi)乒乓球的運(yùn)動(dòng)速度和加速度,對(duì)物體在空間中的運(yùn)動(dòng)形態(tài)描述的更加具體,更有助于時(shí)刻了解乒乓球的動(dòng)態(tài)變化.
提取出乒乓球在某一段時(shí)刻的速度和加速度數(shù)據(jù)來(lái)加以驗(yàn)證,由圖4,圖5可看出比賽中的乒乓球速度和加速度變化挺大,說(shuō)明在比賽中節(jié)奏挺快.
圖3 比賽中不同情況下的乒乓球空間運(yùn)動(dòng)軌跡
本文在基于三維重建的基礎(chǔ)上實(shí)現(xiàn)了對(duì)運(yùn)動(dòng)物體乒乓球的動(dòng)態(tài)重建.通過(guò)canny 邊緣檢測(cè)和霍夫變換檢測(cè)出乒乓球的輪廓,并求出球體的球心;再通過(guò)一系列序列圖像匹配出不同時(shí)刻的乒乓球位置,從而得出乒乓球在空間中的運(yùn)動(dòng)軌跡.
通過(guò)乒乓球的運(yùn)動(dòng)軌跡進(jìn)而獲得乒乓球的三維運(yùn)動(dòng)數(shù)據(jù),本文計(jì)算了乒乓球的速度和加速度等數(shù)據(jù),這些數(shù)據(jù)后續(xù)都可以用來(lái)分析乒乓球在空中的運(yùn)動(dòng)形態(tài),有很好的研究?jī)r(jià)值,也可以后續(xù)用來(lái)實(shí)現(xiàn)在乒乓球比賽中乒乓球運(yùn)動(dòng)軌跡的跟蹤,從而預(yù)測(cè)乒乓球的落點(diǎn)范圍.本文研究還存在一些不足,未考慮拖影情況下的乒乓球情況,后續(xù)可展開(kāi)具體研究.
圖4 乒乓球運(yùn)動(dòng)速度
圖5 乒乓球運(yùn)動(dòng)加速度