SURF获得专利,SIFT也是如此。 ORB和BRIEF没有获得专利,但它们的功能不是规模不变的,严重限制了它们在复杂场景中的实用性。
是否有任何特征提取器能够像SURF一样快速地提取尺度不变的特征,并且不像SURF和SIFT那样严格获得专利?
答案 0 :(得分:30)
虽然您已经选择了BRISK,但您可能会发现FREAK很有趣。作者声称比BRISK和ORB有更好的结果。我还应该补充一点,ORB 是规模不变的,但在该领域存在一些问题。所以我仍然建议有人试一试。
FREAK source code与OpenCV兼容(合并它们是多么容易,我不知道),作者正在努力将其提交给OpenCV项目。
修改强>
FREAK is now part of opencv feature detectors / descriptors.
您can read here more关于多个功能检测器/提取器之间的差异,and also a series of benchmarks包括FREAK和其他常用功能。
答案 1 :(得分:11)
FREAK应该是最快规模和旋转不变描述符提取器,它是开源,您可以轻松地使用它,因为它在OpenCV中实现。你需要一个使用汉明距离的二进制匹配器,就像BruteForceMatcher一样。
这里有一个关于如何使用它的example,可以通过SIFT描述符轻松替换。
答案 2 :(得分:8)
我最终使用Brisk,这是一个功能检测器,其性能可与SURF相媲美,但在BSD许可下。此外,它有一个非常好的开源C ++实现,可以轻松插入OpenCV FeatureDetector框架,因此它就像2行选择在代码中使用Brisk而不是SURF。
答案 3 :(得分:6)
您可以尝试multi-scale histogram of oriented gradients。它不会完全按比例不变,但如果您的数据受到一组合理的比例限制(通常是实际情况)的约束,那么这可能对您有用。
另一种方法,完全取决于您的预期应用程序,将利用poselets,即使它们构建在非尺度不变的描述符之上,如定向渐变的直方图或外观模型。如果训练数据中的注释包括不同尺度的不同检测项目的示例,那么Poselets中用于训练的Procrustes式距离应该注意很多尺度不变性。如果您的主要应用程序未对部件进行本地化检测,则可能不太令人满意。
顺便说一句,我认为SIFT和SURF能够以这种方式获得专利是非常不幸的,因为它们(通过赠款)(至少部分)通过纳税人资金获得资助。
答案 4 :(得分:3)
FREAK现已包含在OpenCV 2.4.2中,您可以轻松使用它: - )
答案 5 :(得分:3)
你可以尝试KAZE,它应该更快更精确(视频看起来很花哨,但我自己还没试过)。还有一个加速版本。
Pablo F. Alcantarilla,Adrien Bartoli和Andrew J. Davison,“KAZE Features”,在欧洲计算机视觉会议(ECCV)上。 Fiorenze *,意大利。 2012年10月。
Pablo F. Alcantarilla,JesúsNuevo和Adrien Bartoli,“Fast Explicit Diffusion for Accelerated Features in Nonlinear Scale Spaces”,英国机器视觉会议(BMVC)。英国布里斯托尔。 2013年9月
可以在author's website找到源代码,视频等。
*佛罗伦萨
答案 6 :(得分:-1)
通过在地标点周围形成补丁来检测地标点并找到生猪特征(它没有获得专利)。