【3D目标检测】Categorical Depth Distribution Network for Monocular 3D Object Detection

本文主要是介绍【3D目标检测】Categorical Depth Distribution Network for Monocular 3D Object Detection,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 概述
  • 细节
    • 网络结构
    • 类别深度分布
    • 损失函数
  • 与OFT-Net 的对比

概述

本文是基于单目图像的3D目标检测方法。
【2021】【CaDNN 】
研究的问题:

  • 以往的深度信息学习方法(无论是显示学习还是隐式学习)都存在一些问题,会导致后面边界框定位困难
  • 显示学习的方法将深度估计和目标检测分开训练,导致得到的深度图是次优的,进而导致边界框定位性能差。
  • 隐式学习的方法会出现特征涂抹的问题,导致生成的鸟瞰图表示质量不高。

提出的方法:

  • 实现了端到端的训练,也就是单个网络中同时进行深度估计和目标检测
  • 为每个像素预测一组深度分布,能够得到高质量的鸟瞰图,使得边界框定位更加准确

注:本文的related work部分写的也很好,从单目3D目标检测中3D场景中间表示的角度对算法进行了分类(第一种就是基于2D特征的,第二第三种是基于3D特征的):

  • 没有中间表示的方法,也就是基于2D特征+各种约束实现检测,如2D-3D约束,关键点约束等。没有显示的使用深度信息,定位性能相对较差。
  • 基于深度的方法,通过图像直接估计深度图(也就是显示学习深度信息),接下来将深度图作为额外的输入,要么将深度图作为图像的通道要么转换为伪点云。缺点就是下面显示学习的缺点。
  • 基于网格表示的方法,联系体素,将图像特征抓换成体素特征,然后投影到鸟瞰图表示的方法避免了估计深度值(也就是隐式学习深度信息)

细节

网络结构

  • 视锥特征网络:将图像特征投影到3D空间中,输入是 W 1 ∗ H 1 ∗ 3 W_1*H_1*3 W1H13的图像,输出是 W F ∗ H F ∗ D ∗ C W_F*H_F*D*C WFHFDC的视锥特征(为了下一步视锥特征转换到体素表示转换的高效,这里的空间分辨率是比较高的,所以只使用了ResNet的第一个Block的输出),其中 D D D是深度bin的个数, C C C当前特征代表的深度bin对应的特征。具体的过程就是使用ResNet101对图像作特征提取得到 W F ∗ H F ∗ C 1 W_F*H_F*C1 WFHFC1的特征图,然后分两路,一路降低通道数得到 W F ∗ H F ∗ C W_F*H_F*C WFHFC,一路使用DeepLab v3的结构估计类别深度分布 W F ∗ H F ∗ D W_F*H_F*D WFHFD,然后做逐元素相乘得到视锥特征 W F ∗ H F ∗ D ∗ C W_F*H_F*D*C WFHFDC
  • 视锥特征转换到体素表示:通过相机的内参矩阵和采样进行,输入是视锥特征 W F ∗ H F ∗ D ∗ C W_F*H_F*D*C WFHFDC,输出是体素特征 X ∗ Y ∗ Z ∗ C X*Y*Z*C XYZC。视锥特征有的是特征,没有3D位置信息,体素(体素是对3D空间的一个划分,这个是很容易做到的,先预先定义好3D空间的范围和体素块的大小,就可以将空间划分为若干个体素了)有的是3D位置信息但是没有特征,因此需要将视锥特征转换成体素特征。具体的做法就是:将体素的中心 ( x , y , z ) (x,y,z) (x,y,z)作为当前体素的表示,接着将 ( x , y , z ) (x,y,z) (x,y,z)通过内参矩阵转换到图像坐标系下得到 ( u , v , z ) (u,v,z) (u,v,z),接着将深度离散化得到 ( u , v , d i ) (u,v,d_i) (u,v,di) d i d_i di指的就是深度 z z z对应的深度bin,然后在视锥特征中查询就可以得到对应的特征 c c c,将它上采样就得到了体素特征 C C C
  • 体素表示投影得到鸟瞰图表示:输入是体素表示 X ∗ Y ∗ Z ∗ C X*Y*Z*C XYZC,输出是鸟瞰图表示 X ∗ Y ∗ C X*Y*C XYC。具体做法就是最后两个维度concat然后 1 ∗ 1 1*1 11卷积降维。
  • 检测:使用PointPillars处理鸟瞰图表示。

在这里插入图片描述

类别深度分布

以往的深度信息学习方法存在的问题:
显示学习:也就是估计深度图。一般深度估计和目标检测是分开训练的,深度估计网络无法在检测任务中同时优化,得到的深度图是次优的(因为只有ROI的深度值才是我们后面需要的,背景像素的深度值没那么重要,起码这一点是分开训练无法学习到的),会导致边界框定位性能差
隐式学习:就是将2维的图像特征转换成体素特征,然后转换成鸟瞰图。然而这样子可能存在特征涂抹的情况(这个过程其实是和本文一样的,只是本文使用了深度bin,而以前是直接使用深度值的,多个体素点会对应同一个2维特征),同样会增加定位物体的难度。

类别深度分布:每个像素对应的不再是一个深度值,而是一组类别深度分布,也就是属于每一个预定义的深度箱的概率。为了使深度分布尽可能准确,作者是加了监督信号的(监督信号来自于点云投影)
效果:在隐式学习的方法中,使用作者的方法能够让图像特征在3D空间中精确定位,消除特征涂抹问题,使得产生的鸟瞰图特征更加准确(因为原来的话体素采样点很容易就对应到同一个特征,而作者提出的方法下,体素采样点基本不会对应到同一个特征)。
b是不采用类别深度分布方法生成的鸟瞰图特征的可视化结果,可以看到收到了特征涂抹问题的影响。c是采用类别深度分布方法生成的鸟瞰图特征的可视化结果,特征会更加清晰和准确

在这里插入图片描述
深度离散化:离散化方法有均匀离散化、对数增长bin大小的离散化和线性增长bin大小的离散化,作者采用了线性增长bin大小的方法。
在这里插入图片描述

深度分布标签生成:深度分布肯定要有标签,不然怎么效果怎么好呀。具体方法就是将点云投影到图像坐标系下得到深度图,然后再离散化成one-hot向量。

损失函数

第一个损失是生成类别深度分布的损失,因为是分布,而且标签是one-hot向量,所以用交叉熵损失就比较合适,并且很显然前景的类别深度分布和背景的类别深度分布重要性完全不一样,数量也相差巨大,因此作者采用了focal loss。
其余的损失和PointPillars中一样了
在这里插入图片描述

与OFT-Net 的对比

1、OFT-Net没有显示的深度估计部分;而CaDNN有显式的深度估计,并且使用的还是类别深度估计。

2、OFT-Net在做OFT的时候将整个体素投影了过去然后做聚合,计算量大;而CaDNN只投影了体素的质心点,计算量小,且由于类别深度估计不存在特征涂抹问题。

3、OFT-Net采用的是z轴方向元素带权相加的方法得到鸟瞰图;而CaDNN采用的是reshape+1*1卷积的操作。

4、检测头:OFT-Net的检测头采用的是基于图像的方法常用的检测头;CaDNN采用的就是基于点云的方法常用的检测头

这篇关于【3D目标检测】Categorical Depth Distribution Network for Monocular 3D Object Detection的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/667092

相关文章

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

深入探讨Java 中的 Object 类详解(一切类的根基)

《深入探讨Java中的Object类详解(一切类的根基)》本文详细介绍了Java中的Object类,作为所有类的根类,其重要性不言而喻,文章涵盖了Object类的主要方法,如toString()... 目录1. Object 类的基本概念1.1 Object 类的定义2. Object 类的主要方法3. O

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

poj 2349 Arctic Network uva 10369(prim or kruscal最小生成树)

题目很麻烦,因为不熟悉最小生成树的算法调试了好久。 感觉网上的题目解释都没说得很清楚,不适合新手。自己写一个。 题意:给你点的坐标,然后两点间可以有两种方式来通信:第一种是卫星通信,第二种是无线电通信。 卫星通信:任何两个有卫星频道的点间都可以直接建立连接,与点间的距离无关; 无线电通信:两个点之间的距离不能超过D,无线电收发器的功率越大,D越大,越昂贵。 计算无线电收发器D

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景