根据MVSnet论文[1]原文说明,点云评估主要从准确性和完整性两个方面来评估。
- 针对准确性的评估,采用平均距离指标来度量,具体指标分别为Acc、Comp、overall,准确性指标越低越好,表示R与G之间的距离越小,恢复的点云更准确。
- 针对完整性的评估,采用百分比指标来度量,具体指标分别为Acc、Comp、f-score或者precision、recall、f-score,完整性指标越高越好,表示R恢复的模型更加完整。
MVSnet原文中没有给出具体指标的计算方式,在论文[2]中有距离度量的详细解释,在论文[3]中有百分比度量的具体计算公式。 - MVSnet论文评估结果中的距离度量指标(Mean distance metric)为Acc、Comp、overall。
如下图(a),蓝色的表示是重建值R,绿色的表示真值G。 - Acc,根据重建点云R中的点,找点云真值G(结构光扫描真值)中对应的点,看距离有多近,评估点云准确性。如下图(b),对于R中的每一个顶点,在G上找最近的对应的点计算距离,红色部分不计算。
- Comp,根据G中的点,找R中有没有对应的点,G中的点有多少由R重建出,评估点云完整性。如下图(c),对于G中的每一个顶点,在R上找最近的对应点,计算距离,红色部分表示未被 R 覆盖。
- overall,综合考虑准确性和完整性,取Acc和Comp的平均值作为overall指标。
- MVSnet论文评估结果中的百分比度量指标(Percentage metric)为Acc、Comp、f-score,计算方式为论文[3]中的precision、recall、f-score。
- precision,衡量R到G的距离。公式(3)定义了R中的一个点r到G的距离,r到G中所有点的距离中,最小的距离就是r到整个G的距离。公式(4)定义了在阈值d下,R的precision,即对于R中的所有点,计算这些点到G的距离,统计所有距离小于d的点的个数,除以R中点的总个数后,乘以100,最终的结果可以转换成百分比。
- recall,衡量G 到 R的距离。公式(5)定义G中一个点g到R的距离,与公式(3)类似。公式(6)定义了在阈值d下,R的recall。与公式(4)类似。
f-score,综合衡量precision和recall,如公式(7)定义。
根据xy-guo开源(非MVSnet官方代码)的MVSnet-pytorch中的matlab评估代码,对D=192预训练权重测试22个scan生成的点云文件进行平均距离度量的评估,该评估代码仅实现了平均距离的评估。
注:该评估代码需要测试结果,即基于xy-guo开源的权重测试产生的点云文件,以及DTU数据集的SampleSet和Points两个数据集,其中SampleSet中有全部scan的mask和scan1、scan6的点云文件,而测试使用了22个scan,因此需要下载DTU官方数据中的Points数据,将其所有点云文件拷贝到SampleSet中。
- DTU数据集官网:https://roboimagedata.compute.dtu.dk/?page_id=36
用xy-guo开源的D=192的权重跑出来的评估效果与其介绍的有细微差距,指标差一点(蓝色字体所示)。
参考文献:
[1]YAO Y, LUO Z, LI S, et al. Mvsnet: Depth inference for unstructured multi-view stereo; proceedings of the Proceedings of the European conference on computer vision (ECCV), F, 2018 [C].
[2]SEITZ S M, CURLESS B, DIEBEL J, et al. A comparison and evaluation of multi-view stereo reconstruction algorithms; proceedings of the 2006 IEEE computer society conference on computer vision and pattern recognition (CVPR’06), F, 2006 [C]. IEEE.[3] KNAPITSCH A, PARK J, ZHOU Q-Y, et al. Tanks and temples: Benchmarking large-scale scene reconstruction [J]. ACM Transactions on Graphics (ToG), 2017, 36(4): 1-13.