基于深度学习的高精度Caltech行人检测系统(PyTorch+Pyside6+YOLOv5模型)
摘要

基本介绍
值得注意的是,当前关于目标检测技术的研究仍在不断推进中。关注到当前YOLO系列已发展出包括YOLOv6、YOLOv7、YOLOv8等后续版本
此外
环境搭建
(1)将完整文件下载至本地电脑,并随后启动CMD程序以导航至文件所在目录。
(2)利用Anaconda创建一个名为yolo5的Python环境,并设置Python版本为3.8。接着安装PyTorch和torchvision库:运行pip install torch1.10.0+cu113 torchvision0.11.0+cu113 -f https://download.pytorch.org/whl/torch_stable.html;同时通过指定通道https://pypi.t tuna.tsinghua.edu.cn/simple选择清华源进行下载。
最后安装其他所需的依赖包:运行pip install -r requirements.txt并选择清华源进行下载。


(3)PySide6库的设置程序会被安装到指定版本:pyside6==6.3,并且会从https://pypi.tuna.tsinghua.edu.cn/simple这个源地址被获取。

在Windows系统中对pycocotools库进行安装:使用 pip 命令依次下载所需版本并放置到指定镜像源位置
界面及功能展示
本博文所设计的软件界面具有简洁明快的特点

模型选择与初始化
用户能够单击模型权重选择按钮来提交训练好的模型权重文件;其中训练权重支持的格式包括.pt、.onnx以及.engine等扩展类型;随后再次单击模型权重初始化按钮即可完成所选模型初始化信息的配置。


置信分与IOU的改变
通过调整Confidence或IOU参数设置下的输入字段数值即可同步调节滑动条的位置;反之亦然:当滑动条进度值发生更改时,相应的输入框数值也会随之更新;此外,在模型配置中会同步更新与置信度和交并比相关的参数设置。这些变化会直接传递到模型内部配置,并相应地调整检测中的置信度和交并比阈值。
图像选择、检测与导出
用户可以点击选择图像按钮上传单张图片进行检测与识别。

通过再次点击图像检测按钮即可实现输入图像的目标检测功能。随后系统将在时间消耗列显示检测所需时间,在目标计数列显示已识别目标的数量。通过下拉框可以选择检出的目标,并根据其位置(即xmin、ymin、xmax及ymax)的标签值进行调整。

再次点击检测结果展示按钮后,在系统左下方的位置上呈现输入图像的检测结果。随后,系统将呈现识别出图片中目标的具体类别、其在图像中的位置以及相应的置信度信息。

单击图像检测结果导出按钮能下载生成后的图像,在存储位置中设置待处理图片文件名及扩展名后就能完成处理任务。

通过点击结束图像检测按钮的操作即可实现系统界面的刷新;随后再次点击选择图片或视频按钮以上传相应的文件前,请先将所有输出信息清除。
视频选择、检测与导出
用户可以通过点击选择视频按钮上传视频来进行检测与识别。随后,系统会将所选视频的第一帧输入到系统界面左上方的指定位置。

再点击视频检测按钮即可完成输入视频的目标检测功能。随后系统将在'用时'字段显示检测时间,在'目标数量'字段显示已识别目标的数量。此外,在下方可以选择已识别的目标,并根据其位置(即xmin、ymin、xmax及ymax)对应的标签值进行调整。

通过点击暂停视频检测按钮即可实现对输入视频的暂停功能。此时按钮状态将变为可继续进行视频检定操作。系统界面将保持输入 video 的帧与帧检定结果数据信息,并可通过下拉目标框选择已检定目标的具体坐标位置信息。再次点击继续 video 检测按钮即可完成对 input 视频检定的过程。

通过操作结束视频检测按钮即可完成系统界面的刷新。在清空所有输出信息后,在选择图像或选择视频按钮时进行上传操作。
摄像头打开、检测与结束
用户可以通过点击打开摄像头按钮来进行摄像头设备的开启及检测识别过程。随后系统将从摄像头获取的图像呈现在系统界面左上方区域。

通过再次点击摄像头检测按钮即可实现对摄像头进行目标检测功能的输入。随后系统将在时间记录栏中记录每次目标检测所需的时间,并在数量统计栏中显示当前已识别出的目标总数。用户可在选择框中选择待确认的目标,并根据其位置信息(如xmin、ymin、xmax和ymax)进行调整。

通过点击"结束视频检测"按钮可实现系统界面刷新;请清除所有输出信息;之后再次点击选择图像/选择视频/启动摄像设备以上传相关文件。
算法原理介绍
该系统采用了一种基于深度学习的单阶段目标检测算法——YOLO v5。相较于早前版本的Yolov3及其改进版Yolov4,Yolov5在检测精度与速度方面均有显著提升。Yolov5算法的核心理念在于将目标检测问题转化为回归问题,并通过直接预测物体中心点坐标取代Anchor框这一关键步骤实现高效运算。此外,Yolov5采用了SPP(Spatial Pyramid Pooling)特征提取方法这一创新技术,使得能在不增加计算量的前提下有效提取多尺度特征以提升检测性能。Yolov5s模型的整体架构如图所示

