תוכן עניינים:

MATLAB זיהוי פנים קל: 4 שלבים
MATLAB זיהוי פנים קל: 4 שלבים

וִידֵאוֹ: MATLAB זיהוי פנים קל: 4 שלבים

וִידֵאוֹ: MATLAB זיהוי פנים קל: 4 שלבים
וִידֵאוֹ: 5g security and evolving architectures 2024, יולי
Anonim
MATLAB זיהוי פנים קל
MATLAB זיהוי פנים קל

המטרה העיקרית של מדריכים אלה היא להראות עד כמה עיבוד התמונה יהיה קל, בעזרת MATLAB

זיהוי ומעקב אחר פנים היה תחום מחקר חשוב ופעיל, ולכן אני אסביר כיצד ניתן לעשות זאת באמצעות מטלאב.

בהדרכה הבאה אני הולך לעשות את הדברים הבאים:

1. זיהוי פרצופים בתמונה וספירה.

2. זיהוי עיניים אנושיות בתמונה וספירה.

3. זיהוי פה אנושי בתמונה וספירה.

4. זיהוי פנים בסרטון וספירה.

5. איתור עיני אדם בסרטון וספירה.

6. זיהוי פה אנושי בסרטון וספירה.

שלב 1: זיהוי פנים בתמונה וספירה

זיהוי פנים בתמונה וספירה
זיהוי פנים בתמונה וספירה

סקריפט MATLAB:

clear all % clear all objectsclc % clear screen

FDetect = vision. CascadeObjectDetector; %זיהוי אובייקטים באמצעות אלגוריתם ויולה-ג'ונס

קרא את תמונת הקלט

image = imread ('c: / Deskotp / HarryPotter.jpg'); %טען את התמונה באמצעות imread ('מיקום הקובץ / name.jpg')

BB = שלב (FDetect, תמונה); %מחזירה ערכי תיבת גבולות המבוססים על מספר האובייקטים

דמות, imshow (I);

תחזיק מעמד

עבור i = 1: גודל (BB, 1)

מלבן ('מיקום', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-אדום, g-ירוק, b-כחול

סוֹף

כותרת ('זיהוי פנים'); כותרת אחוז החזקה;

התוצאה תהיה כמו התמונה אשר צורפה בשלב זה עצמו

כדי לספור את מספר הפנים שזוהו:

clear all % clear all objectsclc % clear screen

FDetect = vision. CascadeObjectDetector; %זיהוי אובייקטים באמצעות אלגוריתם ויולה-ג'ונס קרא את תמונת הקלט

image = imread ('c: / Deskotp / HarryPotter.jpg'); %טען את התמונה באמצעות imread ('מיקום הקובץ / name.jpg')

BB = שלב (FDetect, תמונה); %מחזירה ערכי תיבת גבולות המבוססים על מספר האובייקטים

דמות,

imshow (I);

תחזיק מעמד

עבור i = 1: גודל (BB, 1)

מלבן ('מיקום', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-אדום, g-ירוק, b-כחול

סוֹף

text (10, 10, strcat ('\ color {אדום} מספר פנים =', num2str (אורך (BB)))); שורה זו נותנת לך את הספירה

כותרת ('זיהוי פנים'); %כותרת הדמות

להדוף;

שלב 2: איתור עיני אדם בתמונה וספירה

זיהוי עיניים אנושיות בתמונה וספירה
זיהוי עיניים אנושיות בתמונה וספירה

סקריפט MATLAB:

ברור הכל;

clc;

%כדי לזהות EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

קרא את הקלט

image = imread ('c: / Deskotp / HarryPotter.jpg'); %טען את התמונה באמצעות imread ('מיקום הקובץ / name.jpg')

BB = שלב (EyeDetect, תמונה);

דמות,

imshow (תמונה);

מלבן ('מיקום', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

title ('זיהוי עיניים');

התוצאה תהיה כמו התמונה אשר צורפה בשלב זה עצמו

כדי לספור את מספר העיניים שזוהו:

נקה הכל; clc; %לזהות עיניים

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %טען את התמונה באמצעות imread ('מיקום הקובץ / name.jpg')

BB = צעד (EyeDetect, תמונה); דמות, imshow (תמונה); מלבן ('מיקום', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

text (10, 10, strcat ('\ color {אדום} מספר עיניים =', num2str (אורך (BB))));

title ('זיהוי עיניים');

שלב 3: איתור פה אנושי בתמונה וספירה

גילוי פה אנושי בתמונה וספירה
גילוי פה אנושי בתמונה וספירה

סקריפט MATLAB:

ברור הכל;

clc;

%לזהות פה

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

%קרא את תמונת הקלט = imread ('c: / Deskotp / HarryPotter.jpg'); %טען את התמונה באמצעות imread ('מיקום הקובץ / name.jpg')

BB = step (MouthDetect, image);

דמות, imshow (תמונה);

תחזיק מעמד

עבור i = 1: גודל (BB, 1)

מלבן ('מיקום', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

סוֹף

title ('זיהוי פה');

להדוף;

התוצאה תהיה כמו התמונה אשר צורפה בשלב זה עצמו

כדי לספור את מספר הפה שזוהה:

ברור הכל; clc; %לזהות פה

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); קרא את הקלט

image = imread ('c: / Deskotp / HarryPotter.jpg'); %טען את התמונה באמצעות imread ('מיקום קובץ / name.jpg') BB = step (MouthDetect, image);

דמות, imshow (תמונה);

תחזיק מעמד

עבור i = 1: גודל (BB, 1)

מלבן ('מיקום', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

סוֹף

text (10, 10, strcat ('\ color {אדום} מספר פיות =', num2str (אורך (BB))));

title ('זיהוי פה');

להדוף;

שלב 4: זיהוי פנים, עיניים, פה בסרטון וספירה

ברור הכל;

סגור הכל;

clc;

% לכידת מסגרות הווידאו באמצעות פונקציית קלט הווידאו % עליך להחליף את הרזולוציה ואת שם המתאם המותקן שלך.

a = vision. CascadeObjectDetector; %לזיהוי פנים

% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %לאיתור הפה

% a = vision. CascadeObjectDetector ('EyePairBig'); %לאיתור עיניים

%השתמש רק בכל אחד (פנים/עיניים/פה)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); הגדר את המאפיינים של אובייקט הווידאו

set (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %התחל את רכישת הווידיאו כאן

start (vid) % הגדר לולאה שעוצרת לאחר 100 מסגרות רכישה

while (vid. FramesAcquired <= 200) % קבל את תמונת המצב של המסגרת הנוכחית

data = getsnapshot (vid);

imshow (נתונים);

b = שלב (א, נתונים);

תחזיק מעמד

עבור i = 1: גודל (b, 1)

מלבן ('מיקום', ב (i,:), 'קו רוחב', 2, 'קו סגנון', '-', 'EdgeColor', 'r');

סוֹף

להדוף

text (10, 10, strcat ('\ color {ירוק} מספר פנים =', num2str (אורך (ב))));

סוֹף

stop (vid); עצור את רכישת הווידאו

מוּמלָץ: