Բովանդակություն:

MATLAB Հեշտ դեմքի հայտնաբերում. 4 քայլ
MATLAB Հեշտ դեմքի հայտնաբերում. 4 քայլ

Video: MATLAB Հեշտ դեմքի հայտնաբերում. 4 քայլ

Video: MATLAB Հեշտ դեմքի հայտնաբերում. 4 քայլ
Video: Face Detection in matlab 2024, Հուլիսի
Anonim
MATLAB Հեշտ դեմքի հայտնաբերում
MATLAB Հեշտ դեմքի հայտնաբերում

Այս հրահանգների հիմնական նպատակն է ցույց տալ, թե որքան հեշտ կլինի պատկերի մշակումը ՝ MATLAB- ի օգնությամբ

Դեմքի հայտնաբերումը և հետևելը կարևոր և ակտիվ հետազոտական ոլորտ էր, ուստի դրա համար ես պատրաստվում եմ բացատրել, թե ինչպես դա կարելի է անել Matlab- ի միջոցով:

Հետևյալ ձեռնարկում ես պատրաստվում եմ անել հետևյալը.

1. պատկերի դեմքեր հայտնաբերելը և հաշվելը:

2. մարդու աչքերը հայտնաբերել պատկերի մեջ և հաշվել:

3. մարդու բերանի հայտնաբերում պատկերի մեջ և հաշվել:

4. դեմքերի հայտնաբերում տեսանյութում և հաշվել:

5. Մարդու աչքերի հայտնաբերում տեսանյութում և հաշվել:

6. Մարդու բերանի հայտնաբերում տեսանյութում և հաշվել:

Քայլ 1. Պատկերում դեմքերի հայտնաբերում և հաշվարկ

Պատկերում դեմքերի հայտնաբերում և հաշվարկ
Պատկերում դեմքերի հայտնաբերում և հաշվարկ

MATLAB SCRIPT:

մաքրել բոլոր % մաքրել բոլոր օբյեկտները clc % մաքուր էկրան

FDetect = vision. CascadeObjectDetector; %Հայտնաբերել օբյեկտները ՝ օգտագործելով Վիոլա-onesոնսի ալգորիթմը

%Կարդացեք մուտքային պատկերը

image = imread ('c: / Deskotp / HarryPotter.jpg'); %բեռնել պատկերը `օգտագործելով imread ('ֆայլի գտնվելու վայրը / name.jpg')

BB = քայլ (FDetect, image); Վերադարձնում է սահմանափակող տուփի արժեքները ՝ հիմնված օբյեկտների քանակի վրա

գործիչ, ցուցադրում (I);

սպասիր

i = 1 համար: Չափ (BB, 1)

ուղղանկյուն («Դիրք», BB (i,:), "LineWidth", 5, "LineStyle", "-", "EdgeColor", "r"); %r-կարմիր, g-կանաչ, b-կապույտ

վերջ

վերնագիր («Դեմքի հայտնաբերում»); %գործարքի անջատված անվանումը;

Արդյունքը նման կլինի այն պատկերին, որը կցված էր հենց այս քայլին

Հայտնաբերված դեմքերի թիվը հաշվելու համար

մաքրել բոլոր % մաքրել բոլոր օբյեկտները clc % մաքուր էկրան

FDetect = vision. CascadeObjectDetector; %Հայտնաբերել օբյեկտները ՝ օգտագործելով Վիոլա-onesոնսի ալգորիթմը Կարդացեք մուտքային պատկերը

image = imread ('c: / Deskotp / HarryPotter.jpg'); %բեռնել պատկերը `օգտագործելով imread ('ֆայլի գտնվելու վայրը / name.jpg')

BB = քայլ (FDetect, image); Վերադարձնում է սահմանափակող տուփի արժեքները ՝ հիմնված օբյեկտների քանակի վրա

գործիչ,

ցուցադրել (I);

սպասիր

i = 1 համար: Չափ (BB, 1)

ուղղանկյուն ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-կարմիր, g-կանաչ, b-կապույտ

վերջ

տեքստ (10, 10, strcat ('\ գույն {կարմիր} Դեմքերի թիվ =', num2str (երկարություն (BB)))); Այս տողը տալիս է հաշվարկը

վերնագիր («Դեմքի հայտնաբերում»); գործչի անվանումը %

հետաձգել;

Քայլ 2. Մարդու աչքերի հայտնաբերում պատկերով և հաշվարկով:

Մարդու աչքերի հայտնաբերում պատկերով և հաշվարկով
Մարդու աչքերի հայտնաբերում պատկերով և հաշվարկով

MATLAB SCRIPT:

մաքրել բոլորը;

clc;

%EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig') հայտնաբերելու համար;

%Կարդացեք մուտքագրումը

image = imread ('c: / Deskotp / HarryPotter.jpg'); %բեռնել պատկերը `օգտագործելով imread ('ֆայլի գտնվելու վայրը / name.jpg')

BB = քայլ (EyeDetect, image);

գործիչ,

ցուցադրում (պատկեր);

ուղղանկյուն ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

վերնագիր («Աչքերի հայտնաբերում»);

Արդյունքը նման կլինի այն պատկերին, որը կցված էր հենց այս քայլին

Հայտնաբերված աչքերի քանակը հաշվելու համար

մաքրել բոլորը; clc; %Աչքերը հայտնաբերելու համար

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %բեռնել պատկերը `օգտագործելով imread ('ֆայլի գտնվելու վայրը / name.jpg')

BB = քայլ (EyeDetect, image); figure, imshow (image); ուղղանկյուն ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

տեքստ (10, 10, strcat ('\ գույն {կարմիր} Աչքերի քանակ =', num2str (երկարություն (BB))));

վերնագիր («Աչքերի հայտնաբերում»);

Քայլ 3. Մարդու բերանի հայտնաբերում պատկերով և հաշվարկով

Մարդու բերանի հայտնաբերում պատկերով և հաշվարկով
Մարդու բերանի հայտնաբերում պատկերով և հաշվարկով

MATLAB SCRIPT:

մաքրել բոլորը;

clc;

Բերանը հայտնաբերելու համար

MouthDetect = vision. CascadeObjectDetector («Բերան», «MergeThreshold», 16);

%Կարդալ մուտքագրված պատկերը = imread ('c: / Deskotp / HarryPotter.jpg'); %բեռնել պատկերը `օգտագործելով imread ('ֆայլի գտնվելու վայրը / name.jpg')

BB = քայլ (MouthDetect, image);

գործիչ, ցուցադրում (պատկեր);

սպասիր

i = 1 համար: Չափ (BB, 1)

ուղղանկյուն ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

վերջ

վերնագիր («Բերանի հայտնաբերում»);

հետաձգել;

Արդյունքը նման կլինի այն պատկերին, որը կցված էր հենց այս քայլին

Հայտնաբերված բերանի թիվը հաշվելու համար

մաքրել բոլորը; clc; Բերանը հայտնաբերելու համար

MouthDetect = vision. CascadeObjectDetector («Բերան», «MergeThreshold», 16); %Կարդացեք մուտքագրումը

image = imread ('c: / Deskotp / HarryPotter.jpg'); %բեռնել պատկերը `օգտագործելով imread ('ֆայլի գտնվելու վայրը / name.jpg') BB = քայլ (MouthDetect, image);

գործիչ, ցուցադրում (պատկեր);

սպասիր

i = 1 համար: Չափ (BB, 1)

ուղղանկյուն ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

վերջ

տեքստ (10, 10, strcat ('\ գույն {կարմիր} Բերանների թիվ =', num2str (երկարություն (BB))));

վերնագիր («Բերանի հայտնաբերում»);

հետաձգել;

Քայլ 4 ՝ դեմքերի, աչքերի, բերանի հայտնաբերում տեսանյութում և հաշվել:

մաքրել բոլորը;

փակել բոլորը;

clc;

% Նկարագրեք տեսանյութերի շրջանակները ՝ օգտագործելով տեսա մուտքագրման գործառույթը % Դուք պետք է փոխարինեք լուծաչափը և տեղադրված ադապտեր անունը:

a = vision. CascadeObjectDetector; %`դեմքը հայտնաբերելու համար

% a = vision. CascadeObjectDetector («Բերան», «MergeThreshold», 16); %բերանը հայտնաբերելու համար

% a = vision. CascadeObjectDetector ('EyePairBig'); %՝ աչքերը հայտնաբերելու համար

%-ը օգտագործում է միայն մեկը (դեմք/աչքեր/բերան)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Սահմանել տեսաօբյեկտի հատկությունները

հավաքածու (vid, 'FramesPerTrigger', Inf);

հավաքածու (vid, 'ReturnedColorspace', 'rgb');

vid. FrameGrabInterval = 5; %սկսել տեսանյութի ձեռքբերումը այստեղ

սկիզբ (տեսանյութ) % Տեղադրեք մի հանգույց, որը դադարում է ձեռքբերման 100 շրջանակից հետո

while (vid. FramesAcquired <= 200) % Ստացեք ընթացիկ շրջանակի պատկերը

տվյալներ = getnapshot (տեսանյութ);

ցուցադրում (տվյալներ);

b = քայլ (a, տվյալներ);

սպասիր

i = 1 -ի համար. չափը (b, 1)

ուղղանկյուն («դիրք», b (i,:), "linewidth", 2, "linestyle", "-", "EdgeColor", "r");

վերջ

հետաձգել

տեքստ (10, 10, strcat ('\ գույն {կանաչ} Դեմքերի թիվ =', num2str (երկարություն (բ))));

վերջ

կանգառ (տեսանյութ); % Դադարեցնել տեսանյութի ձեռքբերումը

Խորհուրդ ենք տալիս: