不同尺寸2D路径数组的相似度分数计算方案问询
路径相似度分数计算需求

这些是3D软件Blender中z=0的2D多段线,用作路径。我需要计算它们的similarity score(相似度分数)。
区分**similarity(相似度)和distance(距离)**的概念十分重要:相似度衡量两个序列的相似或接近程度,而距离量化两个序列的差异程度。距离越小,两个模式越相似,因为它们最优对齐所需的调整越少。
场景情况
- 路径的长度或点数可能不同。
- 路径可能相似但在任一轴上有轻微缩放。
- 点的分布可能不同或未对齐。
- 起点必定对齐,但终点可能对齐也可能不对齐。
已尝试方案
最初我使用scipy的基于距离的函数做了测试,但由于缩放问题,得到的分数较高——这对于缩放后的数据是正确的,但对我来说无用。
测试用的路径数据如下:
import numpy as np # path data from blender PATH1 = np.array([ [ 0. , -0.54760742], [ 0.06086956, -0.01623535], [ 0.08695652, 0.33010864], [ 0.12173913, 0.55926514], [ 0.14782609, 0.47113037], [ 0.2 , -0.17211914], [ 0.2173913 , -0.26098633], [ 0.2521739 , -0.18804932], [ 0.31304348, 0.33068848], [ 0.33913043, 0.46157837], [ 0.36521739, 0.36813354], [ 0.39130434, 0.12088013], [ 0.42608696, -0.06130981], [ 0.5043478 , 0.02139282], [ 0.56521738, 0.22866821], [ 0.60000002, 0.16775513], [ 0.65217394, -0.1048584 ], [ 0.77391303, -0.36459351], [ 0.81739128, -0.26113892], [ 0.87826085, 0.21520996], [ 0.9217391 , 0.19732666], [ 1. , -0.51672363]]) PATH2 = np.array([ [ 0. , -0.57351685], [ 0.08849557, 0.20959473], [ 0.13274336, 0.45080566], [ 0.15929204, 0.35235596], [ 0.20353982, -0.20309448], [ 0.2300885 , -0.27749634], [ 0.2920354 , 0.08712769], [ 0.3539823 , 0.27789307], [ 0.38053098, 0.24447632], [ 0.43362832, -0.03421021], [ 0.51327431, 0.09094238], [ 0.60176992, 0.09771729], [ 0.66371679, -0.11819458], [ 0.71681416, -0.17974854], [ 0.79646015, -0.39971924], [ 0.84070796, -0.18743896], [ 0.88495576, 0.23342896], [ 0.90265489, 0.25582886], [ 0.92920351, 0.20352173], [ 0.94690263, 0.08068848], [ 1. , -0.50335693]])
我还测试了fastdtw、correlate2d和cosine similarity,但无法确定哪种算法符合需求,结果也难以预测。
内容的提问来源于stack exchange,提问作者Prashant
相关产品推荐
相关产品推荐

