Computer Vision: A Modern Approach - 计算机视觉书籍阅读笔记 -第十一章 - 跟踪
Book name : Computer Vision: A Modern Approach
Book URL: https://www.academia.edu/38213969/Computer_Vision_A_Modern_Approach_2nd_Edition
第十一章:跟踪
- 跟踪是根据一组给定的图像序列,对图像中的运动目标形态形成的一种推理
- 跟踪应用主要包括:
- 运动捕捉:如得到一个人运动的精确记录
- 从运动中识别物体:物体运动特征是十分典型的,可以通过运动特征判别身份,并能确定物体正在进行的动作
- 监视:区域入侵等监视任务
- 定位:导弹的射击目标与击中目标,主要使用雷达或红外信号,但原理与视觉想相同–如何从已有序列判断物体的未来位置
11.1 简单跟踪策略
- 目标跟踪主要有两种简单的方法:
- 通过检测进行跟踪
- 通过匹配进行跟踪
11.1.1 基于检测的跟踪
建设只有一个目标,则将每一帧检测器的响应连接起来就是跟踪结果
大多数情况下场景中不只一个目标,假设对于某目标已经跟踪了一段时间,则有一个跟踪轨迹,将以前帧的轨迹复制到当前帧,然后分配目标检测器响应到各轨迹,即可实现多个目标的跟踪任务
以上给轨迹分配检测器响应的主要问题是关于代价模型的建立,需要一个指令将检测器结果分配到对应的轨迹
- 对于缓慢移动的目标,指令可以是当前帧检测的位置与上一帧已经分配好的轨迹位置之间的图像距离
- 对于外观特征变化缓慢的目标,代价就是一个外观特征距离,如颜色直方图的卡方距离
- 贪婪算法,分配最近检测器结果给每条轨迹
基于检测的跟踪的匹配方法总结如下:
在给定背景及所有跟踪目标看起来不同于背景的情况下,背景减除法通常是一个足够好的检测器
- 缺点是人长时间静止则无法有效检测出人形,以及多个聚集的人难以区分开来
11.1.2 基于匹配的平移跟踪
- 以一个方框包围感兴趣的木有吧,则方框中包含了对目标的相关视觉信息
- 目标在场景中的移动可以看成是包围目标的方框在图像中的平移运动
- 假设方框中物体的变化不是太明显的情况下可以通过匹配方框的方式进行跟踪,跟踪的方法可以是将像素值的差的平方和作为相似度的判断
11.1.3 使用仿射变换来确定匹配
从第一帧到第n+1帧不仅仅是平移,需要一个更复杂的变形模型
仿射模型就是在第一帧的点x转换成第t帧的点Mx+c,并估计M和c使得下式达到最小:
有了M和c后可以评估当前图像块和原来图像块的像素值的差的平方和(SSD),低于设定阈值则匹配成功
11.2 匹配跟踪
- 主要阐述两种匹配模型
- 摘要匹配(summary matching),将整个域的摘要表征进行匹配,并用一组参数表示一个域
- 基于流的匹配方式(flow-based matching),首先在旧域里寻找像素值的一种转换结构,然后生成匹配好的像素集,从而作为好的新域,这样能够扩展成强大的运动模型
11.2.1 匹配摘要表征
- 目前区域内单个像素可能有较大变化,域的摘要特征并没有改变
- 均值漂移过程就是采用直方图相似的方式找到与之前目前域最相似的当前帧目标域,其中判断目标域的匹配可以通过巴氏系数来比较两个概率分布
- mean shift详细算法:
11.2.2 流跟踪
- 图像域的最佳匹配方案可以使用流模型簇
- 对于第n帧图像中的一个域,基于流模型需找到在第n+1帧图像中匹配最佳的域
- 代价函数可以使中心区域权值较边缘区域更大,因为边缘区域变化一般更大
- 流跟踪的困难是易发生漂移,如某些帧检测器无法有效检测到目标;目标形态的流跟踪模型基于它在前一帧的样子,这表示定位中的一些小误差会被累积;同时目标往往没有固定的外观也会对流跟踪产生影响,如下图所示:
11.3 基于卡尔曼滤波器的线性动态模型跟踪
- 如果目标在图像中一个可预测的轨迹上移动,则运动模型能够预测一个与原来位置比较远但仍然可信的搜索区域
11.3.1 线性测量值和线性动态模型
- 最简单的可能出现的测量模型,测量值通过首先乘以某已知矩阵,然后加上一个零均值、协方差已知的标准随机变量获得
- 在任何给定的时间里,不需要观察整个状态向量来进行推断,如对于一个移动点的位置如果有足够的测量值,就可以推断它的速度和加速度
- 状态值可通过通过相似的方法进行确定,动态模型可以表示为:
- 漂移点:点是随机运动的,新位置则是在原来位置加上高斯噪声扰动得到
- 恒定速度:位置和速度放入一个单独的状态向量中,并可在模型使用
- 恒定加速度:位置、速度、加速度放入一个单一的状态向量中,并应用到模型中
11.3.2 卡尔曼滤波
- 线性动态模型的一个重要特征就是所有需要去处理的条件概率分布都是正太分布,它们易于表示,仅需要做的是为预测及修正相位去维持均值和协方差的表示
- 跟踪和滤波归结于对均值和协方差参数的维护
- 下图给出点以匀速运动的卡尔曼滤波:
- 恒定加速度运动的卡尔曼滤波
- 卡尔曼滤波公式,从前一时刻动态系统的状态估计当前时刻状态
11.3.3 前向-后向平滑
- 综合到yi为止的所有观察值用前向滤波器获得,以及通过综合yi之后的所有观察值用后向滤波器获得,使用前向-后向平滑滤波综合上述结果:
- 前向-后向滤波估计能够得到一个本质上的差异,有效提高估计效果:
11.4 数据相关
- 测量值中可能包含噪声
- 确定哪些测量是有效的及哪些是无效的问题称为数据相关
11.4.1 卡尔曼滤波检测方法
- 假设起始点为第n帧图像汇总图像块的位置,利用卡尔曼滤波进行预测,得到估计的位置后可以使用近似法去寻找最匹配直方图
11.4.2 数据相关的关键方法
- 使用一个目标检测器去跟踪,可能仅仅在选通之内去应用它,即基于卡尔曼滤波忽略不重要的区域
11.5 粒子滤波
- 动力学中很小的非线性可能引起概率密度的集中化,而这种方式是很难表示的,非线性动力学可能会产生带有复杂充分统计的密度
- 多模板最丰富的信息来源就是数据关联问题
- 在跟踪任务中,线性测量模型中元素的数目与帧的数量呈指数关系
11.5.1 概率分布的采样表示
- 描述一个概率分布是为了可以计算出一个或另一个期望值
- 利用重要性采样的蒙特卡罗积分:可以用一组加权样本来表示一个概率分布
通过一组样本集计算它们的期望值的方法如下:
采样表示的边缘化:通过丢弃样本的某些元素来表示边缘
从先验到后验的转换:对采样分布的权重进行适当处理会产生其他分布的表示,如通过给予一些观测值来表示一个后验概率
11.5.2 最简单的粒子滤波器
- 预测:通过前一时刻的状态,通过边缘化、先验概率到后验概率等操作得到预测结果
- 校正: 先验信息转换到后验概率,给每个样本一个适当的权重
11.5.3 跟踪算法
- 简单粒子滤波器跟踪算法中的初始状态可以以简单的采样形式获得一种离散的先验信息,并给每一个样本赋予权值1,这种方法与卡尔曼滤波器的对比如下,效果并不好:
11.5.4 可行的粒子滤波器
具有非常低的权重的粒子一般很容易处理,可以调整粒子集,加强那些对后验概率最有帮组的粒子的出现
重采样先验概率:理想地丢弃无用的样本,为每一个样本赋予一个相关联的权重
另一种实用的粒子滤波
重采样的结果如下所示,并不是一致地具有良性作用:
11.5.5 创建粒子滤波器中的粒子问题
- 采样表示的积分估计的期望值是积分的真实值,可能在估计的方差变得足够低之前需要一个非常大的粒子数,而粒子数并不好估计
- 将粒子滤波作为一种搜索的方式,有一系列的状态估计,使用动态模型进行更新,然后比较数据,估计看起来似乎可以产生一些保存的数据,但其他的被丢弃,但这种情况可能会错过一些好的假设。
Summary
该章节主要对跟踪算法进行了介绍。首先介绍了基于检测的跟踪算法,其中主要问题是当前检测器结果与已有轨迹的匹配,介绍了平移跟踪、仿射变换来确定匹配等一些匹配方法;然后作者介绍了匹配跟踪算法,其中包含摘要匹配与基于流的匹配方法;作者还介绍了基于卡尔曼滤波器的线性动态模型跟踪方法以及粒子滤波跟踪方法。
Thoughts
- 简单
Computer Vision: A Modern Approach - 计算机视觉书籍阅读笔记 -第十一章 - 跟踪相关推荐
- Computer Vision: A Modern Approach - 计算机视觉书籍阅读笔记 -第六章 - 纹理
Book name : Computer Vision: A Modern Approach Book URL: https://www.academia.edu/38213969/Computer_ ...
- Computer Vision: A Modern Approach - 计算机视觉书籍阅读笔记 -第四章 -线性滤波
Book name : Computer Vision: A Modern Approach Book URL: https://www.academia.edu/38213969/Computer_ ...
- 《Deep Learning Techniques for Music Generation – A Survey》深度学习用于音乐生成——书籍阅读笔记(一)Chapter 1
<Deep Learning Techniques for Music Generation – A Survey>深度学习用于音乐生成--书籍阅读笔记(一)Chapter 1 关于这本书 ...
- 《第一行代码》书籍阅读笔记
注:书籍阅读笔记,方便查看 第1章 开始启程,你的第一行Android代码 第2章 先从看得到的入手,探究活动 1.隐藏标题栏 在onCreate()方法中添加: requestWindowFeatu ...
- 图像处理与计算机视觉-论文阅读笔记
题 目:Residual Networks for Light Field Image Super-Resolution 作 者:Shuo Zhang, Youfang Lin, Hao Sheng ...
- 《领域驱动设计》阅读笔记 第1章 消化知识
ddd小白,一篇章节便能激起了心中涟漪,感慨之初,记于笔下. 第1章 消化知识 用醍醐灌顶.茅塞顿开来形容此章短短的文字,实不为过. 简单介绍背景:旅游互联网,B2B,初创公司.产品设计-代码开发的 ...
- 计算机视觉-论文阅读笔记-基于高性能检测器与表观特征的多目标跟踪
这篇笔记主要是对今年ECCV2016上的论文:POI:Multiple Object Tracking with High Performance Detection and Appearance F ...
- 《Reducing Word Omission Errors in Neural Machine Translation:A Contrastive Learning Approach》论文阅读笔记
Reducing Word Omission Errors in Neural Machine Translation:A Contrastive Learning Approach 基本信息 研究目 ...
- 推荐DS书籍阅读笔记
第三章 表 栈与队列 3.2 表的简单实现 3.3 collection API 增强的for循环:for each循环. 使用迭代器接口 Iterator接口,相比简单的for循环在某些情况下更好 ...
最新文章
- C++Primer ch4笔记
- Android 对象池案例
- Linux java集成安装环境,Linux下Java环境安装
- 电脑f2还原系统步骤_手把手教你如何创建系统还原点,让你的电脑也能时光倒流...
- 程序猿|上班累了么?点进来,开心一夏!
- 6-6 归并排序(递归法) (10分)
- Android Oreo 常见问题 2.0 | Android 开发者 FAQ Vol.9
- 访问被拒绝:“Interop.jmail”
- 第八章 交互技术,8.5 双11晚会背后的技术(作者:邵雍)
- c# oracle异常,C# 连接Oracle数据库异常总结
- MyBatis中foreach的用法
- java 随机数算法_Java随机数算法原理与实现方法实例详解
- epson连接计算机后无法打印,如何解决连接到Epson打印机后计算机无法打印的问题...
- YAMLsnakeyaml简介
- 支付宝接口对接指南(四、回调通知对接:websoket方式)【保姆级】
- HTML 图书销售排行榜
- 如何恢复手动删除的微信聊天记录?2个简单高效方法推荐
- CAD网页Web端显示开发为什么要以WebGIS的思路来开发?
- 拒绝调包 手写实现神经网络(复习专用)
- 酷家乐怎样把两个方案合并_两个地产科技的理工男联姻:他们都想做一家云端的Autodesk...
热门文章
- msvcp120 mysql_Mysql 安装问题一:无法启动此程序,因为计算机丢失MSVCP120.dll,MSVCR120.dll...
- NVIDIA安培架构下MIG技术分析
- 阿里P7大牛手把手教你!mysql数据库应用案例教程
- atsha204a加密芯片使用攻略——配置篇
- 统计学原理 合理使用图表
- 一个可实施的技术方案模板
- “双减”背景下的初中数学作业设计
- arm-openwrt-linux-musl 交叉编译cyassl
- python小项目:MakeCode小游戏——躲砖块
- linux vi全屏编辑器