Satura rādītājs:

MATLAB Vienkārša sejas noteikšana: 4 soļi
MATLAB Vienkārša sejas noteikšana: 4 soļi

Video: MATLAB Vienkārša sejas noteikšana: 4 soļi

Video: MATLAB Vienkārša sejas noteikšana: 4 soļi
Video: CS50 2014 – неделя 1, продолжение 2024, Novembris
Anonim
MATLAB ērta sejas noteikšana
MATLAB ērta sejas noteikšana

Šīs instrukcijas galvenais mērķis ir parādīt, cik vienkārša būs attēlu apstrāde, izmantojot MATLAB

Sejas noteikšana un izsekošana ir bijusi svarīga un aktīva pētniecības joma, tāpēc es paskaidrošu, kā to var izdarīt ar Matlab.

Šajā apmācībā es darīšu šādas lietas:

1. sejas noteikšana attēlā un skaitīšana.

2. cilvēka acu noteikšana attēlā un skaitīšana.

3. cilvēka mutes noteikšana attēlā un skaitīšana.

4. seju noteikšana videoklipā un skaitīšana.

5. cilvēka acu noteikšana video un skaitīšana.

6. cilvēka mutes noteikšana videoklipā un skaitīšana.

1. darbība: sejas noteikšana attēlā un skaitīšana

Seju noteikšana attēlā un skaitīšana
Seju noteikšana attēlā un skaitīšana

MATLAB SCRIPT:

notīrīt visus % notīrīt visus objektusclc % notīrīt ekrānu

FDetect = redze. CascadeObjectDetector; Atklāt objektus, izmantojot Viola-Jones algoritmu

%Lasīt ievades attēlu

attēls = imread ('c: / Deskotp / HarryPotter.jpg'); %ielādējiet attēlu, izmantojot imread ('faila atrašanās vieta / name.jpg')

BB = solis (FDetect, attēls); %Atgriež ierobežojošā lodziņa vērtības, pamatojoties uz objektu skaitu

skaitlis, imshow (I);

uzgaidi

i = 1: izmērs (BB, 1)

taisnstūris ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-sarkans, g-zaļš, b-zils

beigas

title ('Sejas noteikšana'); figūras nosaukums %izslēgts;

Rezultāts būs tāds pats kā šajā solī pievienotais attēls

Lai saskaitītu konstatēto seju skaitu:

notīrīt visus % notīrīt visus objektusclc % notīrīt ekrānu

FDetect = redze. CascadeObjectDetector; %Noteikt objektus, izmantojot Viola-Jones algoritmu %Lasīt ievades attēlu

attēls = imread ('c: / Deskotp / HarryPotter.jpg'); %ielādējiet attēlu, izmantojot imread ('faila atrašanās vieta / name.jpg')

BB = solis (FDetect, attēls); %Atgriež ierobežojošā lodziņa vērtības, pamatojoties uz objektu skaitu

figūra,

imshow (I);

uzgaidi

i = 1: izmērs (BB, 1)

taisnstūris ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-sarkans, g-zaļš, b-zils

beigas

text (10, 10, strcat ('\ color {red} Seju skaits =', num2str (garums (BB)))); Šī rinda sniedz jums skaitli

title ('Sejas noteikšana'); %figūras nosaukums

noturēties;

2. darbība. Cilvēka acu noteikšana attēlā un skaitīšana

Cilvēka acu noteikšana attēlā un skaitīšana
Cilvēka acu noteikšana attēlā un skaitīšana

MATLAB SCRIPT:

nodzēst visu;

clc;

%Lai noteiktu EyesEyeDetect = redze. CascadeObjectDetector ('EyePairBig');

%Izlasiet ievadi

attēls = imread ('c: / Deskotp / HarryPotter.jpg'); %ielādējiet attēlu, izmantojot imread ('faila atrašanās vieta / name.jpg')

BB = solis (EyeDetect, attēls);

skaitlis,

imshow (attēls);

taisnstūris ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

nosaukums (“Acis noteikšana”);

Rezultāts būs tāds pats kā šajā solī pievienotais attēls

Lai saskaitītu konstatēto acu skaitu:

notīrīt visu; clc; %Lai noteiktu acis

EyeDetect = redze. CascadeObjectDetector ('EyePairBig');

attēls = imread ('c: / Deskotp / HarryPotter.jpg'); %ielādējiet attēlu, izmantojot imread ('faila atrašanās vieta / name.jpg')

BB = solis (EyeDetect, attēls); skaitlis, imshow (attēls); taisnstūris ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

text (10, 10, strcat ('\ color {red} Acu skaits =', num2str (garums (BB))));

nosaukums (“Acis noteikšana”);

3. darbība: cilvēka mutes noteikšana attēlā un skaitīšana

Cilvēka mutes noteikšana attēlā un skaitīšana
Cilvēka mutes noteikšana attēlā un skaitīšana

MATLAB SCRIPT:

nodzēst visu;

clc;

%Mutes noteikšanai

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

%Izlasiet ievades attēlu = imread ('c: / Deskotp / HarryPotter.jpg'); %ielādēt attēlu, izmantojot imread ('faila atrašanās vieta / name.jpg')

BB = solis (MuteDetect, attēls);

attēls, imshow (attēls);

uzgaidi

i = 1: izmērs (BB, 1)

taisnstūris ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

beigas

nosaukums ("Mutes noteikšana");

noturēties;

Rezultāts būs tāds pats kā šajā solī pievienotais attēls

Lai saskaitītu konstatēto mutes dobumu skaitu:

nodzēst visu; clc; %Mutes noteikšanai

MouthDetect = redze. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Izlasiet ievadi

attēls = imread ('c: / Deskotp / HarryPotter.jpg'); %ielādēt attēlu, izmantojot imread ('faila atrašanās vieta / name.jpg') BB = solis (MouthDetect, attēls);

attēls, imshow (attēls);

uzgaidi

i = 1: izmērs (BB, 1)

taisnstūris ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

beigas

text (10, 10, strcat ('\ color {red} Mutes skaits =', num2str (garums (BB))));

nosaukums ("Mutes noteikšana");

noturēties;

4. solis: sejas, acu, mutes noteikšana videoklipā un skaitīšana

nodzēst visu;

aizvērt visu;

clc;

% Uzņemiet video kadrus, izmantojot video ievades funkciju % Jums ir jāaizstāj izšķirtspēja un instalētā adaptera nosaukums.

a = redze. CascadeObjectDetector; %sejas noteikšanai

% a = vīzija. CascadeObjectDetector ('Mute', 'MergeThreshold', 16); %, lai noteiktu muti

% a = redze. CascadeObjectDetector ('EyePairBig'); %, lai noteiktu acis

%izmanto tikai vienu (seju/acis/muti)

vid = video ieeja ('winvideo', 1, 'yuy2_320x240'); % Iestatiet video objekta rekvizītus

set (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %sāciet video iegūšanu šeit

sākums (vid) % Iestatiet cilpu, kas apstājas pēc 100 kadru iegūšanas

while (vid. FramesAcquired <= 200) % Iegūstiet pašreizējā kadra momentuzņēmumu

dati = momentuzņēmums (vid);

imshow (dati);

b = solis (a, dati);

uzgaidi

i = 1: izmērs (b, 1)

taisnstūris ('position', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

beigas

turies

text (10, 10, strcat ('\ color {green} Seju skaits =', num2str (garums (b))));

beigas

stop (vid); % Pārtrauciet video iegūšanu

Ieteicams: