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: MJC Stream: Видишь енота? А он есть! Главное об ML и компьютерном зрении 2024, Studeni
Anonim
MATLAB Jednostavno otkrivanje lica
MATLAB Jednostavno otkrivanje lica

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

Otkrivanje i praćenje lica bilo je važno i aktivno područje 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:

clear all % clear all objectsclc % clear screen

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 ('lokacija datoteke / ime.jpg')

BB = korak (FDetect, slika); %Vraća vrijednosti okvira za ograničavanje na temelju broja objekata

lik, imshow (I);

drži se

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

Za brojanje broja otkrivenih lica:

clear all % clear all objectsclc % clear screen

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 ('lokacija datoteke / ime.jpg')

BB = korak (FDetect, slika); %Vraća vrijednosti okvira za ograničavanje na temelju broja objekata

lik,

imshow (I);

drži se

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 prikazuje broj

naslov ('Otkrivanje lica'); %naslov figure

odgađ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:

očistiti sve;

clc;

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

%Pročitajte unos

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

BB = korak (EyeDetect, slika);

lik,

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:

počisti sve; clc; %Za otkrivanje očiju

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %učitavanje slike pomoću imread ('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:

očistiti 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 ('lokacija datoteke / ime.jpg')

BB = korak (MouthDetect, slika);

lik, imshow (slika);

drži se

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

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

kraj

naslov ('Otkrivanje usta');

odgađati;

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

Za brojanje broja otkrivenih usta:

očistiti 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);

lik, imshow (slika);

drži se

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');

odgađati;

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

očistiti sve;

zatvori sve;

clc;

% Snimite video okvire pomoću funkcije video ulaza % Morate zamijeniti razlučivost 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

%koristiti 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činje akviziciju videozapisa

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

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

data = getsnapshot (vid);

imshow (podaci);

b = korak (a, podaci);

drži se

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

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

kraj

odgađati

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

kraj

zaustaviti (vid); % Zaustavite akviziciju videozapisa

Preporučeni: