graviti
Products
Resources
About us
CCPD
2D Polygon
OCR/Text Detection
|Vehicle
|...
License: MIT

Overview

CCPD, a large and comprehensive LP dataset. All images are taken manually by workers of a
roadside parking management company and are annotated carefully. To our best knowledge, CCPD
is the largest publicly available LP dataset to date with over 250k unique car images, and
the only one provides vertices location annotations. With CCPD, we present a novel network
model which can predict the bounding box and recognize the corresponding LP number simultaneously
with high speed and accuracy. Through comparative experiments, we demonstrate our model outperforms
current object detection and recognition approaches in both accuracy and speed. In real-world
applications, our model recognizes LP numbers directly from relatively high-resolution images
at over 61 fps and 98.5% accuracy.

train\val\test split

The split file is available under 'split/' folder.

Images in CCPD-Base is split to train/val set. Sub-datasets
(CCPD-DB, CCPD-Blur, CCPD-FN, CCPD-Rotate, CCPD-Tilt, CCPD-Challenge) in CCPD are exploited
for test.

metric

As each image in CCPD contains only a single license plate (LP). Therefore, we do
not consider recall and concerntrate on precision. Detectors are allowed to predict only one
bounding box for each image.

  • Detection. For each image, the detector outputs only one bounding
    box. The bounding box is considered to be correct if and only if its IoU with the ground truth
    bounding box is more than 70% (IoU > 0.7). Also, we compute AP on the test set.
  • Recognition.
    A LP recognition is correct if and only if all characters in the LP number are correctly recognized.

Data Annotation

Annotations are embedded in file name.

A sample image name is "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".
Each name can be splited into seven fields. Those fields are explained as follows.

  • Area: Area ratio of license plate area to the entire picture area.
  • Tilt degree: Horizontal tilt degree and vertical tilt degree.
  • Bounding box coordinates: The coordinates of the left-up and the right-bottom vertices.
  • Four
    vertices locations
    : The exact (x, y) coordinates of the four vertices of LP in the whole
    image. These coordinates start from the right-bottom vertex.
  • License plate number: Each
    image in CCPD has only one LP. Each LP number is comprised of a Chinese character, a letter,
    and five letters or numbers. A valid Chinese license plate consists of seven characters: province
    (1 character), alphabets (1 character), alphabets+digits (5 characters). "0_0_22_27_27_33_16"
    is the index of each character. These three arrays are defined as follows. The last character
    of each array is letter O rather than a digit 0. We use O as a sign of "no character" because
    there is no O in Chinese license plate characters.
provinces = ["皖", "沪", "津", "渝", "冀", "晋",
"蒙", "辽", "吉", "黑", "苏", "浙", "京", "闽", "赣", "鲁", "豫", "鄂", "湘", "粤", "桂", "琼", "川", "贵", "云",
"藏", "陕", "甘", "青", "宁", "新", "警", "学", "O"]
alphabets = ['A', 'B', 'C', 'D', 'E', 'F', 'G',
'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
             'X', 'Y', 'Z', 'O']
ads = ['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', 'O']
  • Brightness: The brightness of the license plate region.
  • Blurriness: The Blurriness of the license plate region.

Instruction

Training instructions

Input parameters are well commented in python codes(python2/3 are both ok, the version of pytorch
should be >= 0.3). You can increase the batchSize as long as enough GPU memory is available.

Enviorment (not so important as long as you can run the code):

  • python: pytorch(0.3.1), numpy(1.14.3), cv2(2.4.9.1).
  • system: Cuda(release 9.1, V9.1.85)

For convinence, we provide a trained wR2 model and a trained rpnet model, you can download
them from google drive or baiduyun.

First train the localization network (we provide one as
before, you can download it from google drive
or baiduyun) defined in wR2.py as follows:

  python wR2.py -i [IMG FOLDERS] -b 4

After wR2 finetunes, we train the RPnet (we provide one as before, you can download it from
google drive or baiduyun)
defined in rpnet.py. Please specify the variable wR2Path (the path of the well-trained wR2
model) in rpnet.py.

  python rpnet.py -i [TRAIN IMG FOLDERS] -b 4 -se 0 -f [MODEL SAVE FOLDER] -t [TEST IMG FOLDERS]

Test instructions

After fine-tuning RPnet, you need to uncompress a zip folder and select
it as the test directory. The argument after -s is a folder for storing failure cases.

  python rpnetEval.py -m [MODEL PATH, like /**/fh02.pth] -i [TEST DIR] -s [FAILURE SAVE DIR]

Citation

Please use the following citation when referencing the dataset:

@inproceedings{xu2018towards,
  title={Towards End-to-End License Plate Detection and Recognition: A Large Dataset and Baseline},
  author={Xu, Zhenbo and Yang, Wei and Meng, Ajin and Lu, Nanxue and Huang, Huan},
  booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
  pages={255--271},
  year={2018}
}

License

MIT

Data Summary
Type
Image,
Amount
--
Size
12.26GB
Provided by
University of Science and Technology of China
The University of science and technology of China (USTC) is a comprehensive national key university affiliated to the Chinese Academy of Sciences, which focuses on cutting-edge science and high-tech, and combines medicine, characteristic management and humanities.
| Amount -- | Size 12.26GB
CCPD
2D Polygon
OCR/Text Detection | Vehicle
License: MIT

Overview

CCPD, a large and comprehensive LP dataset. All images are taken manually by workers of a
roadside parking management company and are annotated carefully. To our best knowledge, CCPD
is the largest publicly available LP dataset to date with over 250k unique car images, and
the only one provides vertices location annotations. With CCPD, we present a novel network
model which can predict the bounding box and recognize the corresponding LP number simultaneously
with high speed and accuracy. Through comparative experiments, we demonstrate our model outperforms
current object detection and recognition approaches in both accuracy and speed. In real-world
applications, our model recognizes LP numbers directly from relatively high-resolution images
at over 61 fps and 98.5% accuracy.

train\val\test split

The split file is available under 'split/' folder.

Images in CCPD-Base is split to train/val set. Sub-datasets
(CCPD-DB, CCPD-Blur, CCPD-FN, CCPD-Rotate, CCPD-Tilt, CCPD-Challenge) in CCPD are exploited
for test.

metric

As each image in CCPD contains only a single license plate (LP). Therefore, we do
not consider recall and concerntrate on precision. Detectors are allowed to predict only one
bounding box for each image.

  • Detection. For each image, the detector outputs only one bounding
    box. The bounding box is considered to be correct if and only if its IoU with the ground truth
    bounding box is more than 70% (IoU > 0.7). Also, we compute AP on the test set.
  • Recognition.
    A LP recognition is correct if and only if all characters in the LP number are correctly recognized.

Data Annotation

Annotations are embedded in file name.

A sample image name is "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".
Each name can be splited into seven fields. Those fields are explained as follows.

  • Area: Area ratio of license plate area to the entire picture area.
  • Tilt degree: Horizontal tilt degree and vertical tilt degree.
  • Bounding box coordinates: The coordinates of the left-up and the right-bottom vertices.
  • Four
    vertices locations
    : The exact (x, y) coordinates of the four vertices of LP in the whole
    image. These coordinates start from the right-bottom vertex.
  • License plate number: Each
    image in CCPD has only one LP. Each LP number is comprised of a Chinese character, a letter,
    and five letters or numbers. A valid Chinese license plate consists of seven characters: province
    (1 character), alphabets (1 character), alphabets+digits (5 characters). "0_0_22_27_27_33_16"
    is the index of each character. These three arrays are defined as follows. The last character
    of each array is letter O rather than a digit 0. We use O as a sign of "no character" because
    there is no O in Chinese license plate characters.
provinces = ["皖", "沪", "津", "渝", "冀", "晋",
"蒙", "辽", "吉", "黑", "苏", "浙", "京", "闽", "赣", "鲁", "豫", "鄂", "湘", "粤", "桂", "琼", "川", "贵", "云",
"藏", "陕", "甘", "青", "宁", "新", "警", "学", "O"]
alphabets = ['A', 'B', 'C', 'D', 'E', 'F', 'G',
'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
             'X', 'Y', 'Z', 'O']
ads = ['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', 'O']
  • Brightness: The brightness of the license plate region.
  • Blurriness: The Blurriness of the license plate region.

Instruction

Training instructions

Input parameters are well commented in python codes(python2/3 are both ok, the version of pytorch
should be >= 0.3). You can increase the batchSize as long as enough GPU memory is available.

Enviorment (not so important as long as you can run the code):

  • python: pytorch(0.3.1), numpy(1.14.3), cv2(2.4.9.1).
  • system: Cuda(release 9.1, V9.1.85)

For convinence, we provide a trained wR2 model and a trained rpnet model, you can download
them from google drive or baiduyun.

First train the localization network (we provide one as
before, you can download it from google drive
or baiduyun) defined in wR2.py as follows:

  python wR2.py -i [IMG FOLDERS] -b 4

After wR2 finetunes, we train the RPnet (we provide one as before, you can download it from
google drive or baiduyun)
defined in rpnet.py. Please specify the variable wR2Path (the path of the well-trained wR2
model) in rpnet.py.

  python rpnet.py -i [TRAIN IMG FOLDERS] -b 4 -se 0 -f [MODEL SAVE FOLDER] -t [TEST IMG FOLDERS]

Test instructions

After fine-tuning RPnet, you need to uncompress a zip folder and select
it as the test directory. The argument after -s is a folder for storing failure cases.

  python rpnetEval.py -m [MODEL PATH, like /**/fh02.pth] -i [TEST DIR] -s [FAILURE SAVE DIR]

Citation

Please use the following citation when referencing the dataset:

@inproceedings{xu2018towards,
  title={Towards End-to-End License Plate Detection and Recognition: A Large Dataset and Baseline},
  author={Xu, Zhenbo and Yang, Wei and Meng, Ajin and Lu, Nanxue and Huang, Huan},
  booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
  pages={255--271},
  year={2018}
}

License

MIT

0
Start building your AI now
graviti
wechat-QR
Long pressing the QR code to follow wechat official account

Copyright@Graviti