〇、詳細視頻教程
一平绩、(ultralytic)YOLOV8項目部署
github鏈接:https://github.com/ultralytics/ultralytics
git拉取項目:
git clone https://github.com/ultralytics/ultralytics.git
二圈匆、cuda、cudnn捏雌、Pytorch等環(huán)境安裝與卸載
首先查看pytorch支持的最高版本
PyTorch
https://pytorch.org/
然后查看N卡系統(tǒng)支持最高的版本
然后權(quán)衡下載支持最高版本的CUDA和cuDNN
CUDA工具包
https://developer.nvidia.cn/zh-cn/cuda-toolkit
cuDNN
https://developer.nvidia.com/rdp/cudnn-download
配置對應的環(huán)境變量
nvcc -V
:查看版本CUDA
安裝項目依賴
pip install -e ultralytics
pip install ultralytics
pip install yolo
卸載項目依賴為你安裝CPU版本pytorch跃赚,打開pytorch官網(wǎng),使用對應命令下載GPU版本
三性湿、YOLOV8的簡單講解與推理使用
推理示例:
yolo task=detect mode=predict model=yolov8n.pt conf=0.25 source='ultralytics/assets/bus.jpg'
推理示例:
yolo task=detect mode=train model=yolov8s.pt data={dataset.location}/data.yaml epochs=100 imgsz=640 resume=True workers=2
四纬傲、如何制作自定義數(shù)據(jù)集并訓練
1.自定義數(shù)據(jù)集結(jié)構(gòu)講解與制作
數(shù)據(jù)結(jié)構(gòu):
datasets
├─ data.yaml
├─ test
│ ├─ images
│ │ └─ ······
│ └─ labels
│ └─ ······
├─ train
│ ├─ images
│ │ └─ ······
│ └─ labels
│ └─ ······
├─ valid
│ ├─ images
│ │ └─ ······
│ └─ labels
│ └─ ······
├─ data.yaml
└─ yolov8n.yaml
2.YOLO CLI的簡單介紹
3.如何中斷續(xù)訓
中斷續(xù)訓示例:
yolo task=detect mode=train model=runs/detect/train12/weights/last.pt epochs=500 imgsz=640 resume=True workers=2
其他:
cmd切換到對應的虛擬環(huán)境
conda info -e
activate ultralytics
test.py代碼(查看pytorch是否支持GPU):
#輸入庫
import torch
#查看版本
print(torch.__version__)
#查看gpu是否可用
print(torch.cuda.is_available())
#返回設(shè)備gpu個數(shù)
print(torch.cuda.device_count())
# 查看對應CUDA的版本號
print(torch.backends.cudnn.version())
print(torch.version.cuda)
#退出python
quit()
按比例移動制作自定義數(shù)據(jù)集代碼:
import os
import random
from tqdm import tqdm
# 指定 images 文件夾路徑
image_dir = "D:/zm/coco128/images"
# 指定 labels 文件夾路徑
label_dir = "D:/zm/coco128/labels"
# 創(chuàng)建一個空列表來存儲有效圖片的路徑
valid_images = []
# 創(chuàng)建一個空列表來存儲有效 label 的路徑
valid_labels = []
# 遍歷 images 文件夾下的所有圖片
for image_name in os.listdir(image_dir):
# 獲取圖片的完整路徑
image_path = os.path.join(image_dir, image_name)
# 獲取圖片文件的擴展名
ext = os.path.splitext(image_name)[-1]
# 根據(jù)擴展名替換成對應的 label 文件名
label_name = image_name.replace(ext, ".txt")
# 獲取對應 label 的完整路徑
label_path = os.path.join(label_dir, label_name)
# 判斷 label 是否存在
if not os.path.exists(label_path):
# 刪除圖片
os.remove(image_path)
print("deleted:", image_path)
else:
# 將圖片路徑添加到列表中
valid_images.append(image_path)
# 將label路徑添加到列表中
valid_labels.append(label_path)
# print("valid:", image_path, label_path)
# 遍歷每個有效圖片路徑
for i in tqdm(range(len(valid_images))):
image_path = valid_images[i]
label_path = valid_labels[i]
# 隨機生成一個概率
r = random.random()
# 判斷圖片應該移動到哪個文件夾
# train:valid:test = 7:3:1
if r < 0.1:
# 移動到 test 文件夾
destination = "D:/sj/project/python/ultralytics/datasets/test"
elif r < 0.2:
# 移動到 valid 文件夾
destination = "D:/sj/project/python/ultralytics/datasets/valid"
else:
# 移動到 train 文件夾
destination = "D:/sj/project/python/ultralytics/datasets/train"
# 生成目標文件夾中圖片的新路徑
image_destination_path = os.path.join(destination, "images", os.path.basename(image_path))
# 移動圖片到目標文件夾
os.rename(image_path, image_destination_path)
# 生成目標文件夾中 label 的新路徑
label_destination_path = os.path.join(destination, "labels", os.path.basename(label_path))
# 移動 label 到目標文件夾
os.rename(label_path, label_destination_path)
print("valid images:", valid_images)
#輸出有效label路徑列表
print("valid labels:", valid_labels)
參考:
Ultralytics YOLOv8 Docs(官方的說明文檔)
Windows10系統(tǒng)pytorch、cuda11.0肤频、cuDNN安裝
cuda 和 cudnn 庫的卸載與安裝 - 知乎
Pytorch環(huán)境詳細安裝教程【W(wǎng)in10+CUDA升級11.6+cudNN+Anaconda3虛擬環(huán)境+pycharm】