目标跟踪算法分析(一)

  • 写在正文之前
  • 计算机视觉的研究对象及特点
  • 目标跟踪算法的地位
  • 目标跟踪算法的主要流程
    • step1 初始化目标模板
    • step2 选取目标特征
    • step3 定义目标特征的相似度函数
    • step4 搜索相似度函数的最大值
    • step5 目标特征更新
  • 总结

写在正文之前

我观察了我身边一个有趣的现象。比如某个朋友,我觉得在自己的领域内做得比较优秀的时候,我要是再一问什么专业的,大概率都是应用物理。后来跟应用物理的友人细聊这个话题,他这么给我分析这个现象,我在开始我的系列讲座之前先分享给大家。

四年的应用物理的教育,我学到了一个最重要的思维习惯,分析现象背后的物理规律,这个习惯使得我们在很多行业都能做得很棒。

今天我送给大家,计算机视觉的产品开发和算法优化同样需要我们透过纷繁复杂的现象去看本质。接下来我一个一个跟大家分享我所看到一些物理规律和想法,希望能够起到抛砖引玉的效果。

计算机视觉的研究对象及特点

计算机视觉的研究对象,根据我们主要的业务内容,我们做一个特殊的限定,特定指数字图像。数字图像首先是离散的、矩阵信号。
信号是用来传输信息的,是信息的载体,是反映信息的物理量。
离散的,矩阵的也容易理解。经过多年的发展,数字图像已经从二维矩阵扩展到了多维矩阵了。我们可以定义如下的一个数学符号来表征数字图像:

y i m g = f ( x , y , c , t ) . y_{img}=f(x,y,c,t). yimg​=f(x,y,c,t).
与传统的数字图像处理的教科书不同,我们在图像中考虑了图像的空间影响因素 ( x , y ) (x,y) (x,y), 光谱的影响因素通道 c c c,时间的影响因素 t t t。
我们再来看看其他信号(例如温度、速度、加速度)的数学符号是
y = f ( c , t ) . y=f(c,t). y=f(c,t).
对比两个 y y y的函数,我们可以看出图像信号和其他信号最大的不同在于空间的影响因素 ( x , y ) (x,y) (x,y),也就是说图像信号是信号在空间上的离散采样。
我一直认为,计算机视觉,难点就是这个离散采样。为什么嗯?相信大家在学习和工作中,都学过大量的信号分析和处理的知识。这些理论和方法都在试图做一个什么问题呢?
信号的解耦合,也就是信号中独立分量的提取
从傅里叶变换到小波分析是不是都是这个思路?基于深度学习的人工智能算法本质上也是要寻找我们采样的信号中与环境因素无关的目标本身,从哲学上看也是寻找独立分量的过程。
计算机视觉的难题就是于,一方面信号在空间的耦合让单个采样点上的独立分析可能就不存在,另一方面空间的采样带来了庞大的数据量,给信号处理算法的计算量带来了几何级的增长。所以计算机视觉需要解决的都是大容量、高速数据采集、存储分析的问题。
祝贺大家,你们一直在攀登科学的高峰。

目标跟踪算法的地位

接下来我们来讨论一下目标跟踪算法在计算视觉中的位置。在这里我特别提一下我导师教给我的一句话:

不要期待单个算法能够解决弱小目标长时间跟踪问题,这是一个技术集合,需要从系统的各个维度去突破,以计算机视觉算法的集合来完成这个任务。

所以我们来看看,目标跟踪算法是在整个计算机视觉算法中处于什么样的地位。我们一起来看看图像处理算法主要可以分为以下几个类别:

简单来说,在我们做目标检测、跟踪与识别之前的图像处理,都可以归为图像预处理,其目的是为后续的图像任务(检测、跟踪与识别)提供更加优质的图像。算法包括图像的超分辨率重构、图像增强、图像拼接等。

目标检测算法是大量基于计算视觉的图像任务的基础,我个人认为,实际上目标检测涵盖了目标跟踪与目标识别的内容。当然这里的目标跟踪不包含目标的位置滤波与预测算法。目标检测是解决的是(what, where)的问题。目标跟踪解决的是(where)的问题。目标识别解决的是which的问题。一般的视觉系统的主要任务流程可以认为:图像预处理、目标检测、目标跟踪、目标识别。

目标跟踪算法的主要流程

目标跟踪算法可以被分为5步。每一步的主要任务如下:

step1 初始化目标模板

这一步通常是根据用户选定的一个目标中心点、用户框定的一个目标范围或者来自于目标检测给出的目标最大外接矩形,当然也有可能是来自目标分割的结果。
当目标跟踪的初始点为用户选定的一个目标中心点时,跟踪算法需要最大程度保留目标特征,同时又没有背景信息的引入。这样跟踪算法才能获得目标的真实特征,而有效去掉背景信息对目标跟踪的干扰。理想的状况是获得目标与背景的像素级分割。然而目标在边缘智能计算设备中,基于深度学习的算法难以取得实时效果。目前主流的方法还是传统算法获得目标与背景的像素级分割,或者直接用固定大小的模板。

step2 选取目标特征

目标的特征有很多中表现形式,传统的目标特征有点、线、面等特征。基于深度学习的方法的目标特征更多的是面特征,因此基于深度学习的方法目前来说在小目标跟踪方面表现尚且欠佳。

step3 定义目标特征的相似度函数

在获得了目标特征表达之后,对应的也可以得到针对这个特征表达最佳的相似度函数。不同的相似度函数有不同的峰值特点,也对应了不同的峰值搜索方法。

step4 搜索相似度函数的最大值

前面说了不同的相似度函数可能对应不同的峰值搜索方法。从搜索过程的角度区分,可以主要分为两类:遍历法和最优化搜索方法。其中遍历法的优点是:能够搜索到全局的最优解,缺点是计算量大。最优化搜索方法包含了梯度下降法以及其他一些梯度下降法的变形方法或优化方法,这些方法的优点是:计算量小,在实际工程应用中往往面临陷入局部最优解的问题。

在实际的工程应用中,遍历法应用较多。相似度函数最大值的搜索与判断策略也是与工程经验密切相关的问题,也是跟踪算法调优花费精力最多的点之一。

step5 目标特征更新

在跟踪的过程中动态更新目标特征是保证目标长时间稳定跟踪的基础,也是跟踪算法调优花费精力最多的点之一。目标特征更新的难点在于特征的更新策略,包括更新的时机选择与更新的内容两个方面。这一点很多时候也是依赖于工程经验,可意会不可言传。

总结

计算机视觉已经发展了这么多年,各种智能算法层出不穷。弱小目标的长时间稳定跟踪的问题依然是困扰工程界搬砖大神们的问题。目前为止,没有放之天下而皆准的策略。很多时候依然依赖于针对具体的跟踪对象以及应用背景,认真思考,积极改进。我们任重而道远,愿我们能够持续前行,不虚此生。

目标跟踪算法分析(一)相关推荐

  1. 详解计算机视觉五大技术:图像分类、对象检测、目标跟踪、语义分割和实例分割

    https://www.tinymind.cn/articles/120 [ 导读]目前,计算机视觉是深度学习领域最热门的研究领域之一.计算机视觉实际上是一个跨领域的交叉学科,包括计算机科学(图形.算 ...

  2. matlab 图像分割 提取人像_几种典型的图像处理技术(分类 目标提取 目标跟踪 语义分割 实例分割)...

    目前,在处理海上无人艇的感知系统的开发.其中,比较核心的一个部分就是基于光电的目标识别(Object Detection). 任务目标 如图所示,从包含舰艇的图片中,标识舰艇的位置 本文的学习笔记,主 ...

  3. 一文详解计算机视觉五大技术:图像分类、对象检测、目标跟踪、语义分割和实例分割

    [ 导读]目前,计算机视觉是深度学习领域最热门的研究领域之一.计算机视觉实际上是一个跨领域的交叉学科,包括计算机科学(图形.算法.理论.系统.体系结构),数学(信息检索.机器学习),工程学(机器人.语 ...

  4. 2018目标跟踪算法综述

    转自  https://www.zhihu.com/question/26493945 作者:YaqiLYU 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 相信很多来这里的人和 ...

  5. 计算机视觉中,目前有哪些经典的目标跟踪算法

    首先来一个跟踪算法的大杂烩: VOT2016 Trackers repository 以下是转载内容 ------------------------------------------------- ...

  6. 深度长文:计算机视觉中,目前有哪些经典的目标跟踪算法?

    第一部分:目标跟踪速览 先跟几个SOTA的tracker混个脸熟,大概了解一下目标跟踪这个方向都有些什么.一切要从2013年的那个数据库说起..如果你问别人近几年有什么比较niubility的跟踪算法 ...

  7. 计算机视觉中,目标跟踪算法的综述

    作者:YaqiLYU 链接:https://www.zhihu.com/question/26493945/answer/156025576 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权, ...

  8. 深度学习 --- CNN的变体在图像分类、图像检测、目标跟踪、语义分割和实例分割的简介(附论文链接)

    以上就是卷积神经网络的最基础的知识了,下面我们一起来看看CNN都是用在何处并且如何使用,以及使用原理,本人还没深入研究他们,等把基础知识总结完以后开始深入研究这几个方面,然后整理在写成博客,最近的安排 ...

  9. CVPR2020:点云三维目标跟踪的点对盒网络(P2B)

    CVPR2020:点云三维目标跟踪的点对盒网络(P2B) P2B: Point-to-Box Network for 3D Object Tracking in Point Clouds 代码:htt ...

最新文章

  1. 最大流 ---- 最大权值闭合子图 CodeForces - 1082G[把边抽象成点]
  2. 提高网站首页载入速度的常用方法
  3. python 函数定义先后是否会影响函数之间的相互调用?(不影响)
  4. html5 的menu的属性,HTML5 menu 标签
  5. 利用递归求某数的阶乘——C/C++
  6. ssm项目集成ftp_ssm开发旅游信息管理系统,包括前台和后台
  7. HBase从入门到精通系列:误删数据如何抢救?
  8. 如何想要在开机启动登陆时,用户名也不输入
  9. 光纤组网基础知识 (2) - 光纤跳线、尾纤、连接器、法兰盘、耦合器
  10. 图灵聊天机器人小程序
  11. 计算机多媒体简历,计算机多媒体简历
  12. 可视对讲行业洗牌进行时 企业应该何去何从?
  13. linux拷贝安装包到另一个目录下,把windows下的压缩包放到Linux目录下去
  14. cad卸载_CAD卸载后为什么安装不了?解决方法原来是这样!
  15. 如何修改PDF文件的标题
  16. mysql group by 之后取每个分组最新的一条(或者按照自定义的规则排序)
  17. 模拟角频率和数字角频率区别
  18. 千耘导航助力新疆精河县数万亩棉花播种
  19. 2020年最好用的chrome插件-CSDN浏览器助手评测
  20. mysql的check出错_如何利用myisamchk和mysqlcheck快速修复损坏的MySQL数据库

热门文章

  1. Mac无法播放音乐的问题
  2. QQ群管理员申请帖(本次截止日期为2017-03-25)
  3. [mmdetection] 修改训练数据格式为“.png”
  4. 线性卷积系统的matlab,线性卷积
  5. 解决vue项目打包后打开index.html一片空白
  6. Electron 打包exe方法
  7. 解决coursera无法旁听课程的问题
  8. 出图免费插件丨REVIT出图时快速创建标准平面视图样板?
  9. 并行计算模型有哪些?
  10. 互联网快讯:粉笔科技创新推进OMO一体化模式;极米H3S获用户好评;拼多多爱奇艺B站涨逾30%