Sadržaj:

MATLAB Jednostavno otkrivanje lica: 4 koraka
MATLAB Jednostavno otkrivanje lica: 4 koraka

Video: MATLAB Jednostavno otkrivanje lica: 4 koraka

Video: MATLAB Jednostavno otkrivanje lica: 4 koraka
Video: The Expert (Short Comedy Sketch) 2024, Juli
Anonim
MATLAB Jednostavno otkrivanje lica
MATLAB Jednostavno otkrivanje lica

Glavni cilj ovih instrukcija je pokazati koliko će lako biti obrada slike uz pomoć MATLAB -a

Otkrivanje i praćenje lica bilo je važno i aktivno polje istraživanja, pa ću zato objasniti kako se to može učiniti s Matlabom.

U sljedećem vodiču ću napraviti sljedeće:

1. otkrivanje lica na slici i brojanje.

2. otkrivanje ljudskih očiju na slici i brojanje.

3. otkrivanje ljudskih usta na slici i brojanje.

4. otkrivanje lica u videu i brojanje.

5. otkrivanje ljudskih očiju u videu i brojanje.

6. otkrivanje ljudskih usta u videu i brojanje.

Korak 1: Otkrivanje lica na slici i brojanje

Otkrivanje lica na slici i brojanje
Otkrivanje lica na slici i brojanje

MATLAB SCRIPT:

obriši sve % očisti sve objekteclc % očisti ekran

FDetect = vision. CascadeObjectDetector; %Otkrivanje objekata pomoću Viola-Jonesovog algoritma

%Pročitajte ulaznu sliku

image = imread ('c: / Deskotp / HarryPotter.jpg'); %učitavanje slike pomoću imread ('file location / name.jpg')

BB = korak (FDetect, slika); %Vraća vrijednosti graničnog okvira na osnovu broja objekata

figura, imshow (I);

Čekaj

za i = 1: veličina (BB, 1)

pravokutnik ('Pozicija', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -crveno, g-zeleno, b-plavo

kraj

naslov ('Otkrivanje lica'); %naslov brojčanika isključen;

Rezultat će biti poput slike koja je priložena u ovom koraku

Da biste prebrojili broj otkrivenih lica:

obriši sve % očisti sve objekteclc % očisti ekran

FDetect = vision. CascadeObjectDetector; %Otkrivanje objekata pomoću Viola-Jones algoritma %Pročitajte ulaznu sliku

image = imread ('c: / Deskotp / HarryPotter.jpg'); %učitavanje slike pomoću imread ('file location / name.jpg')

BB = korak (FDetect, slika); %Vraća vrijednosti graničnog okvira na osnovu broja objekata

figura,

imshow (I);

Čekaj

za i = 1: veličina (BB, 1)

pravokutnik ('Pozicija', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -crveno, g-zeleno, b-plavo

kraj

text (10, 10, strcat ('\ color {red} Broj lica =', num2str (dužina (BB)))); Ova linija vam daje broj

naslov ('Otkrivanje lica'); %naslov figure

zadržati;

Korak 2: Otkrivanje ljudskih očiju na slici i brojanje

Otkrivanje ljudskih očiju na slici i brojanje
Otkrivanje ljudskih očiju na slici i brojanje

MATLAB SCRIPT:

obriši sve;

clc;

%Za otkrivanje EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

%Pročitajte unos

image = imread ('c: / Deskotp / HarryPotter.jpg'); %učitavanje slike pomoću imread ('file location / name.jpg')

BB = korak (EyeDetect, slika);

figura,

imshow (slika);

pravokutnik ('Pozicija', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

naslov ('Otkrivanje očiju');

Rezultat će biti poput slike koja je priložena u ovom koraku

Za brojanje broja otkrivenih očiju:

obriši sve; clc; %Za otkrivanje očiju

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %učitavanje slike pomoću imread -a ('lokacija datoteke / ime.jpg')

BB = korak (EyeDetect, slika); figura, imshow (slika); pravokutnik ('Pozicija', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

text (10, 10, strcat ('\ color {red} No of eyes =', num2str (length (BB))));

naslov ('Otkrivanje očiju');

Korak 3: Otkrivanje ljudskih usta na slici i brojanje

Otkrivanje ljudskih usta na slici i brojanje
Otkrivanje ljudskih usta na slici i brojanje

MATLAB SCRIPT:

obriši sve;

clc;

%Za otkrivanje usta

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

%Pročitajte ulaznu sliku = imread ('c: / Deskotp / HarryPotter.jpg'); %učitavanje slike pomoću imread -a ('lokacija datoteke / ime.jpg')

BB = korak (MouthDetect, slika);

figura, imshow (slika);

Čekaj

za i = 1: veličina (BB, 1)

pravokutnik ('Pozicija', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

kraj

naslov ('Otkrivanje usta');

zadržati;

Rezultat će biti poput slike koja je priložena u ovom koraku

Za brojanje broja otkrivenih usta:

obriši sve; clc; %Za otkrivanje usta

MouthDetect = vision. CascadeObjectDetector ('Usta', 'MergeThreshold', 16); %Pročitajte unos

image = imread ('c: / Deskotp / HarryPotter.jpg'); %učitavanje slike pomoću imread ('file location / name.jpg') BB = step (MouthDetect, image);

figura, imshow (slika);

Čekaj

za i = 1: veličina (BB, 1)

pravokutnik ('Pozicija', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

kraj

text (10, 10, strcat ('\ color {red} No of mouths', num2str (length (BB))));

naslov ('Otkrivanje usta');

zadržati;

Korak 4: Otkrivanje lica, očiju, usta u videu i brojanje

obriši sve;

zatvori sve;

clc;

% Snimite video okvire pomoću funkcije video ulaza % Morate zamijeniti rezoluciju i naziv instaliranog adaptera.

a = vision. CascadeObjectDetector; %za otkrivanje lica

% a = vision. CascadeObjectDetector ('Usta', 'MergeThreshold', 16); %za otkrivanje usta

% a = vision. CascadeObjectDetector ('EyePairBig'); %za otkrivanje očiju

%koristite samo jednu (lice/oči/usta)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Postavite svojstva video objekta

set (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %ovdje započinju akviziciju videozapisa

start (vid) % Postavite petlju koja se zaustavlja nakon 100 sličica akvizicije

while (vid. FramesAcquired <= 200) % Dobijte snimak trenutnog okvira

data = getsnapshot (vid);

imshow (podaci);

b = korak (a, podaci);

Čekaj

za i = 1: veličina (b, 1)

pravokutnik ('position', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

kraj

izdrži

text (10, 10, strcat ('\ color {green} Broj lica =', num2str (dužina (b))));

kraj

stop (vid); % Zaustavite akviziciju video zapisa

Preporučuje se: