目录
前言
📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
🚀对毕设有任何疑问都可以问学长哦!
选题指导:
大家好,这里是海浪学长毕设专题,本次分享的课题是
🎯基于深度学习的人群多目标识别跟踪系统
设计思路
一、课题背景与意义
视觉信息是人类获取知识的主要来源,个体学习的知识有百分之八十来自于视觉,从这个角度来看,视觉的重要性不言而喻。视频多目标跟踪正是实现这些任务的关键技术,也是计算机视觉研究中比较突出的难点和重点问题。
二、算法理论原理
2.1 改进YOLOv5算法
YOLO算法的核心思想是将整个图作为网络的输入,直接回归边界框在输出层的位置和类别。其本质是将目标检测问题转化为回归问题。YOLOv5模型主要由四个模块组成:输入模块、Backbone模块、Neck模块和预测模块。基础模型结构如图3.1所示,图3.2是对基础检测模块的补充说明。

注意力机制是深度学习常用的一个小技巧,它有多种多样的实现形式,尽管实现方式多样,但是每一种注意力机制的实现的核心都是类似的,就是注意力。注意力机制的核心重点就是让网络关注到它更需要关注的地方注意力机制就是实现网络自适应注意的一个方式。一般而言,注意力机制可以分为通道注意力机制,空间注意力机制,以及二者的结合。对于输入进来的特征层,我们关注其每一个通道的权重,对于SENet而言,其重点是获得输入进来的特征层,每一个通道的权值。利用SENet,我们可以让网络关注它最需要关注的通道。

其具体实现方式就是:
1、对输入进来的特征层进行全局平均池化。
2、然后进行两次全连接,第一次全连接神经元个数较少,第二次全连接神经元个数和输入特征层相同。
3、在完成两次全连接后,我们再取一次Sigmoid将值固定到0-1之间,此时我们获得了输入特征层每一个通道的权值(0-1之间)。
4、在获得这个权值后,我们将这个权值乘上原输入特征层即可。
通道注意力机制和空间注意力机制的结合CBAM。CBAM会对输入进来的特征层,分别进行通道注意力机制的处理和空间注意力机制的处理。

通道注意力机制的实现可以分为两个部分,我们会对输入进来的单个特征层,分别进行全局平均池化和全局最大池化。之后对平均池化和最大池化的结果,利用共享的全连接层进行处理,我们会对处理后的两个结果进行相加,然后取一个sigmoid,此时我们获得了输入特征层每一个通道的权值(0-1之间)。在获得这个权值后,我们将这个权值乘上原输入特征层即可。

我们会对输入进来的特征层,在每一个特征点的通道上取最大值和平均值。之后将这两个结果进行一个堆叠,利用一次通道数为1的卷积调整通道数,然后取一个sigmoid,此时我们获得了输入特征层每一个特征点的权值(0-1之间)。在获得这个权值后,我们将这个权值乘上原输入特征层即可。

2.2 DeepSORT多目标跟踪算法
针对传统视频监控算法精度低、鲁棒性差、无法实现多目标实时跟踪等缺点,提出一种基于深度神经网络的多目标跟踪算法DeepSORT,以达到最终的目的,端到端的对行人目标实时检测与跟踪。YOLO算法的目标检测精度高,使得DeepSORT对检测结果的依赖更弱,遮挡和光照的干扰更低,跟踪鲁棒性提高。此外,对降低检测成本,提高检测跟踪速度也大有益处。

DeepSORT算法在SORT算法的基础上增加了两个新的机制,分别是级联匹配(Matching Cascade)以及新轨迹的确认(confirmed)。Tracks分为确认态(confirmed),和不确认态(unconfirmed),新产生的Tracks是不确认态的;不确认态的Tracks必须要和Detections连续匹配一定的次数(默认是3)才可以转化成确认态。确认态的Tracks必须和Detections连续失配一定次数(默认30次),才会被删除。

三、人群多目标检测的实现
3.1 数据集
数据集来自互联网公开的数据集,主要是用于衡量多目标跟踪检测和跟踪方法标准的数据集,改数据集主要应用于行人跟踪。

多目标跟踪经过不断的发展,目前形成了一组专门用于多目标跟踪的评估指标。这些具体定义及计算公式如下:
(1)FP:False Positive,检测为正类,但是检测错了,即真实情况中没有,但跟踪算法误检出有目标存在。
(2)FN:False Negative,检测为负类,但是检测错了,即真实情况中有,但跟踪算法漏检了。
(3)IDS:ID Switch,目标ID交换的次数。

3.2 实验及结果分析
行人目标主要集中在图像的中心位置,且多为小型目标。而Mosaic数据增强方法可以丰富目标的位置分布,在一定程度上扩大较小的目标,从而提高模型的训练效率,提高模型的泛化能力。

PR曲线:P代表的是precision(精度),R代表的是recall(召回率)。

部分代码如下:
def detect_track_people(video_path):
cap = cv2.VideoCapture(video_path)
# 创建跟踪器
tracker = cv2.TrackerCSRT_create()
while True:
# 读取视频帧
ret, frame = cap.read()
if not ret:
break
# 使用YOLOv5检测人群目标
results = model(frame)
# 处理检测结果
bboxes = results.xyxy[0][:, :4] # 获取边界框
confidences = results.xyxy[0][:, 4] # 获取置信度
# 进行目标跟踪
for bbox, confidence in zip(bboxes, confidences):
if confidence > 0.5: # 设置置信度阈值
x, y, w, h = [int(i) for i in bbox]
track_box = (x, y, w, h)
# 初始化跟踪器
tracker.init(frame, track_box)
# 更新跟踪器状态
ret, track_box = tracker.update(frame)
if ret:
x, y, w, h = [int(i) for i in track_box]
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 显示跟踪结果
cv2.imshow("Tracking", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
创作不易,欢迎点赞、关注、收藏。
毕设帮助,疑难解答,欢迎打扰!

本文介绍了基于深度学习的人群多目标识别跟踪系统,包括课题背景、YOLOv5算法改进、DeepSORT跟踪算法应用,以及数据集选择和实验结果分析。通过Mosaic数据增强提升模型性能,展示了关键代码段。
3562

被折叠的 条评论
为什么被折叠?



