Transcription
1. Introduction: Bonjour, les gars. C'est
bon de te revoir. Encore une fois, je suis de retour avec un nouveau cours lié à la vision par ordinateur. Aujourd'hui, dans ce cours,
nous allons créer une reconnaissance de phase en temps
réel à
l'aide d'Open Civil
Library et de Python Bonjour. Je m'appelle
Jonatha Shorter Je suis
développeur web Fullstack, programmeur Python et instructeur en ligne Il peut détecter plusieurs
phases et identifier le pass en même
temps à l'aide de notre webcam. Permettez-moi de vous montrer la
démonstration de ce que nous
allons construire aujourd'hui
dans le cadre de ce projet. Comme vous pouvez le constater, notre programme a réussi à reconnaître ma phase. Il a également reconnu la phase
du Premier ministre Modi. Il a ensuite reconnu la phase
Donald Trump. Après cela, il a reconnu la phase
Justin Trudeau, et enfin, il a reconnu la phase
Georgia Meloni Notre programme est tout à fait capable de détecter et de reconnaître les phases. Pour créer ce projet,
nous allons utiliser canal
multimédia et un module de
reconnaissance de phase À partir du prochain tutoriel, nous allons
commencer notre codage. Nous allons commencer par les dettes liées à
l'importation.
2. Installez les bibliothèques et lisez le fichier image: Enfin, nous sommes dans mon éditeur de code
Visor Studio. Et comme vous pouvez le voir dans mon répertoire de travail
actuel, je crée déjà un point Pi de
reconnaissance de nom de fichier
Python et un dossier Un nom de dossier connu sous le nom de
underscore faces. Dans ce dossier, nous
avons quelques images. Nous avons une image de Georgia Meloni. Nous avons une image de Naren Romoi. Nous avons l'image de Justin
Trudeau et enfin celle de Donald Tram. Ce sont tous des
pass bien connus dans le monde entier, et pour nous aider à les reconnaître, nous avons formé notre modèle
avec ces phases Revenons maintenant au point de
reconnaissance Pi 5. Et dans un premier temps, je vais
importer les modules importants. Dans un premier temps, nous devons
importer le module du système d'exploitation, le type de
carte SIM, le système d'exploitation. Grâce à ce module, nous pouvons accéder à nos répertoires de travail,
sinon aux dossiers. Ensuite, nous devons
importer un autre module appelé CV two. Il
s'agit du module principal. Type Simu, importation, etc. Ensuite, nous devons
saisir un autre module. Mais d'abord, nous devons
télécharger ce module, et le nom de notre module est reconnaissance de
phase. Ouvrons
Windows Power Shell et essayons de télécharger ce module. Pour télécharger ce module,
il vous suffit de taper, de taper
, d'installer, et notre module
est la reconnaissance de phase Ensuite, vous devez appuyer sur Entrée. Après avoir appuyé sur Entrée, comme vous pouvez le voir, exigence est déjà
satisfaite car je télécharge déjà ce module, mais vous risquez de rencontrer une erreur à
cause de ce module, car ce module comporte
des dépendances
telles que Nampi, Pillow et DL Mais dans votre cas, vous pouvez avoir une erreur à cause
de ce module DL, et nous devons installer
ce module manuellement. Je vais vous montrer
comment installer ce module. Pour résoudre le problème, ouvrez
simplement votre navigateur et recherchez le lien de téléchargement
du package Well. Ensuite, il vous fournit ce lien, ce lien Github, et vous devez
ouvrir ce lien Github Supprimez le fichier HL à points
binaires compilé et vous devez télécharger
ce fichier Wheel. Si je clique sur ce
fichier, laissez-moi vous montrer,
comme vous pouvez le voir, qu'il fournit ici plusieurs fichiers HL pour
plusieurs versions de Python. Si vous utilisez la version 3.10, vous pouvez utiliser
ce fichier Wheel Si vous utilisez la version 3.7, vous pouvez utiliser ce fichier Well. J'utilise la version 3.11, donc je télécharge celle-ci Pour le télécharger, il suffit de sélectionner votre version de
Windows. Je vais utiliser
celui-ci et je clique dessus. Après cela, vous devez
cliquer sur Télécharger le fichier brut. Après avoir cliqué sur
le bouton Télécharger, comme vous pouvez le voir, il est téléchargé dans ce dossier,
ce dossier de téléchargement. Il est téléchargé dans ce dossier de
téléchargement. Maintenant, laissez-moi vous montrer
comment installer ce fichier WL à l'aide de
Windows Power Shell. Dans un premier temps, vous devez
copier ce chemin de fichier. Je copie le chemin exact du fichier et je vais ouvrir
mon Windows Power Shell. Et comme vous pouvez le voir, je l'allume
dans mon Windows Power Shell. Pour télécharger ce fichier WL , vous devez d'
abord taper, lire, installer, puis l'espace et utiliser des
codes à goujon Ensuite, à l'intérieur des codes à goujon, vous devez mettre le chemin du fichier Après cela, vous devez utiliser Ein, puis vous devez
fournir le nom du fichier. Pour fournir le bon nom, je vais copier
le nom exact de l'amende. À partir de là, je vais
copier le nom exact du fichier avec l'extension et je
vais le coller ici, Control V, et nous devons appuyer sur Entrée pour télécharger ce
module dans notre système. Appuyez simplement sur Entrée et votre processus de téléchargement sera calculé. Je l'ai déjà téléchargé, donc je ne vais pas
le télécharger à nouveau. Voici comment vous pouvez télécharger n'importe quel fichier Hill
sur votre machine locale. Passons maintenant à
l'éditeur de code. Ensuite, après avoir installé
le module DL, vous pouvez
maintenant installer le module de reconnaissance de
phase dans votre système Il suffit donc de taper la reconnaissance de
phase d'installation PIP. Vous devez suivre cette méthode
uniquement si votre système ne
parvient pas à télécharger le
module D automatiquement. Importons le module de
reconnaissance de phase dans nos cinq modules, certains de type Import et nom de
notre module est reconnaissance de
phase En dehors de cela, nous devons
installer un autre module
, Media Pipe. Pour installer le module media pyte, vous devez taper cette commande Pep Install OpenCB
Python Space Media Pipe. Si vous appuyez sur Entrée,
comme vous pouvez le voir, exigence est déjà
satisfaite car je télécharge
déjà ce
module dans mon système. Entrons le
module dans mon système. Certains types d'importation,
et je vais
importer Media Pipe en tant que MP. C'est ça. Après avoir importé
tous les modules nécessaires, nous devons charger les faces connues. Je tiens à dire que nous devons intégrer
tous les visages connus tels que
Meloni Modi, Trudo N'oubliez pas que vous pouvez utiliser autant de pass que vous le
souhaitez. C'est à vous de décider. Ici, je vais
taper une seule commande pour charger les phases connues. Après cela, je vais
déclarer deux variables. Pour stocker les phases connues, nous devons définir deux
variables, essentiellement deux listes. Le nom de notre première variable est connu sous unc phase, sous sco, encodings,
égal à I empty list. Ensuite, je vais définir
une autre variable nom de phase
connu sous sco,
phase, sous
encodages sco, underscoename Les noms sont égaux à blancs. Nos premières variables stockent
les codages numériques de chaque passe connue et les secondes variables stockent les noms nommés
correspondant à chaque passe Dans notre première liste, nous
allons stocker les encodages numériques et
dans notre deuxième variable, nous allons stocker
le nom des images, et elle va récupérer
tous les noms du beau nom, comme Meloni Modi Trudeau tram. Je vais prendre le nom
de l'image comme
nom Ensuite, nous devons parcourir tous les fichiers de ce dossier de phase
connu. Pour cela, nous allons
utiliser for loop.
Laissez-moi vous montrer comment faire. Additionnez RotYefflMe en un point, je vais utiliser sa fonction DA Ensuite, dans les
intersections rondes, je vais
fournir le nom du dossier
qui est non phase, K Wn underscore phase, En gros, ces quatre boucles
vont parcourir tous les fichiers
du dossier nonpas Ensuite, à l'intérieur des quatre boucles, nous devons construire le chemin complet
du fichier pour chaque image. Je tiens à dire ici que le nom du fichier représente les images, le fichier image, qui se trouve
dans ce dossier nonpas Nous examinons chaque image. Nous devons donc construire
le chemin complet du fichier, je vais
donc définir
une autre variable appelée PAT. Mais comme ici, je vais utiliser la fonction Join. Tapez Os path dot join. Ensuite, à l'intérieur de la cavité
ronde,
nous devons d'abord fournir
le nom du dossier,
et le nom de notre dossier
n'est pas des faces Sans visages ni
abricomes, nous devons fournir le nom du fichier Je vais transmettre la variable de nom
finale. Nom du fichier Il va joindre
le non-pass et le fichier actuel pour obtenir le chemin
complet de l'image. Supposons que pour Meloni,
il
obtienne le nom du dossier sans phase, puis qu'il ajoute le chemin du
fichier, meloit JPG Ensuite, nous devons charger l'image dans le module de
reconnaissance de phase Pour cela, je vais définir une autre variable appelée
image appelée image. Image égale à ici, je vais taper un point de
reconnaissance de phase
et à partir de la reconnaissance de phase, je vais appeler une méthode
appelée charger un fichier image Chargez le fichier image. Ensuite, dans le
roundres, je vais
fournir la variable de chemin En gros, il charge le fichier
image en mémoire dans un format que la bibliothèque de
reconnaissance de rythme peut traiter En fait, dans les coulisses, il utilisait l'allée Nampi Ensuite, nous devons obtenir
les codages de phase. Pour cela, je vais définir une autre variable
appelée encodings Encodages équivalents à la reconnaissance
de phase. Dot, je vais utiliser à partir de la réorganisation des
phrases, je vais utiliser des codages de
phase Ensuite, à l'intérieur des rondresses, nous devons fournir l'
image variable image Et je vais régler ça cinq. Il essaie de trouver toutes les phases de
l'image et de générer un codage à 128 décimaux
pour chaque image En gros, il renvoie une liste. Même s'il n'y a qu'une seule phase, elle renvoie
quand même une liste. Maintenant, si le rythme est trouvé, nous devons définir le codage de
phase pour cette liste et le
nom du pas pour cette liste. Pour cela, ici, je vais
utiliser la condition IP. S'il s'agit d'encodages,
alors dans
cette condition IP, je vais ajouter
les encodages à Donc, les types, les codages non phasés, ajoutent des
points à la fonction, ajoutez-les ensuite à l'intérieur de la
résine ronde, je suis À l'intérieur du renfoncement carré, je vais fournir zéro En gros, il prend le premier codage de
phase trouvé dans cette image et l'ajoute à cette liste, les codages non phasés Ensuite, nous devons enfin extraire
l'image. Pour cela, nous allons
utiliser la méthode du texte fractionné. Ici, je vais taper Os, point, butt, split text. Ensuite, à l'intérieur des bretelles rondes, je vais fournir
le nom du fichier Ensuite, à l'intérieur des bretelles carrées, je vais passer zéro En gros, il va
diviser le fichier en tupel tel que melon point JPG Meloni est un tupel
et le point JPG est
un autre objet en tapel Ici, nous passons à zéro, je veux dire que nous allons
extraire le premier, donc il ne va
extraire que le nom, meloni pas l'extension C'est pourquoi nous
n'utilisons aucun cheveu, car nous
devons uniquement extraire le nom. Ensuite, nous devons définir
les noms dans cette liste. Pour cela, nous devons à nouveau utiliser
la méthode append. Type de résumé,
noms de phase connus, méthode d'ajout par points. Ensuite, dans les arrondreses,
nous devons ajouter les noms, mais avant de les stocker,
je vais les stocker dans une variable qui est le nom du
type de somme des noms ici, nom Je vais fournir le
nom cette variable dans cette méthode d'ajout Nom, et je vais
mettre cette pile en place. En gros, ce
code parcourt le répertoire de phase connu. Et pour chaque image, il va la charger, extraire
le codage de la première phase et définir le codage, ainsi que le nom du fichier, pour les
éléments de cette liste. Et assurez-vous que toutes
les images que vous utilisez ont une phase claire. Si vous téléchargez une image comportant plusieurs
phases sur cette image, seule la première phase sera extraite. Il ne reconnaîtra pas toutes
les phases de l'image. C'est pourquoi je recommanderai
de télécharger ce type d' images qui n'ont qu'
une seule phase, comme celles-ci. Il s'agit de la première partie
de ce didacticiel. Et dans la prochaine partie
de ce didacticiel, nous allons travailler sur la configuration de la détection de phase
Media Pi et nous allons
démarrer la caméra. Merci d'avoir regardé cette vidéo, restez connectés pour la prochaine partie.
3. MediaPipe et configuration de la détection de visage: Bonjour, les gars. C'est bon
de te revoir. Il s'agit de la deuxième
partie de ce didacticiel. Et ici, je vais parler de la détection de phase du canal
multimédia. Donc, dans un premier temps, je vais
taper la commande unique, qui est le canal multimédia, la configuration de
la détection de phase. Ensuite, je vais
définir deux variables, et le nom de notre première
variable est MP, media pipe, phase,
underscore detection Égal à l'aminotype P (phase de la solution
point en cas de détection par scop), phase de détection
par scoscope Ensuite, nous devons
créer les outils de dessin. Pour cela, je vais définir une autre variable qui
est le dessin de soulignement MP,
égal à p point solution,
dessin utile, trait de
soulignement utile Maintenant, quelle est la
signification de ces deux variables ? Qu'est-ce que tu peux faire avec ça ? Dans notre première détection comprise en
phase MP variable, nous chargeons la solution de détection de
phase Pi du média, et dans notre deuxième variable, nous fournissons
ici une fonction utilitaire permettant tracer le point de
repère de phase sur les images. Maintenant, démarrons la caméra. Pour cela, je vais
définir une autre variable, et le
nom de notre variable est cap, CAP, Cap sinon capturé Ici, nous devons appeler la méthode de capture vidéo à
deux points CV, capture
vidéo et
à l'intérieur du laiton rond, nous devons transmettre la source. En tant que source, je
vais passer à zéro car je n'ai qu'une seule
webcam dans mon système. Ensuite, nous
devons initialiser le module de détection de phase
avec un minimum de confiance Pour cela, je vais
taper avec MP, souligner le point de
détection de phase à partir de là, je veux exécuter la détection de phase Détection de phase. Ensuite, à l'intérieur des roses
rondes, je vais définir un niveau minimum de confiance en
matière de détection. L'homme souligne la détection,
souligne la confiance,
égal à, et je
vais le définir à 0,6 Cependant, je vais taper comme Détection de phase, détection de
soulignement de phase Ensuite, à l'intérieur, ici, je vais faire une petite boucle. Ici, je vais taper y, le point du
capuchon est ouvert, est ouvert. Ensuite, dans cette boucle while, dans la boucle ins this while ici, je vais déclarer
deux variables. Le premier est pour la variable
Bullen et second pour
le cadre de l'image, et vous connaissez le processus Je tape RET, virgule, et pour stocker le frame mut
frame, égal à la
méthode cat read, Cap point Ensuite, je vais
dire p condition. Si ce n'est pas vrai, je tiens à dire que la valeur Bian n'est pas vraie, alors dans cette condition IP, je veux rompre la boucle. Choisissez, c'est ça. Maintenant, la question est de savoir ce que
j'ai essentiellement fait ici. Dans un premier temps, nous ouvrons notre caméra Web
par défaut et l'enregistrons dans une variable cab. Après cela, nous initialisons modèle de détection de
phase avec un
minimum de confiance de 0,6 et son utilisation avec l' instruction, car cela
garantit une bonne gestion
des ressources Je ferme automatiquement
le modèle lorsque c'est fait. Ensuite, je lis les images de la caméra
en continu à l'aide de Hilou. Cab point est une méthode ouverte vérifie si le
flux vidéo est actif, et c'est pour une valeur booléenne, la variable frame capture une image depuis la webcam
puis voit une condition Si aucune trame n'est reçue, elle sortira de la boucle. D'une manière ou d'une autre, la
connexion de notre caméra est interrompue, puis elle va rompre la
boucle s'il n'y a aucune séquence. Après cela, dans
cette boucle while, je vais définir une condition IP. Tapez donc I CV pour faire la touche d'attente. Dans le cadre du processus circulaire, je vais attendre
dix millisecondes et
zéro xFF égal
à la méthode ORD zéro xFF égal
à la méthode ORD À l'intérieur des
rondelles, je vais passer Q, puis je veux briser la boucle Ensuite, en dehors
de la boucle While, je vais relâcher
le capteur Méthode de déverrouillage du capuchon, point de la
cabine, déverrouillage. De plus, je vais détruire
toutes les fenêtres après avoir publié les programmes de type CV à point, détruire toutes les fenêtres. Maintenant. Maintenant, dans cette boucle while, je vais convertir le BGR en cadre
RGV car par défaut, OpenCV lit notre
cadre Mais pour la détection de phase, nous avons besoin d'un cadre RGV. Voici donc notre type de cadre de soulignement
RGB. Cadre RV égal à CV à
deux points, couleur CVT. Ensuite, à
l'intérieur des tours,
je vais d'abord fournir le cadre
lui-même comme source,
un cadre de type, puis une virgule.
Ici, je vais passer le CV deux Nous devons transmettre le code couleur, qui est la couleur BGR RGV car nous allons
convertir une grande image en image RGV C'est ça. Ensuite, nous devons
extraire l'emplacement de la phase, ainsi que les codages de phase Pour cela, je vais
définir deux autres variables. Dans notre première
phase variable de type Imo, soulignez les emplacements. Emplacements de phase équivalents
à la détection de phase,
point, point,
méthode de localisation de phase, emplacements de
soulignement de phase. Ensuite, à l'intérieur des
versets ronds, je vais passer le cadre RGV (cadre GV) Après avoir extrait l'
emplacement de phase de la trame RGV, nous devons
également extraire les codages de
phase Pour cela, je vais définir
une autre variable : les encodages de
soulignement. Ajustez les encodages égaux à la reconnaissance de phase de
type herm, à partir de la reconnaissance de phase, I 12,
désolé, vous devez également
exécuter la reconnaissance de phase, et
non la détection, la reconnaissance non Celui-ci. À l'aide du module
de reconnaissance de phase, nous extrayons
ici l'emplacement de la
phase Ensuite, à l'aide du
module de reconnaissance de phase, nous allons extraire
les codages de phase Ici, je vais lier la reconnaissance de
phase,
point, je vais
taper des codages de phase Cette méthode. Ensuite, à l'intérieur des presses
rondes, nous devons d'abord passer, nous devons passer le cadre RGV,
taper le cadre RGV, virgule, puis je vais passer cet emplacement de phase
variable, les emplacements de
phase, emplacements de
phase Je vais régler
celui-ci. Maintenant, permettez-moi de vous
expliquer en
gros ce que cela va faire. emplacements de phase
retracent les coordonnées de toutes les
phases détectées dans la trame, et notre codage de phase calcule codages de phase à
12 dimensions
pour chaque phase Nous avons maintenant la localisation de phase
et le codage de phase. Ensuite, nous devons
reconnaître la phase. Pour cela, nous allons
utiliser un follow, mais pas dans ce tutoriel. Et dans la prochaine partie
de ce tutoriel, nous allons masquer
la partie restante Merci d'avoir regardé cette vidéo,
restez connectés pour la prochaine.
4. Boucle principale qui va reconnaître le visage: Bonjour les gars. C'est bon
de te revoir. Il s'agit
de la troisième partie de ce tutoriel, et ici nous
allons exécuter une boucle. Nous allons
exécuter la boucle principale qui va
reconnaître la phase. Pour cela, nous allons
utiliser follow, mais avant, je vais taper un
single et commenter, et je vais
reconnaître les phases. Après cela, nous
devons commencer le suivi. Nous devons exécuter une boucle à quatre
pour chaque phase détectée. Je vais donc taper pour les
presses rondes, je vais prendre une
variable pour les coordonnées, une autre en haut,
une virgule à droite En bas, t. Après
cela, c'est l'encodage. Encodages de phase. Encodage Fizz en Z, IP Z à l'intérieur de la passe
ourlée, de la
phase, de l'emplacement, des emplacements des visages, des encodages
Fizz, des encodages Ensuite, à l'intérieur de cette boucle à quatre, mais laissez-moi vous expliquer ce que je viens de
faire ici. Quelle est la signification
de ces quatre boucles ? En gros, nous examinons ici toutes les
phases détectées. Ces boucles itèrent sur
chaque phase détectée. Ici, les emplacements de phase contiennent coordonnées
encadrées des phases, qui se trouvent dans le cadre,
et les codages de phase contiennent des vecteurs de caractéristiques
faciales
pour chaque Fondamentalement, le module
de reconnaissance de phase utilise 128 points vectoriels
pour identifier la phase, puis nous utilisons la méthode Zip Il va associer les
emplacements de chaque phase à son encodage, et en haut à droite et en bas se trouvent les coordonnées utilisées pour dessiner
un rectangle autour de la face Ensuite, à l'intérieur de
ces quatre boucles, nous devons trouver les correspondances
pour comparer les visages. Pour cela, je vais déclarer une autre variable appelée matches. Match est égal
ici. Je vais
utiliser une méthode appelée comparaison de
phase à partir de
la reconnaissance de phase. Donc, reconnaissance des phases, comparaison
des phases,
comparaison des phases Ensuite, dans le round ss, ici, je vais passer deux variables
au total. non phasés, codages non phasés
et codage de phase Codage de phase. Il compare les codages de
phase actuels (phase connue avec les codages non phasés Comme vous le savez, dans nos
codages hors phase, toutes les coordonnées de
phase et
leurs caractéristiques sont indiquées
ici à partir de ces
images de phase connues telles que Meloni, Modi, Trudeau, Tramp, Il va comparer
la phase en cours avec les images de phase connues. Si vous ne trouvez aucune correspondance, je veux la nommer inconnue. Nom de domaine égal à inconnu à l'intérieur du double
parcours non Elle sera remplacée si la phase
connue n'est pas trouvée. En gros, il s'agit du nom d'étiquette
par défaut. Ensuite, nous devons utiliser la distance la plus courte
pour obtenir le meilleur match. Pour cela, nous devons
calculer la distance. Donc voilà, je vais
taper un autre single et une autre commande et je vais passer
à utiliser la
distance la plus courte pour obtenir la meilleure correspondance. Je vais taper un nom de
variable et le nom notre variable
est les distances de phase. Distances de sous-détection de phase
Pour calculer la distance, nous devons utiliser une méthode issue de la reconnaissance
de phase, à savoir la distance de phase,
la reconnaissance de phase du type
somme, la
méthode de la distance de phase par
points, la distance Ensuite, à l'intérieur de l'évidement
rond, nous devons comparer les codages
non phasés avec les codages phase
actuels, les codages
non Virgule, encodages de phase, codages de phase
. Codage de phase. Fondamentalement, cette fonction
calcule la distance eclédienne entre la phase actuelle
et la phase Une distance similaire signifie
plus de similitude, et nous utilisons cette méthode pour trouver la meilleure correspondance à partir
des phases connues. Nous devons maintenant exécuter
une condition I pour assurer qu'il existe au moins une phase
connue à comparer. Ici, je vais taper I
lane à l'intérieur de la distance ronde par rapport à la distance de
phase, distance ,
supérieure à zéro, puis
insérer cette condition IP, puis dans cette condition IP, nous devons obtenir l'indice de plus petite distance pour
la meilleure correspondance possible. Je vais donc définir
une autre variable, et notre variable est
basée sur undersce match, underscore, index Ici, je vais exécuter Je vais égaler les distances de phase avec le
point Arg, c'est-à-dire celui-ci. Cette méthode va
renvoyer l'indice de la plus petite distance pour
la meilleure correspondance possible, et nous l'avons défini dans cette variable. Maintenant, si la correspondance est trouvée
à partir du meilleur index de correspondance
, nous devons remplacer le nom inconnu
par ce nom de fichier. Je veux dire ce nom de fichier. S'il s'agit d'un tram, alors
nous devons le nommer Tram. Si c'est Trudeau,
nous devons le nommer Trudeo Donc, pour cela, je vais utiliser la condition HIP dans
cette condition IP. Tapez les correspondances IP
dans cette base carrée, je vais passer le
meilleur indice de correspondance, puis dans cette condition HIP, je vais remplacer
la variable name Ensuite, le nom devient égal aux noms de phase connus à
l'intérieur des bases carrées à partir de celui-ci, je veux mettre le meilleur
indice de correspondance, le meilleur indice de correspondance. S'il trouve la correspondance,
il va mettre le nom. Ensuite, nous devons dessiner
les rectangles. Nous devons dessiner les rectangles. Autour du visage. Pour cela, en dehors de cette condition IP. En dehors de cette condition IP, je vais utiliser la méthode du
rectangle, rectangle à deux
points
similaire à tit CV. Et dans le RoundResf je vais fournir
le nom du cadre dans lequel nous allons
dessiner les rectangles,
c'est-à-dire le cadre dessiner les rectangles,
c'est-à-dire le Ensuite, nous devons
définir la position. Comme vous le savez, nous
extrayons déjà les positions supérieure et inférieure du portable pour
dessiner le rectangle. Dans un premier temps, nous devons fournir
le coin supérieur gauche. Ici, à l'intérieur des bretelles rondes, je vais fournir le laboratoire de valeur du laboratoire, puis je vais passer à la valeur, en haut Ensuite, nous devons définir
l'autre coin, qui est en bas à droite, qui est en bas à droite. À l'intérieur des bretelles rondes, je vais taper en bas à droite Après cela, nous devons définir la
couleur de ce rectangle. À l'intérieur des bretelles rondes, je vais utiliser
ce code couleur B, pour le bleu, je vais
utiliser zéro pour G pour le vert, je vais utiliser
255 et pour le rouge, je vais utiliser zéro à nouveau. Ensuite, nous devons fournir l'épaisseur de cette
bordure, qui est de deux. Après cela, dessinez le
rectangle.
Vous devez également mettre le texte,
le nom de cette personne. Je vais utiliser la méthode
put text, un type CV à deux points, put text. Dans le RoundSSF,
nous devons fournir le cadre de nom dans lequel nous
allons placer le texte Ensuite, nous devons fournir
le texte, qui est le nom. Ensuite, nous devons définir la position pour définir
la position du texte. Ici, à l'intérieur de la brosse ronde,
nous allons commencer
le texte par le
côté gauche, le lever et la virgule C'est pour les Xs et pour les XS, commençant par le haut POP, je vais passer à moins dix films Autocoma, nous devons
définir la police de caractères. Et ici, je vais utiliser CV
à deux points, CV à deux points, font hoch
simplex, cette police Ensuite, nous devons définir
l'échelle de police. Ici, je vais utiliser 0,8. Ensuite, nous devons
définir la couleur. Nous devons définir la couleur dans laquelle
nous voulons afficher la police, et je vais
utiliser la même couleur. Nous utilisons donc zéro virgule
255 virgule zéro. couleur crème, puis ils veulent fournir l'épaisseur du
gras qui est de deux, c'est bon pour chacun, et c'est tout. Après cela, nous devons afficher. Nous devons afficher le
cadre en utilisant la méthode IMF. En dehors de la boucle automnale, je vais exposer le visage. Donc, le CV 2 a enseigné la méthode IMF. Je suis sûre qu'à
l'intérieur des robes
rondes vous voulez d'abord
donner un nom à la fenêtre et son nom
est reconnaissance faciale. Ensuite, Apacmo, nous devons
afficher le cadre, le cadre réel que
nous voulons afficher Et je vais sous-traiter ce fichier. Nous avons donc terminé. Et avant d'exécuter ce
code dans mon terminal, je souhaite également mettre mon propre visage dans cette
liste non phasée de ce dossier. J'ai donc mis ma photo sur cette liste. Cette photo est prise
depuis ma webcam, et je vais également utiliser
cette photo. Nous avons maintenant un total de cinq
phases à identifier. Combattons donc le code définissons ce fichier et exécutons ce
code dans notre terminal. Maintenant, exécutons le code. Je vais donc appuyer sur
le bouton Exécuter. Après avoir appuyé sur le bouton Exécuter, nous devons attendre un certain
temps pour démarrer la webcam. Ensuite,
comme vous pouvez le voir
, ma webcam démarre. Comme vous pouvez le voir,
il reconnaît instantanément mon visage. Il crée une
boîte carrée autour de mon visage, et au-dessus de la boîte carrée, il imprime mon nom, joint. Et si j'essaie de
vous montrer d'autres visages, je les imprime
déjà sur mon clavier. Et si je le montre
devant la caméra, comme vous pouvez le voir, il
reconnaît également d'autres visages. Il a reconnu les autres
leaders mondiaux tels que Modi. Et si je passe à la phase suivante, je vais
donc changer de visage,
comme vous pouvez le voir, pour qu'il
reconnaisse également le visage du président Trump. De même, si
je change l'image, vous verrez qu'elle a reconnu le
Canada comme l'ancien premier ministre
Justin Trudeau. Comme vous pouvez le voir, nous avons suivi, il a
également reconnu le visage, puis voici notre dernier
rythme Georgia Malone Il a également reconnu
ses caractéristiques spéciales, nous avons
donc bien fait notre travail. J'espère que vous savez maintenant comment créer notre propre modèle de
reconnaissance faciale à l'aide d'Open CP Merci d'avoir regardé cette vidéo. Restez à l'affût de notre prochain projet.