Sisukord:

MATLAB lihtne näotuvastus: 4 sammu
MATLAB lihtne näotuvastus: 4 sammu

Video: MATLAB lihtne näotuvastus: 4 sammu

Video: MATLAB lihtne näotuvastus: 4 sammu
Video: Разница между искусственным интеллектом, машинным обучением и глубоким обучением 2024, Juuni
Anonim
MATLAB lihtne näotuvastus
MATLAB lihtne näotuvastus

Selle juhendi peamine eesmärk on näidata, kui lihtne on pilditöötlus, MATLABi abil

Näotuvastus ja jälgimine on olnud oluline ja aktiivne uurimisvaldkond, seetõttu selgitan, kuidas seda Matlabi abil teha saab.

Järgmises õpetuses teen järgmist.

1. nägude tuvastamine pildil ja loendamine.

2. inimese silmade tuvastamine pildil ja loendamine.

3. inimese suu tuvastamine pildil ja loendamine.

4. nägude tuvastamine videos ja loendamine.

5. inimese silmade tuvastamine videos ja loendamine.

6. inimese suu tuvastamine videost ja loendamine.

1. samm: nägude tuvastamine pildil ja loendamine

Nägude tuvastamine pildil ja loendamine
Nägude tuvastamine pildil ja loendamine

MATLABI SKRIPT:

kustuta kõik % kustuta kõik objektid clc % puhasta ekraan

FDetect = nägemine. CascadeObjectDetector; %Objektide tuvastamine Viola-Jonesi algoritmi abil

%Loe sisendpilti

pilt = imread ('c: / Deskotp / HarryPotter.jpg'); %pildi laadimine imreadi abil ('faili asukoht / nimi.jpg')

BB = samm (FDetect, pilt); %Tagastab piiritluskasti väärtused objektide arvu alusel

joonis, näitus (I);

oota

i = 1: suurus (BB, 1)

ristkülik ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -punane, g-roheline, b-sinine

lõpp

title ('Näotuvastus'); figuuri pealkiri %välja;

Tulemus on nagu selles etapis lisatud pilt

Tuvastatud nägude arvu loendamiseks tehke järgmist

kustuta kõik % kustuta kõik objektid clc % puhasta ekraan

FDetect = nägemine. CascadeObjectDetector; %Objektide tuvastamine Viola-Jonesi algoritmi abil %Sisendpildi lugemine

pilt = imread ('c: / Deskotp / HarryPotter.jpg'); %pildi laadimine imreadi abil ('faili asukoht / nimi.jpg')

BB = samm (FDetect, pilt); %Tagastab piiritluskasti väärtused objektide arvu alusel

joonis,

imshow (I);

oota

i = 1: suurus (BB, 1)

ristkülik ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -punane, g-roheline, b-sinine

lõpp

text (10, 10, strcat ('\ color {red} Nägude arv =', num2str (pikkus (BB)))); See rida annab teile arvu

title ('Näotuvastus'); %joonis

kinni hoida;

2. samm: inimese silmade tuvastamine pildil ja loendamine

Inimese silmade tuvastamine pildil ja loendamine
Inimese silmade tuvastamine pildil ja loendamine

MATLABI SKRIPT:

Kustuta kõik;

clc;

%EyesEyeDetect tuvastamiseks = nägemine. CascadeObjectDetector ('EyePairBig');

%Loe sisendit

pilt = imread ('c: / Deskotp / HarryPotter.jpg'); %pildi laadimine imreadi abil ('faili asukoht / nimi.jpg')

BB = samm (EyeDetect, pilt);

joonis,

imshow (pilt);

ristkülik ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

title ('Silmade tuvastamine');

Tulemus on nagu selles etapis lisatud pilt

Tuvastatud silmade arvu loendamiseks tehke järgmist

kustuta kõik; clc; %Silmade tuvastamiseks

EyeDetect = nägemine. CascadeObjectDetector ('EyePairBig');

pilt = imread ('c: / Deskotp / HarryPotter.jpg'); %pildi laadimine imreadi abil ('faili asukoht / nimi.jpg')

BB = samm (EyeDetect, pilt); joonis, imshow (pilt); ristkülik ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

text (10, 10, strcat ('\ color {red} Silmade arv =', num2str (pikkus (BB))));

title ('Silmade tuvastamine');

3. samm: inimese suu tuvastamine pildil ja loendamine

Inimese suu tuvastamine pildil ja loendamine
Inimese suu tuvastamine pildil ja loendamine

MATLABI SKRIPT:

Kustuta kõik;

clc;

%Suu tuvastamiseks

MouthDetect = nägemine. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16);

%Loe sisendpilti = imread ('c: / Deskotp / HarryPotter.jpg'); %pildi laadimine imreadi abil ('faili asukoht / nimi.jpg')

BB = samm (MouthDetect, pilt);

joonis, näitus (pilt);

oota

i = 1: suurus (BB, 1)

ristkülik ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

lõpp

title ('Suu tuvastamine');

kinni hoida;

Tulemus on nagu selles etapis lisatud pilt

Avastatud suu arvu loendamiseks tehke järgmist

Kustuta kõik; clc; %Suu tuvastamiseks

MouthDetect = nägemine. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Loe sisendit

pilt = imread ('c: / Deskotp / HarryPotter.jpg'); %laadida pilt, kasutades imread ('faili asukoht / nimi.jpg') BB = samm (MouthDetect, pilt);

joonis, näitus (pilt);

oota

i = 1: suurus (BB, 1)

ristkülik ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

lõpp

text (10, 10, strcat ('\ color {red} Suude arv =', num2str (pikkus (BB))));

title ('Suu tuvastamine');

kinni hoida;

4. samm: nägude, silmade, suu tuvastamine videost ja loendamine

Kustuta kõik;

sulgege kõik;

clc;

% Jäädvustage videokaadreid videosisendi funktsiooni abil % Peate asendama eraldusvõime ja installitud adapteri nime.

a = nägemine. CascadeObjectDetector; %näo tuvastamiseks

% a = nägemine. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %suu tuvastamiseks

% a = nägemine. CascadeObjectDetector ('EyePairBig'); %silmade tuvastamiseks

%kasutab ainult ühte (nägu/silmad/suu)

vid = video sisend ('winvideo', 1, 'yuy2_320x240'); % Määra videoobjekti omadused

set (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %alusta video hankimist siit

algus (vid) % Määrake tsükkel, mis peatub pärast 100 kaadrit

while (vid. FramesAcquired <= 200) % Hankige hetkekaadri hetktõmmis

andmed = ülevaade (vid);

imshow (andmed);

b = samm (a, andmed);

oota

i = 1: suurus (b, 1)

ristkülik ('position', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

lõpp

pea kinni

text (10, 10, strcat ('\ color {green} Nägude arv =', num2str (pikkus (b))));

lõpp

peatus (vid); % Peata video hankimine

Soovitan: