Πίνακας περιεχομένων:

MATLAB Εύκολη ανίχνευση προσώπου: 4 βήματα
MATLAB Εύκολη ανίχνευση προσώπου: 4 βήματα

Βίντεο: MATLAB Εύκολη ανίχνευση προσώπου: 4 βήματα

Βίντεο: MATLAB Εύκολη ανίχνευση προσώπου: 4 βήματα
Βίντεο: 5 πράγματα που πρέπει να κάνεις στο σεξ για να κολλήσει μαζί σου 2024, Ιούλιος
Anonim
MATLAB Εύκολη ανίχνευση προσώπου
MATLAB Εύκολη ανίχνευση προσώπου

Ο κύριος στόχος αυτών των οδηγιών είναι να δείξει πόσο εύκολη θα είναι η επεξεργασία εικόνας, με τη βοήθεια του MATLAB

Η ανίχνευση και παρακολούθηση προσώπου ήταν ένα σημαντικό και ενεργό πεδίο έρευνας, γι 'αυτό θα εξηγήσω πώς μπορεί να γίνει με το Matlab.

Στο παρακάτω σεμινάριο θα κάνω τα παρακάτω πράγματα:

1. ανίχνευση προσώπων σε μια εικόνα και μέτρηση.

2. ανίχνευση ανθρώπινων ματιών σε μια εικόνα και μέτρηση.

3. ανίχνευση ανθρώπινου στόματος σε εικόνα και μέτρηση.

4. ανίχνευση προσώπων σε ένα βίντεο και μέτρηση.

5. ανίχνευση ανθρώπινων ματιών σε βίντεο και καταμέτρηση.

6. ανίχνευση ανθρώπινου στόματος σε βίντεο και καταμέτρηση.

Βήμα 1: Ανίχνευση προσώπων σε εικόνα και καταμέτρηση

Ανίχνευση προσώπων σε εικόνα και καταμέτρηση
Ανίχνευση προσώπων σε εικόνα και καταμέτρηση

MATLAB SCRIPT:

εκκαθάριση όλων % διαγραφή όλων των αντικειμένωνclc % καθαρή οθόνη

FDetect = vision. CascadeObjectDetector; %Ανίχνευση αντικειμένων χρησιμοποιώντας τον αλγόριθμο Viola-Jones

%Διαβάστε την εικόνα εισόδου

image = imread ('c: / Deskotp / HarryPotter.jpg'); %φόρτωση της εικόνας χρησιμοποιώντας imread ('τοποθεσία αρχείου / όνομα.jpg')

BB = βήμα (FDetect, εικόνα); %Επιστρέφει τις τιμές του Bounding Box βάσει αριθμού αντικειμένων

σχήμα, εμφάνιση (I);

περίμενε

για i = 1: μέγεθος (ΒΒ, 1)

ορθογώνιο ("Θέση", BB (i,:), "LineWidth", 5, "LineStyle", "-", "EdgeColor", "r"); %r-κόκκινο, g-πράσινο, b-μπλε

τέλος

τίτλος («Ανίχνευση προσώπου») %τίτλος του αριθμού εκμετάλλευσης απενεργοποιημένος

Το αποτέλεσμα θα είναι σαν την εικόνα που επισυνάπτεται σε αυτό το βήμα

Για να μετρήσετε τον αριθμό των προσώπων που εντοπίστηκαν:

εκκαθάριση όλων % διαγραφή όλων των αντικειμένωνclc % καθαρή οθόνη

FDetect = vision. CascadeObjectDetector; %Ανίχνευση αντικειμένων χρησιμοποιώντας τον αλγόριθμο Viola-Jones %Διαβάστε την εικόνα εισόδου

image = imread ('c: / Deskotp / HarryPotter.jpg'); %φόρτωση της εικόνας χρησιμοποιώντας imread ('τοποθεσία αρχείου / όνομα.jpg')

BB = βήμα (FDetect, εικόνα); %Επιστρέφει τις τιμές του Bounding Box βάσει αριθμού αντικειμένων

εικόνα,

imshow (I)?

περίμενε

για i = 1: μέγεθος (ΒΒ, 1)

ορθογώνιο ("Θέση", BB (i,:), "LineWidth", 5, "LineStyle", "-", "EdgeColor", "r"); %r-κόκκινο, g-πράσινο, b-μπλε

τέλος

κείμενο (10, 10, strcat ('\ color {red} Αριθμός προσώπων =', num2str (μήκος (ΒΒ)))); Αυτή η γραμμή σας δίνει την καταμέτρηση

τίτλος («Ανίχνευση προσώπου») %τίτλος του σχήματος

υπομονή?

Βήμα 2: Ανίχνευση ανθρώπινων ματιών σε εικόνα και καταμέτρηση

Ανίχνευση ανθρώπινων ματιών σε εικόνα και καταμέτρηση
Ανίχνευση ανθρώπινων ματιών σε εικόνα και καταμέτρηση

MATLAB SCRIPT:

τα καθαρίζω όλα;

clc?

%Για ανίχνευση EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

%Διαβάστε την εισαγωγή

image = imread ('c: / Deskotp / HarryPotter.jpg'); %φόρτωση της εικόνας χρησιμοποιώντας imread ('τοποθεσία αρχείου / όνομα.jpg')

BB = βήμα (EyeDetect, εικόνα);

εικόνα,

imshow (εικόνα)?

ορθογώνιο ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b')?

τίτλος («Μάτια Ανίχνευση»)?

Το αποτέλεσμα θα είναι σαν την εικόνα που επισυνάπτεται σε αυτό το βήμα

Για να μετρήσετε τον αριθμό των ματιών που εντοπίστηκαν:

διαγραφή όλων; clc; %Για την ανίχνευση των ματιών

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %φόρτωση της εικόνας χρησιμοποιώντας imread ('τοποθεσία αρχείου / όνομα.jpg')

BB = βήμα (EyeDetect, εικόνα) · εικόνα, εμφάνιση (εικόνα) · ορθογώνιο ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b')?

κείμενο (10, 10, strcat ('\ χρώμα {κόκκινο} Αριθμός ματιών =', num2str (μήκος (ΒΒ))));

τίτλος («Μάτια Ανίχνευση»)?

Βήμα 3: Ανίχνευση ανθρώπινου στόματος σε εικόνα και καταμέτρηση

Ανίχνευση ανθρώπινου στόματος σε εικόνα και καταμέτρηση
Ανίχνευση ανθρώπινου στόματος σε εικόνα και καταμέτρηση

MATLAB SCRIPT:

τα καθαρίζω όλα;

clc?

%Για την ανίχνευση του στόματος

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

%Διαβάστε την εικόνα εισόδου = imread ('c: / Deskotp / HarryPotter.jpg'); %φόρτωση της εικόνας χρησιμοποιώντας imread ('τοποθεσία αρχείου / όνομα.jpg')

BB = βήμα (MouthDetect, εικόνα);

εικόνα, εικόνα (εικόνα)

περίμενε

για i = 1: μέγεθος (ΒΒ, 1)

ορθογώνιο ("Θέση", BB (i,:), "LineWidth", 4, "LineStyle", "-", "EdgeColor", "r");

τέλος

τίτλος («Ανίχνευση στόματος») ·

υπομονή?

Το αποτέλεσμα θα είναι σαν την εικόνα που επισυνάπτεται σε αυτό το βήμα

Για να μετρήσετε τον αριθμό του εντοπισμένου στόματος:

τα καθαρίζω όλα; clc? %Για την ανίχνευση του στόματος

MouthDetect = vision. CascadeObjectDetector ("Mouth", "MergeThreshold", 16); %Διαβάστε την εισαγωγή

image = imread ('c: / Deskotp / HarryPotter.jpg'); %φόρτωση της εικόνας χρησιμοποιώντας imread ('location file / name.jpg') BB = step (MouthDetect, image);

εικόνα, εικόνα (εικόνα)

περίμενε

για i = 1: μέγεθος (ΒΒ, 1)

ορθογώνιο ("Θέση", BB (i,:), "LineWidth", 4, "LineStyle", "-", "EdgeColor", "r");

τέλος

κείμενο (10, 10, strcat ('\ color {red} No of mouths =', num2str (length (BB)))));

τίτλος («Ανίχνευση στόματος») ·

υπομονή?

Βήμα 4: Ανίχνευση προσώπων, ματιών, στόματος σε βίντεο και καταμέτρηση

τα καθαρίζω όλα;

κλείσ'τα όλα;

clc?

% Καταγράψτε τα καρέ βίντεο χρησιμοποιώντας τη λειτουργία εισαγωγής βίντεο % Πρέπει να αντικαταστήσετε την ανάλυση και το όνομα του εγκατεστημένου προσαρμογέα.

a = vision. CascadeObjectDetector; %για ανίχνευση προσώπου

% a = vision. CascadeObjectDetector ("Mouth", "MergeThreshold", 16); %για ανίχνευση στόματος

% a = vision. CascadeObjectDetector ('EyePairBig'); %για ανίχνευση ματιών

%χρησιμοποιούν μόνο οποιοδήποτε (πρόσωπο/μάτια/στόμα)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Ορίστε τις ιδιότητες του αντικειμένου βίντεο

σύνολο (βίντεο, "FramesPerTrigger", Inf);

σύνολο (vid, 'ReturnedColorspace', 'rgb');

vid. FrameGrabInterval = 5; %ξεκινήστε την απόκτηση βίντεο εδώ

έναρξη (vid) % Ορίστε έναν βρόχο που σταματά μετά από 100 καρέ απόκτησης

while (vid. FramesAcquired <= 200) % Λήψη του στιγμιότυπου του τρέχοντος πλαισίου

data = getsnapshot (vid)?

imshow (δεδομένα)

b = βήμα (α, δεδομένα)

περίμενε

για i = 1: μέγεθος (b, 1)

ορθογώνιο ("θέση", b (i,:), "linewidth", 2, "linestyle", "-", "EdgeColor", "r");

τέλος

υπομονή

κείμενο (10, 10, strcat ('\ χρώμα {πράσινο} Αριθμός προσώπων =', num2str (μήκος (β))));

τέλος

στάση (βίντεο)? % Διακοπή απόκτησης βίντεο

Συνιστάται: