首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >行驶证识别系统通过AI技术解决拍照识字难题,自动识别行驶证信息,提升效率与准确性

行驶证识别系统通过AI技术解决拍照识字难题,自动识别行驶证信息,提升效率与准确性

原创
作者头像
中科逸视OCR
发布于 2026-11-12 18:22:46
发布于 2026-11-12 18:22:46
120
举报

二手车行的柜台前,销售一手举着客户的行驶证,一手在键盘上戳。

戳到“车辆识别代号”那一栏就卡住了——17 位字母和数字挤成一串,念都念不顺,更别说敲。好不容易敲完,回头核对,第 7 位的“8”打成了“B”。

这类返工每天都在发生。行驶证巴掌大一张,正页副页加起来几十个字段:号牌号码、车辆类型、所有人、住址、使用性质、品牌型号、车辆识别代号、发动机号码、注册日期、发证日期;副页还有档案编号、核定载人数、总质量、整备质量、外廓尺寸、检验记录……

人工抄一遍,准确率很大程度上取决于抄的人当天睡没睡好。

所以“拍张照自动填表”这件事,听着简单,做起来一点都不简单。行驶证识别系统就是把一张手机随手拍的行驶证,变成能直接进数据库的字段。

下面拆开讲讲,它到底在忙什么。

先搞清楚:为什么“拍照识字”这么难

很多人对 OCR 的印象还停留在扫描仪时代:纸放平、光打匀、字印得规规矩矩,机器一扫就出字。

现实里的照片不长这样。三个麻烦绕不过去:

  • 歪。 手持拍摄,十张里有八张是斜的,仰拍俯拍还会把矩形拍成梯形。
  • 亮。 行驶证外面那层塑封膜,遇上顶灯就是一片白花花的光斑,正好压在字上。
  • 像。 VIN 码里“0”和“O”、“1”和“I”、“8”和“B”、“5”和“S”,在低分辨率下几乎是同一个形状。

再叠加折痕、污渍、红章压字,以及一张堆满杂物的办公桌当背景。

一句话:不是机器不认字,是照片太不体面。

技术原理:一条五段的流水线

整套流程可以理解成一条流水线,每一段都在替下一段“擦屁股”。

第一段:先把图治好

系统拿到照片,不急着认字,先修图。

  • 找边、掰正。 算法先定位行驶证的四个角点,再算出一个透视变换矩阵,把梯形、平行四边形统统拉回标准矩形。数学上讲,就是把任意四边形的四个顶点映射到目标矩形的四个顶点,解出 8 个参数,再逐像素重采样。通俗点说:证件被拍歪 45 度,也能给你摆正。
  • 压掉反光。 塑封膜的光斑属于高频干扰,用自适应滤波、频域处理一类手段压下去,让被盖住的笔画重新露出来。
  • 调亮度。 暗光、逆光、过曝,靠直方图均衡化一类方法把灰蒙蒙的一块拉开层次。
  • 补细节。 糊成一片的图,用超分辨率、生成式模型去“重建”笔画边缘。注意是重建——根据上下文推断这里应该是什么形状,不是凭空变出字来。

这一步做完,一张“手机随手拍”才勉强够格当“扫描件”用。相当于给证件做了一次正骨加医美。

第二段:找到每一块信息在哪

行驶证是固定版式,但字段排得密,正页副页还不一样。

老办法是模板匹配:预先存一张标准版式的图,拿它去照片上“对位置”。问题是一旦证件偏一点、折一下、版本换一代,模板就废了。

现在用的是深度学习目标检测。模型不整张图乱扫,而是像人眼一样,先把“号牌号码”“所有人”“车辆识别代号”“发动机号码”“注册日期”这些字段一块块框出来,输出每个框的坐标。同时判断这是正页还是副页——这一步很关键,正副页都有“号牌号码”,搞混了后面全乱。

难点在红章。签发机关的印章经常压在文字上,模型得把文字区域和印章笔画分开,不然识别出来就是一团墨。

第三段:认字,重点在“长得像”

框出来了,接下来才是传统意义上的 OCR。但现在的做法,和“一个字一个字切开来认”已经不一样了。

主流方案是 CRNN 加 CTC:卷积层负责看笔画的形状、粗细、纹理;循环层负责看这一串字符的前后关系;CTC 负责解决“图片宽度和字符数量对不上”的对齐问题。

前后关系为什么重要?因为单个“0”和“O”确实难分,但把它放回“BJ7204”这种上下文里,机器就有了语感。就像你看到“京CAA966”,不会怀疑那个 0 是字母 O。

针对行驶证,还有几处专项优化:

  • 17 位 VIN 码、长串发动机号是字母数字混合的连续编码,用专门的样本集反复训练过;
  • 国标规定 VIN 不使用字母 I、O、Q,本来就是为了避开和 1、0 混淆——机器知道这条规则,识别时就能反向排除;
  • 不同版本行驶证的印刷字体差异,也会被拿来当特征。

说白了,AI 不是天生会认字,是被几百万张歪的、糊的、反光的照片一点点喂出来的。

第四段:读懂这行字该填哪个格子

认出来的是一堆散落的文本,机器还不知道“这段是车主住址”还是“这段是发证机关”。

这一步交给自然语言处理:实体抽取、字段映射,把零散文字归到预设字段上。住址经常很长、跨行、中间夹着省市区,需要按语义拼回去;检验记录是一串日期,要拆成一条条记录。

做完这步,输出的就不再是“一段文字”,而是“一组字段”。

第五段:自己给自己挑错

这是最容易被忽略、但决定能不能真用的一步。

系统内置一套业务规则,对结果做合理性检查:

  • VIN 是不是 17 位,字符有没有落在禁用集合里;
  • 日期格式对不对,注册日期会不会晚于发证日期;
  • 号牌号码的位数、字母位置符不符合规则;
  • 每个字段给出一个置信度分数,分数低的自动标出来,交给人工复核。

到这儿,最终产物是一份 JSON:车牌、VIN、车主、注册日期、检验有效期,一项对一项。业务系统直接拿去入库,不用人再抄一遍。

它到底能干什么

  • 正副页全字段。 正页十项、副页的档案编号、核载、检验记录一起识别,也支持电子行驶证截图。
  • 拍得丑也能认。 倾斜、逆光、阴影、折痕、轻微磨损都能扛,用户不用刻意摆正对齐。
  • 多版本兼容。 2013 版、2017 版以及各地现行版式,自动判断,不用手动选模板。
  • 直接出结构化数据。 不是给你一张截图或一大段文字,是拆好字段的数据,能直接填表。
  • 带置信度。 可疑字段标出来,高分放行、低分复核,效率和风险自己平衡。
  • 响应快。 单次识别毫秒级,扛得住高并发。
  • 能本地部署。 支持私有化和 SDK 集成,车辆信息、车主住址这类敏感数据可以不出内网。

谁在用

  • 保险。 投保时客户上传行驶证,车辆档案自动回填,省掉手打 17 位 VIN;查勘员在现场拍一张,车架号、车型、注册日期直接进定损单。
  • 汽车金融与二手车。 车贷、融资租赁、车辆抵押、估值,第一步都是采集车辆登记信息。行驶证一拍,几分钟的抄录变成几秒钟,配合规则校验还能筛出材料异常。
  • 网约车、租车、货运平台。 司机入驻、车辆入库,一天几百上千份资料。靠人工审,审到后面眼睛都花了。
  • 交管与政务服务。 窗口办理、路面查验、年检,车辆信息快速采集,少让群众在窗口前干等。
  • 物流车队。 几百台车的台账建档、年检到期提醒,批量识别比翻纸质档案快得多。

最后

行驶证识别听起来像个不起眼的小功能,但它面对的是现实世界最难缠的部分:人会拍歪、会手抖、会把证件塞在钱包里磨出折痕。

技术做得好的标志,往往不是“多厉害”,而是“多没存在感”——用户拍一下,信息就填好了,谁也不会去想背后跑了几个模型。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

目录
  • 先搞清楚:为什么“拍照识字”这么难
  • 技术原理:一条五段的流水线
  • 它到底能干什么
  • 谁在用
  • 最后
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档