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. |
L'algorithme est basé sur la détection de petites structures noires (les caractères). Il distingue 4 étapes :
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. |
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. |
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. |
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. |
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. |
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. |