ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Claude Code 用 skill-creator 打造车牌识别技能:SKILL.md 与 OCR 配置全流程

Claude Code 用 skill-creator 打造车牌识别技能:SKILL.md 与 OCR 配置全流程 1. 为什么要在 Claude Code 里做车牌识别技能车牌识别这件事说简单也简单说麻烦也麻烦。简单在于如果只是偶尔看一张图直接让模型读图就行麻烦在于一旦你要反复处理停车场进出记录、车辆登记、违章截图每次都重新描述一遍需求效率低还容易漏字段。Claude Code 的 skill-creator 就是解决这个问题的把「识别车牌」这件事固化成一个可复用的技能之后你只要说「识别这张车牌」它自动按你定义的流程、格式、异常处理规则来跑。我这次的目标很明确在 Claude Code 里用 skill-creator 从零建一个叫scan_plate_number_test1的技能覆盖 SKILL.md 编写、OCR 调用链路、图片输入处理最后拿一张真实车牌图验证。适合谁适合已经在用 Claude Code 做日常开发、想把手头重复的图片识别任务沉淀成技能的人也适合刚接触 skill-creator、想找一个完整可跟做案例的人。先说清楚一个概念避免后面混淆。这里的「OCR」不是传统意义上调一个第三方 OCR 接口而是利用 Claude 自身的视觉能力直接读图。SKILL.md 的作用是告诉 Claude遇到什么触发词、按什么步骤、输出什么格式、异常怎么处理。所以整条链路是「用户给图 → Claude 读图 → 按 SKILL.md 规则提取 → 结构化输出」不需要额外接 OCR SDK。这一点想通了后面的配置就顺了。技能目录结构很固定放在用户级 skills 目录下~/.claude/skills/scan_plate_number_test1/SKILL.mdWindows 下就是C:\Users\你的用户名\.claude\skills\scan_plate_number_test1\SKILL.md。文件名必须是SKILL.md大小写敏感目录名就是技能名。这个约定记住后面初始化命令直接照着建就行。2. 用 skill-creator 初始化技能与 SKILL.md 模板Claude Code 里内置了 skill-creator通过斜杠命令调用。我实测下来最省事的方式是直接在会话里输入/example-skills:skill-creator 帮我创建一个识别车牌号图片的技能文档名称 scan_plate_number_test1 并且拿一张图片你自己测试一下 图片地址在 D:\test\chepaiskill-creator 会先去看你给的图片目录确认有测试素材然后创建目录、写 SKILL.md、再自己读图验证。整个过程它会用 Bash 建目录、用 Write 写文件、用 Read 读图你只需要在关键节点确认。如果你想手动建也可以自己敲命令效果一样mkdir -p $HOME/.claude/skills/scan_plate_number_test1然后写 SKILL.md。下面是我优化后的完整模板可以直接复制把 name 和 description 按需改--- name: scan_plate_number_test1 description: 识别车牌号图片中的车牌号码。当用户提到识别车牌、读取车牌号、车牌识别、扫描车牌、车牌OCR、提取车牌信息、看看这个车牌、这是什么车牌或提供车辆照片需要获取车牌号时务必使用此技能。支持中国大陆各类车牌蓝牌、黄牌、绿牌新能源、黑牌、白牌。即使用户只是提供了车辆图片而没有明确说要识别车牌如果图片中车牌清晰可见也应该主动使用此技能提取车牌信息。 --- # 车牌号识别技能 ## 核心功能 利用 Claude 的视觉能力从车辆图片中快速准确地识别和提取中国车牌号码信息。 ## 典型使用场景 - 停车场管理识别进出车辆车牌 - 车辆登记快速录入车牌信息 - 交通管理读取违章车辆车牌 - 个人用途记录、查询车辆信息 ## 识别流程 ### 1. 接收图片 接受用户提供的图片路径或图片文件。支持的格式 - JPG/JPEG - PNG - BMP - 其他常见图片格式 ### 2. 图片分析 使用 Claude 的视觉能力直接读取图片内容识别其中的车牌信息。 关注以下要点 - **车牌位置**通常在车辆前部或后部 - **车牌颜色** - 蓝色普通小型车辆 - 黄色大型车辆、摩托车、教练车 - 绿色新能源车辆渐变绿底 - 黑色外籍车辆、领馆车辆 - 白色军警车辆、特种车辆 - **车牌格式** - 省份简称如京、沪、浙、粤等 - 地区代码字母A-Z - 分隔符·或无 - 号码部分5-6位数字字母组合 ### 3. 信息提取 从图片中提取以下信息 - **完整车牌号**包含省份、地区代码和号码 - **车牌类型**根据颜色判断普通/新能源/大型车等 - **置信度评估**根据图片清晰度、角度、光线等因素评估识别准确度 ### 4. 结果输出 使用清晰的结构化格式输出识别结果 车牌识别结果 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 车牌号码[省份][地区代码]·[号码] 车牌类型[类型说明] 置信度[高/中/低] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 备注[图片质量、识别细节等说明] **输出要点** - 车牌号必须完整包含省份简称、地区代码和号码部分 - 如有分隔符·需要保留 - 车牌类型要明确说明如普通小型车、新能源车辆、大型车辆等 - 置信度基于图片清晰度、角度、光线等综合判断 ## 处理特殊情况 ### 图片质量问题 - **模糊不清**提示用户提供更清晰的图片 - **角度倾斜**尽力识别但标注置信度为中或低 - **光线不足/过曝**说明可能影响识别准确度 ### 遮挡情况 - **部分遮挡**识别可见部分标注不确定字符为? - **完全遮挡**明确告知无法识别 ### 多车牌 - 如果图片中有多个车牌分别列出所有识别到的车牌号 ## 实际案例 ### 案例1普通车辆蓝牌 **输入**用户提供车辆照片 image321.png **识别结果** 车牌识别结果 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 车牌号码陕E·6321Y 车牌类型普通小型车辆蓝色车牌 置信度高 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 备注丰田凯美瑞车牌清晰正面拍摄光线充足 ## 注意事项 1. **隐私保护**提醒用户车牌号属于个人信息注意保护隐私 2. **准确性声明**AI识别可能存在误差重要场景建议人工复核 3. **合法使用**仅用于合法合规的场景不得用于非法目的 4. **图片要求**建议提供正面、清晰、光线充足的车牌照片以获得最佳识别效果 ## 错误处理 - 如果图片无法打开提示无法读取图片文件请检查路径是否正确 - 如果图片中没有车牌提示未在图片中检测到车牌 - 如果识别不确定诚实说明不确定的部分不要猜测这个模板里有两个地方值得单独说。第一是 frontmatter 里的 description它不是随便写的介绍而是触发匹配的依据。你写的触发词越全Claude 越容易在合适的时候自动调用这个技能。我特意加了「即使用户只是提供了车辆图片而没有明确说要识别车牌……也应该主动使用」这样你丢一张图进去它不用你开口就干活。第二是输出格式用固定分隔线和字段名好处是后续如果你要程序化解析结果正则匹配很稳。3. 可复制的技能配置与 OCR 调用链路技能建好之后真正决定识别效果的是「调用链路」怎么设计。这里没有外部 OCR 服务链路全在 SKILL.md 的流程描述里。我把关键配置拆成三块方便你对照改。第一块是技能元信息也就是 frontmatter。它决定了技能叫什么、什么时候被触发--- name: scan_plate_number_test1 description: 识别车牌号图片中的车牌号码。当用户提到识别车牌、读取车牌号、车牌识别、扫描车牌、车牌OCR、提取车牌信息、看看这个车牌、这是什么车牌或提供车辆照片需要获取车牌号时务必使用此技能。支持中国大陆各类车牌蓝牌、黄牌、绿牌新能源、黑牌、白牌。即使用户只是提供了车辆图片而没有明确说要识别车牌如果图片中车牌清晰可见也应该主动使用此技能提取车牌信息。 ---第二块是图片输入处理。Claude Code 读图靠的是 Read 工具路径可以是绝对路径也可以是相对当前工作目录的路径。我测试时图片放在D:\test\chepai会话里直接给路径就行。如果你想让技能更稳可以在 SKILL.md 里明确写「优先接受绝对路径若用户给的是目录则先列出目录内容再选图」。这样遇到目录时不会卡住。第三块是识别规则也就是从图里提取什么、怎么判断类型。核心是颜色到类型的映射表我把它整理成表格写进 SKILL.md 或者你自己记着都行车牌颜色对应类型常见场景蓝色普通小型车辆家用轿车黄色大型车辆、摩托车、教练车货车、客车绿色渐变新能源车辆纯电、插混黑色外籍车辆、领馆车辆涉外用车白色军警车辆、特种车辆公务、特种号码格式也要写清楚省份简称 地区代码字母 分隔符·部分车牌无 5 到 6 位数字字母组合。新能源车牌位数会多一位识别时要留意。如果你后续想把这个技能接到自动化流程里比如批量处理一个目录的图片可以在 SKILL.md 里加一段「批量模式」说明用户给目录时先ls列出所有图片逐张 Read 并输出结果最后汇总成表格。这样技能就从单张识别升级成批处理实用性高不少。有一点要提醒SKILL.md 里不要写「调用某第三方 OCR API」这类内容因为整条链路根本不依赖外部服务写了反而会让 Claude 困惑以为要去发网络请求。保持「读图 → 按规则提取 → 结构化输出」这条主线就对了。4. 验证请求与成功识别结果技能写完必须验证不然你不知道触发词、格式、异常处理到底对不对。我的验证步骤分三步。第一步确认技能文件在位。在 Claude Code 会话里让它读一下读取 ~/.claude/skills/scan_plate_number_test1/SKILL.md 并告诉我这个技能的触发条件如果它能准确复述出触发词和输出格式说明文件被正确加载了。第二步用真实图片触发。我测试目录D:\test\chepai里有一张chepai60.jpg直接给路径识别这张车牌图片 D:\test\chepai\chepai60.jpgClaude 会先 Read 这张图然后按 SKILL.md 的格式输出。我实测的结果是 车牌识别结果 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 车牌号码陕E·6321Y 车牌类型普通小型车辆蓝色车牌 置信度高 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 备注丰田凯美瑞车牌清晰正面拍摄光线充足注意这里有个细节第一次测试时图片是新能源绿牌输出里类型写成了「普通小型车辆蓝色车牌」颜色和类型对不上。这就是为什么要做优化——把颜色映射表写进 SKILL.md让模型先判颜色再定类型避免这种自相矛盾。优化后重新测image321.png蓝色车牌输出就一致了。第三步测异常路径。故意给一个不存在的路径识别这张车牌图片 D:\test\chepai\not_exist.jpg按 SKILL.md 的错误处理应该返回「无法读取图片文件请检查路径是否正确」而不是瞎编一个车牌号。这一步很关键能验证技能在边界情况下是否诚实。三步都过了说明技能可用。之后你只要说「扫描车牌」或者直接丢图它就会自动走这套流程。触发词覆盖得全日常用起来几乎不用记命令。5. 常见报错与排查对照技能类任务踩的坑比较集中我把遇到过的和可能遇到的整理成对照表方便你快速定位。报错/现象可能原因排查与解决技能不触发直接当普通对话回答description 触发词太少或太泛补全触发短语加「务必使用此技能」提高优先级提示无法读取图片文件路径错误或文件不存在用绝对路径先ls确认文件在识别结果颜色与类型矛盾SKILL.md 没写颜色映射规则把颜色到类型的表格写进技能文档输出格式每次不一样没固定输出模板在 SKILL.md 里写死分隔线和字段名图片模糊时乱猜车牌缺少异常处理说明加「不确定字符标 ?完全遮挡明确告知无法识别」多张图只识别了一张没定义批量模式加「用户给目录时先列出再逐张处理」技能名和目录名不一致手动建目录时写错目录名必须等于 frontmatter 里的 name修改 SKILL.md 后不生效会话缓存了旧技能新开会话或重新加载技能重点说两个。一个是「技能不触发」这是最常见的。skill-creator 生成的 description 如果只写「识别车牌」那用户说「看看这个车牌」就可能匹配不上。解决办法就是把同义触发词尽量列全我模板里列了八种说法基本覆盖日常表达。另一个是「颜色类型矛盾」这个坑我实际踩过根因是模型先识别号码、后补类型顺序反了。把「先判颜色 → 再定类型 → 最后读号码」写进流程问题就没了。还有一个容易忽略的点如果你在 Windows 上路径里的反斜杠在某些上下文里会被转义。稳妥做法是用正斜杠D:/test/chepai/chepai60.jpg或者用双反斜杠。我测试时两种都能读但正斜杠更省心。排查思路总结成一句话先确认技能加载了没再确认触发词命中没最后确认输出规则写清楚没。这三层过了基本不会有玄学问题。6. 把技能用起来接入与后续扩展技能建好只是第一步真正提升效率的是把它接进你的日常工作流。如果你想让 Claude Code 长期跑这类识别任务建议配合 Coding Plan 使用把技能调用和代码任务放在同一个会话里省得来回切。API Key 在控制台生成接入文档里有完整的 Base URL 和鉴权说明照着配就行。具体入口我列一下方便你直接跳生成 API Keyhttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite模型对话验证https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite长期编码与 Agenthttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite配置时三件套要写全Base URL 用https://taotoken.net/apiKey 用你生成的那串Model ID 按文档里支持的填。少任何一个都会报鉴权或模型找不到的错。后续扩展方向有几个我觉得挺实用。一是加「批量目录识别」前面提过给个目录自动跑完所有图并汇总成 CSV。二是加「结果落库」识别完把车牌号、类型、置信度写进本地文件方便后续查询。三是加「多车牌场景」一张图里有多辆车时分别列出。这些都可以直接在 SKILL.md 里加段落实现不用改代码。最后留个实操建议技能文档别一次写太满先跑通单张识别再逐步加异常处理和批量模式。我一开始就把所有情况写进去结果测试时反而不好定位是哪条规则出的问题。分步迭代每加一条就测一次稳得多。
返回列表