/CLPDetector

Color-shape and shape-color two pipelines based Chinese License Plates Detector

Primary LanguagePythonMIT LicenseMIT

CLPDetector

A color-shape and shape-color two pipelines based Chinese License Plates Detector. Aim at both taking the efficient advantages of traditional handcraft features extraction computer vision algorithms to make up for deep learning based algorithms, and making use of multiple priori features instead of single feature to improve the robustness and accuracy of the detection algorithm.

Task:

LicensePlateTask

CLPDetector pipeline:

CLPDetectorPipeline

Support Features

  • Color-based RoI proposal and shape-based RoI proposal
  • Shape-based plate rectification and color-based plate rectification
  • Wave-based characters split
  • SVM-based characters classification
  • Two pipelines parallel threading
  • Easy to use GUI

Get Started

# install dependencies
pip install -r requirements.txt

# train the SVM models
python classifier.py

# test all images together
python detector.py

# run the GUI CLPDetector
python main.py

Demo

Demo

Results

  • Classifier Result

ClassifierResult

  • Detector Result

DetectorResult

  • Detection Test Result

DetectionResult1 DetectionResult1 DetectionResult1 DetectionResult1 DetectionResult1 DetectionResult1 DetectionResult1 DetectionResult1 DetectionResult1

  • Visualization Result

Visualization

Structures

  • Color-based RoI Proposal

ColorRoIProposal

  • Shape-based RoI Proposal

ShapeRoIProposal

  • Color-based Rectification

ColorRectification

  • Shape-based Rectification

ShapeRectification

  • Wave-based Characters Split

CharactersSplit

  • SVM-based Characters Classification

CharactersClassification

TODO List

  • core detection algorithms implementation
    • color-based ROI proposal
    • shape-based ROI proposal
    • rectification for ROIs from color proposal
    • rectification for ROIs from shape proposal
    • characters split
    • characters classification
    • characters classifier models training
  • core detection algorithms refactor (detector.py - ChineseLicensePlateDetector)
    • detect wrapper (detect())
      • color shape pipeline (color_shape_pipeline())
        • preprocess (color_shape_preprocess())
        • color RoI proposal (color_RoI_proposal())
        • shape rectification (shape_rectification())
        • characters split (color_shape_characters_preprocess())
        • characters classification (characters_classify(), classifier.py)
      • shape color pipeline (shape_color_pipeline())
        • preprocess (shape_color_preprocess())
        • shape RoI proposal (shape_RoI_proposal())
        • color rectification (color_rectification())
        • characters split (shape_color_characters_preprocess())
        • characters classification (characters_classify(), classifier.py)
  • GUI design
    • main window (original image, detection results)
    • visualization window (two pipelines intermediate results show)