首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >从算法小白到专家一:基于Claude Code和YOLO目标检测框架的车牌识别模型训练与应用

从算法小白到专家一:基于Claude Code和YOLO目标检测框架的车牌识别模型训练与应用

作者头像
程序员架构进阶
发布2026-05-06 10:04:02
发布2026-05-06 10:04:02
1590
举报
文章被收录于专栏:架构进阶架构进阶

一 摘要

Claude Code最大的好处就是降低了一些专业工作的技术门槛,例如前端开发、算法工程师。让我们不必一切都从零开始学习,而是只要能够描述清楚需求,并具备一定的分析能力,就可以得到大部分所需要的结果。

前面几篇文章我们分别介绍了车牌识别的数据集,以及ollama和claude code的安装及使用方法,接下来我们将使用Claude Code来训练一个车牌识别模型,在前面下载的CCPD数据集上进行训练及测试。

二 YOLO框架

YOLO 是一个经典的计算机视觉目标检测算法系列,名字 "You Only Look Once" 生动地体现了它的核心优势——只需一次"看"图像,就能同时预测出所有物体的类别和位置。随着系列的演进,目前主流的 YOLOv5、v8 到 v11 等版本,都可以通过强大的 ultralytics Python 库来统一调用,极大地降低了使用门槛。

三 使用Claude Code的训练过程

3.1 输入目标

打开Claude Code,选择minimax-m2.5:cloud模型,在对话框中输入:

代码语言:javascript
复制
python 怎样用yolo训练车牌识别模型?

由于我本地已经有了CCPD数据集,接下来输入如下:

代码语言:javascript
复制
我本地已经有CCPD数据集,现在需要基于yolo训练一个车牌识别模型 

Claude Code给出的回答如下:

实际上是Claude Code会执行shell命令,到你的磁盘上搜索包含CCPD的目录,当然中间需要你确认并对访问目录授权。其实如果要简化步骤,你可以直接输入数据集已下载的所在目录,这样可以简化操作。

3.2 找到数据集所在目录,探测+识别

找到CCPD数据集所在目录后,提示输入,进行检测+识别

可以看到,其实Claude Code具备分布思考、提示与执行能力,并且可以看到中间分析过程的一些提示词痕迹。

基于CCPD数据集训练的过程被分为三步:

1.将CCPD数据集转换为YOLO格式

2.创建YOLO数据集配置

3.训练YOLO检测模型

3.3 将CCPD数据集转换为YOLO格式

1、Claude Code需要先理解CCPD文件名的格式,然后编写转换脚本。在这一步中,实际执行的是Python的Image.open()方法,得到图片属性如下:图像尺寸是720x1160。文件名中 352&516_448&547 是边界框坐标(左上x&y_右下x&y)

2、编写数据转换脚本。在编写过程中可能还会根据实际情况运行调试,例如当目录被占用等情况

这一步执行完,会将CCPD数据转换为YOLO格式(txt标注文件),每个图片对应一个txt:

代码语言:javascript
复制
# 格式: class_id x_center y_center width height (归一化0-1)
  0 0.5 0.5 0.3 0.2
  创建 data.yaml:
  path: /path/to/ccpd_dataset
  train: images/train
  val: images/val
  names:
    0: license_plate

3、执行过程中也可能会提示安装依赖,如果你没有安装过opencv的话:

代码语言:javascript
复制
安装依赖
  pip install ultralytics opencv-python pillow

转换结果:

3.4 训练模型

Claude Code会编写训练脚本(train_yolo.py),并通过python3 train_yolo.py执行,输出如下:

代码语言:javascript
复制
⏺ Write(train_yolo.py)
  ⎿  Wrote 21 lines to train_yolo.py
       1 #!/usr/bin/env python3
       2 """YOLO车牌检测模型训练"""
       3 from ultralytics import YOLO
       4
       5 # 使用YOLOv8n(nano)模型最快的训练
       6 model = YOLO('yolov8n.pt')
       7
       8 # 训练
       9 results = model.train(
      10     data='ccpd_yolo/data.yaml',
     … +11 lines (ctrl+o to expand)
  ⎿  API Error: Content block not found
⏺ Bash(python3 train_yolo.py)
代码语言:javascript
复制
⏺训练已在后台开始运行。
 训练参数:
 - 模型: YOLOv8n (轻量快速)
 - Epochs: 50
 - 图像大小: 640
 - Batch: 16
 
你可以用以下命令查看进度:
 #查看训练日志
 tail -f /private/tmp/claude-501/-Users-develop-learn-gitcodes-ai-openclaw-wechat/a2354418-db1f-474d-9faf-dd0c39f1ce26/tasks/b7zd7f24r.output
 
训练完成后模型保存在:
runs/detect/plate_detect/weights/best.pt

之后就是漫长的训练过程(大约1~3个小时),可能会提前中断。出现这种情况,要求继续训练就可以了。或者如果感觉精度达到要求,那么也可以直接使用当前的训练结果。

3.5 推理测试

在Claude Code中选择用测试模型进行推理,Claude Code会生成测试脚本并执行(使用CCPD的test下的测试数据集):

3.6 结果不满,继续训练

上面的训练实际上只跑了3轮,不太符合预期,我们可以让Claude Code继续执行训练:

代码语言:javascript
复制
❯ 打开结果所在目录                                                                                                         
⏺ Bash(open /Users/lijingyong/develop/learn/gitcodes/ai/openclaw-wechat/inference_output/results)
  ⎿  (No output)
  ⎿  API Error: Content block not found
⏺ 已打开结果目录,你可以查看检测后的图片。
✻ Crunched for 1m 12s · 1 shell still running
❯ 置信度是否有点低?能否达到90%以上                                                                                        
⏺ 当前置信度约84-88%,可以通过以下方式提升:
  1. 继续训练更多epoch (推荐)
  模型已训练4个epoch,精度还有提升空间。继续训练:
  from ultralytics import YOLO
  model = YOLO('runs/detect/plate_detect/weights/last.pt')
  model.train(data='ccpd_yolo/data.yaml', epochs=50, resume=True)
  2. 调整推理置信度阈值
  降低阈值可检测更多车牌(但可能增加误检):
  model.predict(..., conf=0.3)  # 默认0.5
  3. 使用更大模型
  用yolov8s或yolov8m替代yolov8n:
  model = YOLO('yolov8s.pt')  # small
  需要我继续训练模型吗?
✻ Worked for 40s · 1 shell still running
❯ 继续训练,不要中断

这样,模型就会继续训练,等待训练完成即可。

YOLO目标检测评估指标介绍

YOLO目标检测的结果评估通常涉及4个指标:Precision(精确率),Recall(召回率),mAP50,mAP50-95。这几个指标的概念简要介绍如下:

1. Precision(精确率) 定义:预测为正例中真正例的比例

计算方式: Precision = TP / (TP + FP) - TP(True Positive):正确检测到的车牌

- FP(False Positive):误检为车牌的错误检测 衡量:模型预测的准确性有多高 优点:高Precision意味着误检少

缺点:可能漏检较多(保守预测)

2. Recall(召回率) 定义:实际正例中被正确检测到的比例

计算方式:Recall = TP / (TP + FN)

- FN(False Negative):漏检的车牌 衡量:找全车牌的能力

优点:高Recall意味着漏检少

缺点:可能误检增多(激进预测)

3. mAP50(Mean Average Precision @ IoU=0.5)

定义:IoU阈值为0.5时的平均精度

IoU(Intersection over Union):交并比,预测框与真实框的交集/并集 IoU = (预测框 ∩ 真实框) / (预测框 ∪ 真实框)

衡量:检测框与真实框重叠程度≥50%时视为正确

优点:标准宽松,适合实际应用

缺点:无法精确评估定位精度

4. mAP50-95(Mean Average Precision @ IoU=0.5~0.95) 定义:IoU从0.5到0.95(步长0.05)的平均精度

计算方式: mAP50-95 = (AP@50 + AP@55 + ... + AP@95) / 9

衡量:更严格的检测精度,要求检测框与真实框高度重合

优点:全面评估检测和定位能力

缺点:标准严格,数值通常较低

推理测试时,还提到了置信度指标,与上述四个指标的关系如下:

五 总结

这是我们作为算法小白跑的第一个模型。由此可见,Claude Code确实非常方便也很强大。不仅仅是对大模型的简单包装,更是可以改变我们日常工作模式,大幅提升工作效率的利器。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员架构进阶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档