11

AI学习者 · 2021年11月02日

MindSpore创新模型EPP-MVSNet:高精高效的三维重建

背景

稠密重建(Multi-view Stereo, MVS)是一种利用多视角拍摄的图像以及相机位姿,通过空间几何关系进行像素级密集匹配从而预测图像深度的算法,被广泛应用于AR/VR、游戏、勘测等领域。自MVSNet[1]提出以来,基于正平扫(front-to-parallel)+可微单应性形变(differentiable homography)构建多视图对cost volume的learning-based方法在越来越多的公开数据集上证明了其优势。但是这类方法的预测精度和效率会极大地受到深度假设的影响,在深度范围较大的场景下难以达到计算量和精度之间的良好平衡。后续的CasMVSNet[2]提出coarse-to-fine的结构范式,在小尺度特征上进行粗粒度全局深度范围下的预测,将refine的任务交给大尺度特征。coarse-to-fine的范式在一定程度上控制了整体的深度假设数量,因此能够在不过多增长计算量的情况下提升深度预测精度,但是依旧没有对深度假设的设置问题进行过多探讨。

针对上述问题,华为MindSpore团队提出了一种针对深度假设进行合理设置的高精高效稠密重建算法EPP-MVSNet。EPP-MVSNet继承了coarse-to-fine思想,在此基础上分别对于coarse阶段和fine阶段的深度假设分别提出了对应的EAM(epipolar assembling module)和ER(entropy refining strategy)模块进行优化。同时,通过对3D正则网络进行精简,进一步提升了整个模型的计算效率。截止2021年3月,EPP-MVSNet在稠密重建领域的公开数据集Tanks & Temples上取得了intermediate榜单第一,advanced榜单第四的成绩。相关论文已被ICCV2021接收,代码已基于MindSpore开源发布,欢迎大家使用。

论文链接

https://openaccess.thecvf.com/content/ICCV2021/html/Ma\_EPP-MVSNet\_Epipolar-Assembling\_Based\_Depth\_Prediction\_for\_Multi-View\_Stereo\_ICCV\_2021\_paper.html

代码链接

https://gitee.com/mindspore/models/tree/master/research/cv/eppmvsnet

名词解释

深度假设:深度预测流程中,像素对应三维点可能位于的深度假设平面。

深度间隔:深度预测流程中,深度假设平面之间的间隔。

对极线:物体的某个真实三维点,与主/辅助视图的相机中心连线构成极平面,极平面与辅助视图的交线称为对极线。

主视图:深度预测流程中,需要进行深度预测的图像。

辅助视图:深度预测流程中,与主视图关联度最高的图像集合。

Cost Volume:深度预测流程中,主视图上像素在预设的深度假设范围内,与辅助视图上对应采样点之间的匹配关系构成的集合。

算法介绍

Learning-based coarse-to-fine稠密重建方法主要分为以下几个步骤:二维特征提取、cost volume构建、3D正则、深度结果预测。EPP-MVSNet的主要创新点EAM与ER模块聚焦于关键步骤cost volume构建,算法流水线如下图image.png

Epipolar Assembling Module

深度假设的设置作为大部分coarse-to-fine稠密重建方法的关键步骤,在不同的阶段的设置有着较大差别。其中,coarse阶段需要设置全局深度范围下的若干深度假设,同时为了控制cost volume的大小,该阶段往往只能设置一个相对较小的深度假设数量。这就导致了coarse阶段的深度假设间隔相对较大,具体反映到辅助视图上,呈现出对极线采样点分布相对稀疏的情况,容易遗漏关键特征点。
image.png

针对此问题,EPP-MVSNet提出了EAM(epipolar assembling module)模块,通过提前计算默认深度假设范围情况下辅助视图上原始采样点的分布情况,根据其分布间隔适应性地插入新的采样点。通过这个策略,EPP-MVSNet能够根据主视图和不同辅助视图之间由于空间几何关系不同产生的不同采样点分布情况,自适应地维持采样点的密集程度,减少遗漏关键特征点的可能。
image.png

自适应插值虽然增加了采样密度,但是不可避免地导致了cost volume的线性增长,同时也可能出现主视图和不同辅助视图生成的cost volume的形状不一的情况。为了控制cost volume的大小,EAM采用了“深度卷积“对插值后的cost volume进行简单的信息提取,之后根据插值情况选择不同窗口大小和步长设置的max pooling对cost volume进行降采样,使其变回插值之前的形状。同时,EAM的动态pooling还会将cost volume深度维度上插值点的cost信息汇聚到原始点上。

经过EAM模块处理后的cost volume,依旧维持了原始形状,但是每个cost voxel都汇聚了邻近插值采样点的信息,其感受野要远优于处理之前,从而能够做出更为精准的深度预测。

Entropy Refining Strategy
image.png

EAM模块主要解决了coarse阶段的深度假设问题,而在refine阶段的深度假设一般以上个阶段的深度预测结果为中心,向两边各扩展一定区间作为深度假设范围。由于refine阶段的深度预测基于高分辨率的特征,考虑到计算效率无法采用过多的深度假设。如果为了预测精度统一缩小深度假设范围,可能导致前置阶段深度预测不准确而将真值排除在外;如果相对保守地放宽深度假设范围,又会引起深度间隔增大,从而导致预测精度下降。

针对上述问题,EPP-MVSNet提出了ER(entropy refining strategy)模块,可以根据当前阶段的深度预测情况自适应调整下个阶段的深度假设范围。ER模块利用了“熵”的性质,其表达了模型对于预测结果的置信度:熵越大,代表模型对于预测结果越不置信。

如上述所示,E代表熵,k代表当前处于的阶段,M代表当前阶段的深度假设数量,P代表深度预测概率,p代表像素位置,d代表相应的深度假设。
image.png

ER模块可以根据每个阶段的深度预测情况自适应地确定下个阶段适宜的深度假设范围,从而起到进一步refine深度预测精度的同时,减少错误地将真值排除在深度假设范围之外的情况。

Light-weighted Network

EPP-MVSNet在cost volume聚合上参考[3]采用了加权聚合的方式,同时为了节省计算量,只在coarse阶段生成作为权重的visibility map,后续阶段通过上采样的方式复用权重。为了进一步提升整个模型的计算效率,EPP-MVSNet受到[4]的启发,采用pseudo-3D卷积代替传统3D卷积。具体而言,EPP-MVSNet的3D正则网络均由3*1*1和1*3*3的卷积组合而成,分维度提取cost volume的信息。

image.png

通过上述设置,EPP-MVSNet整体的计算效率和显存占用得到了进一步的提升。

实验结果

image.png
如上图所示,采用了EAM和ER模块的EPP-MVSNet在Tanks & Temples intermediate数据集上超越了之前的SOTA方法。
image.png
截止2021年3月18号,EPP-MVSNet获得了Tanks & Temples intermediate榜单第一和advanced榜单第四的成绩。

总结

EAM模块有效解决了coarse阶段全局深度假设范围下深度间隔相对较大导致的采样稀疏问题,借助动态pooling的设计控制了计算量的同时提升了深度预测精度。ER模块为coarse-to-fine方法在refine阶段的深度假设设置提供了新思路;最后,得益于轻量级的网络设计和pseudo-3d卷积的使用,EPP-MVSNet在运行时间上也优于大部分SOTA方法,仅次于PatchmatchNet[5]。

对于EPP-MVSNet的介绍就到这里啦,欢迎大家多多讨论,批评指正。

MindSpore官网:https://www.mindspore.cn/
MindSpore论坛:https://bbs.huaweicloud.com/forum/forum-1076-1.html

参考文献:
[1] Yao Y, Luo Z, Li S, et al. Mvsnet: Depth inference for unstructured multi-view stereo[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 767-783.
[2] LaroGu X, Fan Z, Zhu S, et al. Cascade cost volume for high-resolution multi-view stereo and stereo matching[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020: 2495-2504.chelle H, Erhan D, Bengio Y. Zero-data learning of new tasks[C]//AAAI. 2008, 1(2): 3.
[3] https://arxiv.org/abs/2008.07928
[4] Qiu Z, Yao T, Mei T. Learning spatio-temporal representation with pseudo-3d residual networks[C]//proceedings of the IEEE International Conference on Computer Vision. 2017: 5533-5541.
[5] Wang F, Galliani S, Vogel C, et al. PatchmatchNet: Learned Multi-View Patchmatch Stereo[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 14194-14203.

文章转载于:知乎
作者: 于璠

推荐阅读

更多嵌入式AI技术相关内容请关注嵌入式AI专栏。
推荐阅读
关注数
18838
内容数
1371
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息