Inhoudsopgave:

MATLAB Eenvoudige gezichtsdetectie: 4 stappen
MATLAB Eenvoudige gezichtsdetectie: 4 stappen

Video: MATLAB Eenvoudige gezichtsdetectie: 4 stappen

Video: MATLAB Eenvoudige gezichtsdetectie: 4 stappen
Video: Laptop kopen? Hier moet je op letten – bol.com 2024, November
Anonim
MATLAB Eenvoudige gezichtsdetectie
MATLAB Eenvoudige gezichtsdetectie

Het belangrijkste doel van deze instructables is om te laten zien hoe gemakkelijk de beeldverwerking zal zijn, met behulp van MATLAB

Gezichtsdetectie en -tracking is een belangrijk en actief onderzoeksveld geweest, daarom ga ik uitleggen hoe het kan met het Matlab.

In de volgende tutorial ga ik de onderstaande dingen doen:

1. gezichten in een afbeelding detecteren en tellen.

2. menselijke ogen detecteren in een afbeelding en tellen.

3. menselijke mond detecteren in een afbeelding en tellen.

4. gezichten detecteren in een video en tellen.

5. menselijke ogen detecteren in een video en tellen.

6. menselijke mond detecteren in een video en tellen.

Stap 1: Gezichten in een afbeelding detecteren en tellen

Gezichten in een afbeelding detecteren en tellen
Gezichten in een afbeelding detecteren en tellen

MATLAB-SCRIPT:

alles wissen % alle objecten wissenclc %scherm wissen

FDetect = visie. CascadeObjectDetector; %Detecteer objecten met behulp van het Viola-Jones-algoritme

%Lees de invoerafbeelding

afbeelding = imread('c:\Deskotp\HarryPotter.jpg'); %laad de afbeelding met imread('file location\name.jpg')

BB = stap (FDetect, afbeelding); %Retourneert Bounding Box-waarden op basis van het aantal objecten

figuur, imshow(I);

vasthouden

voor i = 1: maat (BB, 1)

rechthoek('Positie', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rood, g-groen, b-blauw

einde

title('Gezichtsdetectie'); %titel van de figuur afhouden;

Het resultaat zal zijn zoals de afbeelding die in deze stap zelf is bijgevoegd

Het aantal gedetecteerde gezichten tellen:

alles wissen % alle objecten wissenclc %scherm wissen

FDetect = visie. CascadeObjectDetector; %Detecteer objecten met behulp van het Viola-Jones-algoritme %Lees de invoerafbeelding

afbeelding = imread('c:\Deskotp\HarryPotter.jpg'); %laad de afbeelding met imread('file location\name.jpg')

BB = stap (FDetect, afbeelding); %Retourneert Bounding Box-waarden op basis van het aantal objecten

figuur,

imshow(ik);

vasthouden

voor i = 1: maat (BB, 1)

rechthoek('Positie', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rood, g-groen, b-blauw

einde

text(10, 10, strcat('\color{red} Aantal vlakken =', num2str(length(BB)))); Deze regel geeft je de telling

title('Gezichtsdetectie'); %titel van de figuur

wacht af;

Stap 2: Menselijke ogen detecteren in een afbeelding en tellen

Menselijke ogen detecteren in een afbeelding en tellen
Menselijke ogen detecteren in een afbeelding en tellen

MATLAB-SCRIPT:

wis alles;

clc;

%Om EyesEyeDetect = vision te detecteren. CascadeObjectDetector('EyePairBig');

%Lees de invoer

afbeelding = imread('c:\Deskotp\HarryPotter.jpg'); %laad de afbeelding met imread('file location\name.jpg')

BB=stap (Oogdetectie, afbeelding);

figuur,

imshow(afbeelding);

rechthoek('Positie', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

title('Ogendetectie');

Het resultaat zal zijn zoals de afbeelding die in deze stap zelf is bijgevoegd

Het aantal gedetecteerde ogen tellen:

alles wissen;clc; %Ogen detecteren

EyeDetect = visie. CascadeObjectDetector('EyePairBig');

afbeelding = imread('c:\Deskotp\HarryPotter.jpg'); %laad de afbeelding met imread('file location\name.jpg')

BB=step(Oogdetectie, afbeelding);figuur, imshow(afbeelding); rechthoek('Positie', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

text(10, 10, strcat('\color{red} No of eyes =', num2str(length(BB))));

title('Ogendetectie');

Stap 3: Menselijke mond detecteren in een afbeelding en tellen

Menselijke mond detecteren in een afbeelding en tellen
Menselijke mond detecteren in een afbeelding en tellen

MATLAB-SCRIPT:

wis alles;

clc;

%Om mond te detecteren

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

%Lees de invoerafbeelding = imread('c:\Deskotp\HarryPotter.jpg'); %laad de afbeelding met imread('file location\name.jpg')

BB=stap (Monddetectie, afbeelding);

figuur, imshow(afbeelding);

vasthouden

voor i = 1: maat (BB, 1)

rechthoek('Positie', BB(i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

einde

title('Monddetectie');

wacht af;

Het resultaat zal zijn zoals de afbeelding die in deze stap zelf is bijgevoegd

Het aantal gedetecteerde monden tellen:

wis alles; clc; %Om mond te detecteren

MouthDetect = vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16); %Lees de invoer

afbeelding = imread('c:\Deskotp\HarryPotter.jpg'); %laad de afbeelding met imread('file location\name.jpg') BB=step(MouthDetect, image);

figuur, imshow(afbeelding);

vasthouden

voor i = 1: maat (BB, 1)

rechthoek('Positie', BB(i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

einde

text(10, 10, strcat('\color{red} Aantal monden =', num2str(length(BB))));

title('Monddetectie');

wacht af;

Stap 4: Gezichten, ogen, mond detecteren in een video en tellen

wis alles;

sluit alles;

clc;

% Leg de videoframes vast met de video-invoerfunctie % U moet de resolutie en de naam van uw geïnstalleerde adapter vervangen.

a=vision. CascadeObjectDetector; %om gezicht te detecteren

% a=vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16); %om mond te detecteren

% a=vision. CascadeObjectDetector('EyePairBig'); %om ogen te detecteren

%gebruik alleen een (gezicht/ogen/mond)

vid = video-invoer ('winvideo', 1, 'yuy2_320x240'); % Stel de eigenschappen van het video-object in

set(vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %start de video-acquisitie hier

start(vid) % Stel een lus in die stopt na 100 frames van acquisitie

while(vid. FramesAcquired<=200) % Haal de momentopname van het huidige frame op

data = krijgtnapshot(vid);

imshow(gegevens);

b=stap(a, gegevens);

vasthouden

voor i=1:maat(b, 1)

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

einde

wacht af

text(10, 10, strcat('\color{green} Aantal vlakken =', num2str(length(b))));

einde

stop(video); % Stop de video-acquisitie

Aanbevolen: