【项目三、车牌检测+识别项目】一、CCPD车牌数据集转为YOLOv5格式和LPRNet格式

您所在的位置:网站首页 全国省份的车牌 【项目三、车牌检测+识别项目】一、CCPD车牌数据集转为YOLOv5格式和LPRNet格式

【项目三、车牌检测+识别项目】一、CCPD车牌数据集转为YOLOv5格式和LPRNet格式

2023-09-07 06:17| 来源: 网络整理| 查看: 265

目录 前言一、CCPD数据集介绍二、CCPD数据集下载三、划分训练集、验证集和测试集四、车牌检测数据集制作五、车牌识别数据集制作六、我的车牌检测+识别数据集Reference

前言

马上要找工作了,想总结下自己做过的几个小项目。

之前已经总结过了我做的第一个项目:xxx病虫害检测项目,github源码地址:HuKai97/FFSSD-ResNet。CSDN讲解地址:

【项目一、xxx病虫害检测项目】1、SSD原理和源码分析【项目一、xxx病虫害检测项目】2、网络结构尝试改进:Resnet50、SE、CBAM、Feature Fusion【项目一、xxx病虫害检测项目】3、损失函数尝试:Focal loss

第二个项目:蜂巢检测项目,github源码地址:https://github.com/HuKai97/YOLOv5-ShuffleNetv2。CSDN讲解地址:

【项目二、蜂巢检测项目】一、串讲各类经典的卷积网络:InceptionV1-V4、ResNetV1-V2、MobileNetV1-V3、ShuffleNetV1-V2、ResNeXt、Xception。 【项目二、蜂巢检测项目】二、模型改进:YOLOv5s-ShuffleNetV2。

如果对YOLOv5不熟悉的同学可以先看看我写的YOLOv5源码讲解CSDN:【YOLOV5-5.x 源码讲解】整体项目文件导航,注释版YOLOv5源码我也开源在了Github上:HuKai97/yolov5-5.x-annotations,欢迎大家star!

之前一直在学习OCR相关的东西,就想着能不能做一个车牌识别的项目出来,刚好车牌检测也好做,直接用v5就可以了。我的打算是做一个轻量级的车牌识别项目,检测网络用的是YOLOv5s,识别网络有的是LPRNet。

这一节主要介绍下怎么把CCPD公开车牌数据集转化YOLOv5格式和LPRNet格式。

车牌识别项目所有讲解:

【项目三、车牌检测+识别项目】一、CCPD车牌数据集转为YOLOv5格式和LPRNet格式【项目三、车牌检测+识别项目】二、使用YOLOV5进行车牌检测【项目三、车牌检测+识别项目】三、LPRNet车牌识别网络原理和核心源码解读【项目三、车牌检测+识别项目】四、使用LPRNet进行车牌识别

代码已全部上传GitHub:https://github.com/HuKai97/YOLOv5-LPRNet-Licence-Recognition

一、CCPD数据集介绍

CCPD2019车牌数据集是采集人员在合肥停车场采集、手工标注得来,采集时间在早7:30到晚10:00之间。且拍摄车牌照片的环境复杂多变,包括雨天、雪天、倾斜、模糊等。CCPD数据集包含将近30万张图片、图片尺寸为720x1160x3,共包含8种类型图片,每种类型、数量及类型说明如下表:

类型图片数说明ccpd_base199998正常车牌ccpd_challenge10006比较有挑战的车牌ccpd_db20001光线较暗或较亮车牌ccpd_fn19999距离摄像头较远或较近ccpd_np3036没上牌的新车ccpd_rotate9998水平倾斜20-50度,垂直倾斜-10-10度ccpd_tilt10000水平倾斜15-45度,垂直倾斜-15-45度ccpd_weather9999雨天、雪天或大雾的车牌总共283037张车牌图像

图片命名:“025-95_113-154&383_386&473-386&473_177&454_154&383_363&402-0_0_22_27_27_33_16-37-15.jpg”

解释:

025:车牌区域占整个画面的比例;95_113: 车牌水平和垂直角度, 水平95°, 竖直113°154&383_386&473:标注框左上、右下坐标,左上(154, 383), 右下(386, 473)86&473_177&454_154&383_363&402:标注框四个角点坐标,顺序为右下、左下、左上、右上0_0_22_27_27_33_16:车牌号码映射关系如下: 第一个0为省份 对应省份字典provinces中的’皖’,;第二个0是该车所在地的地市一级代码,对应地市一级代码字典alphabets的’A’;后5位为字母和文字, 查看车牌号ads字典,如22为Y,27为3,33为9,16为S,最终车牌号码为皖AY339S

省份:[“皖”, “沪”, “津”, “渝”, “冀”, “晋”, “蒙”, “辽”, “吉”, “黑”, “苏”, “浙”, “京”, “闽”, “赣”, “鲁”, “豫”, “鄂”, “湘”, “粤”, “桂”, “琼”, “川”, “贵”, “云”, “藏”, “陕”, “甘”, “青”, “宁”, “新”]

地市:[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’,‘X’, ‘Y’, ‘Z’]

车牌字典:[‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’, ‘H’, ‘J’, ‘K’, ‘L’, ‘M’, ‘N’, ‘P’, ‘Q’, ‘R’, ‘S’, ‘T’, ‘U’, ‘V’, ‘W’, ‘X’,‘Y’, ‘Z’, ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’]

最新的CCPD2020又补充了1万多张新能源汽车数据,都在下面的官网,感兴趣的可以去下载。

二、CCPD数据集下载

完整的数据集集可以从这里下载,https://github.com/detectRecog/CCPD。

三、划分训练集、验证集和测试集

我是按7:1:2划分的,如果想改可以直接在项目下的 scrips/split_dataset 改,很简单:

""" @Author: HuKai @Date: 2022/5/29 10:44 @github: https://github.com/HuKai97 """ import os import random import shutil from shutil import copy2 trainfiles = os.listdir(r"K:\MyProject\datasets\ccpd\new\ccpd_2019\base") #(图片文件夹) num_train = len(trainfiles) print("num_train: " + str(num_train) ) index_list = list(range(num_train)) print(index_list) random.shuffle(index_list) # 打乱顺序 num = 0 trainDir = r"K:\MyProject\datasets\ccpd\new\ccpd_2019\train" #(将图片文件夹中的6份放在这个文件夹下) validDir = r"K:\MyProject\datasets\ccpd\new\ccpd_2019\val" #(将图片文件夹中的2份放在这个文件夹下) detectDir = r"K:\MyProject\datasets\ccpd\new\ccpd_2019\test" #(将图片文件夹中的2份放在这个文件夹下) for i in index_list: fileName = os.path.join(r"K:\MyProject\datasets\ccpd\new\ccpd_2019\base", trainfiles[i]) #(图片文件夹)+图片名=图片地址 if num


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3