Tabla de contenido:

MATLAB Easy Face Detection: 4 pasos
MATLAB Easy Face Detection: 4 pasos

Video: MATLAB Easy Face Detection: 4 pasos

Video: MATLAB Easy Face Detection: 4 pasos
Video: Real time face detection using MATLAB || let's dECodE || 2024, Noviembre
Anonim
MATLAB Easy Face Detection
MATLAB Easy Face Detection

El objetivo principal de estos instructables es mostrar lo fácil que será el procesamiento de imágenes. Con la ayuda de MATLAB

La detección y el seguimiento de rostros ha sido un campo de investigación importante y activo, por eso voy a explicar cómo se puede hacer con Matlab.

En el siguiente tutorial voy a hacer lo siguiente:

1.detectar caras en una imagen y contar.

2.detectar ojos humanos en una imagen y contar.

3.detectar la boca humana en una imagen y contar.

4.detectar rostros en un video y contar.

5.detectar ojos humanos en un video y contar.

6.detectar la boca humana en un video y contar.

Paso 1: Detectar caras en una imagen y contar

Detectar rostros en una imagen y contar
Detectar rostros en una imagen y contar

GUIÓN DE MATLAB:

borrar todo% borrar todos los objetos clc% borrar pantalla

FDetect = vision. CascadeObjectDetector; % Detectar objetos usando el algoritmo Viola-Jones

% Leer la imagen de entrada

imagen = imread ('c: / Deskotp / HarryPotter.jpg'); % cargue la imagen usando imread ('ubicación del archivo / nombre.jpg')

BB = paso (FDetect, imagen); % Devuelve los valores del cuadro delimitador en función del número de objetos

figura, imshow (I);

esperar

para i = 1: tamaño (BB, 1)

rectángulo ('Posición', BB (i,:), 'Ancho de línea', 5, 'Estilo de línea', '-', 'Color de borde', 'r'); % r -rojo, g-verde, b-azul

fin

título ('Detección de rostro'); % de título de la cifra retenida;

El resultado será como la imagen que se adjuntó en este paso.

Para contar el número de rostros detectados:

borrar todo% borrar todos los objetos clc% borrar pantalla

FDetect = vision. CascadeObjectDetector; % Detectar objetos usando el algoritmo Viola-Jones% Leer la imagen de entrada

imagen = imread ('c: / Deskotp / HarryPotter.jpg'); % cargue la imagen usando imread ('ubicación del archivo / nombre.jpg')

BB = paso (FDetect, imagen); % Devuelve los valores del cuadro delimitador en función del número de objetos

figura,

imshow (yo);

esperar

para i = 1: tamaño (BB, 1)

rectángulo ('Posición', BB (i,:), 'Ancho de línea', 5, 'Estilo de línea', '-', 'Color de borde', 'r'); % r -rojo, g-verde, b-azul

fin

text (10, 10, strcat ('\ color {red} No de caras =', num2str (longitud (BB)))); Esta línea te da la cuenta

título ('Detección de rostro'); % título de la figura

esperar;

Paso 2: Detectar ojos humanos en una imagen y contar

Detectando ojos humanos en una imagen y contando
Detectando ojos humanos en una imagen y contando

GUIÓN DE MATLAB:

limpiar todo;

clc;

% Para detectar EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

% Leer la entrada

imagen = imread ('c: / Deskotp / HarryPotter.jpg'); % cargue la imagen usando imread ('ubicación del archivo / nombre.jpg')

BB = paso (EyeDetect, imagen);

figura,

imshow (imagen);

rectángulo ('Posición', BB, 'Ancho de línea', 4, 'Estilo de línea', '-', 'Color de borde', 'b');

título ('Detección de ojos');

El resultado será como la imagen que se adjuntó en este paso.

Para contar el número de ojos detectados:

borrar todo; clc; % Para detectar ojos

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

imagen = imread ('c: / Deskotp / HarryPotter.jpg'); % cargue la imagen usando imread ('ubicación del archivo / nombre.jpg')

BB = paso (EyeDetect, imagen); figura, imshow (imagen); rectángulo ('Posición', BB, 'Ancho de línea', 4, 'Estilo de línea', '-', 'Color de borde', 'b');

text (10, 10, strcat ('\ color {red} No de ojos =', num2str (longitud (BB))));

título ('Detección de ojos');

Paso 3: Detectar la boca humana en una imagen y contar

Detectando la boca humana en una imagen y contando
Detectando la boca humana en una imagen y contando

GUIÓN DE MATLAB:

limpiar todo;

clc;

% Para detectar la boca

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

% Leer la imagen de entrada = imread ('c: / Deskotp / HarryPotter.jpg'); % cargue la imagen usando imread ('ubicación del archivo / nombre.jpg')

BB = paso (MouthDetect, imagen);

figura, imshow (imagen);

esperar

para i = 1: tamaño (BB, 1)

rectángulo ('Posición', BB (i,:), 'Ancho de línea', 4, 'Estilo de línea', '-', 'Color de borde', 'r');

fin

título ('Detección bucal');

esperar;

El resultado será como la imagen que se adjuntó en este paso.

Para contar el número de bocas detectadas:

limpiar todo; clc; % Para detectar la boca

MouthDetect = vision. CascadeObjectDetector ('Boca', 'MergeThreshold', 16); % Leer la entrada

imagen = imread ('c: / Deskotp / HarryPotter.jpg'); % cargue la imagen usando imread ('ubicación del archivo / nombre.jpg') BB = paso (MouthDetect, imagen);

figura, imshow (imagen);

esperar

para i = 1: tamaño (BB, 1)

rectángulo ('Posición', BB (i,:), 'Ancho de línea', 4, 'Estilo de línea', '-', 'Color de borde', 'r');

fin

text (10, 10, strcat ('\ color {red} No de bocas =', num2str (longitud (BB))));

título ('Detección bucal');

esperar;

Paso 4: Detectar caras, ojos, boca en un video y contar

limpiar todo;

cierra todo;

clc;

% Capture los fotogramas de video usando la función de entrada de video% Debe reemplazar la resolución y el nombre de su adaptador instalado.

a = vision. CascadeObjectDetector; % para detectar rostro

% a = vision. CascadeObjectDetector ('Boca', 'MergeThreshold', 16); % para detectar boca

% a = vision. CascadeObjectDetector ('EyePairBig'); % para detectar ojos

% solo usa uno (cara / ojos / boca)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Establecer las propiedades del objeto de video

set (vid, 'FramesPerTrigger', Inf);

set (vid, 'Espacio de color devuelto', 'rgb');

vid. FrameGrabInterval = 5; % inicie la adquisición de video aquí

start (vid)% Establece un bucle que se detiene después de 100 fotogramas de adquisición

while (vid. FramesAcquired <= 200)% Obtiene la instantánea del fotograma actual

datos = obtiene instantánea (vid);

imshow (datos);

b = paso (a, datos);

esperar

para i = 1: tamaño (b, 1)

rectángulo ('posición', b (i,:), 'ancho de línea', 2, 'estilo de línea', '-', 'Color de borde', 'r');

fin

esperar

text (10, 10, strcat ('\ color {green} No de caras =', num2str (longitud (b))));

fin

detener (vid); % Detener la adquisición de video

Recomendado: