👆点击上方名片关注哟👆
Ultralytics YOLO11 🚀是一款尖端的、最先进的 (SOTA) 模型,它以之前 YOLO 版本的成功为基础,并引入了新功能和改进,以进一步提高性能和灵活性。YOLO11 旨在快速、准确且易于使用,使其成为各种对象检测和跟踪、实例分割、图像分类和姿势估计任务的绝佳选择。
代码:https ://github.com/ultralytics/ultralytics DEMO:https://yolo11.com/
YOLO11的创新点:
增强的特征提取:YOLO11采用改进的主干和颈部架构,增强了特征提取能力,以实现更精确的目标检测和复杂任务性能。
针对效率和速度进行优化:YOLO11 引入了精致的架构设计和优化的训练管道,提供更快的处理速度使得准确性和性能得以平衡。
使用更少的参数获得更高的精度:随着模型设计的进步,YOLO11m 在 COCO 数据集上实现了更高的平均精度(mAP),同时使用的参数比 YOLOv8m 少 22%,从而在不影响精度的情况下提高计算效率。
跨环境适应性:YOLO11可以无缝部署在各种环境中,包括边缘设备、云平台以及支持NVIDIA GPU的系统,确保最大的灵活性。
支持的任务范围广泛:无论是对象检测、实例分割、图像分类、姿态估计还是定向对象检测 (OBB),YOLO11 旨在应对各种计算机视觉挑战。
2.代码复现
2.1.环境设置
要求:python>=3.8&PyTorch>=1.8
本文环境:Anaconda+VScode
新建一个虚拟环境
conda create med
2.2.YOLO安装
在不同环境下
pip install ultralytics
测试代码
yolo predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'
在当前文件夹下/run/detect/predict下就可以看到检测结果
2.3.准备自己的数据集
脑肿瘤检测数据集由核磁共振成像或 CT 扫描的医学图像组成,其中包含有关脑肿瘤存在、位置和特征的信息。
2.3.1.数据集
准备好自己的数据集,这里我使用脑肿瘤数据集。
分为两个子集:
训练集:由 893 幅图像组成,每幅图像都附有相应的注释。
测试集:包括 223 张图像,每张图像都有配对的注释。
将数据集处理为YOLO训练时所需要的格式
datasets\数据集
# ├── train 训练集
# └── images
# └── labels
# └── valid 测试集
# └── images
# └── labels
# └── brain-tumor.yaml 数据集配置文件
3.训练
方法1:本地新建train.py
from ultralytics import YOLO
#加载没有预训练权重的模型架构
model = YOLO("yolov11s.yaml") # 从 YAML 建立新模型
# 训练模型
results = model.train(data="brain-tumor.yaml", epochs=100, imgsz=640)
然后运行train.py文件
python train.py
显示YOLO结构
(可省略)方法2:本地CLI
#使用模型架构文件从头开始训练
yolo detect train data=brain-tumor.yaml model=yolov11n.yaml epochs=100 imgsz=640
(可省略)方法3:Colab(免费GPU)
https://colab.research.google.com/github/ultralytics/ultralytics/blob/main/examples/tutorial.ipynb
predict/val测试验证预测部分可忽略,如果想要保存权重,需要连接谷歌drive。
# 检查当前目录
import os
os.getcwd()
#将训练数据保存到谷歌云盘
from google.colab import drive
drive.mount('/content/drive')
使用TensorBoard作为数据可视化图标
#YOLO11 🚀 logger
logger = 'TensorBoard' # ['Comet', 'TensorBoard']
if logger == 'Comet':
%pip install -q comet_ml
import comet_ml; comet_ml.init()
elif logger == 'TensorBoard':
%load_ext tensorboard
%tensorboard --logdir .
直接使用准备好的数据集进行训练
from google.colab import drive
drive.mount('/content/drive')
# 开始训练并将结果保存到 Google Drive
!python train.py --img 640 --batch 16 --epochs 50 --data coco.yaml --weights yolov5s.pt --project /content/drive/MyDrive/runs/detect --name train
#如果并未自动保存,可通过以下代码进行复制
# !cp -r /content/runs/detect/ /content/drive/MyDrive/YOLO11/
#!yolo detect train data=brain-tumor.yaml model=yolov11n.yaml epochs=50 imgsz=640
这是使用50epoch
训练结束
查看训练结果
tensorboard --logdir runs/detect/train
打开drive就可以看到
训练不足所以精度不是特别高,有时间还是需要多训练些epoch.
4.测试
方法1的测试
新建test.py
# @AI Pluse公众号
#
#确认好训练后的路径以及测试图片的路径
from ultralytics import YOLO
# 下载训练后的模型
model = YOLO("D:\Lina_pro\medical\yolo11_brain_50epoch.pt")
# 使用图片进行目标检测
results = model("D:\\Lina_pro\\medical\\datasets\\brain-tumor\\train\\images\\00056_147.jpg")
results[0].show()
方法2的测试
yolo predict model='D:\Lina_pro\medical\yolo11_brain_50epoch.pt' source='D:\Lina_pro\medical\datasets\brain-tumor\train\images\00058_122.jpg' imgsz=640
方法3的测试
#使用训练后的权重进行测试
!yolo predict model=/content/drive/MyDrive/YOLO11/detect/train/weights/best.pt source='/content/datasets/brain-tumor/train/images/00054_145.jpg'
#将结果复制到云盘指定位置
!cp -r runs/detect/predict /content/drive/MyDrive/YOLO11/
就可以看到
今天的文章就到这里啦,有什么问题可以点击后台进行留言咨询哟~
【PS】过程中可能会遇到的问题及解决
PS1.unzip : 无法将“unzip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1 字符: 1
+ unzip brain-tumor.zip -d D:\Lina_pro\medical\data
+ ~~~~~+ CategoryInfo : ObjectNotFound: (unzip:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
原因分析:虚拟环境没有下载zip指令
# 在conda环境中
conda install -c conda-forge unzip
# 在linux环境中
apt update && sudo apt install unzip
这个错误信息表明在Windows 10操作系统中,Anaconda的某个虚拟环境下找不到unzip命令。unzip是一个常用于解压缩.zip文件的命令行工具,在Linux系统中常见,但在Windows系统中不默认安装。
其他方法:安装第三方软件:可以安装第三方的解压缩工具,如7-Zip,它提供了命令行界面(7z.exe),可以用来解压缩.zip文件。使用Python代码:在Python虚拟环境中,可以使用zipfile或tarfile模块来解压缩.zip文件。安装Windows版本的unzip:有时可以在Windows上安装Linux命令行工具,可以通过Chocolatey包管理器来安装unzip。使用Anaconda的命令行界面:如果Anaconda环境中有相应的包,可以使用Anaconda提供的命令行界面来执行解压缩操作。
别忘了点赞👍+关注✨哟~~