Antkillerfarm Hacking V7.0

图像处理理论(十)——Optical flow, Particle filter, 从BOW到SPM, Superpixel

2018-12-11

Harris(续)

Harris角点的性质

增大\(\alpha\)的值,将减小角点响应值R,降低角点检测的灵性,减少被检测角点的数量;减小\(\alpha\)值,将增大角点响应值R,增加角点检测的灵敏性,增加被检测角点的数量

Harris角点检测算子对亮度和对比度的变化不敏感。这是因为在进行Harris角点检测时,使用了微分算子对图像进行微分运算,而微分运算对图像密度的拉升或收缩和对亮度的抬高或下降不敏感。换言之,对亮度和对比度的仿射变换并不改变Harris响应的极值点出现的位置。

Harris角点检测算子使用的是角点附近的区域灰度二阶矩矩阵。而二阶矩矩阵可以表示成一个椭圆,椭圆的长短轴正是二阶矩矩阵特征值平方根的倒数。当特征椭圆转动时,特征值并不发生变化,所以判断角点响应值R也不发生变化,由此说明Harris角点检测算子具有旋转不变性

Harris角点检测算子不具有尺度不变性。如下图所示,当右图被缩小时,在检测窗口尺寸不变的前提下,在窗口内所包含图像的内容是完全不同的。左侧的图像可能被检测为边缘或曲线,而右侧的图像则可能被检测为一个角点。

为了解决尺度不变性问题,可以使用多尺度Harris角点算法,将Harris角点检测算子与高斯尺度空间表示相结合,使其具有尺度不变性:

\[\boldsymbol{M}=\mu(x,\sigma_I,\sigma_D)=\sigma_D^2g(\sigma_I)\otimes\begin{bmatrix}L_x^2(x,\sigma_D)&L_xL_y(x,\sigma_D)\\L_xL_y(x,\sigma_D)&L_y^2(x,\sigma_D)\end{bmatrix}\]

参考

http://blog.csdn.net/lwzkiller/article/details/54633670

Harris角点检测原理详解

http://www.cnblogs.com/ronny/p/4009425.html

Harris角点

https://blog.csdn.net/davebobo/article/details/52598850

检测并匹配兴趣点

https://blog.csdn.net/songzitea/article/details/17969375

角点匹配方法

https://mp.weixin.qq.com/s/LeFT029sd7-kRw1QTFUKmA

特征检测之Harris角点检测

Optical flow

基本概念

从本质上说,光流就是你在这个运动着的世界里感觉到的明显的视觉运动。例如,当你坐在火车上,然后往窗外看。你可以看到树、地面、建筑等等,他们都在往后退。这个运动就是光流。

一些比较远的目标,例如云、山,它们移动很慢,感觉就像静止一样。但一些离得比较近的物体,例如建筑和树,就比较快的往后退,然后离我们的距离越近,它们往后退的速度越快。可以通过不同目标的光流运动速度判断它们与我们的距离。

光流除了提供远近外,还可以提供角度信息。与咱们的眼睛正对着的方向成90度方向运动的物体速度要比其他角度的快。

以上是光流的一个直观的定义和特性,下面谈一下它的严谨的研究性定义。

光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。

当人的眼睛观察运动物体时,物体的景象在人眼的视网膜上形成一系列连续变化的图像,这一系列连续变化的信息不断“流过”视网膜(即图像平面),好像一种光的“流”,故称之为光流(optical flow)。光流表达了图像的变化,由于它包含了目标运动的信息,因此可被观察者用来确定目标的运动情况。

研究光流场的目的就是为了从图片序列中近似得到不能直接得到的运动场。运动场(motion field),其实就是物体在三维真实世界中的运动;光流场,是运动场在二维图像平面上(人的眼睛或者摄像头)的投影。

光流约束方程

1981年,Horn和Schunck创造性地将二维速度场与灰度相联系,引入光流约束方程,得到光流计算的基本算法。人们基于不同的理论基础提出各种光流计算方法,算法性能各有不同。Barron等人对多种光流计算技术进行了总结,按照理论基础与数学方法的区别把它们分成四种:基于梯度的方法、基于匹配的方法、基于能量的方法、基于相位的方法。近年来神经动力学方法也颇受学者重视。

这里以最常见的亮度恒定(brightness consistancy)假设,介绍一下该假设下的光流约束方程的推导方法。

令\(I(x,y,t)\)表示t时刻的像素点\((x,y))\)的灰度值,则根据亮度恒定假设,我们有:

\[I(x,y,t) = I(x + \Delta x, y + \Delta y, t + \Delta t)\]

亮度恒定假设在现实中当然并不一定成立,但却是比较合理和自然的。只要\(\Delta t\)足够小,就基本能满足该假设。

我们对上式右侧进行一阶Taylor展开,可得:

\[I(x + \Delta x, y + \Delta y, t + \Delta t) \approx I(x,y,t) + \frac{\partial I}{\partial x}\Delta x + \frac{\partial I}{\partial y}\Delta y + \frac{\partial I}{\partial t}\Delta t\]

根据亮度恒定假设可得:

\[\frac{\partial I}{\partial x}\Delta x + \frac{\partial I}{\partial y}\Delta y + \frac{\partial I}{\partial t}\Delta t = 0\]

上式即为亮度恒定假设的光流约束方程。由于这个方程有两个未知数,所以没有唯一解。为了得到唯一解,就必须新增约束或假设,因此也就有了如下不同的算法。

名称 约束或假设
Lukas-Kanade 亮度恒定假设+局部光流恒定
Farneback 梯度恒定假设+局部光流恒定
Horn-Schunck 亮度恒定假设+光流场平滑
Brox 亮度恒定假设+梯度恒定假设+光流场平滑

参考

http://blog.csdn.net/zouxy09/article/details/8683859

光流Optical Flow介绍与OpenCV实现

http://www.cnblogs.com/walccott/p/4956858.html

Horn-Schunck光流法

http://blog.csdn.net/u014568921/article/details/46638557

目标跟踪之Lukas-Kanade光流法

http://www.cnblogs.com/gnuhpc/archive/2012/12/04/2802124.html

Lucas–Kanade光流算法

http://www.cnblogs.com/dzyBK/p/5096860.html

光流算法:Brox算法

http://www.cnblogs.com/quarryman/p/optical_flow.html

图像分析之光流之经典

https://zhuanlan.zhihu.com/p/31726032

走进光流的世界

https://mp.weixin.qq.com/s/nW6ZmEiio3VgX_LEktkxUA

视频目标检测:Flow-based

https://mp.weixin.qq.com/s?__biz=MzA4MDExMDEyMw==&mid=2247487121&idx=1&sn=c9ac1802ff79eb3ed86041dfe8781558

OpenCV4中DIS光流算法与应用

Particle filter

参考:

http://www.cvvision.cn/6002.html

基于粒子滤波器的目标跟踪算法及实现

http://www.cnblogs.com/zjb0823/p/3806333.html

运动目标跟踪算法综述

https://wenku.baidu.com/view/6554ba7402768e9951e73864.html

基于粒子滤波的视频目标追踪

http://www.cnblogs.com/feisky/archive/2009/11/10/1600086.html

粒子滤波概述

http://www.cnblogs.com/yangyangcv/archive/2010/05/23/1742263.html

基于粒子滤波的物体跟踪

https://www.zhihu.com/question/25371476

怎样从实际场景上理解粒子滤波(Particle Filter)?

http://freemind.pluskid.org/machine-learning/hmm-kalman-particle-filtering

漫谈HMM:Kalman/Particle Filtering

https://zhuanlan.zhihu.com/p/26783371

视频跟踪算法之粒子滤波

https://mp.weixin.qq.com/s/NaXpPZBwmmRSANBGIYQgXQ

手把手教你用粒子滤波实现无人车定位

https://zhuanlan.zhihu.com/p/197620177

粒子滤波(Particle Filter, PF)

TLD

http://blog.csdn.net/zouxy09/article/details/7893011

TLD(Tracking-Learning-Detection)学习与源码理解系列文章

http://blog.csdn.net/carson2005/article/details/7647500

比微软kinect更强的视频跟踪算法–TLD跟踪算法介绍

http://www.cnblogs.com/lxy2017/p/3927456.html

TLD(Tracking-Learning-Detection)一种目标跟踪算法

ORB

ORB(Oriented FAST and Rotated BRIEF)特征,从它的名字中可以看出它是对FAST特征点与BREIF特征描述子的一种结合与改进,这个算法是由Ethan Rublee,Vincent Rabaud,Kurt Konolige以及Gary R.Bradski在2011年一篇名为“ORB:An Efficient Alternative to SIFT or SURF”的文章中提出。

参考:

http://www.cnblogs.com/ronny/p/4083537.html

ORB特征点检测

https://zhuanlan.zhihu.com/p/52140541

传统计算机视觉中图像特征匹配方法的原理介绍(SIFT和ORB)

背景提取

背景提取是在视频图像序列中提取出背景,背景就是场景中静止不动的景物。因为摄像机不动,因此图像中的每个像素点都有一个对应的背景值,在一段时间内,这个背景值是比较固定的。背景提取的目标就是根据视频图像序列,找出图像中每一点的背景值。

参考:

https://blog.csdn.net/ajianyingxiaoqinghan/article/details/72628402

背景提取算法——帧间差分法、背景差分法、ViBe算法、ViBe+算法

https://blog.csdn.net/tiandijun/article/details/50499708

ViBe算法原理和代码解析

http://www.cnblogs.com/dwdxdy/p/3527891.html

背景建模——VIBE

https://www.cnblogs.com/ywsoftware/p/4434074.html

运动目标检测ViBe算法

从BOW到SPM

BOW

Bag-of-words模型是信息检索领域常用的文档表示方法。在信息检索中,BOW模型假定对于一个文档,忽略它的单词顺序和语法、句法等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的,不依赖于其它单词是否出现。

为了表示一幅图像,我们可以将图像看作文档,即若干个“视觉词汇”的集合,同样的,视觉词汇相互之间没有顺序。

由于图像中的词汇不像文本文档中的那样是现成的,我们需要首先从图像中提取出相互独立的视觉词汇,这通常需要经过三个步骤:

(1)特征检测。

(2)特征表示。

(3)单词本的生成。

而SIFT算法是提取图像中局部不变特征的应用最广泛的算法,因此我们可以用SIFT算法从图像中提取不变特征点,作为视觉词汇,并构造单词表,用单词表中的单词表示一幅图像。

参考:

http://blog.csdn.net/v_JULY_v/article/details/6555899

SIFT算法的应用–目标识别之Bag-of-words模型

https://zhuanlan.zhihu.com/p/25999669

BOW算法,被CNN打爆之前的王者

Fork me on GitHub