Skip to content

ankandrew/LocalizadorPatentes

Repository files navigation

LocalizadorPatentes

¿Qué es YOLO?

YOLO v4 es un one-stage object detector (a diferencia de los two-stage, no tiene Region Proposal Networks). YOLO es rapido y preciso. Por el entrenamiento de distintas escalas de imagenes (multi-scale training) se pueden usar los mismos weights/parametros aprendidos para imagenes de distintas resoluciones (No aplica a Yolo v4 tiny). Cabe rescatar que mayor la resolución, mayor el costo de computación (Cada filtro de la CNN tiene que hacer mas pasadas).

Aquí se encuentran instrucciones de como utilizarlo.

Video Demo

IMAGE ALT TEXT HERE

Aclaracion: Este modulo es utilizado en ConvALPR

Yolo v4

Entrenamiento

Los modelos fueron entrenado con los siguientes datasets:

No se uso en ningun momento una patente vehicular de Argentina, aun asi no tiene problemas alguno en localizarlas

Yolo v4 (normal)

Los detalles de entramiento se encuentran en el yolov4_custom.cfg. Se uso:

  • Training con 448x448 (height,width)
  • random=1 (multi-scale training)
  • mosaic=1 (Mosaic Data Augmentation)

Yolo v4 tiny(SPP)

Este modelo es mucho mas ligero que Yolo v4, ya que la cantidad de layers (por ende parametros) es menor. Este tipo de red es útil para dispositivos de placa reducida (ej Jetson Nano). Se uso el mismo dataset mencionado previamente

Se uso:

  • mosaic=0 (Degrada la precisión en modelos chicos)
  • Resolución de 608x608 (para detectar objetos chicos)
  • SPP

¿Qué es SPP?

Spatial Pyramid Pooling es un método de aumentar el receptive field del modelo (mayor recepción de pixeles), sin causar un notable costo extra de computación. Esto los autores de YOLO v4 lo implementan de la siguiente forma:

Recibe un volumen de 19x19x512 (H,W,C) y le aplica Max-Pooling con filtros de tamaño 5x5 y 3x3 (Usa padding para que H y W preserven el tamaño). Al resultado de estos dos volúmenes los concatena con el bloque original, formando un nuevo volumen de 19x19x1536

Otros modelos

Ademas se encuentran variaciones de Yolo v4 Tiny con diferentes resoluciones de la imagen de entrada (608x608, 704x704, 832x832). Los que dicen custom_anchors, se le calcularon los anchors en base al dataset de patentes mencionado arriba.

Como usar los modelos (Darknet)

Para descargar, compilar y usar YOLO v4 seguí el tutorial oficial

Para YOLO v4 hay que utilizar el .cfg y .weights

Si lo quieren correr en la nube: demo en colab

Para ejecutarlo localmente hay que descargarlo del repositorio original. Luego se compila y para probarlo con un video:

./darknet.exe detector demo obj.data yolov4-tiny-spp-608x608.cfg yolov4-tiny-spp-608x608_best.weights video_entrada.mkv -dont_show -out_filename video_salida.mkv

Citas

@inproceedings{xu2018towards,
  title={Towards End-to-End License Plate Detection and Recognition: A Large Dataset and Baseline},
  author={Xu, Zhenbo and Yang, Wei and Meng, Ajin and Lu, Nanxue and Huang, Huan},
  booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
  pages={255--271},
  year={2018}
}

Releases

No releases published

Packages

No packages published