Taula de continguts:
- Pas 1: Detecció de cares en una imatge i recompte
- Pas 2: detectar els ulls humans en una imatge i comptar
- Pas 3: detectar la boca humana en una imatge i comptar
- Pas 4: detectar rostres, ulls, boca en un vídeo i comptar
Vídeo: MATLAB Easy Face Detection: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
L'objectiu principal d'aquest instructable és mostrar el fàcil que serà el processament d'imatges, amb l'ajuda de MATLAB
La detecció i seguiment de cares ha estat un camp de recerca important i actiu, de manera que us explico com es pot fer amb el Matlab.
Al següent tutorial faré el següent:
1. detectar cares en una imatge i comptar.
2. detectar els ulls humans en una imatge i comptar.
3. detectar la boca humana en una imatge i comptar.
4. detectar cares en un vídeo i comptar.
5. detectar ulls humans en un vídeo i comptar.
6. detectar la boca humana en un vídeo i comptar.
Pas 1: Detecció de cares en una imatge i recompte
GUIÓ DE MATLAB:
neteja tot% neteja tot objectsclc% neteja la pantalla
FDetect = vision. CascadeObjectDetector; % Detectar objectes mitjançant l'algorisme Viola-Jones
% Llegiu la imatge d'entrada
imatge = imread ('c: / Deskotp / HarryPotter.jpg'); % carrega la imatge mitjançant imread ('ubicació del fitxer / nom.jpg')
BB = pas (FDetect, imatge); % Retorna els valors del quadre delimitat en funció del nombre d'objectes
figura, imshow (I);
espera
per a i = 1: mida (BB, 1)
rectangle ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); % r-vermell, g-verd, b-blau
final
title ('Detecció de cares'); % títol de la xifra desactivada;
El resultat serà com la imatge que s'ha adjuntat en aquest pas
Per comptar el nombre de cares detectades:
neteja tot% neteja tot objectsclc% neteja la pantalla
FDetect = vision. CascadeObjectDetector; % Detecta objectes mitjançant l'algorisme Viola-Jones% Llegeix la imatge d'entrada
imatge = imread ('c: / Deskotp / HarryPotter.jpg'); % carrega la imatge mitjançant imread ('ubicació del fitxer / nom.jpg')
BB = pas (FDetect, imatge); % Retorna els valors del quadre delimitat en funció del nombre d'objectes
figura,
imshow (I);
espera
per a i = 1: mida (BB, 1)
rectangle ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); % r-vermell, g-verd, b-blau
final
text (10, 10, strcat ('\ color {red} Nombre de cares =', num2str (longitud (BB)))); Aquesta línia us dóna el recompte
title ('Detecció de cares'); % títol de la figura
mantenir-se a distancia;
Pas 2: detectar els ulls humans en una imatge i comptar
GUIÓ DE MATLAB:
netejar-ho tot;
clc;
% Per detectar EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');
% Llegiu l'entrada
imatge = imread ('c: / Deskotp / HarryPotter.jpg'); % carrega la imatge mitjançant imread ('ubicació del fitxer / nom.jpg')
BB = pas (EyeDetect, imatge);
figura,
imshow (imatge);
rectangle ('Posició', BB, 'Amplada de línia', 4, 'Estil de línia', '-', 'EdgeColor', 'b');
title ('Detecció d'ulls');
El resultat serà com la imatge que s’ha adjuntat en aquest pas
Per comptar el nombre d'ulls detectats:
neteja-ho tot; clc; % Per detectar ulls
EyeDetect = vision. CascadeObjectDetector ('EyePairBig');
imatge = imread ('c: / Deskotp / HarryPotter.jpg'); % carrega la imatge mitjançant imread ('ubicació del fitxer / nom.jpg')
BB = pas (EyeDetect, imatge); figura, imshow (imatge); rectangle ('Posició', BB, 'Amplada de línia', 4, 'Estil de línia', '-', 'EdgeColor', 'b');
text (10, 10, strcat ('\ color {red} Nombre d'ulls =', num2str (longitud (BB))));
title ('Detecció d'ulls');
Pas 3: detectar la boca humana en una imatge i comptar
GUIÓ DE MATLAB:
netejar-ho tot;
clc;
% Per detectar la boca
MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16);
% Llegiu la imatge d'entrada = imread ('c: / Deskotp / HarryPotter.jpg'); % carrega la imatge mitjançant imread ('ubicació del fitxer / nom.jpg')
BB = pas (MouthDetect, imatge);
figura, imshow (imatge);
espera
per a i = 1: mida (BB, 1)
rectangle ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
final
title ('Detecció de boca');
mantenir-se a distancia;
El resultat serà com la imatge que s'ha adjuntat en aquest pas
Per comptar el nombre de boca detectada:
netejar-ho tot; clc; % Per detectar la boca
MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); % Llegiu l'entrada
imatge = imread ('c: / Deskotp / HarryPotter.jpg'); % carrega la imatge utilitzant imread ('ubicació del fitxer / nom.jpg') BB = step (MouthDetect, imatge);
figura, imshow (imatge);
espera
per a i = 1: mida (BB, 1)
rectangle ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
final
text (10, 10, strcat ('\ color {red} Nombre de boques =', num2str (longitud (BB))));
title ('Detecció de boca');
mantenir-se a distancia;
Pas 4: detectar rostres, ulls, boca en un vídeo i comptar
netejar-ho tot;
tancar-ho tot;
clc;
% Captureu els marcs de vídeo mitjançant la funció d'entrada de vídeo% Heu de substituir la resolució i el nom de l'adaptador instal·lat.
a = vision. CascadeObjectDetector; % per detectar la cara
% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); % per detectar la boca
% a = vision. CascadeObjectDetector ('EyePairBig'); % per detectar ulls
% només utilitza qualsevol (cara / ulls / boca)
vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Definiu les propietats de l'objecte de vídeo
set (vid, 'FramesPerTrigger', Inf);
set (vid, 'ReturnedColorspace', 'rgb');
vid. FrameGrabInterval = 5; Comenceu l'adquisició de vídeo aquí
start (vid)% Estableix un bucle que s'aturi després de 100 fotogrames d'adquisició
while (vid. FramesAcquired <= 200)% Obtén la instantània del marc actual
data = getsnapshot (vid);
imshow (dades);
b = pas (a, dades);
espera
per a i = 1: mida (b, 1)
rectangle ('posició', b (i,:), 'amplada de línia', 2, 'estil de línia', '-', 'EdgeColor', 'r');
final
mantenir-se a distancia
text (10, 10, strcat ('\ color {green} Nombre de cares =', num2str (longitud (b))));
final
parar (vid); % Atureu l'adquisició de vídeo
Recomanat:
Marc fotogràfic OSD Face Aware: 11 passos (amb imatges)
Marc fotogràfic OSD Face Aware: aquest manual mostra com es pot fer un marc de fotos amb pantalla cara a la pantalla (OSD). L'OSD pot mostrar l'hora, el temps o qualsevol altra informació d'Internet que vulgueu
Mod Casio A158W Clean Face: 4 passos
Casio A158W Clean Face Mod: Casio A158W és un rellotge digital clàssic el disseny del qual no ha canviat en els darrers 30 anys. És una bogeria pensar que una peça de tecnologia pot romandre inalterada durant tant de temps, sobretot perquè encara la fabriquen. La regla "si no és germà
Kaonashi No Face Sound Reactive Lights: 3 passos
Kaonashi No Face Sound Reactive Lights: per entrar en l’esperit de les coses, poseu llums de corda. Però, no seria genial si poguéssiu canalitzar les llums perquè s’encenguessin quan se senten sons? Feu que la màscara facial Kaonashi o No Face (del clàssic de la pel·lícula Spirited Away) soni reactiva
Projecte final LED Happy Face: 7 passos
Projecte final LED Happy Face: Benvingut al meu projecte de cara feliç. Aquest Instructable és un projecte Arduino una mica més que principiant dissenyat per a tothom que només vulgui divertir-se amb l’electrònica. Aquest projecte Arduino consisteix a utilitzar 8 LEDs que s’il·luminen d’esquerra a dreta al
Control de matriu LED amb Arduino Uno (Arduino Powered Robot Face): 4 passos (amb imatges)
Control de matriu LED amb Arduino Uno (Arduino Powered Robot Face): aquest instructiu mostra com controlar una matriu de matrius LED de 8x8 mitjançant un Arduino Uno. Aquesta guia es pot utilitzar per crear una pantalla senzilla (i relativament barata) per als vostres propis projectes. D'aquesta manera podeu mostrar lletres, números o animacions personalitzades