目前要做两个无序点集之间的相似性计算,在看过Chamfer Distance后,个人觉得CD的计算方式决定了其无法处理两个点集整体分布差异大,但是局部有部分点距离很近的情况,而这种情况在点集中是一定可能出现的,因此使用EMD可以保证每个点集都有一一对应的整体cost最小点
Earth Mover Distance
在网上有很多EMD的解析和案例分析,这里我就不进行赘述,直接放几个比较好的BLOG:
- 概念理解:EMD(earth mover’s distances)距离
- 在CV任务中的应用案例:DeepEMD: Differentiable Earth Mover’s Distance for Few-Shot Learning(阅读笔记)
- 更多参考:知乎关于EMD的其他文章
Pytorch实现
在GitHub上有大神已经写好了EMD的实现以及CUDA算子,这里我们直接使用该开源实现,并介绍函数使用细节。
earth_mover_distance()