廖 芳, 史金龍, 龔 肖
(江蘇科技大學 計算機學院, 鎮江 212003)
近年來三維運動捕獲技術日趨成熟, 市場上生成了大量三維運動捕獲系統, 該技術被應用于動畫制作、影視特效、體育訓練、醫學仿真等領域之中.
文獻[1–4]提出運動捕獲從工作原理來劃分, 主要分為: 機械式運動捕獲、聲學式運動捕獲、電磁式運動捕獲、光學式運動捕獲和基于視頻的運動捕獲. 文獻[5,6]提出了基于視頻的運動捕獲, 將人體模型從視頻序列中分離出來后, 再通過傳統的匹配算法匹配和重建. 該方法對于人體節點簡易模型進行匹配效果較好, 但是對無模型的多點柔性物體效果并不理想. 文獻[7]提出了一種基于稠密的重建方法, 對薄的物體進行重建, 效果較為理想, 但是對于稀疏的點狀柔性物體并不適用. 文獻[8]提出了一種基于圖形硬件的點的曲面重構和可視化技術, 由于點不能很好地適應多邊網格圖形硬件, 所以效果一般且設備較昂貴. 文獻[9]提出了一種無標記的服裝變化運動捕獲方法, 該方法基于多目立體視覺原理和多視圖幾何的關系來恢復服裝的三維數據[10]. 該方法重建效果較好, 但會產生龐大的數據量, 因此處理起來極其復雜.
本文提出了一種基于雙目視覺的點狀特征柔性物體運動捕獲方法, 該方法針對傳統的SIFT算法[11,12]對較大的圓點匹配較困難的問題, 提出了一種改進的匹配方法. 該方法首先對柔性物體上的點狀特征進行匹配, 再進行三維重建和時間序列上的匹配, 最終實現動態柔性物體的三維運動捕獲.
第一步: 利用DOG方法進行角點檢測[13], 如公式(1)所示. 首先利用不同的高斯核對圖像進行卷積; 然后再進行歸一化處理; 最后獲得高斯差分后的圖像. 經過高斯差分后的圖像, 點狀特征的邊緣是暗的, 越靠近圓心越亮, 此結果表明圓心的灰度值最大.

第二步: 檢測極值獲取點狀特征的圓心初始值. 以3×3的濾波器為例, 對圖像中的每一個點進行遍歷, 把這個點與其二維領域其他8個點進行比較, 如果其灰度值最大則為極大值, 然而有些極值并不是圓心, 而是圓心鄰域的點, 將坐標值僅相差一個或兩個像素范圍的定位為同一圓心鄰域的點, 再對同一鄰域的點取均值從而獲得精確的圓心.
本文對傳統的sift算法進行改進, 采用搜索策略來描述關鍵點. 首先, 經過立體標定和立體校正后[14,15], 按上節所述特征提取方法獲取左右兩幅圖像的特征點坐標; 再分別比較單幅圖像上前后坐標值是否重復, 通過取均值剔除掉重復點; 其次, 將左圖像特征點坐標在一定像素范圍的窗口上搜索右圖像上相應匹配點的坐標,該窗口可以如下公式(2)的形式表示:

其中, 在第 m 幀的時刻, 左圖像上像素點用 (xi, yi)表示, 右圖像上像素點用 (xj, yj)表示, 若左圖像上的像素坐標與右圖像上的像素坐標能在給定的閾值σ1×σ2窗口內, 則分別給左右圖像的匹配點坐標一個索引序號,即每個匹配對將有唯一的標識; 最后, 通過繪制關鍵點方法匹配所有點狀特征的圓心, 本文根據實驗結果得出結論, 相比于傳統的SIFT算法[12]和SURF算法[16]對較大的圓點特征提取率極低, 匹配效果不理想, 本文方法大大提高了匹配精準度.
世界坐標系轉換成圖像坐標系經過了剛體變換和透視投影變換, 而三維重建是該過程的一個逆向操作,因此可以通過圖像坐標和投影矩陣反向求解出匹配點的三維空間坐標. 由于本文是建立在基于雙目立體視覺的基礎上, 所以只需要考慮兩臺攝像機的相對位置關系, 如果把左相機坐標系當作世界坐標系, 則投影矩陣可由公式(3)表示:

