Équipe IMAGE - Le projet Pantheon

Tutoriel : Détecter des plaques d'immatriculation

Identification

Ressources

I. Objectif

Le but est de localiser les régions correspondant à des plaques d'immatriculation dans des images d'arrière de véhicule prises avec un téléphone portable. Chaque région détectée est localisée dans une boîte englobante sur laquelle on peut ensuite lancer un OCR pour reconnaître les caractères.

Le critère d'optimisation est de maximiser la détection. Donc, il n'y a pas d'élimination fine des fausses détections. Les résultats peuvent donc être raffinés par la suite en utilisant des connaissances sur les plaque d'immatriculation comme le rapport largeur/hauteur ou la position pour éliminer les fausses régions.

L'image initiale.L'image résultat.

II. Méthode

L'algorithme est basé sur la détection de petites structures noires (les caractères). Il distingue 4 étapes  :

  1. Localisation des petites structures locales noires avec un chapeau haut-de-forme. Cela nécessite un paramètre : l'épaisseur d'un caractère.
  2. Sélection des structures les plus contrastées en utilisant le seuillage par entropie. Cela nécessite un paramètre : la distance maximale entre deux caractères.
  3. Formation des plaques candidates en utilisant une fermeture horizontale. Cela nécessite un paramètre : la distance maximale entre deux caractères.
  4. Suppression des fausses alarmes à partir de la taille. Cela nécessite au moins trois paramètres : la largeur minimale, la hauteur minimale et maximale des plaques d'immatriculation.

II.1 Localisation des structures locales noires

La localisation est basée sur l'utilisation d'un chapeau haut-de-forme noir avec un élément structurant de la taille d'un caractère (ici 7 pixels soit la demi-taille à 3). Cette opération agit par suppression des petites structures noires par une fermeture, puis par différence avec l'image initiale pour ne garder que les petites structures.

pany2pan input.png input.pan
prgb2gray 50 50 0 input.pan tmp1.pan
pdilatation 1 3 tmp1.pan tmp2.pan
perosionreconstruction 8 tmp2.pan tmp1.pan tmp3.pan
pdif tmp3.pan tmp1.pan tmp4.pan
tmp2.pan : Après la dilatation de demi-taille 3.
tmp3.pan : Après l'érosion de demi-taille 3.
tmp4.pan : Après la différence.

II.2 Sélection des structures les plus contrastées

La détection des régions candidates commence par une binarisation pour ne garder que les petites structures très marquées (très claires) dans l'image de différence. La binarisation utilise le seuillage par entropie adapté à la séparation en deux classes : un grand fond et des petites structures.

pentropybinarization tmp4.pan tmp5.pan
tmp5.pan : Après la binarisation.

II.3 Détection de régions candidates

Puis on procède à une fermeture horizontale pour fusionner ensemble les petites structures très proches dans une région unique. La fermeture nécessite le paramètre de la demi-distance horizontale maximale entre deux caractères (10 pixels).

plineardilatation 0 0 10 tmp5.pan tmp6.pan
plinearerosion 0 0 10 tmp6.pan tmp7.pan
tmp7.pan : Après la fermeture horizontale.

II.4 Suppression des fausses alarmes

La suppression des fausses alarmes se fait à partir de la taille des régions. Cela nécessite trois paramètres : la demi-largeur minimale (ici 20 pixels), la demi-hauteur maximale (ici 7 pixels) et la demi-largeur maximale (ici 20 pixels) des plaques d'immatriculation.

plinearerosion 90 0 20 tmp7.pan tmp8.pan
plineardilatation 90 0 20 tmp8.pan tmp9.pan
pdif tmp9.pan tmp7.pan tmp10.pan
plinearerosion 90 0 5 tmp10.pan tmp21.pan
plinearerosion 0 0 20 tmp21.pan tmp12.pan
pgeodesicdilatation 0 1 -1 tmp12.pan tmp10.pan tmp13.pan
tmp13.pan : Après l'élimination des fausses régions.

II.5 Localisation dans des boîtes englobantes

La boîte englobante permet de bien localiser la plaque puisqu'une plaque est une région rectangulaire horizontale.

plabeling 8 tmp13.pan tmp14.pan
pboundingbox tmp14.pan tmp15.pan
tmp15.pan : Localisation de la plaque dans une boîte englobante.

II.6 Superposition du résultat sur l'image originale

Cette opération n'est ajoutée que pour des raisons de visualisation.

pboundary 8 tmp15.pan tmp16.pan
psuperimposition 1 input.pan tmp16.pan output.pan
ppan2png output.pan output.png
output.pan : Le résultat.

III. Le script Pandore complet


Projet Panthéon
Equipe Image Laboratoire GREYC
UMR CNRS 6072 - ENSICAEN - Université de Caen, France
Page modifiée le 27 September 2018