Isi kandungan:

MATLAB Pengesanan Muka Mudah: 4 Langkah
MATLAB Pengesanan Muka Mudah: 4 Langkah

Video: MATLAB Pengesanan Muka Mudah: 4 Langkah

Video: MATLAB Pengesanan Muka Mudah: 4 Langkah
Video: Easy Art for Kids || girl face drawing easy 2024, Julai
Anonim
MATLAB Pengesanan Muka Mudah
MATLAB Pengesanan Muka Mudah

Tujuan utama instruksional ini adalah untuk menunjukkan betapa mudahnya proses pemprosesan gambar, dengan bantuan MATLAB

Pengesanan dan pengesanan wajah telah menjadi bidang penyelidikan yang penting dan aktif, jadi itulah sebabnya saya akan menerangkan bagaimana ia dapat dilakukan dengan Matlab.

Dalam tutorial berikut, saya akan melakukan perkara berikut:

1. mengesan wajah dalam gambar dan mengira.

2. mengesan mata manusia dalam gambar dan mengira.

3. mengesan mulut manusia dalam gambar dan mengira.

4. mengesan wajah dalam Video dan mengira.

5. mengesan mata manusia dalam Video dan mengira.

6. mengesan mulut manusia dalam Video dan mengira.

Langkah 1: Mengesan Wajah dalam Gambar dan Mengira

Mengesan Wajah dalam Gambar dan Mengira
Mengesan Wajah dalam Gambar dan Mengira

SKRIN MATLAB:

hapus semua% hapus semua objekclc% clear screen

FDetect = vision. CascadeObjectDetector; % Mengesan objek menggunakan Algoritma Viola-Jones

% Baca gambar input

gambar = imread ('c: / Deskotp / HarryPotter.jpg'); % memuatkan gambar dengan menggunakan imread ('location file / name.jpg')

BB = langkah (FDetect, gambar); % Mengembalikan nilai Bounding Box berdasarkan bilangan objek

angka, imshow (I);

tahan

untuk i = 1: saiz (BB, 1)

segi empat tepat ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); % r-merah, g-hijau, b-biru

akhir

tajuk ('Pengesanan Muka'); % tajuk pemotongan angka;

Hasilnya akan seperti gambar yang dilampirkan dalam langkah ini sendiri

Untuk mengira bilangan wajah yang dikesan:

hapus semua% hapus semua objekclc% clear screen

FDetect = vision. CascadeObjectDetector; % Mengesan objek menggunakan Algoritma Viola-Jones% Membaca gambar input

gambar = imread ('c: / Deskotp / HarryPotter.jpg'); % memuatkan gambar dengan menggunakan imread ('location file / name.jpg')

BB = langkah (FDetect, gambar); % Mengembalikan nilai Bounding Box berdasarkan bilangan objek

angka,

imshow (I);

tahan

untuk i = 1: saiz (BB, 1)

segi empat tepat ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); % r-merah, g-hijau, b-biru

akhir

teks (10, 10, strcat ('\ color {red} Tiada muka =', num2str (panjang (BB)))); Garis ini memberi anda kiraan

tajuk ('Pengesanan Muka'); % tajuk angka

menahan;

Langkah 2: Mengesan Mata Manusia dalam Gambar dan Mengira

Mengesan Mata Manusia dalam Gambar dan Mengira
Mengesan Mata Manusia dalam Gambar dan Mengira

SKRIN MATLAB:

kosongkan semua;

clc;

% Untuk mengesan EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

% Baca input

gambar = imread ('c: / Deskotp / HarryPotter.jpg'); % memuatkan gambar dengan menggunakan imread ('location file / name.jpg')

BB = langkah (EyeDetect, gambar);

angka,

imshow (gambar);

segi empat tepat ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

tajuk ('Pengesanan Mata');

Hasilnya akan seperti gambar yang dilampirkan dalam langkah ini sendiri

Untuk mengira bilangan mata yang dikesan:

hapus semua; clc; % Untuk mengesan Mata

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

gambar = imread ('c: / Deskotp / HarryPotter.jpg'); % memuatkan gambar dengan menggunakan imread ('location file / name.jpg')

BB = langkah (EyeDetect, gambar); gambar, imshow (gambar); segi empat tepat ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

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

tajuk ('Pengesanan Mata');

Langkah 3: Mengesan Mulut Manusia dalam Gambar dan Mengira

Mengesan Mulut Manusia dalam Gambar dan Mengira
Mengesan Mulut Manusia dalam Gambar dan Mengira

SKRIN MATLAB:

kosongkan semua;

clc;

% Untuk mengesan Mulut

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

% Baca gambar input = imread ('c: / Deskotp / HarryPotter.jpg'); % memuatkan gambar dengan menggunakan imread ('location file / name.jpg')

BB = langkah (MouthDetect, gambar);

gambar, imshow (gambar);

tahan

untuk i = 1: saiz (BB, 1)

segi empat tepat ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

akhir

tajuk ('Pengesanan Mulut');

menahan;

Hasilnya akan seperti gambar yang dilampirkan dalam langkah ini sendiri

Untuk mengira bilangan Mulut yang dikesan:

kosongkan semua; clc; % Untuk mengesan Mulut

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

gambar = imread ('c: / Deskotp / HarryPotter.jpg'); % memuatkan gambar dengan menggunakan imread ('location file / name.jpg') BB = step (MouthDetect, image);

gambar, imshow (gambar);

tahan

untuk i = 1: saiz (BB, 1)

segi empat tepat ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

akhir

teks (10, 10, strcat ('\ color {red} Tidak ada mulut =', num2str (panjang (BB))));

tajuk ('Pengesanan Mulut');

menahan;

Langkah 4: Mengesan Muka, mata, mulut dalam Video dan Mengira

kosongkan semua;

tutup semua;

clc;

% Tangkap bingkai video menggunakan fungsi input video% Anda harus mengganti resolusi & nama penyesuai yang anda pasang.

a = penglihatan. CascadeObjectDetector; % untuk mengesan wajah

% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); % untuk mengesan mulut

% a = vision. CascadeObjectDetector ('EyePairBig'); % untuk mengesan mata

% hanya menggunakan mana-mana sahaja (muka / mata / mulut)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Tetapkan sifat objek video

set (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; % mulakan pemerolehan video di sini

start (vid)% Tetapkan gelung yang berhenti setelah 100 bingkai pemerolehan

while (vid. FramesAcquired <= 200)% Dapatkan gambar bingkai semasa

data = getnapshot (vid);

imshow (data);

b = langkah (a, data);

tahan

untuk i = 1: saiz (b, 1)

segi empat tepat ('position', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

akhir

menahan

teks (10, 10, strcat ('\ color {green} No of face =', num2str (panjang (b))));

akhir

berhenti (vid); Hentikan pemerolehan video

Disyorkan: