前言
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 的環境配置