PlateRecognizePy is a Python library for license plate detection and recognition, with special support for Indian number plates. It provides a simple interface to process images containing license plates and extract the plate text.
- License plate detection in images using YOLOv8 (with OpenCV as fallback)
- Text recognition from license plates
- Support for both Tesseract OCR and EasyOCR
- Configurable output saving and directory
- Logging of detection and recognition results
- Specialized support for Indian number plates:
- Recognition of both white and yellow plates
- Handling of various Indian state codes
- Support for both new and old format Indian plates
You can install PlateRecognizePy using pip:
pip install PlateRecognizePy
PlateRecognizePy requires Python 3.7 or later. The main dependencies are:
For a complete list of dependencies, please refer to the setup.py
file.
Here's a simple example of how to use PlateRecognizePy:
from plate_recognize_py import process_license_plate
import cv2
# Load an image
image = cv2.imread('path/to/your/image.jpg')
# Process the image
config = {
'save_output': True,
'output_dir': 'custom_output'
}
license_plate, text = process_license_plate(image, config)
print(f"Detected license plate: {text}")
The process_license_plate
function now accepts an optional config
dictionary with the following options:
save_output
: Boolean to control whether to save the output images (default: True)output_dir
: String specifying the directory to save output images (default: 'output')
For more detailed examples and the full source code, you can check out the License plate recognition Python.
PlateRecognizePy is optimized for Indian number plates:
from plate_recognize_py import process_indian_license_plate
import cv2
# Load an image with an Indian number plate
image = cv2.imread('path/to/indian_plate_image.jpg')
# Process the image
license_plate, text, state = process_indian_license_plate(image)
print(f"Detected license plate: {text}")
print(f"State: {state}")
This function works for both white and yellow Indian number plates, automatically detecting the plate color and adjusting the recognition process accordingly.
PlateRecognizePy supports various Indian number plate formats:
-
New Format: AA 00 AA 0000 Example: DL 01 CA 1234
-
Old Format: AA AA 0000 Example: MH 12 3456
-
Commercial Vehicle Format: AA 00 A 0000 Example: HR 55 C 7890
The library automatically detects the format and processes it accordingly.
PlateRecognizePy recognizes all Indian state codes, including but not limited to:
- DL: Delhi
- MH: Maharashtra
- KA: Karnataka
- TN: Tamil Nadu
- UP: Uttar Pradesh
Contributions to PlateRecognizePy are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenCV for image processing capabilities
- Tesseract and EasyOCR for text recognition
- YOLOv8 for object detection
PlateRecognizePy is developed by VJ. For any questions or support, please open an issue on the GitHub repository or reach out on X (Twitter) @saidbyvj.
PlateRecognizePy has been tested on a wide range of Indian number plates, including:
- High-resolution images
- Low-light conditions
- Angled or skewed plates
- Partially obscured plates
In optimal conditions, the library achieves an accuracy rate of over 95% for Indian plates.
While PlateRecognizePy performs well in most scenarios, users should be aware of some limitations:
- Extremely blurry or low-resolution images may yield inaccurate results
- Severely damaged or heavily customized plates might not be recognized correctly
- The library may struggle with non-standard fonts or highly stylized plates
We are continuously working to improve PlateRecognizePy, with planned enhancements including:
- Support for more international license plate formats
- Integration with more advanced OCR technologies
- Performance optimizations for faster processing