本发明涉及的是一种自动驾驶领域的技术,具体是一种基于单目图像的三维目标检测系统及方法。
背景技术:
目前用于自动驾驶的二维目标检测技术相对成熟,三维目标检测技术成为研究热点,其难度更大,复杂度更高。当前,三维目标检测现有的方法绝大多数基于激光雷达扫描的点云数据,但由于激光雷达的高成本,不能大规模实际落地。现有的一些单目图像的三维目标检测方法,主要集中在车的三维检测,由于车是刚体,可以建立不同类别车的cad模型,将二维映射为三维,然而要为每一个类别设计对应cad模型,过程复杂,不具有很好的泛化能力。
技术实现要素:
本发明针对现有技术存在的上述不足,提出一种基于单目图像的三维目标检测系统及方法,通过精确地检测目标的接地点,然后通过摄像头的投影矩阵映射出接地点的真实三维矩阵,最终恢复出目标的真实三维目标框,该方法低成本,高效,具有广泛的实际应用价值。
本发明是通过以下技术方案实现的:
本发明涉及一种基于单目图像的三维目标检测系统,包括:二维框检测模块、二维修正模块以及用于将二维映射三维的标定摄像头投影矩阵模块,三维目标框进一步修正模块,其中:二维框检测模块与深度特征相连进行二维信息预测并传输二维目标框、接地点等信息,二次修正模块与二维框检测模块相连进行进一步修正二维预测信息,投影矩阵映射模块与二次修正模块相连进行将二维点映射到摄像头坐标系下的三维点处理并传输三维目标框信息,三维目标框修正模块与投影矩阵映射模块相连进行三维目标框修正处理,最终系统输出精确的三维目标框。
附图说明
图1为本发明网络训练数据示意图;
图2为本发明网络结构图;
图3为三维目标框修正模块结构图;
图4为本发明实施例效果图;
图5为二维目标信息示意图;
图中:a、b、c分别表示本发明神经网络学习到的二维框信息在图片中的可视化;
图6为三维目标检测框点云示意图;
图中:a、b、c分别表示本发明神经网络学习到的三维目标框在不同时刻点云的可视化。
具体实施方式
如图1所示,为本实施例涉及一种基于单目图像的三维目标检测系统,包括:二维框检测模块、二维修正模块以及用于将二维映射三维的标定摄像头投影矩阵模块,三维目标框进一步修正模块,其中:二维框检测模块与深度特征相连进行二维信息预测并传输二维目标框、接地点等信息,二次修正模块与二维框检测模块相连进行进一步修正二维预测信息,投影矩阵映射模块与二次修正模块相连进行将二维点映射到摄像头坐标系下的三维点处理并传输三维目标框信息,三维目标框修正模块与投影矩阵映射模块相连进行三维目标框修正处理,最终系统输出精确的三维目标框。
本实施例中,所述的三维目标框修正模块首先对深度特征进行roi匹配(align)操作,得到每个目标的深度特征,然后送入节点数为4096、1024的两层的全连接层的感知机中,最后输出的节点数为类别数*7。
由于检测的接地点往往会偏离实际的“0”平面,需要回归目标的俯仰角进行补偿,为了精确预测偏离距离,将偏离距离与其图像坐标系下的面积的比值进行编码回归。
本实施例基于上述系统的三维目标检测方法,通过将三维目标检测转化到二维图像下的预测,然后应用摄像头标定参数将二维映射到摄像头三维坐标系下,重构出目标的三维目标框,通过对映射出的三维目标框进行进一步修正,得到精确的三维目标框,经两步法训练后进行精确三维目标检测;所述方法具体包括以下步骤:
第一步:对图1所示的三维目标检测系统,采用现有数据库进行训练,具体为:
本发明采用kitti数据库进行训练,该数据库包括:汽车、行人、骑自行车的人等目标的二维框和三维框,目标的二维框,即:(cx,cy,width,height),由图像坐标系下的中心点坐标和宽高构成;目标的三维框,即:(x,y,z,l,w,h,yaw)单位为米,其中:x,y,z分别为目标在摄像头坐标系下的其对应的底部中心点的坐标,l,w,h分别为目标的真实的长宽高尺寸,yaw为目标的摄像头坐标系下的航向角。
为了获取目标的底部四个接地点的图像坐标系下的坐标,将三维目标框的底部四个点通过标定摄像头投影矩阵映射到二维图像坐标系下,顺时针方向为
所述的kitti数据库,来自geigera,lenzp,stillerc,etal.visionmeetsrobotics:thekittidataset[j].theinternationaljournalofroboticsresearch,2013,32(11):1231-1237.
第二步:采用三维目标检测系统中的二维修正模块分别提取第一步训练后的三维目标检测系统中的vgg16网络结构的conv4层、conv5层、fc7层、conv6层的特征,分别用一系列卷积操作直接进行回归图像坐标系下的四个接地点和摄像头坐标系下的离“0”平面的真实偏移量预测。
为了让设计的网络更好地学习目标的(cx,cy,width,height),
第三步:采用三维目标检测系统中的二维修正模块分别提取三维目标检测系统中的refinedet网络结构的p4层、p5层、p6层、p7层的特征,通过一系列卷积操作直接进行二维框的预测值(cx,cy,width,height)、三维目标框的底部四个点的映射值
所述的refinedet网络结构包括:用于滤除负的anchor以减少用于分类器的搜索空间,以及粗调anchor的位置和大小的anchor细化模块和用于改进回归并预测多类标签的对象检测模块(zhangs,wenl,bianx,etal.single-shotrefinementneuralnetworkforobjectdetection[c]//proceedingsoftheieeeconferenceoncomputervisionandpatternrecognition.2018:4203-4212.)
第四步:图像坐标系下的接地点到摄像头坐标系下的映射,得到摄像头坐标系下的三维目标框的信息,具体包括:
4.1)由于网络学习的是编码过后目标的信息,故首先解码目标的二维框的预测值(cx,cy,width,height)、三维目标框的底部四个点的映射值
cx=predictx*pw+pcx,cy=predicty*ph+pcy,
width=exp(predictw)*pw,height=exp(predicth)*ph,
m11wx+m13wz-uz=(-m12wy-m14),m21wx+m23wz-vz=(-m22wy-m24),m31wx+m33wz-z=(-m32wy-m34),
x=a-1b,其中:
4.2)鉴于三维目标框的8个角点在图像坐标系下投影一定在二维检测框内的先验知识,求出每个目标的真实高度,即当目标的真实高度范围为:[hmin,hmax],当(|hmax-hmin|>0.01)时,设置
第五步:修正第四步得到摄像头坐标系下的三维目标框的信息(x,y,z,l,w,h,yaw),具体包括:首先将三维目标框(x,y,z,l,w,h,yaw)按以下方式编码:
所述的roialign操作是指:采用双线性插值的方式进行降维处理(hek,gkioxarig,dollárp,etal.maskr-cnn[c]//proceedingsoftheieeeinternationalconferenceoncomputervision.2017:2961-2969.)
第六步:修正后的三维目标检测系统采用两步方式进行训练,即先训练二维目标信息预测部分,然后二维和三维目标信息整个网络一起训练,具体为:对于一个大小为c*h*w的特征层,在其每个像素位置都设置了不同大小比例的先验框,先验框的中心点作为4个接地点的先验点。使用3*3的卷积核进行回归预测对应维度的目标框的信息,同时预测每个先验框的类别。
如图1所示,三维目标检测系统的损失函数包括定位损失和分类损失,具体为:
第七步:由于三维目标检测系统学习的是编码过后目标的信息,故需要对编码过后的信息进行解码,得到摄像头坐标系下的三维目标框的最终位置,具体为:x=predictx*pd+px,y=predicty*pd+py,z=predictz*ph+pz,w=exp(predictw)*pw,l=exp(predictl)*pl,h=exp(predicth)*ph,yaw=sin-1predictyaw+pyaw,其中:x,y,z分别为目标在摄像头坐标系下的其对应的底部中心点的坐标,l,w,h分别为目标的真实的长宽高尺寸,yaw为目标的摄像头坐标系下的航向角。
第八步:针对两步训练后的三维目标检测系统输入任意一张图片,首先将其调整至512×512尺寸,然后依次通过多尺度层二维预测、二维修正操作、非极大值抑制(nms)得当最终每个目标框左上角和右上角坐标、4个接地点坐标、“0”平面的偏移量及其置信度,接着通过标定摄像头的投影矩阵映射到摄像头三维坐标系下,最后进行最后一步三维目标框修正,最终得到如图6所示的精确的三维目标框。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。