基于OpenCV的运动目标定位跟踪系统软件设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2卷 第3期 2012 年 6 月
智能计算机与应用 INTELLIGENT COMPUTER AND APPLICATIONS
Vol. 2 No. 3 Jun. 2012
基于 OpenCV 的运动目标定位跟踪系统软件设计
邹铁军 1,张书伟 2,蒋 杰 2,闫保中 2
(1 中国人民解放军 92941 部队 95 分队,辽宁 葫芦岛 125000;2 哈尔滨工程大学 自动化学院,哈尔滨 150001)
ZOU Tiejun1, ZHANG Shuwei2, JIANG Jie2, YAN Baozhong2
(1 95 detachment of the 92941 troops, PLA, Huludao Liaoning 125000, China; 2 College of Automation, Harbin Engineering University, Harbin 150001, China)
摘 要 :目标定位跟踪技术一直是计算机视觉领域的一个研究热点。为了更好地改进目标跟踪算法的跟踪特性,设计一种基于
OpenCV 的目标定位跟踪软件系统。通过对 Camshift 跟踪算法的研究和改进,以实际的跟踪环境为背景,利用 VS2008 软件平台和
OpenCV 库函数,设计一种可以控制云台并实时定位跟踪运动目标的软件系统。实验证明,本系统定位跟踪精确,为运动目标的定位
Abstract: Target location and tracking technology has been a hot research topic in the field of computer vision.In order to better improve the target tracking algorithm's tracking property,the paper aims to design a location and tracking software system based on OpenCV. Through research and improvement of the Camshift tracking algorithm, the paper takes the actual tracking environment as the background, uses VS2008 software platform and OpenCV library functions, and designs a software system,which can control PTZ and implements real-time location and tracking of moving target.The experiment shows that the system realizes the accurate location and tracking , provides the convenience for research and application of moving target's location and tracking ,therefore has a certain practical significance. Key words: OpneCV; Target Location; Target Tracking; Camshift
跟踪的研究和应用提供了方便,具有一定的实际意义。
关 键 词 :OpenCV;目标定位;目标跟踪;Camshift
中图分类号: TP391
文献标识码: A
文章编号:2095-2163(2012)03-0060-04
Design of the Moving Target Tracking and Location System Software based on OpenCV
CVAUX CXCORE HIGHGUI CVCAM
ML
功能 主要的 OpenCV 函数 辅助的 OpenCV 函数 数据结构与线性代数支持 图像界面函数 负责读取摄像头模块 机器学习,包括模式分类和回归分析等
本文通过对目标跟踪算法—Camshift 算法的研究和改 进,利用 OpenCV 视觉库,通过 VS2008 软件平台构建一个 目标定位跟踪软件系统,对目标定位跟踪技术的研究和应 用提供了方便。
OpenCV 是一个开源的计算机视觉库[2,3],由于其轻量而 且高级,在科研和生活中发挥着越来越重要的作用。 OpenCV 是由一定量 C 函数和少量的 C++类构成的,可实现
图像处理与计算机视觉方面的一些通用算法,OpenCV 的模 块如表 1 所示。
表 1 OpenCV 模块名称及功能
模块名称 CV
2.2 Camshift 算法原理 Camshift 算法其实是对 MeanShift 算法的改良。在 Mea-
nshift 算法[4]中,给出一个彩色图像和该图像某个初始搜索区 域所对应的色相统计直方图,利用该色相统计直方图得到反 射投影图像;Meanshift 算法利用该反射投影图像,通过迭代 的方法来寻找目标图像的中心,当搜索窗口中心的移动小于 给定的阈值时,则返回所得到的目标的位置和大小。
区域中去搜索目标的位置和大小。
3 目标定位跟踪软件系统设计与实现
2 系统关键技术
目前比较流行的跟踪算法有基于目标预测的 Kalman 算 法、粒子算法、均值漂移(Meanshift)算法,本文采用改进后 的 Meanshift 算法,即 Camshift 算法实现对目标的跟踪。 2.1 颜色概率分布
Camshift 算法是基于目标颜色为特征的跟踪方法[4],由 于 RGB 颜色模型对光照的亮度变化比较敏感,为了减少光 照亮度变化对跟踪效果的影响,Camshift 算法将图像由 RGB 颜色模型转化到 HSV 颜色模型,方便对目标的特征提取。 HSV 颜色模型中,HSV 是指 Hue (色相)、Saturation (饱和 度)和 Value(明度),RGB 颜色模型与 HSV 颜色模型分别 如图 2 所示。当光照发生变化时,目标图像颜色本质的色度 H 和饱和度 S 的值变化很小,而目标图像的亮度值变化较 大,所以采用 HSV 模型的 H 和 S 分量描述目标对光照变化 不敏感,具有良好的鲁棒性。
在彩色图像中,将 Meanshift 算法扩展到了连续的视频 图像帧序列,这样就形成了 Camshift 算法。该算法是将视频 图像的每一帧都作 Meanshift 运算,并使用上一帧图像的运 算信息来作为对下一帧图像运算的输入,如此循环迭代,则 实现了对活动目标在每一帧图像序列中的检测和跟踪。由于 Meanshift 算法每次搜索的范围是固定的,而 Camshift 算法在 搜寻目标时会自动更新每次搜索的范围,所以后者更适合应 用在对运动的目标进行跟踪的场合,在此,给出了 Camshift 跟踪算法流程图,如图 3 所示。
设当前跟踪窗口中心为(x軃 ,y軃),若 xc-x軃 <ε 且 y c - y軃 <ε ,移动跟踪窗口的中心到质心位置,令x軃 ←xc,y軃
←yc,输出目标中心位置为( x軃 ,y軃),继续处理下一帧图像序 列;否则,转到第(4)步,继续迭代,其中,ε 为给定阈值;
(6)通过迭代的方法计算质心移动距离是否小于给定 阈值 ε 来判断是否收敛。如果不收敛,则重复步骤(4)直 到收敛为止;如果收敛,则利用最新的搜索结果到新的图像
பைடு நூலகம்
收稿日期: 2012-05-23 作者简介: 邹铁军(1961-),男,辽宁葫芦岛人,本科,高级工程师,主要研究方向:卫星定位;
张书伟(1988-),男,安徽蚌埠人,硕士研究生,主要研究方向:目标跟踪、嵌入式系统。
第3期
邹铁军,等:基于 OpenCV 的运动目标定位跟踪系统软件设计
· 61 ·
调整摄像机的位置,对目标进行实时准确的跟踪。系统的整 体组成结构如图 1 所示。
初始化搜索窗口 的大小和位置
HSV 图像初始化
设置处理区域,中心为 (x,y),且大于搜索窗口
在处理区域中计算 颜色直方图
用(x,y)设置搜索窗口的 中心
输出质心(x,y)和大小
得到反向投影图, 即颜色概率分布图
得到搜索窗口内的 质心位置
移动搜索窗口中心 到质心位置,在此 得到窗口内像素点 之和大小
品红
B 蓝(0,0,255)青
白
V
绿
黄白
P
L0 青
0° 红
G
品红
黑
绿(0,255,0)
蓝
H(色相)
黄 红(255,0,0)
R RGB 颜色模型
0.0 黑 HSV 颜色模型
图 2 RGB 与 HSV 颜色模型 HSV 模型采用 H 分量建立目标直方图模型,将原始图 像的像素值用直方图中相应像素的统计量代替,然后将得到 的结果重新量化到 0~255 之间,就得到颜色概率分布图。由 于颜色直方图不受运动目标的旋转、放大或缩小的影响,所 以本文采用在视频图像由 RGB 颜色模型转化为 HSV 颜色 模型后,再对色相 H 取统计直方图。
0 引言
目标定位跟踪技术一直是计算机视觉领域的一个研究 热点,涉及到图像处理、目标识别、人工智能等学科知识点, 已被广泛应用在视频监控、机器人视觉导航与军事精确制 导等领域。运动目标定位跟踪主要是通过在其视频图像中 对运动目标进行提取,确定目标在图像中的位置和大小,从 而实现对运动目标的定位和跟踪。运动目标定位跟踪系统 主要分为两种:一种是摄像机固定,对特定区域内的运动目 标进行定位跟踪,此时摄像机可以通过图像跟踪算法来完 成对目标的定位跟踪;另外一种则是将摄像机安装在能够 转动的可移动的云台上,摄像机将得到的视场内的信息发 送给计算机,计算机中的目标定位跟踪软件系统根据对视 频图像中运动目标的检测来判断并得到运动目标的大小和 运动方向,再将得到的信息传送给云台,而通过控制云台来 完成对运动目标的实时定位跟踪,使得目标对象始终能够 处于摄像头的视场中心位置。由于摄像头可以随着云台转 动,摄像机可以主动地跟踪目标,因此通常把这种跟踪方法 称为主动性跟踪[1]。
软件系统终端 图像采集卡
摄像机
云台控制器
图 1 系统整体组成结构
1.2 系统工作流程 当运动目标出现在可视范围内时,摄像机将捕捉到的视
频图像传送给系统终端进行处理,目标定位跟踪软件对视频 图像利用光流法对运动目标进行检测识别,然后做运动目标 与背景图像的分割,锁定运动的目标进行定位跟踪;随着目 标的移动,通过系统软件去控制云台来调整摄像机,以对运 动的目标进行实时定位跟踪。
Y
收敛? N
图 3 Camshift 跟踪算法流程图 Camshift 算法具体实现步骤如下: (1)读入视频图像中的一帧,初始化该帧图像,并将其 从 RGB 颜色模型转换到 HSV 颜色模型,同时提取该帧图像 H 分量的统计直方图; (2)初始化搜索窗口的大小和位置,统计搜索窗口内的 颜色直方图,计算图像的颜色概率分布,生成运动目标的颜 色概率模型; (3)在生成运动目标的颜色概率模型后,得到反向投影 图,运行 Meanshift 跟踪算法,搜索目标图像新的窗口区域; (4)计算搜索窗口的质心位置(x c,y c) 设(x ,y)为搜索窗口中图像像素位置,I(x , y)是投影 图中(x,y)处的像素值。定义搜索窗口的零阶矩 M00 和一阶 矩 M01、M10:
1 目标定位跟踪系统总体设计
1.1 系统总体结构 系统利用摄像机获取目标图像,经图像采集卡将采集
到的视频图像传给系统终端,利用终端中的目标跟踪软件 系统对采集到的视频图像进行处理实现对目标的初步跟 踪;然后,根据目标的移动位置,通过 RS485 接口进行软件 和云台之间通信,以实现对云台的控制,通过云台的转动来
Σ Σ M00 = x y I( x , y)
Σ Σ M01 = x y y I( x , y)
· 62 ·
智能计算机与应用
第2卷
Σ Σ M10 = x y x I( x , y)
则得到搜索窗口质心位置:
( x c , y c)=(
M 10 M 00
,
M 01 M 00
)
(5)移动搜索窗口的中心到质心位置
智能计算机与应用 INTELLIGENT COMPUTER AND APPLICATIONS
Vol. 2 No. 3 Jun. 2012
基于 OpenCV 的运动目标定位跟踪系统软件设计
邹铁军 1,张书伟 2,蒋 杰 2,闫保中 2
(1 中国人民解放军 92941 部队 95 分队,辽宁 葫芦岛 125000;2 哈尔滨工程大学 自动化学院,哈尔滨 150001)
ZOU Tiejun1, ZHANG Shuwei2, JIANG Jie2, YAN Baozhong2
(1 95 detachment of the 92941 troops, PLA, Huludao Liaoning 125000, China; 2 College of Automation, Harbin Engineering University, Harbin 150001, China)
摘 要 :目标定位跟踪技术一直是计算机视觉领域的一个研究热点。为了更好地改进目标跟踪算法的跟踪特性,设计一种基于
OpenCV 的目标定位跟踪软件系统。通过对 Camshift 跟踪算法的研究和改进,以实际的跟踪环境为背景,利用 VS2008 软件平台和
OpenCV 库函数,设计一种可以控制云台并实时定位跟踪运动目标的软件系统。实验证明,本系统定位跟踪精确,为运动目标的定位
Abstract: Target location and tracking technology has been a hot research topic in the field of computer vision.In order to better improve the target tracking algorithm's tracking property,the paper aims to design a location and tracking software system based on OpenCV. Through research and improvement of the Camshift tracking algorithm, the paper takes the actual tracking environment as the background, uses VS2008 software platform and OpenCV library functions, and designs a software system,which can control PTZ and implements real-time location and tracking of moving target.The experiment shows that the system realizes the accurate location and tracking , provides the convenience for research and application of moving target's location and tracking ,therefore has a certain practical significance. Key words: OpneCV; Target Location; Target Tracking; Camshift
跟踪的研究和应用提供了方便,具有一定的实际意义。
关 键 词 :OpenCV;目标定位;目标跟踪;Camshift
中图分类号: TP391
文献标识码: A
文章编号:2095-2163(2012)03-0060-04
Design of the Moving Target Tracking and Location System Software based on OpenCV
CVAUX CXCORE HIGHGUI CVCAM
ML
功能 主要的 OpenCV 函数 辅助的 OpenCV 函数 数据结构与线性代数支持 图像界面函数 负责读取摄像头模块 机器学习,包括模式分类和回归分析等
本文通过对目标跟踪算法—Camshift 算法的研究和改 进,利用 OpenCV 视觉库,通过 VS2008 软件平台构建一个 目标定位跟踪软件系统,对目标定位跟踪技术的研究和应 用提供了方便。
OpenCV 是一个开源的计算机视觉库[2,3],由于其轻量而 且高级,在科研和生活中发挥着越来越重要的作用。 OpenCV 是由一定量 C 函数和少量的 C++类构成的,可实现
图像处理与计算机视觉方面的一些通用算法,OpenCV 的模 块如表 1 所示。
表 1 OpenCV 模块名称及功能
模块名称 CV
2.2 Camshift 算法原理 Camshift 算法其实是对 MeanShift 算法的改良。在 Mea-
nshift 算法[4]中,给出一个彩色图像和该图像某个初始搜索区 域所对应的色相统计直方图,利用该色相统计直方图得到反 射投影图像;Meanshift 算法利用该反射投影图像,通过迭代 的方法来寻找目标图像的中心,当搜索窗口中心的移动小于 给定的阈值时,则返回所得到的目标的位置和大小。
区域中去搜索目标的位置和大小。
3 目标定位跟踪软件系统设计与实现
2 系统关键技术
目前比较流行的跟踪算法有基于目标预测的 Kalman 算 法、粒子算法、均值漂移(Meanshift)算法,本文采用改进后 的 Meanshift 算法,即 Camshift 算法实现对目标的跟踪。 2.1 颜色概率分布
Camshift 算法是基于目标颜色为特征的跟踪方法[4],由 于 RGB 颜色模型对光照的亮度变化比较敏感,为了减少光 照亮度变化对跟踪效果的影响,Camshift 算法将图像由 RGB 颜色模型转化到 HSV 颜色模型,方便对目标的特征提取。 HSV 颜色模型中,HSV 是指 Hue (色相)、Saturation (饱和 度)和 Value(明度),RGB 颜色模型与 HSV 颜色模型分别 如图 2 所示。当光照发生变化时,目标图像颜色本质的色度 H 和饱和度 S 的值变化很小,而目标图像的亮度值变化较 大,所以采用 HSV 模型的 H 和 S 分量描述目标对光照变化 不敏感,具有良好的鲁棒性。
在彩色图像中,将 Meanshift 算法扩展到了连续的视频 图像帧序列,这样就形成了 Camshift 算法。该算法是将视频 图像的每一帧都作 Meanshift 运算,并使用上一帧图像的运 算信息来作为对下一帧图像运算的输入,如此循环迭代,则 实现了对活动目标在每一帧图像序列中的检测和跟踪。由于 Meanshift 算法每次搜索的范围是固定的,而 Camshift 算法在 搜寻目标时会自动更新每次搜索的范围,所以后者更适合应 用在对运动的目标进行跟踪的场合,在此,给出了 Camshift 跟踪算法流程图,如图 3 所示。
设当前跟踪窗口中心为(x軃 ,y軃),若 xc-x軃 <ε 且 y c - y軃 <ε ,移动跟踪窗口的中心到质心位置,令x軃 ←xc,y軃
←yc,输出目标中心位置为( x軃 ,y軃),继续处理下一帧图像序 列;否则,转到第(4)步,继续迭代,其中,ε 为给定阈值;
(6)通过迭代的方法计算质心移动距离是否小于给定 阈值 ε 来判断是否收敛。如果不收敛,则重复步骤(4)直 到收敛为止;如果收敛,则利用最新的搜索结果到新的图像
பைடு நூலகம்
收稿日期: 2012-05-23 作者简介: 邹铁军(1961-),男,辽宁葫芦岛人,本科,高级工程师,主要研究方向:卫星定位;
张书伟(1988-),男,安徽蚌埠人,硕士研究生,主要研究方向:目标跟踪、嵌入式系统。
第3期
邹铁军,等:基于 OpenCV 的运动目标定位跟踪系统软件设计
· 61 ·
调整摄像机的位置,对目标进行实时准确的跟踪。系统的整 体组成结构如图 1 所示。
初始化搜索窗口 的大小和位置
HSV 图像初始化
设置处理区域,中心为 (x,y),且大于搜索窗口
在处理区域中计算 颜色直方图
用(x,y)设置搜索窗口的 中心
输出质心(x,y)和大小
得到反向投影图, 即颜色概率分布图
得到搜索窗口内的 质心位置
移动搜索窗口中心 到质心位置,在此 得到窗口内像素点 之和大小
品红
B 蓝(0,0,255)青
白
V
绿
黄白
P
L0 青
0° 红
G
品红
黑
绿(0,255,0)
蓝
H(色相)
黄 红(255,0,0)
R RGB 颜色模型
0.0 黑 HSV 颜色模型
图 2 RGB 与 HSV 颜色模型 HSV 模型采用 H 分量建立目标直方图模型,将原始图 像的像素值用直方图中相应像素的统计量代替,然后将得到 的结果重新量化到 0~255 之间,就得到颜色概率分布图。由 于颜色直方图不受运动目标的旋转、放大或缩小的影响,所 以本文采用在视频图像由 RGB 颜色模型转化为 HSV 颜色 模型后,再对色相 H 取统计直方图。
0 引言
目标定位跟踪技术一直是计算机视觉领域的一个研究 热点,涉及到图像处理、目标识别、人工智能等学科知识点, 已被广泛应用在视频监控、机器人视觉导航与军事精确制 导等领域。运动目标定位跟踪主要是通过在其视频图像中 对运动目标进行提取,确定目标在图像中的位置和大小,从 而实现对运动目标的定位和跟踪。运动目标定位跟踪系统 主要分为两种:一种是摄像机固定,对特定区域内的运动目 标进行定位跟踪,此时摄像机可以通过图像跟踪算法来完 成对目标的定位跟踪;另外一种则是将摄像机安装在能够 转动的可移动的云台上,摄像机将得到的视场内的信息发 送给计算机,计算机中的目标定位跟踪软件系统根据对视 频图像中运动目标的检测来判断并得到运动目标的大小和 运动方向,再将得到的信息传送给云台,而通过控制云台来 完成对运动目标的实时定位跟踪,使得目标对象始终能够 处于摄像头的视场中心位置。由于摄像头可以随着云台转 动,摄像机可以主动地跟踪目标,因此通常把这种跟踪方法 称为主动性跟踪[1]。
软件系统终端 图像采集卡
摄像机
云台控制器
图 1 系统整体组成结构
1.2 系统工作流程 当运动目标出现在可视范围内时,摄像机将捕捉到的视
频图像传送给系统终端进行处理,目标定位跟踪软件对视频 图像利用光流法对运动目标进行检测识别,然后做运动目标 与背景图像的分割,锁定运动的目标进行定位跟踪;随着目 标的移动,通过系统软件去控制云台来调整摄像机,以对运 动的目标进行实时定位跟踪。
Y
收敛? N
图 3 Camshift 跟踪算法流程图 Camshift 算法具体实现步骤如下: (1)读入视频图像中的一帧,初始化该帧图像,并将其 从 RGB 颜色模型转换到 HSV 颜色模型,同时提取该帧图像 H 分量的统计直方图; (2)初始化搜索窗口的大小和位置,统计搜索窗口内的 颜色直方图,计算图像的颜色概率分布,生成运动目标的颜 色概率模型; (3)在生成运动目标的颜色概率模型后,得到反向投影 图,运行 Meanshift 跟踪算法,搜索目标图像新的窗口区域; (4)计算搜索窗口的质心位置(x c,y c) 设(x ,y)为搜索窗口中图像像素位置,I(x , y)是投影 图中(x,y)处的像素值。定义搜索窗口的零阶矩 M00 和一阶 矩 M01、M10:
1 目标定位跟踪系统总体设计
1.1 系统总体结构 系统利用摄像机获取目标图像,经图像采集卡将采集
到的视频图像传给系统终端,利用终端中的目标跟踪软件 系统对采集到的视频图像进行处理实现对目标的初步跟 踪;然后,根据目标的移动位置,通过 RS485 接口进行软件 和云台之间通信,以实现对云台的控制,通过云台的转动来
Σ Σ M00 = x y I( x , y)
Σ Σ M01 = x y y I( x , y)
· 62 ·
智能计算机与应用
第2卷
Σ Σ M10 = x y x I( x , y)
则得到搜索窗口质心位置:
( x c , y c)=(
M 10 M 00
,
M 01 M 00
)
(5)移动搜索窗口的中心到质心位置