pyqt5界面演示
摘要
随着城市化进程的加速和交通运输业的蓬勃发展,道路交通的安全问题日益凸显其重要性。交通标志作为道路语言的重要组成部分,对于引导交通流、规范驾驶行为、保障道路使用者的安全具有不可替代的作用。然而,在实际交通环境中,由于天气变化、标志老化、驾驶员注意力分散等多种因素,交通标志的识别往往面临挑战。因此,开发一套高效、准确的交通标志检测系统,不仅能够提升道路交通的安全水平,还能为智能交通系统、自动驾驶技术等前沿领域提供强有力的支持。
本项研究/项目开发旨在利用现代计算机视觉技术和深度学习算法,实现对交通标志的快速、准确检测与识别。通过整合摄像头传感器数据、图像处理算法与机器学习模型,我们期望构建一个能够自动识别并响应各类交通标志的智能系统,以适应复杂多变的交通环境,提高道路通行效率和安全性。
一 ,数据集
-----------类别----------------------------------------------------------------------------------------------------------
绿灯
红灯
停止
限速10,限速100,限速110,限速120,
限速20,限速30,限速40,限速50,
限速60,限速70,限速80,限速90
数据集结构
确保您的数据集目录结构如下所示(这只是一个示例结构,您可以根据实际情况调整):
lettuce_cabbage_disease_dataset/
├── images/
│ ├── train/
│ │ ├── img1.jpg
│ │ ├── img2.jpg
│ │ └── ...
│ ├── val/
│ │ ├── img2500.jpg
│ │ ├── img2501.jpg
│ │ └── ...
├── labels/
│ ├── train/
│ │ ├── img1.txt
│ │ ├── img2.txt
│ │ └── ...
│ ├── val/
│ │ ├── img2500.txt
│ │ ├── img2501.txt
│ │ └── ...
└── data.yaml
二、数据集配置
1.data.yaml
配置文件
创建一个名为 data.yaml
的配置文件,内容如下:
train: D:\language\pyqt-v8\Traffic\datasets\PCB_DATASET\train # train images (relative to 'path') 128 images
val: D:\language\pyqt-v8\Traffic\datasets\PCB_DATASET\val # val images (relative to 'path') 128 images
test: # val images (optional)
# number of classes
nc: 15
# Classes
names: ['Green Light', 'Red Light', 'Speed Limit 10', 'Speed Limit 100', 'Speed Limit 110', 'Speed Limit 120', 'Speed Limit 20', 'Speed Limit 30', 'Speed Limit 40', 'Speed Limit 50', 'Speed Limit 60', 'Speed Limit 70', 'Speed Limit 80', 'Speed Limit 90', 'Stop']
2. 准备环境
certifi==2023.7.22
charset-normalizer==3.3.0
colorama==0.4.6
contourpy==1.1.1
cycler==0.12.1
fonttools==4.43.1
idna==3.4
importlib-resources==6.1.0
kiwisolver==1.4.5
matplotlib==3.8.0
numpy==1.26.1
opencv-python==4.8.1.78
packaging==23.2
psutil==5.9.6
py-cpuinfo==9.0.0
pyparsing==3.1.1
python-dateutil==2.8.2
pyyaml==6.0.1
requests==2.31.0
scipy==1.11.3
seaborn==0.13.0
six==1.16.0
thop==0.1.1-2209072238
torch==1.9.0
tqdm==4.66.1
typing-extensions==4.8.0
ultralytics==8.0.199
urllib3==2.0.6
zipp==3.17.0
PyQt5==5.15.2
pyqt5-tools==5.15.2.3.1
三、模型的训练、评估与推理
1.训练时候把推理和测试脚本注释掉
from ultralytics import YOLO
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
# 安装命令
# python setup.py develop
if __name__ == '__main__':
# 直接使用预训练模型创建模型.
model = YOLO('yolov8n.pt')
model.train(**{'cfg': 'ultralytics/cfg/exp1.yaml', 'data': 'dataset/data.yaml'})
# 使用yaml配置文件来创建模型,并导入预训练权重.
#model = YOLO('ultralytics/cfg/models/v8/yolov8.yaml')
#model.load('yolov8n.pt')
#model.train(**{'cfg': 'ultralytics/cfg/exp1.yaml', 'data': 'dataset/data.yaml'})
# 模型验证
#model = YOLO('runs/detect/train22/weights/best.pt')
#model.val(**{'data': 'dataset/data.yaml','split':'test'})
# 模型推理
#model = YOLO('runs/detect/train22/weights/best.pt')
#model.predict(source='dataset/images/test', **{'save': True})