在图像上执行 CTRL+F(查找对象)的算法
不变物体识别(IOR),是指在大小、旋转和位置等变化存在的情况下快速准确地识别物体。
其中SIFT和SURF是最受欢迎的,但不幸的是SIFT 和 SURF 都获得了专利。
如果您正在寻找开源算法,我建议您使用 openCV 的Oriented FAST 和旋转简要 (ORB),OpenCV ORB 参考链接
报价
ORB在计算成本、匹配性能和主要专利方面是 SIFT 和 SURF 的一个很好的替代品。
调查报告
我发现前两篇研究论文涉及一个训练示例。
-
本文提出了一种基于高斯导数的旋转不变局部描述子。我们使用“可控滤波器”来实现微分响应。旋转不变性是通过将描述符“引导”到中心像素位置的主要方向来实现的. 这种策略的一个优点是可以直接从一阶导数响应中计算出主要方向。他们还会在只有一个示例可用的情况下考虑特征选择。虚拟图像是通过旋转和重新缩放图像生成的。通过估计中心像素位置的主要方向并计算正确估计的数量来计算旋转和尺度不稳定特征。在学习步骤中移除不稳定的特征。由此产生的物体识别系统在图像平面中的各种光照变化、视点变化、尺度变化和旋转以及部分遮挡下都能表现出鲁棒性
如果您想从一个训练示例开始,并希望在可用示例(如在线学习计划)时添加更多示例,请采用这种方法
局部尺度不变特征的目标识别引入了 SIFT
本文提出了一种新的图像特征生成方法,称为尺度不变特征变换(SIFT)。这种方法将图像转换为大量局部特征向量,称为 SIFT 键。每个图像生成 1000 个 SIFT 键的顺序。这些键用作识别候选对象匹配的最近邻索引 方法的输入。该系统可以从单个图像中学习对象模型。
这篇研究论文ORB:SIFT 或 SURF 的有效替代方案比较了 ORB 与 SIFT 和 SURF 的性能,其中包含两个图像集,一个室内和一个室外场景。ORB 的表现优于室外拍摄的 SIFT 和 SURF 图像,室内拍摄的表现几乎相同
以下论文仅通过少量训练示例支持对象识别(不支持旋转/缩放)
- 使用模型通信进行对象检测的几个示例
本文考虑了每类训练示例(边界框)很少的通用对象检测问题,称为“少示例对象检测(FEOD)”。现有的监督/半监督/弱监督目标检测工作。提出了用于检测的多模态自步学习 (MSPLD)算法,它结合了自步学习和多模态学习不幸的是,这里
提到的 python 包中没有现有的实现。这篇论文虽然只关注少量的目标检测训练样本,但不支持目标的旋转和缩放 - 来自极少数训练示例的对象识别以增强自行车地图
本文介绍了一种对象识别系统,该系统平均每类仅使用 15 个示例进行训练。为了实现这一点,我们结合了卷积神经网络和随机森林的优势来学习补丁分类器。在下一步中,我们将随机森林映射到神经网络,并将分类器转换为全卷积网络。因此,整个图像的处理速度显着加快,并且可以预测边界框。但是,本文不支持对象的旋转和缩放
流行算法
尺度不变特征变换 (SIFT)
Speeded Up Robust Feature (SURF):由于 SIFT 性能较慢,因此引入了加速版本 SURF
Accelerated Segment Test (FAST) 角点检测器的特征:特征检测方法在 SIFT 和 SURF 中不够快
简介(二进制鲁棒独立基本特征)
SIFT 使用具有 128 个浮点数的特征描述符。考虑数以千计的此类功能。匹配需要大量内存和更多时间。我们可以压缩它以使其更快。但我们仍然必须先计算它。BRIEF 提供了一种快捷方式,可以找到内存更少、匹配更快、识别率更高的二进制描述符。
面向 FAST 和旋转的 Brief ( ORB )
OpenCV 开发人员想出了一个新的“免费”替代 SIFT 和 SURF,那就是 ORB。在计算成本、匹配性能和主要专利方面是 SIFT 和 SURF 的良好替代品
RIFT:是 SIFT 的旋转不变推广
RootSIFT
G-RIF
PCA-SIFT
高斯-SIFT
KAZE 和 A-KAZE(KAZE 功能和 Accelerated-Kaze 功能)
GLOH(梯度位置和方向直方图)
以下算法仅通过少量训练示例支持对象识别(不支持旋转/缩放)
- 快速 R-CNN
- R-FCN
- 探测器2
Detectron2 是 Facebook AI Research 的下一代库,可提供最先进的检测和分割算法。它是 maskrcnn-benchmark 和 Detectron 的继任者。Detectron 实现了这些目标检测算法:Mask R-CNN、RetinaNet、Faster R-CNN、RPN、Fast R-CNN、R-FCN
以下算法也优于 SIFT 和 SURF
- KAZE 和 A-KAZE
- FAST 角点检测器
- 宝珠