zoukankan      html  css  js  c++  java
  • 《Stereo R-CNN based 3D Object Detection for Autonomous Driving》论文解读

    论文链接:https://arxiv.org/pdf/1902.09738v2.pdf

    这两个月忙着做实验 博客都有些荒废了,写篇用于3D检测的论文解读吧,有理解错误的地方,烦请有心人指正)。

    博客原作者Missouter,博客园链接https://www.cnblogs.com/missouter/,欢迎交流。

    【Abstract】

      该论文提出了一种结合图像中语义、几何学与稀疏、稠密信息的3D目标检测算法。

      该算法用Faster R-CNN接收作为立体输入的左右图像,同时检测、联系两幅图像中的物体;在立体检测网络的RPN后,论文添加了一个用于检测稀疏关键点(key points)、视点(viewpoints)与物体尺寸的网络结构,与左右两图的2D检测框一并作为输入,计算出对应的3D检测框,(个人觉得这个新添加的网络结构是这篇论文的一大亮点?)也许是因为这个结构,较其他3D检测算法而言这个方法并不需要深度输入。

      但单用这种结构算出的3D检测框精度不够,所以论文利用左右图像的ROI实现了基于区域的光度校准,从而提升3D框的精度。

    【Introduction】

      论文提出了一种使用双目立体相机的3D检测算法,与激光定位(LiDAR)相比,立体相机具有成本低、具备更大更远的识别范围的优势。

      论文提出的网络结构如上图所示,主要分为3个部分:

      1、 以双目图片作为输入的立体检测RPN。

      2、 经过ROI校准后用于得到key points、view points与物体尺寸的网络分支,承接该网络输出作为约束条件的3D检测框估值网络。

      3、 保证3D检测框性能与精度的基于高密度区域的光度对准方法(Dense 3D Box Alignment),位于网络的最后。

      笔者感兴趣的地方在第二部分。

    【Stereo R-CNN Network】

      Stereo R-CNN使用权值共享的ResNet与FPN作为主干,提取左右两图的一致特征。

    1、 Stereo RPN

      与普通的RPN不同的是,stereo r-cnn的RPN接受的是左右两图各尺度上连接的feature map;左右图像真实地面框的并集被作为对象分类的目标,iou高于0.7的目标将被归为正样本,低于0.3的将被定义为负样本,锚框能够囊括左右两图的兴趣区域得益于此;

      针对锚框的偏移计算,文章给出了六种回归形式:[∆u, ∆w, ∆u‘, ∆w’, ∆v, ∆h],u,v分别代表二位检测框的水平、垂直中心坐标,w、h分别代表检测框的宽和高,由于使用已矫正过的立体图像,故对于两图的v、h同一变量进行回归。综上,与传统的RPN不同,stereo r-cnn的输出通道有6个。在输出候选区域时论文同样使用nms降重。

    2、 Stereo R-CNN

    a). Stereo Regression

      经RPN得到左右图像的建议区域对后,网络分别对左右两图的feature map应用ROI排列,得到的两图ROI特征被放入两个连续的全连接层中提取语义信息。四个子分支被用于物体分类、检测框、尺寸和view points角度的预测;检测框的回归形式与RPN类似。

      对于不同朝向的物体,view points角度是不同的:论文以 代表物体朝向与相机朝向的夹角,以 代表物体-相机连线与相机朝向的夹角,需进行回归的view points角度α可被定义为α=θ+β,为了避免不连续性,子分支中的训练目标为[sinα, cosα]。

      根据二维框、物体尺寸,深度信息可被直观地恢复;通过解耦view points角度与三维位置的关系,物体朝向也可以被解出来。

      一个左/右ROI与左/右真实框的IoU高于0.5的左右ROI对,将会作为前景,而左右任一ROI与真实框的IoU处于0.1~0.5的将会作为背景;前景ROI对的左/右ROI与左右真实框将会用于偏移的回归计算;与RPN相同,垂直方向的值仍是左右两图共用的。

      对于尺寸预测,论文仅用预先设置的尺寸来回归地面真实尺寸,获取偏移量。

     b). Keypoint Prediction

      除了检测框和view points角度外,在检测框中部投影的3D角可以为3D检测框估计提供更严格的约束条件。论文定义了4个表示转角的3D检测框底部的4个关键点。下图中标为Boundary key points。

      透视关键点是唯一一个可以明显地投射到框的中间(而不是左或右边缘) 的3D语义关键点。(从后文看就是后2个边界点之间的后轮);除此之外还有两个Boundary key points被定义,作为规则物体的替代表示(图中前轮),只有在这两点以内的区域可以被认定为处于物体内部,且可用于后续的dense alignment。

      关键点的预测使用了Mask R-CNN。只有左图像的14*14 feature map被用于key points的预测。左图像经RoI排列的feature map被输入6个连续的256通道,3*3卷积层,每个卷积层后接激活层。一个2*2的非卷积层被用于补强输出尺寸至28*28。这里文章特别提到,关键点的坐标中只有u坐标提供了2D检测框之外的额外信息。论文对6×28×28输出中的高度(h?)通道求和,得到6×28预测:前四个通道表示四个语义关键点投射到相应u位置的概率,另外两个通道分别表示每个u位于左右边界的概率。因前文定义的透视关键点只有一个,softmax被用于4*28的输出中,求一个独特的被投射至单个位置的语义关键点,这个设计避免了关键点类型的混乱。对于左右的边界关健点,softmax被分别用于两个1*28的输出上。

      简单来说,需要被回归求出的关键点只有1个透视关键点,2个用于规则物体替代的边界关键点,其他点都是2D检测框有的(这里的解读存疑)。

    【3D Box Estimation】

      之前求得的关键点、view points角度与2D检测框被用于3D检测框的粗略估计。一个3D检测框可被表示为{x, y, z, θ},分别表达检测框的中心坐标与物体的水平朝向角。根据尺寸、关键点和2D框,3D框可以通过减小2D框与关键点的二次投影误差得到。

      如上图,7个测量值从2D检测框与透视关键点中被提取,z = {ul, vt, ur, vb, ul', ur', up},分别代表左2D检测框的左边界横坐标、底部纵坐标、右边界横坐标、顶部纵坐标、右检测框的左、右边界横坐标与关键点的横坐标,原文称“Given the perspective key point, the correspondences between 3D box corners and 2D box edges can be inferred”。论文使用7个对应测定量的投影变换公式对{x, y, z, θ}进行求解。原文“There are total seven equations corresponding to seven measurements, where the sign of {w/2, l/2} should be changed appropriately based on the corresponding 3D box corner.”中提到{ , }的适当调整读起来有些…暧昧?

      对于观察不到车辆的2个面(车屁股正对?)的情况,up、物体尺寸无从得知,文章给出基于view point的补充公式:

      α、β含义与前文相同。

      Dense 3D Box Alignment部分不在博主研究范围内,博主决定摸了。

                

  • 相关阅读:
    java 通过Iterator输出Map
    java SortedSet接口swap方法
    java vector
    java Iterator双向迭代输出
    java 序列化和反序列化多个对象
    培训
    每天晚上

    又想起了

  • 原文地址:https://www.cnblogs.com/missouter/p/14145469.html
Copyright © 2011-2022 走看看