1、GeoMatch ,Edge-Based-Template-Matching
用opencv编写的形状匹配算法,但不具旋转和缩放功能。
https://www.codeproject.com/KB/graphics/Edge_Based_template_match/GeoMatch_src.zip
https://www.codeproject.com/Articles/99457/Edge-Based-Template-Matching
https://download.csdn.net/download/zfjbit/10732568 GeoMatch_src(VS2015+OpenCv3.3版)
2、shape_based_matching
try to implement halcon shape based matching, refer to machine vision algorithms and applications, page 317 3.11.5, written by halcon engineers
https://github.com/meiqua/shape_based_matching
https://github.com/daxiaHuang/shape_based_matching_subpixel
opencv实现基于边缘的形状匹配算法
https://github.com/zhouqun92/ShapeMatch
3、图像匹配算法分为3类:基于灰度的匹配算法、基于特征的匹配算法、基于关系的匹配算法
(1)基于灰度的模板匹配算法:模板匹配(Blocking Matching)是根据已知模板图像到另一幅图像中寻找与模板图像相似的子图像。基于灰度的匹配算法也称作相关匹配算法,用空间二维滑动模板进行匹配,不同匹配算法主要体现在相关准则的选择方面,常见的基于模板的匹配算法可以参考下面的链接:
参考:基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA、SATD算法
http://blog.csdn.net/hujingshuang/article/details/47759579
(2)基于特征的匹配算法:首先提取图像的特征,再生成特征描述子,最后根据描述子的相似程度对两幅图像的特征之间进行匹配。图像的特征主要可以分为点、线(边缘)、区域(面)等特征,也可以分为局部特征和全局特征。
区域(面)特征提取比较麻烦,耗时,因此主要用点特征和边缘特征。
点特征包括:Harris 、Moravec、KLT、SIFT、SURF 、BRIEF、SUSAN、FAST、CENSUS、FREAK(点击打开链接)、BRISK(点击打开链接)、ORB、光流法(点击打开链接)、A-KAZE等。
边缘特征包括:LoG算子、Robert算子、Sobel算子、Prewitt算子、Canny算子等。
对于所有类型的几何变换,SIFT和BRISK的总体精度最高,SIFT被认为是最精确的算法。定量比较表明,特征检测描述器检测大量特征的能力的一般顺序为:
ORB>BRISK>SURF>SIFT>AKAZE>KAZE
特征检测描述器的整体图像匹配速度顺序为:
ORB (1000) >BRISK (1000) >AKAZE>KAZE>SURF (64D)>SIFT>ORB>BRISK>SURF (128D)
(3)基于关系的匹配算法:建立语义的网络,是人工智能领域在图像处理中的应用,但还没有突破性的进展。
---
参考文献,摘自知乎:计算机视觉中,目前有哪些成熟的匹配定位算法?
1、可以看一下主流的商业机器视觉库,比如Halcon,康耐视的VisionPro及它的PatMax专利算法,OpenVision里的Match和Find模块,这些商业库里的匹配算法都占有很高的篇幅和重要性,而它们的鲁棒性也不是一般算法可以比拟的。
再推荐一本书,《机器视觉算法及应用 Machine vision algorithm and Application》,是Halcon的资深研发人员写的,有一章,模版匹配,里有介绍Halcon里实现的匹配算法的实现原理。
http://product.dangdang.com/1511962373.html
http://product.dangdang.com/1521862365.html
2、可以用一些工具 (在Github上搜索Find-Object或者Template matching) 实际看看
3、GMS了解一下;要求实时(精度也不差): orb+GMS;要求精度: A-SIFT+GMS;相同程度匹配,速度精度比RANSAC效果好
4、sift/surf+flann+ransac,一般情况都好使
SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT)
SURF,(SpeededUpRobustFeatures),是对SIFT的一种改进,主要特点是快速。
Sift算法的优点是特征稳定,对旋转、尺度变换、亮度保持不变性,对视角变换、噪声也有一定程度的稳定性;缺点是实时性不高,并且对于边缘光滑目标的特征点提取能力较弱。
Surf(Speeded Up Robust Features)改进了特征的提取和描述方式,用一种更为高效的方式完成特征的提取和描述。
5、Face Detection,Template Matching , SURF , SIFT to detect features and keypoints in images .
https://github.com/vishalgolcha/ImageMatching
https://blog.csdn.net/qq21497936/article/details/107348874 cv::BFMatcher暴力匹配
6、opencv+python实现图像匹配----模板匹配、特征点匹配
https://blog.csdn.net/zhuisui_woxin/article/details/84400439
Python 使用Opencv实现图像特征检测与匹配
https://blog.csdn.net/HuangZhang_123/article/details/80660688
自动驾驶汽车视觉- 图像特征提取与匹配技术
https://zhuanlan.zhihu.com/p/133301967
https://github.com/williamhyin/SFND_2D_Feature_Tracking