Taula de continguts:

MATLAB Easy Face Detection: 4 passos
MATLAB Easy Face Detection: 4 passos

Vídeo: MATLAB Easy Face Detection: 4 passos

Vídeo: MATLAB Easy Face Detection: 4 passos
Vídeo: Real time face detection using MATLAB || let's dECodE || 2024, De novembre
Anonim
MATLAB Easy Face Detection
MATLAB Easy Face Detection

L'objectiu principal d'aquest instructable és mostrar el fàcil que serà el processament d'imatges, amb l'ajuda de MATLAB

La detecció i seguiment de cares ha estat un camp de recerca important i actiu, de manera que us explico com es pot fer amb el Matlab.

Al següent tutorial faré el següent:

1. detectar cares en una imatge i comptar.

2. detectar els ulls humans en una imatge i comptar.

3. detectar la boca humana en una imatge i comptar.

4. detectar cares en un vídeo i comptar.

5. detectar ulls humans en un vídeo i comptar.

6. detectar la boca humana en un vídeo i comptar.

Pas 1: Detecció de cares en una imatge i recompte

Detecció de cares en una imatge i recompte
Detecció de cares en una imatge i recompte

GUIÓ DE MATLAB:

neteja tot% neteja tot objectsclc% neteja la pantalla

FDetect = vision. CascadeObjectDetector; % Detectar objectes mitjançant l'algorisme Viola-Jones

% Llegiu la imatge d'entrada

imatge = imread ('c: / Deskotp / HarryPotter.jpg'); % carrega la imatge mitjançant imread ('ubicació del fitxer / nom.jpg')

BB = pas (FDetect, imatge); % Retorna els valors del quadre delimitat en funció del nombre d'objectes

figura, imshow (I);

espera

per a i = 1: mida (BB, 1)

rectangle ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); % r-vermell, g-verd, b-blau

final

title ('Detecció de cares'); % títol de la xifra desactivada;

El resultat serà com la imatge que s'ha adjuntat en aquest pas

Per comptar el nombre de cares detectades:

neteja tot% neteja tot objectsclc% neteja la pantalla

FDetect = vision. CascadeObjectDetector; % Detecta objectes mitjançant l'algorisme Viola-Jones% Llegeix la imatge d'entrada

imatge = imread ('c: / Deskotp / HarryPotter.jpg'); % carrega la imatge mitjançant imread ('ubicació del fitxer / nom.jpg')

BB = pas (FDetect, imatge); % Retorna els valors del quadre delimitat en funció del nombre d'objectes

figura,

imshow (I);

espera

per a i = 1: mida (BB, 1)

rectangle ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); % r-vermell, g-verd, b-blau

final

text (10, 10, strcat ('\ color {red} Nombre de cares =', num2str (longitud (BB)))); Aquesta línia us dóna el recompte

title ('Detecció de cares'); % títol de la figura

mantenir-se a distancia;

Pas 2: detectar els ulls humans en una imatge i comptar

Detectar els ulls humans en una imatge i comptar
Detectar els ulls humans en una imatge i comptar

GUIÓ DE MATLAB:

netejar-ho tot;

clc;

% Per detectar EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

% Llegiu l'entrada

imatge = imread ('c: / Deskotp / HarryPotter.jpg'); % carrega la imatge mitjançant imread ('ubicació del fitxer / nom.jpg')

BB = pas (EyeDetect, imatge);

figura,

imshow (imatge);

rectangle ('Posició', BB, 'Amplada de línia', 4, 'Estil de línia', '-', 'EdgeColor', 'b');

title ('Detecció d'ulls');

El resultat serà com la imatge que s’ha adjuntat en aquest pas

Per comptar el nombre d'ulls detectats:

neteja-ho tot; clc; % Per detectar ulls

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

imatge = imread ('c: / Deskotp / HarryPotter.jpg'); % carrega la imatge mitjançant imread ('ubicació del fitxer / nom.jpg')

BB = pas (EyeDetect, imatge); figura, imshow (imatge); rectangle ('Posició', BB, 'Amplada de línia', 4, 'Estil de línia', '-', 'EdgeColor', 'b');

text (10, 10, strcat ('\ color {red} Nombre d'ulls =', num2str (longitud (BB))));

title ('Detecció d'ulls');

Pas 3: detectar la boca humana en una imatge i comptar

Detectar la boca humana en una imatge i comptar
Detectar la boca humana en una imatge i comptar

GUIÓ DE MATLAB:

netejar-ho tot;

clc;

% Per detectar la boca

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16);

% Llegiu la imatge d'entrada = imread ('c: / Deskotp / HarryPotter.jpg'); % carrega la imatge mitjançant imread ('ubicació del fitxer / nom.jpg')

BB = pas (MouthDetect, imatge);

figura, imshow (imatge);

espera

per a i = 1: mida (BB, 1)

rectangle ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

final

title ('Detecció de boca');

mantenir-se a distancia;

El resultat serà com la imatge que s'ha adjuntat en aquest pas

Per comptar el nombre de boca detectada:

netejar-ho tot; clc; % Per detectar la boca

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); % Llegiu l'entrada

imatge = imread ('c: / Deskotp / HarryPotter.jpg'); % carrega la imatge utilitzant imread ('ubicació del fitxer / nom.jpg') BB = step (MouthDetect, imatge);

figura, imshow (imatge);

espera

per a i = 1: mida (BB, 1)

rectangle ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

final

text (10, 10, strcat ('\ color {red} Nombre de boques =', num2str (longitud (BB))));

title ('Detecció de boca');

mantenir-se a distancia;

Pas 4: detectar rostres, ulls, boca en un vídeo i comptar

netejar-ho tot;

tancar-ho tot;

clc;

% Captureu els marcs de vídeo mitjançant la funció d'entrada de vídeo% Heu de substituir la resolució i el nom de l'adaptador instal·lat.

a = vision. CascadeObjectDetector; % per detectar la cara

% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); % per detectar la boca

% a = vision. CascadeObjectDetector ('EyePairBig'); % per detectar ulls

% només utilitza qualsevol (cara / ulls / boca)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Definiu les propietats de l'objecte de vídeo

set (vid, 'FramesPerTrigger', Inf);

set (vid, 'ReturnedColorspace', 'rgb');

vid. FrameGrabInterval = 5; Comenceu l'adquisició de vídeo aquí

start (vid)% Estableix un bucle que s'aturi després de 100 fotogrames d'adquisició

while (vid. FramesAcquired <= 200)% Obtén la instantània del marc actual

data = getsnapshot (vid);

imshow (dades);

b = pas (a, dades);

espera

per a i = 1: mida (b, 1)

rectangle ('posició', b (i,:), 'amplada de línia', 2, 'estil de línia', '-', 'EdgeColor', 'r');

final

mantenir-se a distancia

text (10, 10, strcat ('\ color {green} Nombre de cares =', num2str (longitud (b))));

final

parar (vid); % Atureu l'adquisició de vídeo

Recomanat: