车架号智能识别

发布时间:2020-05-01 浏览次数:128

本期为大家呈现的是获得全国应用统计专业学位研究生案例大赛二等奖的项目

                                                                  作者:唐涵、徐景怡、杨蕾

 

正文: 

一、背景


 

相信大家看到我们的项目标题或许会问:什么是车架号?车架号是指车辆识别号码,即VehicleIdentification Number,简称VIN,是一组由十七个英文字母或数字组成,用于汽车上的独一无二的号码。车辆识别号码通过排列组合,可以使同一车型的车辆在30年内不会发生重复现象,因此被称为汽车的身份证,它涵盖了车辆的生产商、年代、车型、引擎、底盘序号及生产批次等重要信息。

由于车架号的重要性,在车辆的制造、销售、车检、保养、维修、保险、二手车交易及交通事故处理中,相关部门均需要录入车架号,即VIN码信息。

随着全国机动车保有量的飞速增长和业务量的日益增多,传统的手工录入车架号的方式不仅效率低下,且浪费时间,同时由于字迹不规范带来的识别错误也时有发生,所以如何准确高效地识别车辆的VIN,越来越成为上述各相关部门的迫切需求。

近几年来,随着人工智能和大数据的高速发展,利用智能化识别技术,在电脑端或手机端直接对车架号进行识别,让车架号的识别从传统的人工方式中解脱出来,变得更为快捷、便利和准确的愿景已经渐渐成为现实。本项目即车架号智能化识别系统就是我们团队对于这一美好愿景的智能化探索,同时也是一次受益良多的实践机会。我们深信:在效率至上,体验为王的互联网时代,在车辆的销售、维修、保养、车检、保险及二手车交易等众多环节中,将会有越来越多的受众乐于体验并接受这种新型的车架号智能识别系统,以帮助自己有效提升效率,降低人工成本。

检验项目效果的指标为:

识别率 = 成功识别的车架号数量 / 总的测试数量 > 70%

错误率 = 识别错误的车架号数量 / 总的测试数量 ≈ 0%

 

二、数据描述

我们得到了某车管所的实际车架号数据集,其中有22690张图片名称为车架号的原始照片,以及3200张图片名称不是车架号的原始照片。数据集里的图片质量参差不齐,如下图所示:


 

三、技术框架

为了解决该车架号识别任务,我们搭建了以下技术框架,主要包含以下四个部分:

1)  目标检测:对于一张车架号自然图片,利用Mask R-CNN目标检测算法定位图中车架号位置。

2)  图像正畸:对第一步得到的检测区域进行畸形矫正,主要包括使用检测轮廓与其外接矩形的面积比来区分车架号数字是否呈弧形排列,之后按弧形与非弧形分类进行矫正。

3)  文字识别:对矫正后的图像利用CRNN模型进行识别,为了提升识别率,修改模型使得CRNN框架兼容不同尺寸的文字图片,并使用合成图像与数据增强来扩充样本。

4)  结果检测:对于识别结果进行检测处理,确保其是一个合理的车架号才输出,以便减少误判率。

 

四、具体流程

以下是一张自然车架号图片从输入到输出识别结果的检测流程


下面我们依次具体地介绍其中的每一个环节。

(一)目标检测

1. MaskR-CNN框架搭建

我们采用了Facebook开源的Mask R-CNN框架,并根据自身机器的硬件条件进行了相应调整,最终成功搭建完成了该目标检测框架。

2. 训练图片准备

由于3200张车架号图片并没有在图中标记出车架号的具体位置,所以需要人工标记,给这些图片打上标签,才能用作之后Mask R-CNN的训练。为此,我们使用了开源软件labelme来帮助我们更加高效地完成训练前期的准备工作,打上标签后的车架号图片如下所示:


在按照上述规则打完标签并相互审查之后,我们总共得到了3119张质量良好的图片,将此作为Mask R-CNN的训练数据。

3. Mask R-CNN训练

将训练图片准备完成并配置完模型参数后,我们就开始了模型的训练。下面以一张车架号图片为例来说明Mask R-CNN的输出结果。

输入:原始车架号图片


输出:包括检测框(bounding box)、掩模(mask)和检测区域类别(class name)三个部分。矩形检测框界定了检测区域,掩模是对检测区域进行目标分割之后的边缘,而类别标签则给出了该检测区域所属类别以及相应的预测概率。如下图所示。


4. 模型效果

由于目标检测的效果很能借由模型的损失函数直观展示,我们决定采用对其余20595张车架号图片进行反打标签的方式来检验模型的实际效果。以下是反打标签后的车架号图片示例: