สารบัญ:
- ขั้นตอนที่ 1: การตรวจจับใบหน้าในรูปภาพและการนับ
- ขั้นตอนที่ 2: การตรวจจับดวงตาของมนุษย์ในรูปภาพและการนับ
- ขั้นตอนที่ 3: การตรวจจับปากมนุษย์ในรูปภาพและการนับ
- ขั้นตอนที่ 4: การตรวจจับใบหน้า ตา ปากในวิดีโอและการนับ
วีดีโอ: MATLAB การตรวจจับใบหน้าอย่างง่าย: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
จุดประสงค์หลักของคำแนะนำนี้คือแสดงให้เห็นว่าการประมวลผลภาพจะง่ายเพียงใด ด้วยความช่วยเหลือของ MATLAB
การตรวจจับและติดตามใบหน้าเป็นสาขาการวิจัยที่สำคัญและกระตือรือร้น นั่นเป็นเหตุผลที่ฉันจะอธิบายว่ามันสามารถทำได้ด้วย Matlab อย่างไร
ในบทช่วยสอนต่อไปนี้ ฉันจะทำสิ่งต่อไปนี้:
1.การตรวจจับใบหน้าในรูปและการนับ
2.การตรวจจับดวงตาของมนุษย์ในรูปและการนับ
3.การตรวจจับปากคนในรูปและการนับ
4.การตรวจจับใบหน้าในวิดีโอและการนับ
5.การตรวจจับสายตามนุษย์ในวิดีโอและการนับ
6. การตรวจจับปากมนุษย์ในวิดีโอและการนับ
ขั้นตอนที่ 1: การตรวจจับใบหน้าในรูปภาพและการนับ
สคริปต์ MATLAB:
ล้างทั้งหมด % ล้างวัตถุทั้งหมด clc % ล้างหน้าจอ
FDetect = วิสัยทัศน์ CascadeObjectDetector; %ตรวจจับวัตถุโดยใช้อัลกอริทึม Viola-Jones
%อ่านภาพที่ป้อน
รูปภาพ = imread('c:\Deskotp\HarryPotter.jpg'); % โหลดภาพโดยใช้ imread('file location\name.jpg')
BB = ขั้นตอน(FDetect, รูปภาพ); % ส่งกลับค่า Bounding Box ตามจำนวนของอ็อบเจ็กต์
รูปแสดง(I);
เดี๋ยว
สำหรับผม = 1:ขนาด(BB, 1)
สี่เหลี่ยมผืนผ้า ('Position', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -red, g-green, b-blue
จบ
title('การตรวจจับใบหน้า'); % ชื่อเรื่องของตัวเลขที่ปิด;
ผลลัพธ์จะเป็นเหมือนภาพที่แนบมาในขั้นตอนนี้เอง
ในการนับจำนวนใบหน้าที่ตรวจพบ:
ล้าง% ล้างวัตถุทั้งหมดclc %ล้างหน้าจอ
FDetect = วิสัยทัศน์ CascadeObjectDetector; %ตรวจจับวัตถุโดยใช้อัลกอริทึม Viola-Jones %อ่านรูปภาพที่ป้อน
รูปภาพ = imread('c:\Deskotp\HarryPotter.jpg'); % โหลดภาพโดยใช้ imread('file location\name.jpg')
BB = ขั้นตอน(FDetect, รูปภาพ); % ส่งกลับค่า Bounding Box ตามจำนวนของอ็อบเจ็กต์
รูป,
อิมโชว์(I);
เดี๋ยว
สำหรับผม = 1:ขนาด(BB, 1)
สี่เหลี่ยมผืนผ้า ('Position', BB(i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -red, g-green, b-blue
จบ
text(10, 10, strcat('\colour{red} No of faces =', num2str(length(BB)))); บรรทัดนี้ให้คุณนับ
title('การตรวจจับใบหน้า'); %ชื่อเรื่องของรูป
ออกจาก;
ขั้นตอนที่ 2: การตรวจจับดวงตาของมนุษย์ในรูปภาพและการนับ
สคริปต์ MATLAB:
ลบทั้งหมด;
ซีแอลซี;
การตรวจจับ EyesEyeDetect = vision. CascadeObjectDetector('EyePairBig');
%อ่านอินพุต
รูปภาพ = imread('c:\Deskotp\HarryPotter.jpg'); % โหลดภาพโดยใช้ imread('file location\name.jpg')
BB=ขั้นตอน(EyeDetect, รูปภาพ);
รูป,
imshow(ภาพ);
สี่เหลี่ยมผืนผ้า ('ตำแหน่ง', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
title('การตรวจจับดวงตา');
ผลลัพธ์จะเป็นเหมือนภาพที่แนบในขั้นตอนนี้เอง
ในการนับจำนวนตาที่ตรวจพบ:
ล้างทั้งหมด;clc; %การตรวจจับดวงตา
EyeDetect = การมองเห็น CascadeObjectDetector ('EyePairBig');
รูปภาพ = imread('c:\Deskotp\HarryPotter.jpg'); % โหลดภาพโดยใช้ imread('file location\name.jpg')
BB=step(EyeDetect, image);figure,imshow(รูปภาพ); สี่เหลี่ยมผืนผ้า ('ตำแหน่ง', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
ข้อความ(10, 10, strcat('\colour{red} No of eyes =', num2str(length(BB))));
title('การตรวจจับดวงตา');
ขั้นตอนที่ 3: การตรวจจับปากมนุษย์ในรูปภาพและการนับ
สคริปต์ MATLAB:
ลบทั้งหมด;
ซีแอลซี;
%การตรวจจับปาก
MouthDetect = วิสัยทัศน์ CascadeObjectDetector ('ปาก', 'MergeThreshold', 16);
% อ่านรูปภาพอินพุต = imread('c:\Deskotp\HarryPotter.jpg'); % โหลดภาพโดยใช้ imread('file location\name.jpg')
BB=ขั้นตอน(MouthDetect, รูปภาพ);
รูป, imshow(ภาพ);
เดี๋ยว
สำหรับผม = 1:ขนาด(BB, 1)
สี่เหลี่ยมผืนผ้า ('Position', BB(i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
จบ
title('การตรวจจับปาก');
ออกจาก;
ผลลัพธ์จะเป็นเหมือนภาพที่แนบมาในขั้นตอนนี้เอง
ในการนับจำนวนปากที่ตรวจพบ:
ลบทั้งหมด; ซีแอลซี; %การตรวจจับปาก
MouthDetect = วิสัยทัศน์ CascadeObjectDetector ('ปาก', 'MergeThreshold', 16); %อ่านอินพุต
รูปภาพ = imread('c:\Deskotp\HarryPotter.jpg'); % โหลดภาพโดยใช้ imread('file location\name.jpg') BB=step(MouthDetect, image);
รูป, imshow(ภาพ);
เดี๋ยว
สำหรับผม = 1:ขนาด(BB, 1)
สี่เหลี่ยมผืนผ้า ('Position', BB(i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
จบ
ข้อความ(10, 10, strcat('\colour{red} No of mouths =', num2str(length(BB))));
title('การตรวจจับปาก');
ออกจาก;
ขั้นตอนที่ 4: การตรวจจับใบหน้า ตา ปากในวิดีโอและการนับ
ลบทั้งหมด;
ปิดทั้งหมด;
ซีแอลซี;
% จับภาพเฟรมวิดีโอโดยใช้ฟังก์ชันอินพุตวิดีโอ คุณต้องเปลี่ยนความละเอียดและชื่ออะแดปเตอร์ที่ติดตั้งไว้
a=vision. CascadeObjectDetector; % เพื่อตรวจจับใบหน้า
% a=vision. CascadeObjectDetector('ปาก', 'MergeThreshold', 16); %การตรวจจับปาก
% a=vision. CascadeObjectDetector('EyePairBig'); %ที่จะตรวจจับดวงตา
% ใช้อย่างใดอย่างหนึ่งเท่านั้น (หน้า/ตา/ปาก)
vid = อินพุตวิดีโอ ('winvideo', 1, 'yuy2_320x240'); % กำหนดคุณสมบัติของวัตถุวิดีโอ
set(vid, 'FramesPerTrigger', Inf);
set(vid, 'ReturnedColorspace', 'rgb');
vid. FrameGrabInterval = 5; %เริ่มรับวิดีโอที่นี่
start(vid) % ตั้งค่าการวนซ้ำที่หยุดหลังจากการได้มา 100 เฟรม
while(vid. FramesAcquired<=200) % รับสแน็ปช็อตของเฟรมปัจจุบัน
data = getsnapshot(วิด);
imshow(ข้อมูล);
b=step(a, ข้อมูล);
เดี๋ยว
สำหรับ i=1:size(b, 1)
สี่เหลี่ยมผืนผ้า ('ตำแหน่ง', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');
จบ
ออกจาก
ข้อความ(10, 10, strcat('\colour{green} No of faces =', num2str(length(b))));
จบ
หยุด(วิด); % หยุดการรับวิดีโอ
แนะนำ:
การแบ่งส่วน MatLab Lung: 5 ขั้นตอน
การแบ่งส่วน MatLab Lung: โดย: Phuc Lam, Paul Yeung, Eric Reyes ------------------------------ ------------------------------------- การยอมรับว่าข้อผิดพลาดในการแบ่งส่วนปอดจะทำให้เกิดข้อมูลเท็จเกี่ยวกับการระบุตัวตน ของพื้นที่โรคและสามารถ
วิธีเขียนโค้ดและเผยแพร่ Matlab 2016b เป็น Word (คู่มือสำหรับผู้เริ่มต้น): 4 ขั้นตอน
How to Code and Publish Matlab 2016b to Word (Beginners Guide): Matlab เป็นโปรแกรมภาษาประสิทธิภาพสูงที่ใช้ในการคำนวณผลลัพธ์ทางเทคนิค มีความสามารถในการรวมภาพ การคำนวณ และการเขียนโปรแกรมในลักษณะที่เป็นมิตรต่อผู้ใช้ ด้วยโปรแกรมนี้ ผู้ใช้สามารถเผยแพร่ปัญหาและแนวทางแก้ไข
การควบคุม Raspberry Pi โดยใช้ Matlab: 5 ขั้นตอน
การควบคุม Raspberry Pi โดยใช้ Matlab: เฮ้ บทช่วยสอนนี้เกี่ยวกับการควบคุม Raspberry Pi ที่ไม่มีหัวของคุณโดยใช้ Matlab คุณอาจต้องติดตั้ง matlab เป็นเวอร์ชันล่าสุดเพื่อรองรับบอร์ด raspberry pi ที่ใหม่กว่า
ROS Robotic Controller ที่ใช้ Matlab: 9 ขั้นตอน
ROS Robotic Controller ที่ใช้ Matlab: ตั้งแต่ฉันยังเป็นเด็ก ฉันใฝ่ฝันที่จะเป็น Iron Man และยังคงทำเช่นนั้น Iron Man เป็นหนึ่งในตัวละครเหล่านั้นซึ่งเป็นไปได้อย่างสมจริง และเพียงแค่ทำให้ฉันปรารถนาที่จะเป็น Iron Man สักวันหนึ่ง แม้ว่าผู้คนจะหัวเราะเยาะฉันหรือบอกว่ามันเป็นไปไม่ได้
ฝึกการเพิ่มประสิทธิภาพการเขียนโปรแกรมใน MATLAB: 6 ขั้นตอน
Train Programming Enhancements ใน MATLAB: วัตถุประสงค์:เป้าหมายของระบบที่ตั้งโปรแกรมไว้นี้คือการพิจารณา Arduino ขนาดเล็ก และใช้การเข้ารหัสในขนาดที่ใหญ่ขึ้น เพื่อเพิ่มศักยภาพด้านความปลอดภัยบางอย่างของระบบ Amtrak Railroad ในการทำเช่นนี้ เราได้เพิ่มความชื้นในดิน sen