【综述】MV3D-Net、AVOD-Net 用于自动驾驶的多视图3D目标检测网络

article/2025/11/7 7:30:46

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

前言

      MV3D-Net 融合了视觉图像和激光雷达点云信息;输入数据有三种,分别是点云俯视图、点云前视图和RGB图像。通过特征提取、特征整合和特征融合,最终得到类别标签、3D边界框。这样能减少计算量,又保留了主要的特征信息。

MV3D-Net 开源代码:https://github.com/bostondiditeam/MV3D

MV3D-Net 论文地址:https://arxiv.org/abs/1611.07759

      AVOD-Net算是MV3D-Net的加强版,它也融合了视觉图像和激光雷达点云信息。但它去掉了激光点云的前视图输入、去掉了俯视图中的强度信息;输入数据有二种,分别是点云俯视图和RGB图像。AVOD-Net使用FPN来提取特征,同时添加边界框的几何约束,整体模型效果有提升。

AVOD-Net 开源代码:https://github.com/kujason/avod

AVOD-Net 论文地址:https://arxiv.org/abs/1712.02294

    本文思路是先介绍MV3D-Net,再介绍AVOD-Net;在理解MV3D-Net的基础上,去看AVOD-Net做出了哪些改变和对应的效果如何。

目录

一、MV3D-Net篇

1.1、框架了解

1.2、MV3D的点云处理

1.3、MV3D的图像处理

1.4、俯视图计算候选区域

1.5、特征整合

1.6、特征融合

1.7、模型效果

1.8、模型代码

二、AVOD-Net篇

2.1、框架了解

2.2、提取特征

2.3、数据整合

2.4、边界框的几何约束

2.5、模型效果

2.6、模型代码

 一、MV3D-Net篇

1.1、框架了解

      先看下总体网络结构:下图中的紫色圆圈中M是表示:基于元素的均值。

      输入的数据:有三种,分别是点云俯视图、点云前视图和二维RGB图像。“点云投影”,其实并非简单地把三维压成二维,而是提取了高程、密度、光强等特征,分别作为像素值,得到的二维投影图片。

      输出数据:类别标签、3D边界框。


1.1.1 网络的主体部分

      网络的主体结构的思路流程: 

      1)提取特征。

      提取点云俯视图特征;

      提取点云前视图特征;

      提取图像特征。

      2)从点云俯视图特征中计算ROI候选区域。

      3)把候选区域分别与提取到的点云俯视图特征、点云前视图特征和图像特征进行整合。

      先把俯视图候选区域投影到前视图和图像中;

      再经过ROI pooling整合成同一维度。

1.1.2 网络的融合部分

      融合部分是把整合后的数据进行融合,最终得到类别标签、3D边界框。

      上图中的紫色圆圈中M是表示:基于元素的均值。

1.2、MV3D的点云处理

      MV3D将点云和图片数据映射到三个维度进行融合,从而获得更准确的定位和检测的结果。这三个维度分别为点云的俯视图、点云的前视图以及图片。

1.2.1 提取点云俯视图

      点云俯视图由高度、强度、密度组成;作者将点云数据投影到分辨率为0.1的二维网格中。

      高度图的获取方式为:将每个网格中所有点高度的最大值记作高度特征。为了编码更多的高度特征,将点云被分为M块,每一个块都计算相应的高度图,从而获得了M个高度图。

      强度图的获取方式为:每个单元格中有最大高度的点的映射值。

      密度图的获取方式为:统计每个单元中点云的个数,并且按照公式:

      其中N为单元格中的点的数目。强度和密度特征计算的是整个点云,而高度特征是计算M切片,所以,总的俯视图被编码为(M + 2)个通道的特征。

1.2.2 提取点云前视图

      由于激光点云非常稀疏的时候,投影到2D图上也会非常稀疏。相反,作者将它投影到一个圆柱面生成一个稠密的前视图。假设3D坐标为:

      那么前视图坐标:

      可以通过如下式子计算

1.3、MV3D的图像处理

      采用经典的VGG-16来提取图像特征,下图是VGG-16的网络结构。

      VGG-16结构中有13个卷积层和3个全链接层,它的结构简洁,整个网络都使用了同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)。它验证了通过不断加深网络结构可以提升性能。但VGG-16耗费更多计算资源,并且使用了更多的参数,导致更多的内存占用(140M)。

1.4、俯视图计算候选区域

      物体投射到俯视图时,保持了物体的物理尺寸,从而具有较小的尺寸方差,这在前视图/图像平面的情况下不具备的。在俯视图中,物体占据不同的空间,从而避免遮挡问题。

在道路场景中,由于目标通常位于地面平面上,并在垂直位置的方差较小,可以为获得准确的3Dbounding box提供良好基础。候选区域网络是RPN,下面介绍一下它的原理。

RPN全称是Region Proposal Network,也可理解为区域生成网络,或区域候选网络;它是用来提取候选框的。

1.4.1 RPN的由来

      在RCNN和Fast RCNN等物体检测架构中,提取候选框的方法通常是传统的Selective Search,比较耗时。

在Faster RCNN中,RPN专门用来提取候选框,这也是RPN第一次被使用;RPN耗时少。Faster RCNN = RPN + Fast RCNN。

1.4.2 RPN思路流程

      RPN网络的任务是找到proposals。输入:feature map。输出:proposal。

      RPN总体流程:

      1.生成anchors(anchor boxes)。

     2.判断每个 anchor box 为 foreground(包含物体) 或者background(背景) ,二分类;softmax分类器提取positvie anchors 。

      3.边界框回归(bounding box regression) 对 anchor box 进行微调,使得 positive anchor 和真实框(Ground Truth Box)更加接近。

      4.Proposal Layer生成proposals。

1.4.3 feature maps与锚框 anchor boxes

      feature maps 的每一个点都配9个锚框,作为初始的检测框。重要的事说三遍:锚框作为初始的检测框!、锚框作为初始的检测框!、锚框作为初始的检测框!虽然这样得到的检测框很不准确,但后面可通过 bounding box regression 来修正检测框的位置。

     下面介绍那9个anchor boxes 锚框,先看看它的形状:

      这里一共有9个框框,绿色3个,红色3个,蓝色3个。有3种形状,长宽比分别是1:1, 1:2, 2:1。

1.4.4 判断anchor boxes是否包含物体

      在feature map上,设置了密密麻麻的候选anchor boxes  锚框。为什么会有这么多?因为 feature maps 的每一个点都配9个锚框,如果一共有1900个点,那一共有1900*9=17100个锚框了。

      设 feature maps 的尺寸为 W*H,那么总共有 W*H*9个锚框。(W:feature maps的宽;H:feature maps 的高。)

       然后用cnn去判断哪些anchor box是里面有目标的positive anchor,哪些是没目标的negative anchor。所以,RPN做的只是个二分类。

关于cnn的模型结构,可以参考下图:

1.4.5 修正边界框

      已知anchor box 包含物体称为positive anchors,那怎么调整,才能使得 anchor box 与 ground truth 更接近?

     图中红框为positive anchors,绿框为真实框(Ground Truth Box,简称GT)

     positive anchors 和GT的梯度可以有dx, dy, dw, dh四个变换表示,bounding box regression通过线性回归学习到这个四个梯度,使positive anchors 不断逼近GT,从而获得更精确的proposal。

      bounding box regression 思路,简单一点的,可以先做平移,再做缩放,最终包含物体anchor box和真实框很接近。

1.4.6 Proposal(最有可能包含物体的区域)

      通过上面的判断anchor boxes是否包含物体,对有物体的anchor boxes通过回归进行修正它的尺子,最终包含物体anchor box和真实框很接近。RPN会输出一些框框,和这些框框包含物体的概率。

      总结一下,Proposal 的输入有三个:

      softmax 分类矩阵

      Bounding Box Regression 坐标矩阵

      im_info 保存了缩放的信息

      输出为:

      rpn_rois: RPN 产生的 ROIs(Region of Interests,感兴趣的区域)

      rpn_roi_probs: 表示ROI包含物体的概率。

     RPN 只挑选出了可能包含物体的区域(rpn_rois)以及其包含物体的概率(rpn_roi_probs)。在后续处理中,设定一个阈值 threshold,如果某个ROI包含物体的概率的概率大于阈值,再判断其类别;否则直接忽略。

1.5、特征整合

      把候选区域分别与提取的特征进行整合。

      特征整合流程: 

      a. 把俯视图候选区域投影到前视图和图像中

      b. 经过ROI pooling整合成同一维度

 

1.6、特征融合

      有了整合后的数据,需要对特征进行融合,最终得到类别标签、3D边界框。

      作者介绍了三种不同的融合方式,分别为

      a、Early Fusion 早期融合

      b、Late Fusion 后期融合

      c、Deep Fusion 深度融合。

      各自的结构如下图所示。

      上图中的紫色圆圈中M是表示:基于元素的均值。C表示:串接。

      最终选择了Deep Fusion 深度融合。融合的特征用作:分类任务(人/车/...)、更精细化的3D Box回归(包含对物体朝向的估计)。

1.7、模型效果

      和其他模型对比的数据:

      检测效果:

1.8、模型代码

代码地址:https://github.com/bostondiditeam/MV3D

作者使用KITTI提供的原始数据,链接:https://www.google.com/url?q=http://www.cvlibs.net/datasets/kitti/raw_data.php&sa=D&source=editors&ust=1626942267325000&usg=AOvVaw1y2yY8LPsMmzXtL4sPKikh

      上图是用于原型制作的数据集 。

      我们使用了[同步+校正数据] + [校准](校准矩阵)+ [轨迹]()

      所以输入数据结构是这样的:

      运行 src/data.py 后,我们获得MV3D网络所需的输入。它保存在kitti中。

       上图是激光雷达俯视图(data.py后)

      上图是将 3D 边界框投影回相机图像中。

二、AVOD-Net篇

 2.1、框架了解

      先看下总体网络结构:(可以点击图片放大查看)

      输入的数据:有二种,分别是点云俯视图和二维RGB图像。输出数据:类别标签、3D边界框。

      相对于MV3D-Net的改进措施:去掉了激光点云的前视图输入。在俯视图中去掉了强度信息。去掉这两个信息仍然能取得好的效果,就说明俯视图和图像信息已经能够完整诠释三维环境了。

2.2、提取特征

      AVOD-Net如何提取特征的?它主要提取出二部分数据,分别是图像特征、点云俯视图特征。其中图像+点云俯视图融合特征,在数据整合起到作用。后面将这二种特征进行融合。

      它使用了全分辨率特征,所以为了在整合时降低维度,先进性了1X1的卷积。

      AVOD使用的是FPN,MV3D-Net 是使用的VGG16做特征提取。下面介绍一下FPN网络的原理。

      FPN,全名是Feature Pyramid Networks,中文称为特征金字塔网络;它是目前用于目标检测、语义分割、行为识别等方面比较重要的一个部分,对于提高模型性能具有较好的表现。

      在特征提取中,低层的特征语义信息比较少,但目标位置准确,分辨率高。高层的特征语义信息比较丰富,但是目标位置比较粗略,分辨率低和比较抽象。于是有些算法采用多尺度特征融合的方式,在融合后的特征做预测。

FPN的预测是在不同特征层独立进行的,即:同时利用低层特征高分辨率和高层特征的高语义信息,通过融合这些不同层的特征达到预测的效果。FPN作者认为足够低层高分辨的特征对于检测小物体是很有帮助的。

2.2.1 FPN特征金字塔

      FPN的顶层特征通过上采样和低层特征做融合,并且每层都是独立预测的;它使每一层不同尺度的特征图都具有较强的语义信息。 

      对比:FPN特征金字塔与多尺度特征融合

      多尺度特征融合的方式,在融合后的特征做预测。经过多次上采样并融合特征到最后一步,拿最后一步生成的特征做预测。

      FPN是在不同特征层独立进行预测。

2.2.2 FPN网络结构

      FPN的主网络采用ResNet,网络结构思路是一个自底向上的线路,一个自顶向下的线路,横向连接(lateral connection)。

      1*1的卷积核减少卷积核的个数,也就是减少feature map的个数,并不改变feature map的尺寸大小。

      自底向上的过程也称为下采样,feature map尺寸在逐渐减小,同时提取到的特征语义信息逐渐丰富。在下采样过程中,feature map的大小在经过某些层后会改变,而在经过其他一些层的时候不会改变,作者将不改变feature map大小的层归为一个stage,因此每次抽取的特征都是每个stage的最后一个层输出,这样就能构成特征金字塔。

      自顶向下的过程也称为上采样进行,而横向连接则是将上采样的结果和自底向上生成的相同大小的feature map进行融合。其中,1*1的卷积核减少卷积核的个数,也就是减少feature map的个数,并不改变其尺寸大小。

      在融合之后还会再采用3*3的卷积核对每个融合结果进行卷积,目的是消除上采样的混叠效应(aliasing effect)。并假设生成的feature map结果是P2,P3,P4,P5,和原来自底向上的卷积结果C2,C3,C4,C5一一对应。

       FPN同时使用低层特征高分辨率和高层特征的高语义信息,通过融合这些不同层的特征达到预测的效果。

2.3、数据整合

      AVOD使用的是裁剪和调整(crop and resize),数据整合结构如下图所示。

2.4、边界框的几何约束

      AVOD在3D Bounding Box的编码上添加了几何约束。MV3D, Axis Aligned, AVOD三种不同的3D Bounding Box编码方式如下图所示,

      AVOD利用一个底面以及高度约束了3D Bounding Box的几何形状,即要求其为一个长方体。MV3D只是给出了8个顶点,没有任何的几何约束关系。

      此外,MV3D中8个顶点需要一个24维(3x8)的向量表示,而AVOD只需要一个10维(2x4+1+1)的向量即可,做到了很好的编码降维工作。

2.5、模型效果

      与其他模型的对比:

      在KITTI上,AVOD目前(2018.7.23)名列前茅,在精度和速度上都表现较好,与MV3D, VoxelNet, F-PointNet对比的结果如下表所示。

      模型预测效果:

2.6、模型代码

AVOD-Net 开源代码:https://github.com/kujason/avod

作者代码的运行环境:

系统:Ubuntu 16.04

深度框架:TensorFlow1.3(GPU 版本)

其他依赖库:numpy>=1.13.0 、opencv-python 、pandas、pillow、protobuf==3.2.0 、scipy、sklearn 等。

数据集:在Kitti 对象检测数据集上进行训练。

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

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

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

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

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

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

▲长按加微信群或投稿

▲长按关注公众号

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

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

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

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


http://chatgpt.dhexx.cn/article/9YmJXP30.shtml

相关文章

AVOD、SVOD、TVOD、PVOD:揭秘视频点播商业模式

点击上方“LiveVideoStack”关注我们 翻译、编辑:Alex 本文来自OTTVerse,作者为Krishna Rao Vijayanagar。 ▲扫描图中二维码或点击阅读原文▲ 了解音视频技术大会更多信息 商业模式 Easy-Tech #025# 什么是视频点播(VOD)&#xf…

AVOD:点云数据与BEV图的处理及可视化

文章目录 前言1. 点云数据可视化2. 点云数据校准3. 转为BEV图4. 补充:点云坐标系与相机坐标系结束语 前言 本篇主要记录对AVOD代码的学习与理解,主要是KITTI数据集中3D Object Detection任务中的点云数据和BEV图的处理,为方面理解其中的操作&…

视觉与激光雷达融合3D检测(一)AVOD

1.概述 AVOD(Aggregate View Object Detection)和MV3D类似,是一种融合3维点云和相机RGB图像的三维目标检测算法. 不同的是: MV3D中融合了相机RGB图像,点云BEV映射和FrontView映射,而AVOD则只融合相机RGB图像和点云BEV映射. 从网络结果来看,AVOD采用了基…

AVOD论文解读

AVOD论文解读 1.概述2.网络框架2.1 激光点云数据预处理2.2 特征提取2.3 降低数据量2.4 3D后选区域生成2.5 3D检测框编码2.6 朝向估计 论文地址:[1712.02294] Joint 3D Proposal Generation and Object Detection from View Aggregation (arxiv.org) 代码地址&#…

AVD的使用

前言:这个是AndroidStudio自带的模拟器,虽然功能强大,但是感觉不太好用,安装和使用都比较卡。 个人推荐使用夜神模拟器。 1.打开AndroidStudio,并新建一个工程 2.在菜单栏选择Tools-Android-AVDManager--Create Virt…

复现AVOD

复现过程主要参考https://zhuanlan.zhihu.com/p/87136172 这位博主 之前跟着官方github(https://github.com/kujason/avod) 环境一直配置不好,之后直接使用博主提供的yaml配置文件,之后进行略微调整即可 与博主不同的是&#xf…

AVOD-理解系列(一)

AVOD-理解 本篇用于记载之前阅读的论文avod及其代码,纯属个人个人理解.有误之处欢迎指正! 网络结构 代码流程 1:Feed_dict: feed_dict: 主要就是确定每一个mini_batch里输入图像的各种信息,包括图像的名字,图像的标签文件,图像…

AVOD代码复现

参考文献: https://zhuanlan.zhihu.com/p/86340957 https://zhuanlan.zhihu.com/p/354842740 https://www.guyuehome.com/39798 https://zhuanlan.zhihu.com/p/40271319 1,配置环境 conda create -n avod python3.5 conda install tensorflow-gpu1.3.0…

三十三.智能驾驶之多传感器融合技术: AVOD融合方法

AVOD(Aggregate View Object Detection)和MV3D类似,是一种融合3维点云和相机RGB图像的三维目标检测算法. 不同的是: MV3D中融合了相机RGB图像,点云BEV映射和FrontView映射,而AVOD则只融合相机RGB图像和点云BEV映射. 从网络结果来看,AVOD采用了基于两阶的…

AVOD论文和代码解析

1.介绍 AVOD(Aggregate View Object Detection)算法和MV3D算法在思路上非常相似,甚至可以说,AVOD是MV3D的升级版本 总的来说,和MV3D相比,AVOD主要做了以下一些改进: (1&#xff0…

论文阅读笔记 | 三维目标检测——AVOD算法

如有错误,恳请指出。 文章目录 1. 背景2. 网络结构3. 实验结果 paper:《Joint 3D Proposal Generation and Object Detection from View Aggregation》 1. 背景 AVOD同样是一个two-stage(使用了RPN提取候选框)、anchor-based网络结构。获得较高的召回率…

IC授权卡和复制卡的区别_信用卡小知识【芯片卡磁条卡的区别】

各位老板,企业家大家好,我是小胡,您身边的金融专家。 今天呢跟大家说一下信用卡芯片卡和磁条卡的区别? 信用卡呢,现在普及率非常高的。几乎是人手一张或者是多张。那么大家知道芯片卡和磁条卡的区别到底在哪里&#xf…

IC卡清卡软件的使用

IC卡清卡软件,可以在知道卡片密码的情况下,把卡片恢复出厂密码,清除卡片数据和密码。 如下图 然后读取卡片文件,即卡片dump文件, 然后把卡片放读写器上,点清卡按钮,开始清卡,将清除…

门禁 IC卡 和 ID卡初步了解

目录 一、常用卡介绍 二、复制加密IC卡 1. 工具 2. 方法 3. 最简单的办法 三、IC卡种类介绍 1、接触型IC卡 2、非接触型IC卡 3、串行传输型IC卡 4、并行传输型IC卡 5、存储型IC卡(Memory Card) 6、加密存储型IC卡(Memory Card With Security Logic) 7、智能…

@芯片IC卡也能被复制?冒名卡/克隆卡分分钟复制完成【威 要器妖酒寺起舞酒久吧尔救】

去年底,广西贺州法院审理了一起未成年人盗刷校园IC卡案。被告廖某将已充值的校园IC卡信息复制到另一张空白卡上,在校园内的食堂、超市等进行刷卡消费。并将此方式传给另外4名同乡伙伴,5人共计非法盗刷2万多元。 网购工具 操作简单 据被告廖某…

ID卡复制教程(使用T5577卡复制4100卡)

1 ID卡的常见类型与区别 国内常见的普通ID卡多为EM 4100 或 EM 4102卡,其特点是不可修改ID号。为了复制普通ID卡,通常采用T5577 或 EM4305卡(俗称ID白卡),其特点是内部EEPROM可读可写,修改卡内EEPROM的内容…

教程:利用艾斯PM3GUI软件助手,帮你查IC卡漏洞

测试目的:检查身边的IC卡是否有技术漏洞(门禁卡,会员卡) 测试软件:艾斯PM3GUI软件助手2022版(IC卡信息安全专家)测试设备:PM3easy 优化增强版测试环境:Windows10 我们先拿…

华为手机NFC功能,教你一键复制各种卡

日常生活中,我们经常会携带各种卡,比如:公交卡、门禁卡、银行卡等,但是有时候忘记带了怎么办?或者带了却丢失了。 很多人都知道NFC功能支持充值公交卡,但是它的其他作用你还知道多少个,这期小编…

IC授权卡和复制卡的区别_北京居住证跟居住卡的区别

北京市居住证是小伙伴们在北京居住、作为常住人口享受基本公共服务和便利、通过积分申请登记常住户口的证明。持有居住证就是在京享受基本公共服务和便利的基础,居住登记卡是申领居住证的基础。按照北京市相关规定,在到达北京3日内,小伙伴应主动申报暂住登记,领取居住登记卡…

蓝牙卡复制html,车库蓝牙卡能复制吗

现在小区为了业主小车的安全会在车库上安装门禁系统。那么车库蓝牙卡能复制吗?车库蓝牙卡怎么复制呢?下面就跟着小编一起来看看吧! 车库蓝牙卡能复制吗: 车库蓝牙卡能复制,价格一般在30-60元左右,复制的蓝牙卡与原版外…