KCF总结报告.docx
- 文档编号:18111338
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:10
- 大小:531.10KB
KCF总结报告.docx
《KCF总结报告.docx》由会员分享,可在线阅读,更多相关《KCF总结报告.docx(10页珍藏版)》请在冰点文库上搜索。
KCF总结报告
通信系统创新实践项目总结报告
1.项目背景2
2.研究内容2
2.1视频处理2
2..2KCF算法3
2.3多尺度改进3
3.实施方案4
3.1整体方案.4
3.2流程图5
3.3任务分配5
3.4所负责项目具体实施5
3.4.1视频分帧及坐标标注5
3.4.2用KCF算法进行绝缘子跟踪6
3.4.3在算法中加入多尺度部分7
4.实验结果及分析8
5.结论10
6.收获和建议10
1.项目背景
视觉目标跟踪在视频智能监控和机器人视觉导航等领域有着广泛应用。
绝缘子是输电线路的重要部分,它是整个输电线路安全运行的基础。
传统的绝缘子巡检主要依靠人力,这种巡检方式不仅效率低,而且安全隐患非常大。
近年来,随着无人机(UAV)技术的不断发展,无人机参与电力巡检已经在全国多地展开。
但是,无人机巡检的目的是要对绝缘子进行拍照或者利用绝缘子进行测距,这就要求无人机能够准确跟踪绝缘子。
曾采用的跟踪绝缘子方法有:
最大类间方差(OTSU)法、迭代阈值法、遗传算法(GA)、粒子群算法。
尽管近年来目标跟踪技术取得了相当大的进展,但众多因素影响跟踪算法的性能,包括光照变化、遮挡和背景混杂等,以至视觉目标跟踪仍然是一个具有挑战性的课题。
目前不存在单一的方法,能够成功地处理所有场景。
2.项目内容
2.1视频处理
由于KCF算法中输入的是一帧一帧的图片,所以在进行跟踪前要对视频进行分帧处理;同时,也要对被跟踪的绝缘子进行坐标标注。
2.2KCF算法
在KCF跟踪算法中,以核岭回归分类器作为核心,构建循环样本矩阵来训练该分类器,对样本进行巧妙地变换使训练数据矩阵具有循环特性,就可以通过离散傅里叶变换对角化,便能减少几个数量级的存储与计算,从而达到对目标快速有效检测跟踪的目的。
2.3多尺度估计
传统的KCF跟踪方法始终固定尺度的矩形框去搜寻下一帧中的目标,即目标匹配模型x是一个固定尺寸的矩阵,不能很好地适应目标尺度发生变化的目标跟踪情况。
而且将尺度估计纳入一个跟踪器中是需要很高的计算代价的,会明显降低算法的运算效率。
而在理想情况下,一个精确的尺度估算方法应该健壮而且有较高计算的效率。
为实现这一目标,我们使用了一个在线学习且独立于位置滤波器的滤波器进行快速地尺度估算的方法。
这样有助于把尺度空间的搜索区域限制在更小范围。
此外,还可以自由地选择每个独立的滤波器的特征描述。
3.实施方案
3.1整体方案
如图所示是基于核化相关滤波器的绝缘子视频跟踪方法研究的整体方案规划:
视频分帧坐标标注用KCF算法进行绝缘子跟踪
跟踪绝缘子在算法中加入多尺度部分
首先将视频进行分帧处理,然后分别在matlab环境下和C语言环境下分别用KCF算法对绝缘子进行跟踪,从而比较同种算法在不同环境下的跟踪速度及跟踪效果,最后,在matlab环境下,在算法中加入DSST算法中的尺度估计的尺度金字塔相关滤波方法,实现一种多尺度的相关滤波器跟踪方法。
3.2算法流程
输入图像
上一帧的位置
和尺度
位置模型
、
和
尺度模型
、
估计的目标位置
和尺度
更新位置
、
和
尺度模型
、
其中,
位置评估:
1.参照模板在前一帧的位置,在当前帧中按照前一帧目标尺度的2倍大小提取一个样本Ztrans
2.利用Ztrans和Atranst−1、Btanst−1,计算ytrans
3.计算max(ytrans),得到目标新的位置Pt
尺度评估:
4.以目标当前新位置为中心,提取33种不同尺度的样本Ztrans
5.利用Ztrans和Atranst−1、Btanst−1计算出yscale
6.计算max(yscale),得到目标准确的尺度St模型更新:
7.提取样本ftrans和fscale
8.更新位置模型Atranst和Btranst
9.更新尺度模型Ascalet和Bscalet
3.3.任务分配
3.4所负责项目具体内容及实施3.4.1视频分帧及坐标标注在matlab环境下运行程序时,输入的是连续的图片,因此在运行程序前,需要对视频进行分帧处理,分帧程序如下
fileName='F:
\video\video.mp4';
obj=VideoReader(fileName);
numFrames=obj.NumberOfFrames;%视频帧总数
%若不存在文件夹,则新建文件夹
if~exist('ImageTest')
mkdir('ImageTest');
end
fork=1:
numFrames
frame=read(obj,k);
%imshow(frame);%显示帧
imwrite(frame,strcat('./ImageTest/',sprintf('%04d.jpg',k)),'jpg');
end
用imread函数读取第一帧图片,利用matlab中的数据游标工具将绝缘子的左顶点坐标标注出来,计算目标框的长度、宽度,以[x,y,width,height]的形式写入文本文档。
3.4.2用KCF算法进行绝缘子跟踪
KCF是一种鉴别式追踪方法,这类方法一般都是在追踪过程中训练一个目标检测器,使用目标检测器去检测下一帧预测位置是否是目标,然后再使用新检测结果去更新训练集进而更新目标检测器。
而在训练目标检测器时一般选取目标区域为正样本,目标的周围区域为负样本。
改变输入路径,运行程序。
得到利用KCF算法跟踪的结果,如下图所示。
原始图像
跟踪后的图像此算法存在的一个缺点是在绝缘子发生尺度变化时,尺度框不能随之变化,如下图所示,因此要在算法中加入尺度估计的部分。
3.4.3在算法中加入多尺度部分
DSST算法将跟踪分为两个部分,位置变化(translation)和尺度变化(scaleestimation)。
在跟踪的实现过程中,作者定义了两个correlationfilter,一个滤波器(translationfilter)专门用于确定新的目标所处的位置,另一个滤波器(scalefilter)专门用于尺度评估。
DSST算法的亮点就是提出的基于一维独立的相关滤波器的尺度搜索和目标估计方法。
具体操作方法是:
在新的一帧中,先利用2维的位置相关滤波器来确定目标的新候选位置,再利用1维的尺度相关滤波器以当前中心位置为中心点,获取不同尺度的候选patch,从而找到最匹配的尺度。
尺寸选择原则是:
,
其中,P,R分别为目标在前一帧的宽高,a=1.02为尺度因子,S=33为尺度的数量。
上述尺度不是线性关系,而是由精到粗(从内到外的方向)的检测过程.
本次项目只需要将尺度相关性滤波器加入到tracker函数中。
传统的KCF算法的参数保持不变,高斯核的标准差为0.5,学习因子为0.02,正则化参数为0.0001,取HOG特征,尺度因子取1.5。
4.实验结果及分析
用KCF算法跟踪绝缘子效果不错,在不发生尺度变化的情况下,能够很好的进行跟踪,跟踪速度能达到172帧/秒,但是在加入多尺度估计后,由于图片不清晰,特征不明显等原因,缺点没有得到明显的改善。
以下是实验运行结果:
(1)KCF跟踪
分析:
(2)多尺度估计的KCF跟踪
分析:
5.结论
6.收获和建议
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- KCF 总结报告