写在正文之前
我观察了我身边一个有趣的现象。比如某个朋友,我觉得在自己的领域内做得比较优秀的时候,我要是再一问什么专业的,大概率都是应用物理。后来跟应用物理的友人细聊这个话题,他这么给我分析这个现象,我在开始我的系列讲座之前先分享给大家。
四年的应用物理的教育,我学到了一个最重要的思维习惯,分析现象背后的物理规律,这个习惯使得我们在很多行业都能做得很棒。
今天我送给大家,计算机视觉的产品开发和算法优化同样需要我们透过纷繁复杂的现象去看本质。接下来我一个一个跟大家分享我所看到一些物理规律和想法,希望能够起到抛砖引玉的效果。
计算机视觉的研究对象及特点
计算机视觉的研究对象,根据我们主要的业务内容,我们做一个特殊的限定,特定指数字图像。数字图像首先是离散的、矩阵信号。 信号是用来传输信息的,是信息的载体,是反映信息的物理量。 离散的,矩阵的也容易理解。经过多年的发展,数字图像已经从二维矩阵扩展到了多维矩阵了。我们可以定义如下的一个数学符号来表征数字图像:
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 目标特征更新
在跟踪的过程中动态更新目标特征是保证目标长时间稳定跟踪的基础,也是跟踪算法调优花费精力最多的点之一。目标特征更新的难点在于特征的更新策略,包括更新的时机选择与更新的内容两个方面。这一点很多时候也是依赖于工程经验,可意会不可言传。
总结
计算机视觉已经发展了这么多年,各种智能算法层出不穷。弱小目标的长时间稳定跟踪的问题依然是困扰工程界搬砖大神们的问题。目前为止,没有放之天下而皆准的策略。很多时候依然依赖于针对具体的跟踪对象以及应用背景,认真思考,积极改进。我们任重而道远,愿我们能够持续前行,不虚此生。
|