基于HSV分割与Meanshift的多目视觉系统设计

2018-08-01 03:48曹昭睿刘凤丽
沈阳理工大学学报 2018年3期
关键词:测距标定均值

曹昭睿,刘凤丽,2

(1.沈阳理工大学 机械工程学院 沈阳 110159; 2.辽宁省先进制造与装备重点实验室,沈阳 110159)

随着图像处理技术的不断发展和机器人技术应用的日益拓广,机器人视觉成为了国内外研究的焦点。在人工智能机器人的应用中,经常需要机器人去自主识别和测量物体。现阶段常用的识别方法有SIFT特征检测法、SURF特征点检测法、轮廓检测法等。但这些方法的精确度往往会在目标物被部分遮挡以及目标物分标率不高时受到影响,同时计算量较大。以往的目标识别跟踪算法需要人工划分目标框以确定目标物初始位置,这样会产生因人工手动划分区域时带来的误差,导致跟踪框精准度下降。

本文在双目视觉基础上设计了一种多目视觉物体探测系统,该系统基于C++/OpenCV2语言环境,利用物体颜色HSV值的特征,结合均值漂移(Meanshift)算法,实现对目标物体的自动识别捕获与测距的功能。该算法相比以往识别跟踪算法,计算速度更快,对目标物分辨率与轮廓完整程度要求小,测距精确度较高,且不需人工划分兴趣区域,并能够针对多个目标物进行同时锁定跟踪;同时提出了一种仿生复眼多相机测距系统的排列方式。该系统根据目标物的颜色特征进行HSV分割,使目标物与背景分离,之后通过HSV分割后的图像质心模拟实物的表面中心计算距离,再利用均值漂移算法锁定目标物体,实现对移动目标物体的实时锁定跟踪与测距,具有实际应用性,可以应用到自动行驶机器人或飞行器的控制与导航装置。同时本系统在拥有目标物图像模板时也可以结合Harris角点检测、SURF特征点检测等方法进行目标物识别,具有兼容性。

1 实验原理

1.1 HSV的目标分割

当目标物体自身颜色与其所在背景的颜色有较大差异或相对比较独特时,可以利用目标物体自身的HSV值(色调H、饱和度S和亮度V)将其从背景中分割出来。在本系统中,首先需要输入目标物的HSV值,然后系统逐帧寻找符合该条件的区域,一旦出现一个或多个区域,将进入人工点选环节,选择后将该区域设定为HSV目标区域并将目标物从HSV目标区域中分割。HSV图像分割具体流程如下。

(1)确定目标物HSV初始值。假设通过待测物模板可知其为m×n像素的物体,则通过均值统计可得待测物HSV初始值为C0={H0,S0,V0}[1],其中H0、S0、V0为:

(1)

(2)

(3)

式中hij、sij、vij为图像中沿i、j方向上各点的HSV值。

(2)计算下一帧图片每一个像素点的HSV值与输入HSV值的相似程度。若存在两个不同HSV值时,其相应的HSV值分别为C1、C2,则两个颜色的相似度为S(C1,C2)[2]:

(4)

式中D(C1,C2)为在HSV颜色空间模型里两颜色在空间中的距离。当相似度S(C1,C2)为1时,表示这两种颜色完全相同,若为0时,表示这两种颜色的相似度最低。设定一个相似度阈值为0.7,当两种颜色的相似度高于0.7时,则认为这两种颜色有关,将待测图片中的像素点颜色灰度值赋予255;若低于0.7,则认为两种颜色无关,将该像素点的灰度值赋予0[3]。

(3)待测图像做初步分割后,将所有大于相似度阈值的像素点的HSV值做均值统计,得到新的HSV值Cn={Hn,Sn,Vn},再将新的HSV值作为二次分割的检测值,将相似度阈值设定为0.9[4],重复步骤(2)以去除周围相似干扰色的影响。之后对二次分割后的图像做高斯滤波以及形态学先闭后开运算,消除分割后图像的外部突出和内部空洞[5]。

(4)对该分割图形轮廓做最小外接圆提取,将提取出的圆心坐标作为均值漂移算法目标区域的中心坐标。

1.2 基于均值漂移算法锁定目标

均值漂移(Meanshift)法是一种基于梯度的无参密度估计算法,概率密度分布的最大值在梯度概率分布上升方向[6]。本系统利用该方法实现目标物查找、锁定并跟踪的过程中,需要经过以下四个步骤:

(1)目标物模型的表示

根据HSV分割后提取出的中心坐标作为均值漂移算法兴趣区域的中心,兴趣区域面积需大于HSV分割图形轮廓最小外接圆面积的二倍,以确保物体其他颜色部分能够被包含在内[7]。将兴趣区域内像素的特征通过特征直方图的形式表征出来,该直方图以概率密度qu的形式表现,具体表达式如下:

(5)

(6)

将全部图像中可能包含目标物的区域标记为候选目标区域,定义该区域中心为y,从该中心开始计算候选目标模型。候选区域内的目标模型像素用xi表示,则该区域内目标物特征概率密度pu表达式为:

(7)

式中:h为初始帧框定区域的大小;y为候选目标区域中心位置;Ch为标准化常量系数,Ch表达式如下式所示[8]:

(8)

(2)目标物模型的匹配

利用巴氏系数(Bhattacharyya)判别目标物所在区域与参考区域的特征相似程度[9],巴氏系数ρ计算公式如下:

(9)

式中的目标模型和候选目标模型,都是经过归一化处理的n维向量。巴氏系数越大,说明目标与候选目标越相似。结合巴氏系数与均值向量即可得到目标在下一帧图像中的可能位置。

(3)确定目标位置

通过迭代过程不断比较目标模型与候选模型之间的巴氏系数,以确定搜索的方向,从而得到目标物体的移动轨迹与现阶段位置。将所得到的巴氏系数在第n-1帧目标位置中心邻域附近做泰勒展开,省略高阶项后以确定[p,q]的一阶线性近似,其表达式为:

(10)

将候选目标带入式(10)后得:

(11)

式中wi为权重系数,其表达式如下:

(12)

(13)

式中g(x)=-k(x)。

1.3 目标距离测定

基于双目视差测距法,设计了一种多目视差测距系统。当参与目标物观测的相机大于两个时,可根据双目视差法进行扩展,根据此方法扩展的系统能够以在原有系统上增大测距精确度,同时扩大视场范围。假设一个多目视差系统中存在n个阵列排布的相机,首先设立一个主相机,最终所测的目标物距离则以所选主相机为基准,将该相机所在坐标系与世界坐标系联立,使主相机坐标系与目标物坐标系对应;其他相机作为参考相机,可以分别与主相机视为双目测距系统组。将参考相机依次与主相机做相机标定处理,得出n-1组标定矩阵,其中需保持主相机内矩阵不变。在得到所有相机的内外矩阵之后,依次将参考相机与主相机做视差算法,求得目标距主相机距离。本系统的目标测距有以下几个环节组成。

(1)确定主相机与参考相机

当多相机参加拍摄时,相机的阵列方式与测距方式因相机个数不同而有所改变,假设相机个数为n,则具体阵列与测距方式如下:

当n为偶数时,将相机按照对称方式进行阵列,即任意一个位于相机平面空间(±x,+y)坐标位置的相机均有一个与之对应的相机,该对应相机坐标满足(±x,-y)。假设相机个数为四个,则应按照如图1所示进行阵列。

图1 四相机阵列方式

设位于图1中右上角相机为0号相机,坐标为(x,y);左上角相机为1号相机,坐标为(-x,y);右下角相机为2号相机,坐标为(x,-y);左下角相机为3号相机,坐标为(-x,-y)。偶数相机组在设立主相机与参考相机时需要循环设立,首先设立0号相机为主相机,将其余相机设立为参考相机,将主相机分别与参考相机组合形成双目相机组后进行相机标定与目标物测距。完成0号相机为主相机的计算后,再将1号相机设立为主相机,将其余相机设立为参考相机并进行标定与测距。重复上述步骤至全部相机均作为主相机进行标定与测距。

当n为奇数时,将相机按照辐射方式进行阵列,即将一个相机设立为主相机,标号为0号,并将其置于相机平面中心位置,坐标为(0,0);其余相机均为参考相机,围绕主相机呈同心圆状辐射摆放,具体摆放位置根据实际空间大小确定,需满足任意一个参考相机均有一个对应相机与其关于主相机对称。假设相机个数为五个,则应按照如图2所示进行阵列。

图2 五相机阵列方式

(2)相机标定

若需要确立相机与待测物体之间的距离,首先需要确定相机的内外矩阵。其中相机的内矩阵包含了焦距、主点、倾斜系数和畸变系数四个参数,该四个参数完全由相机自身结构决定,不受摆放位置、角度等环境影响。内矩阵M形式如下[11]:

(14)

式中:f为x、y方向上透镜物理焦长与CCD每个单元尺寸的乘积;x0、y0为相机芯片中心相对于光轴在x、y方向上的偏移距离。

相机外矩阵包含了旋转矩阵R和平移矩阵T。旋转矩阵代表了世界坐标系的坐标轴相对于摄像机坐标轴的方向;平移矩阵代表了在摄像机坐标系下空间原点的位置,两个矩阵共同描述了如何把点从世界坐标系转换到摄像机坐标系。外矩阵公式如下[12]:

(15)

式中ψ为相机光轴在x方向上的偏转角度。

(16)

式中φ为相机光轴在y方向上的偏转角度。

(17)

式中θ为相机光轴在z方向上的偏转角度。

R=Rx(ψ)*Ry(φ)*Rz(θ)

(18)

(19)

式中t矩阵为相机在x、y、z三个方向上的偏移分量矩阵。

本系统基于张正友棋盘标定法,利用Matlab2015进行相机标定。对于n个奇数相机,需要将所有参考相机分别与主相机进行标定,共标定n-1组矩阵;对于偶数个相机,为确保精准性,则需分别将所有相机设立为主相机并进行互相标定,共标定n×(n-1)组矩阵。在不需要较高的精确度时,偶数个相机也可只设立一个主相机,以减小计算量,此时共标定n-1组矩阵。

(3)目标测距

将相机分组后,据双目测距系统进行分组测距。已知像平面坐标系中的目标物坐标[XYZ1]T,主相机与参考相机的像点分别满足如下关系[13]:

(20)

式中[u1v11]T为目标物坐标在主相机像平面上的成像坐标;Mleft为主相机内矩阵;[u2v21]T为目标物坐标在参考相机像平面上的成像坐标;Mright为参考相机内矩阵。

其中M矩阵为内外参矩阵相乘得到的。将M矩阵展开为mij阵,可以得到:

(21)

(22)

联立式(21)、(22),可以得到:

(23)

根据以上关系,可以采用最小二乘法求解出空间坐标。此时便可得到根据该参考相机与主相机所求的目标物距离,该距离为物体与主相机之间的水平距离。重复以上步骤,将余下所有参考相机分别于主相机组合,求出n-1组关于主相机的距离。将所得数据求均值处理,最终得到所求目标物距离。

对于n个奇数相机,测距结果共有n-1个,则最终结果为:

(24)

式中,L奇为奇数相机与最终目标物距离;li为i号参考相机与主相机组合后的目标物计算距离。

对于n个偶数相机,测距结果共有n(n-1)个,则最终结果为:

(25)

式中,L偶为偶数相机与最终目标物距离;lij为i、j号相机组合后的目标物计算距离。

2 实验结果

本系统共由目标物识别、目标区域跟踪、目标距离测量与目标位置刷新四个环节组成,系统处理流程图如图3所示。

实验仪器采用四摄像机偶数阵列,相机型号为CAM5031-V3,分辨率为640×480,帧率30FPS,相邻相机纵向间隔45mm,横向间隔30mm。目标物颜色呈红色,拍摄面积为23mm×20mm,输入H值范围为170~190、S值范围为153~230、V值范围为77~127,为保证成像分辨率,物体在距离相机30cm范围内无规则运动。实验系统的编写环境为Visul Studio 2012,补充函数库为OpenCV 2.4.13,相机标定软件为Matlab2015 B,标定方法为张正友棋盘标定法,系统运行过程如图4所示。

图3 系统流程图

图4 系统运行过程

图4中左侧四窗口为四相机探测视频,实线正方形目标框为被捕获的目标区域,若未被人工点选则为虚线正方形目标框,未出现可识别目标物测不出现目标框。右侧为目标物实时距离反馈窗口。试验中共录制了时长为10s的测试视频,共300帧,选取第60帧至第70帧作为参考,其每帧实际距离与测量结果对比如表1所示。

表1 第60帧至第70帧结果

从实验结果上看,系统所测量的目标物距离较为稳定,准确性较高,观测范围较大,偏差值均小于5%,表明该系统能够完成目标物的识别、测距与跟踪功能。其中目标物识别面积越大、移动速度越慢,测量距离越准确;目标物识别面积越小、移动速度越快,系统所提取的信息越少,偏差越大。

3 结束语

设计了一种利用目标物HSV特征分割目标,利用均值漂移算法锁定目标,并基于双目视觉拓展的多目视觉法测量目标的自动识别跟踪系统。能够自主对具有特殊颜色特征的目标物实行实时识别跟踪与测距。实验结果表明,该方法稳定性好,精准度较高,观测范围大,具有实际应用能力。

猜你喜欢
测距标定均值
使用朗仁H6 Pro标定北汽绅宝转向角传感器
类星体的精准测距
均值—方差分析及CAPM模型的运用
均值—方差分析及CAPM模型的运用
CT系统参数标定及成像—2
CT系统参数标定及成像—2
基于匀速率26位置法的iIMU-FSAS光纤陀螺仪标定
浅谈超声波测距
基于MATLAB 的CT 系统参数标定及成像研究
关于均值有界变差函数的重要不等式