基于双目视觉的鱼类游动三维轨迹跟踪

2018-03-23 05:30李林波陈从平石小涛
三峡大学学报(自然科学版) 2018年2期
关键词:双目游动鱼缸

李林波 陈从平 吴 喆 吴 杞 石小涛

(1.三峡大学 三峡库区生态环境教育部工程研究中心,湖北 宜昌 443002; 2. 三峡大学 机械与动力学院, 湖北 宜昌 443002)

鱼类游动轨迹是鱼类行为研究的主要内容之一,有助于了解鱼类游动行为和能力.视频跟踪技术是目前用于鱼类游动轨迹提取的主要技术手段之一,主要包括单目镜像、双目以及多目视觉技术[1-3].Laurel和Brown等人提出的单目结合阴影获取了鱼的稀疏三维信息[4],以及徐盼麟[5]和毛家发[6]分别提出的运用单目摄像机结合一块防水镜面模拟出虚拟摄像机或虚拟鱼,然后运用不同算法计算得到了鱼的三维坐标和游动轨迹,但由于单目镜像方法需要利用平面镜辅助成像,因而只适用于实验室环境.而多目视觉[7](三个及以上摄像机)需要利用多个摄像机从不同角度对鱼进行跟踪,理论上精度更高,但需建立鱼形状的三维几何约束,加上鱼游动时高频变形,计算量大,实时性差,误差较大.张春森[8]提出一种由双摄像机、云台、影像传输、系统控制等部分组成的双目视觉系统,实现了对水上环境中的刚性物体的定位跟踪,而祝琨等人[9]提出了一种双目机器人系统,可实现地面上的运动目标检测跟踪与三维测距.这两种视觉系统虽然实现地面环境下的运动物体空间定位与三维跟踪,但都没有运用于水下环境下鱼类等柔性物体的三维运动跟踪.

因此,本文提出一种采用双目视觉实现鱼类三维轨迹跟踪的方法,在对双摄像机进行标定的基础上,通过混合高斯背景建模(GMM)对鱼目标进行捕捉,然后分别提取鱼在两个摄像机中的形心坐标并将形心点进行匹配,利用三角测量方法[10]重建出三维轨迹点序列,从而完成运动物体的三维轨迹跟踪.试验结果表明,该算法计算量小,可用于实时的三维轨迹跟踪监测.

1 算法原理与实现

本文提出的基于双目视觉鱼类游动轨迹跟踪方法核心思想是通过两个摄像机同步拍摄同一目标鱼的游动视频图像来重建出其3D形心点,并以形心运动来表征鱼的三维轨迹.整个流程包括摄像机标定、鱼运动检测、两摄像机各自对鱼2D跟踪、3D形心融合等步骤,具体流程如图1所示.

图1 鱼类运动三维轨迹跟踪算法流程图

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分别是所求两个摄像机之间的旋转矩阵和平移向量.

1.2 运动目标检测与跟踪

运动目标检测方法主要有光流法、帧差法与背景差法等,本文采用背景差法中的混合高斯背景模型算法[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点三维坐标,之后按时间基于视频序列对双目视场内游动的鱼进行三维空间定位与轨迹跟踪.

2 试验与分析

2.1 标定结果

首先对两个型号为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)

2.2 精度校核

拟利用两个已标定的摄像机对鱼缸里的鱼进行拍摄、跟踪,鱼缸尺寸为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)

2.3 鱼的三维跟踪

选取一条长为50 mm的金鱼为目标鱼进行视频拍摄、跟踪,左、右摄像机所拍摄的视频(某帧)及处理效果如图5所示.其中,图5(a)、(e)分别为鱼游动情况下左、右摄像机拍摄视频中的某一帧原始图像;图5(b)、(f)为混合高斯背景建模后的效果图,图中存在干扰噪声和鱼缸底面对鱼的反射背影;图5(c)、(g)为滤波去噪后的结果;图5(d)、(h)为图像二值化图结果.

图5 左、右摄像机鱼检测及图像处理效果

在获取鱼的二维轮廓并计算出左、右图像中的形心点并进行一一匹配对应之后,再利用三角测量算法对鱼进行形心定位与跟踪,所计算的鱼的三维形心坐标点见表3.

表3 鱼的三维形心坐标 (单位:mm)

试验所得鱼的三维形心坐标点都是基于以左摄像机光心为原点的空间坐标系输出的,并实时记录、绘制成三维轨迹如图6所示,该过程实际为鱼从鱼缸左侧游进视场,后从左侧游出,实现了鱼游动轨迹的跟踪.

图6 鱼游动三维轨迹

3 结 论

本文研究了一种基于双目视觉的鱼类运动三维轨迹跟踪算法.该算法将运用于运动目标检测的混合高斯背景模型与空间测量定位的三角测量算法相结合中,实时求解鱼的三维形心坐标,并以此作为鱼所处空间位置的度量,通过跟踪鱼的形心坐标序列来实现了鱼的跟踪,可为研究鱼类游动行为提供参考.

[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.

猜你喜欢
双目游动鱼缸
球轴承用浪型保持架径向游动量的测量
鱼缸里的杀手
鱼缸水
把手放进袋子里
基于双目测距的卡尔曼滤波船舶轨迹跟踪
基于双目视觉的高耸类游乐设施晃动测试方法研究
家里的小鱼缸
冰立方鱼缸
基于双目视觉图像的长度测量方法
父亲