Оглавление:

MATLAB Easy Face Detection: 4 шага
MATLAB Easy Face Detection: 4 шага

Видео: MATLAB Easy Face Detection: 4 шага

Видео: MATLAB Easy Face Detection: 4 шага
Видео: Computer Vision using DL. Лекция 6. Распознавание лиц (2019) 2024, Ноябрь
Anonim
MATLAB Easy Face Detection
MATLAB Easy Face Detection

Основная цель этих инструкций - показать, насколько простой будет обработка изображений с помощью MATLAB.

Обнаружение и отслеживание лиц были важной и активной областью исследований, поэтому я собираюсь объяснить, как это можно сделать с помощью Matlab.

В следующем уроке я собираюсь сделать следующее:

1. обнаружение лиц на изображении и подсчет.

2. обнаружение человеческих глаз на изображении и подсчет.

3. обнаружение человеческого рта на изображении и подсчет.

4. обнаружение лиц на видео и подсчет.

5. обнаружение человеческих глаз на видео и подсчет.

6. обнаружение человеческого рта на видео и подсчет.

Шаг 1. Обнаружение лиц на изображении и подсчет

Обнаружение лиц на изображении и подсчет
Обнаружение лиц на изображении и подсчет

СЦЕНАРИЙ MATLAB:

очистить все% очистить все объектыclc% очистить экран

FDetect = vision. CascadeObjectDetector; % Обнаружение объектов с использованием алгоритма Виолы-Джонса

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

image = imread ('c: / Deskotp / HarryPotter.jpg'); % загрузить изображение с помощью imread ('расположение файла / name.jpg')

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

рисунок, imshow (I);

Подожди

для i = 1: size (BB, 1)

прямоугольник ('Позиция', BB (i,:), 'Ширина линии', 5, 'Стиль линии', '-', 'EdgeColor', 'r'); % r-красный, g-зеленый, b-синий

конец

title («Распознавание лиц»); % титул фигуриста;

Результат будет похож на изображение, которое было прикреплено на этом шаге.

Чтобы подсчитать количество обнаруженных лиц:

очистить все% очистить все объектыclc% очистить экран

FDetect = vision. CascadeObjectDetector; % Обнаружение объектов с использованием алгоритма Виолы-Джонса% Считывание входного изображения

image = imread ('c: / Deskotp / HarryPotter.jpg'); % загрузить изображение с помощью imread ('расположение файла / name.jpg')

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

фигура,

imshow (I);

Подожди

для i = 1: size (BB, 1)

прямоугольник ('Позиция', BB (i,:), 'Ширина линии', 5, 'Стиль линии', '-', 'EdgeColor', 'r'); % r-красный, g-зеленый, b-синий

конец

text (10, 10, strcat ('\ color {red} Кол-во лиц =', num2str (length (BB)))); Эта строка дает вам счет

title («Распознавание лиц»); % название рисунка

откладывать;

Шаг 2: Обнаружение человеческих глаз на изображении и подсчет

Обнаружение человеческих глаз на изображении и подсчет
Обнаружение человеческих глаз на изображении и подсчет

СЦЕНАРИЙ MATLAB:

очистить все;

clc;

% Для обнаружения EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

% Прочтите ввод

image = imread ('c: / Deskotp / HarryPotter.jpg'); % загрузить изображение с помощью imread ('расположение файла / name.jpg')

BB = шаг (EyeDetect, изображение);

фигура,

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

прямоугольник ('Позиция', BB, 'Ширина линии', 4, 'Стиль линии', '-', 'Цвет края', 'b');

title («Обнаружение глаз»);

Результат будет похож на изображение, которое было прикреплено на этом шаге.

Чтобы подсчитать количество обнаруженных глаз:

очистить все; clc; % Для обнаружения глаз

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); % загрузить изображение с помощью imread ('расположение файла / name.jpg')

BB = шаг (EyeDetect, изображение); рисунок, imshow (изображение); прямоугольник ('Позиция', BB, 'Ширина линии', 4, 'Стиль линии', '-', 'Цвет края', 'b');

text (10, 10, strcat ('\ color {red} Кол-во глаз =', num2str (length (BB))));

title («Обнаружение глаз»);

Шаг 3: Обнаружение человеческого рта на изображении и подсчет

Обнаружение человеческого рта на изображении и подсчет
Обнаружение человеческого рта на изображении и подсчет

СЦЕНАРИЙ MATLAB:

очистить все;

clc;

% Чтобы обнаружить рот

MouthDetect = vision. CascadeObjectDetector ('Рот', 'MergeThreshold', 16);

% Прочтите входное изображение = imread ('c: / Deskotp / HarryPotter.jpg'); % загрузить изображение с помощью imread ('расположение файла / name.jpg')

BB = шаг (MouthDetect, изображение);

рисунок, imshow (изображение);

Подожди

для i = 1: size (BB, 1)

прямоугольник ('Позиция', BB (i,:), 'Ширина линии', 4, 'Стиль линии', '-', 'EdgeColor', 'r');

конец

title («Обнаружение рта»);

откладывать;

Результат будет похож на изображение, которое было прикреплено на этом шаге.

Чтобы подсчитать количество обнаруженных ртов:

очистить все; clc; % Чтобы обнаружить рот

MouthDetect = vision. CascadeObjectDetector ('Рот', 'MergeThreshold', 16); % Прочтите ввод

image = imread ('c: / Deskotp / HarryPotter.jpg'); % загрузить изображение с помощью imread ('расположение файла / name.jpg') BB = step (MouthDetect, image);

рисунок, imshow (изображение);

Подожди

для i = 1: size (BB, 1)

прямоугольник ('Позиция', BB (i,:), 'Ширина линии', 4, 'Стиль линии', '-', 'EdgeColor', 'r');

конец

text (10, 10, strcat ('\ color {red} Кол-во ртов =', num2str (length (BB))));

title («Обнаружение рта»);

откладывать;

Шаг 4: Обнаружение лиц, глаз, рта на видео и подсчет

очистить все;

закрыть все;

clc;

% Захватите видеокадры с помощью функции видеовхода% Вам необходимо заменить разрешение и имя установленного адаптера.

a = vision. CascadeObjectDetector; % для обнаружения лица

% a = vision. CascadeObjectDetector ('Рот', '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)% Получить снимок текущего кадра

данные = получает снимок (видео);

imshow (данные);

b = шаг (a, данные);

Подожди

для i = 1: size (b, 1)

rectangle ('позиция', b (i,:), 'ширина линии', 2, 'стиль линии', '-', 'EdgeColor', 'r');

конец

откладывать

text (10, 10, strcat ('\ color {green} Кол-во лиц =', num2str (length (b))));

конец

стоп (видео); % Остановить получение видео

Рекомендуемые: