基于多路复用图像的目标深度估计和检测方法

文档序号:1490768 发布日期:2020-02-04 浏览:3次 >En<

阅读说明:本技术 基于多路复用图像的目标深度估计和检测方法 (Target depth estimation and detection method based on multiplexed image ) 是由 *** 周昌鑫 于 2019-09-15 设计创作,主要内容包括:本发明公开了一种基于多路复用图像的目标深度估计和检测方法,包括在多路复用图像上训练目标检测神经网络、在多路复用图像上进行目标检测和对检测到的目标进行深度估计三个过程。本发明的方法能够解决2D目标检测方法无法感知物体深度的问题。(The invention discloses a target depth estimation and detection method based on a multiplexing image, which comprises three processes of training a target detection neural network on the multiplexing image, carrying out target detection on the multiplexing image and carrying out depth estimation on a detected target. The method can solve the problem that the depth of the object cannot be sensed by the 2D target detection method.)

基于多路复用图像的目标深度估计和检测方法

技术领域

本发明涉及模式识别和计算机视觉领域,具体是一种基于多路复用图像的目标深度估计和检测方法。

背景技术

目标检测是计算机视觉领域中的一个重要的研究课题。已经被广泛的使用在多个真实场景的应用中,如人脸识别,交通安全,自动驾驶等。基于深度学习的目标检测是指在一副自然场景图片或者视频中标记出目标物体的位置以及类别。然而像自动驾驶这样的应用,不仅需要知道物体在图像空间中的位置,还需要该物体在实际三维空间里的深度。

目前基于卷积神经网络的2D目标检测器效果好,实时性高,但不能感知物体的深度。其包含两个关键的步骤:分类器(回归器)训练。不同于传统方法中人工提取目标物体的特征,深度学习使用多层的卷积神经网络来自动的提取特征。用来提取特征神经网络需要带有标签的数据集进行训练以便其能提取有价值的特征。在训练的过程中使用反向传播算法进行网络参数的更新。回归器的训练是指在已经提取的特征的基础上,寻找一系列的规则,用来判断当前图像中物体的类别和位置。目前主流的基于深度学习的目标检测方法包括Faster RCNN,YOLO等。但是这些方法无法感知物体的深度,需要配合其他感知器来满足自动驾驶这类应用的需求。

3D目标检测任务能够同时识别物体在图像空间里的位置并且估计物体的深度。3D目标检测效果非常依赖于激光雷达获得的点云数据,然而激光雷达造价高,分辨率低,感受范围小。而基于图像的3D目标检测效果差并且达不到自动驾驶这类应用的实时要求。

发明内容

本发明的目的在于针对上述2D目标检测方法无法感知物体深度的问题,提供一种基于多路复用图像的目标深度估计和检测方法。

实现本发明目的的技术解决方案为:一种基于多路复用图像的目标深度估计和检测方法,包括在多路复用图像上训练目标检测神经网络、在多路复用图像上进行目标检测和对检测到的目标进行深度估计三个过程:

在多路复用图像上训练目标检测神经网络包括以下步骤:

1)选择一个基于锚框的目标检测网络,对锚框部分进行拓展;

2)对目标检测网络进行初始化;

3)训练目标检测网络。

在多路复用图像上进行目标检测包括以下步骤:

4)将需要测试的多路复用图像输入到步骤3)中训练好的目标检测网络中,得到目标的类别和边界框位置参数;

5)根据目标的类别和边界框位置参数在图像上对目标进行类别标注,并用矩形框标出每个物体的位置。

对检测出的目标进行深度估计包括以下步骤:

6)计算每个目标的两个边界框中心的水平像素距离;

7)再根据相机的焦距和基线距离对检测出的每个目标进行深度估计。

上述方法中,所述步骤1)包括以下具体步骤:

11)选择一个基于锚框的目标检测网络框架。以Faster RCNN为例。

12)将锚框拓展为“锚框对”。每个锚框对由一组水平对齐、同样大小的锚框组成,每个锚框对输出7个参数,第一个为目标类别参数,其余6个为目标位置参数(xleft,xright,wleft,wright,y,h),分别对应左右边界框的横坐标,宽度,纵坐标和高度,并且左右边界框共享纵坐标y和高度h。

上述方法中,所述步骤2)包括以下具体步骤:

21)初始化训练参数。学习率设置为0.001,迭代次数为100000次,每次迭代输入的图像数为2。

22)初始化权重参数。一个合适的权重初始化方法可以使得神经网络收敛加快。使用在ImageNet数据集上预训练的ResNet-101网络参数对目标检测网络进行初始化,对于目标检测网络额外的网络层使用xavier初始化方法:定义参数所在层的输入维度m,输出维度n,那么参数将以均匀分布的方式在范围内

Figure BDA0002201894850000021

进行初始化。

上述方法中,所述步骤3)包括以下具体步骤:

31)将训练图像以及每幅图像上目标的标签输入到网络中,其中图像尺寸设置为1333×600。

32)在训练过程中,每个锚框对根据与目标的边界框重叠程度被划分为正负样本。当锚框对中的左右锚框分别与目标的左右边界框重叠度都大于0.5时,此锚框对为正样本,并且与此目标进行匹配;当锚框对中的左右锚框分别与目标的左右边界框重叠度都小于0.3时,此锚框对为负样本。其余锚框对忽略。

33)计算损失函数。本发明使用的损失函数如下:

Figure BDA0002201894850000031

其中Na和Ngt分别表示锚框对和目标的数量,(xi,yi,wi,hi)代表左右边界框参数,其中xi包含

Figure BDA0002201894850000032

Figure BDA0002201894850000033

两部分,wi包含

Figure BDA0002201894850000035

两部分,pi(c)代表类别,

Figure BDA0002201894850000036

代表第i个锚框对是否为正样本,若是则等于1否则为0,代表第i个锚框对是否与第j个目标的边界框匹配,若是则等于1否则为0。整个损失函数由三个部分组成,前两项计算正样本位置误差,第三项类别预测误差。

34)若当前的迭代次数大于最大迭代次数,则结束训练。否则执行反向传播。反向传播过程通过计算损失函数关于某一节点的偏导数,使用梯度下降算法更新网络的权重参数。网络权重的更新参数如下:

Figure BDA0002201894850000042

其中m表示层数,i表示神经元在层中的序号,j表示一个神经元输入的序号,α表示学习率。

反向传播过程更新网络权重参数结束后,返回步骤33)。

上述方法中,所述步骤4)包括以下具体步骤:

41)输入待检测的多路复用图像,将图像尺寸设置为1333×600。

42)根据训练好的神经网网络模型和输入的图像计算得到数值的检测结果。

上述方法中,所述步骤5)包括以下具体步骤:

51)对网络的输出的检测框使用非极大值抑制去除冗余,由于多路复用图像上的目标拥有两个目标框,所以对左框和右框分别进行非极大值抑制,之后输出左右框都保留的目标。

52)将检测结果(class,xleft,xright,Wleft,Wright,y,h,score)写入文本文件进行保存。

上述方法中,所述步骤6)包括以下具体步骤:

61):计算每个目标的两个边界框的水平像素差,即此目标的视差:disp=xright-xleft

上述方法中,所述步骤7)包括以下具体步骤:

71):根据双目视觉原理,得到目标深度与视差的关系:depth=f×baseline/disp,其中f为相机的焦距,baseline为相机的基准距离,由此可以得到每个检测出的目标的深度。

本发明与现有技术相比,其显著优点:(1)使用了多路复用图像作为2D目标检测的输入;(2)设计的目标检测器能够同时识别物体并估计物体的深度;(3)设计的目标检测器运行速度快,满足实时需求。

附图说明

图1是多路复用图像实例。

图2是锚框对的结构组成。

图3是目标检测网络模型结构。

图4是本发明的训练过程。

图5是本发明的检测过程。

图6是本发明的可视化结果图。

具体实施方式

下面结合说明书附图对本发明的具体实施方式作进一步说明。

本发明的目标检测方法包括在多路复用图像上训练目标检测神经网络、在多路复用图像上进行目标检测和对检测到的目标进行深度估计三个过程。

在多路复用图像上训练目标检测神经网络,包括以下具体步骤:

首先由于目前只有针对自然图像的目标检测器,需要对其进行修改,使其适用于多路复用图像(见图1)。选择一个基于锚框的目标检测网络框架,以Faster RCNN为例。

将目标检测器中的锚框拓展为“锚框对”,如图2所示。每个锚框对由一组水平对齐、同样大小的锚框组成,每个锚框对输出7个参数,第一个为目标类别参数,其余6个为目标位置参数(xleft,xright,Wleft,Wright,y,h),分别对应左右边界框的横坐标,宽度,纵坐标和高度,并且左右边界框共享纵坐标y和高度h。目标检测器的结构见图3.

初始化训练参数和权重参数。学习率设置为0.001,迭代次数为100000次,每次迭代输入的图像数为2。我们使用了在ImageNet数据集上预训练的ResNet-101对目标检测网络的权重进行了初始化,对于目标检测网络额外的网络层使用xavier初始化方法:定义参数所在层的输入维度m,输出维度n,那么参数将以均匀分布的方式在范围内进行初始化。

将训练图像以及每幅图像上目标的标签输入到网络中,其中图像尺寸设置为1333×600。在训练过程中,每个锚框对根据与目标的边界框重叠程度被划分为正负样本。当锚框对中的左右锚框分别与目标的左右边界框重叠度都大于0.5时,此锚框对为正样本,并且与此目标进行匹配;当锚框对中的左右锚框分别与目标的左右边界框重叠度都小于0.3时,此锚框对为负样本。其余锚框对忽略。

计算损失函数。本发明使用的损失函数如下:

Figure BDA0002201894850000061

其中,Na和Ngt分别表示锚框对和目标的数量,(xi,yi,wi,hi)代表左右边界框参数,其中xi包含

Figure BDA0002201894850000062

Figure BDA0002201894850000063

两部分,wi包含

Figure BDA0002201894850000064

Figure BDA0002201894850000065

两部分,pi(c)代表类别,

Figure BDA0002201894850000066

代表第i个锚框对是否为正样本,若是则等于1否则为0,

Figure BDA0002201894850000067

代表第i个锚框对是否与第j个目标的边界框匹配,若是则等于1否则为0。整个损失函数由三个部分组成,前两项计算正样本位置误差,第三项类别预测误差。

若当前的迭代次数大于最大迭代次数,则结束训练。否则执行反向传播。反向传播过程通过计算损失函数关于某一节点的偏导数,使用梯度下降算法更新网络的权重参数。网络权重的更新参数如下:

Figure BDA0002201894850000068

其中m表示层数,i表示神经元在层中的序号,j表示一个神经元输入的序号,α表示学习率。训练步骤流程图见图4。

在多路复用图像上进行目标检测包括以下具体步骤:

首先将待检测的多路复用图像的尺寸设置为1333×600,然后输入到上一过程训练好的神经网络模型中,得到目标检测的数值结果。对网络的输出的检测框使用非极大值抑制去除冗余,由于多路复用图像上的目标拥有两个目标框,所以对左框和右框分别进行非极大值抑制,之后输出左右框都保留的目标。将检测结果(class,xleft,xright,wleft,wright,y,h,score)写入文本文件进行保存。

对检测到的目标进行深度估计,流程图见图5,包括以下具体步骤:

首先计算每个目标的两个边界框的水平像素差,即此目标的视差:disp=xright-xleft。然后根据双目视觉原理,得到目标深度与视差的关系:depth=f×baseline/disp,其中f为相机的焦距,baseline为相机的基准距离,由此可以得到每个检测出的目标的深度。

这里需要着重指出,相比于传统的2D目标检测方法,本发明在不损失目标检测精度和速度的前提下可以对目标进行深度估计。相比于基于双目图像3D目标检测方法,本发明的目标检测器耗时只有它们的三分之一。图6给出了本发明的部分检测结果可视化视图(为了清晰地显示检测结果,我们将从多路复用图像检测出结果展示在与其对应的左镜头图像上)。

对于本领域普通技术人员来说,上述的每个功能都可以采用硬件、软件或硬件和软件的适当的组合方式实现,应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:目标对象标注方法、装置、计算机设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!