Sisällysluettelo:

MATLAB Helppo kasvojentunnistus: 4 vaihetta
MATLAB Helppo kasvojentunnistus: 4 vaihetta

Video: MATLAB Helppo kasvojentunnistus: 4 vaihetta

Video: MATLAB Helppo kasvojentunnistus: 4 vaihetta
Video: Simpson’s 1/3 Rule Example | Numerical Methods 2024, Heinäkuu
Anonim
MATLAB Helppo kasvojentunnistus
MATLAB Helppo kasvojentunnistus

Tämän ohjeen päätavoite on näyttää, kuinka helppoa kuvankäsittely on, MATLABin avulla

Kasvojentunnistus ja -seuranta on ollut tärkeä ja aktiivinen tutkimusala, joten selitän, miten se voidaan tehdä Matlabin avulla.

Seuraavassa opetusohjelmassa aion tehdä seuraavat asiat:

1. kasvojen havaitseminen kuvassa ja laskeminen.

2. ihmisen silmien havaitseminen kuvassa ja laskeminen.

3. ihmisen suun tunnistaminen kuvasta ja laskeminen.

4. kasvojen havaitseminen videossa ja laskeminen.

5. ihmisen silmien havaitseminen videossa ja laskeminen.

6. ihmisen suun tunnistaminen videossa ja laskeminen.

Vaihe 1: Kasvojen havaitseminen kuvassa ja laskeminen

Kasvojen havaitseminen kuvassa ja laskeminen
Kasvojen havaitseminen kuvassa ja laskeminen

MATLAB -käsikirjoitus:

tyhjennä kaikki % tyhjennä kaikki objektit clc % tyhjennä näyttö

FDetect = visio. CascadeObjectDetector; %Havaitse esineitä Viola-Jones-algoritmin avulla

%Lue syötetty kuva

image = imread ('c: / Deskotp / HarryPotter.jpg'); %lataa kuva käyttämällä imreadia ('tiedoston sijainti / nimi.jpg')

BB = vaihe (FDetect, kuva); %Palauttaa rajauslaatikon arvot objektien lukumäärän perusteella

kuvio, imshow (I);

pidä kiinni

i = 1: koko (BB, 1)

suorakulmio ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -punainen, g-vihreä, b-sininen

loppuun

otsikko ('Kasvontunnistus'); %hahmon otsikko pois;

Tulos on samanlainen kuin tässä vaiheessa liitetty kuva

Voit laskea havaittujen kasvojen määrän seuraavasti:

tyhjennä kaikki % tyhjennä kaikki objektit clc % tyhjennä näyttö

FDetect = visio. CascadeObjectDetector; %Tunnista kohteet Viola-Jones-algoritmin avulla %Lue syöttökuva

image = imread ('c: / Deskotp / HarryPotter.jpg'); %lataa kuva käyttämällä imreadia ('tiedoston sijainti / nimi.jpg')

BB = vaihe (FDetect, kuva); %Palauttaa rajauslaatikon arvot objektien lukumäärän perusteella

kuvio,

imshow (I);

pidä kiinni

i = 1: koko (BB, 1)

suorakulmio ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -punainen, g-vihreä, b-sininen

loppuun

text (10, 10, strcat ('\ color {red} Kasvojen määrä =', num2str (pituus (BB)))); Tämä rivi antaa sinulle lukumäärän

otsikko ('Kasvontunnistus'); %otsikko kuvasta

pitää loitolla;

Vaihe 2: Ihmisten silmien havaitseminen kuvasta ja laskeminen

Ihmissilmien havaitseminen kuvasta ja laskeminen
Ihmissilmien havaitseminen kuvasta ja laskeminen

MATLAB -käsikirjoitus:

Tyhjennä;

clc;

%EyesEyeDetectin havaitseminen = vision. CascadeObjectDetector ('EyePairBig');

%Lue syöttö

image = imread ('c: / Deskotp / HarryPotter.jpg'); %lataa kuva käyttämällä imreadia ('tiedoston sijainti / nimi.jpg')

BB = vaihe (EyeDetect, kuva);

kuvio,

imshow (kuva);

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

otsikko ('Silmien tunnistus');

Tulos on samanlainen kuin tässä vaiheessa liitetty kuva

Havaittujen silmien lukumäärän laskeminen:

tyhjennä kaikki; clc; %Silmien havaitsemiseksi

EyeDetect = visio. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %lataa kuva käyttämällä imreadia ('tiedoston sijainti / nimi.jpg')

BB = askel (EyeDetect, kuva); kuvio, imshow (kuva); suorakulmio ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

text (10, 10, strcat ('\ color {red} Silmien määrä =', num2str (pituus (BB))));

otsikko ('Silmien tunnistus');

Vaihe 3: Ihmisen suun tunnistaminen kuvasta ja laskeminen

Ihmisen suun havaitseminen kuvasta ja laskeminen
Ihmisen suun havaitseminen kuvasta ja laskeminen

MATLAB -käsikirjoitus:

Tyhjennä;

clc;

%Suun tunnistaminen

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

%Lue syötetty kuva = imread ('c: / Deskotp / HarryPotter.jpg'); %lataa kuva käyttämällä imreadia ('tiedoston sijainti / nimi.jpg')

BB = askel (MouthDetect, kuva);

kuva, imshow (kuva);

pidä kiinni

i = 1: koko (BB, 1)

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

loppuun

otsikko ('Suun tunnistus');

pitää loitolla;

Tulos on samanlainen kuin tässä vaiheessa liitetty kuva

Laskettujen suun lukumäärä:

Tyhjennä; clc; %Suun tunnistaminen

MouthDetect = visio. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Lue syöttö

image = imread ('c: / Deskotp / HarryPotter.jpg'); %lataa kuva käyttämällä imreadia ('tiedoston sijainti / nimi.jpg') BB = askel (MouthDetect, kuva);

kuva, imshow (kuva);

pidä kiinni

i = 1: koko (BB, 1)

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

loppuun

text (10, 10, strcat ('\ color {red} Suun määrä =', num2str (pituus (BB))));

otsikko ('Suun tunnistus');

pitää loitolla;

Vaihe 4: Kasvojen, silmien, suun tunnistaminen videosta ja laskeminen

Tyhjennä;

sulje kaikki;

clc;

% Ota videokehykset videotulotoiminnolla % Sinun on vaihdettava resoluutio ja asennetun sovittimen nimi.

a = visio. CascadeObjectDetector; %kasvojen tunnistamiseen

% a = visio. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %suun tunnistamiseksi

% a = visio. CascadeObjectDetector ('EyePairBig'); %tunnistaa silmät

%käyttää vain yhtä (kasvot/silmät/suu)

vid = videosyöttö ('winvideo', 1, 'yuy2_320x240'); % Aseta video -objektin ominaisuudet

set (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %aloita videon hankinta tästä

start (vid) % Aseta silmukka, joka pysähtyy 100 kuvan oton jälkeen

while (vid. FramesAcquired <= 200) % Hae tilannekuva nykyisestä kehyksestä

data = otoskuva (vid);

imshow (data);

b = vaihe (a, data);

pidä kiinni

i = 1: koko (b, 1)

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

loppuun

pitää loitolla

text (10, 10, strcat ('\ väri {vihreä} Kasvojen määrä =', numero2str (pituus (b))));

loppuun

stop (vid); % Lopeta videon hankinta

Suositeltava: