Recherche sur la reconnaissance et la détection des plaques d'immatriculation des véhicules en environnement complexe et sévère basée sur Matlab

        Le développement rapide de la science et de la technologie a fait de l'automobile un moyen de transport important dans la société moderne et a favorisé une nouvelle génération de systèmes de transport intelligents. La technologie de reconnaissance des plaques d'immatriculation, en tant que pierre angulaire du transport intelligent, fournit un support technique pour la gestion du trafic et rend la conduite des gens est plus pratique et rapide. . En combinant la reconnaissance des plaques d'immatriculation avec un logiciel informatique et en utilisant la technologie de traitement d'images numériques sur la plate-forme MATLAB, les images de véhicules collectées sont exploitées, et l'emplacement de la plaque d'immatriculation et la segmentation des caractères sont terminés. Dans le même temps, le procédé de reconnaissance de correspondance de modèle amélioré est appliqué à la reconnaissance de caractères, de sorte que le système peut correctement reconnaître les caractères de la plaque d'immatriculation et réaliser l'objectif de reconnaissance automatique de la plaque d'immatriculation. Visant les inconvénients apportés par l'inclinaison de la plaque d'immatriculation à la segmentation et à la reconnaissance des caractères, un algorithme de correction de l'inclinaison de la plaque d'immatriculation basé sur l'opérateur de Sobel et la transformée de Radon est proposé. Effectuez d'abord la détection des bords sur le graphique de la plaque d'immatriculation, puis effectuez une transformation Radon sur celui-ci pour déterminer l'angle d'inclinaison de la plaque d'immatriculation dans les directions horizontale et verticale. Combiné avec les angles d'inclinaison dans différentes directions, une interpolation bilinéaire et une correction de rotation sont effectuées sur les plaques d'immatriculation inclinées horizontalement et verticalement respectivement et la correction du décalage de désalignement. Enfin, l'algorithme est comparé à l'algorithme de correction de l'inclinaison de la plaque d'immatriculation proposé dans la littérature. Les résultats montrent que l'algorithme a un meilleur effet de correction de l'inclinaison de la plaque d'immatriculation, une efficacité de calcul élevée et une insensibilité à la saleté et à la lumière, et a une large perspective d'application.

1. Analyse d'algorithme

Conception globale du système Le système de reconnaissance de plaques d'immatriculation conçu dans cet article utilise le logiciel MATLAB pour programmer la conception et les expériences de simulation. Le logiciel MATLAB a les fonctions d'analyse numérique, de calcul, de système de contrôle de conception, etc., et dispose de puissantes fonctions de bibliothèque dans le traitement d'image numérique, qui peuvent parfaitement compléter le traitement d'image et réaliser la visualisation des images traitées. Les étapes spécifiques de la reconnaissance des plaques d'immatriculation des voitures comprennent principalement la lecture d'images, le prétraitement, le positionnement de l'image de la plaque d'immatriculation, la correction de l'inclinaison, la segmentation des caractères et la reconnaissance des caractères.

1.1 Lecture et prétraitement des images

        Premièrement, la fonction imread est appliquée pour lire l'image du véhicule collectée avec la plaque d'immatriculation, et deuxièmement, l'image est prétraitée. Les opérations de prétraitement comprennent le réarrangement des pixels de l'image et l'amélioration de l'image. Dans les applications pratiques, afin d'assurer la clarté de l'image, des caméras haute résolution, des téléphones portables et d'autres équipements d'acquisition sont souvent utilisés, et les pixels d'image acquis sont trop grands, ce qui réduira la vitesse du système de reconnaissance, et même provoquer un gel. . Par conséquent, afin de faire fonctionner le système en douceur, d'améliorer la vitesse de traitement et de réinitialiser les pixels de l'image lue, la fonction imresize est utilisée pour unifier la taille de l'image à 520×390. Dans le même temps, en raison de l'influence de l'environnement extérieur, l'image du véhicule collectée peut être trop sombre. Par conséquent, il est nécessaire d'effectuer un traitement d'amélioration de l'image pour s'assurer que la plaque d'immatriculation est claire et claire, afin de préparer le travail de suivi.

1.2 Positionnement de l'image de la plaque d'immatriculation

        Les images de véhicules collectées ont souvent des arrière-plans complexes, il est donc nécessaire de localiser avec précision la plaque d'immatriculation, ce qui est crucial pour les opérations ultérieures. Si le positionnement est erroné ou pas assez précis, cela entraînera directement une mauvaise reconnaissance de la plaque d'immatriculation. En Chine, les plaques d'immatriculation sont disponibles dans une variété de couleurs de base, notamment le jaune, le bleu, le blanc, le noir et le vert. Dans le même temps, la plaque d'immatriculation a une taille de contour fixe, et la couleur et la taille de la plaque d'immatriculation de différents modèles sont différentes. L'État stipule que la taille de la petite plaque d'immatriculation de voiture est de 440 mm × 140 mm et que la couleur est blanche sur fond bleu. Un traitement morphologique a été effectué sur les images tramées en couleur. Les opérations morphologiques des images binaires comprennent principalement les opérations d'érosion, de dilatation, d'ouverture et de fermeture, qui sont utilisées pour extraire les composants cibles de l'image. Il est utilisé ici pour simplifier les informations de données de l'image de la plaque d'immatriculation. Tout d'abord, appelez la fonction sterl dans MATLAB pour construire l'opérateur d'érosion et utilisez la fonction imerode pour éroder les informations dans la zone sans plaque d'immatriculation. Utilisez ensuite la fonction d'opération de fermeture imclose pour supprimer la zone de bruit, combler l'espace étroit, remplir le trou et faire en sorte que la cible fusionne en une seule et devienne lisse. L'opérateur Canny est utilisé pour détecter le bord de l'image, et le rapport d'aspect du domaine connecté est calculé, et la cible est découpée selon le seuil prédéfini. Dans le processus de fonctionnement réel, la plaque d'immatriculation cible interceptée est inclinée.Afin de faciliter le travail de suivi, il est nécessaire d'utiliser la méthode de projection pour la corriger ici. Scannez ensuite la cible dans les directions des lignes et des colonnes, utilisez la méthode de projection pour diviser la position spécifique de la plaque d'immatriculation, complétez le positionnement précis et évitez l'interférence d'un arrière-plan redondant.

 1.3 Correction de la plaque d'immatriculation

        L'algorithme de correction de l'inclinaison de la plaque d'immatriculation est le suivant : convertissez d'abord l'image de la plaque d'immatriculation en une image en niveaux de gris, puis effectuez la détection des contours dans les directions horizontale et verticale, puis utilisez la transformation de Radon pour calculer l'angle d'inclinaison de la plaque d'immatriculation dans les directions horizontale et verticale. directions verticales, et effectuer bilinéaire en fonction de l'angle d'inclinaison.Correction de rotation interpolée et correction de décalage de désalignement. L'angle d'inclinaison de la plaque d'immatriculation est divisé en angle d'inclinaison horizontal et angle d'inclinaison vertical. Une fois l'image de la plaque d'immatriculation d'origine convertie, une transformation Radon est effectuée dessus pour obtenir respectivement l'angle d'inclinaison du véhicule.

Deuxièmement, l'implémentation du code

%=====================读入图片================================
[fn,pn,fi]=uigetfile('*.jpg','选择图片');
if isequal(fn,0)||isequal(pn,0)||isequal(fi,0)
    errordlg('您还没有选取图片!!','温馨提示');%如果没有输入,则创建错误对话框
    return;
end
I=imread([pn fn]);figure,imshow(I);title('原始图像');%显示原始图像
chepailujing=[pn fn];
I_bai=I;
[PY2,PY1,PX2,PX1]=caitu_fenge(I);

% I=rgb2hsv(I);
% [PY2,PY1,PX2,PX1]=caitu_tiqu(I,I_bai);%用HSI模型识别蓝色,用rgb模型识别白色
%================分割车牌区域=================================

%===============车牌区域根据面积二次修正======================
[PY2,PY1,PX2,PX1,threshold]=SEC_xiuzheng(PY2,PY1,PX2,PX1);
%==============更新图片=============================
Plate=I_bai(PY1:PY2,PX1:PX2,:);%使用caitu_tiqu
%==============考虑用腐蚀解决蓝色车问题=============
bw=Plate;figure,imshow(bw);title('车牌图像');%hsv彩图提取图像
%==============这里要根据图像的倾斜度进行选择这里选择的图片20090425686.jpg
bw=rgb2gray(bw);figure,imshow(bw);title('灰度图像');
%================倾斜校正======================
qingxiejiao=rando_bianhuan(bw);
bw=imrotate(bw,qingxiejiao,'bilinear','crop');figure,imshow(bw);
title('倾斜校正');%取值为负值向右旋转
%==============================================
bw=im2bw(bw,graythresh(bw));%figure,imshow(bw);
bw=bwmorph(bw,'hbreak',inf);%figure,imshow(bw);
bw=bwmorph(bw,'spur',inf);%figure,imshow(bw);title('擦除之前');
bw=bwmorph(bw,'open',5);%figure,imshow(bw);title('闭合运算');
bw = bwareaopen(bw, threshold);figure,imshow(bw);title('擦除');
%==========================================================
bw=~bw;figure,imshow(bw);title('擦除反色'); 
%=============对图像进一步裁剪,保证边框贴近字体===========
bw=touying(bw);figure;imshow(bw);title('Y方向处理');
bw=~bw;
bw = bwareaopen(bw, threshold);
bw=~bw;%figure,imshow(bw);title('二次擦除');
[y,x]=size(bw);%对长宽重新赋值
%=================文字分割=================================
fenge=shuzifenge(bw,qingxiejiao);
[m,k]=size(fenge);
%=================显示分割图像结果========================= 
figure;
for s=1:2:k-1
    subplot(1,k/2,(s+1)/2);imshow(bw( 1:y,fenge(s):fenge(s+1)));
end
%================ 给七张图片定位===============桂AV6388
han_zi  =bw( 1:y,fenge(1):fenge(2));
zi_mu   =bw( 1:y,fenge(3):fenge(4));
zm_sz_1 =bw( 1:y,fenge(5):fenge(6));
zm_sz_2 =bw( 1:y,fenge(7):fenge(8));  
shuzi_1 =bw( 1:y,fenge(9):fenge(10)); 
shuzi_2 =bw( 1:y,fenge(11):fenge(12)); 
shuzi_3 =bw( 1:y,fenge(13):fenge(14)); 
%==========================识别====================================
%======================把修正数据读入==============================
xiuzhenghanzi =   imresize(han_zi, [110 55],'bilinear');
xiuzhengzimu  =   imresize(zi_mu,  [110 55],'bilinear');
xiuzhengzm_sz_1=  imresize(zm_sz_1,[110 55],'bilinear');
xiuzhengzm_sz_2 = imresize(zm_sz_2,[110 55],'bilinear');
xiuzhengshuzi_1 = imresize(shuzi_1,[110 55],'bilinear');
xiuzhengshuzi_2 = imresize(shuzi_2,[110 55],'bilinear');
xiuzhengshuzi_3 = imresize(shuzi_3,[110 55],'bilinear');

références

[1] Guan Liangliang, Fan Xu.Modélisation du mécanisme de direction du chariot élévateur et simulation de mouvement [J].Technologie pratique automobile, 2019.

[2] Li Heng, Zheng Meng. Analyse cinématique du mécanisme de direction mobile synchrone d'un robot d'esquive [J]. Transmission mécanique, 2020.


Pour plus de détails, veuillez cliquer sur : 1341703358. L' angle d'inclinaison de cet article consiste à effectuer une correction de rotation par interpolation bilinéaire et une correction de décalage de dislocation pour les plaques d'immatriculation inclinées horizontalement et verticalement, respectivement. Enfin, l'algorithme est comparé à l'algorithme de correction de l'inclinaison de la plaque d'immatriculation proposé dans la littérature. Les résultats montrent que l'algorithme a un meilleur effet de correction de l'inclinaison de la plaque d'immatriculation, une efficacité de calcul élevée et une insensibilité à la saleté et à la lumière, et a une large perspective d'application.

Je suppose que tu aimes

Origine blog.csdn.net/Jiangtagong/article/details/124131900
conseillé
Classement