前言
yolov8的广泛使用,拉取yolov8源码工程,然后配置环境后直接运行,初步验证自己数据的检测效果,在数据集准备OK的情况下 需要信手拈来,以保证开发过程的高效进行。
本篇博客更注意为了方便自己使用时参考。顺便也记录下ubuntu下的一些简单的常用的操作。
1 ubuntu的相关命令
ubuntu关于账号的操作
- 添加删除用户
sudo adduser XXX ## 新增用户 sudo userdel -r XXX ## 删除用户# 更改用户主目录 # sudo usermod -d /target_dir/ username # sudo chown -R username target_dir/ #将文件夹所有权给该用户# sudo useradd -r -m -s /bin/bash username (-r root) # sudo passwd XXXX # sudo userdel -r username # deluser USER --remove-home --remove-all-files
- 修改密码
sudo passwd user
- 查看所有用户
grep bash /etc/passwd
- 添加删除管理员权限
sudo adduser username sudo sudo deluser username sudo
ubuntu下磁盘信息查看
- 查看硬盘容量
df -h ## 查看硬盘容量 du -h --max-depth=1 ## 查看当前路径文件夹大小
- 查看文件夹详细信息
ls -l ls -al
- 统计文件夹中文件数量
ls -l | grep "^-" | wc -l
- 查看显卡占用
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】chmod +x Miniconda3*.sh bash Miniconda3*.sh1 按 enter 键2 输入yes并enter3 选择路径:enter4 是否添加环境变量: yes5 是否安装Microsoft vs no就行(因为已经安装了vscode和qt,所以这里no就行) source ~/.bashrc
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。
conda create -n YOLOV8 python=3.8 conda activate YOLOV8 pip install ultralytics==8.0.36 pip list ## 查看安装列表 ## 剩余需要的库,正常安装即可
4.2 demo工程
# import sys # sys.path.append("./") from ultralytics import YOLO # import onnxruntime as ort import cv2 import os import globdef 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 modelresults = 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 自己的工程训练
# import sys # sys.path.append("./") from ultralytics import YOLO # import onnxruntime as ort import cv2 import os import globdef 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_pathuse_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 的环境配置