Giter Site home page Giter Site logo

vehicle-registration-plate-recognition's Introduction

Implementation of Vehicle Registration Plate Recognition using CNNs, my Bachelor Thesis.

In this project, that was my bachelor thesis, a two-stage system is implemented for detection and recognition of Persian plates in urban traffic cameras. For the Plate Detection phase, that includes finding the location of plates in each frame of the test video, the Faster-RCNN method is used that outputs detected plates' bounding boxes. Next level, Plate Recognition, that predicts Id of the detected plates and actually behaves as an OCR module, includes two sub-levels: First, image segmentation and some low-level image processing algorithms are used to find characters' contours in a given plate. Then, a deep convolutional neural network(SqueezeNet) with 22 classes is used to determine type of each character.

Demo

Detection frequency 20-25HZ



Recognition time per character = 0.002s, that reduces overall frequency of the system to 13-17 HZ. Actually frequency of recognition phase depends on the number of detected plates in a frame.

How to install

  1. First install forked version of py-faster-rcnn that includes some changes in configurations and files.
  2. Install Caffe.
  3. Install ROS(instructions can be found here).
  4. Download the code from this repository:
git clone https://github.com/mammadjv/vehicle-registration-plate-recognition.git
  1. Download the pre-trained file on plates dataset from here.
  2. Change model paths in /path/to/vehicle-registration-plate-recognition/src/plate_detector/scripts/plateDetector.py, in line 36.
  3. Change model paths in /path/to/vehicle-registration-plate-recognition/src/char_recognition/scripts/charRecognition.py, in line 20.
  4. Add your video path to /path/to/vehicle-registration-plate-recognition/src/camera/src/camera/camera.cpp, line 13.
  5. Change your directory to /path/to/vehicle-registration-plate-recognition and then enter:
catkin_make

Why to use ROS?

It enables us to use different programming languages(In addition to other benefits). For example, to implement low-level image processing methods, we can use faster languages like C++ compared to Python.
Here we can see the relations graph between nodes in our system.

How to run

Open two terminal tabs(or use tmux ๐Ÿ˜œ).

In the first tab:

./launch.sh

and just wait till all initializations are over(takes 20 seconds or so).

Then in the second tab enter:

./start_cycle.sh

Here you go!

vehicle-registration-plate-recognition's People

Contributors

mammadjv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.