Talaan ng mga Nilalaman:

MATLAB Madaling Pagtuklas ng Mukha: 4 na Hakbang
MATLAB Madaling Pagtuklas ng Mukha: 4 na Hakbang

Video: MATLAB Madaling Pagtuklas ng Mukha: 4 na Hakbang

Video: MATLAB Madaling Pagtuklas ng Mukha: 4 na Hakbang
Video: Kapuso Mo, Jessica Soho: 4-anyos na babae, nagdadalaga na? 2024, Hulyo
Anonim
MATLAB Madaling Pagtuklas ng Mukha
MATLAB Madaling Pagtuklas ng Mukha

Ang pangunahing layunin ng mga itinuturo na ito ay upang maipakita kung gaano kadali, ang pagpoproseso ng imahe ay magiging, Sa tulong ng MATLAB

Ang pagtuklas sa mukha at pagsubaybay ay naging isang mahalaga at aktibong larangan ng pagsasaliksik, kaya't ipapaliwanag ko kung paano ito magagawa sa Matlab.

Sa sumusunod na tutorial gagawin ko ang mga bagay sa ibaba:

1. pagkakita ng mga mukha sa isang imahe at pagbibilang.

2. pagkakita ng mga mata ng tao sa isang imahe at pagbibilang.

3. pagkakita ng bibig ng tao sa isang imahe at pagbibilang.

4. pagkakita ng mga mukha sa isang Video at pagbibilang.

5. pagkakita ng mga mata ng tao sa isang Video at pagbibilang.

6. pagtuklas ng bibig ng tao sa isang Video at pagbibilang.

Hakbang 1: Pagtuklas ng Mga Mukha sa isang Imahe at Pagbibilang

Pagtuklas ng Mga Mukha sa isang Imahe at Pagbibilang
Pagtuklas ng Mga Mukha sa isang Imahe at Pagbibilang

MATLAB SCRIPT:

i-clear ang lahat ng% i-clear ang lahat ng mga objectclc% i-clear ang screen

FDetect = vision. CascadeObjectDetector; % Nakakita ng mga bagay gamit ang Viola-Jones Algorithm

% Basahin ang imahe ng pag-input

imahe = imread ('c: / Deskotp / HarryPotter.jpg'); % load ang imahe sa pamamagitan ng paggamit ng imread ('lokasyon ng file / pangalan.jpg')

BB = hakbang (FDetect, imahe); % Ibinabalik ang mga halaga ng Bounding Box batay sa bilang ng mga bagay

pigura, imshow (I);

hawakan mo

para sa i = 1: laki (BB, 1)

rektanggulo ('Posisyon', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); % r-red, g-green, b-blue

magtapos

pamagat ('Detection ng Mukha'); % pamagat ng figureholder off;

Ang resulta ay magiging katulad ng imaheng naidikit sa mismong hakbang na ito

Upang mabilang ang bilang ng mga mukha na nakita:

i-clear ang lahat ng% i-clear ang lahat ng mga objectclc% i-clear ang screen

FDetect = vision. CascadeObjectDetector; % Tuklasin ang mga bagay gamit ang Viola-Jones Algorithm% Basahin ang imaheng input

imahe = imread ('c: / Deskotp / HarryPotter.jpg'); % load ang imahe sa pamamagitan ng paggamit ng imread ('lokasyon ng file / pangalan.jpg')

BB = hakbang (FDetect, imahe); % Ibinabalik ang mga halaga ng Bounding Box batay sa bilang ng mga bagay

pigura,

imshow (I);

hawakan mo

para sa i = 1: laki (BB, 1)

rektanggulo ('Posisyon', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); % r-red, g-green, b-blue

magtapos

teksto (10, 10, strcat ('\ color {red} Wala ng mga mukha =', num2str (haba (BB)))); Binibigyan ka ng linyang ito ng bilang

pamagat ('Detection ng Mukha'); % pamagat ng pigura

pigilan;

Hakbang 2: Pagtuklas ng Mga Mata ng Tao sa isang Imahe at Pagbibilang

Pagtuklas ng Mga Mata ng Tao sa isang Imahe at Pagbibilang
Pagtuklas ng Mga Mata ng Tao sa isang Imahe at Pagbibilang

MATLAB SCRIPT:

Alisin lahat;

