基于深度学习的车牌识别项目

一、项目介绍

1.1我们的项目是一个多分类的任务,需要将照片中的每个字符分别进行识别,完成车牌的识别。

1.2深度神经网络(DNN)

深度神经网络(Deep Neural Networks,简称DNN)是深度学习的基础,其结构为input、hidden(可有多层)、output,每层均为全连接。

1.3基本概念

图像识别算法是计算机视觉中非常重要且基础的分支,类似于人类对图像内容的识别其主要任务是通过对图像中像素分布及颜色、纹理等特征的统计,将图像内容所属类别进行正确的分类。在深度学习中,图像识别模型在完成本职任务的同时还充当计算机视觉其他任务的特征提取网络(Backbone)。本文将从传统算法到深度学习算法,系统的对图像识别算法进行介绍。

1.4深度学习算法思路

深度学习提出之初主要起到特征提取的作用,2014年左右还经常能看到深度学习+SVM等分类器的两阶段训练模式。这种方式非常直观职责分明,但通过没有额外指导(特定任务的loss)学习到的特征并一定适用于某一具体任务,随着算法的演进,人们逐渐发现利用深度学习端到端的模型能够达到更好的效果。

我们探讨一下为什么深度学习可以提取特征。图像特征的本质是可以高度概括图像内容的抽象画信息,凭借人工经验提取的特征是从人的角度将纹理、颜色、形状等信息从原始像素中提取出来。这些特征都来源于图像的原始像素,虽然是一种高效的信息抽象方式,但同时会损失掉很多信息。既然人工提取的特征来源且基于原始图像计算获取的,为何不利用模型直接在原始数据上学习,这样不就没有信息损失了。然而图像中包含的有用信息是非常稀疏的,模型过多关注无用信息会导致无法收敛。卷积神经网络的提出很好的解决了这一问题。

1.5经典卷积神经网络

LeNet是由卷积层、池化层、全连接层组成的网络模型。卷积层主要作用是提取图像特征、池化层作用是尽可能保存关键信息的前提下减少计算量、全连接层起到分类器的作用,配合起到非线性变换的激活函数一个CNN的最小系统就组成了。后续研究中虽然有很多CNN的演进和变种,但核心思路和组件都是由上述几部分组成的。

如果将LeNet的中间层结果可视化,可以神奇的发现网络的浅层特征提取的是边缘等low-level特征,深层特征更加抽象,由此佐证了卷积可以提取图像特征、图像识别high-level特征解释性差(人工很难设计)的猜想。

  • 几种常见的卷积

常规卷积:对图像特征进行提取,可通过padding方式补充图像边框,使输出与输入保持一致;

反卷积:可用于分割模型的decoder阶段,将提取的特征恢复原图像大小;

膨胀卷积:是扩大卷积感受野的一种方法。

 

二、数据集介绍

2.1数据集文件名为characterData.zip,其中有65个文件夹

2.2包含0-9,A-Z,以及各省简称

2.3图片为12020的灰度图像

2.4本次项目中,取其中的10%作为测试集,90%作为训练集

# 查看当前挂载的数据集目录, 该目录下的变更重启环境后会自动还原
# View dataset directory. This directory will be recovered automatically after resetting environment. 
!ls /home/aistudio/data

#导入需要的包
import os
import zipfile
import random
import json
import cv2
import numpy as np
from PIL import Image
import paddle
import paddle.fluid as fluid
from paddle.fluid.dygraph import Linear,Conv2D,Pool2D
import matplotlib.pyplot as plt

三、数据准备


'''
参数配置
'''
train_parameters = {
    "input_size": [1, 20, 20],                           #输入图片的shape
    "class_dim": -1,                                     #分类数
    "src_path":"data/data23617/characterData.zip",       #原始数据集路径
    "target_path":"/home/aistudio/data/dataset",        #要解压的路径 
    "train_list_path": "./train_data.txt",              #train_data.txt路径
    "eval_list_path": "./val_data.txt",                  #eval_data.txt路径
    "label_dict":{},                                    #标签字典
    "readme_path": "/home/aistudio/data/readme.json",   #readme.json路径
    "num_epochs": 1,                                    #训练轮数
    "train_batch_size": 32,                             #批次的大小
    "learning_strategy": {                              #优化函数相关的配置
        "lr": 0.001                                     #超参数学习率
    } 
}
def unzip_data(src_path,target_path):
    '''
    解压原始数据集,将src_path路径下的zip包解压至data/dataset目录下
    '''
    if(not os.path.isdir(target_pat
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
目标识别是计算机视觉一个重要的研究领域,由此延伸出的车辆型号识别具有重 要的实际应用价值,特别是在当今交通状况复杂的大城市,智能交通系统成为发展趋 势,这离不开对车辆型号进行识别和分类的工作,本文围绕如何利用计算机视觉的方 法进行车辆型号的识别和分类展开了一系列研究: 本文对当前的目标识别和分类的特征和算法做了总结和归纳。分析比较了作为图 像特征描述常见的特征算子,总结归纳了他们的提取方法、特征性能以及相互之间的 关联。另外,介绍了在目标识别工作中常用的分类方法,阐述了他们各自的原理和工作 方法。研究了深度神经网络的理论依据,分析比较了深度神经网络不同的特征学习方 法,以及卷积神经网络的训练方法。分析比较不同特征学习方法的特点选取 k-means 作为本文使用的特征学习方法,利用卷积神经网络结构搭建深度学习模型,进行车辆 车型识别工作。 本文为了测试基于深度学习的车辆型号分类算法的性能在 30 个不同型号共 7158 张图片上进行实验;并在相同数据上利用改进了的 SIFT 特征匹配的算法进行对比实验; 进过实验测试,深度学习方法在进行车型分类的实验中取得 94%的正确率,并在与 SIFT 匹配实验结果对比后进一步证实:深度学习的方法能够应用在车辆型号识别领域

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值