TL;DR :是否有用于任意二维点集的C ++实现的RANSAC或其他强健通信算法可免费使用?
我知道存在许多包括或利用诸如RANSAC(随机抽样一致性)等对应算法的实现。它们经常用于计算机视觉应用程序,并在库中找到,例如OpenCV,PCL等。该通用算法众所周知,并且各个网站列出了不同的步骤。
现在,我找到的所有“高级”实现(针对OpenCV,PCL等完成)都是针对具有潜在假设集的特定类型问题的。在OpenCV中,您希望在第一张图片和第二张图片的一部分之间找到单应矩阵(此示例)。在PCL中,您处于三维点云的领域,并且只能匹配特定的已定义形状(线,球等)。
我“简单”地想要做的是获取任意二维点集(可能包含一些噪声)并在更大的二维点集中找到对应点(其中包含一些噪声和其他点)。它必须不需要特定的模型训练,除了输入两个点集外。我正在使用C ++自己实现它,但:
我绝不是经验丰富的程序员,并且需要整个过程快速执行;我自己完成的众所周知算法的先前实现(边缘检测,高斯模糊等)已被证明明显较慢(> 10倍)。
仅仅复制一个已存在的开源实现(比如OpenCV)已经超出了我的能力范围(需要太多依赖和虚拟实现模板等...)
所以,如果有人知道我错过了已经被证明可以免费使用(类似BSD的)的C++实现...