其中K為內參數矩陣, R為旋轉矩陣, T為平移矩陣.左投影矩陣 P1可以進一步分解為 P11, P12, P13, 如公式(4)所示的形式:


由公式(5)可知, 四個方程求解三個未知數, 通過最小二乘法原理求解出的值, 該公式可以簡化為如公式 (6)的形式:

再對A進行奇異值分解[17], 則等于矩陣V的最后一列.
對點狀特征柔性物體的運動軌跡進行時間上的重建, 步驟如下:
第一步, 利用已獲取的當前幀圖像的二維坐標, 在一定像素范圍的小窗口內搜尋下一幀相應的坐標, 如公式(7)所示:

第二步, 同理, 在右圖像上找到目標點連續幀內的坐標.
第三步, 將左右圖像時間上連續的坐標進行匹配重建, 就可以獲得該點在時間上連續的空間坐標.
按PAL標準1 s分為25幀, 所以兩幀之間的時間就是 Δt, 兩幀之間運動的距離為 ΔS, 如公式 (8)所示:

因此可以得到目標點在兩幀之間運動的速率Δv,由公式(9)所示. 同理也可以通過速率求得加速度Δa如公式(10).

本文進行了三組實驗分別針對:布滿點狀特征的白紙、布滿點狀特征的服裝以及畫有點狀特征的人臉,采用兩臺型號為SONY FDR-AX30的高速攝像機拍攝運動視頻, 再經過立體標定, 立體校正, 特征點匹配, 三維重建等過程, 最終實現動態柔性物體的三維運動捕獲, 并用Meshlab重建三維空間點效果圖.
本實驗的實驗對象分別如圖1(a)點狀特征的白紙、圖1(d)點狀特征的服裝、圖1(g)點狀特征的人臉所示, 圖1(b)、圖1(e)和圖1(h)是重建結果的正視圖, 圖1(c)、圖1(f)和圖1(i)是相應的側視圖. 經分析圖片可以清晰地看到柔性物體表面的點狀特征在某一時刻的三維空間位置被精準地重建出來, 因此說明本文對于點狀柔性物體的三維運動捕獲方法效果比較理想.

圖1 三維重建效果圖
本實驗將DOG方法與最小二乘法擬合橢圓的方法[18]作比較. 圖2為DOG角點檢測圖, 圖3為橢圓擬合的結果, 圓中亮點為特征點圓心位置; 圖4為圖3中右下角某點狀特征放大圖. 首先, 因為DOG獲得的是與特征點相同的圓, 而橢圓擬合獲取的是與特征點類似的橢圓, 所以DOG方法獲得的圓心理論上更接近精準圓心位置. 其次, 圖4中灰色的點為DOG方法獲得的圓心位置, 黑色的點為橢圓擬合方法獲得的圓心位置, 圖中黑色的點偏離了灰色點, 并且不在圓內的灰色點則為橢圓擬合沒有檢測到的圓心位置, 此結果表明DOG獲取的特征點位置更加精準.

圖2 DOG 角點檢測
本文通過DOG方法檢測特征點, 再對檢測到的特征點運用搜索策略進行特征匹配. 如圖5(a)是在經過DOG檢測特征點后, 利用搜索策略進行特征匹配的效果圖. 本文不僅給出了搜索策略的匹配效果圖, 還對sift算法和surf算法進行了實驗, 圖5(b)和圖5(c)分別是兩方法的匹配效果圖, 經過對實驗結果的比對, 發現本文的匹配方法更加理想和精準, 說明了本文方法對于較大的點狀特征提取率高且匹配更加精準.

圖3 橢圓擬合獲取特征點

圖4 圓心坐標比對效果圖
如圖6所示, 是白紙上9個點在連續15幀內的運動軌跡. 圖6(a)是在柔性物體上選取9個目標點并進行標注, 圖6(b)是這9個點在15幀內的運動軌跡正視圖, 圖6(c)是相應的俯視圖. 從圖6(b)和圖6(c)可看出, 圖7的目標點是在進行前后運動的, 個別點運動的幅度大, 個別運動的幅度小. 總體上是在進行前后運動的趨勢, 實現了目標點在時間上運動軌跡的重建.

圖5 特征點檢測與匹配效果圖
假設某點的三維空間坐標為 (X, Y, Z), 如表1 所示是圖6(a)中1號點的前5幀空間坐標. 表2是對應的速度和加速度數據. 從表格中的數據可以看出該點前五幀的運動趨勢是先加速再減速, 即可以預測該點處于在前后抖動的運動趨勢.
本實驗對畫有點狀特征的人臉進行三維運動捕獲,重建結果如圖1(h), 1(i)所示. 本實驗通過計算點的速度、加速度分析點的運動趨勢.
如圖7所示, 本文用黑色箭頭表示第一幀到最后一幀的運動趨勢. 圖7(a)是人臉做出微笑表情時點的運動趨勢, 如圖所示微笑的時候嘴唇和臉頰周圍的點呈上升趨勢, 而鼻子額頭上的點呈下降趨勢. 圖7(b)是人臉做出大笑表情時點的運動趨勢, 如圖所示上嘴唇、臉頰、鼻子、額頭上的點都呈上升趨勢, 而只有下嘴唇和下巴上的點呈下降趨勢. 圖7(c)是人臉做出驚訝的表情, 如圖所示唇部與大笑表情幾乎一樣的運動趨勢, 但是有一個很大的區別就是兩嘴角卻是向內收斂的運動趨勢. 圖7(d)是人臉做出憤怒的表情, 如圖所示與其他表情不一樣, 該圖中臉部的點都在做呈向上運動的趨勢, 上下嘴唇中間點, 先向下運動再向上運動回到原點.

圖6 目標點連續 15 幀空間運動軌跡

圖7 人臉表情上點運動趨勢圖

表1 1號點的前五幀坐標 (單位: mm)

表2 1 號點前五幀的速度和加速度
在圖7人臉數據中選取上嘴唇中間點和下嘴唇中間點, 分別用up和down表示. 表3記錄了這兩個點在圖7所示四種表情的首. v_end, a_start, a_end 分別代表特征點首幀速度, 尾幀速度, 首幀加速度, 尾幀加速度.如表3所示, 圖7(b)的速度值比圖7(a)大, 加速值比其小, 說明人在大笑時唇部肌肉運動的速度比微笑時快,但速度的變化比微笑時慢, 從而表明了人大笑時面部表情比微笑時保持得更久; 圖7(c)的速度值比圖7(b)大, 加速度值比其大, 說明人在驚訝時唇部肌肉運動速度比大笑時快, 而且速度變化得快, 從而表明了這個表情在一瞬間產生; 圖7(d)的速度值均偏小, 說明人在生氣時, 唇部肌肉運動的速度慢, a_up的值較大表明上嘴唇上方的肌肉運動速度變化較快, a_down的值為負數說明下嘴唇下方的肌肉從開始時運動很快又立即變慢.

表3 點 up 和 down 速度加速度
本文提出了一種實用的基于點狀特征的柔性物體運動捕獲方法. 實驗結果顯示, DOG方法比橢圓擬合方法獲取特征點的位置更加精準; 采用搜索策略實現匹配, 相比傳統的SIFT算法, SURF算法大大提高了匹配精準度. 此外, 在三維重建的基礎上進行擴充, 增加時間序列上的匹配, 從而實現動態柔性物體的三維運動捕獲, 其次通過分析速度、加速度等數據來應用到人臉表情分析, 為后期用動態數據驅動靜態圖像打下基礎.