Sommario:

MATLAB Easy Face Detection: 4 passaggi
MATLAB Easy Face Detection: 4 passaggi

Video: MATLAB Easy Face Detection: 4 passaggi

Video: MATLAB Easy Face Detection: 4 passaggi
Video: Face Recognition using Matlab 2024, Novembre
Anonim
MATLAB Easy Face Detection
MATLAB Easy Face Detection

L'obiettivo principale di questo tutorial è mostrare quanto facile sarà l'elaborazione delle immagini, con l'aiuto di MATLAB

Il rilevamento e il tracciamento dei volti è stato un campo di ricerca importante e attivo, ecco perché spiegherò come può essere fatto con Matlab.

Nel seguente tutorial farò le seguenti cose:

1.rilevare i volti in un'immagine e contarli.

2. Rilevamento di occhi umani in un'immagine e conteggio.

3. rilevamento della bocca umana in un'immagine e conteggio.

4.rilevare i volti in un video e contarli.

5. rilevamento di occhi umani in un video e conteggio.

6. rilevamento della bocca umana in un video e conteggio.

Passaggio 1: rilevamento dei volti in un'immagine e conteggio

Rilevamento dei volti in un'immagine e conteggio
Rilevamento dei volti in un'immagine e conteggio

SCRITTURA MATLAB:

cancella tutto % cancella tutti gli oggetticlc % cancella schermo

FDetect = vision. CascadeObjectDetector; %Rileva oggetti usando l'algoritmo Viola-Jones

%Leggi l'immagine in ingresso

image = imread('c:\Deskotp\HarryPotter.jpg'); %carica l'immagine usando imread('posizione file\nome.jpg')

BB = passo(FDetect, immagine); %Restituisce i valori del riquadro di delimitazione in base al numero di oggetti

figura, imshow(I);

aspettare

per i = 1: dimensione (BB, 1)

rettangolo('Position', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rosso, g-verde, b-blu

fine

title('Rilevamento del volto'); %titolo della cifra detenuta;

Il risultato sarà come l'immagine che è stata allegata in questo passaggio stesso

Per contare il numero di volti rilevati:

cancella tutto % cancella tutti gli oggetticlc % cancella schermo

FDetect = vision. CascadeObjectDetector; %Rileva oggetti usando l'algoritmo Viola-Jones %Leggi l'immagine in ingresso

image = imread('c:\Deskotp\HarryPotter.jpg'); %carica l'immagine usando imread('posizione file\nome.jpg')

BB = passo(FDetect, immagine); %Restituisce i valori del riquadro di delimitazione in base al numero di oggetti

figura,

imshow(I);

aspettare

per i = 1: dimensione (BB, 1)

rettangolo('Position', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rosso, g-verde, b-blu

fine

text(10, 10, strcat('\color{red} Numero di facce =', num2str(length(BB)))); Questa linea ti dà il conteggio

title('Rilevamento del volto'); %titolo della figura

tenere a bada;

Passaggio 2: rilevamento di occhi umani in un'immagine e conteggio

Rilevamento di occhi umani in un'immagine e conteggio
Rilevamento di occhi umani in un'immagine e conteggio

SCRITTURA MATLAB:

cancella tutto;

clc;

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

%Leggi l'input

image = imread('c:\Deskotp\HarryPotter.jpg'); %carica l'immagine utilizzando imread('posizione file\nome.jpg')

BB=step(EyeDetect, immagine);

figura,

imshow(immagine);

rettangolo('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

title('Rilevamento occhi');

Il risultato sarà come l'immagine che è stata allegata in questo passaggio stesso

Per contare il numero di occhi rilevati:

cancella tutto;clc; %Per rilevare gli occhi

EyeDetect = vision. CascadeObjectDetector('EyePairBig');

image = imread('c:\Deskotp\HarryPotter.jpg'); %carica l'immagine utilizzando imread('posizione file\nome.jpg')

BB=step(EyeDetect, image);figure, imshow(image); rettangolo('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

text(10, 10, strcat('\color{red} Numero di occhi =', num2str(length(BB))));

title('Rilevamento occhi');

Passaggio 3: rilevamento della bocca umana in un'immagine e conteggio

Rilevamento della bocca umana in un'immagine e conteggio
Rilevamento della bocca umana in un'immagine e conteggio

SCRITTURA MATLAB:

cancella tutto;

clc;

%Per rilevare la bocca

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

%Leggi l'immagine di input = imread('c:\Deskotp\HarryPotter.jpg'); %carica l'immagine utilizzando imread('posizione file\nome.jpg')

BB=passo(Rileva bocca, immagine);

figura, imshow(immagine);

aspettare

per i = 1: dimensione (BB, 1)

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

fine

title('Rilevamento bocca');

tenere a bada;

Il risultato sarà come l'immagine che è stata allegata in questo passaggio stesso

Per contare il numero di Bocca rilevate:

cancella tutto; clc; %Per rilevare la bocca

MouthDetect = vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16); %Leggi l'input

image = imread('c:\Deskotp\HarryPotter.jpg'); %carica l'immagine usando imread('posizione file\nome.jpg') BB=step(MouthDetect, image);

figura, imshow(immagine);

aspettare

per i = 1: dimensione (BB, 1)

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

fine

text(10, 10, strcat('\color{red} Numero di bocche =', num2str(length(BB))));

title('Rilevamento bocca');

tenere a bada;

Passaggio 4: rilevamento di volti, occhi, bocca in un video e conteggio

cancella tutto;

chiudi tutto;

clc;

% Cattura i fotogrammi video utilizzando la funzione di ingresso video % Devi sostituire la risoluzione e il nome dell'adattatore installato.

a=vision. CascadeObjectDetector; %per rilevare il viso

% a=vision. CascadeObjectDetector('Bocca', 'MergeThreshold', 16); %per rilevare la bocca

% a=vision. CascadeObjectDetector('EyePairBig'); %per rilevare gli occhi

% usane solo uno (viso/occhi/bocca)

vid = videoinput('winvideo', 1, 'yuy2_320x240'); % Imposta le proprietà dell'oggetto video

set(vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %inizia l'acquisizione video qui

start(vid) % Imposta un loop che si ferma dopo 100 fotogrammi di acquisizione

while(vid. FramesAcquired<=200) % Ottieni l'istantanea del frame corrente

data = getsnapshot(vid);

imshow (dati);

b=passo(a, dati);

aspettare

per i=1:dimensione(b, 1)

rettangolo('posizione', b(i,:), 'larghezza linea', 2, 'stile linea', '-', 'EdgeColor', 'r');

fine

tenere a bada

text(10, 10, strcat('\color{green} Numero di facce =', num2str(length(b))));

fine

ferma (vide); % Interrompi l'acquisizione video

Consigliato: