联合YOLO和Camshift的目标跟踪算法研究
- 格式:pdf
- 大小:1.36 MB
- 文档页数:7
改进的Camshift目标跟踪算法的研究
张丽媛;梁凤梅
【期刊名称】《科学技术与工程》
【年(卷),期】2014(014)013
【摘要】Camshift算法是一种常用的跟踪算法,使用传统的Camshift算法追踪目标时,在目标与背景色调一致,或者目标与镜头相距较远的情况下可能会跟踪失败.通过分析Camshift算法的不足,从目标初始化和阈值筛选这两方面做出了改进;将原算法中的单框圈定目标改进为双框取定目标,阈值不变改进为自动调整阈值.实验结果证明,该算法具有一定的先进性,在目标较小或者目标移动迅速的情况下也能准确地进行跟踪,提高了算法对背景的适应能力以及跟踪的成功率和准确率.
【总页数】5页(P231-235)
【作者】张丽媛;梁凤梅
【作者单位】太原理工大学信息工程学院,太原030024;太原理工大学信息工程学院,太原030024
【正文语种】中文
【中图分类】TP391.41
【相关文献】
1.基于改进Camshift的竹材加工目标检测跟踪算法研究 [J], 任洪娥;马晓珍;董本志;王海丰
2.基于改进的Camshift运动目标跟踪算法的研究 [J], 赵文倩;匡逊君;李明富
3.无人机对船舶目标的改进CamShift跟踪算法研究 [J], 甘斌斌
4.Camshift目标跟踪算法改进研究 [J], Wang Weicheng
5.基于改进Camshift的无人机目标跟踪算法研究 [J], 沈思源;李震霄;孙伟
因版权原因,仅展示原文概要,查看原文内容请购买。
Camshift目标跟踪算法改进研究Wang Weicheng【摘要】Camshift目标跟踪算法是基于颜色特征信息,在视频目标跟踪过程中依据目标的颜色特征直方图计算每帧图像的反向投影图,并将上一帧跟踪目标的位置和大小作为当前帧目标搜索窗口初始化的位置和大小.为了能够有效地跟踪运动目标,利用基于Kalman滤波方法改进的Camshift算法实现目标跟踪;为了提高跟踪的稳定性和有效性,引入粒子滤波算法校正Camshift算法的目标中心位置,在不影响跟踪实时性的前提下,提高了目标跟踪的鲁棒性.实验结果表明:在图像背景复杂且目标被长时间遮挡的情形下,该方法仍能有效地实现目标跟踪.【期刊名称】《石油化工自动化》【年(卷),期】2019(055)001【总页数】5页(P35-38,65)【关键词】Kalman滤波算法;Camshift算法;粒子滤波算法;目标跟踪【作者】Wang Weicheng【作者单位】【正文语种】中文【中图分类】TP391.4运动目标跟踪一直是计算机视觉研究领域的热门课题之一,它是视频监控和安防系统中不可或缺的一部分。
传统的目标跟踪方法通常存在着鲁棒性和实时性的矛盾,一般情况下,在视频图像序列中,被跟踪的物体存在着旋转、被遮挡、与背景相融合等现象,在进行目标跟踪时,利用简单的模板匹配方法难以达到理想的效果,且容易出现误匹配和目标跟踪丢失等情况。
目前,传统的Camshift算法被用来解决上述问题,该算法利用目标的颜色直方图表示目标颜色概率出现的大小,目标的颜色直方图仅和目标自身的颜色相关,不受其形状变化的影响,可以有效地解决物体变形的问题。
虽然传统的Camshift算法原理简单,运算效率高,然而却无法很好地处理物体被遮挡或与背景融合等情况。
针对传统的Camshift算法的不足之处,本文在传统Camshift目标跟踪方法的基础上,提出了Kalman滤波算法预测运动目标位置和粒子滤波算法进行目标中心位置校正的Camshift改进算法,并通过实验验证了该算法的有效性和鲁棒性。
基于CamShift算法的运动目标跟踪研究摘要:运动目标跟踪是计算机视觉的一个重要研究内容,通过对多幅连续图像的处理,达到对图像中特定目标检测和跟踪的目的。
以对目标跟踪问题的分析为基础,研究了基于CamShift (Continuously Adaptive MeanShift)算法的运动目标跟踪实现策略,基于目标的颜色特征进行跟踪,以均值移动策略作为目标的搜索算法,有效减少了特征搜索时间,实现了运动目标的快速定位。
详细讨论了算法的设计和实现过程,并以实现的运动目标跟踪算法为基础开展了实例实验,验证了所研究算法的有效性。
关键词:目标跟踪CamShift算法视觉跟踪均值移动算法计算机视觉中图分类号:TP391.41 文献标识码:A 文章编号:1674-098X(2015)12(c)-0158-02Research of Moving Target Tracking Based on CamShift AlgorithmHuang Haitao Yu Bicheng Dong Huiwen Yan Jun(Computer Engineering College of Nanjing Institute of Technology,Nanjing Jiangsu,211167,China)Abstract:Moving target tracking is one of the mostimportant research focus in computer vision. By processing several continuous images,moving target can be detected and tracked. Based on the analysis of moving target tracking problem,the implementation strategy is presented in this paper.The CamShift algorithm is evolved from MeanShift algorithm,taking color characteristics of objects as key factors to reduce times of tracking target object.Based on the research of theoretical model for target tracking,the design and implementation of the strategy is proposed in this paper.The numerical experiments are discussed to ensure the validation of this implementation.Key Words:Target tracking;CamShift algorithm;Tvision tracking;MeanShift;Computer vision运动目标跟踪是计算机视觉的重要研究内容之一,通过对实时采集的、包含目标对象的多幅连续图像进行数字化处理,达到对图像中目标物体进行检测、识别、理解和跟踪的目的。
基于CAMshift算法的目标跟踪研究目标跟踪是计算机视觉中的一个重要问题。
随着计算机技术的发展,目标跟踪技术得到了广泛的研究和应用。
其中,CAMshift 算法是一种经典的目标跟踪算法之一。
本文将介绍CAMshift算法的基本原理、优缺点以及应用。
一、CAMshift算法的基本原理CAMshift算法是一种基于颜色直方图的目标跟踪算法。
该算法擅长于跟踪颜色信息相对稳定的目标,如人脸、车辆等。
具体来说,CAMshift算法首先利用颜色直方图来描述目标的颜色信息。
然后,通过对直方图进行归一化,得到标准化的颜色直方图。
接下来,通过反向投影,计算图像中每个像素与目标颜色直方图之间的相似度。
将相似度最高的像素作为目标的中心点,并利用Meanshift算法进行目标的迭代更新。
最终,通过利用CAMshift算法实现目标的自适应缩放和旋转。
总结来说,CAMshift算法的基本原理可以归纳为:颜色直方图描述目标颜色信息,反向投影获取像素与目标颜色直方图的相似度,Meanshift算法进行迭代更新,CAMshift算法实现目标自适应缩放和旋转。
二、CAMshift算法的优缺点CAMshift算法具有如下的优点:1. 强鲁棒性。
CAMshift算法采用的颜色直方图具有很强的鲁棒性,能够适应环境光线变化、物体表面材质变化等情况。
2. 高速度。
CAMshift算法能够在实时性要求比较高的场合下实现目标跟踪,速度较快。
3. 自适应性。
CAMshift算法能够通过自适应缩放和旋转来适应目标尺度和方向的变化,能够有效地跟踪运动目标。
但是,CAMshift算法也存在一些缺点:1. 对光照和噪声比较敏感。
在光照和噪声较大的情况下,由于颜色直方图会受到影响,导致跟踪效果下降。
2. 不适用于多目标跟踪。
由于CAMshift算法只能根据单个颜色直方图进行目标跟踪,因此不适用于多目标的跟踪。
三、CAMshift算法的应用CAMshift算法已经在许多领域得到了广泛的应用。
无人机控制中的目标跟踪算法研究随着无人机技术的快速发展,无人机应用范围不断拓展,其中目标跟踪算法的研究成为无人机控制技术的重要组成部分。
无人机的应用场景多种多样,需要不同类型的目标跟踪算法来满足不同的需求。
本文将重点介绍无人机控制中的目标跟踪算法研究。
一、目标跟踪算法的分类目标跟踪算法按照算法的实现原理可以分为基于特征的目标跟踪算法和基于模型的目标跟踪算法。
1. 基于特征的目标跟踪算法基于特征的目标跟踪算法是根据目标物体在图像上的特征来实现目标跟踪的算法,主要包括颜色特征、纹理特征、形状特征等。
目前常见的基于特征的目标跟踪算法有:CAMShift算法、MeanShift算法、Haar分类器算法、SURF算法等。
2. 基于模型的目标跟踪算法基于模型的目标跟踪算法是根据建立的目标模型来实现目标跟踪的算法,主要包括卡尔曼滤波算法、粒子滤波算法、CAMshift-Kalman算法等。
其中,粒子滤波算法是近年来发展比较迅速的一种新型目标跟踪算法。
二、特征优化算法无人机应用场景的多样性决定了目标跟踪算法的实现会受到光影等各种因素的干扰,因此需要通过特征优化算法来提高算法鲁棒性,增强无人机跟踪效果。
特征优化算法是指通过对目标在图像上的特征进行处理,改变其在不同光照、角度等情况下的表现,从而提高算法的鲁棒性。
1. 扩展局部二值模式扩展局部二值模式(Extended Local Binary Pattern)是一种基于纹理特征的特征优化算法,它通过对LBP算子的改进,提高了算法的变化不变性和鲁棒性,使得其适用范围更广泛。
该算法已在无人机夜间目标跟踪中得到了广泛应用。
2. SIFT特征优化算法SIFT(Scale-invariant feature transform)是一种基于形状和纹理的特征提取算法,能够对目标物体在不同尺度、方位和光照条件下具有相同的描述,因此在无人机目标跟踪中具有重要的应用价值。
为了提高SIFT算法在无人机目标跟踪中的效果,研究者还开发了多种SIFT特征优化算法,如基于颜色的SIFT特征优化算法等。
用于运动目标跟踪的改进Camshift算法的研究秦勇;商萌萌;赵晓红;盖建新【摘要】Camshift是一种应用颜色特性来对目标实施跟踪的算法,所以当背景过于复杂、目标被遮挡或做加速运动时很容易发生目标跟丢的情况.针对以上缺点,提出首先采用帧间差分法自动的选取搜索窗口,然后引入加权颜色概率直方图排除相似背景颜色的干扰,最后采用Kalman滤波器预测和Camshift算法相结合的方法准确跟踪做加速运动的物体.实验表明,此方法能够准确定位做加速运动或被遮挡的目标.【期刊名称】《哈尔滨理工大学学报》【年(卷),期】2018(023)003【总页数】5页(P34-38)【关键词】Camshift;帧间差分;加速运动;Kalman滤波【作者】秦勇;商萌萌;赵晓红;盖建新【作者单位】哈尔滨理工大学测控技术与通信工程学院,黑龙江哈尔滨150080;哈尔滨理工大学测控技术与通信工程学院,黑龙江哈尔滨150080;哈尔滨理工大学测控技术与通信工程学院,黑龙江哈尔滨150080;哈尔滨理工大学测控技术与通信工程学院,黑龙江哈尔滨150080【正文语种】中文【中图分类】TP3910 引言视频序列中移动目标的跟踪是计算机视觉研究中的一个重要分支,在安全监控,智能感知等领域应用比较广泛[1]。
它能够为场景分析和目标运动分析提供必要的信息来源,同时也是目标识别、行为描述等高级处理的基础。
Camshift算法简单,运行效率相对较高且计算量较小,在背景颜色过于单一的情况下跟踪的效果良好。
但是传统的Camshift算法需要手动初始化搜索窗口,如果背景颜色和目标物体相似容易受到干扰,不适应遮挡环境,不能够对目标模型实时更新并且对高速运动的物体容易跟踪失败。
针对以上缺点,本文提出了用四帧差分和Kalman算法相结合的方法对Camshift进行改进。
1 目标检测算法1.1 四帧差分法帧间差分法运算简单且便于计算,比较适于改进Camshift算法。
一种多特征联合分布的Camshift目标跟踪算法
赵成;高晔
【期刊名称】《计算机与数字工程》
【年(卷),期】2024(52)3
【摘要】针对Camshift算法在纹理与颜色相似干扰、目标遮挡等复杂背景中鲁棒性不高、易出现跟踪丢失等问题,提出了一种多特征联合分布的Camshift目标跟踪算法。
新的算法选择等价模式LBP纹理,色调与饱和度为多特征,图像从RGB空间的转化为ULBP-H-S空间。
选取图像中运动目标作为目标模板,计算目标模板的ULBP-H联合概率分布图与H-S联合概率分布图,通过自适应系数将两个联合概率分布图按位与运算后到目标的联合概率分布图。
在每次迭代搜索中,通过自适应搜索窗口算法预测下一帧的搜索窗口位置与大小,在预测的搜索窗口中使用Camshift 算法对目标连续跟踪。
实验结果表明,改进的算法能在纹理与颜色相似干扰与目标遮挡复杂环境中,对运动目标跟踪有较高的准确性与鲁棒性。
【总页数】6页(P665-670)
【作者】赵成;高晔
【作者单位】西安科技大学计算机科学与技术学院
【正文语种】中文
【中图分类】TP391
【相关文献】
1.一种结合颜色纹理直方图的改进型Camshift目标跟踪算法
2.一种改进的Camshift视频目标跟踪算法
3.一种改进的Camshift和Kalman相结合的运动目标跟踪算法
4.一种改进的CamShift运动目标跟踪算法
5.一种结合Camshift和Kalman滤波的TLD目标跟踪算法
因版权原因,仅展示原文概要,查看原文内容请购买。
⽤Camshift算法对指定⽬标进⾏跟踪原理Camshift算法是Continuously Adaptive Mean Shift algorithm的简称。
它是⼀个基于MeanSift的改进算法。
它⾸次由Gary R.Bradski等⼈提出和应⽤在⼈脸的跟踪上,并取得了不错的效果。
因为它是利⽤颜⾊的概率信息进⾏的跟踪。
使得它的执⾏效率⽐較⾼。
Camshift算法的过程由以下步骤组成:(1)确定初始⽬标及其区域;(2)计算出⽬标的⾊度(Hue)分量的直⽅图;(3)利⽤直⽅图计算输⼊图像的反向投影图(后⾯做进⼀步的解释);(4)利⽤MeanShift算法在反向投影图中迭代收索,直到其收敛或达到最⼤迭代次数。
并保存零次矩。
(5)从第(4)步中获得收索窗体的中⼼位置和计算出新的窗体⼤⼩。
以此为參数,进⼊到下⼀幀的⽬标跟踪。
(即跳转到第(2)步);代码#include "stdafx.h"#include "opencv2/video/tracking.hpp"#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/highgui/highgui.hpp"#include <iostream>#include <ctype.h>using namespace cv;using namespace std;Mat image;bool backprojMode = false;bool selectObject = false;int trackObject = 0;bool showHist = true;Point origin;Rect selection(0,0,50,50);static void onMouse( int event, int x, int y, int, void* ){switch( event ){case CV_EVENT_LBUTTONDOWN:origin = Point(x,y);selection = Rect(x,y,0,0);selectObject = true;break;case CV_EVENT_LBUTTONUP:selectObject = false;if( selection.width > 0 && selection.height > 0 )trackObject = -1;break;}if( selectObject ){selection.x = MIN(x, origin.x);selection.y = MIN(y, origin.y);selection.width = std::abs(x - origin.x);selection.height = std::abs(y - origin.y);}}int main( int argc, const char** argv ){cv::VideoCapture capture(0);capture.set( CV_CAP_PROP_FRAME_WIDTH,640);capture.set( CV_CAP_PROP_FRAME_HEIGHT,480 );if(!capture.isOpened())return -1;double rate = capture.get(CV_CAP_PROP_FPS); //获取帧率int delay = 1000 / rate; //计算帧间延迟;Mat frame,image,hsv,mask,hue;namedWindow("test",CV_WINDOW_AUTOSIZE);setMouseCallback("test",onMouse,0);while (1){capture>>frame;if(trackObject == -1){ //设置完检測的对象后開始跟踪frame.copyTo(image);cv::cvtColor(image,hsv,CV_RGB2HSV);cv::inRange(hsv,Scalar(0,130,50),Scalar(180,256,256),mask); //去掉低饱和度的点vector<cv::Mat> v;cv::split(hsv,v); //hsv的三个通道分开hue = v[1];cv::Mat ROI = hue(selection); //选择感兴趣的区域cv::Mat maskROI = mask(selection);cv::MatND hist;int histsize[1];histsize[0]= 16;float hranges[2];hranges[0] = 0;hranges[1] = 180;const float *ranges[1];ranges[0] = hranges;cv::calcHist(&ROI,1,0,maskROI,hist,1,histsize,ranges);//感兴趣区域的直⽅图。
机器视觉中的目标跟踪与识别算法比较研究引言:随着机器视觉技术的快速发展,目标跟踪与识别成为了计算机视觉领域的研究热点之一。
目标跟踪与识别算法广泛应用于视频监控、自动驾驶、智能机器人等领域。
本文主要对机器视觉中的目标跟踪与识别算法进行比较研究,包括传统的基于特征的目标跟踪算法和深度学习方法。
一、传统的基于特征的目标跟踪算法1. 卡尔曼滤波器算法卡尔曼滤波器算法是一种常用的基于特征的目标跟踪方法,它通过动态模型和观测模型对目标进行跟踪。
然而,卡尔曼滤波器算法对目标的运动模式和观测模型有较强的假设,对于复杂的场景和目标难以准确跟踪。
2. CAMSHIFT算法CAMSHIFT算法是基于颜色直方图的目标跟踪方法,它通过统计目标的颜色分布来进行跟踪。
CAMSHIFT算法在颜色分布不明显的情况下表现不佳,对于光照变化和目标尺度的变化敏感。
3. 基于匹配的目标跟踪算法基于匹配的目标跟踪算法通过匹配目标的特征描述子来进行跟踪,常用的包括SIFT和SURF算法。
然而,这类算法对于目标的外观变化和遮挡容易失效。
二、深度学习方法1. 基于卷积神经网络的目标跟踪算法近年来,深度学习方法在目标跟踪领域取得了显著的进展。
基于卷积神经网络的目标跟踪算法通过利用深度学习网络提取图像特征,实现对目标的准确跟踪。
这类算法具有较强的鲁棒性和准确性,在复杂场景和遮挡条件下表现更好。
2. 基于循环神经网络的目标跟踪算法基于循环神经网络的目标跟踪算法利用循环神经网络对目标进行建模和预测,以实现对目标的连续跟踪。
这类方法可以捕捉目标的运动轨迹和变化趋势,对于长时间跟踪具有较好的效果。
3. 深度目标识别算法深度目标识别算法通过深度学习网络对目标进行分类识别,常用的包括Faster R-CNN和YOLO。
这类算法在目标识别任务中具有较高的准确性和效率。
三、算法比较与优劣势分析1. 准确性传统的基于特征的目标跟踪算法在特定条件下表现良好,但对于复杂场景和目标变化较大的情况下准确性有限。
联合YOLO 和Camshift 的目标跟踪算法研究①韩 鹏, 沈建新, 江俊佳, 周 喆(南京航空航天大学 机电学院, 南京 210016)通讯作者: 沈建新, E-mail: cadatc@摘 要: 为了解决传统目标跟踪算法在有遮挡后无法准确跟踪的问题, 提出了将YOLO 和Camshift 算法相联合的目标跟踪算法. 基于YOLO 网络结构来构建目标检测的模型, 在模型构建之前, 采用图像增强的方法对视频帧进行预处理, 在保留视频帧中足够图像信息的同时, 提高图像质量, 降低YOLO 算法的时间复杂度. 用YOLO 算法确定出目标, 完成对目标跟踪的初始化. 根据目标的位置信息使用Camshift 算法对后续的视频帧进行处理, 并对每一帧的目标进行更新, 从而可以保证不断调整跟踪窗口位置, 适应目标的移动. 实验结果表明, 所提的方法能够有效地克服目标被遮挡后跟踪丢失的问题, 具有很好的鲁棒性.关键词: YOLO 算法; Camshift 算法; 图像增强; 目标跟踪; 遮挡引用格式: 韩鹏,沈建新,江俊佳,周喆.联合YOLO 和Camshift 的目标跟踪算法研究.计算机系统应用,2019,28(9):271–277. /1003-3254/7069.htmlResearch on Target Tracking Algorithm Based on YOLO and CamshiftHAN Peng, SHEN Jian-Xin, JIANG Jun-Jia, ZHOU Zhe(College of Mechanical and Electrical Engineering, Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China)Abstract : In order to solve the problem that traditional target tracking cannot be accurately tracked after occlusion, a target tracking algorithm combining YOLO and Camshift algorithm is proposed. Building a model of target detection using YOLO network structure, before the model is constructed, the image frame is preprocessed by image enhancement method, while maintaining sufficient image information in the video frame, improving the image quality and reducing the time complexity of the YOLO algorithm. The target is determined by the YOLO algorithm, and the initialization of the target tracking is completed. According to the position information of the target, the Camshift algorithm is used to process the subsequent video frames, and the target of each frame is updated, so that the position of the search window can be continuously adjusted to adapt to the movement of the target. The experimental results show that the proposed method can effectively overcome the problem of tracking loss after the target is occluded, and has good robustness.Key words : YOLO algorithm; Camshift algorithm; image enhancement; target tracking; occlusion目标跟踪是目前计算机视觉的一项基本核心技术,在民用和军事的许多领域都有广阔的应用前景. 目前,目标跟踪在智能视频监控、智能交通[1]、军事应用、图像检索等领域得到了充分的发展. 然而, 图像是从三维空间到二维平面的投影, 本身丢失了部分信息, 而且运动目标不是一个一成不变的信号, 它在跟踪过程中会发生旋转、位移、缩放、遮挡等复杂变化, 都在一定程度上影响目标跟踪的准确性, 增加了目标跟踪的难度[2].为了实现有效的目标跟踪, 提高目标跟踪的鲁棒计算机系统应用 ISSN 1003-3254, CODEN CSAOBNE-mail: csa@ Computer Systems & Applications,2019,28(9):271−277 [doi: 10.15888/ki.csa.007069] ©中国科学院软件研究所版权所有.Tel: +86-10-62661041① 基金项目: 江苏省研究生科研创新计划(KYCX18_0317)Foundation item: Graduate Innovation Program of Jiangsu Province (KYCX18_0317)收稿时间: 2019-03-08; 修改时间: 2019-04-02; 采用时间: 2019-04-04; csa 在线出版时间: 2019-09-05性, 卷积神经网络的算法已经成功应用于目标跟踪领域. 目前常见的算法有R-CNN (Region-based Convo-lutional Networt)[3]、Fast R-CNN[4]、Faster R-CNN[5]、YOLO (You Only Look Once)[6]、SSD (Single Shot MultiBox Detectoer)[7]等. R-CNN的基本思想是利用选择搜索算法(Selective Search) 在图像中提取可能包含目标候选区域, 然后用CNN提取特征, 实现目标跟踪.但是R-CNN计算量大, 步骤繁琐, 运行缓慢. Fast R-CNN在R-CNN的基础上进行了两点改进, 一是在网络的最后一个卷积层后加了一个ROI (Region of Interest)池化层, 二是把目标边框的回归和分类这两个任务的损失函数合在一起训练, 使得训练的效率更高,运行速度更快.从R-CNN和Fast R-CNN以及到后来的Faster R-CNN等一系列算法都是基于候选区域的. 而不用候选区域的算法也有很多, 比较典型的是基于回归思想的YOLO和SSD算法.这些基于卷积神经网络的目标跟踪算法其实更侧重于目标物体的检测, 在每一帧图像中进行滑动窗口进行遍历, 虽然包含了目标所在的所有可能位置, 但是缺乏对视频帧中目标运动信息的连续获取. 传统的视频跟踪算法如Camshift (Continuously Adaptive Meanshift)[8]算法的实时性比较强, 但是当场景中出现目标被遮挡时, 跟踪效果受到较大影响, 跟踪目标甚至会丢失.针对目标被遮挡的问题, 本文联合Y O L O和Camshift的目标跟踪算法的长处, 用YOLO算法不断更新目标框, 克服目标遮挡的干扰, 改进传统的Camshift跟踪算法.1 视频帧预处理及检测算法通过图像增强的方法对视频的首帧进行预处理,通过YOLO算法处理图像增强后的首帧图像, 检测出目标, 利用Camshift算法对目标框进行跟踪.1.1 图像增强图像增强的方法有很多, 按照不同作用域可分为空域和频域增强, 空域有灰度变换、直方图均衡化和空域滤波等, 频域增强有高通、低通和同态滤波等[9].由于在目标的检测跟踪中, 光照会影响图像的整体观感, 导致目标的部分信息丢失, 无法辨认目标等问题, Retinex[10]作为空域增强算法的一种, 在动态压缩、颜色不失真和边缘增强三个方面达到平衡, 所以本文利用Retinex算法对视频帧进行自适应的增强.Retinex算法将图像看作是由入射图像和反射图像共同构成的, 即:其中, S(x,y)为视频帧初始的图像; R(x,y)表示反射分量, 即图像的内在属性; L(x,y)表示入射分量, 决定图像像素能够达到的动态范围. Retinex的本质就是得到能够表示图像内在信息的反射分量, 去除入射分量.在计算过程中, 将上式取对数来方便计算.s=log S,r=log R,l=log L令, 即:在Retinex算法中, 利用高斯函数和初始图像进行卷积来表示入射分量, 即:其中, r(x,y)是输出图像, *运算是卷积运算,F(x,y)是中心环绕函数, 即:其中, K是归一化因子, c是高斯环绕的尺度. Retinex 算法中的卷积运算是对入射图像的计算, 通过计算像素点与周围区域在加权平均的作用下, 估计图像中光照变化,去除L(x,y),保留R(x,y)信息.使用Retinex算法对视频帧进行图像增强处理,图1展示了部分图像经过Retinex处理前后的对比效果.图1 图像增强前后对比图1.2 YOLO算法目标检测YOLO检测算法将目标检测看作一个单一的回归问题, 直接在图像中找到目标的边界框. 将图像输入卷计算机系统应用2019 年 第 28 卷 第 9 期积神经网络进行特征提取. 不同卷积层的特征图如图2所示.图2 不同卷积层特征图将特征图输入检测网络进行检测, 判断目标的类别并提取目标的边界框, 并对边界框采用非极大抑制进行选取, 得到最终的边界框. YOLO 算法的检测框架如图3所示.图3 YOLO 检测框架图YOLO 算法将图像分为S ×S 的网格, 如图4所示,如果目标的中心落入其中的一个单元格中, 该单元格负责检测目标.Bounding boxes+confidenceS×S grid on input Class probability mapFinal detections图4 YOLO 检测步骤在每个单元格中, YOLO 会预测B 个目标边界框,每个边界框包含5个预测值: x ,y ,w ,h 和置信度. 如果该单元格中存在目标, 置信度分数等于预测框与真实框的交并比, 如果该单元格中不存在目标, 则置信度分数为零. 表达式如下:IOU truth pred 其中, 表示预测框与真实框的交并比, 交并比用来表示在目标检测中对目标定位是否准确. 表达式如下:YOLO 算法的网络结构图如图5所示, 网络中有24个卷积层和两个全连接层, 网络的设计借鉴了Google Net 的思想, 在每个1×1的降维层之后再连接一个3×3的卷积层, 来代替Inception 结构[11]. 由于在目标跟踪时, 只需要判断是前景还是背景, 不需要进行目标类别的判断, 所以可以将全连接层去掉, 用Softmax [12]分类器进行简化, 如图6所示, 将最后一层卷积层的输出作为Softmax 分类器的输入, 将图像检测分为前景和背景, 将检测为前景的目标作为候选区域, 为下面的目标跟踪做准备.yer 7×7×64-s-22×2-s-2Maxpool layer yer 3×3×1922×2-s-2Maxpool layer yers 1×1×1283×3×2563×3×5121×1×2562×2-s-2Maxpool layer yers 3×3×10243×3×yer yeryers 3×3×5123×3×10241×1×2561×1×5122×2-s-2Maxpool layer}×yers 3×3×10243×3×10243×3×1024-s-21×1×512}×24484481121922565121024102430102440961125628285614143733333337777773337图5 YOLO 算法网络结构图yer 7×7×64-s-22×2-s-2Maxpool layer yer 3×3×1922×2-s-2Maxpool layeryers 1×1×1283×3×2563×3×5121×1×2562×2-s-2Maxpool layer yers 3×3×10243×3×yers3×3×5123×3×10241×1×2561×1×5122×2-s-2Maxpool layer }×yers 3×3×10243×3×10243×3×1024-s-21×1×512}×244844811219225651210241024510241125628285614143733333337777773337图6 简化后YOLO 算法网络结构图2 联合跟踪算法本文基于目标的卷积特征, 在Camshift 的算法框2019 年 第 28 卷 第 9 期计算机系统应用架下对目标进行检测跟踪. 首先采用图像增强的方法对视频帧进行预处理, 然后通过YOLO算法检测图像中的目标, 通过非极大抑制确定目标框, 再利用Camshift算法对目标进行跟踪, 确定目标下一次迭代的新位置, 为视频的下一帧选择候选目标. 当目标被遮挡时, 使用YOLO算法对目标进行更新.2.1 Camshift跟踪算法C a m s h i f t算法, 又称连续自适应均值漂移(Meanshift)算法. 它的基本思想是在视频图像上的每一帧都做Meanshift算法, 将上一帧的结果(跟踪窗口的中心和大小)作为当前帧的初始值, 依次这样迭代下去, 达到目标跟踪的效果.Camshift算法如图7所示.图7 Camshift算法流程图Camshift算法进行目标跟踪, 首先提出用HSV色彩空间中色度分量的直方图的反向概率投影来作匹配,具体分为下面几个步骤: (1)确定初始目标和区域;(2)计算出目标区域的色度分量直方图; (3)利用直方图计算输入图像的反向投影图; (4)利用Meanshift算法在反向投影图上进行迭代, 直到其达到最大迭代次数或者收敛, 保存窗口的零阶矩、一阶矩和二阶矩;(5)从第四步中计算出新的窗口中心和大小, 以此为初始值, 进行下一帧的目标跟踪(即跳转至第二步).Camshift算法在Meanshift算法的基础上, 主要是能根据中心位置和窗口大小进行更新, 达到跟踪窗口自适应的目的, 具体流程如下:1) 通过反向投影图计算初始跟踪窗口的颜色概率分布I(x,y);2) 计算跟踪窗口的零阶矩、一阶矩和二阶矩:3) 计算中心位置:4) 计算跟踪窗口的长度和宽度:其中,2.2 结合目标区域像素值进行遮挡判断为了当利用Camshift算法估计的跟踪框与运动目标检测结果偏差值较大时, 则利用目标区域的像素值与目标完整的像素值进行比较, 并利用目标的速度对计算机系统应用2019 年 第 28 卷 第 9 期目标位置进行预估计, 将预估计的结果分别与跟踪框估计的结果和运动目标检测的结果相比较, 将相近的位置重新定义为运动目标位置.在Camshift 跟踪算法中, 将估计的跟踪框区域的像素数目与完整目标的的比值定义为目标遮挡参数.通过这个比值来判断是否需要用YOLO 算法进行目标检测, 重新确定跟踪框位置.式中, I t 与I 0对应第t 帧目标区域与完整目标的像素值. 当αt =0时, 表示出现完全遮挡.2.3 算法步骤本文提出联合YOLO 和Camshift 的跟踪算法, 相对于传统Camshift 算法在跟踪精度和鲁棒性都有较大的提高. 算法步骤如下:1) 初始化. 利用YOLO 算法初始化视频首帧;2) Camshift 跟踪. 利用Camshift 算法跟踪目标, 同时判断目标是否发生遮挡现象;αt <ββ① 有遮挡: 若,其中为遮挡阈值, 则认为目标被遮挡. 在判断出目标被遮挡后, 考虑目标的速度不是突变的, 一般处于匀速运动或者匀加速运动, 利用遮挡前的n 帧图像所跟踪的位置信息, 二次拟合出位置与帧数的变化关系, 利用这个关系进行遮挡时的位置预估; 在目标再次被检测出来时, 需要用YOLO 算法进行目标更新.αt ≥β② 无遮挡: 若, 则认为目标没有被遮挡, 用Camshift 算法继续跟踪.联合YOLO 算法和Camshift 算法如图8所示.图8 联合YOLO 和Camshift 算法流程图3 实验仿真对比实验硬件平台是Intel(R) Core(TM) i7-6700HQ 2.60GHz CPU,8GB 内存的PC 机, 以Python3.6+OpenCv3.4.2和Tensorflow 框架为开发平台对本文提出的跟踪算法进行实现. 选用遥控车在无遮挡和有遮挡情况下的视频进行实验仿真. 视频帧大小为1280×720, 共180帧, 帧率为30帧/s. 实验跟踪界面如图9.图9 跟踪界面3.1 定性结果对比为了直观比较改进算法的效果, 将传统Camshift 算法、KCF(Kernel Correlation Filter)[13]算法和本文联合YOLO 和Camshift 跟踪算法进行实验对比, 并分别选取部分视频帧的跟踪结果进行对比分析.实验1: 该视频选取遥控车未被遮挡的情况. 背景环境与遥控车的颜色信息相差较大, 对跟踪的干扰小.图10至图12分别是遥控车未被遮挡视频序列的第95、104、109帧, 用矩形框来跟踪遥控车. 传统Camshift 算法在简单背景下和未被遮挡时能够跟踪遥控车, KCF 算法也能跟踪遥控车, 但是这两种算法的目标跟踪结果不准确, 跟踪矩形框选定范围较大. 相较而言,本文联合YOLO的Camshift算法能够准确地实现遥控车的稳定跟踪.(a) 第95帧(b) 第104帧(c) 第109帧图10 传统Camshift 算法的跟踪效果(a) 第95帧(b)第104帧(c) 第109帧图11 KCF 算法的跟踪效果2019 年 第 28 卷 第 9 期计算机系统应用(a) 第95帧(b) 第104帧(c) 第109帧图12 联合YOLO和Camshift算法的跟踪效果实验2: 该视频选取遥控车在中途被纸箱遮挡的情况. 背景环境依旧与遥控车的颜色信息相差较大, 对跟踪的干扰小. 图13至15分别是遥控车中途被遮挡视频序列的第69, 89, 159帧, 同样用矩形框来跟踪遥控车. 传统Camshift算法在遥控车将要被遮挡时丢失目标, KCF算法也在遥控车被部分遮挡时丢失目标, 而本文联合YOLO和Camshift算法能够准确地实现遥控车的稳定跟踪.(a) 第69帧(b)第89帧(c) 第159帧图13 传统Camshift算法的跟踪效果(a) 第69帧(b) 第89帧(c)第159帧图14 KCF算法的跟踪效果(a) 第69帧(b) 第89帧(c) 第159帧图15 联合YOLO和Camshift算法的跟踪效果传统Camshift算法在遥控车有无遮挡两种情况下目标跟踪效果如图10和图13所示. 通过对图13(b)和图13(c)的观察, 当遥控车靠近遮挡物时, 算法的跟踪结果不准确, 跟踪框发生了较大的偏移, 彻底地丢失遥控车.KCF算法在实验1和实验2的效果分别如图11和图14所示. 在遥控车靠近遮挡物时, 如图14(b)所示, 跟踪效果没有影响. 但当遥控车受到遮挡物干扰时,如图14(c)所示, 跟踪效果明显下降, 丢失跟踪目标.联合YOLO和Camshift算法在实验1和实验2的效果分别如图12和图15所示. 在实验2的跟踪过程中, 当遥控车受到部分遮挡(见图15(c))时, 跟踪窗口仍能基本收敛到遥控车位置, 遥控车并没有丢失, 从而证明了本文算法的优越性.3.2 定性结果对比为了进一步验证联合YOLO和Camshift算法在目标被部分遮挡时处理的有效性, 从精确度和实时性两个方面进行量化的结果对比.在算法的精确度方面, 由于遥控车在水平方向运动, 中心点Y轴变化较小, 所以只选取中心点X轴的坐标变化进行定量分析, 比较跟踪结果中每帧图像中目标的中心点X轴坐标与手工标记的真实值, 以对比算法的跟踪精度. 跟踪结果与真实值越接近, 跟踪精度越高.根据实验1、实验2的视频帧跟踪结果, 选取中心点的X轴坐标, 对3种算法的精确度进行对比, 结果如图16和图17所示. 通过对比结果可知, 传统的Camshift算法在目标靠近遮挡物时, 即跟踪框包含了遮挡物, 传统的Camshift算法失效, 如图17所示, 在第90帧左右线段发生阶跃. 而KCF算法在目标大部分被遮挡物遮挡后, 也出现了失效的情况, 如图17所示, 在第140帧左右无法准确跟踪. 相较于传统的Camshift算法和KCF算法, 联合YOLO和Camshift算法在跟踪目标被遮挡时, 其中心点的X轴坐标误差始终保持最低水平, 即跟踪窗口能够跟踪目标区域, 其稳定性和精准度有很好的提高.80859095100105110115120视频帧数CamshiftKCF手工设定实际值改进 Camshift图16 实验1下中心点X轴坐标的对比在算法的实时性方面, 针对实验2的视频帧, 在有效跟踪时间内计算单帧的平均运行时间, 将其进行比较, 结果如表1所示.由表1可知, 联合YOLO和Camshift算法采用了图像增强和YOLO检测, 算法耗时主要在于首帧和在计算机系统应用2019 年 第 28 卷 第 9 期目标被遮挡时用YOLO 算法进行目标更新, 因此相比于传统Camshift 算法, 其复杂度更高, 单帧耗时更长,相对应的运行速度更慢. 本文算法在仿真时能够达到18.5帧/s 的运行速度, 相比于KCF 和传统Camshift 目标跟踪算法, 算法的实时性有待提高, 但基本上满足实时跟踪的要求.6080100120140160视频帧数Camshift KCF手工设定实际值改进 Camshift图17 实验2下中心点X 轴坐标的对比表1 不同算法单帧平均耗时对比算法单帧平均耗时(s)传统Camshift 算法0.0291KCF 算法0.0058联合YOLO 和Camshift 算法0.05404 结束语本文为了解决了传统目标跟踪在有遮挡后无法准确跟踪的问题, 提出了一种联合YOLO 和Camshift 的目标跟踪算法. 在传统Camshift 算法的框架下, 使用Retinex 算法对视频首帧进行预处理, 并采用YOLO 算法进行目标框确定, Camshift 进行跟踪. 通过目标检测对目标进行更新, 在部分遮挡的情况下, 仍能有效实现目标跟踪, 避免在跟踪过程中目标丢失的问题, 具有更好的抗干扰性和鲁棒性. 但它的时间复杂度较高, 下一步研究的重心是设计更加合理的卷积神经网络, 以适应目标跟踪任务, 提高运行效率.参考文献罗建豪, 吴建鑫. 基于深度卷积特征的细粒度图像分类研究综述. 自动化学报, 2017, 43(8): 1306–1318.1葛宝义, 左宪章, 胡永江. 视觉目标跟踪方法研究综述. 中国图象图形学报, 2018, 23(8): 1091–1107.2Girshick R, Donahue J, Darrell T, et al . Rich featurehierarchies for accurate object detection and semantic segmentation. 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus, OH, USA. 2014.3Girshick R. Fast R-CNN. 2015 IEEE InternationalConference on Computer Vision. Santiago, Chile. 2015.4Ren SQ, He KM, Girshick R, et al . Faster r-cnn: Towardsreal-time object detection with region proposal networks.arXiv preprint arXiv: 1506. 01497, 2015.5Redmon J, Divvala S, Girshick R, et al . You only look once:Unified, real-time object detection. 2016 IEEE Conference on Computer Vision and Pattern Recognition. 2016.6Liu W, Anguelov D, Erhan D, et al . SSD: Single ShotMultiBox Detector. In: Leibe B, Matas J, Sebe N, et al, puter Vision-ECCV 2016. 2016. 21-37.7BRADSKI G R. Real time face and object tracking as acomponent of a perceptual user interface. Proceedings Fourth IEEE Workshop on Applications of Computer Vision.Princeton, NJ, USA, USA, 1998: 214–219.8郝志成, 吴川, 杨航, 等. 基于双边纹理滤波的图像细节增强方法. 中国光学, 2016, 9(4): 423–431.9Land EH, McCann J. Lightness and retinex theory. Journal ofthe Optical Society of America, 1971, 61(1): 1–11. [doi:10.1364/JOSA.61.000001]10He KM, Zhang XY, REN SQ, et al . Deep residual learningfor image recognition. 2016 IEEE Conference on Computer Vision and Pattern Recognition, 2016: 770–778.11Yegnanarayana B. Artificial neural networks for patternrecognition. Sadhana, 1994, 19(2): 189–238. [doi:10.1007/BF02811896]12Henriques JF, Caseiro R, Martins P, et al . High-speedtracking with kernelized correlation filters. IEEETransactions on Pattern Analysis and Machine Intelligence,2015, 37(3): 583–596. [doi: 10.1109/TPAMI.2014.2345390]132019 年 第 28 卷 第 9 期计算机系统应用。