基于YOLOv8的多目标检测与自动标注软件【python源码+PyqtUI界面+exe文件】【深度学习】

简介: 基于YOLOv8的多目标检测与自动标注软件【python源码+PyqtUI界面+exe文件】【深度学习】

前言

YOLOv8是一种前沿的计算机视觉技术,它基于先前YOLO版本在目标检测任务上的成功,进一步提升了性能和灵活性。这种模型属于Ultralytics平台,它的优势在于速度快且准确率高,这得益于其"You Only Look Once"(你仅需看一遍)的工作原理。不仅如此,YOLOv8不仅限于检测任务,还拓展到了分类、分割、跟踪,甚至姿态估计等多个领域。

目标检测作为计算机视觉的重要任务之一,具有广泛的应用价值。例如,在交通管理中,可以通过实时车辆检测和跟踪来更好地管理交通流量;在智能监控中,可以用于识别异常行为或危险情况等。因此,YOLOv8这类高效准确的目标检测模型在各领域的应用具有重要意义。

博主根据YOLOv8的目标检测技术,基于python与Pyqt5开发了一款简洁的支持80个类别的目标检测自动化标注软件,可支持图片、视频以及摄像头目标检测,同时支持检测类型选择图片的批量自动标注,并将检测结果保存为YOLO格式的文件,用于后续训练。

软件基本界面如下图所示:

觉得不错的小伙伴,感谢点赞、关注加收藏!如果大家有任何建议或意见,欢迎在评论区留言交流!

一、软件核心功能介绍及效果演示

软件主要功能

1. 支持80个类别的目标检测,详细目标类别见下方说明;
2. 支持图片、视频及摄像头进行检测,并显示目标位置目标总数,保存检测结果;
3. 支持图片批量检测与自动标注,并将结果保存为YOLO格式文件,用于后续模型训练;
4. 支持单个类别的目标选择与检测,并保存检测结果与YOLO标签文件。

80个目标检测类别说明

本文是基于YOLOv8的基础训练模型进行开发的,模型使用的是COCO数据集。支持80个类别的目标检测,具体目标类别名称如下:

[   '人','自行车', '汽车', '摩托车', '飞机', '公共汽车', '火车',
    '卡车', '船', '交通灯', '消防栓', '停车标志', '停车收费表',
    '长凳', '鸟', '猫', '狗', '马', '羊', '牛', '大象', '熊',
    '斑马', '长颈鹿', '背包', '雨伞','手袋', '领带', '手提箱',
    '飞盘', '雪橇', '滑雪板', '运动球', '风筝', '棒球棒',
    '棒球手套', '滑板', '冲浪板', '网球拍', '瓶子', '酒杯', '杯子',
    '叉子', '刀', '汤匙', '碗', '香蕉', '苹果', '三明治', '橙子',
    '西兰花', '胡萝卜', '热狗', '披萨', '甜甜圈', '蛋糕', '椅子',
    '沙发', '盆栽植物', '床', '餐桌', '马桶', '电视', '笔记本电脑',
    '鼠标', '遥控器', '键盘', '手机', '微波炉', '烤箱', '烤面包机',
    '水槽', '冰箱', '书', '时钟', '花瓶', '剪刀', '泰迪熊', '吹风机', '牙刷']

包含了常见的人、汽车、公共汽车、交通灯等。

(1)图片检测演示

点击图片图标,选择需要检测的图片,或者点击文件夹图标,选择需要批量检测图片所在的文件夹,操作演示如下:

1. 点击选择类别下拉框后,会只对图片指定类别进行检测【默认检测全部类别】。
2. 点击保存按钮,会同时保存指定类别检测结果图片与其对应的YOLO标签文件。

(2)视频检测演示

点击视频图标,选择需要检测的视频,就会自动显示检测结果。也可以通过下拉框选择指定类别进行检测。点击保存按钮,会对视频检测结果进行保存,存储路径为:save_data目录下。

(3)摄像头检测演示

点击摄像头图标,可以打开摄像头进行检测,同样可以通过下拉框选择指定类别进行检测。

(4)保存检测结果与自动标注标签文件

点击保存按钮后,对于图片,会同时保存指定类别检测结果图片与其对应的YOLO标签文件;对于视频,只会保存指定类别检测结果视频。

检测的图片与视频结果会存储在save_data目录下:

对于图片,会将指定检测目标的结果存储为目标检测中YOLO格式,方便后续进行模型进行训练使用,存储路径为:save_data/yolo_labels。结果如下图所示:

自动标注的存储格式为YOLO目标检测格式说明如下:【保存的文件名与图片名称相同】

二、YOLOv8目标检测的基本原理

1.基本原理

YOLOv8是一种前沿的目标检测技术,它基于先前YOLO版本在目标检测任务上的成功,进一步提升了性能和灵活性。主要的创新点包括一个新的骨干网络、一个新的 Ancher-Free 检测头和一个新的损失函数,可以在从 CPU 到 GPU 的各种硬件平台上运行

YOLOv8不仅限于检测任务,还拓展到了分类、分割、跟踪,甚至姿态估计等多个领域。比如,通过使用已经训练好的yolov8x-seg.pt模型,可以实现对输入图像的实例分割操作,从而得到图像中不同物体的分割结果。此外,利用YOLOv8还可以实现实时车辆检测、车辆跟踪、实时车速检测,以及检测车辆是否超速等功能。

其主要网络结构如下:

