Mündəricat:

MATLAB Asan Üz Tanıma: 4 addım
MATLAB Asan Üz Tanıma: 4 addım

Video: MATLAB Asan Üz Tanıma: 4 addım

Video: MATLAB Asan Üz Tanıma: 4 addım
Video: MATLAB Eğitimi - 2. Ders | Burak Özpoyraz | Hacettepe AI Club 2024, Iyul
Anonim
MATLAB Asan Üz Tanıma
MATLAB Asan Üz Tanıma

Bu təlimatların əsas məqsədi, MATLAB -ın köməyi ilə görüntü emalının nə qədər asan olacağını göstərməkdir.

Üz tanıma və izləmə vacib və aktiv bir araşdırma sahəsi idi, buna görə də bunun Matlab ilə necə edilə biləcəyini izah edəcəyəm.

Aşağıdakı dərslikdə aşağıdakı işləri edəcəyəm:

1. şəkildəki üzlərin aşkarlanması və sayılması.

2. bir görüntüdə insan gözlərinin aşkarlanması və sayılması.

3. görüntüdə insan ağzını aşkar etmək və saymaq.

4. Videoda üzlərin aşkarlanması və sayılması.

5. Videoda insan gözlərinin aşkarlanması və sayılması.

6. Videoda insan ağzını aşkar etmək və saymaq.

Addım 1: Bir Şəkildə Üzlərin Tapılması və Sayılması

Bir Şəkildə Üzləri Tapmaq və Saymaq
Bir Şəkildə Üzləri Tapmaq və Saymaq

MATLAB SKRİTİ:

hamısını silmək bütün obyektləri təmizləmək

FDetect = görmə. CascadeObjectDetector; Viola-Jones Alqoritmi istifadə edərək obyektləri aşkar edin

Giriş şəklini oxuyun

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl yeri / name.jpg') istifadə edərək görüntünü yükləyin

BB = addım (FDetect, görüntü); Obyektlərin sayına əsaslanaraq Bounding Box dəyərlərini qaytarır

rəqəm, imshow (I);

gözlə

i = 1 üçün: ölçü (BB, 1)

düzbucaqlı ('Mövqe', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -qırmızı, g-yaşıl, b-mavi

bitmək

başlıq ('Üz Algılama'); fiqurun adı %;

Nəticə, bu addımın özündə əlavə olunan şəkil kimi olacaq

Tapılan üzlərin sayını hesablamaq üçün:

hamısını silmək bütün obyektləri silmək

FDetect = görmə. CascadeObjectDetector; Viola-Jones Alqoritmi istifadə edərək obyektlərin aşkarlanması Giriş şəklini oxuyun

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl yeri / name.jpg') istifadə edərək görüntünü yükləyin

BB = addım (FDetect, görüntü); Obyektlərin sayına əsaslanaraq Bounding Box dəyərlərini qaytarır

rəqəm,

imshow (I);

gözlə

i = 1 üçün: ölçü (BB, 1)

düzbucaqlı ('Mövqe', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -qırmızı, g-yaşıl, b-mavi

bitmək

mətn (10, 10, strcat ('\ color {red} No of face =', num2str (length (BB))))); Bu xətt sizə sayını verir

başlıq ('Üz Algılama'); rəqəmin adı %

dayandırmaq;

Addım 2: Bir Şəkildə İnsan Gözlərinin Algılanması və Sayılması

Görünüşdə İnsan Gözlərinin Algılanması və Sayılması
Görünüşdə İnsan Gözlərinin Algılanması və Sayılması

MATLAB SKRİTİ:

hamısını sil, hamısını təmizlə;

clc;

EyesEyeDetect aşkar etmək üçün = vision. CascadeObjectDetector ('EyePairBig');

Giriş oxuyun

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl yeri / name.jpg') istifadə edərək görüntünü yükləyin

BB = addım (EyeDetect, görüntü);

rəqəm,

imshow (şəkil);

düzbucaqlı ('Mövqe', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

başlıq ('Gözlərin Algılanması');

Nəticə, bu addımın özündə əlavə olunan şəkil kimi olacaq

Aşkarlanan gözlərin sayını hesablamaq üçün:

hamısını təmizləyin; clc; Gözləri aşkar etmək üçün

EyeDetect = görmə. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl yeri / name.jpg') istifadə edərək görüntünü yükləyin

BB = addım (EyeDetect, görüntü); rəqəm, imshow (şəkil); düzbucaqlı ('Mövqe', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

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

başlıq ('Gözlərin Algılanması');

Addım 3: Bir Görünüşdə İnsan Ağzının Algılanması və Sayılması

İnsan Ağzını Bir Şəkildə Tapmaq və Saymaq
İnsan Ağzını Bir Şəkildə Tapmaq və Saymaq

MATLAB SKRİTİ:

hamısını sil, hamısını təmizlə;

clc;

Mouth aşkar etmək üçün

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

Giriş şəklini oxuyun = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl yeri / name.jpg') istifadə edərək görüntünü yükləyin

BB = addım (MouthDetect, görüntü);

rəqəm, imshow (şəkil);

gözlə

i = 1 üçün: ölçü (BB, 1)

düzbucaqlı ('Mövqe', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

bitmək

başlıq ('Ağız Algılama');

dayandırmaq;

Nəticə, bu addımın özündə əlavə olunan şəkil kimi olacaq

Tapılan ağız sayını hesablamaq üçün:

hamısını sil, hamısını təmizlə; clc; Mouth aşkar etmək üçün

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

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl yeri / name.jpg') istifadə edərək görüntünü yükləyin BB = addım (MouthDetect, şəkil);

rəqəm, imshow (şəkil);

gözlə

i = 1 üçün: ölçü (BB, 1)

düzbucaqlı ('Mövqe', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

bitmək

mətn (10, 10, strcat ('\ color {red} No mouths =', num2str (length (BB)))));

başlıq ('Ağız Algılama');

dayandırmaq;

Addım 4: Videoda Üzləri, Gözləri, Ağzını Tapmaq və Saymaq

hamısını sil, hamısını təmizlə;

hamısını bağlamaq;

clc;

Video giriş funksiyasından istifadə edərək video çərçivələri çəkin Çözünürlüyü və quraşdırılmış adapterinizin adını dəyişdirməlisiniz.

a = görmə. CascadeObjectDetector; üz aşkar etmək üçün

% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); ağız aşkar etmək üçün

% a = görmə. CascadeObjectDetector ('EyePairBig'); %gözləri aşkar etmək üçün

%hər hansı birini istifadə edin (üz/göz/ağız)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); Video obyektinin xüsusiyyətlərini təyin edin

dəsti (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; burada video əldə etməyə başlayın

start (vid) % 100 kadr əldə etdikdən sonra dayanacaq bir döngə təyin edin

while (vid. FramesAcquired <= 200) % Cari çərçivənin anlıq görüntüsünü əldə edin

data = getsnapshot (vid);

imshow (məlumatlar);

b = addım (a, məlumat);

gözlə

i = 1 üçün: ölçü (b, 1)

düzbucaqlı ('mövqe', b (i,:), 'xətt genişliyi', 2, 'xətti üslub', '-', 'EdgeColor', 'r');

bitmək

dayanmaq

mətn (10, 10, strcat ('\ color {green} No of face =', num2str (length (b)))));

bitmək

dayandır (vid); Video əldə etməyi dayandırın

Tövsiyə: