Inhaltsverzeichnis:

Einfache Gesichtserkennung mit MATLAB - Gunook
Einfache Gesichtserkennung mit MATLAB - Gunook

Video: Einfache Gesichtserkennung mit MATLAB - Gunook

Video: Einfache Gesichtserkennung mit MATLAB - Gunook
Video: Gesichtserkennung mit Python und OpenCV in 14 Zeilen 2024, Dezember
Anonim
MATLAB Einfache Gesichtserkennung
MATLAB Einfache Gesichtserkennung

Das Hauptziel dieser Anleitungen ist es zu zeigen, wie einfach die Bildverarbeitung mit Hilfe von MATLAB. sein wird

Gesichtserkennung und -verfolgung war ein wichtiges und aktives Forschungsgebiet, deshalb werde ich erklären, wie dies mit dem Matlab möglich ist.

Im folgenden Tutorial werde ich die folgenden Dinge tun:

1. Gesichter in einem Bild erkennen und zählen.

2. menschliche Augen in einem Bild erkennen und zählen.

3. Erkennen des menschlichen Mundes in einem Bild und Zählen.

4. Gesichter in einem Video erkennen und zählen.

5. menschliche Augen in einem Video erkennen und zählen.

6. Erkennen des menschlichen Mundes in einem Video und Zählen.

Schritt 1: Gesichter in einem Bild erkennen und zählen

Gesichter in einem Bild erkennen und zählen
Gesichter in einem Bild erkennen und zählen

MATLAB-SKRIPT:

lösche alle % lösche alle Objekteclc % lösche den Bildschirm

FDetect = vision. CascadeObjectDetector; %Erkennen von Objekten mit dem Viola-Jones-Algorithmus

%Lesen Sie das Eingabebild

image = imread('c:\Deskotp\HarryPotter.jpg'); %laden Sie das Bild mit imread('Dateispeicherort\name.jpg')

BB = Schritt(FDetect, Bild); %Gibt Bounding Box-Werte basierend auf der Anzahl der Objekte zurück

Abbildung, imshow(I);

festhalten

für i = 1:Größe (BB, 1)

Rechteck('Position', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rot, g-grün, b-blau

Ende

title('Gesichtserkennung'); %Titel der Figur halten aus;

Das Ergebnis wird wie das Bild sein, das in diesem Schritt selbst angehängt wurde

So zählen Sie die Anzahl der erkannten Gesichter:

Alles löschen % Alle Objekte löschenclc %Bildschirm löschen

FDetect = vision. CascadeObjectDetector; %Erkennen von Objekten mit dem Viola-Jones-Algorithmus %Lesen Sie das Eingabebild

image = imread('c:\Deskotp\HarryPotter.jpg'); %laden Sie das Bild mit imread('Dateispeicherort\name.jpg')

BB = Schritt(FDetect, Bild); %Gibt Bounding Box-Werte basierend auf der Anzahl der Objekte zurück

Abbildung,

imshow(I);

festhalten

für i = 1:Größe (BB, 1)

Rechteck('Position', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rot, g-grün, b-blau

Ende

text(10, 10, strcat('\colour{red} Anzahl der Gesichter =', num2str(length(BB)))); Diese Zeile gibt Ihnen die Zählung

title('Gesichtserkennung'); %Titel der Figur

abwarten;

Schritt 2: Erkennen des menschlichen Auges in einem Bild und Zählen

Erkennen des menschlichen Auges in einem Bild und Zählen
Erkennen des menschlichen Auges in einem Bild und Zählen

MATLAB-SKRIPT:

alles löschen;

clc;

%Um EyesEyeDetect zu erkennen = vision. CascadeObjectDetector('EyePairBig');

%Lesen Sie die Eingabe

image = imread('c:\Deskotp\HarryPotter.jpg'); %laden Sie das Bild mit imread('Dateispeicherort\name.jpg')

BB=Schritt(EyeDetect, Bild);

Abbildung,

imshow(Bild);

Rechteck('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

title('Augenerkennung');

Das Ergebnis wird wie das Bild sein, das in diesem Schritt selbst angehängt wurde

So zählen Sie die Anzahl der erkannten Augen:

Alles löschen;clc; %Um Augen zu erkennen

EyeDetect = vision. CascadeObjectDetector('EyePairBig');

image = imread('c:\Deskotp\HarryPotter.jpg'); %laden Sie das Bild mit imread('Dateispeicherort\name.jpg')

BB=step(EyeDetect, Bild);Abbildung, imshow(Bild); Rechteck('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

text(10, 10, strcat('\colour{red} Augenzahl =', num2str(length(BB))));

title('Augenerkennung');

Schritt 3: Erkennen des menschlichen Mundes in einem Bild und Zählen

Den menschlichen Mund in einem Bild erkennen und zählen
Den menschlichen Mund in einem Bild erkennen und zählen

MATLAB-SKRIPT:

alles löschen;

clc;

%Mund erkennen

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

%Lesen Sie das Eingabebild = imread('c:\Deskotp\HarryPotter.jpg'); %laden Sie das Bild mit imread('Dateispeicherort\name.jpg')

BB=step(MouthDetect, Bild);

Abbildung, imshow(Bild);

festhalten

für i = 1:Größe (BB, 1)

Rechteck('Position', BB(i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

Ende

title('Munderkennung');

abwarten;

Das Ergebnis wird wie das Bild sein, das in diesem Schritt selbst angehängt wurde

Um die Anzahl der erkannten Mouths zu zählen:

alles löschen; clc; %Mund erkennen

MouthDetect = vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16); %Lesen Sie die Eingabe

image = imread('c:\Deskotp\HarryPotter.jpg'); %laden Sie das Bild mit imread('Dateispeicherort\name.jpg') BB=step(MouthDetect, image);

Abbildung, imshow(Bild);

festhalten

für i = 1:Größe (BB, 1)

Rechteck('Position', BB(i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

Ende

text(10, 10, strcat('\colour{red} Anzahl der Münder =', num2str(length(BB))));

title('Munderkennung');

abwarten;

Schritt 4: Gesichter, Augen, Mund in einem Video erkennen und zählen

alles löschen;

alle schließen;

clc;

% Erfassen Sie die Videobilder mit der Videoeingangsfunktion % Sie müssen die Auflösung und den Namen Ihres installierten Adapters ersetzen.

a=vision. CascadeObjectDetector; %um Gesicht zu erkennen

% a=vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16); %um den Mund zu erkennen

% a=vision. CascadeObjectDetector('EyePairBig'); %um Augen zu erkennen

%nur einen verwenden (Gesicht/Augen/Mund)

vid = videoinput('winvideo', 1, 'yuy2_320x240'); % Legen Sie die Eigenschaften des Videoobjekts fest

set(vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %starten Sie hier die Videoaufnahme

start(vid) % Stellt eine Schleife ein, die nach 100 Bildern der Aufnahme stoppt

while(vid. FramesAcquired<=200) % Schnappschuss des aktuellen Frames holen

Daten = Getsnapshot (vid);

imshow(Daten);

b = Schritt (a, Daten);

festhalten

für i=1:Größe(b, 1)

rechteckig('position', b(i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

Ende

warte ab

text(10, 10, strcat('\colour{green} Anzahl der Gesichter =', num2str(length(b))));

Ende

stoppen (vid); % Stoppen Sie die Videoaufnahme

Empfohlen: