手把手教你如何用YOLO训练一个自己的识别验证码模型

ZKY

https://github.com/ZKY-DW-Wait-me/YOLO-CAPTCHA

一、 环境准备

1. 安装 Miniconda

  1. 访问 Miniconda 下载页面
  2. 找到 Quickstart install instructions,选择 Windows PowerShell
  3. 在 PowerShell 中依次复制并运行以下命令进行一键安装:
1
2
3
Invoke-WebRequest -Uri "https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe" -OutFile ".\miniconda.exe"
Start-Process -FilePath ".\miniconda.exe" -ArgumentList "/S" -Wait
del .\miniconda.exe

2. 检查显卡驱动

打开一个新的 PowerShell 窗口,运行以下命令查看 CUDA 版本(例如你的版本为 13.1):

1
nvidia-smi

二、 创建虚拟环境

打开 Anaconda PowerShell Prompt,依次执行以下步骤:

1. 接受 Anaconda 条款

若直接创建环境提示授权问题,请先运行:

1
2
3
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/msys2

2. 创建并激活环境

创建 Python 3.12 虚拟环境:

1
2
conda create -n yolo_captcha python=3.12 -y
conda activate yolo_captcha

[!note]
激活后,命令行左侧的 (base) 会变为 (yolo_captcha)


三、 安装核心依赖

根据 PyTorch 官网建议及你的显卡配置进行安装。

1. 安装 PyTorch

输入以下命令强制安装指定版本(对应 CUDA 12.8,如需其他版本请参考官网):

1
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128 --force-reinstall

2. 安装本地库与验证

安装 YOLO 核心库,并验证显卡是否可用:

1
2
pip install ultralytics
python -c "import torch; print(torch.cuda.is_available())"

[!success]
如果返回 True,则代表显卡驱动与 PyTorch 版本匹配成功。


四、 数据集处理(数据集链接在文章末尾)

请确保数据集存放路径中不含中文或空格

1. 划分数据集

在数据集目录下运行脚本,生成 ImageSets/Main/ 文件夹(含 train.txt, val.txt, test.txt):

1
python split.py

2. 格式转换 (VOC 转 YOLO)

执行转换脚本,将 XML 标签转换为 YOLO 格式:

1
python voc2yolo.py
  • 动作: 脚本会将 JPEGImages 中的 .png 转为 images/ 下的 .jpg
  • 动作: 脚本会将 Annotations 中的 XML 标签转为 labels/ 下的 .txt
  • 确认: 检查 D:\YOLO\labels\train\ 下的 TXT 文件,内容应类似 0 0.5123 0.4123...

五、 编写配置文件

split.py 同级目录下创建以下两个文件。

1. 配置文件 captcha.yaml

1
2
3
4
5
6
7
path: D:/YOLO
train: images/train
val: images/val
test: images/test
names:
0: word
1: icon

2. 训练脚本 start_train.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
from ultralytics import YOLO
import torch

if __name__ == '__main__':
# 加载模型 (n为微模型)
model = YOLO("yolo11n.pt")

# 开始训练
results = model.train(
data="captcha.yaml",
epochs=100,
imgsz=640,
batch=32,
device=0, # 使用 GPU
workers=4,
project="captcha_project",
name="v1_5060_run"
)

六、 执行训练

1. VS Code 环境配置

  1. 使用 VS Code 打开项目文件夹。
  2. Ctrl + Shift + P,输入 Python: Select Interpreter
  3. 选择包含 yolo_captcha 字样的环境路径。

2. 启动训练

Anaconda PowerShell Prompt 中定位到目录并运行:

1
2
3
4
d:
cd YOLO
conda activate yolo_captcha
python start_train.py

附录:低配/无显卡模式(CPU 训练)

若显卡不支持或驱动有问题,可使用以下 start_train.py 配置进行 CPU 训练:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from ultralytics import YOLO

if __name__ == '__main__':
model = YOLO("yolo11n.pt")

results = model.train(
data="captcha.yaml",
epochs=100,
imgsz=640,
batch=8,
device='cpu', # 强制指定 CPU
workers=0,
project="captcha_project",
name="v1_cpu_run"
)

运行命令:python start_train.py
等待训练成功,5060 8G跑得有点慢,有没有佬友能后来居上超过先训练完的 :distorted_face:
训练结果

数据集链接:
访问 点选验证码数据集(目标检测数据集+图标相似度数据集
数据集来源Github,感谢开源贡献

  • 标题: 手把手教你如何用YOLO训练一个自己的识别验证码模型
  • 作者: ZKY
  • 创建于 : 2026-02-10 22:50:00
  • 更新于 : 2026-02-10 23:38:21
  • 链接: https://blog.zky-dw.top/手把手教你如何用YOLO训练一个自己的识别验证码模型/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。