CV / LPRNet

LPRNet

reComputer R Series (CM5 + Hailo-8)

Reconocimiento de matrículas en reComputer RK3576, RK3588 y CM5 con Hailo-8 o Hailo-10H.

167 descargas
Precisión
RKNN / Hailo HEF

Elige el dispositivo que estás usando. La guía de configuración y la documentación se actualizarán en consecuencia.

Primeros pasos

Desplegar
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

Usa la API REST para ejecutar inferencia. Copia los comandos siguientes.

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())

Detalles del modelo

reComputer R Series (CM5 + Hailo-8)

Canalización LPRNet en CM5 + Hailo-8

Información del modelo

Esta aplicación ejecuta dos HEF oficiales de Hailo-8:

  1. tiny_yolov4_license_plates detecta una caja de matrícula en un fotograma de tráfico 416x416.
  2. lprnet redimensiona el recorte de la matrícula en resolución original a 300x75 BGR y produce logits de 5x19x11.

El posprocesamiento OCR sigue Hailo TAPPAS: promedia los cinco segmentos de salida, aplica softmax, realiza decodificación CTC voraz, elimina las repeticiones y la clase vacía, y después exige una confianza media de caracteres de al menos 0.90 y un mínimo de siete dígitos decodificados. Un filtro de varianza del laplaciano rechaza recortes borrosos antes del OCR.

El alfabeto oficial es 0123456789-. Este HEF no reconoce letras ni caracteres de provincias chinas, por lo que no admite las cadenas completas de las matrículas azules chinas.

La configuración de Model Zoo v2.17 informa de una precisión del 99.86% en el conjunto de datos interno de Hailo. Son metadatos de la fuente, no una medición local en CM5.

Ejecución

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

Abra http://<Board_IP>:8000.

API REST

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

Cada predicción incluye la caja y la confianza del detector, la calidad del recorte, el candidato y la confianza OCR, y un valor plate aceptado o null.

Fuentes y validación

  • HEF OCR: Hailo Model Zoo v2.16, destino Hailo-8.
  • HEF del detector: Hailo Model Zoo v2.17, destino Hailo-8.
  • Algoritmo OCR y vídeo de demostración: Hailo TAPPAS v3.29.

Entradas y salidas

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