使用YOLO11训练鸟类分类模型
使用YOLO11训练鸟类分类模型
图像分类
图像分类是计算机视觉中最简单的任务,涉及将图像分类为预定义的类别之一。 输出结果是一个单一的类别标签和一个置信分数。
当我们不需要知道图像中对象的位置,只需要知道图像属于哪个类别时,就可以使用图像分类模型来完成任务。图像分类在社会生活中是非常有用的。
环境准备
要进行深度学习模型训练,可以使用GPU或者CPU,但使用GPU效率更高。
我们可以使用Conda准备训练环境。
首先,创建一个新的 Conda 环境。打开终端,运行以下命令
conda create --name ultralytics-env python=3.13 -y
激活新环境:
conda activate ultralytics-env
从 conda-forge 频道安装Ultralytics 软件包。执行以下命令
conda install -c conda-forge ultralytics
如果您在CUDA 环境中工作,最好一起安装 ultralytics
, pytorch
和 pytorch-cuda
以解决任何可能的冲突:
conda install -c pytorch -c nvidia -c conda-forge pytorch torchvision pytorch-cuda=11.8 ultralytics
对于具体需要安装那个CUDA版本,可以使用nvidia-smi
命令查看。
准备数据集
我们这里使用一个包括12种鸟类的数据集,我们不需要知道图片中鸟的具体位置,只需要知道图片中的鸟是哪个类别即可。
这个数据集中的鸟类包括:
家燕 (Barn Swallow)
普通火冠戴菊鸟 (Common Firecrest)
夜莺 (Common Nightingale)
欧亚苍头燕雀 (Eurasian Chaffinch)
欧亚岩燕 (Eurasian Crag Martin)
欧洲金翅雀 (European Goldfinch)
欧洲绿雀 (European Greenfinch)
欧洲黄雀 (European Serin)
家麻雀 (House Sparrow)
西班牙麻雀 (Spanish Sparrow)
西方家燕 (Western House Martin)
白鹡鸰 (White Wagtail)
数据集的混淆矩阵:
部分图片:
开始训练
我们使用ultralytics提供的预训练模型进行训练,
ultralytics提供的预训练分类模型包括以下5种。
Model | size (pixels) | acc top1 | acc top5 | Speed CPU ONNX (ms) | Speed T4 TensorRT10 (ms) | params (M) | FLOPs (B) at 224 |
---|---|---|---|---|---|---|---|
YOLO11n-cls | 224 | 70.0 | 89.4 | 5.0 ± 0.3 | 1.1 ± 0.0 |