YOLOv5的网络架构主要由输入模块(Input)、特征提取模块(Backbone)、特征融合模块(Neck)和预测模块(Prediction)组成。在输入端设计中采用Mosaic数据增强方法,并通过随机裁剪与拼接的方式实现数据增强效果。其中,在特征提取环节中使用了CSPNet(Cross Stage Partial Network)结构,在此框架下将输入特征图分割为两部分进行处理:一部分经过一系列深度可变卷积层进行细节增强;另一部分则直接进行下采样以获取大尺度信息;最终将这两部分得到的特征图进行深度整合以提升模型的整体表现能力。值得注意的是,在Neck阶段采用了连续应用卷积核C3结构块的方式来整合多级特征图信息;而到了Prediction阶段,则根据模型输出的结果对目标的位置信息及其尺寸参数进行精确推断。从性能角度来看,该算法展现出较高的准确率与定位精度;不过随着研究进展,YOLO系列后续版本如YOLov6、YOLov7等也在不断优化改进,未来博主也会尝试将其应用于实际项目中,期待能够带来更好的解决方案
数据集介绍
本系统采用了人工标注的方式对Caltech行人数据集进行了这一类别的标记。该数据集中各类别中包含大量不同姿态和光照条件的图片。这些特点有助于提升检测模型的鲁棒性。用于实验研究的Caltech行人检测识别数据集包含了训练集18569张图片和验证集4366张图片。选取部分训练样本作为示例展示如图所示。考虑到YOLOv5算法对输入图像尺寸有严格要求,并将所有图像调整为统一大小以减少失真影响。通过保持宽高比并适当放大至最小尺寸来平衡失真程度与计算效率之间的关系。为了增强模型性能并避免过拟合问题,在调整图像尺寸后我们采用了随机旋转、缩放、裁剪和颜色变换等多方面的数据增强技术以扩展训练数据量

关键代码解析
本系统采用PyTorch框架构建了深度学习模型,并基于YOLOv5算法实现目标检测功能。在模型训练过程中,我们首先选择预训练权重作为初始模型,并通过迭代优化网络参数逐步提升其性能水平。为了提高模型的泛化能力与鲁棒性,在训练过程中综合运用了学习率衰减策略以及数据增强技术等方法手段。当进入测试环节时,在线部署训练好的模型即可对未知图片与视频实施目标检测操作;通过设定合理的置信度阈值,并结合后端处理机制可有效去除低置信度的候选框;最终生成完整的分析报告供后续研究应用。
该系统基于YOLOv5算法构建了深度学习模型,并采用PyTorch框架实现其功能模块;主要依赖于PyTorch、OpenCV等关键组件完成图像与视频分析任务。


Pyside6界面设计
作为解决Python程序GUI开发问题的一种方案,
PySide6不仅能够快速生成功能完善的图形界面,
而且能够帮助开发者轻松构建直观的操作界面,
从而实现用户可轻松选择图片和视频文件并完成目标检测流程。
在本文中,
我们采用PyQt框架中的Qt Designer工具来设计用户界面,
并结合PySide6库将其转换为相应的Python代码实现。
其中包含多种类型的用户界面组件,
如标签组件用于标注识别结果,
按钮用于触发特定操作,
文本框用于显示识别结果信息等。
利用PySide6提供的信号与槽机制来建立组件之间的关联关系,
使得整个系统能够高效响应用户的交互操作。
实验结果与分析
在实验评估与分析部分中,我们通过精确率和召回率等指标对模型性能进行评估,并借助损失曲线图和PR曲线图对训练效果进行分析。同时,在这一过程中我们基于先前介绍的Caltech行人数据集展开训练,并采用YOLOv5算法进行目标检测模型的参数优化。经过持续300个epoch的迭代优化后,在验证集中测试得到了较为理想的表现结果。具体而言,在每一轮迭代中我们都会利用TensorBoard记录下模型在不同阶段的表现变化情况

该PR曲线图展示了经过训练的YOLOv5模型在验证集上的性能指标。通过分析该图表可以看出,模型在召回率和准确率方面均表现出色。

该文通过YOLOv5模型对Caltech行人数据集实施Mosaic数据增强技术生成了图像样本。


总结:经过训练后的YOLOv5模型在数据集上的表现优异,在实际应用场景中能实现良好的检测效果与稳定性保障。此外,在全面评估的基础上开发出一套流畅且高精度的目标检测系统界面即为本文档中的演示部分展示内容将完整的UI界面设计、测试图片、视频以及相关代码文件全部整理并上传至云端存储空间感兴趣的朋友可通过私信获取完整资源包
基于深度学习的目标检测系统中包括番茄、猫狗识别系统、绵羊、野生生物识别系统、烟头探测器、二维码识别系统、头盔识别系统、交警标志识别系统、野生动物监测系统、野外烟雾检测设备等有需要的朋友请关注我以获取下载链接
完整项目目录如下所示:

