深度学习目标检测】二十、基于深度学习的雾天行人车辆检测系统-含数据集、GUI和源码(python,yolov8)

雾天车辆行人检测在多种场景中扮演着至关重要的角色。以下是其作用的几个主要方面:

  1. 安全性提升:雾天能见度低,视线受阻,这使得驾驶者和行人在道路上的感知能力大大降低。通过车辆行人检测技术,可以在雾天条件下及时发现道路上的其他交通参与者,从而提前做出反应,避免潜在的危险,提升驾驶和行走的安全性。
  2. 辅助驾驶:在雾天,驾驶者往往难以准确判断前方道路的情况,包括其他车辆和行人的位置、速度和方向等。车辆行人检测技术可以提供这些关键信息,帮助驾驶者更好地了解道路状况,从而做出更准确的驾驶决策。
  3. 交通效率提升:在雾天条件下,交通往往容易受到影响,出现拥堵、事故等情况。通过车辆行人检测技术,可以及时发现并处理这些问题,从而保持交通的顺畅,提升交通效率。
  4. 自动驾驶技术的重要组成部分:随着自动驾驶技术的不断发展,车辆行人检测技术成为了其中的重要组成部分。在自动驾驶系统中,车辆需要能够准确感知周围环境的变化,包括其他车辆和行人的位置、速度和方向等。而雾天车辆行人检测技术可以帮助自动驾驶系统更好地应对恶劣天气条件,提高系统的可靠性和稳定性。

总的来说,雾天车辆行人检测技术在提升道路安全、辅助驾驶、提高交通效率以及推动自动驾驶技术的发展等方面都发挥着重要作用。

本文介绍了基于深度学习yolov8的雾天行人车辆检测系统,包括训练过程和数据准备过程,同时提供了推理的代码和GUI。对准备计算机视觉相关的毕业设计的同学有着一定的帮助。

检测结果如下图:

一、安装YoloV8

yolov8官方文档:主页 - Ultralytics YOLOv8 文档

安装部分参考:官方安装教程

1、安装pytorch

根据本机是否有GPU,安装适合自己的pytorch,如果需要训练自己的模型,建议使用GPU版本。

①GPU版本的pytorch安装

对于GPU用户,安装GPU版本的pytorch,首先在cmd命令行输入nvidia-smi,查看本机的cuda版本,如下图,我的cuda版本是12.4(如果版本过低,建议升级nvidia驱动):

打开pytorch官网,选择合适的版本安装pytorch,如下图,建议使用conda安装防止cuda版本问题出现报错:

②CPU版本pytorch安装

打开pytorch官网,选择CPU版本安装pytorch,如下图:

2、安装yolov8

在命令行使用如下命令安装:

bash 复制代码
pip install ultralytics

二、数据集准备

本项目的数据集为RTTS数据集,RTTS 数据集源自 RESIDE-β 数据集,包含 4322 张真实雾天图片,作为项目训练集,另外有 100 张真实场景图片作为验证集。

该数据集包含5各类别:

person/ car/ bus/ bicycle/ motorbike

数据集图片示例如下图所示:

为了使用yolov8进行训练,需要将数据集转为yolo格式,本文提供转换好的数据集连接:rtts-yolov8数据集

三、模型配置及训练

1、数据集配置文件

创建数据集配置文件ug.yaml,内容如下(将path路径替换为自己的数据集路径):

bash 复制代码
# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO 2017 dataset http://cocodataset.org by Microsoft
# Example usage: yolo train data=coco.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco  ← downloads here (20.1 GB)
 
 
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: D:\DeepLearning\datasets\csdn\UG\UG_yolov8  # 替换为自己的数据集路径
train: images/train 
val: images/val 
test: images/val  
 
# Classes
names:
  # 0: normal
  0: person
  1: car
  2: bus
  3: bicycle
  4: motorbike

2、训练模型

使用如下命令训练模型,数据配置文件路径更改为自己的路径,model根据自己的需要使用yolov8n/s/l/x版本,其他参数根据自己的需要进行设置:

bash 复制代码
yolo detect train project=ug name=train exist_ok data=ug/ug.yaml model=yolov8n.yaml epochs=300 imgsz=640

3、验证模型

使用如下命令验证模型,相关路径根据需要修改:

bash 复制代码
yolo detect val imgsz=640 model=ug/train/weights/best.pt data=ug/ug.yaml

精度如下:

bash 复制代码
# Ultralytics YOLOv8.1.10 🚀 Python-3.9.18 torch-2.2.0 CUDA:0 (NVIDIA GeForce RTX 3060, 12288MiB)
# YOLOv8n summary (fused): 168 layers, 3006623 parameters, 0 gradients, 8.1 GFLOPs
# val: Scanning D:\DeepLearning\datasets\csdn\UG\UG_yolov8\labels\val.cache... 100 images, 0 backgrounds, 0 corrupt: 100%|██████████| 100/100 [00:00<?, ?it/s]
#                  Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 7/7 [00:07<00:00,  1.00s/it]
#                    all        100        773      0.735      0.448      0.544      0.308
#                 person        100        173      0.732       0.41      0.473      0.197
#                    car        100        479      0.793      0.658      0.744      0.458
#                    bus        100         49      0.679       0.49       0.65      0.393
#                bicycle        100         12      0.766      0.333      0.408      0.255
#              motorbike        100         60      0.706       0.35      0.444      0.236
# Speed: 1.7ms preprocess, 7.9ms inference, 0.0ms loss, 2.5ms postprocess per image
# Results saved to runs\detect\val3
# 💡 Learn more at https://docs.ultralytics.com/modes/val

四、推理

训练好了模型,可以使用如下代码实现推理,权重路径修改为自己的路径:

bash 复制代码
from PIL import Image
from ultralytics import YOLO
 
# 加载预训练的YOLOv8n模型
model = YOLO('best.pt')
 
image_path = 'test.jpg'
results = model(image_path)  # 结果列表
 
# 展示结果
for r in results:
    im_array = r.plot()  # 绘制包含预测结果的BGR numpy数组
    im = Image.fromarray(im_array[..., ::-1])  # RGB PIL图像
    im.show()  # 显示图像
    im.save('results.jpg')  # 保存图像

五、界面开发

使用pyqt5开发gui界面,支持图片、视频、摄像头输入,支持导出到指定路径,其GUI如下图(完整GUI代码可在下方链接下载):

代码下载连接:基于yolov8的雾天车辆行人检测系统,包含训练好的权重和推理代码,GUI界面,支持图片、视频、摄像头输入,支持检测结果导出

相关推荐
笑脸惹桃花9 分钟前
YOLOv11(Ultralytics)视频选定区域目标统计计数及跟踪
yolo·目标跟踪·计数·ultralytics
南门听露1 小时前
无监督跨域目标检测的语义一致性知识转移
人工智能·目标检测·计算机视觉
夏沫の梦1 小时前
常见LLM大模型概览与详解
人工智能·深度学习·chatgpt·llama
LNTON羚通2 小时前
算法定制LiteAIServer视频智能分析平台工业排污检测算法智控环保监管
算法·目标检测·音视频·监控·视频监控
染予2 小时前
YOLOV5/rknn生成可执行文件部署在RK3568上
yolo
明明真系叻2 小时前
第二十二周机器学习笔记:动手深度学习之——线性代数
笔记·深度学习·线性代数·机器学习·1024程序员节
HPC_fac130520678164 小时前
科研深度学习:如何精选GPU以优化服务器性能
服务器·人工智能·深度学习·神经网络·机器学习·数据挖掘·gpu算力
LNTON羚通10 小时前
摄像机视频分析软件下载LiteAIServer视频智能分析平台玩手机打电话检测算法技术的实现
算法·目标检测·音视频·监控·视频监控
吃肉不能购12 小时前
Label-studio-ml-backend 和YOLOV8 YOLO11自动化标注,目标检测,实例分割,图像分类,关键点估计,视频跟踪
运维·yolo·自动化
余炜yw13 小时前
【LSTM实战】跨越千年,赋诗成文:用LSTM重现唐诗的韵律与情感
人工智能·rnn·深度学习