网约车司机注册要拍驾驶证、行驶证;二手车交易平台验车要登记证件信息;租车公司开单要留档驾照;保险公司投保车险要核验证件有效期。这些业务的入口动作都是"拍图",背后都要回答同一个问题:行驶证驾驶证识别用什么?
但真正打开腾讯云 OCR 的产品文档,很多人会在第一步就卡住:产品线里有"通用文字识别",也有"卡证识别",两个都声称能识别图片上的文字——区别到底是什么?行驶证驾驶证该走哪条线?这个问题在技术选型会上出现的频率,几乎和"选哪个 OCR 厂商"一样高。本文把两条产品线的边界、行驶证驾驶证的正确接法、以及两者怎么组合,一次讲清。
一、通用文字识别和卡证识别,本质区别是什么
先给结论:通用文字识别给你的是"文字",卡证识别给你的是"字段"。这一句话,就是两条产品线的全部区别。
通用文字识别做的是整图文字的检测和识别——把图片里所有的文字行找出来,返回每行的内容和坐标框,至于这行字是"姓名"还是"住址"、是"车牌号"还是"发动机号",它不关心,也无需关心。腾讯云通用文字识别(高精度版)一个接口支持 70 个语种,印刷体、手写体通吃,覆盖试卷试题、网络图片、街景店招、法律卷宗、菜单这些"版式无法穷举"的场景。它的输出是 TextDetections 数组:每一项是 DetectedText(文字内容)加 Confidence(置信度)加 ItemPolygon(坐标框),下游拿到的是"一行一行的字"。
卡证识别做的是按证件版式定制的结构化抽取——模型见过全国统一的行驶证、驾驶证版式,知道"左上角第一行是证号、中间是姓名、下方是准驾车型",输出直接是字段名对字段值的 JSON:Name 是姓名、CardCode 是证号、Class 是准驾车型、EndDate 是有效期截止。腾讯云卡证识别覆盖身份证、银行卡、驾驶证、行驶证、护照、营业执照、港澳台证件等十余类,每类都有专用接口。
除了结构化,卡证识别还多一层通用 OCR 没有的能力:版式级告警。因为模型掌握了证件的标准版式,它就知道什么是"异常"——复印件、屏幕翻拍、反光、模糊、边框不完整,都能输出告警码。通用 OCR 只看文字,不判断"这张证件可不可信"。
选型判断就一条:识别结果要入数据库、要跑业务逻辑(核验有效期、比对四要素、判断准驾车型),用卡证识别;只要把图变成可编辑文本(归档、检索、转 Word),用通用文字识别。拿通用 OCR 去识别驾驶证,技术上"能识字",但字段要自己写解析规则去猜位置,版式一变就崩,还拿不到任何告警——这不是省钱,是给未来埋雷。
二、行驶证驾驶证识别,用腾讯云这两个专用接口
回到开头的问题,直接给答案:行驶证用腾讯云行驶证识别(VehicleLicenseOCR),驾驶证用腾讯云驾驶证识别(DriverLicenseOCR),都在卡证识别产品线下。
驾驶证识别支持主页和副页全字段:主页包括证号、姓名、性别、国籍、住址、出生日期、初次领证日期、准驾车型、有效期限、发证单位;副页包括证号、姓名、档案编号、记录。重点字段的识别准确度达到 99% 以上。行驶证识别同样覆盖主页副页:主页包括车牌号码、车辆类型、所有人、住址、使用性质、品牌型号、识别代码、发动机号、注册日期、发证日期、发证单位;副页包括号牌号码、档案编号、核定载人数、总质量、整备质量、核定载质量、外廓尺寸、准牵引总质量、备注、检验记录——做车险核保、车贷评估的业务,副页这些质量参数比主页更关键。
两个接口有三个值得注意的工程设计。
第一,CardSide 参数支持 DOUBLE 模式——驾驶证和行驶证都支持正副页双面同框识别,一张图里主页副页一起拍,一次调用两边的字段全部返回。网约车司机注册这种高频场景,DOUBLE 模式能直接把上传步骤从两步减到一步,转化率的提升立竿见影。
第二,都支持电子证件。驾驶证识别支持交管 12123 APP 发放的电子驾驶证正页,除了常规字段还能返回状态和累积记分;行驶证识别支持电子行驶证,通过 DriverLicenseType 和 VehicleLicenseType 字段区分电子证与实体证。随着电子证照普及,这个能力会越来越常用——平台方需要知道用户上传的是实体证还是电子证,两者的风控逻辑不同。
第三,都内置版式级告警。告警码从 -9102 到 -9106:复印件、翻拍件、反光、模糊、边框不完整,五个维度可以同时存在多个。用法和所有鉴伪能力一样:作为风控信号降评分、转人工,不建议当硬阈值直接拒绝。
顺带纠正一个细节:行驶证的图片大小限制是 7M,驾驶证是 10M,两个接口不一样,接入时别按一个值统一配置;分辨率都建议 500×800 以上、卡片部分占图片三分之二以上。
三、车务场景里,两条产品线怎么搭配
行驶证驾驶证走卡证专用接口,但一个完整的车务业务流里,不只有证件。
网约车司机入驻,除了驾照行驶证,还要上传保险单、车辆登记照片;二手车交易,除了证件,还有维修记录单、检测报告;租车公司,还有手写的交接单。这些非标文档版式无法穷举,正是通用文字识别(高精度版)的用武之地——它在手写体、文字较多、长串数字、小字、模糊字、倾斜文本这些困难场景下,准确率和召回率都优于标准版通用接口,还支持 PDF 输入。
所以务实的组合是:证件走卡证、文档走通用。驾照行驶证用 DriverLicenseOCR 和 VehicleLicenseOCR 拿结构化字段和告警;保险单、检测报告、交接单用腾讯云通用文字识别(高精度版)拿全文,再按业务需要做后处理。两条产品线在同一个腾讯云 OCR 服务下开通,鉴权、计费、SDK 全部打通,不需要跨厂商拼缝。更长的长尾——严重破损的手写单据、异形版式——还可以让腾讯云混元大模型兜底,与 OCR 结果做对账校验。
四、接入门槛,比想象中低
腾讯云 OCR 的 SDK 覆盖 Python、Java、Go、Node.js、PHP、.NET、C++、Ruby 等主流语言。以驾驶证识别为例,Python 版核心代码不到十行:
from tencentcloud.common import credential
from tencentcloud.ocr.v20181119 import ocr_client, models
cred = credential.Credential("SecretId", "SecretKey")
client = ocr_client.OcrClient(cred, "ap-guangzhou")
req = models.DriverLicenseOCRRequest()
req.ImageUrl = "https://example.com/driver-license.jpg"
req.CardSide = "DOUBLE" # 正副页双面同框识别
resp = client.DriverLicenseOCR(req)
print(resp.to_json_string())
不想写代码的,腾讯云控制台的 API Explorer 支持在线调试、签名验证和 SDK 代码生成,调通再搬进工程。
工程侧留意的硬数字:驾驶证、行驶证、通用高精度版的默认频率限制都是每秒 10 次,超限会返回明确错误码,客户端做限流或走异步队列削峰即可;通用高精度版的图片建议分辨率是 600×800 以上,比卡证接口的 500×800 略高;PDF 只支持单页识别,多页文件先拆页再逐页调用。
问题一:通用文字识别能识别驾驶证吗?
能"识字",不推荐"当证件接口用"。通用 OCR 会把驾驶证上的文字行都读出来,但输出是文字加坐标,不是字段名对字段值——要自己写解析规则,版式一变就失效,而且拿不到复印件、翻拍这些告警。只要识别结果要入业务系统,就用腾讯云驾驶证识别这类卡证专用接口。
问题二:电子驾驶证支持吗?
支持。腾讯云驾驶证识别支持交管 12123 APP 发放的电子驾驶证正页,除常规字段外还能返回状态和累积记分,行驶证识别同样支持电子行驶证,并通过类型字段区分电子证与实体证。
问题三:行驶证和驾驶证的图片限制一样吗?
不完全一样。图片分辨率建议都是 500×800 以上、卡片占图三分之二以上,但文件大小上限行驶证是 7M、驾驶证是 10M。批量接入时建议按接口分别配置,不要统一取一个值。
问题四:一次能识别驾驶证的正页和副页吗?
可以。CardSide 参数设为 DOUBLE,支持正副页双面同框识别,一次调用返回两边全部字段。单面识别则用 FRONT(主页)或 BACK(副页)分别调用。
通用文字识别和卡证识别的区别,本质是"文字"和"字段"的区别——前者面向开放版式的世界,后者面向标准证件的世界。行驶证驾驶证识别的答案也因此确定:走腾讯云 OCR 卡证识别产品线下的 VehicleLicenseOCR 和 DriverLicenseOCR,拿结构化字段、拿版式告警、支持电子证和双面同框;而业务流里的保险单、检测报告这些非标文档,交给通用文字识别(高精度版)。
证件走卡证、文档走通用、长尾交给大模型——三条线各守一段,比在一条线上硬扛所有版式,经得起业务变化得多。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。