计算机视觉方向简介:深度图补全

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达c71e5fccf549e94e197386d9fb0d08b0.png

有什么用?

微软2010年发布了消费级RGB-D(RGB+depth)相机Kinect1,此后涌现了大量基于RGB-D相机的研究工作,比如用RGB-D相机来进行室内三维重建,比较有名的是KinectFusion、Kintinuous,ElasticFusion,InfiniTAM,BundleFusion等。此外,RGB-D相机还大量用于物体及人脸的三维建模、自动驾驶、增强现实、三维打印等。

目前主流的RGB-D相机有微软的Kinect系列,Intel的realsense系列,structure sensor(需结合iPad使用)等。去年iPhone X前置结构光深度相机(depth)面世后,更是激发了手机产业链深度相机的热潮,目前小米、OPPO、Vivo等手机大厂都在积极推动深度相机在手机上的应用。

虽然RGB-D相机前景无限,但是受制于物理硬件的限制,目前深度相机输出的depth图还有很多问题,比如对于光滑物体表面反射、半/透明物体、深色物体、超出量程等都会造成深度图缺失。而且很多深度相机是大片的深度值缺失,这对于算法工程师来说非常头疼。

因此,深度图补全一直是一个非常有用的研究方向,之前的文献大都只能补全比较小范围的深度缺失,对于较大深度值缺失的情况无能无力,本文介绍的是2018 CVPR 最新的一项研究deep depth completion,不受RGB-D相机类型的限制,只需要输入一张RGB加一张depth图,可以补全任意形式深度图的缺失。对于算法工程师来说真的是喜大普奔啊,目前主要针对的是室内环境。

36596275add1fdb7859c55a6e8f1a171.png

什么原理?

Deep depth completion算法流程如下,其输入是RGB-D相机拍摄的一张RGB图像和对应的深度图,然后根据分别训练好的两个网络(一个是针对RGB图表面法线的深度学习网络,一个是针对物体边缘遮挡的深度学习网络),预测该彩色图像中所有平面的表面法线和物体边缘遮挡。最后用深度图作为正则化,求解一个全局线性优化问题,最终得到补全的深度图。


85f7fbeebb3b3a344199ba63028c93bf.png

一切看起来顺理成章,但是,做深度学习的小伙伴们纷纷举起了小手,开始提问:我的训练集怎么搞?我去哪里找大量的高精度已经补全的深度图?

的确,这是个大问题,消费级深度相机拍摄的深度图本身就是缺失的,没办法作为深度图的groundtruth,但是现有的RGB-D数据集几乎都是基于消费级深度相机的。而使用高精度的深度相机不仅设备费用成本高,时间成本也非常高,give up吧。

这里要夸一下本文的作者,聪明又勤奋,还乐于奉献。他们之间提供了一个已经补全好深度图的RGB-D数据集,包含105,432幅RGB-D图,而且给你都对齐了的。那他们是怎么做到的?

主要是因为他们聪明。对,你没看错!他们利用现有的消费级RGB-D相机拍摄的数据集(Matterport3D、ScanNet、SUN3D、SceneNN)先进行稠密的三维重建,然后再进行优化和渲染。虽然单一视角的深度图可能会有因为不同原因引起的缺失,但是经过多个不同视角的重建和优化,这些缺失的地方都被填补了。然后将其深度结果反投影回到输入深度图。最后得到的深度图就是groundtruth啦,简直完美!省时省力省钱,还顺带学习了稠密三维重建,就是这么棒!看看下面的图,还是比较形象的,黄色代表不同视点的图,红色是当前视点渲染后的深度图。

da10ebe260c0d2a8e86def06992aec82.png

效果怎么样?

亲自测试,效果杠杠滴!具体的量化比较就不放了,可以查看论文,目前效果是该领域最好的,我这里只放几张比较直观的视觉效果的比较结果。

首先是和联合双边滤波的inpainting方法进行比较,如下所示,可以明显看出边缘信息保存的很好,噪点也很少。

fbbea1caedad36ab460dafdadcf25e4d.png

再看一下和深度神经网络深度估计方法的对比,如下图所示。不仅深度值更准确,大尺度的几何结构也更准确。

6495a8e5c09bdafecf76d24b69f07547.png

来看一下点云结果对比吧,原始的RGB-D生成的点云结果如下:

bbf8da8a9daa85e973ba88ae287fd4e7.gif

经过深度图补全后生成的点云结果如下:

4447f303b4d0b461baaf836538a7e06b.gif

运行速度怎么样?

学术界对运行速度不是特别关注,但是产业界就是死死的盯住运行速度不放,因为这直接关系到能否直接用在嵌入式设备上。

他的运行速度是这样的:

实验环境:对于一幅320x256的RGB-D输入图来说,用NVIDIA TITAN X GPU预测表面法线和边界遮挡需要0.3s。在Intel Xeon 2.4GHz CPU上求解线性方程需要1.5秒。

虽然慢了点,但是也给算法优化的同志们留了一个不大不小的挑战,不是吗?

有什么参考资料

良心的作者不仅给了数据集,还开源了代码,还给了训练好了结果,如此良心负责人的作者必须给个大大的点赞!

项目地址:

http://deepcompletion.cs.princeton.edu/

开源代码地址:

https://github.com/yindaz/DeepCompletionRelease

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

3e77cd160c4b54d4371b455cf0b4e85c.png

d3ea2cbf0043090dff3fd9167050ffa0.png

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值