Obsah:

MATLAB Easy Face Detection: 4 kroky
MATLAB Easy Face Detection: 4 kroky

Video: MATLAB Easy Face Detection: 4 kroky

Video: MATLAB Easy Face Detection: 4 kroky
Video: face detection(ONLY 10 LINE OF CODE)using matlab -- https://youtu.be/gl8maUq4Ts8 2024, Červenec
Anonim
MATLAB Easy Face Detection
MATLAB Easy Face Detection

Hlavním cílem tohoto návodu je ukázat, jak snadné bude zpracování obrazu, s pomocí MATLABu

Detekce a sledování obličeje je důležitou a aktivní oblastí výzkumu, a proto vysvětlím, jak to lze s Matlabem provést.

V následujícím tutoriálu udělám následující věci:

1. detekce tváří na obrázku a počítání.

2. detekce lidských očí v obraze a počítání.

3. detekce lidských úst na obrázku a počítání.

4. detekce tváří ve videu a počítání.

5. detekce lidských očí ve videu a počítání.

6. detekce lidských úst ve videu a počítání.

Krok 1: Detekce tváří na obrázku a počítání

Detekce tváří na obrázku a počítání
Detekce tváří na obrázku a počítání

MATLAB SCRIPT:

clear all % clear all objectsclc % clear screen

FDetect = vision. CascadeObjectDetector; %Detekovat objekty pomocí Viola-Jonesova algoritmu

%Přečtěte si vstupní obrázek

image = imread ('c: / Deskotp / HarryPotter.jpg'); %načtěte obrázek pomocí imread ('umístění souboru / name.jpg')

BB = krok (FDetect, obrázek); %Vrací hodnoty ohraničujícího rámečku podle počtu objektů

postava, imshow (I);

vydrž

pro i = 1: velikost (BB, 1)

obdélník ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -červená, g-zelená, b-modrá

konec

title ('Face Detection'); %titulu z držby;

Výsledek bude jako obrázek, který byl připojen v tomto samotném kroku

Chcete -li spočítat počet detekovaných obličejů:

clear all % clear all objectsclc % clear screen

FDetect = vision. CascadeObjectDetector; %Detekovat objekty pomocí Viola-Jonesova algoritmu %Přečíst vstupní obrázek

image = imread ('c: / Deskotp / HarryPotter.jpg'); %načtěte obrázek pomocí imread ('umístění souboru / name.jpg')

BB = krok (FDetect, obrázek); %Vrátí hodnoty ohraničujícího rámečku podle počtu objektů

postava,

imshow (I);

vydrž

pro i = 1: velikost (BB, 1)

obdélník ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -červená, g-zelená, b-modrá

konec

text (10, 10, strcat ('\ color {red} Počet tváří =', num2str (délka (BB)))); Tento řádek vám počítá

title ('Face Detection'); %název obrázku

vydržet;

Krok 2: Detekce lidských očí na obrázku a počítání

Detekce lidských očí na obrázku a počítání
Detekce lidských očí na obrázku a počítání

MATLAB SCRIPT:

vymazat vše;

clc;

%Pro detekci EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

%Přečíst vstup

image = imread ('c: / Deskotp / HarryPotter.jpg'); %načtěte obrázek pomocí imread ('umístění souboru / name.jpg')

BB = krok (EyeDetect, obrázek);

postava,

imshow (obrázek);

obdélník ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

název ('Detekce očí');

Výsledek bude stejný jako obrázek, který byl připojen v tomto samotném kroku

Chcete -li spočítat počet detekovaných očí:

vymazat vše; clc; %Pro detekci očí

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %načtěte obrázek pomocí imread ('umístění souboru / name.jpg')

BB = krok (EyeDetect, obrázek); figura, imshow (obrázek); obdélník ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

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

název ('Detekce očí');

Krok 3: Detekce lidské tlamy na obrázku a počítání

Detekce lidské tlamy na obrázku a počítání
Detekce lidské tlamy na obrázku a počítání

MATLAB SCRIPT:

vymazat vše;

clc;

%Pro detekci úst

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

%Přečíst vstupní obrázek = imread ('c: / Deskotp / HarryPotter.jpg'); %načtěte obrázek pomocí imread ('umístění souboru / name.jpg')

BB = krok (MouthDetect, obrázek);

postava, imshow (obrázek);

vydrž

pro i = 1: velikost (BB, 1)

obdélník ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

konec

title ('Detekce úst');

vydržet;

Výsledek bude stejný jako obrázek, který byl připojen v tomto samotném kroku

Chcete -li spočítat počet detekovaných úst:

vymazat vše; clc; %Pro detekci úst

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Přečíst vstup

image = imread ('c: / Deskotp / HarryPotter.jpg'); %načíst obrázek pomocí imread ('umístění souboru / name.jpg') BB = krok (MouthDetect, obrázek);

postava, imshow (obrázek);

vydrž

pro i = 1: velikost (BB, 1)

obdélník ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

konec

text (10, 10, strcat ('\ color {red} Počet úst =', num2str (délka (BB))));

title ('Detekce úst');

vydržet;

Krok 4: Detekce tváří, očí, úst ve videu a počítání

vymazat vše;

zavřít vše;

clc;

% Zachyťte video snímky pomocí funkce vstupu videa % Musíte nahradit rozlišení a název nainstalovaného adaptéru.

a = vision. CascadeObjectDetector; %k detekci tváře

% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %k detekci úst

% a = vision. CascadeObjectDetector ('EyePairBig'); %k detekci očí

%použijte pouze jeden (obličej/oči/ústa)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Nastavte vlastnosti video objektu

sada (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %spusťte akvizici videa zde

start (vid) % Nastavte smyčku, která se zastaví po 100 rámcích akvizice

while (vid. FramesAcquired <= 200) % Získejte snímek aktuálního rámce

data = getsnapshot (vid);

imshow (data);

b = krok (a, data);

vydrž

pro i = 1: velikost (b, 1)

obdélník ('pozice', b (i,:), 'šířka čáry', 2, 'linestyle', '-', 'EdgeColor', 'r');

konec

vydrž

text (10, 10, strcat ('\ color {green} Počet tváří =', num2str (délka (b))));

konec

stop (vid); % Zastavte pořizování videa

Doporučuje: