HyperLPR3: A High Performance License Plate Recognition Framework
HyperLPR3 is an advanced framework designed for high-performance license plate recognition. It excels in delivering fast and accurate license plate recognition across various platforms, making it a versatile choice for developers and businesses alike.
Overview
HyperLPR3 is a sophisticated tool built to recognize license plates efficiently. It supports multiple programming environments, including Python and C++, and is designed to run on several operating systems, such as Windows, Mac, Linux, and even on devices like the Raspberry Pi.
Key Features
- Cross-Platform Compatibility: HyperLPR3 is versatile, supporting various platforms such as Linux, MacOS, and Android, with compatibility for multiple architectures (e.g., x86, arm64-v8a).
- Real-Time Processing Speed: It enables 720p real-time processing on a modest Intel 2.2GHz CPU, providing rapid recognition times.
- High Recognition Accuracy: Achieves up to 95%-97% accuracy in real-world scenarios, ensuring reliable results.
- No Character Segmentation Required: The framework offers end-to-end recognition without needing prior character segmentation.
- Multiple License Plate Type Support: It can accurately recognize single and double-layer plates, including special types like new energy and police plates.
Installation
For Python users, installing HyperLPR3 is straightforward. Run the following command:
python -m pip install hyperlpr3
The framework supports Python 3 and can be installed on Windows, Mac, Linux, and Raspberry Pi platforms.
Quick Start
Testing an Image
HyperLPR3 allows you to quickly test the recognition capabilities with a simple command line tool:
# Using an image URL
lpr3 sample -src [image_url]
# Using a local image path
lpr3 sample -src images/test_img.jpg -det high
Using HyperLPR in Python
To use HyperLPR3 within a Python application, the process is simple:
import cv2
import hyperlpr3 as lpr3
# Initialize the license plate catcher
catcher = lpr3.LicensePlateCatcher()
# Load an image
image = cv2.imread("images/test_img.jpg")
# Recognize the license plate
print(catcher(image))
WebAPI Service
HyperLPR3 can also be used as a WebAPI service, offering an interface for external systems to utilize its recognition capabilities:
# Start the WebAPI server
lpr3 rest --port 8715 --host 0.0.0.0
This service can be accessed and tested through the SwaggerUI interface available at http://localhost:8715/api/v1/docs
.
Android Integration
HyperLPR3 provides an Android SDK for easy integration into mobile applications. Developers can add the following dependency to their Android project:
dependencies {
implementation 'com.github.HyperInspire:hyperlpr3-android-sdk:1.0.3'
}
Initialization and recognition are straightforward:
// Initialize once during application startup
HyperLPR3.getInstance().init(this, new HyperLPRParameter());
// Recognize license plates
Plate[] plates = HyperLPR3.getInstance().plateRecognition(bitmap, HyperLPR3.CAMERA_ROTATION_0, HyperLPR3.STREAM_BGRA);
Compiling and Building
Detailed guidance is available for compiling the framework in various environments, whether you're working with C++, Android, or using Docker to simplify the building process.
Supported License Plate Types
HyperLPR3 supports a wide range of license plate types, including:
- Standard blue and yellow plates
- New energy vehicle plates
- White police plates
- Embassy and Hong Kong/Macau plates
Future Enhancements
The project aims to extend support to additional license plate types and improve recognition accuracy for less common plate designs.
For more project details and advanced setup instructions, developers are encouraged to explore the project's comprehensive documentation and available resources. HyperLPR3 is committed to fulfilling diverse recognition needs with speed and precision.