前段时间针对电子警察做了下车辆跟踪,看了下相关调查,也没记得清这些综述上怎么细分类的,大致记得有:
1. 背景建模:参见opencv中sample中的blobtrack,要求背景静止光照稳定,opencv自带了包括高斯混合模型等几种背景建模方法,其它的效率较高的有VIBE;
2. 光流法:做跟踪的公司使用的较多,一般先根据车牌检测车辆,然后使用光流进行跟踪,在DSP上单目标跟踪时间可达到5ms左右;
3. 均值漂移和粒子滤波:只跑过opencv的sample,具体性能不太了解;
4. TLD:目前很热的算法,opencv3.0.0的contrib已经实现;
5. 基于特征匹配和轨迹聚类的目标跟踪算法:在本文有详细介绍;
由于是在DSP上集成车牌定位识别和车辆跟踪,综合考虑性能和效率选择了基于特征点匹配的目标跟踪,在保证性能的基础上做了部分优化使之满足实时要求。在《Mastering OpenCV with practical computer vision project》文档中有车牌定位识别的简单流程。
下面具体介绍基于特征匹配的车辆跟踪:
第一步是特征点检测和描述,特征检测有FAST、Harris、SIFT、SURF、Brief等,鉴于SIFT和SURF不能满足实时要求采用了FAST+单尺度SURF的改进方法,在背景图像中总是存在一些静止的背景特征点(例如斑马线上的角点,复杂背景中的检出点),这些都会对车辆上的角点产生干扰,需要建立角点背景模型去除,下图中Color Image为原图,Corner为FA