Innehållsförteckning:

MATLAB Enkel ansiktsigenkänning: 4 steg
MATLAB Enkel ansiktsigenkänning: 4 steg

Video: MATLAB Enkel ansiktsigenkänning: 4 steg

Video: MATLAB Enkel ansiktsigenkänning: 4 steg
Video: 川普吃错羟氯喹投资移民入籍查党员,堂食自取外卖秘密延付房贷不能重贷 Trump took the wrong medicine, CCP members will be investigated. 2024, November
Anonim
MATLAB Enkel ansiktsigenkänning
MATLAB Enkel ansiktsigenkänning

Huvudsyftet med dessa instruktioner är att visa hur enkelt bildbehandlingen kommer att vara, med hjälp av MATLAB

Ansiktsigenkänning och spårning har varit ett viktigt och aktivt forskningsfält, så det är därför jag ska förklara hur det kan göras med Matlab.

I följande handledning ska jag göra följande saker:

1. upptäcka ansikten i en bild och räkna.

2. upptäcka mänskliga ögon i en bild och räkna.

3. upptäcka människans mun i en bild och räkna.

4. upptäcka ansikten i en video och räkna.

5. upptäcka mänskliga ögon i en video och räkna.

6. upptäcka människans mun i en video och räkna.

Steg 1: Upptäcka ansikten i en bild och räkna

Upptäcka ansikten i en bild och räkna
Upptäcka ansikten i en bild och räkna

MATLAB SCRIPT:

rensa alla % rensa alla objektsclc % rensa skärmen

FDetect = vision. CascadeObjectDetector; %Upptäck objekt med Viola-Jones-algoritmen

%Läs inmatningsbilden

image = imread ('c: / Deskotp / HarryPotter.jpg'); %ladda bilden med hjälp av imread ('filplats / namn.jpg')

BB = steg (FDetect, bild); %Returnerar gränsvärden för värden baserat på antalet objekt

figur, imshow (I);

vänta

för i = 1: storlek (BB, 1)

rektangel ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -röd, g-grön, b-blå

slutet

titel ('Ansiktsigenkänning'); %titel på siffran;

Resultatet blir som bilden som bifogades i detta steg själv

Så här räknar du antalet ansikten som detekteras:

rensa alla % rensa alla objektsclc % rensa skärmen

FDetect = vision. CascadeObjectDetector; %Upptäck objekt med Viola-Jones algoritm %Läs inmatningsbilden

image = imread ('c: / Deskotp / HarryPotter.jpg'); %ladda bilden med hjälp av imread ('filplats / namn.jpg')

BB = steg (FDetect, bild); %Returnerar gränsvärden för värden baserat på antalet objekt

figur,

imshow (I);

vänta

för i = 1: storlek (BB, 1)

rektangel ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -röd, g-grön, b-blå

slutet

text (10, 10, strcat ('\ color {red} Antal ansikten =', num2str (längd (BB)))); Denna rad ger dig räkningen

titel ('Ansiktsigenkänning'); %titel på figuren

vänta;

Steg 2: Detektera mänskliga ögon i en bild och räkna

Upptäcker mänskliga ögon i en bild och räknar
Upptäcker mänskliga ögon i en bild och räknar

MATLAB SCRIPT:

Rensa alla;

clc;

%Att upptäcka EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

%Läs inmatningen

image = imread ('c: / Deskotp / HarryPotter.jpg'); %ladda bilden med hjälp av imread ('filplats / namn.jpg')

BB = steg (EyeDetect, bild);

figur,

imshow (bild);

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

titel ('Eyes Detection');

Resultatet blir som bilden som bifogades i detta steg själv

Att räkna antalet upptäckta ögon:

rensa alla; clc; %För att upptäcka ögon

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %ladda bilden med hjälp av imread ('filplats / namn.jpg')

BB = steg (EyeDetect, bild); figur, imshow (bild); rektangel ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

text (10, 10, strcat ('\ color {red} Antal ögon =', num2str (längd (BB))));

titel ('Eyes Detection');

Steg 3: Detektera mänsklig mun i en bild och räkna

Upptäcka människans mun i en bild och räkna
Upptäcka människans mun i en bild och räkna

MATLAB SCRIPT:

Rensa alla;

clc;

%För att upptäcka mun

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

%Läs inmatningsbilden = imread ('c: / Deskotp / HarryPotter.jpg'); %ladda bilden med hjälp av imread ('filplats / namn.jpg')

BB = steg (MouthDetect, bild);

figur, imshow (bild);

vänta

för i = 1: storlek (BB, 1)

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

slutet

title ('Mouth Detection');

vänta;

Resultatet blir som bilden som bifogades i detta steg själv

Att räkna antalet upptäckta mun:

Rensa alla; clc; %För att upptäcka mun

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Läs inmatningen

image = imread ('c: / Deskotp / HarryPotter.jpg'); %ladda bilden med hjälp av imread ('file location / name.jpg') BB = step (MouthDetect, image);

figur, imshow (bild);

vänta

för i = 1: storlek (BB, 1)

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

slutet

text (10, 10, strcat ('\ color {red} Antal mun =', num2str (längd (BB))));

title ('Mouth Detection');

vänta;

Steg 4: Upptäcka ansikten, ögon, mun i en video och räkna

Rensa alla;

Stäng alla;

clc;

% Fånga videoramar med videoingångsfunktionen % Du måste byta upplösning och ditt installerade adapternamn.

a = vision. CascadeObjectDetector; %för att upptäcka ansikte

% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %för att upptäcka munnen

% a = vision. CascadeObjectDetector ('EyePairBig'); %för att upptäcka ögon

%använder bara någon (ansikte/ögon/mun)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Ange egenskaperna för videoobjektet

set (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %starta videoförvärvet här

start (vid) % Ställ in en loop som stannar efter 100 förvärvsramar

while (vid. FramesAcquired <= 200) % Få ögonblicksbilden av den aktuella ramen

data = getsnapshot (vid);

imshow (data);

b = steg (a, data);

vänta

för i = 1: storlek (b, 1)

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

slutet

vänta

text (10, 10, strcat ('\ color {grön} Antal ansikten =', num2str (längd (b))));

slutet

stopp (vid); % Stoppa videoinhämtningen

Rekommenderad: