我拿VLM跑了100张吊牌,效果还不如传统OCR?

📅 2026/6/26 19:02:48
我拿VLM跑了100张吊牌,效果还不如传统OCR?
VLM火了一年多能看图能理解能对话什么都能干。我拿了100张不同类型的服装吊牌图片用三个开源VLMInternVL2-8B、Qwen-VL-Chat、LLaVA-1.6和两个商用VLMGPT-4o、Claude-3.5-Sonnet做了对比测试跑完数据之后结论很直接纯比字符识别VLM被传统OCR吊打。但VLM在吊牌检测里也不是完全没有位置。实测数据VLM的字符识别准确率差了20多个百分点100张吊牌覆盖了5个品牌、4种版式、3种材质铜版纸、覆膜、烫金。测试任务是从吊牌图片中提取品牌名、尺码、成分比例、洗涤符号文本、条码编号5个字段。传统OCR方案PaddleOCR v4 自定义后处理规则字符级准确率96.2%字段级准确率91.8%平均耗时50ms/张。三个开源VLM平均字符级准确率72.4%字段级准确率63.5%平均耗时3.7秒/张。两个商用VLM平均字符级准确率81.6%字段级准确率74.2%平均耗时2.1秒/张。VLM的典型错误包括“XL”被输出为“XL加大码”而不是单纯的“XL”成分比例“95%棉5%氨纶”变成了“95%棉5%氨纶纤维”多加了一个词同一张吊牌识别两次尺码一次是“M”一次是“Medium”。VLM的优势在于理解语义而不是读取字符但测试中发现VLM有几个传统OCR做不到的能力。传统OCR识别出“100%棉”之后它只知道这些字符是什么不知道这些字符意味着什么。VLM能理解“100%棉”意味着“不含化纤成分”。传统OCR识别出洗涤符号的文本描述“不可漂白”VLM能理解“这个符号表示不能使用含氯漂白剂”。传统OCR输出“40”VLM能输出“这个数字表示最高洗涤温度40℃该产品填充物为单层结构无内胆”。VLM把“读”和“理解”整合在了一起。基于这个特点VLM在吊牌检测中的定位可以是一个“语义校验器”而不是字符识别器。OCR读完之后VLM做三件事成分比例加起来是不是100%有问题的吊牌里有3%的成分标注总和不是100%尺码标注是否和品牌方历史数据一致实测发现2个品牌的标注逻辑有差异洗涤符号描述是否有矛盾比如“不可水洗”和“手洗”同时出现按国标这是冲突的。这3个校验规则如果用传统的if-else写每增加一个品牌就要重新配置一套规则。VLM直接读国标文本品牌历史数据语义校验的泛化能力远好于规则引擎。预标注的价值把人工效率提升了3倍另一个实用场景是预标注。传统OCR只能输出字符不能自动做字段对齐。一张吊牌上有8-10条信息人工标注一张需要5-8分钟。VLM读取吊牌图片后输出结构化JSON虽然准确率只有74.2%但字段结构是对的人工只需要修正错误字符不需要重新录入字段。实测效率从人工10张/小时提升到VLM预标注人工复核40张/小时标注成本降低约60%。有一次VLM输出JSON时把“品牌名”字段放在了“尺码”的位置解析器直接报错——prompt写法太严格反而适得其反。改用字段分行的纯文本格式后问题消失。VLM对“严格格式”的理解跟程序员不一样不要用JSON约束它用宽松格式模糊匹配更靠谱。把VLM当语义层用别当OCR用VLM不适合做“字符识别”适合做“语义校验”和“预标注”。吊牌检测的正确组合是传统OCR读字符96.2%准确率、50msVLM做语义一致性校验不需要重新训练、泛化能力强。如果硬要VML直接替代OCR做字符识别100张里有20张以上会识别错产线根本用不了。