一种基于深度学习和双目立体视觉相结合的测距方法与流程

文档序号:13006720阅读:1471来源:国知局
一种基于深度学习和双目立体视觉相结合的测距方法与流程

本发明提供了一种基于深度学习和双目立体视觉相结合的测距方法,涉及深度学习、计算机视觉技术领域。



背景技术:

拥有非接触测量特点的测距方式有超声波测距、红外测距、激光测距和计算机双目视觉测距。

超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。由于超声波测距仪是声波发射,具有声波的扇形发射特性,方向性差。当声波经过之处障碍物较多时,反射回来的声波较多,干扰较多,易报错。

激光测距,是利用激光对目标的距离进行准确测定的仪器。激光测距仪在工作时向目标射出一束很细的激光,由光电元件接收目标反射的激光束,计时器测定激光束从发射到接收的时间,计算出从观测者到目标的距离。但是,测量容易受到烟雾、灰尘、雨滴的干扰且目的性不强。

红外测距是由红外发射器按照一定的角度发射红外光束,当遇到物体后,光束会反射回来。反射回来的红外光束被ccd检测器检测到以后,会得到一个偏移值,利用三角关系,在知道发射角度、偏移值、中心距以及滤镜的焦距后,传感器到物体的距离就可以通过几何关系计算出来。但是,测量容易受到日光或者其他相近波长光源的干扰,也会受到烟雾、灰尘的干扰且方向性差。

双目立体视觉是计算机视觉的一个重要分支,双目立体视觉测距技术是双目立体视觉的一个重要应用。测距技术分为主动式和被动式测距两种。双目立体视觉测距技术是根据视差原理建立的被动测距系统,该系统是人类利用双目感知距离的原理设计的,即两眼从稍有不同的两个角度去观察三维世界的同一场景时,由于几何光学的投影,观察者观察到的点在左右两眼视网膜上成的像不在同一位置上,存在一定的偏差,这个偏差就是双眼视差,客观物体的实际距离就是通过视差来体现的。两个摄像机从不同位置对同一物体拍摄得到的两幅图像,通过匹配算法找出两幅图像中的对应点,并进过计算得出视差,然后基于三角测量原理恢复出物体在真实世界中的距离信息。双目立体视觉测距在测量的过程中仅需要通过捕获图像就能得到物体到相机的距离信息,而不用发射信号,具有良好的隐蔽性,因此在各个领域发挥着越来越大的作用。单纯的基于双目立体视觉的测距功能单一,没有充分挖掘计算机视觉的潜能。

本发明把双目立体视觉与时下流行的机器学习技术相结合,提出了一种基于深度学习和双目立体视觉相结合的测距方法。该方法除了具有一般的双目立体视觉测距的功能外,通过与基于机器学习的物体识别相结合,达到对具体物体测距的能力,并且可以完成对识别的多个物体测距的要求。



技术实现要素:

本发明解决的技术问题是:针对现有的非接触测量方法在现实场景测量的成本高及语义性不足的问题,提供一种物体识别和双目立体视觉相结合的测距方法,具有能够对现实场景下具体目标物进行基于识别的非接触测量的优点。

本发明采用的技术方案为:一种基于深度学习和双目视觉相结合的测距方法,包括以下五个步骤:

步骤(1)、首先应用标定后的双目相机模块捕获现实场景下的图像。

步骤(2)、将步骤(1)中左目相机捕获的图像输入到基于深度学习的物体识别模块,框选出该场景下能够识别到的目标物体,并且给出识别到的物体的具体名称。如果该帧图像不包含可以识别到的物体,则仅进行三维重建,然后返回到步骤(1)。

步骤(3)、将左右目相机捕获的图像输入到双目立体视觉模块,进行三维重建,生成视差图,再将步骤(2)中得到的物体所在区域的坐标输入给该双目视觉模块,该模块对在视差图中框选出的每个区域利用统计方法——众数,对该框选出来的区域的灰度值进行按列统计。

步骤(4)、对步骤(3)的灰度值统计结果进行去重处理。然后对去重后的结果进行从小到大的排序。如果排序后的灰度值个数大于2个,则删除第一个和最后一个灰度值,即去掉灰度最大值和灰度最小值,从剩下的灰度值中选取一个作为该框选区域灰度值的代表;如果灰度值个数小于等于2个,则仅取最后一个灰度值作为该区域的灰度值的代表。

步骤(5)、由于双目视觉模块生成的视差图为二维数组,因此,可以求得步骤(4)中输出的各个区域的灰度代表值对应的坐标位置。双目视觉模块从各个区域的灰度代表值对应的坐标位置中各任选一个坐标作为每个区域灰度值众数的代表,利用灰度值在深度图中的坐标位置,即可求得框选出的每个区域包含的物体的距离。

进一步地,步骤(1)中所述的图像来自于经过标定后的双目相机捕获的图像。

进一步地,步骤(2)中基于深度学习的物体识别的模块的输入图像来自于双目相机,它与输入到双目视觉模块中的左目相机捕获的图像一样。利用步骤(1)中捕获的图像输入到双目视觉模块进行三维重建,将其左目相机捕获的图像输入到深度学习模块进行物体识别。如果包含由可以识别到的物体,则输出物体的坐标位置和名称,否则仅输出视差图,然后返回到步骤(1)。

进一步地,步骤(3)中利用一种统计方法——众数,将步骤(2)中框选出来的区域对应到视差图的区域,对该区域的灰度值进行按列统计,得到该区域各个列中灰度值出现次数最多的灰度值。

进一步地,步骤(4)针对步骤(3)统计得到的灰度值,首先进行灰度值去重处理;然后按照从小到大的顺序进行统计;接着针对统计后得到的灰度的值的不同个数分别处理:如果灰度值的个数大于2个,那么就去掉第一个和最后一个灰度值,即去掉最小值和最大值,从剩下的灰度值中选取一个作为该区域的灰度值代表;如果去重后灰度值的个数小于或等于2个,那么就选取最后一个灰度值作为该区域的灰度值代表;最终得到一个该区域灰度值的代表值。

进一步地,步骤(5)再把双目视觉模块中得到的各个区域的灰度值的代表值坐标对应到深度图中相同坐标的位置处,得到一个深度信息,该深度值即为该区域的灰度代表值所表示的深度。将该信息与物体识别模块得到的具体物体名称相对应,即可得到每一个可以识别到的目标物体在该场景下与双目相机之间的距离值。

以往的双目视觉测距主要聚焦在如何对于相应的不确定目标进行距离估计,由于没有考虑到被测目标本身的属性或类别,因而在距离估计上存在很大的随机性和误差。而本发明旨在解决如何在测量过程中将被测目标本身的类别或属性信息加入到距离的评估过程,从而使距离的判定方面增加相应的先验知识,降低测量误差。

至此,最终得到被测场景中目标及其距离观测点多远的语义理解。对象名称和距离信息的组合拥有着比单一的距离或对象名称更为丰富的含义。该信息在不远的将来应用到服务机器人中,有助于真实场景下服务机器人的场景理解,提升服务质量和智能化水平。机器人将不再是各种传感的简单组合,而是各种传感器信息的有效融合,发挥出1+1大于2的效果。同时,本发明将带来更广阔的应用语义,即在利用视觉能够判定目标属性的同时,又可以知晓目标距离观测点的距离,为自主导航、场景标注等等应用提供有力支撑。

本发明的原理在于:

本发明提出了一种深度学习与双目视觉相结合的距离测量方法,克服了现有的非接触测量方法在现实场景下成本高,语义性不强的缺点。本方法适用于室内和室外场景下利用深度学习方法可以识别到的物体的距离的测量。本方法包含四个步骤:首先利用标定后的双目相机捕获现实场景中的图像;然后把左目相机捕获的图像输入到基于深度学习的物体识别模块,由该模块给出图像中包含的对象名称和该对象在该图像中所属区域的坐标位置,该区域的范围由左上角和右下角的两个二维坐标点确定;接着把左右目相机的图像输入给双目视觉模块进行三维重建,结合上一步得到的物体区域坐标,在双目视觉模块生成的视差图中同样地绘制出该坐标对应的区域,并利用基于众数的统计方法对视差图中框选出来的区域的灰度值进行统计,得到出现次数最多的灰度值,并把该灰度值作为该框选出来的区域的灰度值的代表;最后分别求出各个区域中利用众数方法得到的灰度值在每一个区域中的坐标位置,因为深度图中的深度信息与灰度值是对应的。在整个视差图中,只要灰度值一样,无论该灰度值对应的点在何处,那么它所代表的深度信息都是一样的。因此,在各个框选出来的区域中只要获得由众数求得的灰度值对应的一个坐标位置就可以得到由该众数求出的灰度值对应的深度信息。把该步骤得到的深度信息与第2步中识别到的物体名称相结合,即可准确求得当前场景下由双目相机所捕获的区域内被识别到的物体和该物体到双目相机的具体距离了。

本发明的内容主要包括以下方面:

图像的获取。双目视觉模块的输入图像来自于标定后的双目相机捕获的图像,在物体识别模块中使用的图像来自于该双目相机的左目相机捕获的图像。

物体所在区域的预测。该模块使用的是独创的基于深度学习的物体识别方法——tssd,该方法相较于其他方法具有预测精度高、速度快等优点。关于这一点,如图2所示,基于开源yolo的物体检测方法,它的核心思想是利用整张图作为神经网络的输入,直接在输出层回归boundingbox(包含区域的最小矩形)的位置和boundingbox所属的类别。实现方法是先把输入图像划分为s*s个网格,如果某一个object的中心落在了这个网格中,则该网格就负责预测这个object。其缺点为对相互靠的很近的物体,以及很小的物体检测效果不是很好。本发明提出的tssd网络如图3所示,因为每一层featuremap(特征图)的感受视野不同,tssd在多个featuremap上进行处理,针对不同大小的featuremap,允许检测出不同尺度下的物体。低层的featuremap感受视野比较小,高层的感受视野比较大,在不同的featuremap上进行卷积,可以达到多尺度的目的。

深度图像中特定区域灰度值的提取。利用基于深度学习的tssd物体识别方法对来自左目相机的输入图像进行物体识别操作,并输出结果。该结果包含对象名称和对象在该图像中的区域,该区域的范围由左上角坐标和右下角坐标确定。将该区域对应到双目视觉模块生成的视差图中,利用众数统计方法来对该框选出来的区域的灰度值进行统计,求得该区域内出现次数最多的灰度值,并且用该灰度值代表该区域的灰度值。

得到图像中具体物体到双目相机的距离的实现。在双目视觉模块得到各个区域内的灰度值的众数后,获得该灰度值所对应的各个点的位置,从各个区域中的众数求得的灰度值对应的多个点中任意选取一个坐标点。将该坐标点作为深度图的输入,即可输出该坐标点的深度信息。

本发明与现有技术相比的优点在于:

本发明提出了用于测距的物体识别与双目视觉相结合的方法。该方法能够解决现有的非接触测量方法对物体距离测量目的性不强的不足之处。在实际场景中,结合物体识别模块识别出物体的名称和物体的坐标位置,与双目视觉模块相结合可以得到该图像中物体的名称和该物体到双目相机的距离。

附图说明

图1为本发明的物体识别和双目视觉相结合的测距方法的流程图;

图2为yolo的网络结构示意图;

图3为tssd的网络结构示意图;

图4为本发明中对框选区域按列求取灰度值的处理流程图。

具体实施方式

下面结合附图说明对本发明做更详细地描述。

如图1所示,本发明的一种基于物体识别和双目立体视觉相结合的测距方法,其组成包括:经过标定后的双目相机、基于深度学习的物体识别模块、三维重建及测距模块、灰度值去重处理模块,其特征在于基于深度学习的物体识别模块的输入图像来自于经过标定后的双目相机的左目捕获的图像,该图像与三维重建部分使用的左目图像一样;三维重建模块的输入来自于标定后的双目相机捕获的两张图像,三维重建模块利用输入的两张图像生成视差图和点云图。

1、图像采集模块

该模块的作用是为物体识别模块和三维重建模块提供图像输入。输入图像是经过标定后的双目相机捕获的图像。由于三维重建过程中需要知道使用的双目相机的内外参数,因此需要对使用的双目相机进行标定操作。

2、物体识别模块

考虑到识别的速度和精度,使用目前性能较好的tssd算法,网络结构如图3所示。基于该算法的物体识别模块的作用如下:

(1)根据输入图像,输出识别到的各个物体的名称。识别模块能够识别到的具体物体与训练阶段使用的训练集有关,如果训练集没有包含输入图像中出现的物体,那么识别模块将不能识别出图像中出现的该物体。输出的物体名称来自于对训练集中的图像进行标注时使用的物体名称。

(2)输出对应于每一个识别到的物体在输入图像上的坐标位置。输出的坐标位置由两个二维坐标表示。坐标位置确定了输入图像中的一块矩形区域,该矩形区域内包含了识别模块识别到的物体。

yolo网络模型如图2所示,使用64个7*7大小的卷积核在整幅图像上卷积,接着经过一系列3*3或者1*1的卷积(conv)层来提取特征,然后用两个全连接(fc)层做分类和回归,最后生成一个7*7*30的矩阵。核心思想是利用整张图作为网络的输入,输入图像先被缩放到448*448大小,接着图像再被分为s*s个网格,如果某个物体的中心落在了某个网格,则这个网格就负责预测这个物体所属的类别,每个网格输出b个矩形框,包含框的位置信息(xcenter,ycenter,w,h)和物体的confidence,然后每个网格再输出c个类别的条件概率p(class|object),最后的输出层有s*s*(b*5+c)个单元,其中(xcenter,ycenter)表示预测框的中心坐标,(w,h)分别表示矩形框的宽度和高度;confidence的定义如下:

上式中,pr(classi)表示网格预测的类别概率,pr(classi|object)表示条件类别概率;如果网格包含有物体,pr(object)等于1,否则等于0;表示预测的物体的框选区域和真实的物体所在区域的交集与预测的物体的框选区域和真实的物体所在区域的并集的比例,用于度量定位物体的精度。举例说明一下,假设现有矩形区域a和矩形区域b,那么a和b之间的iou表示如下:

iou=a∩b/a∪b

由于每个网格仅预测一个物体,对于相互靠的很近的物体,容易造成漏检;对于物体的尺寸比较敏感,对于变化较大的物体泛化能力较差。

yolo的整个网络的后端存在两个全连接层,每一个输出都会观察到整幅图像,并不是很合理。

与yolo不同的是tssd采用vgg16的网络结构,使用前面的5层,去掉了yolo中的两个全连接层,增加了4个卷积层。每个添加的特征层(featurelayer),使用一系列的卷积核(3*3,1*1),去产生一系列固定大小的predictions。在不同层级的featuremap上进行识别,这样可以覆盖更多的范围,不同层次的featuremap分别用于defaultbox的偏移以及不同类别得分的预测,最后通过nms(nonmaximumsuppression)得到最终的检测结果,如图3所示。假设在m层featuremap上进行识别,则第k层的基本比例为:

在上式中,m表示使用的featuremap的个数,s表示每一个featuremap上默认box的比例,smin为0.2,表示最低层的比例为0.2,smax为0.9,表示最高层比例为0.9。

这些增加的卷积层的featuremap的大小变化比较大,允许检测出不同尺度下的物体,并且不同的featuremap可以预测不同宽高比的图像。在低层的featuremap,感受野比较小,高层的感受野比较大,在不同的featuremap上进行卷积,可以达到多尺度的目的。

3、灰度值去重处理

将物体识别模块输出的坐标位置对应到三维重建模块输出的视差图上,这样可以在视差图上得到一个矩形区域。如图4所示,单独对在视差图上框选出来的矩形区域的灰度值进行按列统计,求取每一列的灰度值众数。视差图上的每一个被框选区域包含很多列,对视差图上框选出来的区域求取众数后,首先进行灰度值去重处理,经过这一步操作后,保证每一个区域求取的灰度值众数没有重复值,方便接下来的排序过程;接着对去重后的灰度值进行从小到大的排序操作;然后针对排序后得到的灰度值个数分别处理:

(1)如果排序后灰度值的个数大于2个,那么去掉排序后的第一个和最后一个灰度值,即去掉排序后得到的灰度最大值和最小值,从剩下的灰度值中选取一个作为该区域的灰度值的代表值;

(2)如果排序后得到的灰度值个数小于或等于2个,那么选取最后一个灰度值作为该区域的灰度代表值;

4、三维重建及测距模块

标定过的双目相机捕获的图像作为该模块的输入。该模块应用opencv开源计算机视觉库来对输入图像进行三维重建,由cv2.reprojectimageto3d函数生成三维点云图像。将物体识别模块输出的物体所在区域坐标位置应用到视差图,框选出该坐标位置对应的区域,应用众数对该区域的灰度值进行统计,求得按列统计的出现次数最多的灰度值,对该区域按列求取的灰度值进行去重处理,最后值得到一个灰度值,作为该区域的灰度值代表。由于该视差图为二维数组,因此,可以求得该数组中所有灰度值等于灰度值去重操作后得到的区域灰度代表值对应的坐标点,在这些坐标点中任意选择一个坐标点作为点云图像的输入,即可得到该灰度值对应的深度信息。由于各个区域的灰度代表值是对在物体识别阶段输出的各个区域分别求取的,因此,可以得到多个灰度值,进而可得到多个距离信息,它们代表各个区域中的物体到相机的距离。

至此,得到了识别出的对象距离相机的距离,由于识别阶段的输出是识别出的每一个物体对应于一块区域,区域的灰度值众数也正好对应于一块区域,在视差图中不同的灰度值代表着不同的距离信息,灰度值越大,表示的距离越近,灰度值越小,则表示的距离越远。识别出的物体名称与位置很容易对应起来,又可以求得每一个区域内的众数所表示的距离,那么也可以得到物体名称与灰度值、物体名称与距离的联系。在得到了物体名称和阈值对应的距离信息后,由双目立体视觉模块输出图像中包含的物体名称和该物体距离双目相机的距离。

本发明未详细阐述的技术内容属于本领域技术人员的公知技术。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

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