Мазмуну:

MATLAB Easy Face Detection: 4 кадам
MATLAB Easy Face Detection: 4 кадам

Video: MATLAB Easy Face Detection: 4 кадам

Video: MATLAB Easy Face Detection: 4 кадам
Video: Face Recognition Image Processing Matlab Projects 2024, Июль
Anonim
MATLAB Easy Face Detection
MATLAB Easy Face Detection

Бул көрсөтмөлөрдүн негизги максаты - MATLAB жардамы менен сүрөттү иштетүү канчалык оңой болорун көрсөтүү.

Жүздү аныктоо жана көзөмөлдөө маанилүү жана активдүү изилдөө талаасы болгон, ошондуктан мен аны Matlab менен кантип жасаса болорун түшүндүрүп берем.

Кийинки үйрөткүчтө мен төмөнкү нерселерди жасайм:

1. сүрөттөгү жүздөрдү аныктоо жана саноо.

2. адамдын көзүн сүрөттө аныктоо жана саноо.

3. адамдын оозун сүрөттө аныктоо жана саноо.

4. видеодогу жүздөрдү аныктоо жана эсептөө.

5. Видеодо адамдын көзүн аныктоо жана эсептөө.

6. Видеодо адамдын оозун аныктоо жана эсептөө.

1 -кадам: Сүрөттөгү жүздөрдү аныктоо жана эсептөө

Сүрөттөгү жүздөрдү аныктоо жана саноо
Сүрөттөгү жүздөрдү аныктоо жана саноо

MATLAB СКРИПТИ:

баарын тазалоо % бардык объекттерди тазалоо clc % экранды тазалоо

FDetect = vision. CascadeObjectDetector; %Viola-Jones алгоритмин колдонуп объекттерди табыңыз

%Киргизилген сүрөттү окуу

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread аркылуу сүрөттү жүктөө ('файлдын жайгашуусу / name.jpg')

BB = кадам (FDetect, сүрөт); %Объекттердин санына негизделген Чектөө кутусунун маанилерин кайтарат

фигура, imshow (I);

токто

i = 1 үчүн: өлчөмү (BB, 1)

тик бурчтук ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -кызыл, g-жашыл, б-көк

аяктоо

аталышы ('Жүздү аныктоо'); көрсөткүчтүн %аталышы;

Натыйжа ушул кадамдын өзүнө тиркелген сүрөттө болот

Табылган жүздөрдүн санын эсептөө үчүн:

баарын тазалоо % бардык объекттерди тазалоо clc % экранды тазалоо

FDetect = vision. CascadeObjectDetector; %Viola-Jones алгоритминин жардамы менен объекттерди аныктоо %Киргизилген сүрөттү окуу

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread аркылуу сүрөттү жүктөө ('файлдын жайгашуусу / name.jpg')

BB = кадам (FDetect, сүрөт); %Объекттердин санына негизделген Чектөө кутусунун маанилерин кайтарат

фигура,

imshow (I);

токто

i = 1 үчүн: өлчөмү (BB, 1)

тик бурчтук ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -кызыл, g-жашыл, б-көк

аяктоо

текст (10, 10, strcat ('\ color {red} Беттердин саны =', num2str (узундугу (BB))))); Бул линия сизге эсепти берет

аталышы ('Жүздү аныктоо'); %фигуранын аталышы

кармоо;

2 -кадам: Сүрөттөгү адамдын көзүн аныктоо жана саноо

Сүрөттөгү адамдын көзүн аныктоо жана саноо
Сүрөттөгү адамдын көзүн аныктоо жана саноо

MATLAB СКРИПТИ:

баарын тазалоо;

clc;

%EyesEyeDetectти аныктоо үчүн = vision. CascadeObjectDetector ('EyePairBig');

%Киргизүүнү окуңуз

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread аркылуу сүрөттү жүктөө ('файлдын жайгашуусу / name.jpg')

BB = кадам (EyeDetect, сүрөт);

фигура,

imshow (сүрөт);

тик бурчтук ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

аталышы ('Көздү аныктоо');

Натыйжа ушул кадамдын өзүнө тиркелген сүрөттө болот

Көздүн санын аныктоо үчүн:

баарын тазалоо; clc; %Көздү аныктоо үчүн

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread аркылуу сүрөттү жүктөө ('файлдын жайгашуусу / name.jpg')

BB = кадам (EyeDetect, сүрөт); Figure, imshow (image); тик бурчтук ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

текст (10, 10, strcat ('\ color {red} No of eyes =', num2str (length (BB)))));

аталышы ('Көздү аныктоо');

3 -кадам: Сүрөттөгү адамдын оозун аныктоо жана саноо

Сүрөттөгү адамдын оозун аныктоо жана саноо
Сүрөттөгү адамдын оозун аныктоо жана саноо

MATLAB СКРИПТИ:

баарын тазалоо;

clc;

%Оозду аныктоо үчүн

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

%Киргизилген сүрөттү окуу = imread ('c: / Deskotp / HarryPotter.jpg'); %imread аркылуу сүрөттү жүктөө ('файлдын жайгашуусу / name.jpg')

BB = кадам (MouthDetect, сүрөт);

фигура, имшоу (сүрөт);

токто

i = 1 үчүн: өлчөмү (BB, 1)

тик бурчтук ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

аяктоо

аталышы ('Mouth Detection');

кармоо;

Натыйжа ушул кадамдын өзүнө тиркелген сүрөттө болот

Ооздун санын аныктоо үчүн:

баарын тазалоо; clc; %Оозду аныктоо үчүн

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Киргизүүнү окуңуз

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('file location / name.jpg') аркылуу сүрөттү жүктөө BB = step (MouthDetect, image);

фигура, имшоу (сүрөт);

токто

i = 1 үчүн: өлчөмү (BB, 1)

тик бурчтук ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

аяктоо

текст (10, 10, strcat ('\ color {red} No ооздору =', num2str (узундугу (BB)))));

аталышы ('Mouth Detection');

кармоо;

4 -кадам: Видеодо жүздү, көздү, оозду аныктоо жана саноо

баарын тазалоо;

баарын жап;

clc;

% Видео киргизүү функциясын колдонуп видео кадрларды тартып алыңыз % Сиз токтомду жана орнотулган адаптер атын алмаштырышыңыз керек.

a = vision. CascadeObjectDetector; %жүзүн аныктоо үчүн

% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %оозду аныктоо үчүн

% a = vision. CascadeObjectDetector ('EyePairBig'); %көздү аныктоо үчүн

%бирөөнү гана колдонуңуз (бет/көз/ооз)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Видео объектинин касиеттерин коюңуз

топтом (vid, 'FramesPerTrigger', Inf);

коюу (vid, 'ReturnedColorspace', 'rgb');

vid. FrameGrabInterval = 5; %видео тартууну ушул жерден баштайт

start (vid) % Сатып алуунун 100 кадрынан кийин токтой турган циклди орнотуңуз

while (vid. FramesAcquired <= 200) % Учурдагы кадрдын сүрөтүн алуу

маалыматтар = getsnapshot (vid);

imshow (маалыматтар);

b = кадам (а, маалыматтар);

токто

i = 1 үчүн: өлчөмү (b, 1)

тик бурчтук ('позиция', b (i,:), 'линиянын туурасы', 2, 'линстил', '-', 'EdgeColor', 'r');

аяктоо

кармоо

текст (10, 10, strcat ('\ color {green} Беттердин саны =', num2str (узундугу (b)))));

аяктоо

токтотуу (видео); % Видео тартууну токтотуу

Сунушталууда: