首页 > 其他分享 >yolov8_pytorch目标检测和图像分割深度学习模型

yolov8_pytorch目标检测和图像分割深度学习模型

时间:2024-07-13 09:58:53浏览次数:15  
标签:code -- yolov8 pytorch 图像 path your

yolov8

论文

模型结构

yolov8是一种单阶段目标检测算法,该算法在YOLOV5的基础上添加了一些新的改进思路,使其速度与精度都得到了极大的性能提升。

算法原理

YOLOv8算法通过将图像划分为不同大小的网格,预测每个网格中的目标类别和边界框,利用特征金字塔结构和自适应的模型缩放来实现高效准确的实时目标检测。

  • 骨干网络和 Neck 部分将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数,大幅提升了模型性能。
  • Head 部分相比 YOLOv5 改动较大,换成了目前主流的解耦头结构,将分类和检测头分离,同时也从 Anchor-Based 换成了 Anchor-Free.
  • Loss 计算方面采用了 TaskAlignedAssigner 正样本分配策略,并引入了 Distribution Focal Loss.
  • 训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,可以有效地提升精度

环境配置

Docker(方法一)

docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-centos7.6-dtk24.04-py310
docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=80G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash

cd /your_code_path/yolov8_pytorch
pip install -e . -i https://mirrors.aliyun.com/pypi/simple/

Dockerfile(方法二)

cd ./docker
docker build --no-cache -t yolov8:last .
docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=80G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash
cd /your_code_path/yolov8_pytorch
pip install -e . -i https://mirrors.aliyun.com/pypi/simple/

Anaconda(方法三)

1、关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装: https://developer.hpccube.com/tool/

DTK软件栈: dtk24.04
python: python3.10
torch: 2.1

Tips:以上dtk软件栈、python、torch、mmcv等DCU相关工具版本需要严格一一对应

2、其他非特殊库直接按照requirements.txt安装

cd /your_code_path/yolov8_pytorch
pip install -e . -i https://mirrors.aliyun.com/pypi/simple/

数据集

COCO2017(在网络良好的情况下,如果没有下载数据集,程序会默认在线下载数据集)

训练数据快速下载中心:SCNet AIDatasets ,项目中的训练数据下载地址COCO2017

训练数据

验证数据

测试数据

标签数据

数据集的目录结构如下:

├── images 
│   ├── train2017
│   ├── val2017
│   ├── test2017
├── labels
│   ├── train2017
│   ├── val2017
├── annotations
│   ├── instances_val2017.json
├── LICENSE
├── README.txt 
├── test-dev2017.txt
├── train2017.txt
├── val2017.txt

我们通过了coco128数据集,供验证训练使用,如需正式使用,请下载完整COCO数据集或使用定制化数据集。

cd /your_code_path/yolov8_pytorch
cd datasets/
unzip  coco128.zip

训练

  • 数据集放置位置默认为当前目录下 datasets/
  • 如需要正式训练COCO2017请修改coco.yaml下的 path
  • 当前使用coco128.yaml进行训练测试coco128.yaml

单机四卡

cd /your_code_path/yolov8_pytorch
chmod -R 7777 train_multi.sh 
bash ./train_multi.sh
# 若遇到dataset路径找不到的报错,修改官方默认的dataset数据集地址 datasets_dir: /home/yolov8_pytorch/
vim /root/.config/Ultralytics/settings.yaml

单机单卡

cd /your_code_path/yolov8_pytorch
chmod -R 7777 train.sh 
bash ./train.sh

推理

  • 可使用官方模型权重进行推理,也可使用自己训练模型权重进行推理
  • 这里以官方模型推理举例[下载地址:yolov8s.pt]
# 官方推理代码
HIP_VISIBLE_DEVICES=0 python inference.py

result

精度

模型名称amp混精Box AP
yolo8son44.1

应用场景

算法类别

目标检测

热点应用行业

金融,交通,教育

源码仓库及问题反馈

参考资料

相关文章

  • 从图像融合谈起
        图像融合将多个源图像(可能来自不同的传感器、不同视角、不同时间点)的信息整合到单一的输出融合图像中,这一过程旨在通过有效合并各源图像中的互补、冗余或独特信息,生成一个既包含所有关键信息又具有增强特性的融合图像。根据不同的融合任务需要制定不同的准则,然后对......
  • python:使用matplotlib库绘制图像(四)
    作者是跟着http://t.csdnimg.cn/4fVW0学习的,matplotlib系列文章是http://t.csdnimg.cn/4fVW0的自己学习过程中整理的详细说明版本,对小白更友好哦!四、条形图1.一个数据样本的条形图条形图:常用于比较不同类别的数量或值,以及进行简单的数据分析。直方图:常用于分析数据的集中趋......
  • 浅尝python的图像识别
    目的对python中的图像识别进行简单的测试和使用环境win64系统anaconda需要下载的软件:tesseract需要下载的python包:pytesseract,pillow一张记录英文的图片环境的搭建1、tesseract的下载:下载链接:https://digi.bib.uni-mannheim.de/tesseract/tesseract下载后需要对环境......
  • 使用VGG16和MLP实现猫狗图像识别
    数据集数据集可以参考我之前那篇文章,取一部分数据每个300条即可:基于卷积神经网络(CNN)的猫狗图像分类系统实现-CSDN博客1.目的使用VGG16的结构提取图像特征,再根据特征建立MLP模型,实现猫狗图像识别。训练/测试数据:data 1.对数据进行分离、计算测试数据准确率 2.使用VGG1......
  • 【版面有限,早投稿早录用】第三届图像处理、目标检测与跟踪国际学术会议(IPODT 2024)
    第三届图像处理、目标检测与跟踪国际学术会议(IPODT2024)将于2024年8月9-11日在中国南京召开。本次会议旨在为全球的研究人员、工程师、学者和业界专家提供一个展示和讨论图像处理、目标检测与跟踪最新进展的平台,促进这些领域的科研与技术发展。会议内容涵盖从基础研究到应用开......
  • 零代码教你安装部署Stable Diffusion 3,一键生成高质量图像
    本文分享自华为云社区《重磅!【支持中文】stable-diffusion-3安装部署教程-SD3来了》,作者:码上开花_Lancer。正如承诺的那样,StabilityAI在6月12日正式开源了StableDiffusion3(Medium版本)!不愧是AI生图领域的“开源英雄”。最近一段时间,正当所有人都在为OpenAI发布Sora狂欢时,Stabi......
  • 脑瘤-图像分类数据集
    脑瘤-图像分类数据集数据集:链接:https://pan.baidu.com/s/11nIlAsNbhx3umCdjcTUzFg?pwd=0e1g提取码:0e1g数据集信息介绍:文件夹健康中的图片数量:500文件夹垂体肿瘤中的图片数量:899文件夹神经胶质瘤中的图片数量:926文件夹脑膜瘤中的图片数量:929所......
  • 深度学习第P5周:Pytorch实现运动鞋识别
    >-**......
  • 【Pytorch】Conda环境下载慢换源/删源/恢复默认源
    文章目录背景临时换源永久换源打开conda配置condarc换源执行配置命令行修改源添加源查看源删源恢复默认源使用示范背景随着实验增多,需要分割创建环境的情况时有出现,在此情况下使用condacreate--namexxpython=3.10pytorchtorchvisionpytorch-cuda-cnvidia......
  • 用Python和TensorFlow实现图像分类:从零开始
    引言图像分类是计算机视觉中的一个基本任务,它能够让计算机自动识别图像中的物体。在这篇文章中,我们将使用Python和TensorFlow来实现一个简单的图像分类模型,帮助大家了解AI技术的基础知识。准备工作首先,我们需要安装一些必要的Python库。打开命令行终端并运行以下命令:pipin......