海康威视球机摄像头运动目标检测、跟踪与轨迹预测

一、总体方案设计

运动目标检测与跟踪方案设计涉及视频流的实时拍摄、目标检测、轨迹预测以及云台控制。以下是四个步骤的详细设计:

1.室内场景视频流拍摄

使用海康威视球机摄像头进行室内视频流的实时拍摄。确保摄像头能覆盖整个室内空间,以便捕捉所有潜在的运动目标。

2.自动检测运动目标

使用计算机视觉算法(如YOLOv8)自动识别和定位视频流中的运动目标。在有多个目标的情况下,设计一个算法来评估并选择最显著的目标。显著性可以基于目标的大小、运动速度、运动路径的复杂性等因素。

3.运动目标轨迹预测

对于学硕项目,轨迹预测是必选项。可以使用卡尔曼滤波器、线性回归或其他适合的算法来预测目标的未来位置。系统应能处理目标的突然变化和非线性运动。

4.云台平稳跟踪运动目标

根据目标检测和轨迹预测的结果,控制云台摄像头跟踪运动目标。实现平稳的云台运动,以最小化视频流中的抖动,并确保目标始终保持在画面中心。

二、关键技术

1. 目标检测与识别

系统实现了对实时视频流的高效分析,能够快速处理和解析图像数据。采用如YOLOv8这样的先进深度学习模型进行目标检测,它不仅提供高准确性,还能有效处理复杂场景中的多种目标[1]。

2. 运动目标选择算法

系统能够评估每个目标的显著性,包括大小、运动速度和运动轨迹等特征。在存在多个目标时,系统能够自动选择最显著的目标进行跟踪,确保重点关注最关键的对象。

3. 轨迹预测技术

统能够实时处理目标数据,为轨迹预测提供即时输入。使用卡尔曼滤波[2]或线性回归等高效算法,准确预测目标的未来运动轨迹。

4. 云台控制系统

通过精确的控制算法,保证云台的平稳移动和准确定位。根据实时目标检测和轨迹预测结果,动态调整云台的方向和角度[3]。

5. 系统集成和优化

通过优化算法和硬件配置,确保系统具有快速响应能力和低延迟特性。系统设计注重长期稳定运行,能够在不同环境和条件下保持稳定性和可靠性。

三、图像采集系统设计

1.硬件组成

海康威视球机摄像头:提供高质量的视频流,具备良好的环境适应性。
计算单元:电脑的CPU和GPU,用于处理深度学习模型和运行复杂的算法。

2.软件架构

目标检测模块:实时分析视频流,识别和定位运动目标,位于主线程内。
目标选择模块:在多个目标存在时,以目标框的大小为指标选择最显著的目标。
轨迹预测模块:预测选中目标的未来运动轨迹,形成一个并行的线程。
云台控制模块:根据预测结果,控制云台摄像头跟踪目标,同样形成一个并行的线程。

3.用户界面

首先,显示实时视频流。
提供系统状态信息,如目标检测结果框和轨迹预测的轨迹线。
显示实时图像处理帧率并显示相应的mode。

4.数据处理流程

从球机摄像头捕获视频流。
通过目标检测模块分析视频。
选择最显著的目标并进行轨迹预测。
控制云台摄像头跟踪预测轨迹。
5.性能优化
确保低延迟和高帧率的视频流处理。
系统的稳健性和容错能力。

四、源程序设计和运行结果

本实验的程序使用的是python语言进行编写[4],使用YOLOv8进行目标检测,使用卡尔曼滤波器和线性回归进行轨迹预测,控制云台摄像头以跟踪移动目标,通过动态休眠时间来平滑云台的移动。

1.程序结构介绍

1.1. 导入所需的库
标准库包含os, platform, threading, time等。也包含了一些第三方库,例如tkinter, numpy, PIL, torch, cv2等。同时有YOLOv8和DeepSort相关库,另外还有Kalman滤波和线性回归的库。使用这些库大大提升了开发效率和效果。
1.2. 全局变量和参数初始化
首先,初始化YOLO模型。然后,需要设置轨迹预测和追踪相关的参数,如历史中心点、预测位置、最大历史记录数等。并且,初始化卡尔曼滤波器和线性回归模型。
1.3. 功能定义
initialize_kalman_filter:初始化卡尔曼滤波器。
predict_next_position_kalman 和 predict_next_point_linear:使用卡尔曼滤波器或线性回归预测目标的下一个位置。
draw_trajectory_on_image:在图像上绘制目标的历史轨迹和预测轨迹。
calculate_dynamic_sleep:根据目标距离计算动态休眠时间。
ytkz_and_gjyc:云台控制和轨迹预测函数。
LoginDev:登录并注册设备。
get_max_area_bbox:获取最大面积的边界框。
1.4. 主程序流程
首先,设置摄像头和设备信息。第二,登录设备并初始化。然后,启动云台控制和轨迹预测线程。主循环中读取视频帧,使用YOLO模型进行目标检测,根据模式进行轨迹预测和对象追踪。并且,显示处理后的视频帧。最后退出时,释放资源并登出设备。

2.目标跟踪

我在实验中主要做目标追踪任务,轨迹预测主要由本组另一名队员完成。
在追踪目标的过程中,采用了分步的方法进行追踪。如果检测框与图像中心的距离大于200像素,采用一个稍微大的速度进行追踪,当距离小于200像素,采用一个较小的速度进行追踪,这样可以使得目标跟踪更加稳定,解决了超调问题。而追踪的时间也是根据需要运动的距离长短来动态调整的。追踪的方向如下表所示,可以在八个方向进行云台移动。
表 云台控制旋转方向

方向命令定义值含义
TILT_UP21云台以SS的速度上仰
TILT_DOWN22云台以SS的速度下俯
PAN_LEFT23云台以SS的速度左转
PAN_RIGHT24云台以SS的速度右转
UP_LEFT25云台以SS的速度上仰和左转
UP_RIGHT26云台以SS的速度上仰和右转
DOWN_LEFT27云台以SS的速度下俯和左转
DOWN_RIGHT28云台以SS的速度下俯和右转
PAN_AUTO29云台以SS的速度左右自动扫描

下图是云台控制的操作流程图。
在这里插入图片描述

图 云台控制的操作流程图
本文利用的云台控制方法为NET_DVR_PTZControlWithSpeed,可以调整云台旋转的速度,按不同解码器的速度控制值设置。对云台实施的每一个动作都需要调用该接口两次,分别是开始和停止控制,由接口中的最后一个参数(dwStop)决定。在调用此接口之前需要先开启预览。与设备之间的云台各项操作的命令都对应于设备与云台之间的控制码,设备会根据目前设置的解码器种类和解码器地址向云台发送控制码。如果目前设备上设置的解码器与云台设备的不匹配,需要重新配置设备的解码器。如果云台设备所需的解码器设备不支持,则无法用该接口控制。
需要注意的是追踪目标并不是一步到位的,而是不断地小距离移动来追踪到目标。云台所走的路径是一个多段折线,相当于摄像头每次转动一下就会进行一次轨迹规划,只要相隔时间足够小,多段折线可以等效于一个光滑的曲线,这种实时目标跟踪提升了追踪的效果和性能。

3.运行结果

在这里插入图片描述
图 目标识别、目标跟踪、轨迹预测图示

4.结果分析

见于图像左下角,系统在处理视频流时的帧率(FPS)维持在20至50之间,最高可达50。这表明我们的系统能够以较高的频率处理图像,确保了视频显示的流畅性。通过观察和分析,我们发现系统中采用的深度学习目标检测模型展示出了良好的旋转不变性。即使在图像被旋转的情况下,模型仍能准确地识别和定位目标,这一点在实验中得到了验证。这种旋转不变性特别适用于监控场景中的动态环境,无论摄像头的角度如何变化,系统都能可靠地执行目标检测任务。视频流的稳定性是通过观察视频中目标的连续性和平滑性进行评估的。结果表明,即使在较高帧率下,图像保持稳定,没有出现抖动或者明显的延迟。这对于提高目标追踪的准确性和降低误报率非常关键。对于轨迹预测和目标跟踪任务该系统也能较好地完成,可以提前规划做出反应跟踪目标,保持目标居于图像中央。

5.附加功能探索

另外,作为探索,本实验还对yolov7-tiny模型进行了训练。为了识别坦克模型,本实验还制作了坦克目标检测数据集,包含1014张坦克图片:
在这里插入图片描述

图 坦克目标检测数据集
由图可见在模型的训练过程中,训练损失和验证损失在最初阶段快速衰减,这说明模型能够快速地学习到一些基本的特征和模式;然而,在训练后期,模型的收敛速度变慢,这可能是因为模型已经学习到了大部分的特征和模式,进一步提升需要更加细致的优化。最终,训练损失和验证损失都趋向于收敛,并且基本重合,这说明模型在训练过程中没有出现明显的过拟合现象,表明模型的泛化能力较好。
在这里插入图片描述

图 YOLOv7-tiny训练损失变化图
如图所示,经过训练,检测模型的平均精度(mAP)逐渐提升,并最终稳定在94%左右。这一结果表明,本研究中所采用的训练方法和参数设置都相对有效,训练出的模型具有较高的精度水平。
在这里插入图片描述

图 YOLOv7-tiny训练过程中mAP变化图
yolov7-tiny模型的目标检测帧率fps达到了20-30,可以和上文目标检测与跟踪代码的20-50的帧率相匹配,满足海康威视获取视频流的性能要求,该模型可以被用于海康的目标检测中。
在这里插入图片描述

图 yolov7-tiny坦克识别效果展示

五、实验结果及其评价

1.实验结果:

在测试中,目标检测准确性方面,系统成功检测目标的准确率很高,误检率控制的比较小。预测轨迹与实际轨迹的平均偏差很小。云台控制性能方面,云台响应速度快,能够平滑跟踪目标,实现画面中心保持目标的效果良好,并且没有出现超调现象。

2.实验评价:

整体表现良好,特别是在目标检测和跟踪方面。然而,在复杂背景或快速移动目标的情况下,性能有所下降。高准确率的目标检测,有效的轨迹预测,以及平稳的云台控制。在光照变化大和目标移动速度快的情况下,系统稳定性有待提高。

六、体会和建议

在设计和实现该系统的过程中,我获得了宝贵的学习经验和深刻的体会,在处理快速移动目标时遇到挑战,通过优化轨迹预测算法和调整云台控制参数得到改善。项目设计初期对硬件性能估计不足,导致实际运行中遇到了性能瓶颈。在实现实时目标检测时,我面临了处理速度和准确性之间的平衡问题。通过优化算法和调整模型参数,我能够提高系统的响应速度,同时保持较高的检测准确率。在目标跟踪的过程中,会出现云台控制超调问题,但是通过了多段跟踪思想对云台控制算法进行优化,解决了跟踪超调问题。
对于目标检测模块,在复杂环境下的适应性仍有提升空间。考虑采用更先进的深度学习模型,以提高其在不同条件下的鲁棒性。轨迹预测算法可以进一步优化,以更好地处理高速移动的目标和复杂的运动模式。在未来,考虑实现算法的并行处理和优化计算资源使用,以提高系统的整体性能。并且研究和集成最新的机器学习技术,持续提升系统的智能化水平。
针对特定应用场景,对于监控和安保领域,重点优化人群检测和异常行为识别功能。在交通监控领域,加强对快速移动车辆的追踪能力和准确性。

七、参考文献

[1] Reis D, Kupec J, Hong J, et al. Real-Time Flying Object Detection with YOLOv8[J]. arXiv preprint arXiv:2305.09972

[2] Kalman, R. E. 1960. A New Approach to Linear Filtering and Prediction Problems[D] Transaction of the ASME—Journal of Basic Engineering, pp. 35-45 (March 1960).
[3] Hikvision. 设备网络SDK使用手册[M]. Hikvision Documentation (2023).
[4] Reitz, Kenneth, and Tanya Schlusser. The Hitchhiker’s Guide to Python: Best Practices for Development[M]. O’Reilly Media, 2016. ISBN: 978-1-491-92737-0.

可公开代码请见github

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/458699.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot165科研工作量管理系统的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

MIMIC-IV官方视图解析 - AKI 肌酐 (kdigo_creatinine、kdigo_stages)

判断AKI我们可以通过肌酐和尿量两个指标来看, 今天我们主要提取肌酐。 kidgo指南的表格 AKI诊断标准:符合以下情况之一者即可被诊断为AKI:①48小时内Scr升高超过26.5μmol/L(0.3mg/dl);②Scr升高超过基线1.5倍——确认或推测为7…

windowsserver 2016 PostgreSQL9.6.3-2升级解决其安全漏洞问题

PostgreSQL 身份验证绕过漏洞(CVE-2017-7546) PostgreSQL 输入验证错误漏洞(CVE-2019-10211) PostgreSQL adminpack扩展安全漏洞(CVE-2018-1115) PostgreSQL 输入验证错误漏洞(CVE-2021-32027) PostgreSQL SQL注入漏洞(CVE-2019-10208) PostgreSQL 安全漏洞(CVE-2018-1058) …

过年DIY了个烟花给女朋友,给她惊喜得连夜翻出户口本

千百年来,烟花爆竹被看作是中国人春节的底色,绚烂弥漫的烟花,搭配噼里啪啦的爆竹声,人们在年味渐浓中享受团聚的欢乐。而近期烟花大师蔡国强的新作品–《海市蜃楼》,也让放烟花一时成为爆款视频的“流量密码”。但出于…

计算机视觉讲座PPT分享

最近在电子工业出版社做的《计算机视觉入门路线图》讲座的部分PPT。 主要介绍了计算机视觉的学习基本路线。

数据结构第十三天(树)

目录 前言 概述 树的基本概念: 树的相关操作 : 源码: 主函数: 运行结果: 往期精彩内容: 前言 2010年一部电影创造了奇迹,它是全球第一部票房到达 27 亿美 元,总票房历史 排名第…

MySQL篇----第十二篇

系列文章目录 文章目录 系列文章目录前言一、可以使用多少列创建索引?二、NOW()和 CURRENT_DATE()有什么区别?三、什么是非标准字符串类型?四、什么是通用 SQL 函数?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转…

docker之程序镜像的制作

目录 一、每种资源的预安装(基础) 安装 nginx安装 redis 二、dockerfile文件制作(基础) 打包 redis 镜像 创建镜像制作空间制作dockerfile 打包 nginx 镜像 三、创建组合镜像(方式一) 生成centos容器并…

AI新工具(20240206) Qwen1.5;法唠;Boximator 是由字节跳动研究团队开发的创新视频生成工具;秒画 等

Qwen1.5 - Qwen1.5更新了六种尺寸的基础和聊天模型,并在Hugging Face转换器集成了其代码,以提升开发者体验,并支持多种语言和长上下文处理。 Qwen1.5是一个大规模语言模型的最新迭代,它由Qwen团队开发。这个更新在中国新年前夕发…

如果品牌刚刚开始,切入私域社群团购,快团团是最好的选择

如果品牌刚刚开始,切入私域社群团购,快团团是最好的选择,借力新渠道社群团购,快团团,成就你的新品牌, 社群团购平台本身就有大量的信任你平台的流量,这个流量基数是巨大的。 你要知道的是&…

物流|基于Springboot的物流管理系统设计与实现(源码+数据库+文档)

物流管理系统目录 目录 基于Springboot的物流管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员和管理员功能实现 (1)用户管理 (2)公告信息管理 (3)物流信息管理 (…

Matlab数据快速处理指南

文章目录 Excel文件转Mat或工作区从Excel文件读取数据并转换为.mat文件从Excel文件读取数据并加载到工作区 Mat文件转ExcelExcel快速实现万行级填充各种数据类型的操作创建结构体访问结构体字段修改结构体字段的值添加新字段删除字段遍历结构体字段 Excel文件转Mat或工作区 在…