王曉剛
在用單臺攝像機對運動人體進行平面攝影攝像測量時,通常假設運動人體是在垂直于攝像機主光軸的運動平面內運動的,但實際情況并非如此。一般情況下,由于拍攝距離較遠,人體移出運動平面時所產生的透視誤差可以忽略。因此,大多數(shù)研究者在研究時并不會考慮此誤差對測量結果的影響。
上世紀八十年代,我國學者盧青(1984)[1]曾對因攝像機主光軸與運動平面不垂直所造成的透視誤差情況進行過討論。而國外學者 Li等人(1990)[2]也曾利用已知環(huán)節(jié)長度和位置的方法來研究透視誤差對測量結果的影響。Miller等人(1980)[3]則提出用一臺攝像機拍攝剛體上三個已知空間位置的標志點的方法,來確定其三維坐標。郭珩等人(2008)[4]也曾分析討論了光學三維測量中透視成像造成的誤差并提出了修正算法。但使用這些方法的前提條件是環(huán)節(jié)長度已知,且至少有一個標志點的空間位置是已知的。因此,當拍攝物不是剛體時(例如人體組織),上述方法則會失效。
本文將介紹兩種估測和修正透視誤差的方法,目的是為了說明在影像測量過程中透視誤差不容忽視,我們可以通過簡易可行的方法對其進行修正。
對透視誤差大小的估測,最簡便的方法就是利用相似三角形的原理(見圖1)。
圖1 透視誤差產生的原理圖
由圖1可以看出,設拍攝距離為b,透視距離為d,Pc為解析得到的物體垂直距離,Pa為實際的物體垂直距離,Pa與Pc的關系為:
則誤差e的值為:
設 b=15m,d=0.15m,Pc=0.7m,則根據(jù)等式(1)和(2)可以求出:
若物體水平方向距離亦為0.7m,則總誤差et由此可以看出,在d和Pc不變的情況下,b的值越大(也就是拍攝距離越長),誤差越小。但這只是理論分析的結果,在實際拍攝中,由于拍攝距離的增加,可能會影響人體成像的清晰度,因此拍攝距離的適宜長度應該在某一范圍之內。
公式(1)和(2)說明,估測和修正透視誤差的前提條件是,拍攝距離和透視距離必須已知。通常情況下拍攝距離可以直接測得,而透視距離也可以通過多種方法進行估測。本文將介紹兩種估測透視距離的方法。第一種方法,是利用測力臺數(shù)據(jù),對人體行走過程中透視距離進行估測,用來計算關節(jié)作用力和肌肉力矩;第二種方法,是在對鉛球運動員的動作技術進行分析時,通過鉛球著地點的位置來估測透視距離。
在平面逆動力學步態(tài)研究中,受試者的行走路線通常不會是一條嚴格的直線,會因左右搖擺而產生透視誤差。為研究此誤差對測量結果的影響,我們對一名正常人行走過程進行了拍攝。拍攝使用CASIO FH25數(shù)碼攝像機,拍攝頻率為120Hz;拍攝距離b=4.7m,身體重心至足底壓力中心的距離(透視距離)d=0.151m,腳的標志點至視場邊緣的距離,即 pc=0.7m。
通過等式(1)和(2)可以算出,pa=0.722m,e=0.022m。若腳的標志點與攝像機主光軸的水平距離同樣是0.7m,那么經修正后,踝關節(jié)作用力的垂直分量和水平分量變化不明顯。其原因是上述兩個力的分量的計算取決于地面反作用力和重力,并不受透視誤差的影響。而肌肉力矩的計算結果受透視誤差影響較為明顯(見圖2)。例如,踝關節(jié)跖屈峰值力矩修正后比修正前增加了27%。在對膝關節(jié)和髖關節(jié)的逆動力學計算過程中,也同樣出現(xiàn)了上述趨勢。
圖2 修正前后踝關節(jié)力矩比較
在對鉛球運動員的出手速度進行分析時,如果鉛球出手點或鉛球飛行軌跡所在平面與標定平面不一致,就會產生透視誤差,從而使根據(jù)視頻解析得到的出手速度等參數(shù)產生偏差。如圖3所示,若d為鉛球飛行過程中某點的透視距離(鉛球與標定平面的垂直距離),xL與yL為鉛球落地點相對標定平面的位置坐標。則根據(jù)相似三角形的理論,可以得到下述等式:
則透視距離
可將通過等式(5)計算得到的透視距離代入等式(1)和(2)中,以計算修正后的鉛球出手位置。
另一種推算透視距離d的方法,是假設投出的鉛球在空中的飛行軌跡不受空氣阻力的影響,呈拋物線軌跡飛行。因此,通過公式我們便可根據(jù)解析后計算得到的重力加速度與實際重力加速度進行比較,利用最優(yōu)化算法,來準確估算鉛球實際的出手位置。
圖3 鉛球投擲過程中的透視誤差示意圖
利用等式(3)、(4)、(5)可以很方便地估測出鉛球出手時刻的位置坐標。當鉛球經過攝像機主光軸附近時,修正系數(shù)最小;隨著鉛球遠離攝像機主光軸,修正系數(shù)逐漸增加。
為了驗證上述修正方法在實際拍攝中的有效性,特邀請一名鉛球運動員(國家二級運動員,身高:1.83m;體重:89kg;試投次數(shù):14次)進行投擲實驗。拍攝采用一臺CASIO FH25數(shù)碼攝像機,拍攝頻率為120Hz。攝像機架設于運動員身體右側,主光軸垂直于運動平面X軸(見圖4),拍攝距離為15m,機高1.2m。在運動員試投前對攝像機進行標定,標定平面為XY平面。
圖4 擲鉛球實驗拍攝現(xiàn)場示意圖
以第四次試投為例,在對解析得到的鉛球出手位置進行修正后,鉛球的出手速度由解析時的10.58m/s增加到10.92m/s(3.2%)。修正值與實測值的誤差范圍在1cm以內。14次試投中修正值與解析值的比較結果見圖5。平均修正值為0.54m。
圖5 鉛球投擲距離的解析值與修正值比較
在多數(shù)情況下,研究者通常會忽略影像測量中的透視誤差對測量結果帶來的影響,但是,這很有可能會使測量結果的精度下降或者得到完全錯誤的結論。有 制 造 商 曾 經 (Motion AnalysisTM,Koff,1990)[5]指出,在進行平面攝影測量時,系統(tǒng)誤差應該在1mm以內。如果透視誤差為15.1cm(拍攝距離的3%),那么對踝關節(jié)標志點位移坐標的誤差可以達到透視誤差值的30倍。雖然3cm的位移誤差很小,但在對關節(jié)力矩進行測量時,如果關節(jié)力臂誤差達到3cm,則會對測量結果產生很大影響;而對于關節(jié)作用力來說,由于其不受力的作用位置的影響,因此透視誤差對其計算結果的影響不大。
在對擲鉛球的出手速度和投擲距離進行估測時,鉛球出手位置的透視誤差對估測結果也會產生較大的影響。在此情況下,可以利用兩個與解析參數(shù)無關聯(lián)的參數(shù)(實測得到的鉛球落地位置坐標和已知的重力加速度g)對透視誤差進行修正。此方法可以有效地減小因透視誤差帶來的影響。實驗證明,對鉛球落地位置的預測結果誤差在1cm以內。
上述兩個例子說明,利用非解析參數(shù)對透視距離d進行估測,可以簡單方便地減小此類誤差對測量結果的影響。在對擲鉛球動作進行分析時,如果透視誤差可以被很好的修正,我們完全可以用一臺攝像機完成拍攝工作,且對鉛球飛行距離的預測結果誤差在1cm以內。而這一精度很可能高于利用兩臺攝像機進行三維測量時的測量精度。
[1] 盧青.高速攝影影片數(shù)據(jù)的誤差源及其處理方法(一)[J].江蘇體育科技,1984(5):21~24.
[2] Li,JA,Bryant JT,Stevenson JM.Single camera photogrammetric technique for restricted 3D motion analysis[J].Journal of Biomedical Engineering,1990(12):69 ~74.
[3] Miller NR,Shapiro R,McLaughlin TM.A technique for obtaining spatial kinematic parameters of segments of biomechanical systems from cinematographic data[J].Journal of biomechanics,1980(13):535~547.
[4] 郭珩,趙海波,姜春寶.三維測量中透視成像造成的誤差及修正[J].大視野,2008(7):35~36.
[5] Koff DG.Accuracy and precision of the ExpertVision 3-D Motion Analysis Systems[J].Motion Analysis Corporation,Santa Rosa,CA.1990.