Table des matières:

Détection facile des visages MATLAB : 4 étapes
Détection facile des visages MATLAB : 4 étapes

Vidéo: Détection facile des visages MATLAB : 4 étapes

Vidéo: Détection facile des visages MATLAB : 4 étapes
Vidéo: Realtime Face Emotion Recognition | MATLAB | Transfer Learning| Train your own images 2024, Juillet
Anonim
Détection facile des visages MATLAB
Détection facile des visages MATLAB

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

Détection des visages dans une image et comptage
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

Détection des yeux humains dans une image et comptage
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

Détecter la bouche humaine dans une image et compter
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

Conseillé: