Съдържание:

MATLAB Лесно разпознаване на лице: 4 стъпки
MATLAB Лесно разпознаване на лице: 4 стъпки

Видео: MATLAB Лесно разпознаване на лице: 4 стъпки

Видео: MATLAB Лесно разпознаване на лице: 4 стъпки
Видео: 12mp ip камера GREEN VISION определя пол, възраст на човек, брои хора и коли 2024, Юли
Anonim
MATLAB Лесно разпознаване на лица
MATLAB Лесно разпознаване на лица

Основната цел на тези инструкции е да покаже колко лесно ще бъде обработката на изображението с помощта на MATLAB

Откриването и проследяването на лица е важно и активно поле за изследване, затова ще обясня как може да се направи с Matlab.

В следния урок ще направя следните неща:

1. откриване на лица в изображение и броене.

2. откриване на човешки очи в изображение и преброяване.

3. откриване на човешка уста в изображение и преброяване.

4. откриване на лица във видео и броене.

5. откриване на човешки очи във видео и броене.

6. откриване на човешка уста във видео и броене.

Стъпка 1: Откриване на лица в изображение и преброяване

Откриване на лица в изображение и броене
Откриване на лица в изображение и броене

Сценарий на MATLAB:

изчисти всички % изчисти всички обектиclc % изчисти екрана

FDetect = vision. CascadeObjectDetector; %Откриване на обекти с помощта на алгоритъма на Viola-Jones

%Прочетете входното изображение

image = imread ('c: / Deskotp / HarryPotter.jpg'); %заредете изображението, като използвате imread ('file location / name.jpg')

BB = стъпка (FDetect, изображение); %Връща стойностите на рамката за ограничаване въз основа на броя обекти

фигура, имишоу (I);

дръж се

за i = 1: размер (BB, 1)

правоъгълник ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -червено, g-зелено, b-синьо

край

заглавие („Откриване на лица“); %заглавие на цифрата off;

Резултатът ще бъде като изображението, което е прикачено в самата тази стъпка

За да преброите броя открити лица:

изчисти всички % изчисти всички обектиclc % изчисти екрана

FDetect = vision. CascadeObjectDetector; %Откриване на обекти с помощта на алгоритъма на Viola-Jones %Прочетете входното изображение

image = imread ('c: / Deskotp / HarryPotter.jpg'); %заредете изображението, като използвате imread ('file location / name.jpg')

BB = стъпка (FDetect, изображение); %Връща стойностите на рамката за ограничаване въз основа на броя обекти

фигура,

imshow (I);

дръж се

за i = 1: размер (BB, 1)

правоъгълник ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -червено, g-зелено, b-синьо

край

текст (10, 10, strcat ('\ color {red} Брой лица =', num2str (дължина (BB)))); Този ред ви дава броя

заглавие („Откриване на лица“); %заглавие на фигурата

задържам;

Стъпка 2: Откриване на човешки очи в изображение и преброяване

Откриване на човешки очи в образ и броене
Откриване на човешки очи в образ и броене

Сценарий на MATLAB:

изчисти всичко;

clc;

%За откриване на EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

%Прочетете входа

image = imread ('c: / Deskotp / HarryPotter.jpg'); %заредете изображението, като използвате imread ('file location / name.jpg')

BB = стъпка (EyeDetect, изображение);

фигура,

imshow (изображение);

правоъгълник ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

заглавие („Откриване на очите“);

Резултатът ще бъде като изображението, което е прикачено в самата тази стъпка

За да преброите броя на откритите очи:

изчисти всичко; clc; %За откриване на очи

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %заредете изображението, като използвате imread ('file location / name.jpg')

BB = стъпка (EyeDetect, изображение); фигура, imshow (изображение); правоъгълник ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

text (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 ('file location / name.jpg')

BB = стъпка (MouthDetect, изображение);

фигура, имишоу (изображение);

дръж се

за i = 1: размер (BB, 1)

правоъгълник ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

край

заглавие („Откриване на уста“);

задържам;

Резултатът ще бъде като изображението, което е прикачено в самата тази стъпка

За да преброите броя на откритите уста:

изчисти всичко; 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');

край

text (10, 10, strcat ('\ color {red} No of mouths =', num2str (length (BB))));

заглавие („Откриване на уста“);

задържам;

Стъпка 4: Откриване на лица, очи, уста във видео и броене

изчисти всичко;

затвори всички;

clc;

% Заснемане на видео кадрите с помощта на функцията за видео вход % Трябва да смените разделителната способност и името на инсталирания адаптер.

a = vision. CascadeObjectDetector; %за откриване на лице

% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %за откриване на устата

% a = vision. CascadeObjectDetector ('EyePairBig'); %за откриване на очите

%използвайте само някой (лице/очи/уста)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Задайте свойствата на видео обекта

set (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %започнете придобиването на видео тук

start (vid) % Задайте цикъл, който спира след 100 кадъра на придобиване

while (vid. FramesAcquired <= 200) % Вземете моментната снимка на текущия кадър

data = getsnapshot (vid);

imshow (данни);

b = стъпка (a, данни);

дръж се

за i = 1: размер (b, 1)

правоъгълник ('position', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

край

задържам

текст (10, 10, strcat ('\ color {зелен} Брой лица =', num2str (дължина (b))));

край

стоп (vid); % Спрете придобиването на видео

Препоръчано: