中文文档
python -m pip install hyperlpr3
# image url
lpr3 sample -src https://koss.iyong.com/swift/v1/iyong_public/iyong_2596631159095872/image/20190221/1550713902741045679.jpg
# image path
lpr3 sample -src images/test_img.jpg -det high
# import opencv
import cv2
# import hyperlpr3
import hyperlpr3 as lpr3
# Instantiate object
catcher = lpr3 . LicensePlateCatcher ()
# load image
image = cv2 . imread ( "images/test_img.jpg" )
# print result
print ( catcher ( image ))
# start server
lpr3 rest --port 8715 --host 0.0.0.0
Jalur untuk membuka SwaggerUI setelah startup:http://localhost:8715/api/v1/docs Lihat dan uji layanan Identification API online:
T:Apakah keakuratan android dalam proyek ini konsisten dengan apk-demo?
J:Silakan kompilasi atau unduh perpustakaan bersama Android dari rilis dan salin ke Prj-Android untuk pengujian。
T:Sumber data pelatihan untuk pelat nomor?
J:Karena data pelat nomor yang digunakan untuk pelatihan melibatkan privasi hukum dan masalah lainnya, maka data tersebut tidak dapat disediakan dalam proyek ini. Buka lebih banyak kumpulan data besar kumpulan data pendaftaran CCPD。
Q:Penyediaan kode pelatihan?
J:Sumber daya menyediakan kode pelatihan lama, dan metode pelatihan untuk HyperLPR3 akan disortir dan disajikan nanti。
HyperLPR3车牌识别-五分钟搞定: 中文车牌识别光速部署与使用
HyperLPR3车牌识别-Android-SDK光速部署与使用
Aplikasi HyperLPR3-Linux/MacOS:C/C++库编译
HyperLPR3车牌识别-Android使用:SDK编译与部署
Untuk ditambahkan... Kontribusi diterima
HiperLPRv1
HiperLPRv2
Mengompilasi proyek C/C++ memerlukan penggunaan pustaka ketergantungan pihak ketiga. Setelah mengunduh perpustakaan, unzip, dan letakkan di direktori root (tingkat yang sama dengan CMakeLists.txt) dengan menyalin atau melakukan soft linking.baidu kode drive: eu31
# execute the script
sh command/build_release_linux_share.sh
Dikompilasi ke direktori build/linux/install/hyperlpr3 ,Yang berisi:
Salin file yang Anda perlukan ke dalam proyek Anda
# go to Prj-linux
cd Prj-Linux
# exec sh
sh build.sh
Program yang dapat dieksekusi dihasilkan setelah kompilasi: PlateRecDemo dan Jalankan program
# go to build
cd build/
# first param models dir, second param image path
./PlateRecDemo ../hyperlpr3/resource/models/r2_mobile ../hyperlpr3/resource/images/test_img.jpg
// Load image
cv:: Mat image = cv :: imread ( image_path );
// Create a ImageData
HLPR_ImageData data = { 0 };
data . data = image . ptr < uint8_t > ( 0 ); // Setting the image data flow
data . width = image . cols ; // Setting the image width
data . height = image . rows ; // Setting the image height
data . format = STREAM_BGR ; // Setting the current image encoding format
data . rotation = CAMERA_ROTATION_0 ; // Setting the current image corner
// Create a Buffer
P_HLPR_DataBuffer buffer = HLPR_CreateDataBuffer ( & data );
// Configure license plate recognition parameters
HLPR_ContextConfiguration configuration = { 0 };
configuration . models_path = model_path ; // Model folder path
configuration . max_num = 5 ; // Maximum number of license plates
configuration . det_level = DETECT_LEVEL_LOW ; // Level of detector
configuration . use_half = false;
configuration . nms_threshold = 0.5f ; // Non-maxima suppress the confidence threshold
configuration . rec_confidence_threshold = 0.5f ; // License plate number text threshold
configuration . box_conf_threshold = 0.30f ; // Detector threshold
configuration . threads = 1 ;
// Instantiating a Context
P_HLPR_Context ctx = HLPR_CreateContext ( & configuration );
// Query the Context state
HREESULT ret = HLPR_ContextQueryStatus ( ctx );
if ( ret != HResultCode :: Ok ) {
printf ( "create error.n" );
return -1 ;
}
HLPR_PlateResultList results = { 0 };
// Execute LPR
HLPR_ContextUpdateStream ( ctx , buffer , & results );
for ( int i = 0 ; i < results . plate_size ; ++ i ) {
// Getting results
std:: string type ;
if ( results . plates [ i ]. type == HLPR_PlateType :: PLATE_TYPE_UNKNOWN ) {
type = “ Unknown ";
} else {
type = TYPES [ results . plates [ i ]. type ];
}
printf ( "<%d> %s, %s, %fn" , i + 1 , type . c_str (),
results . plates [ i ]. code , results . plates [ i ]. text_confidence );
}
// Release Buffer
HLPR_ReleaseDataBuffer ( buffer );
// Release Context
HLPR_ReleaseContext ( ctx );
# execute the script
sh command/build_release_android_share.sh
Dikompilasi ke: build/release_android/ ,Yang berisi:
Setelah kompilasi, Salin direktori arm64-v8a dan armeabi-v7a ke Prj-Android/hyperlpr3/libs , Dan kompilasi proyek Prj-Android untuk digunakan.
Jika Anda perlu melakukan kompilasi dengan buruh pelabuhan, kami menyediakan beberapa cara untuk melakukan kompilasi:
Anda perlu menginstal docker dan docker-compose, Bangun Gambar untuk hyperlpr_build :
docker build -t hyperlpr_build .
Mulai kompilasi perpustakaan bersama:
docker-compose up build_linux_x86_shared_lib
Bangun direktori: build/linux
Kami telah menyediakan proyek demo dari sumber Android SDK: hyperlpr3-android-sdk,Anda dapat mengkompilasi perpustakaan bersama dan menggunakan proyek sesuai kebutuhan.
Jika Anda perlu mengintegrasikan SDK kami dengan cepat ke dalam proyek Android Anda sendiri, Anda dapat menambahkan ketergantungan berikut ke build.gradle proyek Anda:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.HyperInspire:hyperlpr3-android-sdk:1.0.3'
}
// Initialization, which can be performed only once, is usually performed at program initialization
HyperLPR3 . getInstance (). init ( this , new HyperLPRParameter ());
…
// exec recognition
Plate [] plates = HyperLPR3 . getInstance (). plateRecognition ( bitmap , HyperLPR3 . CAMERA_ROTATION_0 , HyperLPR3 . STREAM_BGRA );
Ketahui lebih banyak tentang: Prj-Android