论文链接: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部分不在博主研究范围内,博主决定摸了。

            

《Stereo R-CNN based 3D Object Detection for Autonomous Driving》论文解读的更多相关文章

  1. 《Population Based Training of Neural Networks》论文解读

      很早之前看到这篇文章的时候,觉得这篇文章的思想很朴素,没有让人眼前一亮的东西就没有太在意.之后读到很多Multi-Agent或者并行训练的文章,都会提到这个算法,比如第一视角多人游戏(Quake ...

  2. ImageNet Classification with Deep Convolutional Neural Networks 论文解读

    这个论文应该算是把深度学习应用到图片识别(ILSVRC,ImageNet large-scale Visual Recognition Challenge)上的具有重大意义的一篇文章.因为在之前,人们 ...

  3. 《Deep Feature Extraction and Classification of Hyperspectral Images Based on Convolutional Neural Networks》论文笔记

    论文题目<Deep Feature Extraction and Classification of Hyperspectral Images Based on Convolutional Ne ...

  4. Quantization aware training 量化背后的技术——Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference

    1,概述 模型量化属于模型压缩的范畴,模型压缩的目的旨在降低模型的内存大小,加速模型的推断速度(除了压缩之外,一些模型推断框架也可以通过内存,io,计算等优化来加速推断). 常见的模型压缩算法有:量化 ...

  5. Training Deep Neural Networks

    http://handong1587.github.io/deep_learning/2015/10/09/training-dnn.html  //转载于 Training Deep Neural ...

  6. Training (deep) Neural Networks Part: 1

    Training (deep) Neural Networks Part: 1 Nowadays training deep learning models have become extremely ...

  7. [CVPR2015] Is object localization for free? – Weakly-supervised learning with convolutional neural networks论文笔记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "Helvetica Neue"; color: #323333 } p. ...

  8. Training spiking neural networks for reinforcement learning

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 原文链接:https://arxiv.org/pdf/2005.05941.pdf Contents: Abstract Introduc ...

  9. CVPR 2018paper: DeepDefense: Training Deep Neural Networks with Improved Robustness第一讲

    前言:好久不见了,最近一直瞎忙活,博客好久都没有更新了,表示道歉.希望大家在新的一年中工作顺利,学业进步,共勉! 今天我们介绍深度神经网络的缺点:无论模型有多深,无论是卷积还是RNN,都有的问题:以图 ...

  10. 论文翻译:BinaryConnect: Training Deep Neural Networks with binary weights during propagations

    目录 摘要 1.引言 2.BinaryConnect 2.1 +1 or -1 2.2确定性与随机性二值化 2.3 Propagations vs updates 2.4 Clipping 2.5 A ...

随机推荐

  1. LeetCode 中等题解(2)

    31 下一个排列 Question 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列). 必须 ...

  2. Pinpoint 编译环境搭建(Pinpoint系列一)

    本文基于 Pinpoint 2.1.0 版本 目录 一.2.1.0 版本特性 二.编译环境准备 三.编译注意事项 四.编译目录 五.注意事项 新版本的内容参考官方文档, Pinpoint的整个搭建是历 ...

  3. php socket 编程问题总结

    1. PHP declare(ticks=N); 的作用 https://blog.csdn.net/udefined/article/details/24333333 2. pack &&a ...

  4. 探究:nuget工具对不再使用的dll文件的处理策略

    背景介绍 nuget是.net平台有效的包管理工具,相信每个C#开发者对它都不陌生. 本文我们来探究一下nuget对不再使用的dll文件的处理策略,分为如下2个场景: 场景A:包A1.0原来包含New ...

  5. Android RFID调试总结

    调试了包括驱动,jni层,当然也熟悉了下应用层.    1. 驱动层包括修改:        device/eastaeon/aeon6735_65c_l/init.project.rc    //去 ...

  6. python中正则表达式

    正则表达式是一种通用的字符串匹配技术,是不会因为编程语言不一样而发生变化的如果想查找对应规则的字符串,就可以用正则表达式python中要使用正则表达式需使用re模块,它是正则表达式在python中的封 ...

  7. Java Bean拷贝工具Orika原理解析

    最近面试被问及对象拷贝怎样才能高效,实际上问的就是Orika或者BeanCopier的原理.由于网上对Orika原理的解析并不太多-因此本文重点讲解一下Orika的原理.(Orika是基于JavaBe ...

  8. Redis 基础设计结构之三 hash(哈希)

    Redis 有 5 种基础数据结构,分别为:string (字符串).list (列表).set (集合).hash (哈希) 和 zset (有序集合). 今天来说一下hash(哈希),hash的数 ...

  9. 配置Nginx 扩展实现图片剪裁

    在此之前需要安装ngx_http_image_filter_module,如果是采用的Docker的话可以看看我历史文章. 然后修改配置文件,增加几个location模块,配置如下,仅供参考 serv ...

  10. 一枚程序猿的MacBook M1详细体验报告

    前言 2020年11月11日双十一上午,苹果发布了M1芯片的新款Mac,其最大的变化就是将处理器从Intel换成了苹果自研的ARM芯片M1. 上一次苹果更换Mac芯片要追溯到2006年,14年前,苹果 ...