基于双目视觉的水下海参尺寸自动测量方法

2021-04-23 04:33:42赵悰悰王亚飞米泽田付先平
计算机工程与应用 2021年8期
关键词:双目海参像素

董 鹏,周 烽,赵悰悰,王亚飞,米泽田,付先平

大连海事大学 信息科学技术学院,辽宁 大连116026

近年来,海参养殖产业在国内发展迅速,养殖面积超过100 万亩,产量超过20 万吨。目前,海参的捕捞主要依靠人工,然而长期潜水作业会对人的身体造成多种危害,这使得海参捕捞从业人员逐年减少。因此在海洋牧场选择水下智能机器人代替人工来完成海参捕捞作业已经成为趋势。

对于水下智能机器人来说,要想代替人工完成海参的捕捞工作,首先要对海参进行辨别并判断其长势情况,然后才能挑选成熟的海参进行捕捞。通常情况下,海参的长势情况可以通过尺寸进行衡量。双目视觉系统可以通过图像检测、立体几何计算等一系列操作完成目标物尺寸测量这一任务,其成本较低、使用便捷,目前广泛受到研究者的青睐。但是由于水体折射现象的影响,使得水上成像与水下成像存在很大区别,因此要想通过视觉方法完成海参尺寸测量这一任务就需要解决水下三维测量、水下目标检测、水下图像分割三个问题。

当前,基于光学的水下三维测量技术日趋成熟,其中,以水下双目相机最为具有代表,其具有成本较低、精度较高等特点,被广泛应用于水下图像信息采集。双目视觉系统类似于人眼,用两个摄像头采集图像,通过计算两张图像的视差来计算物体的距离。Łuczyński 等人[1]在水下成像建模中使用虚拟相机进行分析,提出了一种用于水下相机标定的Pinax 模型。Lee 等人[2]为ROV的两个操作手开发了双目定位视觉系统。采用两个摄像机对目标进行三维定位,协助两台机械手协同工作。李煊等人[3]在机器人上安装了一个双目视觉系统,实现对目标的尺寸估计和定位。

近年来,基于卷积神经网络的目标检测算法发展迅速,这些算法不仅可以区分目标的种类,还可以定位到目标在图像上的位置,并画出包围框。因此,其被广泛应用于水下目标检测[4-6]。当前,基于卷积神经网络的目标检测算法主要分为两类:基于候选区域的目标检测算法和基于回归的目标检测算法[7]。基于候选区域的目标检测算法需要先提取候选区域,然后再对候选区域进行检测,从而得到检测结果。Girshick 等人[8]率先提出了RCNN 方法,使得检测效果明显提升,为该类方法奠定了基石。近年来,随着Faster R-CNN[9]、RFCN[10]等的提出,检测效果进一步提升;基于回归的目标检测算法采用端到端的方式,放弃了候选区域的选择,使得检测速度得以提升,这其中以YOLO[11]、SSD[12]、DSSD[13]为代表,近年来,YOLO 又提出了改进版本YOLOv2[14]和YOLOv3[15],采用了效果更好的基础网络,并加入了anchorbox机制,提高了YOLO系列方法检测的准确率,并可以检测水下小目标。

将目标对象从原图中分割出来是测量的前提。因此,精准地进行图像分割,具有重要意义。Rother 等人[16]提出了GrabCut 分割算法,采用三维高斯混合模型(GMM)来表示颜色统计的分布,以最大流算法求解割边,通过迭代的方法达到最好的分割效果。郭传鑫等人[17]提出了一种融合显著图模型和GrabCut算法得到水下海参图像分割方法,通过利用单尺度Retinex 算法进行水下图像增强,结合基于区域对比度的显著性区域检测方法和直方图均衡的方法,得到海参区域图像的部分前景和可能的背景。李晓阳等人[18]将深度引入超像素分割算法,每幅RGBD 图像变成超像素块的集合,构建超像素块的图模型,结合显著性检测来扩充种子点区域,基于Biased Normalized Cuts来实现共分割,借助深度信息来优化分割结果。

基于上述研究成果,本文提出了一种基于双目视觉的水下海参自动检测与尺寸测量方法,实现水下捕捞机器人对海参的智能精选分级。该方法主要包含四个步骤:(1)将双目视觉系统用于水下,实现对于水下环境的三维重建;(2)将YOLOv3 目标检测模型应用于水下场景,使用水下数据集训练了一个海参检测模型,解决了水下海参检测问题;(3)提出了一种GrabCut-RGBD 目标分割算法,在原本的RGB信息中加入了深度信息,构建高斯模型,提高了水下图像分割的准确度;(4)结合双目得到的点云和分割得到的目标进行映射,得到了水下目标的三维坐标信息,从而实现了对水下海参的检测和尺寸测量。

1 基于双目视觉的水下海参尺寸自动测量方法

本文提出的基于双目视觉与深度学习的水下海参尺寸自动测量方法的基本流程如图1所示。首先,通过双目相机获取水下双目图像;对双目图像进行矫正操作,得到矫正后的水下双目图像;然后,在双目矫正图像上同时进行下列操作:(1)对矫正后的双目图像进行立体匹配,构建双目模型,得到深度图、三维点云;(2)利用双目矫正图像的左图进行海参检测,获取海参的边界框;在检测结果边界框里结合深度图、原图进行图像分割,对边界框内的海参与背景进行分离;最后利用凸包与卡壳算法在分割出的海参目标上寻找最佳尺寸测量点,将其映射至三维空间,实现海参的尺寸测量。

图1 本文方法具体流程

1.1 水下双目成像模型

相机在水下使用时,通常需要给相机加一个防水罩。根据光的折射原理,此时光会发生两次折射,分别是水到防水罩,防水罩到空气。文献[19]认为,当防水罩厚度远小于目标与相机的距离时,光线在玻璃中的传播过程可以忽略。因此水下相机成像的简化过程如图2所示。

图2 水下相机成像模型

图中P(XW,YW,ZW)为目标点,O2为真实相机的位置,O1为入射光线延长线与相机光轴交点,为方便进行相机成像分析,将此位置作为虚拟相机的位置,A为相机光轴与水和空气相交平面的交点,O为光进入空气的折射点,θ1和θ2分别为入射角和折射角。

根据折射定律与相似三角形原理可得如下关系:

式中n1、n2分别为水和空气的折射率。

由于等效虚拟相机与真实相机具有相同的视场,因此,AO在两个相机上的投影具有相同的长度,即X1=X2,X1、X2分别为AO在虚拟相机与实际相机所成像的长度。因此:

根据式(2)、(3)得:

因此,当相机在水下使用时,焦距会因为折射率的改变产生变化,可以根据折射率求得虚拟相机的焦距。

假设在图像像素坐标系中的点的坐标为Pu(u,v),那么空间中的点P从图像像素坐标系到世界坐标系的转换关系如公式(5):

式中,(u,v)是点Pu在图像坐标系中的像素坐标,dx和dy分别为每个像素在X轴和Y轴方向上的尺寸,Z为空间点P的深度,P(Xw,Yw,Zw)为Pu点在世界坐标系中的坐标,图像左上角为图像像素坐标系原点,(u0,v0)为图像坐标系的原点像素,f为相机的焦距,R为旋转矩阵,T为平移向量。

相机成像过程中本身会存在切向和径向畸变,水下相机在使用过程中由于跨越介质将产生更大的畸变,因此需要引入高阶畸变来补偿成像过程因折射导致的更大程度的畸变。

(1)径向畸变随着成像点与中心的距离的增加而增加,因此本文采用与距中心的距离有关的二次及高次多项式函数进行矫正,公式如下:

式中,(x,y)是畸变点在成像仪上的原始位置,r为该点距离成像仪中心的距离,(xdistorted,ydistorted)是校正后的新位置,k1、k2、k3为径向畸变系数。

(2)对于切向畸变本文使用如下公式进行矫正:

式中,p1、p2为切向畸变系数。

因此,只要获取到Z的值,就可以获得空间点P的三维坐标(Xw,Yw,Zw),本文采用双目视觉系统获取Z的值,双目视觉系统指有两个水平放置相机构成的视觉系统,一般两个相机为左右放置,通过一系列的几何分析,实现距离测量。理想的状态下,双目相机几何模型如图3所示,空间中的点P在左右相机成像平面各有一个成像点al、ar,根据三角形的相似关系有:

整理得:

图3 双目相机几何模型

式中,dx为相机的像元尺寸,d就是左右相机的同一像素成像的横坐标之差,并且基线b已知,因此只需要求得两个相机之间的视差d便可以得到P点的深度Z。

1.2 海参检测

对于矫正之后的图像,需要迅速找出海参在图像中的位置。这也就需要一个快速、精确的目标检测模型来实现对海参的检测,获取海参边界框。因此,本文选用了速度较快并且精度较高的YOLOv3 目标检测模型来获取海参的位置信息。

YOLOv3目标检测模型采取端到端的方式,将整张图片输入到网络中进行训练,采用回归方法得到边界框,省去了生成候选区域的步骤,从而加快了目标检测的速度。该算法将输入图片划分成了S×S个网格,如果海参的中心落在了某个网格内,这个网格就负责对这个目标进行检测,每一个网格将输出B个预测的边界框的位置信息(x,y,w,h)以及置信度。

YOLOv3 借鉴了Faster RCNN 的RPN 中的锚框机制,卷积神经网络直接预测每个边界框的坐标信息(tx,ty,tw,th),x和y为目标中心所在单元格相对于图像左上角的偏移,pw、ph为锚点框的高度和宽度,根据表达式(11)将得到最后修正后的边界框:

其中,bx、by、bw、bh就是最终得到的预测边界框的坐标、宽度和高度。整个训练过程使用误差平方和作为损失函数。

YOLOv3采用了darknet53作为主干网络,整个网络没有池化层和全连接层,在前向传播过程中,通过改变卷积核的步长来实现池化层的功能,使用三种尺度的特征图进行检测,这使得YOLOv3在检测小目标时具有较好的效果。图4是YOLOv3的网络结构示意图,通过整个检测算法后将得到海参的感兴趣区域和置信度。

本文利用海参数据集训练YOLOv3的模型(本文只识别海参一个类别),经过反复的迭代,得到了比较稳定的检测模型,经过实验得出,该模型可以满足本文方法中的海参检测任务。

1.3 GrabCut-RGBD目标分割算法

对于海参检测结果,要想知道海参的具体大小,需要进行图像分割去除边界框中的背景,找出海参在二维图片坐标系中的实际位置。

图4 YOLOv3网络结构示意图

本文采用GMM(混合高斯模型)来表示颜色统计的分布,然后采用图的最小割方法,实现海参和背景的分离,改进了Graph-Cut 算法[20]中当物体和背景的颜色差距较小时,将很难对物体进行准确分割的问题,将双目得到的图像深度信息加入到了GrabCut算法中,提出了GrabCut-RGBD图像分割算法。

原始的GrabCut 算法只能分割RGB 图像。在本文中,将深度信息映射到[0~255],作为第四个通道,得到RGBD图像。其中,数字越小表示距离相机越近。

本文将具有R、G、B、D 四个通道的图像表示为I=(I1,I2,…,IN) ,图像中的每一个像素都有一个标记α=(α1,α2,…,αN) ,α=0 代表属于背景,α=1 代表属于前景。θ为图像前景与背景的直方图分布的参数,θ={h(I,α),α=0,1}对于目标和背景分别用一个拥有K个高斯分量的全协方差混合高斯模型进行建模,k={k1,k2,…,kn,…,kN},kn代表第n个像素对应的高斯分量。于是,用于整个图像的吉布斯能量函数为:

考虑到颜色和深度的高斯模型,数据项U定义如下:

其中:

其中,p(·)是高斯概率分布,π(·)是混合权重系数。

平滑项表示如下:

其中,C是相邻像素对的集合,BRGB为彩色RGB 空间两个像素的欧式距离值,系数β由图像的对比度决定,BD为深度D 空间两个像素的差异,参数μ由深度的差异性决定。

1.4 最佳测量点选取

对于分割结果,本文以距离最远的两个点作为海参的最佳尺寸测量点,按照以下三步操作,实现海参尺寸的测量:

步骤1对于分割找到的海参在二维图像坐标系中的实际位置坐标集合,利用凸包算法寻找能将所有点包围起来的凸多边形P=(p1,p2,…,pn),如图5(a)所示。

图5 最佳测量点寻找示意图

步骤2利用旋转卡壳算法寻找最远对踵点。如图5(b)所示,在凸多边形P上寻找其Y轴方向上两个端点,假设为pi、pj,两点间距离记为s1,将两点作为第一对对踵点,在两个端点处构造两条平行切线。顺时针旋转两条切线,每当其中一条切线与凸多边形的一边重合时,将得到一对新的对踵点,此时新对踵点之间的距离记为si,直到切线回到原始位置,旋转结束。得到对踵点距离集合{s1,s2,…,sn},在对踵点距离集合中取最远距离:

将最远距离所对应的对踵点作为最佳尺寸测量点,如图5(b)中的M、N点所示。

步骤3 根据1.1 节所得结果,同理可推得二维坐标到三维坐标的转换关系如式(17),进而获取到最佳测量点的三维坐标M(XM,YM,ZM)、M(XN,YN,ZN),从而可以根据最佳测量点三维坐标通过欧式距离公式计算海参实际尺寸S。

式中(ul,vl)为点的像素坐标。

2 实验及结果分析

实验硬件平台为Nvidia Geforce GTX 1050 GPU、Intel Core i7-7700HQ@3.8 GHz。实验所使用相机为C203水下双目相机,单目分辨率为640×480,为方便图像采集,将水下双目相机搭载在了水下机器人上,利用水下机器人采集水下图像数据。搭载水下双目相机的水下机器人实物图如图6所示。

图6 水下双目实验平台实物图

实验采用水下双目相机在4 m×2 m×1.5 m 的水池中进行图像采集,在Matlab R2017环境下,利用张正友标定法[21]进行水下标定实验,获取相机内外参。所采用的标定板横纵角点个数为11×8,每个方格的大小为30 mm×30 mm。对于采集到的标定用图像,将重投影误差大于0.25个像素的图像进行了剔除。同时,由于水下介质的影响将导致图像畸变变大,挑选了其中54 组标定用图像,进行标定实验。表1 为水下双目标定参数,图7为矫正前后的水下图像,图8为得到的水下场景深度图像。

表1 左右相机水下标定参数

图7 矫正前后的水下图像

图8 水下场景深度图

2.1 水下测量实验结果与分析

为了验证本文双目测量方法在水下不同距离、不同位置、不同姿态下的有效性,实验采集了0.5~1.5 m范围内33 组不同姿态的标定板图像(由于水下相机采集的图像分辨率为640×480,当距离大于1.5 m 时,受像素限制,无法进行精准测量),对于同一标定板图像上的每两个相邻角点进行重建测距,将重建得到的测量值d与真实值30 mm(相邻角点距离为30 mm)进行比较,分别通过公式(18)、(19)计算最大误差和平均误差图9为通过计算得到的误差信息。

图9 误差测量结果

由误差测量实验结果可以得到,当成像距离小于110 cm时,平均误差与最大误差均小于1%,当成像距离大于110 cm 时,误差随着距离的增加有逐渐增大的趋势,由于水下双目相机所采集图像的分辨率仅为640×480,当距离过大时,测量点选取将变得更加困难,这导致误差会逐渐增大,但在1.5 m以内时,测量平均误差小于1.2%,最大误差小于1.7%,满足尺寸测量需求。

2.2 海参检测网络训练与性能分析

本文海参检测网络训练与测试电脑主要配置为Inter®CoreTMi7-7700K CPU @ 4.20 GHz、Nvidia Geforce GTX 1080 TI GPU和64 GB的运行内存。

本文标注了19 500 张水下包含海参的图像并制作成数据集用于检测网络的训练与测试,其中14 000张图片作为训练集,5 500 张图片作为测试集。网络训练的主要参数如表2所示。

表2 模型训练参数设置

模型训练Loss变化图如图10所示。从图中可以看出,网络在前5 000 次迭代中迅速拟合,之后趋于稳定,平均损失在0.2左右浮动。

图11为训练时平均交并比(IOU)变化曲线,从图中可以看出,平均交并比随着迭代次数的增加在逐渐增大,这说明了检测的准确率在不断提高,当迭代达到30 000次之后,平均交并比超过了90%。

使用训练生成的权重文件对测试集图片进行测试,检测效果如图12所示(标记框第一行为目标类别,O为包围框左上点坐标,W和H为包围框的宽和高)。

图10 平均Loss曲线图

图11 平均IOU曲线图

图12 海参检测效果图

本文使用平均检测精度(mAP)与平均检测速度对YOLOv3模型进行评价,并与目前比较主流的检测算法进行了对比,结果如表3所示。

表3 水下数据集检测结果对比

从表中可以看出本文所使用的YOLOv3 检测模型的平均检测精度为0.826、平均检测速度为57 frame/s,均超过了其他两种检测算法,可以满足快速、精准检测的需求。

图13 本文分割算法与GrabCut分割算法效果对比图

2.3 GrabCut-RGBD目标分割实验结果与分析

为了验证本文分割算法的有效性,将本文分割算法从分割效果、分割精度两方面与传统的GrabCut算法进行了比较。

本文分别采集了水下三个不同种类目标的图像进行目标分割实验。图13为实验结果,从(a)~(d)分别对应了左右原图、实际分割结果、GrabCut 分割结果、本文算法的分割结果,原图中的红色方框内部区域为算法选取的分割区域。

本文使用分割精度对分割结果进行了进一步分析[22]。分割精度P为:

式中,CB为正确的背景像素个数,CF为正确的前景像素个数,N为总像素数。利用三个种类各十组图片计算每个种类的平均分割精度,表4为本文方法与GrabCut分割算法平均分割精度对比。

表4 本文分割算法与GrabCut分割算法水下实验结果对比%

由表4 可以看出,从分割精度方面来说,本文分割方法相对于原始的GrabCut算法效果有了一定的提升;根据图可以看出,当目标的色彩与背景颜色较为接近时,GrabCut算法将不能进行准确的分割,而本文方法很好地弥补了GrabCut 算法的缺陷,使用R、G、B、D 四维信息进行图像分割,使得当前、背景颜色相似时,也能拥有一个良好的分割效果。

2.4 水下海参尺寸自动测量实验结果与分析

本文使用水下双目相机采集了15组不同距离下包含海参目标的水下双目图像,每一个距离有5 组图像。利用游标卡尺测量了海参的实际大小。然后将本文方法检测出的海参大小与海参的实际尺寸进行误差比较。

图14 为游标卡尺测量出的海参的实际尺寸,图15为本文方法在不同成像距离下(50~150 cm)海参检测与测量结果图。

图14 海参尺寸实际测量图

表5 中距离为海参与双目相机之间的距离。误差为每一个距离下五组测量结果误差值与实际值之间的比值的平均值。数据结果显示,本文方法的测量结果比海参的实际尺寸偏大,并且在1.5 m 范围内误差小于2.03%。因此,本文所提出的方法在一定的距离下对于海参尺寸的自动测量具有较好的可用性。

表5 不同成像距离下海参测量结果误差

图15 不同成像距离下(50~150 cm)海参检测与测量结果图

3 结束语

本文提出了一种基于立体视觉与深度学习的水下海参尺寸自动测量方法,使用水下双目相机获取当前场景的三维信息,然后利用YOLOv3 算法进行目标检测,获取目标类别,提出了一种结合深度信息的GrabCut-RGBD 目标分割方法,进行海参与背景的分割,从而获取到了海参的三维信息,实现对于海参大小的测量。实验结果表明,本文提出的方法具有良好的准确性。尽管实验结果满足了当前的需求,但是,该方法有效距离较短并且实际操作较为繁琐。未来的研究中,将着手对有效测量距离距离进行改善、改进标定方法,摒弃繁琐的水下标定方法,并考虑如何将本文方法用于水下机器人,实现水下机器人对于水下海参的精准抓取。

猜你喜欢
双目海参像素
赵运哲作品
艺术家(2023年8期)2023-11-02 02:05:28
像素前线之“幻影”2000
感谢海参
意林彩版(2022年2期)2022-05-03 10:25:08
基于双目测距的卡尔曼滤波船舶轨迹跟踪
电子制作(2019年20期)2019-12-04 03:51:38
“像素”仙人掌
古今八珍之葱烧海参
金桥(2018年2期)2018-12-06 09:30:38
海参易变弯,掺了糖
高像素不是全部
CHIP新电脑(2016年3期)2016-03-10 14:22:03
基于双目视觉图像的长度测量方法
海参