馬瑞雪,杜忠華,肖 雨,劉仁杰,劉健瑩
(南京理工大學 機械工程學院,南京 210094)
隨著高科技的迅猛發展,許多行業開始和高科技融合起來提高效率,如體育競技運動中高科技已經開始大范圍滲入了.在乒乓球比賽中戰況時常是很激烈的,對戰雙方的快節奏使比賽一直處于迅速變換中,許多精彩瞬間都是一閃而過,之前通過慢動作和肉眼來捕捉落點處和運動軌跡已經不太適應如今的需求.利用雙目立體視覺系統對乒乓球[1,2]的運行軌跡進行三維重現,不僅可以在比賽中精確判定落點,還可以在日常訓練中用來提高訓練效果.在日常訓練中長期依靠教練的肉眼觀察和經驗去判定運動員的訓練情況是比較受限的,獲得乒乓球的三維運動信息可以用來輔助分析運動員的擊球技術及訓練情況,及時制定合適的訓練方案.
隨著各種智能機器人的出現,乒乓球機器人也開始出現在人們的視野中,而視覺系統是研究這類機器人的重中之重.雙目視覺系統相似于人類的視覺系統,從二維圖像中獲取三維信息,這就是三維重建技術實現的目的.目前三維重建技術[3-5]已經日漸成熟,許多行業都開始應用該技術,例如在醫學影像、化石結構重現、影視動畫設計等方面.最初的三維重建技術主要是針對靜態建筑或處于靜止狀態的物體等,隨著該技術的成熟和廣泛的應用范圍,近幾年來,三維重建也開始應用在物體的運動捕捉方面[6],比如人體的動作、物體的運動軌跡以及柔性物體的變形[7,8]等等,這些都可以通過三維重建技術重建出他們在三維空間中不同時刻的三維坐標,從而重建出該物體的運動軌跡.
本文主要提出了一種基于圖像序列的乒乓球三維運動軌跡重建方法,通過雙目立體相機系統來采集乒乓球運動的序列圖像,對采集的圖像進行處理,并重構出該乒乓球的運動軌跡,對不同幀的圖像中乒乓球所處的位置進行處理可得到一定時刻內乒乓球的運動速度及加速度.
通過搭建起來的雙目立體相機系統采集棋盤處于不同位置時的圖像,一共20 組,并對采集的圖像進行立體標定[9,10],得出左右相機的內參矩陣、畸變系數,以及關于左右相機之間的平移和旋轉矩陣.
先通過立體校正獲得的左右相機畸變系數對左右圖像進行畸變校正,消除相機畸變;然后再對消除畸變的兩幅圖像旋轉使其共面,并使其同行對準,完成圖像的立體校正.
本文主要基于乒乓球的顏色和形狀進行特征檢測,先通過顏色識別過濾圖像,再通過改進的Hough 圓檢測算法準確地定位乒乓球在圖像中的位置.乒乓球檢測算法的主要步驟如下:① 顏色識別過濾圖像;② 圖像預處理(形態學操作和濾波);③ Canny 邊緣檢測算法;④ 設置輪廓面積范圍,粗略篩選所提取輪廓;⑤ 霍夫圓檢測[11],確定球心位置.
通常我們所獲取的圖像都是RGB 模型,相比RGB模型,HSV 顏色模型更符合人對顏色的描述,它包括色調(H)、飽和度(S)、亮度(V).首先將BGR 圖像轉換為HSV 圖像,并對轉換后圖像的第三通道進行均衡化處理,增強圖像的對比度;接下來就是對增強對比度后的圖像進行顏色檢測,通過分別設置圖像三通道的最小值和最大值,來篩選出和乒乓球顏色相同或相近的背景,得到二值圖像.
由于采集的圖像序列容易受光照和背景的影響,為了提高圖像顏色檢測的速度和準確度,將圖像二值化的閾值參數設置為動態,可根據圖像背景自動調節.
為了更好地消除圖像中的噪聲,需對二值圖像進行預處理,先對獲取到的目標二值圖進行開運算,剔除掉一些細小的噪聲,然后再用中值濾波平滑處理圖像.中值濾波的工作原理就是用像素點的一個領域內各點灰度值的中值來替換該像素點原來的灰度值,使周圍的像素值比較接近真實值.
邊緣檢測算法的效果影響后續霍夫圓檢測的精度,本文選用比較經典的Canny 邊緣檢測算法.Canny 算法的實現步驟:
(1)首先用高斯濾波來消除噪聲,高斯內核示例(size=5)如下:

(2)依照Sobel 算子的原理來計算梯度幅值和方向.

幅值和方向:

(3)沿著梯度方向對幅值進行非極大值抑制.
(4)設置滯后閾值,如果像素位置的幅值低于最小閾值則被排除,若高于最大閾值則保留為邊緣,處于兩者之間則根據具體情況判斷.
由于霍夫圓檢測算法計算量大,比較耗時,為了提高算法的運行效率,將先進行一次粗略篩選,再進行圓檢測.對邊緣檢測后的圖像提取輪廓,用contourArea函數來計算所有輪廓的面積,設置符合目標條件的輪廓面積范圍,排除一些面積相對比較大或者比較小的輪廓.
霍夫圓檢測[11-14]的原理和霍夫線檢測的原理類似,就是將二維圖像空間中的圓轉換為三維參數空間中的點,通過投票方式,生成累計坐標平面,設置一個累積權重來定位圓的位置.
圖像空間中的圓方程一般為:

其中,圓心坐標為(a,b),半徑為r.
將圓坐標方程轉換為極坐標方程如下:

圓轉換為三維參數空間的點其實就是將圓方程轉換為極坐標方程(即:xy坐標系轉換為abr三維坐標系),在xy坐標系中經過某一點的所有圓轉換到abr坐標系中就變成了一條曲線,因此通過判斷abr坐標系中每一相交點的曲線累積數量,大于一定閾值則認為該點為所檢測的圓.
為了提高霍夫圓檢測的速度和準確度,減少不必要的計算,可以提前設置所需檢測圓的半徑范圍.
要重構出乒乓球的運動軌跡,就需要對運動目標進行不同幀序列圖像的匹配.在比賽中兵乓球的運動速度是較快的,因此采用高速相機來進行拍攝,本文使用的相機為168 幀/s,所以不同幀圖像中的物體運動范圍不是很大,通過設置前后兩幀圖像的特征點坐標差值(由采集的運動圖像獲得)在一定范圍內,在該范圍內進行搜索檢測乒乓球,可以實現不同幀圖像的匹配,此方法也能排除有些幀圖像中誤檢測的其他特征點,從而提高準確度.
假設第n幀圖像的特征點坐標為在第n+1幀圖像的特征點坐標為x、y方向上的增量為Δσx,Δσy,需滿足以下條件:

在匹配特征點后,會得到一系列不同幀所對應的特征點坐標,通過對這些坐標點進行平滑處理,排除一些波動太大的坐標點.
空間點的三維重建[15]上就是圖像坐標系向世界坐標系轉換的過程,求出特征點在空間中的位置是建立在雙目立體系統的基礎上,兩個相機水平放置,已知兩相機之間的距離T,由于所采集的雙目圖像已經立體校正過,此時兩個圖像平面完全共面,且像素行已對準,因此可將該雙目立體系統認定為理想的,光軸完全平行的系統,因此可通過視差和深度之間的關系求出特征點的三維坐標.
以左相機為世界坐標系原點建立坐標系,假設特征點在左相機圖像坐標系中的坐標為(xLi,yLi),在右相機圖像坐標系中的坐標為 (xRi,yRi),主點偏移坐標為該主點坐標是左右相機內參得到的,F為左右相機焦距的平均值,則三維坐標求解公式為:

使用張正友標定法對兩臺相機標定,標定后獲得兩個相機的內參矩陣KL、KR及畸變系數DL、DR,以及兩個相機之間的旋轉向量r、平移向量t,如下所示:


為了更好地體現本文算法檢測的效果,將與其他檢測算法做比較.圖1(a)是圖像閾值分割后,然后篩選出符合乒乓球的特征(如面積、周長等)的輪廓并擬合輪廓的結果,而圖1(b)是由本文算法檢測出來的效果,由以下效果圖的比較可知,本文檢測出的乒乓球輪廓更貼合乒乓球的形狀,這樣會更加精確地定位乒乓球的球心位置.

圖1 特征檢測結果比較
在圖2中的復雜背景中,由于球剛好接近乒乓球臺的表面,從圖片可看出接近的區域表面正好反光,會使乒乓球的識別困難,用以上兩種算法分別檢測,只有本文算法可以檢測出乒乓球,可見本文算法有很好的適應性,在背景復雜的情況下依然可以檢測出目標.
本文將提取圖像序列中前6 幀匹配好的特征點坐標數據來更好體現乒乓球運動在圖像中的特點,因左右圖像在時間序列上的特征匹配相差不大,表1將僅以左圖像特征點在時間序列上的匹配為代表.

圖2 復雜背景下的檢測結果

表1 乒乓球前6 幀匹配的圖像坐標
由表1可知,在相鄰幀下乒乓球球心的圖像坐標波動不大,x軸坐標差為? 15≤σx≤15;y軸坐標差為?10≤σy≤10.
利用Matlab 軟件將重建出的一系列三維坐標點重現出來,這些坐標表示了乒乓球在空間中處于不同時刻的位置,為了更好地顯示出乒乓球的運動軌跡,將對重建出的數據進行非線性曲線擬合.本文將提取乒乓球比賽或訓練中的一些片段來進行軌跡重現,如圖3所示.
在重構出乒乓球相對比較精確的運動軌跡后,可對乒乓球的運動形態進行進一步的分析,計算出在某一段時間內乒乓球的運動速度和加速度,對物體在空間中的運動形態描述的更加具體,更有助于時刻了解乒乓球的動態變化.
提取出乒乓球在某一段時刻的速度和加速度數據來加以驗證,由圖4,圖5可看出比賽中的乒乓球速度和加速度變化挺大,說明在比賽中節奏挺快.

圖3 比賽中不同情況下的乒乓球空間運動軌跡
本文在基于三維重建的基礎上實現了對運動物體乒乓球的動態重建.通過canny 邊緣檢測和霍夫變換檢測出乒乓球的輪廓,并求出球體的球心;再通過一系列序列圖像匹配出不同時刻的乒乓球位置,從而得出乒乓球在空間中的運動軌跡.
通過乒乓球的運動軌跡進而獲得乒乓球的三維運動數據,本文計算了乒乓球的速度和加速度等數據,這些數據后續都可以用來分析乒乓球在空中的運動形態,有很好的研究價值,也可以后續用來實現在乒乓球比賽中乒乓球運動軌跡的跟蹤,從而預測乒乓球的落點范圍.本文研究還存在一些不足,未考慮拖影情況下的乒乓球情況,后續可展開具體研究.

圖4 乒乓球運動速度

圖5 乒乓球運動加速度