李林波 陳從平 吳 喆 吳 杞 石小濤
(1.三峽大學 三峽庫區生態環境教育部工程研究中心,湖北 宜昌 443002; 2. 三峽大學 機械與動力學院, 湖北 宜昌 443002)
魚類游動軌跡是魚類行為研究的主要內容之一,有助于了解魚類游動行為和能力.視頻跟蹤技術是目前用于魚類游動軌跡提取的主要技術手段之一,主要包括單目鏡像、雙目以及多目視覺技術[1-3].Laurel和Brown等人提出的單目結合陰影獲取了魚的稀疏三維信息[4],以及徐盼麟[5]和毛家發[6]分別提出的運用單目攝像機結合一塊防水鏡面模擬出虛擬攝像機或虛擬魚,然后運用不同算法計算得到了魚的三維坐標和游動軌跡,但由于單目鏡像方法需要利用平面鏡輔助成像,因而只適用于實驗室環境.而多目視覺[7](三個及以上攝像機)需要利用多個攝像機從不同角度對魚進行跟蹤,理論上精度更高,但需建立魚形狀的三維幾何約束,加上魚游動時高頻變形,計算量大,實時性差,誤差較大.張春森[8]提出一種由雙攝像機、云臺、影像傳輸、系統控制等部分組成的雙目視覺系統,實現了對水上環境中的剛性物體的定位跟蹤,而祝琨等人[9]提出了一種雙目機器人系統,可實現地面上的運動目標檢測跟蹤與三維測距.這兩種視覺系統雖然實現地面環境下的運動物體空間定位與三維跟蹤,但都沒有運用于水下環境下魚類等柔性物體的三維運動跟蹤.
因此,本文提出一種采用雙目視覺實現魚類三維軌跡跟蹤的方法,在對雙攝像機進行標定的基礎上,通過混合高斯背景建模(GMM)對魚目標進行捕捉,然后分別提取魚在兩個攝像機中的形心坐標并將形心點進行匹配,利用三角測量方法[10]重建出三維軌跡點序列,從而完成運動物體的三維軌跡跟蹤.試驗結果表明,該算法計算量小,可用于實時的三維軌跡跟蹤監測.
本文提出的基于雙目視覺魚類游動軌跡跟蹤方法核心思想是通過兩個攝像機同步拍攝同一目標魚的游動視頻圖像來重建出其3D形心點,并以形心運動來表征魚的三維軌跡.整個流程包括攝像機標定、魚運動檢測、兩攝像機各自對魚2D跟蹤、3D形心融合等步驟,具體流程如圖1所示.

圖1 魚類運動三維軌跡跟蹤算法流程圖
攝像機標定分為單目標定和立體標定兩步,其中單目標定的目的是對攝像機自身內參進行計算與矯正,立體標定的目的是要獲取兩臺攝像機的相對空間幾何關系.基于張正友[11]求解焦距和偏移的算法模型:

其中,Zc是攝像機坐標系中三維點坐標Z方向分量,(u,v)是圖像坐標系中的點坐標,(Xw,Yw,Zw)是世界坐標系中的三維點坐標,dx、dy分別是每個像素在圖像平面內x和y方向的物理尺寸,(u0,v0)是主點坐標,f為焦距,Rcw、t分別為攝像機坐標系與世界坐標系之間的旋轉矩陣和平移向量.K為攝像機內部參數矩陣,如焦距、主點等;M1為外部參數矩陣,包括反映攝像機坐標系與世界坐標系相對關系的旋轉矩陣和平移向量.在標定過程中,(Xw,Yw,Zw)、(u,v)、dx、dy、Zc為已知參數,可求出主點(u0,v0)、焦距f、旋轉矩陣Rcw和平移向量t.在標定基礎上,對攝像機進行畸變矯正,據Brown[10]畸變矯正模型有:
ui=ax[xi+xi(k1r2+k2r4)+
vi=ay[yi+yi(k1r2+k2r4)+


為確定兩個攝像機坐標系之間的關系,假定已知世界坐標系中任意三維點P的坐標,且其在左右兩攝像機坐標系中的坐標分別為Pl=RlP+Tl和Pr=RrP+Tr,然后通過Pl=RT(Pr-T)將Pl和Pr關聯,可推導出R=Rr(Rl)T和T=Tr-RTl,其中R和T分別是所求兩個攝像機之間的旋轉矩陣和平移向量.
運動目標檢測方法主要有光流法、幀差法與背景差法等,本文采用背景差法中的混合高斯背景模型算法[12-13]對水下環境進行背景建模,實現對運動目標(魚)進行目標鎖定,并進一步抽取魚輪廓,計算出其形心作為該幀魚的二維坐標.設某時刻從左攝像機中提取的魚的二維形心坐標為Hl、右攝像機提取的二維形心坐標為Hr,后通過三角測量算法對Hl和Hr進行融合,可獲得該時刻目標魚的三維形心坐標,重復上述步驟,即可獲得魚的三維形心坐標序列,將該序列基于時序進行連接即為魚的三維空間游動軌跡.
三角測量[10]是根據相似三角形原理所建立的雙目成像數學模型,模擬人眼對物體深度信息進行感知,其原理如圖2所示.

圖2 立體成像模型
其中,點Q為世界坐標系中魚的三維形心(本文中的待求坐標),其在左、右攝像機的成像平面上的對應形心點分別為ql和qr,相應的橫坐標分別為xl和xr;f為攝像機焦距,Ol、Or分別為左、右攝像機的投影中心,L為Ol、Or之間的距離;視差為d=xl-xr,則有:
(3)
由式(3)可以獲得魚形心的深度信息Z,進而可計算X、Y兩個方向的信息,即可獲得Q點三維坐標,之后按時間基于視頻序列對雙目視場內游動的魚進行三維空間定位與軌跡跟蹤.
首先對兩個型號為JHSM500f的工業攝像機進行標定.標定過程及結果如圖3所示,所獲得的兩個攝像機參數見表1.

圖3 標定過程及結果

參數左攝像機右攝像機焦距/pixel(954,954)(954,954)主點/pixel(332,233)(333,230)畸變系數(-0.0338,-1.5914,0,0,0)(-0.1052,-0.3950,0,0,0)
旋轉矩陣、平移向量為(單位:mm):

(4)

為了對攝像機標定效果進行評價,定義誤差為:
(6)
其中,ε為誤差,N為實際值,N′為計算值.攝像機的焦距轉換公式如下:
(7)

擬利用兩個已標定的攝像機對魚缸里的魚進行拍攝、跟蹤,魚缸尺寸為450 mm×270 mm×300 mm,水深為260 mm.兩攝像機相距92 mm并使光軸平行放置,確保兩攝像機視場未超出魚缸邊界.魚缸背面和側面貼有透光膜紙以降低鏡面反射,用散射光進行打光使攝像機的視場亮度均勻.視頻采集無魚時左、右攝像機背景與預處理效果如圖4所示.

圖4 左、右攝像機背景圖
在圖4中,圖4(a)、(e)分別為左、右攝像機拍攝視頻圖像在無魚情況下的靜態背景原始圖;圖4(b)、(f)為混合高斯背景建模后的效果圖,圖中存在較多的干擾噪聲;圖4(c)、(g)為濾波去噪后的效果圖;圖4(d)、(h)為二值化圖.
為驗證本文方法的準確性,在正式對魚進行跟蹤之前,利用易于測量真實形心的物體做準確性驗證.需要說明的是,理論上試驗應該以魚作為目標進行驗證,然而,由于魚(無論真實的魚或者模型魚)的形態為非規則體,導致其所處位置的真實形心坐標難以通過工具準確測量.為提高可操作性并降低操作誤差,本文通過在魚缸中設置形狀規則的物體進行試驗,實際采用了一塊形狀規則、尺寸已知(35 mm×30 mm×25 mm)的金屬塊,在魚缸中10個不同位置擺放并利用本文方法進行計算,形心測量及計算的數據結果見表2,可以發現,在X、Y、Z方向上計算值相對于實際測量值最大不超過4 mm,且該誤差遠小于試塊各向尺寸的一半.以上說明了利用本文方法來測量形心坐標具有較高的精度(尤其相對于本文應用領域而言),但本文方法的優勢是能降低計算量以提高測量速度,盡量滿足實時性要求.

表2 實測值與計算值的校核 (單位:mm)
選取一條長為50 mm的金魚為目標魚進行視頻拍攝、跟蹤,左、右攝像機所拍攝的視頻(某幀)及處理效果如圖5所示.其中,圖5(a)、(e)分別為魚游動情況下左、右攝像機拍攝視頻中的某一幀原始圖像;圖5(b)、(f)為混合高斯背景建模后的效果圖,圖中存在干擾噪聲和魚缸底面對魚的反射背影;圖5(c)、(g)為濾波去噪后的結果;圖5(d)、(h)為圖像二值化圖結果.

圖5 左、右攝像機魚檢測及圖像處理效果
在獲取魚的二維輪廓并計算出左、右圖像中的形心點并進行一一匹配對應之后,再利用三角測量算法對魚進行形心定位與跟蹤,所計算的魚的三維形心坐標點見表3.

表3 魚的三維形心坐標 (單位:mm)
試驗所得魚的三維形心坐標點都是基于以左攝像機光心為原點的空間坐標系輸出的,并實時記錄、繪制成三維軌跡如圖6所示,該過程實際為魚從魚缸左側游進視場,后從左側游出,實現了魚游動軌跡的跟蹤.

圖6 魚游動三維軌跡
本文研究了一種基于雙目視覺的魚類運動三維軌跡跟蹤算法.該算法將運用于運動目標檢測的混合高斯背景模型與空間測量定位的三角測量算法相結合中,實時求解魚的三維形心坐標,并以此作為魚所處空間位置的度量,通過跟蹤魚的形心坐標序列來實現了魚的跟蹤,可為研究魚類游動行為提供參考.
[1] Pereira P, Rui F O. A Simple Method Using a Single Video Camera to Determine the Three-dimensional Position of a fish [J].Behavior Research Methods Instruments & Computers, 1994, 26(4):443-446.
[2] Noss C, Lorke A, Niehaus E. Three-dimensional Tracking of Multiple Aquatic Organisms with a Two Camera System [J].Limnology & Oceanography Methods, 2013, 11(3):139-150.
[3] Sun N, Rui N, He B, et al. Consistent Fish Tracking Via Multiple Underwater Cameras[C]. Oceans. IEEE, 2014:1-5.
[4] Laurel B J, Laurel C J, Brown J A, et al. A New Technique to Gather 3-D Spatial Information Using a Single Camera [J].Journal of Fish Biology, 2005, 66(2):429-441.
[5] 徐盼麟, 韓 軍, 童劍鋒. 基于單攝像機視頻的魚類三維自動跟蹤方法初探[J].水產學報, 2012, 36(4):623-628.
[6] Mao J F, Xiao G, Sheng W G, et al. A 3D Occlusion Tracking Model of the Underwater Fish Targets[C]. IEEE International Conference on Electro/information Technology. IEEE, 2015:82-86.
[7] 鄭貴林, 唐貝貝. 基于多魚眼攝像頭的立體視覺定位系統[J].計算機仿真, 2016, 33(7):256-260.
[8] 張春森. 雙目序列影像3維運動物體定位跟蹤[J].測繪學報, 2006, 35(4):347-352.
[9] 祝 琨, 楊唐文, 阮秋琦,等. 基于雙目視覺的運動物體實時跟蹤與測距[J].機器人, 2009, 31(4):327-334.
[10] GaryBradski, AdrianKaehler. 學習OpenCV:中文版[M].北京:清華大學出版社, 2009.
[11] Zhang Z. A Flexible New Technique for Camera Calibration [J].IEEE Transactions on Pattern Analysis & Machine Intelligence, 2000, 22(11):1330-1334.
[12] Kaewtrakulpong P, Bowden R. An Improved Adaptive Background Mixture Model for Real-time Tracking with Shadow Detection [J]. 2002(September):135-144.
[13] Zivkovic Z. Improved Adaptive Gaussian Mixture Model for Background Subtraction[C]. International Conference on Pattern Recognition. IEEE Computer Society, 2004:28-31.