基于水下双目视觉测量的捕鱼网目尺寸设计方法与流程

文档序号:16269075发布日期:2018-12-14 22:07阅读:328来源:国知局
基于水下双目视觉测量的捕鱼网目尺寸设计方法与流程

本发明属计算机视觉、图形处理技术领域,具体涉及一种用于水下捕鱼器具上的基于双目视觉测量的捕鱼网目尺寸设计方法。

背景技术

过滤性渔具是目前渔业中最常用的渔具,其网目尺寸的大小对于水下渔业管理、监测和资源的有效利用等至关重要。如何在满足渔业生态资源可持续性的前提下,在水下捕获过程中根据鱼体积大小选择合适的网目尺寸已经成为渔业中一个重要的市场需求。通常情况下可利用激光雷达对鱼体积进行测量,然而这类设备较昂贵,实际可行性非常低。随着人工智能与计算机视觉领域的不断发展,根据水下渔具上微型双摄像头捕获的画面利用双目立体视觉测量判断鱼的三维坐标信息,从而判断鱼体的大小是一种非常可靠且可行的方法。

双目立体视觉测量是通过模拟人类视觉原理,获得不同点拍摄的图像中隐含的目标物体的位置信息。具体而言,就是从两个或者两个以上点拍摄同一个物体,得到不同视角下的图像,然后分别对不同视角下的图像进行特征点提取,再进行图像的立体匹配,最后利用三角测量原理计算像素之间的偏移来得到物体的三维信息。其中,特征点提取的目的是为了能够更加准确地进行图像立体匹配,因此,根据实际情况的需要选择合适的检测特征尤为关键。常用的双目视觉测量方法有两种,一是基于sift(scaleinvariantfeaturetransform)特征点提取的双目视觉测量方法,如文献“he,l,yangj,kongb.anautomaticmeasurementmethodforabsolutedepthofobjectsintwomonocularimagesbasedonsiftfeature.appliedsciences.7(6)517,2017.”介绍了一种基于sift(尺度不变特征变化)的方法,该方法可以估计由摄像机拍摄的两幅图像中的深度。还有一种是基于orb(orientedfastandrotatedbrief)特征点提取的双目视觉测量方法,也是目前双目视觉测量中最常用的一种特征检测方法,应用在多个领域,比如目标定位、目标跟踪等。文献“ruxin,gao,andzhuxuanfu.basedontheorbalgorithmofbinocularvisionpositioning.electronicmeasurementtechnology.4(32),2017”采用orb方法加入旋转矩阵对特征点进行提取与匹配,最终实现对目标的定位。文献“yu,zhanhai,k.wang,andr.li.theinter-framefeaturematchingandtrackingofbinocularvisionbasedontheorb-pyrlkalgorithm.chinesecontrolconference.2017:pp.6922-6927.”中利用orb方法对视频帧间的特征进行提取,从而实现目标的跟踪。但是传统的orb特征检测方法获得的特征点没有尺度不变信息,利用orb方法进行特征描述时,虽然可利用特征点方向获得旋转不变性,但无法具备尺度不变性。



技术实现要素:

为了克服现有技术的不足,本发明提供了一种基于水下双目视觉测量的捕鱼网目尺寸设计方法,以满足根据鱼的大小决定网目尺寸大小的市场需求。主要解决了现有双目视觉测量方法对于尺度变化和旋转不鲁棒的问题。首先,进行摄像机标定,计算左右两个摄像机的内部参数以及外部参数;然后,进行特征点检测、描述和匹配,得到左右摄像机拍摄图像中相匹配的特征点;最后,依据双目视觉测量原理计算得到特征点在主摄像机坐标系中的坐标,并以空间坐标为基础,利用三角形原理计算得到鱼的大小,从而得到网目大小。

一种基于水下双目视觉测量的捕鱼网目尺寸设计方法,其特征在于包括以下步骤:

步骤1:利用张正友标定方法对摄像机进行标定,得到摄像机的内参矩阵m和左右两个摄像机物理坐标系之间的旋转矩阵r和平移矢量t;

步骤2:分别对左、右摄像机拍摄的图像进行特征点检测、描述和匹配,得到特征点在主摄像机坐标系下的坐标,具体为:

步骤2.1:构建尺度空间:首先,对摄像机拍摄的原始图像进行3次降采样,降采样频率为2,得到3幅降采样后的图像;然后,按照分别对原始图像和降采样图像进行尺度空间变换,变换后的所有图像共同构成高斯金字塔尺度空间,其中,σ为尺度参数,σj=kσ0,j=1,2,3,i表示变换前的图像,l表示变换后的图像,(x,y)表示图像中的像素坐标;

步骤2.2:特征点检测和描述:首先,采用ofast方法分别提取得到高斯金字塔尺度空间中每一幅图像的角点;然后,按照计算得到每一个角点的旋转矩阵rθ,其中,ai表示以角点为圆心、r为半径的圆形区域,r的取值范围为[3,9];再按照sθ=rθs计算得到位置矩阵sθ,其中,为点集矩阵,(xi,yi)为利用brief算法在以角点为中心的n×n邻域内选取的第i个点的坐标,i=1,…,nd,nd取为128的正整数倍,n的取值范围为[32,64];最后,以sθ中每一列为一个点的坐标,将这些坐标处的点的像素值与对应角点的像素值进行比较,按照brief特征描述规则形成二进制串的描述符,每一个角点得到一个长度为nd的二进制串描述符;

步骤2.3:特征点匹配:利用hamming距离对左、右摄像机图像中的角点进行匹配,得到左、右摄像机拍摄图像中相匹配的角点。

步骤3:首先,按照下式计算得到左、右摄像机拍摄图像中相匹配的角点在主摄像机坐标系中的空间位置坐标:

其中,(x,y,z)是角点在主摄像机坐标系下的位置坐标,(x1,y1)是左摄像机拍摄图像中的角点坐标,(x2,y2)是对应匹配的右摄像机拍摄图像中的角点坐标,f1、f2别是左、右摄像机的焦距,r1、r2、…、r9分别为步骤1得到的旋转矩阵r中的元素,tx、ty、tz分别为步骤1得到的平移矢量t中的元素,

然后,利用canny算法对主摄像机拍摄的图像进行检测,得到鱼的轮廓,并用最小四边形框住该轮廓,再用距离四边形四个顶点最近的角点代替四边形的顶点,得到新的四边形,根据新四边形四个顶点的空间位置坐标,分别计算得到四边形的各个边长,再根据三角形原理,计算得到四边形的面积,即鱼的大小,鱼的大小的80%~90%即为网目大小。

本发明的有益效果是:由于在特征点检测前构建了高斯金字塔尺度空间,使得提取到的特征能够应对尺度变化所带来的干扰,从而使对鱼的大小估算更加准确由于采用角点作为特征点,简单易操作,同时具备平移、旋转方面的鲁棒性,使整体方案更具有实用性,满足了在捕鱼过程中使用合适的网目尺寸的实际市场需求。另外,本发明方法除了可以对水下拍摄图像进行处理,还可以扩展到其他双目视觉测量的应用上。

附图说明

图1是本发明的基于水下双目视觉测量的捕鱼网目尺寸设计方法流程图

图2是本发明中特征点检测、描述和匹配方法流程图

图3是本发明中构建高斯金字塔方法示意图

具体实施方式

下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。

如图1所示,本发明提供了一种基于水下双目视觉测量的捕鱼网目尺寸设计方法,其基本实现过程如下:

1、摄像机标定

利用张正友标定原理计算得到摄像机内参矩阵m,以及表示左右摄像机空间位置关系的外部参数,即旋转矩阵r和平移矢量t,分别表示为:

其中,αx=f/dx、αy=f/dy,1/dx、1/dy分别表示的是在x方向和y方向上一个像素代表的实际物理值的大小,是实现摄像机物理坐标系与像素坐标系坐标转换的关键。f是摄像机焦距,γ是不垂直因子,表示了由于摄像机制作加工因素导致的x轴和y轴不能完全垂直,(u0,v0)为摄像机物理坐标原点在像素坐标系下的坐标。r1、r2、…、r9分别为旋转矩阵r中的元素,tx、ty、tz分别为平移矢量t中的元素。

2、特征点的检测、描述和匹配

由于左、右摄像机角度和位置的不同,拍摄的图像中,即使是鱼的同一个位置,比如眼睛,在两个图像中也处于不同的点,这近需要对左、右摄像机拍摄的图像进行匹配,找到两幅图像中拍到的相同点,比如鱼眼那一点,因此,本发明首先对左、右摄像机拍摄的图像分别进行特征点的检测、描述,然后再进行匹配,如图2所示。

(1)构建尺度空间

为了使得检测到的特征能够应对尺度变化所带来的干扰,在对图像进行特征点检测之前首先构建图像的高斯金字塔尺度空间。设i(x,y)为左(右)摄像机拍摄到的原始图像,(x,y)表示图像中的像素坐标,g(x,y,σ)为尺度空间可变的高斯函数,其定义为:

其中,σ为尺度参数,σ越大,则表示图像越模糊。

图像i(x,y)的尺度空间变换表示为:

l(x,y,σ)=g(x,y,σ)*i(x,y)(6)

其中,l(x,y,σ)表示经过高斯尺度变化后的图像,*表示卷积运算。

为得到金字塔尺度空间,首先,对原始图像进行3次降采样,降采样频率为2,得到3幅降采样后的图像,加上原始图像,一共4幅尺寸逐渐减小的图像。然后,设置尺度参数为σj=kσ0,其中,j=1,2,3,代入公式(5),再按照公式(6)分别对每一幅图像进行3次尺度空间变换,得到12幅图像,共同构成高斯金字塔尺度空间,如图3所示。

(2)特征点检测和描述

由于角点特征在抵抗图像尺度变化、平移以及旋转方面具有更好的鲁棒性,本发明选用角点作为特征点。经过上一步骤得到左右摄像机拍摄图像的高斯金字塔尺度空间后,下面分别对两个尺度空间中的图像进行角点检测和描述。

首先,采用ofast(orientedfast)方法(“e.rublee,v.rabaud,k.konolige,g.bradski,orb:anefficientalternativetosiftorsurf.ieeeinternationalconferenceoncomputervision.,2012:2564-2571.”)提取高斯金字塔尺度空间中每一幅图像的角点,得到n个角点的集合p={(x1,y1),(x2,y2),...,(xn,yn)},其中,(xi,yi)(i=1,2,...,n)表示第i个角点的坐标。

然后,利用灰度质心法确定每一个角点的方向。具体为:

利用距计算以角点为圆心、r为半径的圆形区域ai的灰度质心,一般r的取值范围为[3,9],这里设置r=5。距mpq的定义为:

其中,i(x,y)表示点(x,y)处的图像像素值,p,q∈{0,1},令p=0、q=1,即m01,为图像区域ai在y轴方向的灰度质心,同理,令p=1、q=0,即m10,为图像区域ai在x轴方向的灰度质心,令p=0、q=0,即m00,为图像区域ai中所有像素灰度值的和。

类似于物体质心,图像区域ai的灰度质心c定义为:

假设角点坐标为o,则向量的角度即为该角点的方向,方向角θ的计算公式如下:

按照公式(7)和公式(9)即可计算得到所有角点的方向角。

根据角点的方向角,可按下式计算得到相应的旋转矩阵rθ:

接着,利用brief(binaryrobustindependentelementaryfeatures)算法(“m.calonder,v.lepetit,c.strecha,p.fual,brief:binaryrobustindependentelementaryfeatures,europeanconferenceoncomputervision,2010:778-792.”)分别在以每个角点为中心的n×n邻域内选取nd对点集,选取点集时按照方差的高斯分布进行选取,这种情况下brief算法的性能最好,根据不同的应用场合,nd通常情况下可取128,256,512等,在本实施例中取nd=128,n的取值范围为[32,64],本实施中设置n=32。设选取得到的点集为{(x1,y1),(x2,y2),...,(xnd,ynd)},把点集表示成2×nd的矩阵形式,得到点集矩阵s,如式(11),每一列是一个点的坐标:

将旋转矩阵rθ和点集矩阵s相乘,即得到具备方向特征的点集矩阵sθ:

sθ=rθs(12)

以sθ中每一列为一个点的坐标,将这些坐标处的点的像素值与对应角点的像素值进行比较,按照brief特征描述规则形成二进制串的描述符,也就是说如果角点的像素值小于点集矩阵sθ中第i个点的像素值,则该二进制串的第i位为1,否者为0。这样,即得到一个长度为nd的二进制串描述符。

对ofast(orientedfast)方法提取得到的每个角点均按上述过程计算得到一个二进制串的描述符。

至此,完成左、右摄像机拍摄图像的特征点检测和描述,对两个摄像机拍摄的图像分别可得到一系列二进制串表示的角点。

(3)角点匹配

对左、右摄像机拍摄图像的角点进行匹配处理,为了加快角点匹配的速度,本发明采用hamming距离作为判断两个角点是否匹配的测量函数。

首先,利用hamming距离进行角点匹配,即:对两个角点的二进制串描述符逐位进行比较,如果二者不同字符的个数小于二进制串字符总数的20%,则认为两个角点匹配,否则,不匹配。

3、网目尺寸计算

首先,对于步骤2得到的左、右摄像机拍摄图像中的相匹配的两个角点,根据其坐标,利用双目视觉测量模型原理即可推算得到角点在主摄像机坐标系(以左摄像机坐标系作为主摄像机坐标系)中的空间位置坐标,具体为:

其中,(x,y,z)是角点在主摄像机坐标系下的位置坐标,(x1,y1)是左摄像机拍摄图像中的角点坐标,(x2,y2)是对应匹配的右摄像机拍摄图像中的角点坐标,f1、f2分别是左、右摄像机的焦距。

对左、右摄像机拍摄图像中相匹配的角点,均可按公式(13)计算得到其在主摄像机坐标系下的坐标。

然后,利用canny算法对主摄像机拍摄的图像进行检测,得到鱼的轮廓,并用最小四边形框出,得到一个四边形。由于检测到的角点多为鱼体轮廓边缘的点,所以用距离四边形四个顶点最近的角点代替四边形的顶点,得到新的四边形。根据新四边形四个顶点(即角点)在主摄像机坐标系下的坐标,分别计算得到四边形的边长,再根据三角形原理,计算得到四边形的面积,即鱼的大小,将鱼的大小的80%~90%作为网目的大小。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1