CV / LPRNet

LPRNet

reComputer R Series (CM5 + Hailo-8)

Reconnaissance de plaques d’immatriculation sur reComputer RK3576, RK3588 et CM5 avec Hailo-8 ou Hailo-10H.

167 téléchargements
Précision
RKNN / Hailo HEF

Choisissez l'appareil que vous utilisez. Le guide de configuration et la documentation seront mis à jour en conséquence.

Pour commencer

Déployer
sudo docker run --rm \
  --name cm5-hailo8-lprnet \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/lprnet:latest \
  python web_detection.py --model_path model/lprnet.hef --detector_model_path model/tiny_yolov4_license_plates.hef --video_path video/test.mp4

API REST

Utilisez l'API REST pour exécuter l'inférence. Copiez les commandes ci-dessous.

Curl
curl http://localhost:8080/v1/chat/completions -d '{
  "model": "lprnet-rknn",
  "messages": [{"role": "user", "content": "Hello"}]
}'
Python
import requests

resp = requests.post(
    "http://localhost:8080/v1/chat/completions",
    json={"model": "lprnet-rknn", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())

Détails du modèle

reComputer R Series (CM5 + Hailo-8)

Pipeline LPRNet sur CM5 + Hailo-8

Informations du modèle

Cette application exécute deux HEF officiels pour Hailo-8 :

  1. tiny_yolov4_license_plates détecte une boîte de plaque dans une image de circulation 416x416.
  2. lprnet redimensionne la zone de plaque issue de l'image à résolution originale en 300x75 BGR et produit des logits 5x19x11.

Le post-traitement OCR suit Hailo TAPPAS : moyenne des cinq tranches de sortie, application de softmax, décodage CTC glouton, suppression des répétitions et de la classe vide, puis exigence d'une confiance moyenne des caractères d'au moins 0.90 et d'au moins sept chiffres décodés. Un filtre fondé sur la variance du laplacien rejette les zones floues avant l'OCR.

L'alphabet officiel est 0123456789-. Ce HEF ne reconnaît ni les lettres ni les caractères des provinces chinoises ; il ne prend donc pas en charge les chaînes complètes des plaques bleues chinoises.

La configuration Model Zoo v2.17 indique une précision de 99.86% sur le jeu de données interne de Hailo. Il s'agit de métadonnées de la source, pas d'un benchmark local sur CM5.

Exécution

bash
sudo docker run --rm \
  --name cm5-hailo8-lprnet \
  --privileged \
  --net=host \
  -e PYTHONUNBUFFERED=1 \
  --device /dev/hailo0:/dev/hailo0 \
  -v /usr/lib/libhailort.so.4.23.0:/usr/lib/libhailort.so.4.23.0:ro \
  -v /usr/lib/libhailort.so:/usr/lib/libhailort.so:ro \
  ghcr.io/seeed-projects/recomputer-hailo8-cv/lprnet:latest \
  python web_detection.py \
    --model_path model/lprnet.hef \
    --detector_model_path model/tiny_yolov4_license_plates.hef \
    --video_path video/test.mp4

Ouvrez http://<Board_IP>:8000.

API REST

bash
curl -X POST "http://<Board_IP>:8000/api/models/lprnet/predict" \
  -F "file=@traffic.jpg"

Chaque prédiction comprend la boîte et la confiance du détecteur, la qualité de la zone découpée, le candidat et la confiance OCR, ainsi qu'une valeur plate acceptée ou null.

Sources et validation

  • HEF OCR : Hailo Model Zoo v2.16, cible Hailo-8.
  • HEF du détecteur : Hailo Model Zoo v2.17, cible Hailo-8.
  • Algorithme OCR et vidéo de démonstration : Hailo TAPPAS v3.29.

Entrées et sorties

RKNN: cropped plate or selected region to recognized text. Hailo: traffic frame to detected plate box and CTC-decoded numeric plate text.