特征点的匹配正确衡量标准与量化
原文链接:https://blog.csdn.net/cgwang_1580/article/details/68944319
另外还有一篇文章写的也不错:http://bookshadow.com/weblog/2014/06/10/precision-recall-f-measure/
目前图像匹配中,局部特征匹配占据了绝大部分,常用的局部特征匹配方法有Harris、SIFT、SURF、ORB等等,不同的特征点检测和匹配方法尤其独特的优势和不足;
特征点匹配经过Ransac算法优化后仍存在错误匹配点对,需要优化后的匹配结果进行量化评价;
特征点检测和匹配评价一般包括两个部分,分别为检测和匹配的评价。
1、特征点检测评价
评价特征点检测方法的优劣常常用到repeatability(重复率)这个概念。
《a performance evaluation of local descriptors》一文提出了特征点检测器和匹配结果的评价准则,我的理解是:图A、B是两幅待匹配图像,图A映射到图B有一个单应性矩阵H1,图B映射到图A有单应性矩阵H2,图A检测出N1个特征点,图B检测出N2个特征点,因为图像A和B有部分图像不重叠,故将A图检测的特征点坐标由H1算出在B图的坐标,去掉不合格(计算结果超出在B图像坐标)的特征点,剩下的特征点数记为n1;同样,B图的特征点经过处理剩下n2个;分母便是min(n1, n2)。将图A剩下的特征点由H1计算出在图B中的坐标,与图B检测出的特征点的坐标求距离,即dist(h1*a1, b1),若距离小于阈值ε,则认为是重复的,这么做是因为得到的单应性矩阵不一定完全精确以及一些别的误差原因。
《An affine invariant interest point detector》中对repeatability定义进行了延伸,针对affine invariant的图像特征点。
repeatability计算式的分母可以和原来定义相同,分子的定义correspondence满足两个条件:
1、同之前定义,即设定ε=1.5;
2、regions映射到另一幅图像中重叠误差小于0.2。
这里第二点是因为特征点检测器得到的特征点实际上是根据特征点附近区域计算梯度来选取特征点,实际上检测的特征区域(region),如Harris-Affine检测的是一个椭圆区域,SIFT检测的是一个圆形区域;当左图一特征点区域在经过乘上单应性矩阵H后实际,该区域会发生变化,所以需要判断变化之后的区域与右图某一特征点区域的重叠误差,误差<0.2,则判断自是一对特征点。
2、特征点匹配评价
特征点匹配的评价一般涉及到两个概念,即Recall(召回率)和Precision(精确率),我们先来了解一下这两个概念。
精确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。
——精确率是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率;
——召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。
在信息检索中:
- 精确率 = 提取出的正确信息条数 / 提取出的信息条数
- 召回率 = 提取出的正确信息条数 / 样本中的信息条数
下面是一个非常经典的解释Recall和Precision的图,我做了一点儿说明:
Precision和Recall指标有时候会出现的矛盾的情况,可以绘制Precision-Recall曲线,曲线越靠上部,结果越好。
对比信息检索的评价,在特征点匹配时:
A指的是实际为匹配点对,且该匹配算法得到了这些匹配对;
B指的是实际为匹配点对,但该匹配算法没有得到这些匹配对;
C指的是实际为错误匹配对,但该算法得到了这些匹配对;
即Precision为匹配结果中有多少是准确的,Recall就是所有正确的匹配结果有多少通过匹配算法得到了。
在第一部分中已经说明了根据两图像间的单应性矩阵H计算两个特征点是否重复,这里设置一个correspondence变量,作为重复特征点的数量,则匹配结果评价的两个参数Precision和Recall有如下公式:
公式中,#correct matches表示匹配结果中正确匹配点对,#correspondences表示特征点检测时重复特征点对(特征点重复即认为实际为正确匹配点对,但可能被匹配算法匹配上,也可能未匹配上),#false matches表示匹配结果中错误匹配点对。其中,正确与错误匹配点对可以用上面提到的两个判断特征点是否重复的条件来判定。
因此,在评价特征点匹配结果时,首先应当知道两个图像间的单应性矩阵H,然后通过特征点检测算法得到左右图像中的特征点信息,根据单应性矩阵得到重复特征点数,即#correspondences;接着由特征点匹配算法得到的匹配结果计算Precision和Recall,绘制1-precision和recall曲线,曲线靠上方的结果较出色!
参考曲线图:
(图片来源——《A Performance Evaluation of Local Descriptors》)
以上内容为我的理解,可能存在理解不当的地方,欢迎指正!
转载请注明出处:图像特征点检测与匹配评价准则——量化
参考资料:
介绍Precision和Recall的博客:
http://blog.csdn.net/pirage/article/details/9851339
http://bookshadow.com/weblog/2014/06/10/precision-recall-f-measure/
文章《A Performance Evaluation of Local Descriptors》
https://www.robots.ox.ac.uk/~vgg/research/affine/det_eval_files/mikolajczyk_pami2004.pdf
K Mikolajczyk大神的特征点重复率计算相关代码:
http://www.robots.ox.ac.uk/~vgg/research/affine/descriptors.html#binaries
特征点检测匹配标准数据库:
http://www.robots.ox.ac.uk/~vgg/data/data-aff.html
另附另一篇文章的讲解过程:
下面简单列举几种常用的推荐系统评测指标:
1、准确率与召回率(Precision & Recall)
准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中精度是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率;召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。
一般来说,Precision就是检索出来的条目(比如:文档、网页等)有多少是准确的,Recall就是所有准确的条目有多少被检索出来了。
正确率、召回率和 F 值是在鱼龙混杂的环境中,选出目标的重要评价指标。不妨看看这些指标的定义先:
1. 正确率 = 提取出的正确信息条数 / 提取出的信息条数
2. 召回率 = 提取出的正确信息条数 / 样本中的信息条数
两者取值在0和1之间,数值越接近1,查准率或查全率就越高。
3. F值 = 正确率 * 召回率 * 2 / (正确率 + 召回率) (F 值即为正确率和召回率的调和平均值)
不妨举这样一个例子:某池塘有1400条鲤鱼,300只虾,300只鳖。现在以捕鲤鱼为目的。撒一大网,逮着了700条鲤鱼,200只虾,100只鳖。那么,这些指标分别如下:
正确率 = 700 / (700 + 200 + 100) = 70%
召回率 = 700 / 1400 = 50%
F值 = 70% * 50% * 2 / (70% + 50%) = 58.3%
不妨看看如果把池子里的所有的鲤鱼、虾和鳖都一网打尽,这些指标又有何变化:
正确率 = 1400 / (1400 + 300 + 300) = 70%
召回率 = 1400 / 1400 = 100%
F值 = 70% * 100% * 2 / (70% + 100%) = 82.35%
由此可见,正确率是评估捕获的成果中目标成果所占得比例;召回率,顾名思义,就是从关注领域中,召回目标类别的比例;而F值,则是综合这二者指标的评估指标,用于综合反映整体的指标。
当然希望检索结果Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下有矛盾的。比如极端情况下,我们只搜索出了一个结果,且是准确的,那么Precision就是100%,但是Recall就很低;而如果我们把所有结果都返回,那么比如Recall是100%,但是Precision就会很低。因此在不同的场合中需要自己判断希望Precision比较高或是Recall比较高。如果是做实验研究,可以绘制Precision-Recall曲线来帮助分析。
2、综合评价指标(F-Measure)
P和R指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure(又称为F-Score)。
F-Measure是Precision和Recall加权调和平均:
当参数α=1时,就是最常见的F1,也即
可知F1综合了P和R的结果,当F1较高时则能说明试验方法比较有效。
3、E值
E值表示查准率P和查全率R的加权平均值,当其中一个为0时,E值为1,其计算公式:
b越大,表示查准率的权重越大。
4、平均正确率(Average Precision, AP)
平均正确率表示不同查全率的点上的正确率的平均。
原文链接:http://blog.csdn.net/taohuaxinmu123/article/details/9833001
特征点的匹配正确衡量标准与量化相关推荐
- OpenCV特征点检测匹配图像-----添加包围盒
OpenCV特征点检测匹配图像-----添加包围盒 最终效果: 其实这个小功能非常有用,甚至加上只有给人感觉好像人脸检测,目标检测直接成了demo了,主要代码如下: // localize the o ...
- 传统特征点检测器的检测特征点和匹配流程
文章目录 一.传统特征点检测器的检测 (一) ORB 1. ORB的流程大致如下 1) 创建尺度金字塔 2) Fast角点检测 3) Harris角点检测 4) 设置特征点方向 5) 描述子生成 ① ...
- 基于几何特征的模板匹配原理
基于几何特征的模板匹配通过计算模板图像与目标图像特征信息,来判断目标图像中是否有与模板图像相近或相同的图像. 模板匹配的大致流程: 首先,需要制作一个模板,并以模板图像以一定角度旋转,制作0°–360 ...
- HPatches 数据集及特征点检测匹配评价指标解析
1. 简介 数据集下载: 数据集 GitHub 地址 HPatches [4.2GB]:hpatches-release HPatches full sequences [1.3GB]:hpatche ...
- OpenCV之特征点模板匹配
OpenCV之特征点模板匹配 版权声明:博文为博主原创文章,转载请注明出处 :https://blog.csdn.net/ganbelieve/article/details/89959505 介绍一 ...
- 图像处理之特征描述与匹配
本节中主要介绍以下两点: BRIEF算法介绍 ORB介绍 一.BRIEF(二进制的鲁棒独立基本特征)的原理介绍 **BRIEF提供了一种直接查找二进制字符串而无需查找描述符的快捷方式.**它需要平滑的 ...
- 怎么正确理解股票量化的概念?
股票量化具有比较强的客观性,可以在一定程度上避免由于人性造成的影响.而股票量化交易可以通过计算机作为决策的工具,执行交易,避免投资者在负面情绪中做出不理性的交易行为,同时还可以时刻保持清醒的头脑. 当 ...
- js 匹配正确手机号
let myreg = /^(((13[0-9]{1})|(14[0-9]{1})|(17[0-9]{1})|(15[0-3]{1})|(15[4-9]{1})|(18[0-9]{1})|(199)) ...
- Android OpenCV(五十七):ORB特征点FLANN匹配
前言 Android OpenCV 系列的上一篇文章中,我们学习了 ORB 特征点的暴力匹配方式.复习一下,暴力匹配法会针对查询描述子中的每个描述符在训练描述子中寻找匹配描述子,算法复杂度是 O( n ...
- Matlab期货量化交易特征选取,【策略分享】Matlab量化交易策略源码分享
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 策略名称:横盘突破策略 策略思路: 日内交易策略,收盘平仓: 横盘突破在过去30根K线的高低点围绕中轴上下0.5%的范围内波动时: 上轨=过去30根K线的 ...
最新文章
- [问答]-ARM文档中的†和‡的含义
- 怎样用python搭建简单的系统_如何用Python搭建一个简单的推荐系统?
- 不同网段互PING,对不?
- 打破情感分类准确率 80 分天花板!更加充分的知识图谱结合范式
- Handler 引起的内存泄露
- Vim中的remap,noremap,nnoremap和vnoremap映射命令有什么区别?
- 实战Citrix XenDesktop 5.5部署
- springboot里面的porm配置问题
- ERP软件的相关运营问题
- BigGAN高保真自然图像合成的大规模GAN训练
- MeasureSpec
- 功能安全-26262-理论到实践-基础知识-基于可靠性理论的的SIL与基于系统理论的STAMP
- ov5640帧率配置_ov5640摄像头设备驱动
- 信息学奥赛一本通 1293:买书 | OpenJudge NOI 2.6 6049:买书
- 计算机控制技术课程配套教材习题解答(第1、2、3章)
- 美元人民币汇率API
- 3D打印显神威:世界首颗3D打印卫星将入轨
- linux超级好用检索跳转工具hg:hyperlinked_grep (grep+kitty)
- 2021软科计算机科学与技术,2021软科排名,NTU 十学科跻身世界前十!
- python 修饰符和装饰器_将两个python装饰器组合到on中
热门文章
- 图像坐标球面投影_晶体的球面坐标与球面投影
- python case用法_Python Switch Case三种实现方法代码实例
- Matlab实现基于元胞自动机模拟室内人员疏散的最基本模型
- Matlab在工业机器人中的运用,基于MATLAB的工业机器人建模与仿真.docx
- Visual Studio无法定位于动态链接库
- Unity笔记之切换鼠标图标样式、PSD格式文件导入Unity
- 一文读懂图像局部特征点检测算法!
- Revisit Knowledge Distillation: a Teacher-free Framework
- JavaScript 运算符
- mysql多对多表设计_数据库怎么设计多对多的数据表