本文基于YOLOv8的基础的目标检测模型,该多目标检测与自动标注软件的开发。支持80种类型目标的检测与结果保存,同时能批量将图片的检测结果保存为YOLO格式,便于后续模型训练的使用。

2.核心功能代码实现

2.1 YOLOv8检测图片代码

from ultralytics import YOLO
import cv2
# 加载预训练模型
model = YOLO("yolov8n.pt", task='detect') 
# model = YOLO("yolov8n.pt") task参数也可以不填写,它会根据模型去识别相应任务类别
# 检测图片
results = model("./ultralytics/assets/bus.jpg")
res = results[0].plot()
cv2.imshow("YOLOv8 Inference", res)
cv2.waitKey(0)

2.2 YOLOv8检测视频代码

import cv2
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO('yolov8n.pt')
print('111')
# Open the video file
video_path = "1.mp4"
cap = cv2.VideoCapture(video_path)
# Loop through the video frames
while cap.isOpened():
    # Read a frame from the video
    success, frame = cap.read()
    if success:
        # Run YOLOv8 inference on the frame
        results = model(frame)
        # Visualize the results on the frame
        annotated_frame = results[0].plot()
        # Display the annotated frame
        cv2.imshow("YOLOv8 Inference", annotated_frame)
        # Break the loop if 'q' is pressed
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        # Break the loop if the end of the video is reached
        break
# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()

以上便是关于YOLOv8的多目标检测与自动标注原理与代码介绍。针对以上内容,博主基于pythonPyqt5开发了一个可视化的YOLOv8多目标检测与自动标注软件,能够很好的支持图片、视频及摄像头的目标检测,支持检测类型的选择,同时支持自动标注文件保存为YOLO格式。

相关文章
|
4天前
|
机器学习/深度学习 监控 自动驾驶
深度学习之2D目标检测
2D目标检测是深度学习中的一个关键任务,旨在识别图像中的目标对象,并在每个目标对象周围生成一个边界框。该任务在自动驾驶、视频监控、机器人视觉等领域具有广泛应用。以下是对深度学习中2D目标检测的详细介绍,包括其基本概念、主要方法、常见模型、应用场景、优势和挑战。
16 4
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
豆瓣评分9.5!清华大牛熬夜整理的Python深度学习教程开发下载!
深度学习目前已经成为了人工智能领域的突出话题。它在“计算机视觉和游戏(AlphaGo)等领域的突出表现而闻名。 今天给小伙伴们分享的这份手册,详尽介绍了用 Python 和 Keras进行深度学习的探索实践,涉及计算机视觉、自然语言处理、生成式模型等应用。
|
5天前
|
机器学习/深度学习 人工智能 监控
【机器学习】Python与深度学习的完美结合——深度学习在医学影像诊断中的惊人表现
【机器学习】Python与深度学习的完美结合——深度学习在医学影像诊断中的惊人表现
20 3
|
8天前
|
Python
【Python的魅力】:利用Pygame实现游戏坦克大战——含完整源码
【Python的魅力】:利用Pygame实现游戏坦克大战——含完整源码
|
9天前
|
机器学习/深度学习 存储 计算机视觉
基于YOLOv8深度学习的PCB板缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
基于YOLOv8深度学习的PCB板缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测
|
9天前
|
机器学习/深度学习 存储 算法
基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、运动物体追踪
基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标追踪、运动物体追踪
|
1天前
|
机器学习/深度学习 算法 数据安全/隐私保护
深度学习在医疗影像分析中的应用与挑战
【6月更文挑战第21天】随着人工智能技术的飞速发展,深度学习已成为推动医学影像分析进步的关键力量。本文将探讨深度学习技术如何革新医疗影像的诊断流程,包括自动化病变检测、图像分割以及疾病预测等方面。同时,我们将讨论实施这些技术时遇到的伦理和法律问题。
|
21小时前
|
机器学习/深度学习 自然语言处理 数据处理
深度学习在自然语言处理中的应用与挑战
【6月更文挑战第21天】随着人工智能技术的飞速发展,深度学习已成为自然语言处理(NLP)领域的核心技术之一。本文将探讨深度学习技术如何革新NLP领域,包括语言模型的进步、机器翻译的突破以及情感分析的精细化。同时,我们将指出当前面临的主要挑战,如数据偏差问题、模型解释性不足以及资源消耗问题,并提出可能的解决方向。
|
1天前
|
机器学习/深度学习 自动驾驶 安全
基于深度学习的图像识别技术在自动驾驶汽车中的应用
【5月更文挑战第52天】 随着人工智能技术的飞速发展,特别是深度学习在图像处理和模式识别领域取得的突破性进展,自动驾驶汽车技术迎来了前所未有的发展机遇。本文旨在探讨基于深度学习的图像识别技术如何赋能自动驾驶系统,提升其在复杂交通环境中的感知能力、决策效率和安全性。通过对当前主流的深度学习模型进行分析,并结合最新的研究成果,文章详细阐述了卷积神经网络(CNN)在车辆检测、行人识别和路标理解等方面的应用实例,同时指出了现有技术的局限性和未来可能的发展趋势。
|
23小时前
|
机器学习/深度学习 人工智能 算法
探索深度学习在图像识别中的应用
【6月更文挑战第21天】本文深入探讨了深度学习技术,特别是卷积神经网络(CNN)在图像识别领域的应用。文章首先介绍了深度学习的基础知识,然后详细解析了卷积神经网络的结构和工作原理,最后通过案例分析展示了深度学习在图像识别中的实际效果和潜力。