前言
在公共出行领域,安全检测已成为不可或缺的一环。实现对危险物品的智能检测,不仅能够提升安全水平,也是保障公众安心出行的关键。随着技术的进步,智能算法的应用已成为实现这一目标的重要手段。通过精准的算法分析,我们能够快速识别并拦截潜在的威胁,为乘客提供一个更加安全、可靠的出行环境。
一、准备工作
SIXRay数据集下载(YOLO格式):
#数据集下载连接:
https://github.com/MeioJane/SIXray
(YOLOv8的安装可以参考之前的博客)
二、进行训练
首先创建一个读取数据集的yaml文件,我的命名为SIXRay.yaml,具体代码如下:
path: ../data/SIXRay
train:
train/images
val:
valid/images
test:
test/images
nc: 6 #标签数量
names: ['gun', 'knife', 'wrench', 'pliers', 'scissors', 'hammer']
相关文件夹的位置需要根据自己所方位置进行修改
然后写一个运行脚本的python文件,我的命名为trainSIXRayYOLOv8.py,具体代码如下:
rom ultralytics import YOLO
model = YOLO(model='yolov8n.pt')
model.train(
data='SIXRay.yaml',
epochs=100,
batch=16,
imgsz=640)
可以根据自己电脑配置对batch进行修改。
结果:
100 epochs completed in 0.488 hours.
Validating /home/wqt/Projects/NEU-DET-with-yolov8/runs/detect/train7/weights/best.pt...
Ultralytics YOLOv8.2.31 🚀 Python-3.8.19 torch-2.3.1+cu121 CUDA:0
(NVIDIA GeForce RTX 4090, 24209MiB)
Model summary (fused): 168 layers, 3006818 parameters, 0 gradients, 8.1 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95):
all 1662 3176 0.923 0.838 0.904 0.664
gun 551 888 0.953 0.95 0.975 0.759
knife 291 442 0.921 0.801 0.885 0.634
wrench 794 1110 0.93 0.823 0.916 0.664
pliers 178 206 0.935 0.835 0.886 0.632
scissors 392 530 0.875 0.782 0.858 0.633
Speed: 0.1ms preprocess, 0.2ms inference, 0.0ms loss, 0.3ms postprocess per image
Results saved to /home/wqt/Projects/NEU-DET-with-yolov8/runs/detect/train7
数据增强
Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size
100/100 2.1G 0.9823 0.5742 1.179 17 640
Class Images Instances Box(P R mAP50 mAP50-95)
all 1662 3176 0.921 0.83 0.904 0.619
100 epochs completed in 0.527 hours.
Validating /home/wqt/Projects/NEU-DET-with-yolov8/runs/detect/train8/weights/best.pt...
Ultralytics YOLOv8.2.31 🚀 Python-3.8.19 torch-2.3.1+cu121
CUDA:0 (NVIDIA GeForce RTX 4090, 24209MiB)
Model summary (fused): 168 layers, 3006818 parameters, 0 gradients, 8.1 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95)
all 1662 3176 0.914 0.835 0.903 0.62
gun 551 888 0.962 0.955 0.986 0.731
knife 291 442 0.921 0.788 0.873 0.588
wrench 794 1110 0.924 0.833 0.917 0.613
pliers 178 206 0.929 0.859 0.91 0.6
scissors 392 530 0.832 0.739 0.83 0.567
Speed: 0.1ms preprocess, 0.3ms inference, 0.0ms loss, 0.4ms postprocess per image
Results saved to /home/wqt/Projects/NEU-DET-with-yolov8/runs/detect/train8