Índice:

MATLAB Easy Face Detection: 4 etapas
MATLAB Easy Face Detection: 4 etapas
Anonim
MATLAB Easy Face Detection
MATLAB Easy Face Detection

O principal objetivo deste instructables é mostrar o quão fácil será o processamento da imagem, com a ajuda do MATLAB

A detecção e rastreamento facial tem sido um campo de pesquisa importante e ativo, por isso vou explicar como isso pode ser feito com o Matlab.

No tutorial a seguir, farei o seguinte:

1. detecção de rostos em uma imagem e contagem.

2. detecção de olhos humanos em uma imagem e contagem.

3. detectar a boca humana em uma imagem e contar.

4.detecção de rostos em um vídeo e contagem.

5.detecção de olhos humanos em um vídeo e contagem.

6.detecção da boca humana em um vídeo e contagem.

Etapa 1: Detecção de rostos em uma imagem e contagem

Detectando faces em uma imagem e contando
Detectando faces em uma imagem e contando

SCRIPT DO MATLAB:

limpar tudo% limpar todos os objetosclc% limpar tela

FDetect = vision. CascadeObjectDetector; % Detecta objetos usando o algoritmo Viola-Jones

% Leia a imagem de entrada

imagem = imread ('c: / Deskotp / HarryPotter.jpg'); % carregue a imagem usando imread ('localização do arquivo / nome.jpg')

BB = etapa (FDetect, imagem); % Retorna os valores da caixa delimitadora com base no número de objetos

figura, imshow (I);

aguentar

para i = 1: tamanho (BB, 1)

retângulo ('Posição', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); % r -red, g-green, b-blue

fim

título ('Detecção de rosto'); % título da figura detida;

O resultado será como a imagem que foi anexada nesta etapa

Para contar o número de rostos detectados:

limpar tudo% limpar todos os objetosclc% limpar tela

FDetect = vision. CascadeObjectDetector; % Detecta objetos usando o algoritmo Viola-Jones% Leia a imagem de entrada

imagem = imread ('c: / Deskotp / HarryPotter.jpg'); % carregue a imagem usando imread ('localização do arquivo / nome.jpg')

BB = etapa (FDetect, imagem); % Retorna os valores da caixa delimitadora com base no número de objetos

figura,

imshow (I);

aguentar

para i = 1: tamanho (BB, 1)

retângulo ('Posição', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); % r -red, g-green, b-blue

fim

texto (10, 10, strcat ('\ color {red} Nº de faces =', num2str (comprimento (BB)))); Esta linha dá a você a contagem

título ('Detecção de rosto'); % título da figura

espere;

Etapa 2: Detecção de olhos humanos em uma imagem e contagem

Detecção de olhos humanos em uma imagem e contagem
Detecção de olhos humanos em uma imagem e contagem

SCRIPT DO MATLAB:

limpar tudo;

clc;

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

% Leia a entrada

imagem = imread ('c: / Deskotp / HarryPotter.jpg'); % carregue a imagem usando imread ('localização do arquivo / nome.jpg')

BB = etapa (EyeDetect, imagem);

figura,

imshow (imagem);

retângulo ('Posição', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

título ('Detecção de olhos');

O resultado será como a imagem que foi anexada nesta etapa

Para contar o número de olhos detectados:

limpar tudo; clc; % Para detectar olhos

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

imagem = imread ('c: / Deskotp / HarryPotter.jpg'); % carregue a imagem usando imread ('localização do arquivo / nome.jpg')

BB = passo (EyeDetect, imagem); figura, imshow (imagem); retângulo ('Posição', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

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

título ('Detecção de olhos');

Etapa 3: Detecção da boca humana em uma imagem e contagem

Detectando a boca humana em uma imagem e contando
Detectando a boca humana em uma imagem e contando

SCRIPT DO MATLAB:

limpar tudo;

clc;

% Para detectar boca

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

% Leia a imagem de entrada = imread ('c: / Deskotp / HarryPotter.jpg'); % carregue a imagem usando imread ('localização do arquivo / nome.jpg')

BB = etapa (MouthDetect, imagem);

figura, imshow (imagem);

aguentar

para i = 1: tamanho (BB, 1)

retângulo ('Posição', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

fim

título ('Detecção de boca');

espere;

O resultado será como a imagem que foi anexada nesta etapa

Para contar o número de Bocas detectadas:

limpar tudo; clc; % Para detectar boca

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); % Leia a entrada

imagem = imread ('c: / Deskotp / HarryPotter.jpg'); % carregue a imagem usando imread ('localização do arquivo / nome.jpg') BB = step (MouthDetect, imagem);

figura, imshow (imagem);

aguentar

para i = 1: tamanho (BB, 1)

retângulo ('Posição', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

fim

texto (10, 10, strcat ('\ color {red} Nº de bocas =', num2str (comprimento (BB))));

título ('Detecção de boca');

espere;

Etapa 4: Detecção de rostos, olhos e boca em um vídeo e contagem

limpar tudo;

feche tudo;

clc;

% Capture os quadros de vídeo usando a função de entrada de vídeo% Você deve substituir a resolução e o nome do adaptador instalado.

a = vision. CascadeObjectDetector; % para detectar rosto

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

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

% usa apenas qualquer um (rosto / olhos / boca)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Define as propriedades do objeto de vídeo

set (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; % começa a aquisição de vídeo aqui

start (vid)% Define um loop que pára após 100 frames de aquisição

while (vid. FramesAcquired <= 200)% Obtenha o instantâneo do quadro atual

dados = getsnapshot (vid);

imshow (dados);

b = etapa (a, dados);

aguentar

para i = 1: tamanho (b, 1)

retângulo ('posição', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

fim

espere

texto (10, 10, strcat ('\ color {green} Nº de faces =', num2str (comprimento (b))));

fim

parar (vid); % Pare a aquisição de vídeo

Recomendado: