ASD定义如下:
(注意ASD并不对称,与豪斯多夫距离一样,ASSD是对称的,求了均值)
在三维数据中,需要计算体素表面的距离,如果三维数据集合A有m个点,三维数据集和B有n个点,那么,计算A到B的距离,需要计算A中每一个点与B中每一个点的距离,算法复杂度m*n;
这里推荐Deep Mind公布的计算方法:https://github.com/deepmind/surface-distance
代码写的非常棒,理解起来有些麻烦,特记录如下:
主要思想:通过对体素数据,体素点与体素点之间的距离进行编码,建立查找表,从而极大减小了运算量和算法复杂度,从而计算点与点之间的距离。这里需要注意的是,体素与体素之间的距离计算是以单位体积进行计算的。
主要步骤如下:
非常棒的实现方法,其中用到了scipy中的一些函数。