This project implements an Automatic Number Plate Recognition (ANPR) system capable of detecting and recognizing vehicle license plates from text, images, and video streams. Welcome to our Number Plate Recognition platform — a powerful solution that utilizes advanced Optical Character Recognition (OCR) technology to accurately detect and track vehicle license plates in real-time. Designed to streamline urban traffic management, enhance public safety, and optimize operations in toll collection, parking, and law enforcement, our platform ensures high-performance accuracy and regulatory compliance. Built with React and styled using Tailwind CSS, it delivers a fast, responsive, and intuitive user experience across all devices. For secure and scalable authentication, we integrate Firebase for email authentication and Auth0 to manage user access for google accounts and ensure data security. Whether it's for city planning, traffic enforcement, or private infrastructure, our platform offers a seamless and intelligent approach to modern vehicle monitoring.
- License Plate Detection: Utilizes a trained object detection model to locate license plates in images or video frames.
- Text Recognition: Applies OCR to extract alphanumeric characters from the detected license plates.
- Web Interface: Provides a user-friendly frontend for uploading images and viewing results.
- API Integration: Backend API handles image processing and returns recognized text.
- Dockerized Deployment: Includes Docker configuration for easy setup and deployment.
Automatic-Number-Plate-Recognition/
├── backend/ # Flask API & python backend
├── frontend/ # React.js frontend for user interaction
├── model/ # Pre-trained models and training scripts
├── data/ # Sample images and datasets
├── Dockerfile # Docker configuration file
├── requirements.txt # Python dependencies
├── vercel.json # Vercel deployment configuration
└── README.md # Project documentation
- Python 3.7 or higher
- Node.js and npm
- Docker (optional, for containerized deployment)
-
Navigate to the frontend directory:
cd frontend -
Install the required npm packages:
npm install
-
Start the React development server:
npm run dev
-
Navigate to the backend directory:
cd backend -
Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install the required Python packages:
pip install -r requirements.txt
-
Run the Flask server:
python app.py
To run the application using Docker:
-
Build the Docker image:
docker build -t anpr-app . -
Run the Docker container:
docker run -p 5000:5000 anpr-app
- Access the frontend interface by navigating to
http://localhost:5173in your web browser. - Upload an image containing a vehicle license plate.
- The application will display the detected license plate along with the recognized text.
The model is trained on the Vehicle Number Plate Detection Dataset from Kaggle, which contains images of Indian vehicles along with annotated license plates.
The object detection model is based on the SSD MobileNet V1 architecture and is trained using TensorFlow's Object Detection API.
- Prepare the dataset and convert annotations to TFRecord format.
- Configure the training pipeline using the provided
ssd_mobilenet_v1_pets.configfile. - Train the model:
python model_main.py --pipeline_config_path=ssd_mobilenet_v1_pets.config --model_dir=training/ --alsologtostderr
- Frontend: React.js, Tailwind CSS
- Backend: Python3, Flask
- Object Detection: TensorFlow Object Detection API
- OCR: Tesseract OCR
- Containerization: Docker
This project is licensed under the MIT License. See the LICENSE file for details.