clc;

% Upang makita ang EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

% Basahin ang input

imahe = imread ('c: / Deskotp / HarryPotter.jpg'); % load ang imahe sa pamamagitan ng paggamit ng imread ('lokasyon ng file / pangalan.jpg')

BB = hakbang (EyeDetect, imahe);

pigura,

imshow (imahe);

rektanggulo ('Posisyon', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

pamagat ('Mata ng Pagtuklas');

Ang resulta ay magiging katulad ng imaheng naidikit sa mismong hakbang na ito

Upang mabilang ang bilang ng mga mata na nakita:

limasin ang lahat; clc; % Upang tiktikan ang mga Mata

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

imahe = imread ('c: / Deskotp / HarryPotter.jpg'); % load ang imahe sa pamamagitan ng paggamit ng imread ('lokasyon ng file / pangalan.jpg')

BB = step (EyeDetect, imahe); figure, imshow (imahe); rektanggulo ('Posisyon', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

teksto (10, 10, strcat ('\ kulay {pula} Wala ng mga mata =', num2str (haba (BB))));

pamagat ('Mata ng Pagtuklas');

Hakbang 3: Pagtuklas ng Mouth ng Tao sa isang Imahe at Pagbibilang

Pagtuklas ng Mouth ng Tao sa isang Imahe at Pagbibilang
Pagtuklas ng Mouth ng Tao sa isang Imahe at Pagbibilang

MATLAB SCRIPT:

Alisin lahat;

clc;

% Upang tiktikan ang Bibig

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

% Basahin ang imahe ng pag-input = imread ('c: / Deskotp / HarryPotter.jpg'); % load ang imahe sa pamamagitan ng paggamit ng imread ('lokasyon ng file / pangalan.jpg')

BB = hakbang (MouthDetect, imahe);

pigura, imshow (imahe);

hawakan mo

para sa i = 1: laki (BB, 1)

rektanggulo ('Posisyon', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

magtapos

pamagat ('Mouth Detection');

pigilan;

Ang resulta ay magiging katulad ng imaheng naidikit sa mismong hakbang na ito

Upang mabilang ang bilang ng Mouth na nakita:

Alisin lahat; clc; % Upang tiktikan ang Bibig

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); % Basahin ang input

imahe = imread ('c: / Deskotp / HarryPotter.jpg'); % load ang imahe sa pamamagitan ng paggamit ng imread ('lokasyon ng file / pangalan.jpg') BB = hakbang (MouthDetect, imahe);

pigura, imshow (imahe);

hawakan mo

para sa i = 1: laki (BB, 1)

rektanggulo ('Posisyon', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

magtapos

teksto (10, 10, strcat ('\ kulay {pula} Wala sa mga bibig =', num2str (haba (BB))));

pamagat ('Mouth Detection');

pigilan;

Hakbang 4: Pagtuklas ng Mga Mukha, mata, bibig sa isang Video at Pagbibilang

Alisin lahat;

isara ang lahat;

clc;

% Makunan ang mga frame ng video gamit ang pagpapaandar ng pag-input ng video% Kailangan mong palitan ang resolusyon at ang iyong naka-install na pangalan ng adapter.

a = paningin. CascadeObjectDetector; % upang matukoy ang mukha

% a = vision. CascadeObjectDetector ('Bibig', 'MergeThreshold', 16); % upang tiktikan ang bibig

% a = vision. CascadeObjectDetector ('EyePairBig'); % upang makita ang mga mata

% lamang ang gumagamit ng anumang isa (mukha / mata / bibig)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Itakda ang mga pag-aari ng object ng video

itakda (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; % simulan ang acquisition ng video dito

simulan (vid)% Magtakda ng isang loop na huminto pagkatapos ng 100 mga frame ng acquisition

habang (vid. FramesAcquired <= 200)% Kunin ang snapshot ng kasalukuyang frame

data = getsnapshot (vid);

imshow (data);

b = hakbang (a, data);

hawakan mo

para sa i = 1: laki (b, 1)

rektanggulo ('posisyon', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

magtapos

pigilan

teksto (10, 10, strcat ('\ kulay {berde} Wala sa mga mukha =', num2str (haba (b))));

magtapos

huminto (vid); % Itigil ang pagkuha ng video

Inirerekumendang: