Tartalomjegyzék:

MATLAB Egyszerű arcfelismerés: 4 lépés
MATLAB Egyszerű arcfelismerés: 4 lépés

Videó: MATLAB Egyszerű arcfelismerés: 4 lépés

Videó: MATLAB Egyszerű arcfelismerés: 4 lépés
Videó: Bevezetés a MATLAB használatába - 4. Egyszerű ábrázolás 2024, Július
Anonim
MATLAB Egyszerű arcfelismerés
MATLAB Egyszerű arcfelismerés

Ennek az oktatóanyagnak a fő célja, hogy megmutassa, mennyire egyszerű lesz a képfeldolgozás, a MATLAB segítségével

Az arcfelismerés és -követés fontos és aktív kutatási terület volt, ezért fogom elmagyarázni, hogyan lehet ezt megtenni a Matlab segítségével.

A következő oktatóanyagban az alábbi dolgokat fogom elvégezni:

1. arcok felismerése a képen és számlálás.

2. az emberi szemek felismerése egy képen és számolás.

3. az emberi száj felismerése képen és számolás.

4. arcok felismerése egy videóban és számlálás.

5. az emberi szemek felismerése egy videóban és számolás.

6. az emberi száj felismerése videóban és számlálás.

1. lépés: Arcok észlelése a képen és számolás

Arcok észlelése a képen és számolás
Arcok észlelése a képen és számolás

MATLAB SCRIPT:

tiszta minden % törli az összes objektumot clc % törli a képernyőt

FDetect = látás. CascadeObjectDetector; %Objektumok észlelése Viola-Jones algoritmus segítségével

%Olvassa el a bemeneti képet

image = imread ('c: / Deskotp / HarryPotter.jpg'); %betölti a képet az imread használatával ('fájl helye / név.jpg')

BB = lépés (FDetect, kép); %Visszaadja a határoló doboz értékeit az objektumok száma alapján

ábra, imshow (I);

kitartás

i = 1 esetén: méret (BB, 1)

téglalap ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -piros, g-zöld, b-kék

vége

title ('Arcfelismerés'); a figura %címe ki;

Az eredmény olyan lesz, mint a kép, amelyet ebben a lépésben csatoltak

Az észlelt arcok számolásához:

tiszta minden % törli az összes objektumot clc % törli a képernyőt

FDetect = látás. CascadeObjectDetector; %Objektumok észlelése Viola-Jones algoritmus használatával %Olvassa el a bemeneti képet

image = imread ('c: / Deskotp / HarryPotter.jpg'); %töltse be a képet az imread használatával ('fájl helye / név.jpg')

BB = lépés (FDetect, kép); %Visszaadja a határoló doboz értékeit az objektumok száma alapján

ábra,

imshow (I);

kitartás

i = 1 esetén: méret (BB, 1)

téglalap ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -piros, g-zöld, b-kék

vége

text (10, 10, strcat ('\ color {red} Arcok száma =', num2str (hossz (BB)))); Ez a sor adja meg a számot

title ('Arcfelismerés'); %ábra címe

távol tartja magát;

2. lépés: Az emberi szemek felismerése a képen és számolás

Emberi szemek felismerése képen és számolás
Emberi szemek felismerése képen és számolás

MATLAB SCRIPT:

mindent kitöröl;

clc;

%EyesEyeDetect észlelése = látás. CascadeObjectDetector ('EyePairBig');

%Olvassa el a bemenetet

image = imread ('c: / Deskotp / HarryPotter.jpg'); %töltse be a képet az imread használatával ('fájl helye / név.jpg')

BB = lépés (EyeDetect, kép);

ábra,

imshow (kép);

téglalap ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

title ('Szemfelismerés');

Az eredmény olyan lesz, mint a kép, amelyet ebben a lépésben csatoltak

Az észlelt szemek számolásához:

minden törlése; clc; %A szem észlelése

EyeDetect = látás. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %töltse be a képet az imread használatával ('fájl helye / név.jpg')

BB = lépés (EyeDetect, kép); ábra, imshow (kép); téglalap ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

text (10, 10, strcat ('\ color {red} A szemek száma =', num2str (hossz (BB))));

title ('Szemfelismerés');

3. lépés: Az emberi száj kimutatása képen és számlálás

Az emberi száj kimutatása képen és számolás
Az emberi száj kimutatása képen és számolás

MATLAB SCRIPT:

mindent kitöröl;

clc;

%A száj felismerése

MouthDetect = látás. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16);

%Olvassa el a bemeneti képet = imread ('c: / Deskotp / HarryPotter.jpg'); %töltse be a képet az imread használatával ('fájl helye / név.jpg')

BB = lépés (MouthDetect, kép);

ábra, imshow (kép);

kitartás

i = 1 esetén: méret (BB, 1)

téglalap ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

vége

title ('Szájfelismerés');

távol tartja magát;

Az eredmény olyan lesz, mint a kép, amelyet ebben a lépésben csatoltunk

Az észlelt száj számának kiszámításához:

mindent kitöröl; clc; %A száj felismerése

MouthDetect = látás. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Olvassa el a bemenetet

image = imread ('c: / Deskotp / HarryPotter.jpg'); %töltse be a képet az imread használatával ('fájl helye / name.jpg') BB = step (MouthDetect, image);

ábra, imshow (kép);

kitartás

i = 1 esetén: méret (BB, 1)

téglalap ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

vége

text (10, 10, strcat ('\ color {red} A száj száma =', num2str (hossz (BB))));

title ('Szájfelismerés');

távol tartja magát;

4. lépés: Arcok, szemek, száj felismerése videóban és számlálás

mindent kitöröl;

minden bezárása;

clc;

% Rögzítse a képkockákat a videó bemeneti funkcióval % Le kell cserélnie a felbontást és a telepített adapter nevét.

a = látás. CascadeObjectDetector; %arc felismerésére

% a = látás. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %a száj felismerésére

% a = látás. CascadeObjectDetector ('EyePairBig'); %a szem észlelésére

%csak bármelyiket használja (arc/szem/száj)

vid = video bemenet ('winvideo', 1, 'yuy2_320x240'); % Állítsa be a videoobjektum tulajdonságait

set (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %itt kezdje el a videófelvételt

start (vid) % Állíts be egy ciklust, amely 100 képkocka után leáll

while (vid. FramesAcquired <= 200) % Szerezd meg az aktuális kép pillanatképét

adatok = pillanatfelvétel (vid);

imshow (adatok);

b = lépés (a, adatok);

kitartás

i = 1 esetén: méret (b, 1)

téglalap ('position', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

vége

távol tartja magát

text (10, 10, strcat ('\ color {green} Arcok száma =', num2str (hossz (b))));

vége

stop (vid); % Állítsa le a videófelvételt

Ajánlott: