特征检测和跟踪的经典文献是Shi and Tomasi 1994的文章(见参考文献),虽然年代久远但非常经典。这个paper中提出了一个特征提取方法,一个基于图像仿射变换模型(并论证了只需仿射变换中的translation分量而无需deformation分量)的跟踪算法和一个跟踪时进行特征监测(判断哪些是好feature,哪些是坏feature)的技术。特征提取针对最优化tracking设计,可以根据dissimilarity(between predict-feature-position & real-feature-position)进行坏feature的监测,以便删除。根据dissimilarity进行坏点监测 虽然不能检测出所有坏特征点,但是更改为特定的feature detection算法应该会得到更好tracking的结果。

本篇文章对其做以回顾,分以下几部分进行阐述:

1. 两个图像运动模型

2. 计算图像的运动

3. 纹理特征

4. frame差异dissimilarity

5. 特征点的监测(好坏特征判断)

/*********************************两个图像运动模型——deformation & transformation*********************************/

两幅图像(或两帧之间)图像变化:

假设两个时间点t,t+r在点X(x,y)发生的偏移量为δ(ε,η),则δ是关于位置X的一个函数,δ=DX+d,也就是一个仿射变换,其中D是一个deformation matrix,

d是特征窗口中心的translation平移量。图像坐标X取决于窗口中心。也就是说,两帧Image 1 和 Image 2中一个点由X移动到AX+d。A=E(单位矩阵)+D。给出两幅图I和J,以及I中的一个特征窗口,tracking的过程就是决定Dd中的6个参数。

J(Ax  +  d) =  I(x) .

这个估计的好坏取决于特征窗口大小,窗口内图像的纹理,以及帧间相机移动幅度。当这个window很小的时候,D很难估计,因为motion变化难以估计,而小的窗口便于跟踪,因为不容易造成depth discontinuity. 因此如果只有平移变换(即δ=d)时有很好的实验效果,具有更高的可靠性和准确率。

/*********************************计算图像的运动(模型)*********************************/

由于仿射变换计算的Ad不够精确,将造成误差,我们的目的即最小化ξ

其中,W是feature window,w(x)是权值函数,最简单的情况下设w(x)=1,或者w可以是一个高斯函数,在window 中心的权值最大。仅有平移变换的情况下,A=E;为了最小化上式,我们将deformation matrix D和平移变换矩阵d进行分离,并设置结果ξ为0,然后用截尾泰勒展开式线性化结果:

也就是解6*6的线性方程:Tz=a,其中,将形变矩阵D和平移矩阵d结合起来,误差向量a:


a取决于两幅图像的差。6*6的矩阵T可由下式获得:


其中:

文章中阐述,经常将D设置为零矩阵,因为D和d之间可以通过矩阵V相互影响,即我们可以将系统简化为只求dZd=e

这里,可写作:

其中,z矩阵也称黑森矩阵。这样就可以通过Z和e求得平移变换d。

/*********************************纹理*********************************/

大多window中的特征检测方法都是拍拍脑袋想出来的,不能保证获得好的结果。本文写到,一个单纯的平移d无法很好地描述仿射变换,而一个好的特征可以被很好地跟踪。

已知对于某点的特征矩阵Z的两个特征值λ1,λ2,

1° λ1,λ2都很大——该点为特征点

2° λ1,λ2一大一小——该点为edge(undirected texture pattern)

3° λ1,λ2都小——该点上没有任何明显变化

所以设定一个λ,当min(λ1,λ2)>λ时,该点为特征点。

/*********************************Frame间差异(Dissimilarity)*********************************/

虽然帧间差异很小,但是25帧的累积误差就很大了。事实上,随着帧数的增加,dissimilarity增加很大,如下图:

——:仿射变换模型

------:pure translation

°和+分别表示两个样本集(两个帧序列)

图中有一部分突变为其中一个序列中的特征点部分突然遭遇occluded的原因,这样经过translation变换后得到的特征点位置就相当不准确。

/*********************************特征监测(Monitoring Features)*********************************/

为了限制特征点个数,且令图像中的每一部分只至多被使用一次,规定第一帧中,feature window互不重叠(即设置window大小)。

      

Figure12中所示为一幅图中不同的特征点的跟踪情况,纵轴代表dissimilarity,可以看出feature 58,89的dissimilarity出奇地高,说明这两个点监测结果为坏特征点。再来看这两个feature窗口在不同帧的feature window图(Fig.14):feature.58中,不仅有平移变换,不同帧下的图像发生了变化,那个竖杠逐渐变粗(the gap between the vertical edge in the foreground and the letters in the background widens, and it becomes harder to warp the current window into the window in the first frame(关键原因),thereby leading to the rising dissimilarity),所以不仅仅是仿射变换了,因此该点被监测为bad feature point, and should be deleted。feature.89 同理。

然而,有些非刚性特征不会造成dissimilarity,但他们确实是bad feature. 如下图所示,关注feature 24和60,他们俩的tracking dissimilarity 一直在波动,这是为什么呢?

原文是这样描述的:from the fourth row of fig.14, we see  that  feature 60 (and similarly  feature 24)  contains  very  small lettering,  of  size  comparable to the image’s pixel  size  (the feature window is  25 x  25 pixels). The  matching between  one  frame  and  the  next is haphazard, because  the  characters in  the  lettering  are badly  aliased. 换言之,由于特征点过小,不能进行很好的匹配,经常会进行错误特征点检测,因此他们也是bad feature。

参考文献:

Shi, J. and Tomasi, C. (1994). Good features to track. InIEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR’94), pages 593–600, IEEE Computer Society, Seattle.

from: http://blog.csdn.net/abcjennifer/article/details/7688710

特征检测和跟踪经典理论相关推荐

  1. 视觉SLAM前端特征检测与跟踪的思考

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 就目前视觉SLAM的引用来区分,分为基于特征法的和直接法的视觉SL ...

  2. CPU消耗,跟踪定位理论与实践

    CPU消耗,跟踪定位理论与实践 一.性能指标之资源指标定位方案 1.打tprof报告方法 抓取perfpmr文件 60秒. perfpmr.sh 60 从结果文件中取出tprof.sum 或直接抓取t ...

  3. 2022-10-24 ClickHouse 源码解析-查询引擎经典理论

    ClickHouse 源码解析: 综述 ClickHouse 源码解析: MergeTree Write-Path ClickHouse 源码解析: MergeTree Read-Path Click ...

  4. 管理学30大经典理论

    管理学30大经典理论 1.彼得原理 每个组织都是由各种不同的职位.等级或阶层的排列所组成,每个人都隶属于其中的某个等级.彼得原理是美国学者劳伦斯·彼得在对组织中人员晋升的相关现象研究后,得出一个结论: ...

  5. 【社会网络分析_02】凝聚子群分析与社会网络经典理论

    文章目录 1.凝聚子群的分析 (1)凝聚子群的划分标准 1.基于互惠性的凝聚子群 2.基于可达性的凝聚子群 3.基于度数的凝聚子群 4.基于子群内外关系的凝聚子群 2.社会网络经典理论介绍 (1)15 ...

  6. #三、经典股市理论与博弈论、随机性的前世今生、恩怨情仇 (一)、经典理论与博弈论的划分

    这不是一个明确意义的划分,是基于产生的年代.影响以及采用的数学拟合方法.关注的拟合重点不同,进行的宽泛划分.也是由于博弈论的方法虽然一定程度弥补了过往理论对随机性缺乏关注的问题,但是也是由于方法问题, ...

  7. 目标跟踪经典算法汇总(持续更新...)

    如题,虽然这个问题是经典目标跟踪算法,但事实上,可能我们并不需要那些曾经辉煌但已被拍在沙滩上的tracker(目标跟踪算法),而是那些即将成为经典的,或者就目前来说最好用.速度和性能都看的过去trac ...

  8. 【卫朋】营销技能:营销4P之外,还有这些经典理论

    一提到市场营销,很多人都可能会联想到经典的营销4P理论,但你可能不知道的是,4P理论只是"4字营销理论家族"中的一员. 市场营销"4字家族"中的4P.4R.4C ...

  9. 点云深度学习的经典理论与实用算法

    三维点云是最重要的三维数据表达方式之一,在三维重建.语义及实例分割.三维物体检测等方向表达相关信息.点云学习在计算机视觉.自动驾驶.机器人等领域得到越来越多的广泛应用. (三维点云的一些应用场景) 但 ...

最新文章

  1. 敲代码括号技巧_阅码神奇Souceinsight使用小技巧总结
  2. 递归/回溯:Generate Parentheses生成合法括号
  3. 《构建之法》第6 - 7章
  4. Linux内存管理Linux Memory Management Notes
  5. python 矩阵元素赋值_对numpy中数组元素的统一赋值实例
  6. STL sector 应用
  7. tf.nn.embedding_lookup
  8. 解放你的双手-Sql Server 2000智能提示工具[破解版]
  9. Jmeter系列之接口断言
  10. Ubuntu 14.04 设置静态IP地址全攻略
  11. 王鉴老师--沪师经纪-刘建
  12. 硬件开发笔记(七): 硬件开发基本流程,制作一个USB转RS232的模块(六):创建0603封装并关联原理图元器件
  13. 红米1s 一键root测试
  14. 如何通过vin及发动机号查询车辆出险、理赔、事故记录
  15. 7 Papers Radios | 矩阵乘法无需相乘,速度提升100倍;一个神经元顶5到8层神经网络...
  16. windows无法格式化u盘_如何解决u盘0字节无法格式化的问题
  17. matlab两条曲线方程求交点_帮忙matlab求两条曲线交点程序,不知问题出在哪里。...
  18. 如何给PDF文件加密?PDF文件加密操作步骤来了
  19. python画气泡图_用python 来绘制气泡图的简单技巧
  20. 【2021知识蒸馏】Show, Attend and Distill:Knowledge Distillation via Attention-based Feature Matching

热门文章

  1. JS中集合对象(Array、Map、Set)及类数组对象的使用与对比
  2. Quorum企业以太坊环境搭建教程
  3. 微软 CTO 韦青:对微软这样已经走过44年的公司,现在也只是个小小小的开始!!!
  4. 用Java编写第一个区块链(二)
  5. Java Review - 并发编程_Unsafe
  6. Redis进阶 - Redis主从工作原理详解
  7. 白话Elasticsearch07- 深度探秘搜索技术之基于term+bool实现的multiword搜索底层剖析
  8. 实战SSM_O2O商铺_18【商铺编辑】Service层开发
  9. MyBatis-09MyBatis注解方式之@Update/@Delete
  10. Spring JDBC-Spring事务管理之ThreadLocal基础知识