【人工智能】【Python】计算机视觉目标追踪实验(DeepSORT+YOLOv8)

我总结了论文的DeepSORT与YOLOv8结合的计算机视觉目标追踪实验。实验采用Tracking-by-Detection模式,以YOLOv8为检测器、DeepSORT为追踪器,实现了对车辆与行人的多目标追踪。我通过调整初始学习率、早停机制等超参数解决了模型过拟合与误检问题,最终在测试中达到了89.61%的MOTA指标,验证了算法在实际场景中的有效性。

实验目的

1.能够理解行人重识别与目标跟踪的基本原理和研究方法;
2.能够识别和分析基于深度学习的跟踪算法;
3.能够应用行人重识别算法和跟踪算法解决实际问题。

实验原理

多目标追踪的本质是“逐帧检测+跨帧关联”。这次实验用检测端与运动/外观特征解耦的Tracking-by-Detection模式:

1.检测阶段:运用 YOLO 网络输出每帧所有目标的类别置信度和边界框。
2.特征阶段:采用行人重识别算法模型提取外观特征,对被遮挡目标进行重识别。
3.关联阶段:DeepSORT 对运动马氏距离与外观余弦距离进行加权,通过匈牙利算法实现二分匹配。
4.轨迹阶段:利用卡尔曼滤波预测目标的中心及尺度,设置 max_age 与 min_hits 以缓冲短程漏检和虚检。
5.评价阶段:使用基于CLEAR-MOT指标计算MOTA、IDF1、MT/ML,同时统计系统实时性(FPS、GPU 内存)。

实验环境

系统环境基础配置信息

CPU 12th Gen Intel(R) Core(TM) i7-12650H
GPU NVIDIA GeForce RTX 4060 Laptop
内存大小 32G
网络带宽 100Mbps
操作系统 Windows11

实验环境基础配置信息

CUDA 12.9
Python 3.9
PyTorch 2.8

实验内容及步骤

在高速公路车辆统计和校园行人统计场景中实现 DeepSORT 跟踪。和实验默认推荐使用YOLOv5不同,我使用了YOLOv8作为目标检测器,并结合DeepSORT进行多目标跟踪。

YOLOv8实现

首先,需要克隆 YOLOv8 官方仓库,以获取其功能和预训练权重。

步骤 1:克隆 YOLOv8 代码

!mkdir ./YOLOv8_deepsort
!git clone https://github.com/ultralytics/YOLOv8.git

步骤 2:安装依赖

进入 YOLOv8 目录并安装所需依赖:

%cd ./YOLOv8
!pip install -r requirements.txt

DeepSORT集成

接下来,需要克隆 DeepSORT 官方实现,以获取其跟踪算法代码。

步骤 3:克隆 DeepSORT 代码

git clone https://github.com/nwojke/deep_sort.git

步骤 4:整合 YOLOv8 和 DeepSORT

YOLOv8 的 detect.py文件负责推理检测任务。需要修改它以集成 DeepSORT 跟踪功能。创建一个新的文件 detect_track.py,结合 YOLOv8 的检测和 DeepSORT 的跟踪能力。

关键整合点

YOLOv8 检测输出​ → DeepSORT 跟踪输入
YOLOv8 检测到的边界框(bbox)和类别信息会被传递给 DeepSORT。
DeepSORT 使用这些检测结果进行目标关联和 ID 分配。

DeepSORT 跟踪流程

卡尔曼滤波(Kalman Filter):预测目标在下一帧的位置。
匈牙利算法(Hungarian Algorithm):匹配当前检测框与已有轨迹。
外观特征(ReID):使用预训练的 ReID 模型(如 osnet_x0_25)计算目标的外观相似度,减少 ID 切换。

输出可视化

在视频帧上绘制跟踪框、ID 和运动轨迹。

模型训练

针对训练初期mAP高但随后下降以及检测框误检多的问题,我对训练超参数进行了针对性调整。

1.初始学习率lr0 = 0.001

在微调任务中,预训练权重已经包含了良好的特征提取能力。过大的学习率(如默认的 0.01)会破坏这些预训练的权重结构,导致模型“遗忘”已有的知识,甚至发生灾难性遗忘。

降低学习率可以使模型在参数空间中进行更精细的搜索,平滑地适应新数据集。

配合 Cosine Annealing(余弦退火) 策略,在训练后期进一步降低学习率,帮助模型收敛到局部最优解。

2.早停机制

观察到模型在 15-20 轮左右往往达到最佳性能,随后开始过拟合。设置 30 轮的耐心值,允许模型在短期波动中寻找突破,但若长期无提升则果断停止,保存最佳权重(Best Weights),避免计算资源浪费和过拟合模型的使用。

3.图像增强

虽然 Mosaic 增强对从头训练很有用,但在微调阶段,过强的几何变换可能会破坏行人的自然形态特征。我们在验证阶段严格关闭增强,以确保评估的准确性。

图片[1] - AI科研 编程 读书笔记 - 【人工智能】【Python】计算机视觉目标追踪实验(DeepSORT+YOLOv8) - AI科研 编程 读书笔记 - 小竹の笔记本
图片[2] - AI科研 编程 读书笔记 - 【人工智能】【Python】计算机视觉目标追踪实验(DeepSORT+YOLOv8) - AI科研 编程 读书笔记 - 小竹の笔记本

模型推理运行

模型验证MOTA指标和截图

图片[3] - AI科研 编程 读书笔记 - 【人工智能】【Python】计算机视觉目标追踪实验(DeepSORT+YOLOv8) - AI科研 编程 读书笔记 - 小竹の笔记本

MOTA指标:89.61%

视频输入测试截图

图片[4] - AI科研 编程 读书笔记 - 【人工智能】【Python】计算机视觉目标追踪实验(DeepSORT+YOLOv8) - AI科研 编程 读书笔记 - 小竹の笔记本
图片[5] - AI科研 编程 读书笔记 - 【人工智能】【Python】计算机视觉目标追踪实验(DeepSORT+YOLOv8) - AI科研 编程 读书笔记 - 小竹の笔记本
图片[6] - AI科研 编程 读书笔记 - 【人工智能】【Python】计算机视觉目标追踪实验(DeepSORT+YOLOv8) - AI科研 编程 读书笔记 - 小竹の笔记本
图片[7] - AI科研 编程 读书笔记 - 【人工智能】【Python】计算机视觉目标追踪实验(DeepSORT+YOLOv8) - AI科研 编程 读书笔记 - 小竹の笔记本

© 版权声明
THE END
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容

【C++】小竹的C++学习笔记分享 | 78篇体系化文档×4.7 万字(PDF 可下载) - AI科研 编程 读书笔记 - 小竹の笔记本
订阅本站更新 - AI科研 编程 读书笔记 - 小竹の笔记本
【日常】2025年度总结(重磅手敲8K字) - AI科研 编程 读书笔记 - 小竹の笔记本