Obsah:

MATLAB Easy Face Detection: 4 kroky
MATLAB Easy Face Detection: 4 kroky
Anonim
MATLAB Jednoduchá detekcia tváre
MATLAB Jednoduchá detekcia tváre

Hlavným cieľom tohto návodu je ukázať, aké ľahké bude spracovanie obrazu, S pomocou programu MATLAB

Detekcia a sledovanie tváre je dôležitou a aktívnou oblasťou výskumu, a preto vám vysvetlím, ako sa to dá urobiť s Matlabom.

V nasledujúcom návode urobím nasledujúce veci:

1. zisťovanie tvárí na obrázku a počítanie.

2. zisťovanie ľudských očí na obrázku a počítanie.

3. zisťovanie ľudských úst v obraze a počítanie.

4. zisťovanie tvárí vo videu a počítanie.

5. zisťovanie ľudských očí vo videu a počítanie.

6. zisťovanie ľudských úst vo videu a počítanie.

Krok 1: Rozpoznávanie tvárí na obrázku a počítanie

Detekcia tvárí na obrázku a počítanie
Detekcia tvárí na obrázku a počítanie

MATLAB SCRIPT:

vymazať všetko % vymazať všetky objektyclc % vyčistiť obrazovku

FDetect = vision. CascadeObjectDetector; %Detekcia objektov pomocou Viola-Jonesovho algoritmu

%Prečítajte si vstupný obrázok

image = imread ('c: / Deskotp / HarryPotter.jpg'); %načítajte obrázok pomocou imread ('umiestnenie súboru / name.jpg')

BB = krok (FDetect, obrázok); %Vráti hodnoty ohraničujúceho rámčeka na základe počtu objektov

postava, imshow (I);

Počkaj

pre i = 1: veľkosť (BB, 1)

obdĺžnik ('Poloha', BB (i,:), 'Šírka čiary', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -červená, g-zelená, b-modrá

koniec

title ('Face Detection'); %titulu zostatku;

Výsledok bude rovnaký ako obrázok, ktorý bol priložený v tomto kroku

Ak chcete spočítať počet rozpoznaných tvárí:

vymazať všetko % vymazať všetky objektyclc % vyčistiť obrazovku

FDetect = vision. CascadeObjectDetector; %Detekovať objekty pomocou Viola-Jonesovho algoritmu %Prečítajte si vstupný obrázok

image = imread ('c: / Deskotp / HarryPotter.jpg'); %načítajte obrázok pomocou imread ('umiestnenie súboru / name.jpg')

BB = krok (FDetect, obrázok); %Vráti hodnoty ohraničujúceho rámčeka na základe počtu objektov

obrázok,

imshow (I);

Počkaj

pre i = 1: veľkosť (BB, 1)

obdĺžnik ('Poloha', BB (i,:), 'Šírka čiary', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -červená, g-zelená, b-modrá

koniec

text (10, 10, strcat ('\ color {red} Počet tvárí =', num2str (dĺžka (BB)))); Tento riadok vám poskytne prehľad

title ('Face Detection'); %názov obrázku

zdržať sa;

Krok 2: Detekcia ľudských očí na obrázku a počítanie

Detekcia ľudských očí na obrázku a počítanie
Detekcia ľudských očí na obrázku a počítanie

MATLAB SCRIPT:

zmazať všetko;

clc;

%Na detekciu EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

%Prečítajte si vstup

image = imread ('c: / Deskotp / HarryPotter.jpg'); %načítajte obrázok pomocou imread ('umiestnenie súboru / name.jpg')

BB = krok (EyeDetect, obrázok);

obrázok,

imshow (obrázok);

obdĺžnik ('Poloha', BB, 'Šírka čiary', 4, 'Štýl čiary', '-', 'EdgeColor', 'b');

názov („Detekcia očí“);

Výsledok bude rovnaký ako obrázok, ktorý bol priložený v tomto kroku

Ak chcete spočítať počet zistených očí:

vymazať všetko; clc; %Na detekciu očí

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %načítajte obrázok pomocou imread ('umiestnenie súboru / name.jpg')

BB = krok (EyeDetect, obrázok); figúra, imshow (obrázok); obdĺžnik ('Poloha', BB, 'Šírka čiary', 4, 'Štýl čiary', '-', 'EdgeColor', 'b');

text (10, 10, strcat ('\ color {red} Počet očí =', num2str (dĺžka (BB))));

názov („Detekcia očí“);

Krok 3: Detekcia ľudskej úst na obrázku a počítanie

Detekcia ľudskej úst na obrázku a počítanie
Detekcia ľudskej úst na obrázku a počítanie

MATLAB SCRIPT:

zmazať všetko;

clc;

%Na detekciu úst

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

%Prečítajte si vstupný obrázok = imread ('c: / Deskotp / HarryPotter.jpg'); %načítajte obrázok pomocou imread ('umiestnenie súboru / name.jpg')

BB = krok (MouthDetect, obrázok);

postava, imshow (obrázok);

Počkaj

pre i = 1: veľkosť (BB, 1)

obdĺžnik ('Poloha', BB (i,:), 'Šírka čiary', 4, 'LineStyle', '-', 'EdgeColor', 'r');

koniec

názov („Detekcia úst“);

zdržať sa;

Výsledok bude rovnaký ako obrázok, ktorý bol priložený v tomto kroku

Ak chcete spočítať počet zistených úst:

zmazať všetko; clc; %Na detekciu úst

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Prečítajte si vstup

image = imread ('c: / Deskotp / HarryPotter.jpg'); %načítajte obrázok pomocou imread ('umiestnenie súboru / name.jpg') BB = krok (MouthDetect, obrázok);

postava, imshow (obrázok);

Počkaj

pre i = 1: veľkosť (BB, 1)

obdĺžnik ('Poloha', BB (i,:), 'Šírka čiary', 4, 'LineStyle', '-', 'EdgeColor', 'r');

koniec

text (10, 10, strcat ('\ color {red} Počet úst =', num2str (dĺžka (BB))));

názov („Detekcia úst“);

zdržať sa;

Krok 4: Detekcia tvárí, očí, úst vo videu a počítanie

zmazať všetko;

zavrieť všetky;

clc;

% Zachyťte video snímky pomocou funkcie vstupu videa % Musíte nahradiť rozlíšenie a názov nainštalovaného adaptéra.

a = vízia. CascadeObjectDetector; %na detekciu tváre

% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %na detekciu úst

% a = vision. CascadeObjectDetector ('EyePairBig'); %na detekciu očí

%použite iba jeden (tvár/oči/ústa)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Nastavte vlastnosti video objektu

sada (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %spustite akvizíciu videa tu

start (vid) % Nastavte slučku, ktorá sa zastaví po 100 rámcoch akvizície

while (vid. FramesAcquired <= 200) % Získajte snímku aktuálneho rámca

data = getsnapshot (vid);

imshow (údaje);

b = krok (a, dáta);

Počkaj

pre i = 1: veľkosť (b, 1)

obdĺžnik ('poloha', b (i,:), 'šírka čiary', 2, 'čiarový štýl', '-', 'EdgeColor', 'r');

koniec

vydržať

text (10, 10, strcat ('\ color {green} Počet tvárí =', num2str (dĺžka (b))));

koniec

zastávka (vid); % Zastavte získavanie videa

Odporúča: