Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Hlavným cieľom tohto návodu je ukázať, aké ľahké bude spracovanie obrazu, S pomocou programu MATLAB
Detekcia a sledovanie tváre je dôležitou a aktívnou oblasťou výskumu, a preto vám vysvetlím, ako sa to dá urobiť s Matlabom.
V nasledujúcom návode urobím nasledujúce veci:
1. zisťovanie tvárí na obrázku a počítanie.
2. zisťovanie ľudských očí na obrázku a počítanie.
3. zisťovanie ľudských úst v obraze a počítanie.
4. zisťovanie tvárí vo videu a počítanie.
5. zisťovanie ľudských očí vo videu a počítanie.
6. zisťovanie ľudských úst vo videu a počítanie.
Krok 1: Rozpoznávanie tvárí na obrázku a počítanie
MATLAB SCRIPT:
vymazať všetko % vymazať všetky objektyclc % vyčistiť obrazovku
FDetect = vision. CascadeObjectDetector; %Detekcia objektov pomocou Viola-Jonesovho algoritmu
%Prečítajte si vstupný obrázok
image = imread ('c: / Deskotp / HarryPotter.jpg'); %načítajte obrázok pomocou imread ('umiestnenie súboru / name.jpg')
BB = krok (FDetect, obrázok); %Vráti hodnoty ohraničujúceho rámčeka na základe počtu objektov
postava, imshow (I);
Počkaj
pre i = 1: veľkosť (BB, 1)
obdĺžnik ('Poloha', BB (i,:), 'Šírka čiary', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -červená, g-zelená, b-modrá
koniec
title ('Face Detection'); %titulu zostatku;
Výsledok bude rovnaký ako obrázok, ktorý bol priložený v tomto kroku
Ak chcete spočítať počet rozpoznaných tvárí:
vymazať všetko % vymazať všetky objektyclc % vyčistiť obrazovku
FDetect = vision. CascadeObjectDetector; %Detekovať objekty pomocou Viola-Jonesovho algoritmu %Prečítajte si vstupný obrázok
image = imread ('c: / Deskotp / HarryPotter.jpg'); %načítajte obrázok pomocou imread ('umiestnenie súboru / name.jpg')
BB = krok (FDetect, obrázok); %Vráti hodnoty ohraničujúceho rámčeka na základe počtu objektov
obrázok,
imshow (I);
Počkaj
pre i = 1: veľkosť (BB, 1)
obdĺžnik ('Poloha', BB (i,:), 'Šírka čiary', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -červená, g-zelená, b-modrá
koniec
text (10, 10, strcat ('\ color {red} Počet tvárí =', num2str (dĺžka (BB)))); Tento riadok vám poskytne prehľad
title ('Face Detection'); %názov obrázku
zdržať sa;
Krok 2: Detekcia ľudských očí na obrázku a počítanie
MATLAB SCRIPT:
zmazať všetko;
clc;
%Na detekciu EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');
%Prečítajte si vstup
image = imread ('c: / Deskotp / HarryPotter.jpg'); %načítajte obrázok pomocou imread ('umiestnenie súboru / name.jpg')
BB = krok (EyeDetect, obrázok);
obrázok,
imshow (obrázok);
obdĺžnik ('Poloha', BB, 'Šírka čiary', 4, 'Štýl čiary', '-', 'EdgeColor', 'b');
názov („Detekcia očí“);
Výsledok bude rovnaký ako obrázok, ktorý bol priložený v tomto kroku
Ak chcete spočítať počet zistených očí:
vymazať všetko; clc; %Na detekciu očí
EyeDetect = vision. CascadeObjectDetector ('EyePairBig');
image = imread ('c: / Deskotp / HarryPotter.jpg'); %načítajte obrázok pomocou imread ('umiestnenie súboru / name.jpg')
BB = krok (EyeDetect, obrázok); figúra, imshow (obrázok); obdĺžnik ('Poloha', BB, 'Šírka čiary', 4, 'Štýl čiary', '-', 'EdgeColor', 'b');
text (10, 10, strcat ('\ color {red} Počet očí =', num2str (dĺžka (BB))));
názov („Detekcia očí“);
Krok 3: Detekcia ľudskej úst na obrázku a počítanie
MATLAB SCRIPT:
zmazať všetko;
clc;
%Na detekciu úst
MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16);
%Prečítajte si vstupný obrázok = imread ('c: / Deskotp / HarryPotter.jpg'); %načítajte obrázok pomocou imread ('umiestnenie súboru / name.jpg')
BB = krok (MouthDetect, obrázok);
postava, imshow (obrázok);
Počkaj
pre i = 1: veľkosť (BB, 1)
obdĺžnik ('Poloha', BB (i,:), 'Šírka čiary', 4, 'LineStyle', '-', 'EdgeColor', 'r');
koniec
názov („Detekcia úst“);
zdržať sa;
Výsledok bude rovnaký ako obrázok, ktorý bol priložený v tomto kroku
Ak chcete spočítať počet zistených úst:
zmazať všetko; clc; %Na detekciu úst
MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Prečítajte si vstup
image = imread ('c: / Deskotp / HarryPotter.jpg'); %načítajte obrázok pomocou imread ('umiestnenie súboru / name.jpg') BB = krok (MouthDetect, obrázok);
postava, imshow (obrázok);
Počkaj
pre i = 1: veľkosť (BB, 1)
obdĺžnik ('Poloha', BB (i,:), 'Šírka čiary', 4, 'LineStyle', '-', 'EdgeColor', 'r');
koniec
text (10, 10, strcat ('\ color {red} Počet úst =', num2str (dĺžka (BB))));
názov („Detekcia úst“);
zdržať sa;
Krok 4: Detekcia tvárí, očí, úst vo videu a počítanie
zmazať všetko;
zavrieť všetky;
clc;
% Zachyťte video snímky pomocou funkcie vstupu videa % Musíte nahradiť rozlíšenie a názov nainštalovaného adaptéra.
a = vízia. CascadeObjectDetector; %na detekciu tváre
% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %na detekciu úst
% a = vision. CascadeObjectDetector ('EyePairBig'); %na detekciu očí
%použite iba jeden (tvár/oči/ústa)
vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Nastavte vlastnosti video objektu
sada (vid, 'FramesPerTrigger', Inf);
set (vid, 'ReturnedColorspace', 'rgb');
vid. FrameGrabInterval = 5; %spustite akvizíciu videa tu
start (vid) % Nastavte slučku, ktorá sa zastaví po 100 rámcoch akvizície
while (vid. FramesAcquired <= 200) % Získajte snímku aktuálneho rámca
data = getsnapshot (vid);
imshow (údaje);
b = krok (a, dáta);
Počkaj
pre i = 1: veľkosť (b, 1)
obdĺžnik ('poloha', b (i,:), 'šírka čiary', 2, 'čiarový štýl', '-', 'EdgeColor', 'r');
koniec
vydržať
text (10, 10, strcat ('\ color {green} Počet tvárí =', num2str (dĺžka (b))));
koniec
zastávka (vid); % Zastavte získavanie videa