Mundarija:

MATLAB oson yuz aniqlash: 4 qadam
MATLAB oson yuz aniqlash: 4 qadam

Video: MATLAB oson yuz aniqlash: 4 qadam

Video: MATLAB oson yuz aniqlash: 4 qadam
Video: Qaysi Kasb Sizga Mos Keladi? TEST! | ҚАЙСИ КАСБ СИЗГА МОС КЕЛАДИ ??? 2024, Iyul
Anonim
MATLAB yuzni oson aniqlash
MATLAB yuzni oson aniqlash

Ushbu qo'llanmalarning asosiy maqsadi - MATLAB yordamida tasvirni qayta ishlash qanchalik oson bo'lishini ko'rsatish.

Yuzni aniqlash va kuzatish muhim va faol tadqiqot sohasi bo'lib kelgan, shuning uchun men buni Matlab yordamida qanday qilish mumkinligini tushuntirib beraman.

Quyidagi darslikda men quyidagi ishlarni bajaraman:

1. tasvirdagi yuzlarni aniqlash va sanash.

2. inson ko'zlarini tasvirda aniqlash va sanash.

3. tasvirda odam og'zini aniqlash va sanash.

4. Videodagi yuzlarni aniqlash va hisoblash.

5. Videoda inson ko'zlarini aniqlash va hisoblash.

6. Videoda odamning og'zini aniqlash va hisoblash.

1 -qadam: tasvirdagi yuzlarni aniqlash va sanash

Rasmdagi yuzlarni aniqlash va sanash
Rasmdagi yuzlarni aniqlash va sanash

MATLAB SKRIPTI:

ekranni tozalash % ni tozalash

FDetect = vision. CascadeObjectDetector; %Viola-Jons algoritmi yordamida ob'ektlarni aniqlang

%Kirish tasvirini o'qing

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread yordamida rasmni yuklang ('fayl joylashuvi / name.jpg')

BB = qadam (FDetect, rasm); %Ob'ektlar soniga qarab chegara qutisi qiymatlarini qaytaradi

rasm, imshow (I);

to'xtab tur

i = 1 uchun: o'lcham (BB, 1)

to'rtburchak ('Manzil', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -qizil, g-yashil, b-ko'k

oxiri

sarlavha ("Yuzni aniqlash"); o'chirilgan shaxsning %nomi;

Natija xuddi shu qadamda biriktirilgan tasvirga o'xshaydi

Aniqlangan yuzlar sonini hisoblash uchun:

ekranni tozalash % ni tozalash

FDetect = vision. CascadeObjectDetector; %Viola-Jones algoritmi yordamida ob'ektlarni aniqlash %Kirish tasvirini o'qing

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread yordamida rasmni yuklaydi ('fayl joylashuvi / name.jpg')

BB = qadam (FDetect, rasm); %Ob'ektlar soniga qarab chegara qutisi qiymatlarini qaytaradi

raqam,

imshow (I);

to'xtab tur

i = 1 uchun: o'lcham (BB, 1)

to'rtburchak ('Manzil', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -qizil, g-yashil, b-ko'k

oxiri

matn (10, 10, strcat ('\ color {red} Yuzlar soni =', num2str (uzunlik (BB))))); Bu chiziq sizga hisobni beradi

sarlavha ("Yuzni aniqlash"); raqamning %sarlavhasi

ushlab turish;

2 -qadam: inson ko'zlarini rasmda aniqlash va sanash

Inson ko'zlarini tasvirda aniqlash va sanash
Inson ko'zlarini tasvirda aniqlash va sanash

MATLAB SKRIPTI:

hammasini tozalamoq;

clc;

%Aniqlash uchun EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

%Kirishni o'qing

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread yordamida rasmni yuklaydi ('fayl joylashuvi / name.jpg')

BB = qadam (EyeDetect, rasm);

raqam,

imshow (rasm);

to'rtburchak ('Manzil', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

sarlavha ("Ko'zni aniqlash");

Natijada, bu qadamning o'zida biriktirilgan tasvirga o'xshaydi

Aniqlangan ko'zlar sonini hisoblash uchun:

hamma narsani tozalash; clc; %Ko'zlarni aniqlash uchun

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread yordamida rasmni yuklaydi ('fayl joylashuvi / name.jpg')

BB = qadam (EyeDetect, tasvir); raqam, imshow (rasm); to'rtburchak ('Manzil', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

matn (10, 10, strcat ('\ color {red} Ko'zlar soni =', num2str (uzunlik (BB)))));

sarlavha ("Ko'zni aniqlash");

3 -qadam: tasvirdagi odamning og'zini aniqlash va sanash

Odamning og'zini rasmda aniqlash va sanash
Odamning og'zini rasmda aniqlash va sanash

MATLAB SKRIPTI:

hammasini tozalamoq;

clc;

%Og'izni aniqlash uchun

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

%Kirish tasvirini o'qing = imread ('c: / Deskotp / HarryPotter.jpg'); %imread yordamida rasmni yuklaydi ('fayl joylashuvi / name.jpg')

BB = qadam (MouthDetect, rasm);

rasm, imshow (rasm);

to'xtab tur

i = 1 uchun: o'lcham (BB, 1)

to'rtburchak ('Manzil', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

oxiri

sarlavha ("Og'izni aniqlash");

ushlab turish;

Natija xuddi shu qadamda biriktirilgan tasvirga o'xshaydi

Aniqlangan og'iz sonini hisoblash uchun:

hammasini tozalamoq; clc; %Og'izni aniqlash uchun

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Kirishni o'qing

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl joylashuvi / name.jpg') yordamida tasvirni yuklaydi BB = qadam (MouthDetect, rasm);

rasm, imshow (rasm);

to'xtab tur

i = 1 uchun: o'lcham (BB, 1)

to'rtburchak ('Manzil', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

oxiri

matn (10, 10, strcat ('\ color {red} Og'izlar soni =', num2str (uzunlik (BB)))));

sarlavha ("Og'izni aniqlash");

ushlab turish;

4 -qadam: Videoda yuzlarni, ko'zlarni, og'izni aniqlash va sanash

hammasini tozalamoq;

hammasini yopish;

clc;

% Video kiritish funksiyasi yordamida video kadrlarni suratga oling % Siz piksellar sonini va o'rnatilgan adapter nomini o'zgartirishingiz kerak.

a = ko'rish. CascadeObjectDetector; yuzni aniqlash uchun %

% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %og'izni aniqlash uchun

% a = vision. CascadeObjectDetector ('EyePairBig'); %ko'zlarni aniqlash uchun

%faqat bittasini ishlating (yuz/ko'z/og'iz)

vid = video kiritish ('winvideo', 1, 'yuy2_320x240'); % Video ob'ektining xususiyatlarini o'rnating

to'siq (vid, 'FramesPerTrigger', Inf);

sozlash (vid, 'QaytganColorspace', 'rgb');

vid. FrameGrabInterval = 5; %video olishni shu erda boshlang

start (vid) % 100 kadr olishdan keyin to'xtaydigan tsiklni o'rnating

while (vid. FramesAcquired <= 200) % Joriy ramkaning suratini oling

ma'lumotlar = getsnapshot (vid);

imshow (ma'lumotlar);

b = qadam (a, ma'lumotlar);

to'xtab tur

i = 1 uchun: o'lcham (b, 1)

to'rtburchak ('pozitsiya', b (i,:), 'chiziq kengligi', 2, 'chiziq tarzi', '-', 'EdgeColor', 'r');

oxiri

ushlab turing

matn (10, 10, strcat ('\ color {green} Yuzlar soni =', num2str (uzunlik (b)))));

oxiri

to'xtatish (vid); % Video olishni to'xtating

Tavsiya: