作者丨柒柒@知乎

来源丨https://zhuanlan.zhihu.com/p/404683961

编辑丨3D视觉工坊

论文标题:AutoShape: Real-Time Shape-Aware Monocular 3D Object Detection
作者单位:Robotics and Autonomous Driving Laboratory, Baidu Research 等
代码:GitHub - zongdai/AutoShape: ICCV2021 Paper: AutoShape: Real-Time Shape-Aware Monocular 3D Object Detection(https://github.com/zongdai/AutoShape)
论文:https://arxiv.org/pdf/2108.11127.pdf

一句话读论文:

利用形状信息提升单目3D检测性能。

作者的观点:

1. 单目3D检测最主要的挑战是如何获取准确的深度信息。

The main challenge for monocular-based approaches is to obtain accurate depth information. In general, depth estimation from a single image without any prior information is a challenging problem and recent many deep learningbased approaches achieve good results.

2. 基于伪点云的检测方法效率较低,一些更为直接的方法比如SMOKE或者RTM3D也可以取得较好的性能。这些方法将物体检测任务建模为”关键点(keypoints)+属性(size, offsets, orentation, depth, etc.)“的表示方法,因此更为高效。

To improve the efficiency, many direct regression-based approaches have been proposed (e.g., SMOKE,RTM3D) and achieved promising results. By representing the object as one center point, the object detection task is formulated as keypoints detection and its corresponding attributes (e.g., size, offsets, orientation, depth, etc.) regression.

但是这些方法缺点也很明显:只利用关键点信息而忽略了物体的整体形状。

However, the drawback is also obvious. One center point representation ignores the detailed shape of the object and results in location ambiguity if its projected center point is on another object's surface due to occlusion.

综上,作者的动机就很直接了。基本思路还是follow关键点检测器的方法,但是通过引入形状信息改善这类检测器的缺陷。那么如何构造形状信息呢?显然,通过通用的8个角点是没有办法充分表示物体形状的。因此,作者尝试引入n个keypoints以建模物体的形状信息。在实验中,n=16或n=48。

具体地,整体网络可以理解为两部分:其一,如何获得n个keypoints;其二,如何利用n个keypoints建模形状信息。

第一,为了与作者文章逻辑相同,先介绍如何利用keypoints建模形状信息,如下图。

整体框架图

输入单张图片,通过骨干网络后,共输出7类结果,包括:

In anchor-free based object detection frameworks, the object center is essential information, which serves two functions: one is whether there is an object and the other is that if there exists an object, where is the center.The output of this branch will be above, where C is the number of classes and 2 represents the offset in x and y direction respectively.

A separate branch is used to regress the object dimension. Similar to other approaches, we don't regress the absolute object’s size directly and regress a relative scale compared to the mean object size of each class.

Rather than directly detect these keypoints from the image, we regress n ordered 2D offset coordinates for each object center. The benefit is that the number and order of keypoints for each object can be well guranteed.

Similar to 2D keypoints, we regress the 3d keypoints in the local object coordinates. In addition, all 3D keypoints are normalized by object dimension in xyz direction respectively. By using this format, the 3D  values are in a relatively small range, which will benefit the whole regression process.

The overall loss contains the following items: a center point classification loss and center point offset regression loss, a 2D keypoints regression loss, a 3D keypoints points regression loss, an orientation multibin loss, a dimension regression loss, a 3D IoU confidence loss and a 3D  box IoU loss.

至此,整体框架的输入输出已经做完,回到第一个问题,如何利用网络预测的keypoints建模形状信息?这里作者引入了pose estimation的概念,也就是对于3D物体上的每一个关键点,可以将其与2D关键点建立一一对应的约束关系。先给定一些定义:

第二,3D shape auto-labeling。这个模块的主要作用是:如何自动生成每个物体上的关键点标注,如下图。

In this section, we will introduce how to automatically fit the 3D shape to the visual observations and then automatically generate ground-truth annotations of 2D keypoints and 3D locations in the local object coordinate for traning the network.

自动标注框架

其核心思想是:任意物体可以表示基本模板+形变。因此,作者一方面归纳出了一个基本模板,同时利用PCA系数和6D位姿参数对其进行形变,以生成尽可能符合当前物体的3D模型。那么,怎么知道这个3D模型生成得好不好呢?作者设计了优化函数:

叫differentiable rendering function,中文名叫可微分渲染。这个是什么意思呢?引用一下可微分渲染:Learning to Predict 3D Objects with an Interpolation-based Differentiable Renderer(https://blog.csdn.net/qq_43420530/article/details/117909788) 的解释:

三维的物体渲染成二维图像的时候,其实本质上是进行了一系列矩阵变换,插值等操作,这和神经网络有一定的相似之处,渲染相当于前向传播,得到渲染图,而渲染图和输入图像相比较可以定义loss,从而进行反向传播,去优化三维物体的形状与纹理,从而实现基于单张图像的三维重建,并且不再受3D数据集依赖。

有了可微分渲染器可以做什么呢?

有了可微分渲染器,那么三维重建工作就可以建立以上的处理流程。对于一张输入的图像,经过神经网络后,去预测得到一系列的mesh,light,texuture这三个三维属性。如果没有可微渲染的话,可以通过三维数据集来优化神经网络得到尽量准确的预测结果,有了可微渲染,就可以抛弃数据集了,在这些三维属性之后进行可微分渲染,根据loss优化三维属性,得到三维重建结果。而如果输入的图像足够多(如GAN生成),我们甚至可以把重建好的三维属性当做真实值去优化那个预测三维属性的神经网络!

实验结果:

KITTI test set

提升还是挺明显的,不过主要集中在简单样本的提升,猜测可能是因为3D shape auto-label还是存在一定误差的。

本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

AutoShape:实时形状感知的单目3D目标检测(ICCV2021)相关推荐

  1. 首个实时单目3D目标检测算法:RTM3D,代码将开源

    o 点击我爱计算机视觉标星,更快获取CVML新技术 基于单目图像的3D目标检测是在输入RGB图像的情况下估计目标的3D包围框,在自动驾驶领域非常有用. 今天来自中科院沈阳自动化所等单位的学者公布论文提 ...

  2. 最新发布!SMOKE 单目3D目标检测,代码开源!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者| 黎国溥 编辑| 3D视觉开发者社区 SMOKE是一个one-stage的单目视觉障碍物检测模型 ...

  3. 万字长文概述单目3D目标检测算法

    一,理论基础-相机与图像 相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程能够用一个几何模型进行描述,这个模型有很多种,其中最简单的称为针孔相机模型.相机的成像过程是也一个射 ...

  4. DD3D:基于预训练的单目3D目标检测

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源丨CV研习社 作者丨元气满满的打工人 文章导读 导读:3D目标检测的主要应用场景就是自动驾驶,虽然 ...

  5. Neighbor-Vote:使用邻近距离投票优化单目3D目标检测(ACM MM2021)

    名字:Neighbor-Vote: Improving Monocular 3D Object Detection through Neighbor Distance Voting 链接:https: ...

  6. 【单目3D目标检测】MonoDLE论文精读与代码解析

    文章目录 Preface Abstract Contributions Diagnostic Experiments Pipeline Revisiting Center Detection Trai ...

  7. 【单目3D目标检测】MonoFlex论文精读与代码解析

    文章目录 Preface Abstract Contributions Pipeline Problem Definition Decoupled Representations of Objects ...

  8. 登顶KITTI!Mix-Teaching:适用于单目3D目标检测的半监督方法【清华大学】

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨汽车人 来源丨自动驾驶之心 论文标题:Mix-Teaching: A Simple, Unifi ...

  9. 【单目3D目标检测】SMOKE论文解析与代码复现

    文章目录 yacs Introduction Usage SMOKE Preface Abstract Contributions Pipeline Backbone Head Branch Orie ...

最新文章

  1. 人们把通信技术计算机技术控制技术合称为,湖北汽车工业学院大学计算机基础复习题(费劲整理,带答案,考试命中概率很大).docx...
  2. Python文件操作,时间日期操作,collections增强,Deque(类似java的LinkedList),OrderedDict,Counter
  3. 根据谁创建资源授权资源
  4. (SRNTT)Image Super-Resolution by Neural Texture Transfer
  5. Sql中partition by的使用
  6. Mybatis Plus条件查询
  7. C++开发工程师进阶路线
  8. 使用 HTML5 webSocket API实现即时通讯的功能
  9. HDU5479 Colmerauer 单调栈+暴力优化
  10. 天正网络版服务器填写位置,教你如何在天正里面输入坐标定位
  11. tailf追踪日志文件
  12. 程序员的英文简历编写参考
  13. 费用分摊分配用法(KSU5/KSV5/KB21N/KB11N)
  14. hadoop 2.7.3 版本下载
  15. 【HTML5】调查问卷制作简约版
  16. [软件使用][视频播放器]potplayer去掉外框
  17. 计算机突然断电后 硬盘中的数据,电脑突然断电对硬盘有影响吗?实测便知
  18. 部署k8s 1.18版本及图形管理工具kuboard(十四)
  19. SQL底层执行原理详解
  20. 计算机毕业设计 SSM在线音乐网站设计与实现(源码+论文)

热门文章

  1. live555的编译及使用
  2. 架构设计开发方式汇总
  3. 空空排错日志:OCS错误日志14501等解决办法
  4. Java8的集合:HashSet的实现原理
  5. 案例:来自Uber的Go语言GC优化实践
  6. Kafka那些值得我们学习的优秀设计
  7. 字节一面:Redis主节点的Key已过期,但从节点依然读到过期数据....
  8. 阿里面试官:接口的幂等性怎么设计?
  9. 一名英文不好的程序员的救赎
  10. 阿里程序员35岁P7!4年了晋升无望!明年股票拿完,年包腰斩!世界那么大,要不要去看看?...