1. 引言

随着AI技术的不断发展,其子领域计算机视觉技术也获得了突飞猛进的进步,计算机视觉即通过机器实现“人眼”对事物的测量和判别能力。目前,计算机视觉技术主要应用于智能视频监控、智能交通、军事应用等领域,其中智能视频监控是通过摄像机获取场景和目标的视频信息,使用算法实现目标检测和目标跟踪,对目标行为进行识别和场景理解。

本文主要对目标跟踪技术进行研究,目标跟踪是计算机视觉领域的研究热点,在军事制导、视觉导航等领域中有着广阔的应用前景,跟踪算法的研究具有重要的实际意义和理论价值 [1]。

目标跟踪技术就是在给定视频序列初始帧的目标大小与位置的情况下,预测后续帧中该目标的大小与位置。为了提高目标跟踪技术的跟踪准确率和鲁棒性,首先进行目标检测获取目标位置和大小,目前常见的深度学习目标检测算法有两类,一类是基于候选区域的目标检测算法,典型算法如:R-CNN [2]、Fast R-CNN [3]、Faster R-CNN [4];另一类是基于回归的目标检测算法,典型算法如:YOLO [5]、SSD [6] 等。其中R-CNN算法是基于候选区域算法的基础,后续此类算法都是对R-CNN算法进行改进以获得更高的识别速度和识别率的算法。R-CNN的基本思想是利用选择搜索算法(Selective Search)在图像中提取可能包含目标的候选区域,然后用CNN提取特征,实现目标跟踪 [7]。而基于回归的YOLO和SSD算法,将分类和目标预测同时进行,其中YOLO算法每秒可处理45帧图像能够满足目标跟踪的实时性。

视频图像帧目标检测后,虽然获得了目标位置但缺乏对视频帧目标运动信息的连续性。传统的目标跟踪算法如KCF (Kernel Correlation Filter)算法具有较强的实时性,但当录制设备发生偏移时,会出现目标跟踪偏移,甚至丢失目标。

为了解决设备偏移带来的跟踪偏移和目标丢失问题,本文采用基于YOLO和KCF的目标跟踪算法,通过YOLO算法初始化KCF算法跟踪框,设置偏移误差率判定何时需对KCF算法跟踪框进行更新。

2. 图像预处理和目标检测

本文主要通过灰度化和图像增强法中的均值滤波法实现图像预处理,减少冗余信息,去除噪点和YOLO算法实现目标检测。

2.1. 图像增强

图像增强的方法按照不同作用域可分为空域和频域增强,空域有灰度变换、直方图均衡化和空域滤波等,频域增强有高通、低通和同态滤波等 [8]。本文使用灰度化和均值滤波法减少冗余信息,去除噪点。

1) 灰度化,在RGB模型中,如果R = G = B时,则彩色表示一种灰度颜色,其中R = G = B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0~255。灰度化如图1所示。

Figure 1. Grayscale image

图1. 灰度化

2) 均值滤波是典型的线性滤波算法,该算法在图像目标像素上给定一个模板,该模版周围包括其周围邻近的像素,再将模板中的全体像素进行求平均值,用均值代替原像素值,以实现像素的平滑,突出细节信息,忽略边缘,达到去噪的目的。均值滤波法如图2所示。

Figure 2. Mean filtering method

图2. 均值滤波法

2.2. 目标检测

1) YOLO算法原理

YOLO算法在目标检测过程中采用了针对目标检测任务设计的CNN进行特征提取,通过全连接层对识别出来的目标进行位置预测和分类,YOLO算法的网络模型由输入层,卷积层,池化层,全连接层构成,如图3所示。

Figure 3. YOLO network [9]

图3. YOLO网络模型 [9]

YOLO算法的输入层,将输入的图像剪切448*448*3的三通道图像,三通道是指图像由红,绿,蓝三原色叠加组成。全连接层要求固定大小的向量作为输入,在向前层网络反馈数据时要求原图像大小固定尺寸,因此输入图像剪切为448*448固定大小。

输入层之后是24层卷积层,通过对输入图像进行卷积运算获得特征图,记录特征数据方便后续的分类和目标定位。YOLO网络模型中采用3*3和1*1的卷积核,其中1*1的卷积核主要用来降低卷积核通道数量,减少后续运行参数。

YOLO网络模型的池化层和卷积神经网络池化层功能相同,用一个值代替对应区域像素点。YOLO网络模型中使用最大池化,用卷积后的图像区域最大值来代替原图像区域,减少冗余数据,防止过拟合。

YOLO网络模型使用两个全连接层将卷积池化后多维数据“拉伸”成为一维向量,为后面的分类和位置确定做铺垫。

YOLO网络模型的最后一层输出层与CNN算法中的SoftMax分类器实现将全连接层数据分类输出相似,输出的特征图个数就是目标的分类数,但也有不同YOLO算法输出层输出一个7*7*30的张量,7*7与输入层的7*7网格相对应,30代表着图像中物体的分类结果以及位置信息编码。最后通过统一约定的方式对该向量进行解码在原图像中绘制出检测结果。

2) 检测流程

YOLO算法将输入的图像划分为S*S的网格,每个网格负责检测落在中心点的目标并获得目标边框。每个目标边框由五维预测参数组成即中心点偏移(x,y),宽高(w,h)和置信度(Confidence)。

置信度计算如公式(1-1)所示

C

=

Pr

(

O

b

j

e

c

t

)

I

o

U (1-1)

公式(1-1)中Pr (Object)表示网格目标边框中目标存在的可能性,Object代表目标对象,IoU (Intersection over Union,交并比)用于展示当前模型预测到的目标边框位置的准确性,表达式如公式(1-2)所示。

I

o

U

p

r

e

t

r

u

e

=

b

o

x

(

p

r

e

)

b

o

x

(

t

r

u

e

)

b

o

x

(

p

r

e

)

b

o

x

(

t

r

u

e

) (1-2)

公式(1-2)中box(pre)表示预测的目标边框,box(true)表示真实目标边框。

YOLO算法检测流程如图4所示。

3. 联合跟踪算法

3.1. KCF算法

KCF算法的思想主要是鉴别式追踪方法,该方法主要是在追踪过程中训练一个目标检测器,使用所需的目标检测器去检测下一帧视频图像位置,来预测该位置是否是所需要的目标,然后再使用新的检测结果去更新训练集 [10]。以此来实现更新目标检测器。通过在频域内的傅里叶变换和脊回归,将目标区域作为正样本,周围不包括目标的区域视为负样本,选定的目标区域和周围区域的循环矩阵进行水平、垂直的循环移位来产生大量的样本,实现目标检测器的训练。

1) 算法推导

设训练样本集为(xi,yi),则其线性回归函数为公式(2-1)所示。

f

(

x

i

)

=

w

T

x

i (2-1)

其中,w代表列向量的权重系数,为了降低损失函数,优化算法,于是采用最小二乘法来求解如公式(2-2)所示。

Figure 4. YOLO algorithm detection process

图4. YOLO算法检测流程

min

w

i

(

f

(

x

i

)

y

i

)

2

+

λ

w

2 (2-2)

其矩阵形式为

min

w

X

w

y

2

+

λ

w

2 (2-3)

公式(2-2)又称脊回归,其中

λ

w

2 是最小化风险参数,又称为惩罚项,

λ 是正则化参数,可以防止过拟合,计算权值w,求解如公式(2-4)所示。

w

=

(

X

T

X

+

λ

I

)

1

X

T

y (2-4)

其中,行向量矩阵表示为

X

=

[

x

1

,

x

2

,

x

3

,

x

4

,

,

x

n

]

T,y表示回归值,yi是列向量,因为考虑到傅里叶变化中有负数的存在,所以要计算复数矩阵,将式(2-4)转换为复数形式如公式(2-5)所示。

w

¯

=

(

X

H

X

+

λ

I

)

1

X

H

y (2-5)

其中,X的共轭复数转置矩阵为XH。

2) KCF算法的目标检测

在当前帧选取与前一帧目标所在位置的目标区域坐标,提取基本候选样本,设样本大小为w*h的图像块,建立目标区域模型。通过循环移位获取一系列样本集合,设为

G

i

(

i

{

0

,

1

,

2

,

,

w

1

}

x

{

0

,

1

,

2

,

,

h

1

}

)。

对每个候选样本进行权值系数计算,再根据

S

i

=

j

a

i

k

(

x

j

,

g

i

) 计算检测样本与目标相似度进行加权求和,

得到下一帧的响应值为了提高运行速度,求解转换为频域如公式(2-6)所示。

S

=

F

1

[

F

(

k

)

F

(

)

] (2-6)

KCF跟踪算法具有简洁、效果好、速度快的特点,尤其是通过傅里叶变换的推导,在频域范围内计算的速度非常快,跟踪效果也非常显著 [11]。但当因环境问题即本文讨论的录制设备发生偏移时导致无法准确跟踪或丢失目标。

因此本文采用YOLO和KCF算法联合的目标跟踪算法,用于解决设备偏移追踪不准确或丢失目标的问题。

3.2. 联合跟踪算法设计

1) 偏移误差率(Offset error rate, OER)

为了解决KCF算法因设备偏移带来的跟踪偏移和目标丢失问题,使用YOLO算法进行KCF算法的初始化,在跟踪过程中,将KCF算法预测的目标位置(kx,ky)中的kx与YOLO算法目标检测位置(x,y)中的x进行比较,两种算法在x轴方向上的比值定义为偏移误差率(Offset error rate, OER)如公式(2-7)所示。通过OER来判断是否使用YOLO算法对KCF算法跟踪框进行更新。

O

E

R

=

x

/

k

x (2-7)

2) 算法设计

Figure 5. Flow chart of target tracking algorithm combined with YOLO and KCF

图5. 基于YOLO和KCF的目标跟踪算法流程图

本文提出的基于YOLO和KCF的目标跟踪算法,相较于传统跟踪算法提高了其跟踪准确率和鲁棒性。算法步骤如下:

Step1初始化:YOLO算法初始化KCF算法跟踪框;

Step2 KCF算法跟踪:利用KCF算法跟踪目标,通过OER判断是否发生偏移或丢失目标现象;

1) 有偏移:若OER ≥ β,其中β为偏移阈值,则认为目标跟踪发生偏移。在判断出目标发生偏移后,将此时的YOLO算法目标边框赋值KCF算法重新跟踪。

2) 无偏移:若OER < β,则认为此时目标被跟踪,用KCF算法继续跟踪。

3) 丢失目标:若OER = 0,此时KCF算法丢失目标。通过YOLO算法对KCF算法再次进行初始化实现目标跟踪。

基于YOLO和KCF的目标跟踪算法流程图如图5所示。

4. 实验结果及分析

为了更加直观的展示本文提出的基于YOLO和KCF的目标跟踪算法的跟踪效果,将KCF算法、Camshift算法和基于YOLO和KCF的目标跟踪算法进行实验对比分析。

实验1:选取录制设备未发生偏移的视频,视频中背景环境对跟踪目标的干扰较小。图6、图7和图8分别是视频序列的第6、84、187帧,用矩形框表示被跟踪目标的位置和区域。

(a) 第6帧 (b) 第84帧 (c) 第187帧

Figure 6. Tracking effect of KCF algorithm

图6. KCF算法跟踪效果

(a) 第6帧 (b) 第84帧 (c) 第187帧

Figure 7. Target tracking effect of Camshift algorithm

图7. Camshift算法跟踪效果

(a) 第6帧 (b) 第84帧 (c) 第187帧

Figure 8. Target tracking effect of YOLO and KCF algorithm

图8. 基于YOLO和KCF算法的目标跟踪效果

实验2:选取录制设备发生偏移的视频,视频中背景环境对跟踪目标的干扰较小。图9、图10和图11分别是视频序列的第6、84、187帧,用矩形框表示被跟踪目标的位置和区域。

(a) 第6帧 (b) 第84帧 (c) 第187帧

Figure 9. Tracking effect of KCF algorithm

图9. KCF算法跟踪效果

(a) 第6帧 (b) 第84帧 (c) 第187帧

Figure 10. Target tracking effect of Camshift algorithm

图10. Camshift算法跟踪效果

(a) 第6帧 (b) 第84帧 (c) 第187帧

Figure 11. Target tracking effect of YOLO and KCF algorithm

图11. 基于YOLO和KCF算法的目标跟踪效果

KCF算法在录制设备有无偏移的两种情况下目标跟踪效果如图6和图9所示。通过对图9(b)和图9(c)的观察,当人体目标处于跟踪状态出现录制设备偏移情况时,算法的跟踪结果不准确,跟踪框发生了较大的偏移,彻底地丢失人体目标。

Camshift算法在实验1和实验2的效果分别如图7和图10所示。在未发生录制设备偏移时,如图7(b)所示,跟踪效果没有影响。当录制设备发生偏移时,如图10所示Camshift算法跟踪目标丢失。

基于YOLO和KCF算法在实验1和实验2的效果分别如图8和图11所示。在实验2的跟踪过程中,当出现录像位置偏移时,如图11(b)和图11(c)所示并未发生目标丢失或跟踪偏移现象。通过上述算法的比较证明了基于YOLO和KCF的目标跟踪算法具有较高的准确率和鲁棒性。

5. 结论

本文针对在目标跟踪过程中因录制设备发生偏移导致跟踪偏移或目标丢失的问题,通过YOLO算法对KCF算法进行跟踪框初始化,设置OER作为偏移误差率,判定是否更新KCF算法跟踪框。基于YOLO和KCF的目标跟踪算法相较于KCF算法、Camshift算法具有较高的跟踪准确率和鲁棒性。但本算法时间复杂度较高,在未来会将研究重心放到设计更加合理的YOLO算法结构模型和KCF算法优化,以提高算法运行效率。

基金项目

河南省科技厅科技发展计划科技攻关项目(No.182102310040);平顶山学院青年科研基金项目(No. PXY-QNJJ-2018005)。

kcf 跟随_基于YOLO和KCF的目标跟踪算法研究相关推荐

  1. 目标检测YOLO实战应用案例100讲-基于卷积神经网络的小目标检测算法研究

    目录 基于卷积神经网络的小目标检测算法研究 基于卷积神经网络的小目标检测相关理论 2.1 引言

  2. 空间中的语义直线检测_基于语义分割的车道线检测算法研究

    龙源期刊网 http://www.qikan.com.cn 基于语义分割的车道线检测算法研究 作者:张道芳 张儒良 来源:<科技创新与应用> 2019 年第 06 期 摘 ; 要:随着半自 ...

  3. 基于嵌入式设备的 单目标跟踪算法

    基于嵌入式设备的单目标跟踪实现 最近基于嵌入式设备(Khadas Vim3)做了一套单目标跟踪算法,跟踪效率可以做到每秒25帧左右. 算法运行耗时记录 time is:37.6241 ms time ...

  4. 基于均值漂移的视频目标跟踪算法的研究

    背景介绍 计算机视觉作为一门多技术融合的学科,涉及模式识别和视频图像处理等众多领域.基于视频的目标检测与跟踪技术是计算机视觉领域中最主要的研究方向之一,它是智能监控.移动机器人视觉导航以及人机交互等应 ...

  5. java光流法运动目标检测_基于光流法运动目标检测和跟踪算法.PDF

    第,+ 卷第' 期 东 北 大 学 学 报 ( 自 然 科 学 版 ) 5# (! ,+ ,*#! ' ! " #' 年 ' 月 "#$%&'( #) *#%+,-'.+- ...

  6. 目标检测YOLO实战应用案例100讲-基于轻量化神经网络的目标检测算法研究与应用

    目录 基于轻量化深度神经网络的目标检测方法研究 基于深度学习的目标检测方法

  7. python 粒子滤波目标追踪_Python实现基于相关滤波的单目标跟踪算法

    最近在阅读一些单目标跟踪的算法论文,主要看了一系列基于相关滤波的算法,尝试着用python实现了其中一些比较经典的算法,地址在https://github.com/wwdguu/pyCFTracker ...

  8. js 字符串加减法_基于字符串的数值之加减乘除JS算法研究

    在我们的日常js项目中,我们不免会碰到需要进行前端计算的场景.而大家都知道,计算机进行计算时存在精度问题,且数值有值域,偶尔会碰到溢出问题.在最近的一个项目中,由于遇到了一个超过20位的数,因此,又不 ...

  9. HO-MHT (Hypothesis Oriented Multi-Hypothesis Target Tracking/基于假设的多假设目标跟踪算法)

    面向假设的多假设目标跟踪算法-Python3.X实现 前言 1. tracker.py 1.1 _normalize_log_sum(items) 1.2 LocalHypothesis类 1.2.1 ...

最新文章

  1. 安装Vuecli新版本正常,但是显示版本是低版本
  2. Problem J: Island Buses
  3. HiveQL:模式设计
  4. C#写爬虫,版本V2.1
  5. android 3.0 m3u8,在Android中播放m3u8视频
  6. 拓端tecdat|Excel中计算票面利率Coupon Rate
  7. 基于CarMaker的C-NCAP主动安全系统试验仿真(四)
  8. UML 类图画法规则
  9. 连京东都开始卖翻新机,教你识别手中的iPhone 隐藏id
  10. Android播放音乐的代码,android源代码(完整的音乐播放器)
  11. 如何把自己的项目部署在腾讯云服务器上,别人可以访问(超详细教程)
  12. JavaScript的全局作用域、全局对象window
  13. Casbin入选2022 Google编程之夏
  14. PHP正则表达式教程
  15. python手机编译器怎么编写程序_怎么用手机编写Python程序?
  16. 爱码物联|汽车制造行业,汽车零部件质量溯源解决方案
  17. 必备小工具百度翻译桌面版,瞬时翻译
  18. 关于RM1135/RTS5735主控固态SSD开卡量产工具的使用简介
  19. uvm_reg中修改mirror、desired、actual value的方法总结
  20. FastClick 填坑及源码解析

热门文章

  1. Android入门实例三 注册界面的设计与实现
  2. pycocotools安装避雷
  3. C++拷贝构造函数(复制构造函数)详解篇
  4. @Validated和@Valid的区别
  5. 短小视频网站sexcms源码 安装搭建环境加采集教程 有手机和PC演示站 linux下安装一片空白的解决linux下安装一片空白的解决
  6. linux—镜像格式转换(qcow2、vmdk、raw、iso)qemu-img指令—直接拿下
  7. 拨码无线网桥的配置+注意事项
  8. gpu服务器接显示器缓慢,小科普 开启GPU加速,又一波白给的性能提升?
  9. windows 服务器上 Nginx 重启无效问题排查!
  10. 模拟电视信号的数字化