Índice:
- Etapa 1: Detecção de rostos em uma imagem e contagem
- Etapa 2: Detecção de olhos humanos em uma imagem e contagem
- Etapa 3: Detecção da boca humana em uma imagem e contagem
- Etapa 4: Detecção de rostos, olhos e boca em um vídeo e contagem
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
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
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
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
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:
Tabuleiro Organizador Barato, Dupla Face, Estilo Grid-it: 4 etapas
Tabuleiro Organizador de Estilo Grid-it Barato, Dupla Face: esta é uma versão simples e barata dos organizadores de grid-it mais polidos, fortes e geralmente melhores que você pode comprar. Custei fazer uma construção semelhante à original e decidi que não valia a pena, mas esta versão não custou exatamente nada (
Casio A158W Clean Face Mod: 4 etapas
Casio A158W Clean Face Mod: Casio A158W é um relógio digital clássico cujo design não mudou nos últimos 30 anos. É louco pensar que uma peça de tecnologia pode permanecer inalterada por tanto tempo, especialmente porque eles ainda estão fazendo isso. A regra "se não for mano
Reconhecimento e identificação facial - Arduino Face ID usando OpenCV Python e Arduino: 6 etapas
Reconhecimento e identificação facial | Arduino Face ID usando OpenCV Python e Arduino .: O reconhecimento facial AKA Face ID é um dos recursos mais importantes em telefones celulares hoje em dia. Então, eu tinha uma pergunta " posso ter um ID de rosto para meu projeto Arduino? e a resposta é sim … Minha jornada começou da seguinte maneira: Etapa 1: Acesso a nós
Caixa de exposição dupla-face UV: 5 etapas (com fotos)
UV Two-sided Exposure Box: Olá! Este é meu primeiro post :) Neste site eu vi alguns projetos de UV Exposure Box, e decidi fazer minha escolha … Decidi compartilhar com vocês:) Eu queria ter uma caixa de exposição de dois lados. Usei MDF 12mm e acrílico fundido 3mm para preparar o bodyAl
Texas Big Face - Projeção 3D Face - Como fazer: 10 etapas (com imagens)
Texas Big Face - Projeção 3D Face Como: Criar " estátuas vivas " projetando seu rosto em esculturas. Como fazer: David Sutherland, Kirk Moreno em colaboração com Graffiti Research Lab Houston * Vários comentários indicam que há alguns problemas de áudio. Isto é