Innholdsfortegnelse:

MATLAB Enkel ansiktsgjenkjenning: 4 trinn
MATLAB Enkel ansiktsgjenkjenning: 4 trinn

Video: MATLAB Enkel ansiktsgjenkjenning: 4 trinn

Video: MATLAB Enkel ansiktsgjenkjenning: 4 trinn
Video: Enkel graf i Matlab 2024, November
Anonim
MATLAB Enkel ansiktsgjenkjenning
MATLAB Enkel ansiktsgjenkjenning

Hovedmålet med disse instruktørene er å vise hvor lett, bildebehandlingen vil være, ved hjelp av MATLAB

Ansiktsgjenkjenning og sporing har vært et viktig og aktivt forskningsfelt, så derfor skal jeg forklare hvordan det kan gjøres med Matlab.

I den følgende opplæringen skal jeg gjøre følgende ting:

1. oppdage ansikter i et bilde og telle.

2. oppdage menneskelige øyne i et bilde og telle.

3. oppdage menneskelig munn i et bilde og telle.

4. oppdage ansikter i en video og telle.

5. oppdage menneskelige øyne i en video og telle.

6. oppdage menneskelig munn i en video og telle.

Trinn 1: Oppdage ansikter i et bilde og telle

Oppdage ansikter i et bilde og telle
Oppdage ansikter i et bilde og telle

MATLAB SCRIPT:

clear all % clear all objectsclc % clear screen

FDetect = vision. CascadeObjectDetector; %Oppdag objekter ved hjelp av Viola-Jones-algoritmen

%Les inndatabildet

image = imread ('c: / Deskotp / HarryPotter.jpg'); %last inn bildet ved å bruke imread ('filplassering / navn.jpg')

BB = trinn (FDetect, bilde); %Returnerer grenseverdier basert på antall objekter

figur, imshow (I);

vent litt

for i = 1: størrelse (BB, 1)

rektangel ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rød, g-grønn, b-blå

slutt

tittel ('Ansiktsgjenkjenning'); %tittel på figuren av;

Resultatet vil være som bildet som ble vedlagt i dette trinnet selv

For å telle antall ansikter detektert:

clear all % clear all objectsclc % clear screen

FDetect = vision. CascadeObjectDetector; %Oppdag objekter ved hjelp av Viola-Jones-algoritme %Les inndatabildet

image = imread ('c: / Deskotp / HarryPotter.jpg'); %last inn bildet ved å bruke imread ('filplassering / navn.jpg')

BB = trinn (FDetect, bilde); %Returnerer grenseverdier for verdier basert på antall objekter

figur,

imshow (I);

vent litt

for i = 1: størrelse (BB, 1)

rektangel ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rød, g-grønn, b-blå

slutt

text (10, 10, strcat ('\ color {red} Antall ansikter =', num2str (lengde (BB)))); Denne linjen gir deg tellingen

tittel ('Ansiktsgjenkjenning'); %tittel på figuren

hold av;

Trinn 2: Oppdage menneskelige øyne i et bilde og telle

Oppdage menneskelige øyne i et bilde og telle
Oppdage menneskelige øyne i et bilde og telle

MATLAB SCRIPT:

Rydd alt;

clc;

%For å oppdage EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

%Les innspillet

image = imread ('c: / Deskotp / HarryPotter.jpg'); %last inn bildet ved å bruke imread ('filplassering / navn.jpg')

BB = trinn (EyeDetect, bilde);

figur,

imshow (bilde);

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

tittel ('Eyes Detection');

Resultatet vil være som bildet som ble vedlagt i dette trinnet selv

For å telle antall oppdagede øyne:

tøm alt; clc; %For å oppdage øyne

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %last inn bildet ved å bruke imread ('filplassering / navn.jpg')

BB = trinn (EyeDetect, bilde); figur, imshow (bilde); rektangel ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

tekst (10, 10, strcat ('\ color {rød} Antall øyne =', num2str (lengde (BB))));

tittel ('Eyes Detection');

Trinn 3: Oppdage menneskelig munn i et bilde og telle

Oppdage menneskelig munn i et bilde og telle
Oppdage menneskelig munn i et bilde og telle

MATLAB SCRIPT:

Rydd alt;

clc;

%For å oppdage munn

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

%Les inndatabildet = imread ('c: / Deskotp / HarryPotter.jpg'); %last inn bildet ved å bruke imread ('filplassering / navn.jpg')

BB = trinn (MouthDetect, bilde);

figur, imshow (bilde);

vent litt

for i = 1: størrelse (BB, 1)

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

slutt

tittel ('Mouth Detection');

hold av;

Resultatet vil være som bildet som ble vedlagt i dette trinnet selv

For å telle antall oppdagede munn:

Rydd alt; clc; %For å oppdage munn

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

image = imread ('c: / Deskotp / HarryPotter.jpg'); %last inn bildet ved å bruke imread ('file location / name.jpg') BB = step (MouthDetect, image);

figur, imshow (bilde);

vent litt

for i = 1: størrelse (BB, 1)

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

slutt

text (10, 10, strcat ('\ color {red} Antall munner =', num2str (lengde (BB))));

tittel ('Mouth Detection');

hold av;

Trinn 4: Registrering av ansikter, øyne, munn i en video og telling

Rydd alt;

Lukk alle;

clc;

% Ta videorammer med videoinngangsfunksjonen % Du må erstatte oppløsningen og det installerte adapternavnet.

a = vision. CascadeObjectDetector; %for å oppdage ansikt

% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %for å oppdage munnen

% a = vision. CascadeObjectDetector ('EyePairBig'); %for å oppdage øyne

%bare bruk en (ansikt/øyne/munn)

vid = videoinngang ('winvideo', 1, 'yuy2_320x240'); % Angi egenskapene til videoobjektet

sett (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %start videooppkjøpet her

start (vid) % Sett en sløyfe som stopper etter 100 oppkjøpsrammer

while (vid. FramesAcquired <= 200) % Få øyeblikksbildet av gjeldende ramme

data = getsnapshot (vid);

imshow (data);

b = trinn (a, data);

vent litt

for i = 1: størrelse (b, 1)

rektangel ('posisjon', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

slutt

hold av

tekst (10, 10, strcat ('\ color {grønn} Antall ansikter =', num2str (lengde (b))));

slutt

stopp (vid); % Stopp videooppkjøpet

Anbefalt: