중국어(중국어)
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
시작 후 SwaggerUI를 여는 경로: http://localhost:8715/api/v1/docs 온라인 식별 API 서비스 보기 및 테스트:
Q:프로젝트에서 Android의 정확성이 apk-demo의 정확성과 일치합니까?
A: 릴리스에서 Android 공유 라이브러리를 컴파일하거나 다운로드하고 테스트를 위해 Prj-Android에 복사하세요.
Q:번호판 훈련 데이터의 출처는?
A:교육에 사용되는 번호판 데이터는 법적 개인 정보 보호 및 기타 문제가 있으므로 본 프로젝트에서는 제공할 수 없습니다. 더 많은 빅 데이터 세트 CCPD 등록 데이터 세트를 엽니다.。
Q:훈련 코드 제공?
A:리소스는 이전 훈련 코드를 제공하며 HyperLPR3에 대한 훈련 방법은 나중에 정리하여 제시할 것입니다.
HyperLPR3车牌识别-五分钟搞定: 中文车牌识别光速부署与使용
HyperLPR3车牌识别-Android-SDK 빛 부분 사용
HyperLPR3车牌识别-Linux/MacOS용:C/C++库编译
HyperLPR3车牌识别-Android 사용:SDK编译与부署
추가 예정... 기여 환영
HyperLPRv1
HyperLPRv2
C/C++ 프로젝트를 컴파일하려면 타사 종속성 라이브러리를 사용해야 합니다. 라이브러리를 다운로드한 후 압축을 풀고 소프트 linking.baidu 드라이브 코드 eu31을 복사하거나 복사하여 루트 디렉터리(CMakeLists.txt와 동일한 수준)에 넣습니다.
# execute the script
sh command/build_release_linux_share.sh
build/linux/install/hyperlpr3 디렉토리로 컴파일됩니다. 다음 내용은 다음과 같습니다.
필요한 파일을 프로젝트에 복사하세요.
# go to Prj-linux
cd Prj-Linux
# exec sh
sh build.sh
실행 가능한 프로그램은 컴파일 후 생성됩니다: PlateRecDemo , 그리고 프로그램 실행
# 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
다음으로 컴파일됩니다: build/release_android/ ,여기에는 다음이 포함됩니다:
컴파일 후, arm64-v8a 및 armeabi-v7a 디렉토리를 Prj-Android/hyperlpr3/libs 에 복사하고 사용할 Prj-Android 프로젝트를 컴파일합니다.
docker로 컴파일해야 하는 경우 몇 가지 컴파일 방법을 제공합니다.
docker 및 docker-compose를 설치해야 합니다. Hyperlpr_build 용 이미지 빌드:
docker build -t hyperlpr_build .
공유 라이브러리 컴파일을 시작합니다.
docker-compose up build_linux_x86_shared_lib
빌드 디렉토리: build/linux
우리는 Android SDK 소스인 hyperlpr3-android-sdk에서 데모 프로젝트를 제공했습니다. 공유 라이브러리를 컴파일하고 필요에 따라 프로젝트를 사용할 수 있습니다.
자신의 Android 프로젝트에 SDK를 신속하게 통합해야 하는 경우 프로젝트의 build.gradle에 다음 종속성을 추가할 수 있습니다.
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 );
자세히 알아보기: Prj-Android