一、yolo环境配置
这篇帖子是我试过的,非常全,很详细【cuda+anaconda+pytorch+yolo(ultralytics)】
yolo环境配置
二、labelimg数据集标注
可以参考下面的帖子,不过可能会出现闪退的问题,安装我的流程来吧
2.1 labelimg安装
label闪退最大的可能是python的版本过高,【'win'+R】后输入【cmd】或者打开 anaconda的Anaconda Prompt,在后台输入指令:
或者
conda create --name labelimg python=3.8
进入labelimg环境:
conda activate labelimg
安装labelimg
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
打开labelimg
labelimg
2.2 labelimg使用
labelimg使用方法
三、yolo目标检测训练测试
3.1数据集处理
根据网盘下载文件(可以运行),解压后以pycharm的方式打开
提取码:JptC
标注后的数据集以下面图片的方式整理(文件包中已经全部整理完毕):
3.2目标检测训练
在ultralytics\ultralytics\cfg\datasets中新建一个数据加载文件a-data-myself.yaml【注意改成自己的绝对路径】:
编写代码后保存,代码内容如下:
path: C:/Users/34866/OneDrive/Desktop/ultralytics/yolo-smile#自己的本地绝对路径
train: # train images (relative to 'path') 16551 images- images/train
val: # val images (relative to 'path') 4952 images- images/val
test: # test images (optional)- images/test# Classes
names:0: smile#标签类型
新建一个训练文件train.py,编写后运行注意改成自己的绝对路径】,代码内容如下:
import time
from ultralytics import YOLO# yolo11模型训练:训练模型的数据为'a-data-myself.yaml',轮数为100,图片大小为640,设备为本地的GPU显卡,关闭多线程的加载,图像加载的批次大小为4,开启图片缓存
model = YOLO(r'C:/Users/34866/OneDrive/Desktop/ultralytics/pre-models/yolov8l.pt') # load a pretrained model (recommended for training)
# results = model.train(data='A_my_data.yaml', epochs=100, imgsz=640, device=[0,], workers=0, batch=4, cache=True) # GPU开始训练
# todo A_my_data.yaml请切换为你本地的绝对路径,如果是本地的绝对路径,请填写绝对路径
results = model.train(data=r'C:/Users/34866/OneDrive/Desktop/ultralytics/ultralytics/cfg/datasets/a-data-myself.yaml',epochs=100, imgsz=640, device=[], workers=0, batch=2, cache=True, amp=False) # 开始训练
time.sleep(10) # 睡眠10s,主要是用于服务器多次训练的过程中使用
运行结果如下:
运行后在ultralytics\run\runs\detect生成训练过程与结果:
3.3测试训练结果
新建一个检测文件single_detect.py,编写后运行注意改成自己的绝对路径】,代码内容如下:
from ultralytics import YOLO# Load a model
model = YOLO(r'C:\Users\34866\OneDrive\Desktop\ultralytics\run\runs\detect\train\weights\best.pt') # pretrained YOLOv8n model# Run batched inference on a list of images
results = model(["C:/Users/34866/OneDrive/Desktop/ultralytics/test.jpg"], conf=0.25, iou=0.95) # return a list of Results objects# Process results list
for result in results:boxes = result.boxes # Boxes object for bounding box outputsmasks = result.masks # Masks object for segmentation masks outputskeypoints = result.keypoints # Keypoints object for pose outputsprobs = result.probs # Probs object for classification outputsobb = result.obb # Oriented boxes object for OBB outputsresult.show() # display to screenresult.save(filename="images/resources/result.jpg") # save to disk
下面是一些测试结果:【图片侵权联系删除】