【yolov8系列】ubuntu上yolov8的开启训练的简单记录

前言

yolov8的广泛使用,拉取yolov8源码工程,然后配置环境后直接运行,初步验证自己数据的检测效果,在数据集准备OK的情况下 需要信手拈来,以保证开发过程的高效进行。
本篇博客更注意为了方便自己使用时参考。顺便也记录下ubuntu下的一些简单的常用的操作。

1 ubuntu的相关命令

ubuntu关于账号的操作

  1. 添加删除用户

    bash 复制代码
    sudo adduser XXX       ## 新增用户
    sudo userdel -r XXX    ## 删除用户
  2. 修改密码

    bash 复制代码
    sudo passwd user
  3. 查看所有用户

    bash 复制代码
    grep bash /etc/passwd
  4. 添加删除管理员权限

    bash 复制代码
    sudo adduser username sudo
    sudo deluser username sudo

ubuntu下磁盘信息查看

  1. 查看硬盘容量

    bash 复制代码
    df -h                              ## 查看硬盘容量
    du -h --max-depth=1         ## 查看当前路径文件夹大小
  2. 查看文件夹详细信息

    bash 复制代码
    ls -l
    ls -al
  3. 统计文件夹中文件数量

    bash 复制代码
    ls -l | grep "^-" | wc -l
  4. 查看显卡占用

    bash 复制代码
    nvidia-smi           # 显示PID
    ps -f -p 26359     # 查询PID

2 安装Anaconda

官网上下载不流畅,清华镜像丝滑下载(官方通知不更新 但够使用),链接为
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/ mini版本,都能正常使用。

个人选择miniconda安装,下载【Miniconda3-4.7.12-Linux-x86_64.sh】

bash 复制代码
chmod +x Miniconda3*.sh
bash Miniconda3*.sh
	1 按 enter 键
	2 输入yes并enter
	3 选择路径:enter
	4 是否添加环境变量: yes
	5 是否安装Microsoft vs no就行(因为已经安装了vscode和qt,所以这里no就行)
source ~/.bashrc
bash 复制代码
conda list                   #显示自己已安装包
conda create -n env_name(自己写名字) python=3.7(版本号) # 创建虚拟环境
source activate env_name    #激活虚拟环境
deactivate                 # 退出虚拟环境
conda env list            # 查看已有虚拟环境
conda install ~         # 安装包
conda remove ~         # 卸载包
conda update           # 更新

3 安装VScode

https://blog.csdn.net/magic_ll/article/details/119679279

4 YOLOV8的环境配置与运行

4.1 工程下载与环境配置

工程下载ultralytics 8.0.36

bash 复制代码
conda create -n YOLOV8 python=3.8
conda activate YOLOV8
pip install ultralytics==8.0.36
pip list          ## 查看安装列表
## 剩余需要的库,正常安装即可

4.2 demo工程

python 复制代码
# import sys
# sys.path.append("./")
from ultralytics import YOLO
# import onnxruntime as ort
import cv2
import os
import glob

def demo():
    ### predict===================================
    # 加载模型
    test_path = "https://ultralytics.com/images/bus.jpg"
    outpath = os.path.join(os.getcwd(), "runs/detect")

    # model = YOLO("yolov8n.yaml")  # 从头开始构建新模型
    model = YOLO("yolov8n.pt")  # 加载预训练模型(推荐用于训练)

    # Use the model
    results = model.train(data="coco128.yaml", epochs=3)  # 训练模型
    results = model.val()  # 在验证集上评估模型性能
    results = model(test_path)  # 预测图像
    results = model.predict(test_path, device=0,save=True,show=False,save_txt=True, imgsz=[640,640],
                            save_conf=True, name=outpath, iou=0.5)  ## 预测图像 ## 这里的imgsz为高宽

    success = model.export(format="onnx")  # 将模型导出为 ONNX 格式

demo()

可能报错:运行上述脚本,报错如下,原因是显卡驱动和cuda版本不匹配。

提高显卡驱动版本或降低pytorch版本即可。这里方便起见,降低pytorch版本与显卡驱动匹配即可。
此时pytorch版本为:torch2.3.0,torchvision0.18.0。重新安装版本torch2.1.1,torchvision0.16.1。


4.3 自己的工程训练

python 复制代码
# import sys
# sys.path.append("./")
from ultralytics import YOLO
# import onnxruntime as ort
import cv2
import os
import glob

def export_own():
    model_file = "./yolov8n.pt",
    print(model_file)

    model = YOLO(model_file)  # load a pretrained model (recommended for training)
    pt_path = model.model.pt_path
    use_model = os.path.basename(pt_path)

    ## 通过修改pt_path,从而直接修改转换的onnx的名字,就可以导出不同输入尺寸的onnx模型
    # model.model.pt_path = pt_path.replace(use_model, f"{use_model[:-3]}_export{use_model[-3:]}")
    model.export(format='onnx', opset=11, simplify=True, dynamic=False, imgsz=[352,352])

def train_own():

    model_path = "yolov8s.pt"
    # model_path = os.path.join(os.getcwd(), "runs/detect/yolov8_case23_epoch300/weights/epoch250.pt")
    savename = os.path.join(os.getcwd(), "runs/detect/yolov8_case24_epoch300")

    model = YOLO(model_path)  
    model.train(data="./dataYaml/Object_case19.yaml", 
                device="4,5,6,7", imgsz=352, close_mosaic=50, epochs=300, batch=512, 
                workers=16, save_period=10, name=savename, patience=300,
                # resume=True ## 是否要继续训练
                )  
                
if __name__=="__main__":
    train_own()
    export_own()

5 端侧模型转换

5.1 RK3566模型转换

rknn-toolkit2-v1.4的环境配置


5.2 SIM9383模型转换

SIM9383 的环境配置

相关推荐
ac.char12 分钟前
在 Ubuntu 下使用 Tauri 打包 EXE 应用
linux·运维·ubuntu
小燚~1 小时前
ubuntu开机进入initramfs状态
linux·运维·ubuntu
机器懒得学习1 小时前
基于YOLOv5的智能水域监测系统:从目标检测到自动报告生成
人工智能·yolo·目标检测
hhhhhhh_hhhhhh_1 小时前
ubuntu18.04连接不上网络问题
linux·运维·ubuntu
冬天vs不冷3 小时前
Linux用户与权限管理详解
linux·运维·chrome
White_Mountain11 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
coder_pig13 小时前
📝小记:Ubuntu 部署 Jenkins 打包 Flutter APK
flutter·ubuntu·jenkins
AI莫大猫13 小时前
(6)YOLOv4算法基本原理以及和YOLOv3 的差异
算法·yolo
mit6.82414 小时前
Ubuntu 系统下性能剖析工具: perf
linux·运维·ubuntu
watermelonoops14 小时前
Windows安装Ubuntu,Deepin三系统启动问题(XXX has invalid signature 您需要先加载内核)
linux·运维·ubuntu·deepin