美文网首页
车牌识别1:License Plate Detection an

车牌识别1:License Plate Detection an

作者: 斐波那契的数字 | 来源:发表于2018-11-14 21:36 被阅读726次

    (1)简介

    论文下载地址:License Plate Detection and Recognition in Unconstrained Scenarios [pdf
    github 的项目地址:alpr-unconstrained

    工程主页:alpr-datasets

    视频效果: Demi Lovato Rock in Riio Lisboa 2018

    本文选自ECCV2018的论文《License Plate Detection and Recognition in Unconstrained Scenarios  ( 复杂| 无约束 场景下的车牌检测和识别)》。该论文不进给出了一套完整的车配识别系统( Automatic License Plate Recognition system,ALPR system)的解决方案,而且提供了在无约束(Unconstrained Scenarios)场景下的识别算法, 很好的解决了实际生活中的车牌识别问题。

    (2)motivation:

    目前很多ALPR系统对正面拍摄车牌照片识别效果良好,但是在多变的角度和场景(光线)下车牌往往是倾斜的,导致识别的效果并不如意。

    数据集中存在的倾斜车牌

    基于此,这篇文章提出了一种完整的ALPR系统,可以在各种场景下具有良好的表现。在这篇文章的贡献主要有两个:

    1. 介绍了一种新颖的神经网络,能够检测出不同场景环境下的车牌;并在OCR之前对变形的进行校正

    2. 利用真实数据合成多样的车牌,用于训练。手动标注的样本了少于200个,并且是从头开始训练网络

    (2)实现方法

    ALPR 的主要任务是 在图像中找到并识别车牌(license plates );通常情况下会分为4个子任务序列:

    1. 车辆检测(vehicle detection) ; 

     2.  车牌检测(  license plate detection); 

    3. 字符分割( character segmentation)

    4. 字符识别( character recognition)

    而子任务3和4可以看做OCR;  所以一共有3个子任务:vehicle detection, license plate detection, OCR.  这篇文章也是按照这三个子任务的顺序进行展开的,如下图所示。文章中的ALPR系统分为: 基于YOLOv3 的车辆识别 --> 车牌的检测和校正--> 车牌的OCR识别。

    示例流程

    车辆的检测

    考虑车辆的检测的需要使用的较少的时间,于是借用了YUOLOv3的模型与darknet框架进行检测的; 使用 YOLOv3的主要原因是: 1 . 检测速度很快(大约是70 FPS );  2. 识别的准确率较高,在PASCAL VOC数据集中的测试结果是76.8% mPA.  在这篇文章中,将YOLOv3直接拿来使用,同时忽略了除了cars以外的其他类别;

    PS : 

    Yolov3 相比于Faster RCNN 确实很快,但是也有致命的缺陷: 不能识别出特别小的物体。如果在实际应用中需要在一张很大的图像上识别很小的车,建议重新训练

    另外,YOLOv3 中具有车牌的物体不仅仅是cars, 还有bus和truck;这两个类别在程序中确被忽略的。

    原文:

    原文解释

    对于检测出的正样本,将会被resized 之后,送入车牌检测模块。resize的计算方式如下:

    计算resize 因子:

    (1)中,Wv和Hv是识别车辆后的图像大小, Dmin和Dmax是常量,分别是288和608

    通过这种缩放计算以后,包含有车辆的图片会被统一成大小为 288*608大小的图片;

    车牌的检测和校正

    (不知道校正这个词用的对不对,贴出原文:License Plate Detection and Unwarping )

    在车牌的检测模块中,作者提出了一种基于CNN 的物体检测网络: Warped Planar Object Detection Network,WPOD网络, 该网络是从YOLO\ SSD\ STN中获得灵感,但是并没有计算spatial transformations,我想可能是减少时间复杂度。

    WOPD的检测流程如下:

    可以看出来,在检测出车牌以后,还会对倾斜的车牌进行校正;现在需要关注的部分有两点:
    1. WPOD是如何设计的?
    2. 如何进行车牌校正的?

    检测车牌的整个流程

    好,回答第一个问题: WPOD的设计:

    网络结构如下,可以看出在最后一层的DETECTION上又两个并行的网络,具体看下图或论文;

    另一个两点是loss function的计算方式有所改变。

    WPOD的细节

    整个WPOD net的训练样本有196张,可以算得上是小样本了。这193张图片中,有105张是从Cas数据集中筛选的,有40张来自SSIC数据集,52张来自AOLP数据集。这些选出的车牌图片包含了欧洲、美国、巴西和台湾的车牌;

    训练数据样本

    车牌的校正过程,文章没有提,我想开源代码里面应该会有的;最近刚看完检测部分的代码

    所识别和校正后的车牌图片(车牌的识别在OCR部分)

    OCR

    用于文字的切割和识别的网络是基于YOLO进行修改的;这部分值得一提的是样本生成的方法;

    PS:  这里如果使用CRNN的话,效果可能会更好;尤其是当车牌存在语义关系的时候,例如:中文车牌就具有语义关系,车牌的第一位是汉字,第二位是大写字母, 后几位是数字加字母的情况;

    生成车牌数据的流程


    结果

    备注:

    loss 的计算方式和车牌的校正方法, 这两个应该在在阅读代码的时候找到对应的程序片段;

    待理解以后,会写出对loss的理解

    敬请期待~

    by 2018/11/14

    相关文章

      网友评论

          本文标题:车牌识别1:License Plate Detection an

          本文链接:https://www.haomeiwen.com/subject/xrhlfqtx.html