Sommario:
- Passaggio 1: rilevamento dei volti in un'immagine e conteggio
- Passaggio 2: rilevamento di occhi umani in un'immagine e conteggio
- Passaggio 3: rilevamento della bocca umana in un'immagine e conteggio
- Passaggio 4: rilevamento di volti, occhi, bocca in un video e conteggio
Video: MATLAB Easy Face Detection: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
L'obiettivo principale di questo tutorial è mostrare quanto facile sarà l'elaborazione delle immagini, con l'aiuto di MATLAB
Il rilevamento e il tracciamento dei volti è stato un campo di ricerca importante e attivo, ecco perché spiegherò come può essere fatto con Matlab.
Nel seguente tutorial farò le seguenti cose:
1.rilevare i volti in un'immagine e contarli.
2. Rilevamento di occhi umani in un'immagine e conteggio.
3. rilevamento della bocca umana in un'immagine e conteggio.
4.rilevare i volti in un video e contarli.
5. rilevamento di occhi umani in un video e conteggio.
6. rilevamento della bocca umana in un video e conteggio.
Passaggio 1: rilevamento dei volti in un'immagine e conteggio
SCRITTURA MATLAB:
cancella tutto % cancella tutti gli oggetticlc % cancella schermo
FDetect = vision. CascadeObjectDetector; %Rileva oggetti usando l'algoritmo Viola-Jones
%Leggi l'immagine in ingresso
image = imread('c:\Deskotp\HarryPotter.jpg'); %carica l'immagine usando imread('posizione file\nome.jpg')
BB = passo(FDetect, immagine); %Restituisce i valori del riquadro di delimitazione in base al numero di oggetti
figura, imshow(I);
aspettare
per i = 1: dimensione (BB, 1)
rettangolo('Position', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rosso, g-verde, b-blu
fine
title('Rilevamento del volto'); %titolo della cifra detenuta;
Il risultato sarà come l'immagine che è stata allegata in questo passaggio stesso
Per contare il numero di volti rilevati:
cancella tutto % cancella tutti gli oggetticlc % cancella schermo
FDetect = vision. CascadeObjectDetector; %Rileva oggetti usando l'algoritmo Viola-Jones %Leggi l'immagine in ingresso
image = imread('c:\Deskotp\HarryPotter.jpg'); %carica l'immagine usando imread('posizione file\nome.jpg')
BB = passo(FDetect, immagine); %Restituisce i valori del riquadro di delimitazione in base al numero di oggetti
figura,
imshow(I);
aspettare
per i = 1: dimensione (BB, 1)
rettangolo('Position', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rosso, g-verde, b-blu
fine
text(10, 10, strcat('\color{red} Numero di facce =', num2str(length(BB)))); Questa linea ti dà il conteggio
title('Rilevamento del volto'); %titolo della figura
tenere a bada;
Passaggio 2: rilevamento di occhi umani in un'immagine e conteggio
SCRITTURA MATLAB:
cancella tutto;
clc;
%Per rilevare EyesEyeDetect = vision. CascadeObjectDetector('EyePairBig');
%Leggi l'input
image = imread('c:\Deskotp\HarryPotter.jpg'); %carica l'immagine utilizzando imread('posizione file\nome.jpg')
BB=step(EyeDetect, immagine);
figura,
imshow(immagine);
rettangolo('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
title('Rilevamento occhi');
Il risultato sarà come l'immagine che è stata allegata in questo passaggio stesso
Per contare il numero di occhi rilevati:
cancella tutto;clc; %Per rilevare gli occhi
EyeDetect = vision. CascadeObjectDetector('EyePairBig');
image = imread('c:\Deskotp\HarryPotter.jpg'); %carica l'immagine utilizzando imread('posizione file\nome.jpg')
BB=step(EyeDetect, image);figure, imshow(image); rettangolo('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
text(10, 10, strcat('\color{red} Numero di occhi =', num2str(length(BB))));
title('Rilevamento occhi');
Passaggio 3: rilevamento della bocca umana in un'immagine e conteggio
SCRITTURA MATLAB:
cancella tutto;
clc;
%Per rilevare la bocca
MouthDetect = vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16);
%Leggi l'immagine di input = imread('c:\Deskotp\HarryPotter.jpg'); %carica l'immagine utilizzando imread('posizione file\nome.jpg')
BB=passo(Rileva bocca, immagine);
figura, imshow(immagine);
aspettare
per i = 1: dimensione (BB, 1)
rettangolo('Position', BB(i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
fine
title('Rilevamento bocca');
tenere a bada;
Il risultato sarà come l'immagine che è stata allegata in questo passaggio stesso
Per contare il numero di Bocca rilevate:
cancella tutto; clc; %Per rilevare la bocca
MouthDetect = vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16); %Leggi l'input
image = imread('c:\Deskotp\HarryPotter.jpg'); %carica l'immagine usando imread('posizione file\nome.jpg') BB=step(MouthDetect, image);
figura, imshow(immagine);
aspettare
per i = 1: dimensione (BB, 1)
rettangolo('Position', BB(i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
fine
text(10, 10, strcat('\color{red} Numero di bocche =', num2str(length(BB))));
title('Rilevamento bocca');
tenere a bada;
Passaggio 4: rilevamento di volti, occhi, bocca in un video e conteggio
cancella tutto;
chiudi tutto;
clc;
% Cattura i fotogrammi video utilizzando la funzione di ingresso video % Devi sostituire la risoluzione e il nome dell'adattatore installato.
a=vision. CascadeObjectDetector; %per rilevare il viso
% a=vision. CascadeObjectDetector('Bocca', 'MergeThreshold', 16); %per rilevare la bocca
% a=vision. CascadeObjectDetector('EyePairBig'); %per rilevare gli occhi
% usane solo uno (viso/occhi/bocca)
vid = videoinput('winvideo', 1, 'yuy2_320x240'); % Imposta le proprietà dell'oggetto video
set(vid, 'FramesPerTrigger', Inf);
set(vid, 'ReturnedColorspace', 'rgb');
vid. FrameGrabInterval = 5; %inizia l'acquisizione video qui
start(vid) % Imposta un loop che si ferma dopo 100 fotogrammi di acquisizione
while(vid. FramesAcquired<=200) % Ottieni l'istantanea del frame corrente
data = getsnapshot(vid);
imshow (dati);
b=passo(a, dati);
aspettare
per i=1:dimensione(b, 1)
rettangolo('posizione', b(i,:), 'larghezza linea', 2, 'stile linea', '-', 'EdgeColor', 'r');
fine
tenere a bada
text(10, 10, strcat('\color{green} Numero di facce =', num2str(length(b))));
fine
ferma (vide); % Interrompi l'acquisizione video
Consigliato:
Cornice per foto OSD Face Aware: 11 passaggi (con immagini)
Cornice per foto OSD con riconoscimento del viso: questo Instructables mostra come creare una cornice per foto con l'OSD (On Screen Display) con riconoscimento del viso. L'OSD può mostrare l'ora, il tempo o altre informazioni Internet desiderate
FACE TRACKING CON ARDUINO !!!: 7 passaggi
FACE TRACKING USANDO ARDUINO !!!: In una precedente istruzione ho condiviso come puoi comunicare tra Arduino e Python usando il modulo 'pyserial' e controllare un LED. Se non l'hai visto dai un'occhiata qui: COMUNICAZIONE TRA ARDUINO & PITONE! E come puoi rilevare il colore o
Organizer economico, double face, in stile griglia: 4 passaggi
Economico, double face, grid-it Style Organizer Board: questa è una versione semplice ed economica degli organizzatori grid-it più lucidi, resistenti e generalmente migliori che puoi acquistare. Mi è costato realizzare una build simile all'originale e ho deciso che non ne valeva la pena, tuttavia questa versione non costava proprio nulla (
Luci reattive Kaonashi No Face Sound: 3 passaggi
Kaonashi No Face Sound Reactive Lights: per entrare nello spirito delle cose, monta luci a corda. Ma non sarebbe bello se potessi incanalare le luci in modo che si accendano quando si sentono i suoni? Fai in modo che la maschera facciale Kaonashi o No Face (dal film classico La città incantata) suoni strin reattiva
Detection De Rostros Con Arduino Intel Edison: 8 passaggi
Detection De Rostros Con Arduino Intel Edison: El procesamiento de immagini o la visión por computadora es uno de esos fields que requiere enormi cantidades de investigación debido aque involucra métodos per adquirir, process, analizar e comprender las imágenes fin de mundo real P