Transcripciones
1. INTRODUCCIÓN: Hola, chicos. Es
bueno verte de vuelta. Una vez más, estoy de vuelta con una nueva clase relacionada con la visión por computadora. Hoy en esta clase,
vamos a crear reconocimiento de fase en tiempo
real con la ayuda de Open Civil
Library y Python Hola. Mi nombre es
Jonatha Shorter Soy
Desarrollador web Fullstack Programador Python e instructor online Puede detectar múltiples
fases e identificar el pase al mismo
tiempo usando nuestra webcam. Déjame mostrarte la
demostración de lo que
vamos a construir hoy
en este proyecto. Como pueden ver, nuestro programa reconoce
con éxito mi fase. También reconoció la fase del primer
ministro Modi. Entonces reconoció la fase de
Donald Trump. Después de eso, reconoció la fase de
Justin Trudeau, y por fin, reconoció la fase
Georgia Meloni Nuestro programa es muy capaz detectar y reconocer fases. Para crear este proyecto,
vamos a utilizar tubería de
medios y módulo de
reconocimiento de fase partir del siguiente tutorial, vamos a
iniciar nuestra codificación. Vamos a comenzar con la
importación de pasivos.
2. Instalar bibliotecas y leer el archivo de imagen: Entonces finalmente, estamos en mi
visor Studio editor de código. Y como puedes ver en mi directorio de trabajo
actual, ya
creo un nombre de archivo
Python reconocedor punto Pi y una carpeta Un nombre de carpeta conocido
subrayado caras. En esa carpeta,
tenemos algunas imágenes. Tenemos imagen de Georgia Meloni. Tenemos imagen de Naren Romoi. Tenemos imagen de Justin
Trudeau y por fin, tenemos imagen de Donald Tram Estos son todos de
paso bien conocidos en todo el mundo, y para nuestro reconocedor, entrenamos nuestro modelo
con esas fases Ahora, volvamos al
reconocedor punto Pi cinco. Y al principio, voy a
importar los módulos importantes. Al principio, necesitamos
importar módulo OS, tipo
Sim, importar OS. Mediante este módulo, podemos acceder a nuestros directorios de trabajo, de
lo contrario, las carpetas. Entonces necesitamos
importar otro módulo llamado CV dos. Este
es el módulo principal. Tipo Simu, importación, cv dos. Con eso, necesitamos
ingresar otro módulo. Pero primero, necesitamos
descargar este módulo, y nuestro nombre de módulo es el reconocimiento de
fase. Abramos el Shell de
Windows Power e intentemos descargar este módulo. Para descargar este módulo,
solo necesitas escribir,
turbar, instalar, y nuestro módulo
es el reconocimiento de fases Entonces necesitas presionar Enter. Después de golpear Enter, como puedes ver, requisito ya
satisfecho porque ya descargo este módulo, pero podrías enfrentar algún error
por este módulo,
porque este módulo vienen con algunas dependencias
como Nampi, Pillow Pero en tu caso, puedes obtener error debido a
este módulo DL, y necesitamos instalar
este módulo manualmente. Déjame mostrarte cómo
podemos instalar este módulo. Para resolver el problema, basta con abrir su navegador y buscar eliminar Bien
paquete enlace de descarga. Entonces te proporciona este enlace, este enlace de Github, y necesitas
abrir este enlace de Github. Elimina el archivo HL de punto
binario compilado y necesitas descargar
este archivo Wheel. Si hago clic en este
archivo, déjame mostrarte, como puedes ver, aquí proporciona múltiples archivos HL para
múltiples versiones de Python. Si estás usando la versión 3.10, entonces puedes usar
este archivo Wheel Si usas la versión 3.7, entonces puedes usar este archivo Well. Estoy usando 3.11, así que descargo este Para descargarlo para descargarlo, solo tiene que seleccionar su versión de
Windows. Voy a usar este
y hago clic en él. Después de eso, debe hacer
clic en Descargar archivo RAW. Después de hacer clic en
el botón Descargar, como puedes ver, se descarga a esta carpeta,
esta carpeta de Descarga. Se descarga a esta carpeta de
descarga. Ahora, déjame mostrarte
cómo podemos instalar este archivo WL usando
Windows Power Shell. Al principio, es necesario
copiar esta ruta de archivo. Copio la ruta exacta del archivo, y voy a abrir
mi Shell de Windows Power. Y como pueden ver, yo encendido
en mi Windows Power Shell. Para descargar este archivo WL, primero, necesitas escribir, peep, instalar, luego necesitas usar el espacio y
necesitas usar códigos de espiga Luego dentro de los códigos de espiga, es necesario poner la ruta del archivo Después de eso, debe usar Ein, luego debe
proporcionar el nombre del archivo. Para proporcionar el nombre fino, voy a copiar
el nombre fino exacto. Entonces a partir de aquí, voy a
copiar el nombre exacto del archivo con la extensión y lo
voy a pegar aquí, Control V, y necesitamos
darle a Enter para descargar este
módulo en nuestro sistema. Simplemente presiona Enter y va a computar
tu proceso de descarga. Ya lo descargo, así que no voy a volver a
descargarlo. Así es como puedes descargar cualquier archivo Hill en
tu máquina local. Ahora, vayamos
al editor de código. Entonces después de instalar
el módulo DL, ahora puede instalar módulo de reconocimiento de
fase en su sistema Así que solo escriba PIP instalar reconocimiento de
fase. Necesitas seguir este método
solo si tu sistema no es capaz de descargar el
módulo D automáticamente. Importemos el módulo de
reconocimiento de fase en nuestro cinco, algún tipo Import y nuestro nombre de módulo es reconocimiento de
fase Aparte de eso, necesitamos
instalar otro módulo, que es media Pipe. Para instalar el módulo media
pyte, es necesario escribir este comando Pep Instalar OpenCB
Python espacio media Pipe. Si presionas Enter,
como puedes ver, requisito ya
satisfecho porque ya descargo este
módulo en mi sistema. Vamos a introducir el
módulo en mi sistema. Algún tipo de importación,
y voy a importar medios Pipe como MP. Eso es. Después de importar
todos los módulos necesarios, necesitamos cargar las caras conocidas. Quiero decir, necesitamos cargar todas las caras conocidas como
Meloni Modi, Trudo y Tranvía Recuerda, puedes usar tanto pase que
quieras. Depende de ti. Entonces aquí voy
a escribir un solo comando cargar fases conocidas. Después de eso, voy a
declarar dos variables. Para almacenar las fases conocidas, necesitamos definir dos
variables, básicamente dos listas. Nuestro primer nombre de variable
es conocido unc phase, bajo sco, codificaciones,
igual a I lista vacía Entonces voy a definir
otra variable que se conoce nombre de fase
conocido bajo sco,
fase, bajo
codificaciones sco, underscoename Nombres iguales a espacios en blanco. Nuestras primeras variables almacenan
las codificaciones numéricas de cada pasada conocida y las segundas variables almacenan los nombres nombrados
correspondientes a cada pasada En nuestra primera lista,
vamos a almacenar las codificaciones numéricas y
en nuestra segunda variable, vamos a almacenar
el nombre de las imágenes, y va a obtener todos los nombres del
nombre fino como Meloni Modi Trudeau tranvía I' va a tomar el nombre de la imagen como
nombre A continuación, necesitamos revisar todos los archivos en esta carpeta de fase
conocida. Para eso, vamos a usar for loop.
Déjame mostrarte cómo. Sum rotyeFlMe en s punto, voy a usar Entonces dentro de los
reces redondos voy a proporcionar el nombre de la carpeta
que es no fase, K Wn subrayado fase, Básicamente, este bucle de cuatro
va a mirar a través cada archivo dentro de
la carpeta nonpas Luego dentro del bucle cuatro, necesitamos construir la ruta de
archivo completa para cada imagen. Quiero decir aquí, nombre de
archivo representan imágenes, el archivo de imagen, que está
dentro de esta carpeta nonpas Miramos a través de cada imagen. Entonces necesitamos construir
la ruta completa del archivo, así que voy a definir
otra variable llamada PAT. Pero igual a aquí, voy a usar la función Join. Escriba Os path dot join. Luego dentro del hueco
redondo, primero, necesitamos proporcionar
el nombre de la carpeta, y nuestro
nombre de carpeta no es caras. No caras y
apricoma necesitamos
proporcionar lo que necesitamos para
proporcionar el nombre del archivo Voy a pasar la variable de nombre
final. Nombre del archivo. Se va a unir
el non pass y el archivo actual para obtener la ruta
completa del archivo de la imagen. Supongamos que para Meloni,
va a obtener el nombre de la carpeta non phase, luego va a agregar la ruta del
archivo, meloit JPG A continuación, necesitamos cargar la imagen en módulo de
reconocimiento de fase Para eso, voy a definir otra variable llamada
image llamada image. Imagen igual a aquí, voy a escribir punto de
reconocimiento de fase y a partir de reconocimiento de fase, voy a llamar a un método
llamado load image file Cargar archivo de imagen. Después dentro de las
rotondas voy a proporcionar la variable path Básicamente, carga el archivo de
imagen en la memoria
en un formato que la biblioteca de
reconocimiento de ritmo puede procesar Básicamente, detrás de escena, utilizó el callejón Nampi A continuación, necesitamos obtener
las codificaciones de fase. Para eso, voy a definir otra variable
llamada codificaciones Codificaciones iguales a reconocimiento
de fase. Punto, voy a usar desde la reorganización de
frases, voy a usar codificaciones de
fase Luego dentro de las rotondas, necesitamos proporcionar la
imagen variable de imagen Y voy a poner estos cinco. Se trata de buscar todas las fases
en la imagen y generar una codificación decimal 128
para cada imagen. Básicamente, devuelve una lista. Aunque sólo haya una fase, aún así devolverá una lista. Ahora bien, si se encuentra el ritmo, necesitamos establecer la codificación de
fase a esta lista y el
nombre pas a esta lista. Para eso, aquí, voy
a usar condición IP. Si codificaciones, entonces dentro de
esta condición IP, entonces voy a anexar
las codificaciones a Entonces tipos, codificaciones no fase
punto append función,
append luego dentro de la
resis redonda, soy Dentro del receso cuadrado, voy a proporcionar cero. Básicamente, toma la primera codificación de
fase que se encuentra en esta imagen y la anexa a esta lista, codificaciones no de fase A continuación, necesitamos extraer
la imagen finalmente. Para ello, vamos a
utilizar el método de texto dividido. Aquí voy a escribir Os, punto, trasero, dividir texto. Después dentro de las llaves redondas, voy a proporcionar
el nombre del archivo Después dentro de las llaves cuadradas, voy a pasar cero Básicamente, va
a dividir el archivo en tupel como melon dot JPG Meloni es un artículo de tupel y dot JPG es
otro artículo tapel Aquí pasamos cero, quiero decir vamos a
extraer el primero, así que va a
extraer sólo el nombre, meloni no la extensión Por eso usamos cero cabellos porque necesitamos
extraer el nombre solamente. Y entonces tenemos que poner
los nombres en esta lista. Para ello, necesitamos volver a usar el método
append. Tipo de resumen
nombres de fase conocidos método de adición de punto. Entonces dentro de las rotondas
necesitamos anexar los nombres, pero antes voy a
almacenarlo, lo
voy a almacenar en una variable,
que es nombre suma
tipo nombre aquí, nombre voy a proporcionar
este
nombre de variable dentro
de este método Nombre, y voy
a poner esta pila. Básicamente, este
código escanea a través del directorio de fases conocido. Y para cada imagen, la
va a cargar, extraer
la codificación de la primera fase, y establecer la codificación, también el nombre del archivo a los elementos de la
lista a esta lista. Y asegúrate de que todas
las imágenes que uses, tengan una fase clara. Si subes una imagen donde tienes múltiples
fases en esa imagen, entonces va a extraer
solo la primera fase. No va a reconocer toda
la fase desde la imagen. Por eso recomendaré
subir ese tipo de imágenes que tienen
solo una fase, como las que tienen. Esta es la primera parte
de este tutorial. Y la siguiente parte
de este tutorial, vamos a trabajar en configuración de detección de fase de
media Pi y vamos a
iniciar la cámara. Gracias por ver este video, Estén atentos para la siguiente parte.
3. Configuración de MediaPipe y detección de rostros: Hola, chicos. Me
alegro de verte de vuelta. Esta es la segunda
parte de este tutorial. Y aquí, voy a decir detección de fase de tubería de
medios. Entonces al principio, voy a
escribir el comando único, que es media pipe, configuración de detección de
fase. Después de eso, aquí, voy
a definir dos variables, y nuestro primer nombre de
variable es MP, media pipe, fase, detección de
subrayado Igual a la fase de solución de
punto de aminotipo P bajo detección de sco, detección de fase
Underscoe Después de eso, necesitamos
crear los utiles de dibujo. Para eso, voy a definir otra variable que
es MP underscoe drawing,
igual a p dot solution, drawing utiles, utiles Ahora bien, ¿cuál es el
significado de estas dos variables? ¿Qué puedes hacer con eso? En nuestra primera detección de
fase MP variable entendida, cargamos la solución de detección de
fase Pi de medios, y en nuestra segunda variable, aquí proporcionamos función de utilidad para dibujar
hito de fase en imágenes. Ahora, comencemos la cámara. Para eso, voy a
definir otra variable, y nuestro
nombre de variable es cap, CAP,
Cap de otra manera capturada igual a aquí necesitamos llamar a CV
dos punto método de captura de video, captura de
video y
dentro de la ronda de latón, tenemos que pasar la fuente. Como fuente,
voy a pasar cero porque solo tengo una
webcam en mi sistema. Después de eso,
necesitamos inicializar el módulo de detección de fase
con una confianza mínima Para eso, voy
a escribir con MP, subrayado punto de
detección de fase desde aquí, quiero ejecutar detección de fase Detección de fase. Entonces dentro de las rosas
redondas aquí, voy a establecer la confianza mínima
de detección. Hombre underscoe detección, confianza
underscoe, igual a, y
voy a Abe que voy a escribir como fase, detección de
subrayado de fase Entonces dentro de ella, aquí, voy a correr un bucle while. Aquí voy a escribir y, cap dot se abre, se abre. Entonces dentro de este bucle while, el ins this while loop aquí, voy a declarar
dos variables. El primero es para la variable
Bullen y segundo es para
el marco de la imagen, y ya sabes el proceso Soy tipo RET, coma, y para distorsionar el
marco mut frame, igual al
método cat read, Cap dot Entonces voy a
decir p condición. Si no es cierto, quiero decir que yo no Bian valor es cierto, entonces dentro de esta condición IP, quiero romper el bucle. Pick, eso es. Ahora la pregunta es qué básicamente
hice aquí. Al principio, abrimos nuestra cámara web
predeterminada
y la guardamos en una variable de cabina. Después de eso, Él inicializamos modelo de detección de
fase con una confianza
mínima de 0.6 y su uso con enunciado ya que es
asegurar un manejo adecuado de
los recursos Cierro automáticamente
el modelo cuando termine. Después leo los fotogramas de la cámara
continuamente usando Hilou. Cab punto es método abierto, comprueba si el
flujo de video está activo, y esto es para valor booleano, la variable de fotograma captura la imagen de la cámara web y
luego ve una condición Si no se recibe ninguna trama, entonces va a salir del bucle. De alguna manera nuestra
conexión de cámara se rompe, entonces va a romper el
bucle si no hay metraje. Después de eso, dentro de
este bucle while, voy a establecer una condición IP. Entonces tipo I CV para hacer llave de espera. Dentro del proceso de ronda, voy a esperar
diez milisegundos y y cero xFF igual a igual
al método ORD, RD Dentro de las rotondas,
voy a pasar Q, después quiero romper el bucle Después de eso, fuera
del bucle while, voy a soltar
al catcher. Método de liberación de tapa, punto de
cabina, liberación. Además, voy a destruir
toda la ventana después de liberar los programas tipo CV a punto, destruir todos los Windows. Ahora. Ahora dentro de este bucle while, voy a convertir BGR a marco
RGV porque por defecto, OpenCV leyó nuestro
frame en modo Pero para la detección de fase, necesitamos marco RGV Así que aquí están nuestro tipo de marco de subrayado
RGB. Marco RV igual a CV
dos puntos, color CVT. Después dentro de las
rotondas, primero, voy a proporcionar el marco
real como fuente, algún tipo frame, luego un coma, aquí voy a pasar CV dos Tenemos que pasar el código de color, que es color BGR RGV porque vamos a
convertir big a RGV Eso es. A continuación, necesitamos
extraer la ubicación de fase, también las codificaciones de fase Para eso, voy a
definir dos variables más. En nuestras primeras ubicaciones variables de
fase tipo Imo underscoe. Ubicaciones de fase equivalentes
a detección de fase,
punto, punto,
método de ubicación de fase, ubicaciones de
subscoe de fase Entonces dentro de los
versos redondos aquí pasaré el marco RGV frame GV Después de extraer la
ubicación de fase de la trama RGV, también, necesitamos extraer las codificaciones de
fase Para eso, voy a definir otra variable phis
underscoe Ajustar codificaciones iguales al reconocimiento de fase
tipo herm, a partir del reconocimiento de fase, I 12,
lo siento, también necesitas
ejecutar reconocimiento de fase,
no detección, reconocimiento no Éste. Usando el módulo de
reconocimiento de fase, aquí extraemos la ubicación de la
fase Después usando el módulo de
reconocimiento de fase, vamos a extraer las codificaciones
de fase Aquí, voy a atar el reconocimiento de
fase,
punto, voy a
escribir codificaciones de fase Este método. Entonces dentro de las
vueltas aquí, tenemos que pasar primero, necesitamos pasar el marco RGV,
escribir marco RGV, coma, luego voy a pasar esta ubicación de fase
variable, ubicaciones de
fase, ubicaciones de
fase Voy a fijar
esta. Ahora déjame explicarte básicamente lo que
básicamente va a hacer. Las ubicaciones de
fase representan la coordenada de todas
las fases detectadas en el marco, y nuestra codificación de fase calcula codificaciones de fase de
12 dimensiones
para cada Ahora tenemos ubicación de fase
y codificación de fase. A continuación, necesitamos
reconocer la fase. Para eso, vamos
a usar un follow, pero no en este tutorial. Y la siguiente parte
de este tutorial, vamos a encubrir
la parte restante Gracias por ver este video
estad atentos para nuestro próximo.
4. Bucle principal que va a reconocer la cara: Hola chicos. Me
alegro de verte de vuelta. Esta es la tercera parte
de este tutorial, y aquí
vamos a ejecutar un bucle. Vamos a
correr el bucle principal que va a
reconocer la fase. Para eso, vamos a
usar follow, pero antes, voy a escribir un
sencillo y comentar, y voy a
reconocer fases. Después de eso, necesitamos
comenzar el seguimiento. Necesitamos ejecutar un bucle cuatro
a través de cada fase detectada. Entonces voy a escribir para
dentro de las prensas redondas, voy a tomar alguna
variable para las coordenadas, algún tipo top, coma derecha Abajo, t. después de
eso, la codificación phis. Codificaciones de fase. Codificación de Fizz en Z IP Z dentro de la ronda de paso
con dobladillo,
fase, ubicación, ubicaciones de caras, codificaciones de
fizz, codificaciones Entonces dentro de este bucle de cuatro, pero déjame explicarte este
bucle fo lo que acabo de hacer aquí. ¿Cuál es el significado
de este bucle de cuatro? Básicamente, aquí miramos
a través de toda la fase detectada. Estos bucles iteran sobre
cada fase detectada. Aquí, las ubicaciones de fase contienen coordenadas de caja
delimitadora de fases, que se encuentran en el marco, y las codificaciones de fase contienen vectores de
rasgos faciales
para cada Básicamente el módulo de
reconocimiento de fase utiliza 128 puntos vectoriales
para identificar la fase, y luego usamos el método Zip Va a emparejar
las ubicaciones de cada fase con su codificación, y arriba a la derecha, abajo solapadas son las coordenadas utilizadas para dibujar
un rectángulo alrededor de la cara Después de eso, dentro de
este bucle de cuatro, necesitamos encontrar los partidos
para comparar las caras. Para eso, voy a declarar otra variable llamada coincidencias. Coincidencia es igual a
aquí voy a usar un método llamado comparación de
fase desde el reconocimiento de
fase. Entonces reconocimiento de fase ti, fase puntos, fases
comparadas Entonces dentro de la ronda ss, aquí, voy a pasar
total dos variables. sin fase, codificaciones sin fase
y codificación de fase Codificación de fase. Compara las codificaciones de
fase actuales conocidas de fase con codificaciones no fase Como saben, en nuestras codificaciones
no fase, aquí se cuentan todas las coordenadas de
fase y sus características a partir de estas
imágenes de fase conocidas como Meloni,
Modi, Trudeau, Tramp, etcétera Se va a comparar
la fase actual con las imágenes de fase conocidas. Si no encontraste ninguna coincidencia, entonces quiero nombrarla desconocida. Sutname igual a desconocido dentro del doble
curso no Se sobrescribirá si no se encuentra la fase
conocida. Básicamente, es el nombre de etiqueta
predeterminado. Y a continuación, necesitamos usar la distancia más corta
para el mejor partido. Para eso, necesitamos
calcular la distancia. Entonces aquí, voy
a escribir otro sencillo y comando y voy a pasar usar la
distancia más corta para el mejor partido. Voy a escribir un nombre de
variable y
nuestro nombre de variable
es distancias de fase. Distancias de subsuelo de fase
para calcular la distancia, necesitamos usar un método de reconocimiento
de fase,
que es distancia de fase, reconocimiento de fase de tipo
suma,
método de distancia de fase de
punto, distancia de fase Entonces dentro del rebaje redondo
aquí necesitamos comparar con codificaciones
no fase con codificaciones fase
actual
tipo, codificaciones no fase Coma, codificaciones de fase, codificaciones de fase
. Codificación de fase. Básicamente, esta función
calcula la distancia eclediana entre la fase actual
y la fase conocida Distancia similar significa
más similitud, y utilizamos este método para encontrar la mejor coincidencia a partir de
las fases conocidas. Ahora necesitamos ejecutar
una condición I para asegurar que haya al menos una fase
conocida con la que comparar. Aquí voy a teclear
carril I dentro de la distancia redonda versus
fase, distancia de fase, mayor a cero, luego
insertar esta condición IP, luego dentro de esta condición IP, necesitamos obtener el índice de distancia
más pequeña para
la mejor coincidencia posible. Así que voy a definir
otra variable, y nuestra variable se
basa undersce match, guión bajo, índice igual a aquí voy a ejecutar un método Voy a empatar distancias de fase
punto Arg medio, éste. Este método va a
devolver el índice de menor distancia para
la mejor coincidencia posible, y lo establecemos en esta variable. Ahora bien, si la coincidencia se encuentra
a partir del índice de mejor coincidencia, entonces necesitamos reemplazar el nombre
desconocido por este nombre de archivo. Quiero decir este nombre de archivo. Si es tranvía entonces
necesitamos llamarlo Tram si es Trudeau entonces
tenemos que llamarlo Trudeo Entonces para eso, voy a usar condición
HIP dentro de
esta condición IP. Tipo I tipo IP coincide
dentro de esta base cuadrada, voy a pasar
mejor índice de coincidencia, luego dentro de esta condición HIP, voy a sobrescribir
la variable name Entonces el nombre se vuelve igual a nombres de fase conocidos dentro
de las bases cuadradas de él, quiero poner el mejor
índice de coincidencia, mejor índice de coincidencia. Si encontró la coincidencia, entonces
va a poner el nombre. Entonces necesitamos dibujar
los rectángulos. Tenemos que dibujar los rectángulos. Alrededor de la cara. Para eso, fuera de esta condición IP. Fuera de esta condición IP, voy a usar el método
rectángulo, similar tit CV rectángulo de dos
puntos. Y dentro de las rondasF voy a proporcionar
el nombre del marco en que marco vamos a dibujar
dibujar los rectángulos,
que Después de eso, necesitamos
definir la posición. Como sabéis, ya
extraemos la posición superior e
inferior de vuelta para
dibujar el rectángulo. Al principio, necesitamos proporcionar
la esquina superior izquierda. Aquí dentro de los tirantes redondos, voy a proporcionar el laboratorio de valor de laboratorio y luego voy a pasar a valor, top A continuación, necesitamos definir
la otra esquina, que es la parte inferior derecha, que es la parte inferior derecha. Dentro de los tirantes redondos, voy a escribir abajo derecho Después de eso, después de eso, necesitamos definir el
color de este rectángulo. Dentro de los tirantes redondos, voy a usar
este código coloreado B, para azul, voy a
usar cero para G para verde, voy a usar
255 y para rojo, voy a usar cero de nuevo. Entonces necesitamos proporcionar el grosor de esta
frontera, que es dos. Después de eso, dibuja el
rectángulo, también, necesitas poner el texto,
el nombre de esta persona. Voy a usar método
put text, algún tipo CV dos punto, poner texto. Dentro de las rondasSF
necesitamos proporcionar el marco de nombre en qué marco
vamos a poner el texto Entonces necesitamos proporcionar
el texto, que es nombre. Después de eso, necesitamos definir la posición para definir
la posición del texto. Aquí dentro de los brrss redondos
vamos a iniciar el texto desde el
lado izquierdo, lift y coma Esto es para Xxs y para los xs, desde el top POP top, voy a menos diez película Autocoma, necesitamos
definir la cara de la fuente. Y aquí, voy
a usar CV dos puntos,
CV dos puntos , fuente hoch
simplex, esta Entonces necesitamos definir
la escala de fuente. Aquí voy a usar 0.8. Después de eso, necesitamos
definir el color. Tenemos que definir qué color
queremos mostrar la fuente, y voy a
usar el mismo color. Entonces usamos cero coma
255 coma cero. De color crema y luego quieren proporcionar el grosor de la
grasa que es dos, es bueno para cada uno, y eso es todo. Después de eso, necesitamos exhibir. Necesitamos mostrar el
marco usando el método IMF. Fuera del bucle de otoño aquí, voy a mostrar la cara. Así empatar CV dos enseñó FMI Mathod. Estoy seguro que dentro de
los vestidos redondos al principio quieren
dar un nombre para la ventana y su nombre
es reconocimiento facial. Y luego Apacmo necesitamos
mostrar el marco, el marco real que
queremos mostrar Y voy a sub este expediente. Entonces ya terminamos. Y antes de ejecutar este
código en mi terminal, también
quiero poner mi propia cara en esta
lista de no fases en esta carpeta. Entonces puse mi foto en esta lista. Esta foto es tomada
de mi webcam, y voy a usar
esta foto también. Ahora tenemos un total de cinco
fases para identificar. Así que vamos a luchar contra el código y establecer este archivo y ejecutar este
código en nuestra terminal. Ahora, vamos a ejecutar el código. Entonces voy a presionar
el botón Ejecutar. Después de presionar el botón de correr, tenemos que esperar algún
tiempo para iniciar la webcam. Después en algún momento,
como pueden ver, inicia mi webcam Como puedes ver, al instante
reconoce mi cara. Crea una
caja cuadrada alrededor de mi cara, y encima de la caja cuadrada, imprime mi nombre, conjunta. Y si trato de
mostrarte algunas otras caras, entonces en mi teclado,
ya imprimo las caras. Y si lo muestro
frente a cámara, como pueden ver, también se
reconocen otras caras. Reconoció a los otros rostros
líderes mundiales como Modi. Y si envío a la siguiente fase, entonces voy a cambiar la cara, como pueden ver, también
reconoció cara del presidente Trump. la misma manera,
si cambio la imagen, entonces se puede ver que reconoció Canadá ex primer ministro
Justin Trudeau Como pueden ver, rastreamos, también reconoció la cara, luego llegar nuestro último
ritmo Georgia Malone También reconoció
sus características especiales, así que estamos muy bien hechos nuestro trabajo. Espero que ahora esté claro para ustedes, cómo podemos construir nuestro propio modelo de
reconocimiento facial usando Open CP Gracias por ver este video. Estén atentos para nuestro próximo proyecto.