概述

YOLOv8是Ultralytics公司于2023年推出的新一代目标检测模型,最大的亮点在于它不再只是一个检测算法,而是一个统一的视觉任务平台,原生支持目标检测、实例分割、姿态估计和图像分类等多项任务。在技术层面,YOLOv8采用无锚框设计和解耦检测头,大幅简化了训练流程并提升精度,同时用全新的C2f模块替换了旧版骨干网络,使特征提取更高效。它提供了从轻量级Nano到高精度X-Large五种预训练模型,用户可以根据不同场景平衡速度与精度需求。凭借简便的安装使用、更快的推理速度和更优的检测表现,YOLOv8迅速成为工业界和学术界落地目标检测任务时的首选方案之一。
在这里插入图片描述

无损截取视频

在网络找到一段比赛视频,由于视频过长,截取其中一段视频作为测试视频。
使用工具ffmpeg无损截取,命令如下:
ffmpeg -ss 00:13:50 -to 00:17:32 -i input.mp4 -c copy output.mp4
将截取视频放入yolov8目录中,关于yolov8部署参看之前的文章

视频截图

新建demo.py,使用opencv库,将视频中画面截取保存到本地。

import cv2
v=cv2.VideoCapture("./data/1.mp4")
n=0
step=150
while True:
    ret ,frame=v.read()
    if not ret:
        break
    n+=1
    if n%step==0:
        cv2.imwrite("./data/img/"+str(n)+".jpg",frame)

点击运行,按钮,会生成如下图片:
在这里插入图片描述

标注数据

标注工具使用labelimg,进入conda虚拟环境,运行labelimg工具
在这里插入图片描述
打开工具后,选择图片所在文件夹,如下图:
在这里插入图片描述
选择图中矩形框或者快捷键w,选择标注数据
在这里插入图片描述
将所有图片标注完成。会生成与图片向对应的文本文件。文件内存放标注数据

整理标注数据

将数据按照如下格式,整理。如下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

训练数据

新建snooker.py

from ultralytics import YOLO
model=YOLO("yolov8n.pt","train")
result=model.train(data="./yolo-snooker.yaml",workers=1,epochs=50,batch=16)
print(result)

点击开始,开始训练,训练生成best.pt模型。
在这里插入图片描述

检测数据

使用生成好的模型,识别视频中球。

yolo detect predict model=runs/detect/train/weights/best.pt source=./data/1.mp4 show=True  
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