本人作为多目标追踪的初学者,经过相关文献的阅读和资料的查阅,发现多目标追踪已经有了十几年的发展历程,这十几年间逐渐形成了一套框架,即多目标追踪由追踪器(Tracking),探测器(Detection)和目标学习(Learning or Classification)等几个基础部件构成。发展过程中,主要是对Tracking和Detection的不同图像特征的不断更新,以及classification的不同方法进行更新,已达到快速和准确的目的。随着机器学习的不断普及,多目标追踪也由之前的offline向online逐渐演变,即从人工选取图像列中感兴趣目标向计算机根据前后图像帧的关联自动识别追踪目标,例如人员或车辆在不同时间的出场与入场。但在这个过程中,也出现了一些新的问题,例如目标的被遮挡,倒影等问题,这会造成探测器的误判,这些随即成为了新的热点。作为第一篇学习笔记,主要是对多目标识别的基础部分进行学习,其他难点随后及进行讨论。
一. 什么是目标?
目标(object)是我们在视频影像或序列影像中的感兴趣区域,可以是车辆,人员,车牌等。同样对目标的表达也有很多形式,可以是:点,质点一般是目标的中心点或是角点目标的关键位置(a&b);原始几何图形,常用的有椭圆或者矩形等(c&d);边沿线或是轮廓线(g&h&i),即勾画出目标的边缘线来表达目标位置变化,e是关节模型表达的结果,f是骨架图。
对目标的识别一般大体分以下几种方法:1.用目标出现的概率密度来估计目标的出现,方法可以是有参数的,也可以是无参数的,例如计算颜色和纹理的概率密度;2.模板,选定一个目标出现的场景对目标进行标定,通过对目标特征的训练,寻找其他图像中目标出现的位置,但前提条件是目标不会出现形变,这在实际应用中出现的概率不大;3.主动显示模型:实时的显示目标位置,用一些特殊标记标记目标位置和轮廓;4.多画面显示模型:对目标进行多画面标记,采用主成分分析或者独立成分分析,对目标进行识别和表达。还有通过贝叶斯网络或SVM进行等方法进行识别和跟踪的。需要注意的是,目标的追踪方式和目标的表达方式在一定程度上会有一点联系的。
二. 图形特征包括那些?
图像特征一般包括颜色(RGB&HSV),边界,光流法和纹理特征。首先要说颜色特征,最常用的是RGB通道,但是往往具有较高的相关性,对识别和训练有很大的干扰作用。所以可以将RGB空间转换到HSV空间,即色度,饱和度和明度进行特征分析,但容易受到噪音的干扰。颜色的表达方式会随着不同的环境进行变化,要注意选择;边界:目标边界会在图像中造成较大的图像强度的起伏,边界的主要属性就是不会因为光照的改变而改变,一般较好的边界提取算法有CANNY等一系列算法,目前实现起来较为简单;光流法:光流是一个由位移向量构成的一个稠密空间,而位移向量是记录了每一个pixel的位移。光流法的假设是在一个frame中每一个像素的亮度是常量,根据亮度变化和位移来计算得到此位移向量;纹理特征是指某一表面的强度变化,例如光滑或粗糙,描述纹理特征的量有Gray-Level Cooccurrence Matrices (GLCM’s),一个二维直方图同时展现距离和方向的变化,Law’s texture measures,小波和图像金字塔卷积等。纹理特征同样受光照影响较小。
对特征的自动选择主要有两种限制条件:Filter和Wrapper。 Filter选择主要是基于基本的条件限制,例如图形特征不能相关。wrapper选择方法主要是要将所有有效特征选定,实现使用效率最大化。一般主成分分析PCA可以帮助避免选到相关特征集,Adaboost算法一般可以通过不同权重的将不同的特征贡献程度进行标识。
今天的理论学习就先到这里,我现在要去搭载一个opencv的平台,先对图像进行简单的编程编辑,以及尝试对边界提取算法进行使用,在第二篇的时候与大家共享。
最后,希望我的笔记对大家有用,请各位大神对错误进行批评指正,谢谢各位。