胡海濤,張知行,姜 穎,喻 孜
(南京林業(yè)大學(xué) 理學(xué)院,江蘇 南京 210037)
羽毛球是我國優(yōu)勢項目,在國際享有很高的聲譽,在民間也有廣泛的群眾基礎(chǔ)。羽毛球的最高時速可達421公里/小時,是所有球類運動中最高球速最快的。在比賽中,羽毛球速度很快卻不會出界,這是因為羽毛球空氣阻力系數(shù)較大。因此,羽毛球的空氣阻力系數(shù)是一個重要的物理量,它決定了羽毛球在空中飛行的規(guī)律。對羽毛球空氣阻力系數(shù)的測量和研究,可以預(yù)測羽毛球的運動軌跡,為培養(yǎng)高水平運動員提供理論參考。然而,羽毛球形狀不規(guī)則,飛行路徑復(fù)雜,空氣阻力系數(shù)難以測量。目前,已有很多學(xué)者對此展開了研究。測量方法包括通過設(shè)計風(fēng)洞實驗、“沉球法”、使用tracker軟件分析羽毛球飛行視頻等[1-7]。在這些工作的基礎(chǔ)上,文章提出了一種基于單目視覺追蹤的羽毛球空氣阻力系數(shù)的測量方法。
空氣阻力取決于物體運動的速度。根據(jù)文獻[1-3],在羽毛球運動中,可認為阻力大小正比于速度的二次方。于是,摩擦阻力可以寫為:
(1)
(2)
(3)
(4)
考慮羽毛球以初速度為0開始豎直下落,積分得到,
(5)
functionFinalFrame=transform(frame)
a=[173,97;769,92;142,441;784,439];%墻壁四個點的坐標矩陣
b=[1,1;1280,1;1,720;1280,720];%變換后的坐標矩陣
tform=cp2tform(a,b,′projective′);
FinalFrame=imtransform(frame,tform,′XData′,[1,1280],′YData′,[1,720]);
End
圖1 算法流程圖
轉(zhuǎn)換前后的視頻效果如圖2所示。圖2左圖為原始拍攝圖像,右圖為透視變換后的圖像。從圖中可以看到,透視變換實際上是將視頻圖像“轉(zhuǎn)正”,使圖像垂直正對觀測平面。此時,在豎直方向上,像素距離比將保持不變。接下來,就可以使用背景差分法來追蹤識別運動中的羽毛球。將每一幀二值化的圖像都做透視變換,然后使用第k-1幀圖像作為第k幀圖像的背景,選取閾值為0.1,差值大于0.1的位置,賦值為0(白色),白色區(qū)域就是當前運動物體所處的位置。再通過bwlabel和regionprops語句對這一區(qū)域進行標記,即可識別羽毛球,相關(guān)代碼如下,
CurrentFrame=transform(rgb2gray(read(vid,k)));
FormerFrame=transform(rgb2gray(read(vid,k-1)));
bw=im2bw(abs(CurrentFrame-FormerFrame),0.1);
bwdi=imerode(bw2,[1,1,1;1,1,1;1,1,1]);
[L,num]=bwlabel(bwdi,4);
Stats=regionprops(L,′Centroid′);
圖2右圖顯示了某次循環(huán)過程中通過背景差分法識別羽毛球的結(jié)果,紅色框內(nèi)是羽毛球,圖中可以看到,通過算法成功的識別了運動中的羽毛球。
圖2 左圖為原始視頻截取圖像,右圖為經(jīng)過透視變換后使用背景差分法識別追蹤羽毛球的圖像紅色框內(nèi)是運動中的羽毛球。
識別出羽毛球后,獲取相鄰幀之間羽毛球質(zhì)心位置的變化,即可計算出像素速度。羽毛球在視頻中占15個像素長度,實際測量羽毛球長度為86.10 cm,可以求得每個像素代表的實際長度,為5.74 cm/像素。通過該方法可以得到下落過程中,羽毛球速度隨時間變化的關(guān)系。在下落過程中,每5幀計算一次下落速度,得到下落速度-時間圖像如圖3所示,共計測量了三次。圖中可以看到,在約0.8 s后,羽毛球速度幾乎不產(chǎn)生變化,可認為達到了勻速運動。三次測量的收尾速度為v1=5.916 m/s,v2=5.919 m/s,v3=5.909 m/s,均值為v=5.915 m/s,相對誤為0.5%。代入公式(1),其中參數(shù),羽毛球質(zhì)量,空氣密度,羽毛球最大橫截面積,可計算得到。該值在文獻[2]的建議值0.55~0.65之間。
圖3 三次下落過程中羽毛球速度隨時間變化的圖像
羽毛球形狀不規(guī)則,運動形態(tài)復(fù)雜,如何簡單有效的測量羽毛球空氣阻力系數(shù)是一個具有挑戰(zhàn)性的問題。設(shè)計風(fēng)洞實驗可以獲得較為準確的測量結(jié)果,然而該方法需要設(shè)計制作復(fù)雜的實驗裝置。文獻[2]提出的沉球法,實驗硬件需求低,是一種簡便可行的測量方法。該方法的測量原理是將(5)式繼續(xù)對時間積分求出下落位移和時間t的關(guān)系。因此,只要測得t時刻的位移,再代入公式,即可求出羽毛球的空氣阻力系數(shù)。在羽毛球下落行程較短時,“沉球法”對位移和時間關(guān)系的測量時會存在較大誤差。這也是文獻[2]測量結(jié)果過大的原因。文獻[3]通過拍攝羽毛球飛行軌跡,使用Tracker軟件來進行分析。羽毛球做類似拋物線的飛行,單個攝像頭只能拍攝到羽毛球飛行軌跡在攝像平面內(nèi)的投影,這與實際軌跡存在偏差。再則,方程(2)和(3)是耦合在一起的,無法得到軌跡方程的解析表達式,文獻[3]將擬合過程完全交由Tracker軟件來進行。Tracker軟件的功能是封裝固定的,在使用時,只能手動調(diào)整空氣阻力系數(shù)的值來匹配軌跡線,使用并不方便。
文中提出了一種基于單目視覺追蹤的方法測量羽毛球空氣阻力系數(shù)。對實驗硬件需求低,測量簡便。由于拍攝的是羽毛球豎直方向運動的視頻,因此羽毛球?qū)嵸|(zhì)上是在做一維運動。這樣處理有兩個好處,第一,在拍攝時相機更容易“垂直”對準羽毛球,即使無法做到嚴格垂直拍攝,只要選擇好參照背景,后期即可通過透視變換來處理像素距離比的問題。第二,一維運動時羽毛球動力學(xué)方程擁有更簡單的數(shù)學(xué)形式,數(shù)據(jù)處理時不會引入數(shù)值計算誤差。由于使運動員擊打羽毛球,又避免了沉球法時,羽毛球行程過短。實驗結(jié)果表明,本文的測量結(jié)果是可信的。文中的方法可以用于測量其他飛行物體的空氣阻力系數(shù)。