APP下载

基于计算机视觉的船模位置跟踪

2013-09-11陈增志白响恩吴善刚肖英杰陈亮

上海海事大学学报 2013年3期
关键词:船模水池矫正

陈增志,白响恩,吴善刚,肖英杰,陈亮

(上海海事大学商船学院,上海 201306)

0 引言

在水池实验室中可实现各种实验:如利用相似性原理研究船舶的相关性能,模拟船舶的操纵[1],用船模做自航、耐波实验等.实验需要对船模的运动状态进行跟踪,而状态跟踪的基础是船模位置的跟踪.随着科学技术的发展,计算机视觉技术[2]在图像的三维重建[3]、道路交通中的车辆跟踪[4-5]、机器人跟踪[6-8]、水上弱小目标检测[9]等领域已经被广泛应用.本文提出的将计算机视觉技术应用于船模位置跟踪的方法具有系统工作稳定性高,安装简单方便,跟踪精度高、效果较好等特点.利用跟踪得到的位置坐标计算出船模的航速和航迹向,可以实现这两个状态参数的跟踪.本文使用计算机视觉技术中的 CamShift[10-11]跟踪算法和图像逆透视投影矫正算法[12-13]实现船模位置的高精度实时自动跟踪.

1 船模位置跟踪技术总体流程

船模位置跟踪技术主要包括图像采集模块、逆透视投影矫正模块、CamShift算法跟踪船模模块、船模图像坐标到实际坐标的换算模块,其总体流程见图1.

图1 船模位置跟踪技术总体流程

2 图像逆透视投影矫正

在实际应用中,摄像头得到图像的过程需要经过透视投影,即需要将三维物理世界中的点投影变换到二维图像平面中,所以为了计算船模的位置必须先对已经透视畸变的视频图像进行逆透视投影矫正[13],使水池在视频图像中呈正视效果.本文用投影矩阵法对图像进行逆透视投影矫正,即将透视畸变图像的4个标定点坐标投影到正视图的4个标定点坐标,产生一种能保持连续性和连通性的光滑映射.已知一个二维图像经过透视变换成为另外一个平面图像的过程可以表示为

式中:H为3×3的映射矩阵.设q为任意尺度的比例系数,(u,v)是正视图图像的坐标,(x,y)是畸变图图像的坐标,将式(1)写成

由式(2)可得

消去式(3)中的q可得

H有9个自由度即9个参数,而h33与其他8个未知数存在线性相关性,此时透视变换只需8个有效自由度就能计算出畸变图到正视图的映射关系矩阵,因此可指定式(4)中的h33=1.这样,已知畸变图与正视图上对应的4对标定点就可以准确地求解H.当标定点多于4对时可以采用最小二乘法求出上述方程的解,以降低标定误差对结果产生的影响.

在得出H后,只需将H乘以摄像头获取的原始透视畸变图的每个像素,经一一映射后便可获得经逆透视投影矫正后的图像.

3 CamShift算法跟踪船模

CamShift算法是以颜色直方图产生目标概率分布并在统计意义上以鲁棒的动态概率分布模式跟踪目标的算法,可以有效解决目标变形及遮挡问题,且运算效率较高.在运用CamShift算法跟踪目标之前需先将视频图像从RGB颜色空间转换到HSV颜色空间,以减少光照亮度的变化对跟踪效果产生的影响.[9]CamShift的算法流程见图 2.

图2 CamShift跟踪算法流程

在使用CamShift算法实时跟踪船模目标时,首先要选择初始化窗口,使窗口能够有效包含船模表面的颜色标签;然后采样窗口中每个像素在H(色调)通道上的值,通过计算得到船模颜色标签的色调直方图,并将其保存下来.在跟踪过程中,对视频图像计算处理区域的每一个像素,通过查询船模标签颜色的直方图模型,可以得知该像素是船模颜色标签的概率,将计算处理区域之外其他区域的颜色概率全设为0.这样,视频图像就转换为船模的颜色概率分布图,即船模颜色标签的反向投影图.此后,将反射投影图转化为8位的灰度投影图.设概率为1的像素值为255,概率为0的像素值为0,其余概率的像素也转换为相应的灰度值.所以,灰度投影图中越亮的像素为船模颜色标签像素的可能性就越大.当搜索窗口缩小到一定值时说明船模已经跟丢,此时程序可将窗口自动扩大到适当的值,开始新的跟踪,这种方法可以有效防止船模意外跟丢.图3为原始跟踪图与对应的灰度投影图,两张图中椭圆所包围的区域为被跟踪的船模颜色标签.

图3 原始跟踪图及其对应的灰度投影图

得到图像的灰度投影图后便可进一步确定船模颜色标签的重心.设点(x,y)为搜索窗口中某像素的坐标,I(x,y)为投影图中点(x,y)处的像素值,则船模跟踪过程中搜索窗口内像素分布的重心计算公式为

式(5)中零阶矩的计算式为

一阶矩的计算式为

确定M00及重心坐标后,便可根据M00调整搜索窗口的大小,同时将搜索窗口的中心移动到计算出的重心处.如果移动距离大于预设的固定阈值,就会重新计算调整后的窗口中心,开始新一轮的窗口位置及尺寸的调整,直至窗口中心与重心间的移动距离小于预设的阈值,或者循环的次数达到某一最大值时才认为满足收敛条件,进入下一帧图像进行新的船模目标的搜索.而在新的图像帧中,可利用上一帧图像中最终得到的重心位置和零阶矩M00,设置其新的搜索窗口的位置和尺寸.CamShift跟踪算法在图像帧内与帧间都是根据上一步得到的M00及重心自适应地调整搜索窗口的大小及位置,其在船模转向或者由远及近的运动等产生动态变形的情况下仍能够取得良好的跟踪效果.

4 实例

4.1 实验步骤

实验中使用分辨率为640×480的高清摄像头Logitech C310,并在 VC++6.0编程环境下加载OpenCV开源库编写软件,实现相关算法及技术.利用实验室现有的水池模型和遥控船舶模型搭建相关实验平台,测试相关数据,并分析所得数据的误差.

步骤1 准备好水池和摄像头,在水池底部画一个黑色矩形框并装上水,测得矩形框的实际大小为91 cm×186 cm,同时在矩形框内的几个特定位置上方放置一个硬币作为船模的参考点,并将摄像头以一个合理的高度和视角安装好,使得水池在图像中占的面积尽可能大,并使黑色矩形的底边尽可能与图像的底边平行,以减小误差.

步骤2 制作一张紫色的颜色标签,将其贴于船模表面,同时做一小圆柱桶,其高度与船模浮在水面时颜色标签相对池底的高度一致,同样也在圆柱桶上方贴一紫色标签,见图4.

图4 船模颜色标签及圆柱桶标定标签

步骤3 利用步骤2中制作好的圆柱桶标签经人工标定法获得与船模颜色标签处于同一水平面的黑色矩形框4个角点的图像像素坐标A(186,445),B(468,445),C(400,103),D(209,106),各点的位置见图5(a).C,D点的y坐标存在的微小差别是由摄像机的视角及测量误差造成的,其对最终跟踪结果的影响在精度允许范围内.设正视图中与这4个点对应的 4个矩形角点坐标为 A'(186,445),B'(468,445),C'(468,105),D'(186,105).利用这4对点坐标求得逆透视投影变换矩阵

步骤4 通过步骤3求得的逆透视投影变换矩阵H对获得的视频图像进行逆透视投影矫正,矫正前的畸变图与矫正后的正视图见图5.

图5 视频图像矫正前后的对比

步骤5 在获得正视图的实时视频图像后,在程序中将图像坐标的原点从其左上角设置到左下角.然后再将圆柱桶标签放在黑色边框的4个角点处获得其在此时的正视图中的坐标值A″(186,35),B″(468,35),C″(468,369),D″(186,373).经过逆透视矫正,船模颜色标签所在的水平面成像到视频图像,正视图中像素的距离与实际的水平面空间距离成正比,所以当以A″点为原点、(xP,yP)为船模颜色标签的重心坐标时,船模在水池中的实际坐标为

式中:371为C″和D″点y坐标的平均值.这样,只要利用CamShift算法实时跟踪船模颜色标签在图像中的重心P的坐标,即可由式(9)实时计算出船模在水池中的实际精确坐标位置,实现船模位置的跟踪.同时,只要以固定的帧率采集视频图像,就能够由跟踪得到的实时船模位置实时计算出船模航速和航迹向参数.

4.2 实验结果与讨论

图6 各硬币测试点的放置位置

如图6所示:将15个硬币放在水池中15个确定的位置 E,F,G,H,I,J,K,L,M,N,O,P,Q,R,T 处作为测试点,将船模固定放置在测试点上方,利用第4.1节的实验方法求得船模在这些点处的跟踪坐标值,其真实值与跟踪值数据见表1.

船模位置坐标在这些测试点处的真实值与跟踪值对比见图7.跟踪结果在x轴方向上的坐标误差见图8,在y轴方向上的坐标误差见图9.

从以上各实验结果可以看出,虽然只用4个点求取逆透视投影变换矩阵,但已经得到相对理想的效果.跟踪误差基本都控制在3 cm以内,相对于本身尺寸达到7.5 cm宽度的船模而言其精度非常高.实验结果可以满足水池实验室环境对船模位置跟踪的精度要求.

表1 各硬币测试点处的真实值与跟踪值 cm

造成实验中船模位置跟踪误差的原因很多:首先,船模放置过程中放置点的确切坐标位置本身有偏差,这种偏差会对跟踪结果产生一定的影响;其次,4个人工标定点提取的精确性会直接影响到逆透视矩阵的计算准确性,进而影响到图像中船模质心像素坐标的计算准确性;再次,船模航向角的不同以及船模离摄像头的远近不同会造成计算出的船模颜色标签重心有所差异;最后,摄像头的透镜畸变也会对位置计算造成微小误差.但是,使用本实验平台在水池环境下跟踪船模的位置所产生的误差基本都在可接受的范围之内.

图7 测试点真实值与跟踪结果值对比

图8 跟踪结果在x轴方向上的误差

5 结束语

通过建立实验平台,运用图像逆透视投影矫正结合CamShift跟踪算法实现船模位置的高精度实时自动跟踪,并对实验结果与误差进行分析讨论,利用获得的位置坐标可以求得船模的航速和航迹向这两个状态参数.本文的技术可为水池实验室的建设奠定技术基础.后续工作将在本文的基础上重点研究如何实时跟踪船模的航向状态.

[1]金长奎.船舶操纵模拟方法及模拟器精度分析[J].上海海运学院学报,1988,10(3):87-96.

[2]侯志强,韩崇昭.视觉跟踪技术综述[J].自动化学报,2006,32(4):603-617.

[3]杨忠根,张葆成.单视图线性三维重建的6点算法[J].上海海事大学学报,2006,27(2):42-45.

[4]童剑军,邹明福.基于监控视频图像的车辆测速[J].中国图像图形学报,2005,10(2):192-196.

[5]蒋刚毅,郁梅,叶锡恩,等.一种基于视觉的车辆跟踪及交通流量参数估计新方法[J].电路与系统学报,2001,6(4):69-73.

[6]欧宗瑛,张艳珍,袁野.基于颜色信息足球机器人视觉跟踪算法[J].大连理工大学学报,2000,19(6):729-732.

[7]杜欣,赵晓光.基于彩色图像的机器人视觉跟踪[J].武汉大学学报:信息科学版,2006,31(2):136-139.

[8]MIRO J V,ZHOU Weizhen,DISSANAYAKE G.Towards vision based navigation in large indoor environments[C]//Environ Int Conf Intelligent Robots & Systems,2006:2096-2102.

[9]冉鑫,任蕾.基于可见光视频图像处理的水上弱小目标检测方法[J].上海海事大学学报,2010,31(2):11-16.

[10]BRADSKI G R.Real time face and object tracking as a component of a perceptual user interface[C]//Proc Fourth IEEE Workshop on Applications Comput Vision.Princeton,NJ:1998:214-219.

[11]张宏志,张金换,岳卉,等.基于CamShift的目标跟踪算法[J].计算机工程与设计,2006,27(11):2012-2014.

[12]石睿,李华.一种基于透视投影的纹理校正方法[J].计算机应用,2001,21(4):30-32.

[13]LU Shijian,CHEN Ben M,KO C C.Perspective rectification of document images using fuzzy set and morphological operations[J].Image & Vision Computing,2005,23(5):541-553.

[14]万卫兵,霍宏,赵宇明.智能视频监控中目标检测与识别[M].上海:上海交通大学出版社,2010:204-209.

[15]于仕琪,刘瑞祯.学习OpenCV[M].北京:清华大学出版社,2009:371-379.

猜你喜欢

船模水池矫正
基于模糊PID的船模航向控制研究
小区的水池
“体态矫正”到底是什么?
把住医保基金水池闸门
找水池
矫正牙齿,不只是为了美
船模静水横摇试验的不确定度分析
矫正牙齿,现在开始也不迟
改良横切法内眦赘皮矫正联合重睑术
基于VDMS系统的通航船模操纵性率定研究