Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
L'objectif principal de ces instructables est de montrer à quel point le traitement de l'image sera facile, avec l'aide de MATLAB
La détection et le suivi des visages ont été un domaine de recherche important et actif, c'est pourquoi je vais expliquer comment cela peut être fait avec le Matlab.
Dans le tutoriel suivant, je vais faire les choses ci-dessous:
1. détecter les visages dans une image et compter.
2. détecter les yeux humains dans une image et compter.
3. détecter la bouche humaine dans une image et compter.
4. détecter les visages dans une vidéo et compter.
5. détecter les yeux humains dans une vidéo et compter.
6. détecter la bouche humaine dans une vidéo et compter.
Étape 1: Détection des visages dans une image et comptage
SCRIPT MATLAB:
effacer tout % effacer tous les objetsclc % effacer l'écran
FDetect = vision. CascadeObjectDetector; % Détecter les objets à l'aide de l'algorithme Viola-Jones
%Lire l'image d'entrée
image = imread('c:\Deskotp\HarryPotter.jpg'); %charger l'image en utilisant imread('file location\name.jpg')
BB = step(FDetect, image); % Renvoie les valeurs de la zone de délimitation en fonction du nombre d'objets
figure, imshow(I);
attendez
pour i = 1: taille(BB, 1)
rectangle('Position', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rouge, g-vert, b-bleu
finir
title('Détection de visage'); %title of the figurehold off;
Le résultat sera comme l'image qui a été jointe dans cette étape elle-même
Pour compter le nombre de visages détectés:
effacer tout % effacer tous les objetsclc % effacer l'écran
FDetect = vision. CascadeObjectDetector; %Détecter les objets à l'aide de l'algorithme Viola-Jones %Lire l'image d'entrée
image = imread('c:\Deskotp\HarryPotter.jpg'); %charger l'image en utilisant imread('file location\name.jpg')
BB = step(FDetect, image); % Renvoie les valeurs de la zone de délimitation en fonction du nombre d'objets
chiffre,
imshow(I);
attendez
pour i = 1: taille(BB, 1)
rectangle('Position', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rouge, g-vert, b-bleu
finir
text(10, 10, strcat('\couleur{rouge} nombre de faces =', num2str(longueur(BB)))); Cette ligne vous donne le compte
title('Détection de visage'); %titre de la figure
retenir;
Étape 2: Détection des yeux humains dans une image et comptage
SCRIPT MATLAB:
tout effacer;
clc;
%Pour détecter EyesEyeDetect = vision. CascadeObjectDetector('EyePairBig');
%Lire l'entrée
image = imread('c:\Deskotp\HarryPotter.jpg'); %charger l'image en utilisant imread('file location\name.jpg')
BB=étape(EyeDetect, image);
chiffre,
imshow(image);
rectangle('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
title('Détection des yeux');
Le résultat sera comme l'image qui a été jointe dans cette étape elle-même
Pour compter le nombre d'yeux détectés:
effacer tout;clc; %Pour détecter les yeux
EyeDetect = vision. CascadeObjectDetector('EyePairBig');
image = imread('c:\Deskotp\HarryPotter.jpg'); %charger l'image en utilisant imread('file location\name.jpg')
BB=step(EyeDetect, image);figure, imshow(image); rectangle('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
text(10, 10, strcat('\couleur{rouge} Nombre d'yeux =', num2str(longueur(BB))));
title('Détection des yeux');
Étape 3: Détecter la bouche humaine dans une image et compter
SCRIPT MATLAB:
tout effacer;
clc;
%Pour détecter la bouche
MouthDetect = vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16);
%Lire l'image d'entrée = imread('c:\Deskotp\HarryPotter.jpg'); %charger l'image en utilisant imread('file location\name.jpg')
BB=step(MouthDetect, image);
figure, imshow(image);
attendez
pour i = 1: taille (BB, 1)
rectangle('Position', BB(i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
finir
title('Détection de la bouche');
retenir;
Le résultat sera comme l'image qui a été jointe dans cette étape elle-même
Pour compter le nombre de Bouche détectée:
tout effacer; clc; %Pour détecter la bouche
MouthDetect = vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16); %Lire l'entrée
image = imread('c:\Deskotp\HarryPotter.jpg'); %charger l'image en utilisant imread('file location\name.jpg') BB=step(MouthDetect, image);
figure, imshow(image);
attendez
pour i = 1: taille(BB, 1)
rectangle('Position', BB(i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
finir
text(10, 10, strcat('\couleur{rouge} nombre de bouches =', num2str(longueur(BB))));
title('Détection de la bouche');
retenir;
Étape 4: Détecter les visages, les yeux, la bouche dans une vidéo et compter
tout effacer;
ferme tout;
clc;
% Capturez les images vidéo à l'aide de la fonction d'entrée vidéo % Vous devez remplacer la résolution et le nom de votre adaptateur installé.
a=vision. CascadeObjectDetector; %pour détecter le visage
% a=vision. CascadeObjectDetector('Bouche', 'Seuil de fusion', 16); %pour détecter la bouche
% a=vision. CascadeObjectDetector('EyePairBig'); %pour détecter les yeux
%n'utilisez qu'un seul (visage/yeux/bouche)
vid = videoinput('winvideo', 1, 'yuy2_320x240'); % Définir les propriétés de l'objet vidéo
set(vid, 'FramesPerTrigger', Inf);
set(vid, 'ReturnedColorspace', 'rgb');
vid. FrameGrabInterval = 5; %commencer l'acquisition vidéo ici
start(vid) % Définir une boucle qui s'arrête après 100 images d'acquisition
while(vid. FramesAcquired<=200) % Obtenir l'instantané de l'image actuelle
data = getsnapshot(vid);
imshow(données);
b=étape(a, données);
attendez
pour i=1: taille(b, 1)
rectangle('position', b(i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');
finir
retenir
text(10, 10, strcat('\couleur{vert} Nombre de faces =', num2str(longueur(b))));
finir
stop(vid); % Arrêter l'acquisition vidéo