赞
踩
CCPD从中国安徽合肥市的一个停车场收集图像,该公司拥有800多个PFC,每个PFC都收取特定街道的停车费。每个停车费订单不仅记录LP号码,费用,停车时间等,还要求PFC从前面或后面拍摄汽车照片作为证据。 PFC基本上没有假期,通常从清晨(早上07:30)到午夜(晚上10:00)工作。因此,CCPD在不同的照明,不同天气的环境下都有图像。此外,由于拍摄照片的唯一要求是包含LP,PFC可能会从各种位置和角度拍摄,甚至会发生轻微的震颤。因此,CCPD中的图像来自不同的位置和角度,甚至模糊。
在CCPD数据集中,每张图片仅包含一张车牌,车牌的车牌省份主要为皖。CCPD中的每幅图像都包含大量的标注信息,但是CCPD数据集没有专门的标注文件,每张图像的文件名就是该图像对应的数据标注。
标注最困难的部分是注释四个顶点的位置。为了完成这项任务,数据发布者首先在10k图像上手动标记四个顶点的位置。然后设计了一个基于深度学习的检测模型,在对该网络进行良好训练后,对每幅图像的四个顶点位置进行自动标注。最后,数据发布者雇用了7名兼职工人在两周内纠正这些标注。CCPD提供了超过250k个独特的车牌图像和详细的注释。每张图像的分辨率为720(宽度)× 1160(高)× 3(通道)。实际上,这种分辨率足以保证每张图像中的车牌清晰可辨,但是该数据有些图片标注可能不准。不过总的来说CCPD数据集非常推荐研究车牌识别算法的人员学习使用。
CCPD官方开源仓库
CCPDECCV2018论文
示例:
CCPD数据集没有专门的标注文件,每张图像的文件名就是该图像对应的数据标注。
,如图片【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】,其文件名的含义如下:
读取CCPD中的一张图片,并绘制了其车牌的边界框,关键点,车牌名,数据集可视化工具:
from PIL import Image, ImageDraw, ImageFont
import os
provincelist = [
"皖", "沪", "津", "渝", "冀",
"晋", "蒙", "辽", "吉", "黑",
"苏", "浙", "京", "闽", "赣",
"鲁", "豫", "鄂", "湘", "粤",
"桂", "琼", "川", "贵", "云",
"西", "陕", "甘", "青", "宁",
"新"]
wordlist = [
"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"]
# --- 绘制边界框
def DrawBox(im, box):
draw = ImageDraw.Draw(im)
draw.rectangle([tuple(box[0]), tuple(box[1])], outline="#FFFFFF", width=3)
# --- 绘制四个关键点
def DrawPoint(im, points):
draw = ImageDraw.Draw(im)
for p in points:
center = (p[0], p[1])
radius = 5
right = (center[0]+radius, center[1]+radius)
left = (center[0]-radius, center[1]-radius)
draw.ellipse((left, right), fill="#FF0000")
# --- 绘制车牌
def DrawLabel(im, label):
draw = ImageDraw.Draw(im)
# draw.multiline_text((30,30), label.encode("utf-8"), fill="#FFFFFF")
font = ImageFont.truetype('simsun.ttc', 64)
draw.text((30, 30), label, font=font)
# --- 图片可视化
def ImgShow(imgpath, box, points, label):
# 打开图片
im = Image.open(imgpath)
DrawBox(im, box)
DrawPoint(im, points)
DrawLabel(im, label)
# 显示图片
im.show()
im.save('result.jpg')
def main():
# 图像路径
imgpath = 'E:/datasets/ccpd_green/val/0136360677083-95_103-255&434_432&512-432&512_267&494_255&434_424&449-0_0_3_25_30_24_24_32-98-218.jpg'
# 图像名
imgname = os.path.basename(imgpath).split('.')[0]
# 根据图像名分割标注
_, _, box, points, label, brightness, blurriness = imgname.split('-')
# --- 边界框信息
box = box.split('_')
box = [list(map(int, i.split('&'))) for i in box]
# --- 关键点信息
points = points.split('_')
points = [list(map(int, i.split('&'))) for i in points]
# 将关键点的顺序变为从左上顺时针开始
points = points[-2:]+points[:2]
# --- 读取车牌号
label = label.split('_')
# 省份缩写
province = provincelist[int(label[0])]
# 车牌信息
words = [wordlist[int(i)] for i in label[1:]]
# 车牌号
label = province+''.join(words)
# --- 图片可视化
ImgShow(imgpath, box, points, label)
原图:
可视化效果图:
如果需要将CCPD用于训练检测,根据上述介绍的标签含义读取每个图片的文件名后整理为需要的格式即可。
这里有偿提供yolo格式的CCPD2019/2020数据集,需要其他格式比如VOC、COCO的也可以私信博主。
CCPD2019百度云盘(提取码:jinx)
如果需要将CCPD用于YOLO系列
CCPD2020和CCPD2019类似,区别在于CCPD2019均是蓝牌,CCPD2020新增且仅有新能源车牌即绿牌。CCPD2020中的图像被拆分为train/val/test数据集,train/val/test数据集中图片数分别为5769/1001/5006。
CCPD2020百度云盘
百度云盘(提取码:jinx)
该数据集包含433 张图像,图像中带有汽车牌照的边界框注释。注释以 PASCAL VOC 格式提供。可有偿提供YOLO格式。
该数据集包含453 个文件- JPEG 格式的图像,图像中带有汽车牌照的边界框注释。注释以PASCAL VOC格式提供。可有偿提供YOLO格式。
该数据集包含 313 张 224x224 的伊朗车牌图像。注释适用于 224x224 图像,它们采用 PASCAL VOC XML 格式。处理后的图像为 224x224,放置在 Vehicle Plates 文件夹中,其注释采用 Pascal VOC XML 注释格式,位于 Vehicle Plates 注释文件夹中。可有偿提供YOLO格式。
数据集下载链接: http://suo.nz/2ENtNG
数据集下载链接: http://suo.nz/2MjGSn
数据来自两个来源:维基百科和plateshack.com。一些车牌可以追溯到 1900 年代初期。数据集相对较小,具有类内可变性;因此,适合与数据增强技术一起测试不寻常的损失函数(arcface、cosface、sphereface 等)。
数据集下载链接: http://suo.nz/2TPTX4
数据集包含 10,000 张印度车牌图像。
数据集下载链接: http://suo.nz/31m6LD
Indramayu / Cirebon Area (E) 车牌号
数据集下载链接: http://suo.nz/3fIzsH
该数据集是多个数据集的复杂化,其中图像是从谷歌图像手动下载的 100 张图像,并使用 makeense.ai 在线标签网站手动标记它们。
数据集下载链接: http://suo.nz/2hySR8
该数据集是使用主要在 ikman.lk patpat.lk 和 google 上找到的车牌图像收集的。
数据集下载链接: http://suo.nz/2ijvkZ
该数据集包含孟加拉车牌的图像。共有 295 张图片。
数据集下载链接:http://suo.nz/3fIzrJ
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。