SDOD: Real-time Segmenting and Detecting 3D Objects by Depth(实时3D检测与分割)

作者:Tom Hardy
Date:2020-2-24
来源:SDOD:基于depth的实时3D检测与分割

主要思想与创新点

大多数现有的实例分割方法只关注2D对象,不适用于三维场景,如自动驾驶。本文提出了一种将实例分割和目标检测分为两个并行分支的模型,将对象深度离散为“深度类别”(背景设置为0,对象设置为[1,K]),将实例分割任务转化为像素级分类任务。mask分支预测像素级的“深度类别”,3D分支预测实例级的“深度类别”,通过给每个实例分配具有相同“深度类别”的像素来生成实例掩模。另外,为了解决KITTI数据集(200为mask,7481为3D)中mask标签与3D标签不平衡的问题,本文采用其它实例分割方法生成的unreal mask来训练mask分支。
尽管使用了不真实的mask labels,但在KITTI数据集上的实验结果仍然达到了车辆实例分割的最佳性能。

本文创新点主要包括三点:

  1. 通过离散深度将实例分割任务转化为语义分割任务
  2. 提出一个结合3D检测和实例分割的网络,并将其设置为并行分支以加快速度
  3. 结合unreal的mask和真实的深度来训练mask分支,以解决标签不平衡的问题

网络结构

SDOD框架的总体结构如下图所示,它由两个并行分支:3D分支和mask分支组成。

在这里插入图片描述
针对3D检测:本文参考了MonoGRNet的设计,将3D对象检测分解为四个子网:2D检测、实例级深度估计、3D位置估计和角点回归。2D检测采用类似于YOLO结构的方式,Instance Depth是从RGB图像中回归出来的离散深度图。

针对Mask分支:采用ASPP+FCN方式。FCN模块最终输出C个图像(C代表类别),每个图像是目标的像素级深度类别图,如上图所示。像素的颜色越深,像素的深度值就越大,像素离我们越远。这个分支完成了像素级别的分割+depth估计。

Mask分支完成了基于像素级别的深度和类别分割,3D分支完成了目标的3D检测,两者进行结合,完成实时检测和分割。

针对损失函数:主要包括2D Detection loss、实例级深度损失、像素级深度损失以及3D box的角度损失和位置损失。

实验结果

主要针对KITTI数据集进行试验分析,并和其它模型进行了性能对比:

在这里插入图片描述
在这里插入图片描述
实例检测分割效果:

在这里插入图片描述

发布了270 篇原创文章 · 获赞 303 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/qq_29462849/article/details/104506012