Entrena YOLOv7 y corre detección de los objetos que quieras
Vložit
- čas přidán 9. 07. 2024
- En este video vemos como entrenar YOLOv7 para que detecte lo que sea que necesitemos.
La liga con todos los pasos y comandos vistos en el video:
inteligencia.tech/?p=811
- 🔊 Si quieres apoyar al canal 🫶 para que haya mas y mejor contenido (ganar-ganar-ganar jaja) puedes hacerlo por Patreon! 🔊
/ amptech_cc
0:00 - Intro
0:33 - Iconos de soporte
1:10 - Recolección de imágenes
1:47 - LabelImg
2:03 - Etiquetado de imágenes
3:00 - Equipo necesario
3:13 - Clonar repo YOLOv7
3:50 - Crear contenedor de Docker
4:21 - Configuración de contenedor
5:04 - Estructura del folder de imágenes y etiquetas
5:40 - Archivos de configuración
6:30 - Descargar modelo YOLOv7 pre entrenado
6:50 - Entrenamiento del modelo
8:09 - Predicciones en imágenes
9:13 - Predicciones en video
10:00 - Código de las predicciones
10:32 - Outro
#yolov4 #yolov7 #machinelearning #inteligenciaartificial #amptech #mlespanol #machinelearningespanol - Věda a technologie
Estos videos son la polla. Aun que hablo ingles y no tengo problemas con la documentacion, me encanta percibir contenido de calidad en la comodidad del idioma nativo.
A diferencia de un monton de videos de guia y tutoriales, las explicaciones de este man estan a la altura y no son copiados y pegados de las secciones de "Get Started" de las documentaciones de cada tecnologia
Muchísimas gracias por el comentario Felipe! Saludos
Muchas gracias por compartir tus conocimientos!
Excelente explicación muchas gracias
Hola amigo buen video, yo estoy iniciando en este mundo de lo que es la IA por lo que me fue muy fácil comprender tu explicación, gracias por compartir tus conocimientos.
Muy buen video, muchas gracias
Muy bueno, muchas gracias
Gran trabajo como siempre Alex. Acercando el conocimiento a millones de personas que están interesadas en estos valiosos trabajos.
Felicidades!
Muchas gracias Alex!
Excelente Alex. Muy buen video. Felicitaciones!
Muchas gracia!
Increíble el valor que aportas, gracias!
Gracias A ti!
Genial tener más videos tuyos en Internet, Alex. Son muy útiles y motivan a seguir aplicando IA.
Hola Raúl, muchas gracias!
Buen video, gracias. Si puedes hacer otros ejemplos similares se agradece. 👍
Este canal se va hacer muy viral, hermano no dejes de hacer videos.
Psdta: Eres mi Heroe
Esperemos así sea, Muchas gracias por el comentario! Seguiré haciendo varios videos que espero les funcione y les interese mucho
me gusto el video, buena demostracion, bien concisa ñ, saludos desde chile
Muchas gracias Luis!
Justamente lo que me gusta de este canal es que es tecnico y va rapido. Si quieren teoria hay miles ...gracias por tu aporte!
Muchas gracias Claudia!
Muy buenos tutoriales Alex! pase por varios de youtube y los tuyos son los mas precisos para quienes estan comenzando en este mundo. Tenes pensado algun tutotial con yolonas y roboflow?
Increíble video y demostración 😃👍, aun no estoy en el campo de la IA, sin embargo estoy iniciando en la ciencia de datos, para finalmente ingresar al mundo del IA, es una locura como revolucionara al mundo esta tecnología. Saludos, y seguimos pendiente al material que subes. Éxitos!
Gracias Fernando! Mucho éxito con este nuevo aprendizaje.
Me alegra que hayas retomado tu canal
Muchas gracias Adrian! Ya era hora de empezar a generar videos de manera periódica!
Hola, me gustó mucho tu video. Te hago una consulta, una vez que tenga las "coordenadas" del cuadrante que devuelve yolo, puedo hacer calculos de medidas con un aruco? Suponiendo que el aruco aparece en la foto.
El fin sería determinar la medida en metros de un automóvil por ejemplo.
O me recomienda otro procedimiento?
muy bien explicado muchas gracias
Que gusto que te ayudo el video. Saludos!
@@AMPTech Saludos,
10 de 10
Nice, soy web developer pero esto del machine learning me llama mucho la atención. Me gusta como explicas
Muchas gracias! Si quieres echale un ojo a tensorflow JS, que te ayuda a integrar modelos de redes neuronales a java script (no el entrenamiento, solo predicciones). Puede interesarte
@@AMPTech excelente, gracias por el tip :)
Buen dia
es posible hacer la matriz de confucion para las imagenes entreadas y los testeos?
que herramina deberia ver para esto
gracias
crack
Muchas gracias Ricardo!
bro, de casualidad sabes si el programa entrenado lo puedo montar en una tarjeta de desarrollo? como por ejemplo una raspberry
Hola, excelente video! Pregunta, como lo harías pero pasando el modelo de inferencia hacia una Jetson Nano? Gracias.
Fantástico vídeo, esperando uno con la versión que acaba de salir la V8 que parece que han cambiado la forma de instalarla, ahora mediante PIP. Un saludo 👋
Como sacan versiones de YOLO jaja, voy a echarle un ojo! Saludos
Buenas! Primero, agradecerte y felicitarte por los videos que subes, me están ayudando bastante y son muy útiles.
Te quería preguntar, a la hora de entrenar el modelo, uno de los argumentos que se le pasa es el de --img, que supuestamente es el tamaño de las imágenes a entrenar, si no he entendido mal. ¿Esto quiere decir que el dataset de entrenamiento lo tienes que crear con imágenes todas con el mismo tamaño (en el ejemplo de 640x640)? ¿Si es así, hay alguna manera "fácil" de hacerlo?, ya que por ejemplo al sacar el dataset de imagenes de internet cada imagen viene con tamaños distintos? ¿Habría que reescalar y recortar las imágenes?
Muchas gracias y un saludo 👍
Hola Sergio, no te preocupes el re escalado se hace en automático. Tu etiqueta las imágenes en cualquier dimensión, solo de preferencia que las imágenes sean mas grandes en ambas dimensiones de 640, pero si tienes unas cuantas que son menores a 640 tampoco pasa nada
@@AMPTech Gracias!!
Alex gracias por compartir dos comentarios ; si dejas el colab en vez del docker te lo agradeceria y la otra sugerencia es cuando vas a escribir el archivo yaml el orden importe por q ese orden es el de la etiquetas de labelimg y no es trivial
Muy buen punto el de los yaml! Sobre el colab, después lo armaré y lo pondré en este video.
Puedo usar un modelo preentrenado con varios objetos?
Excelente video Alex. Quisiera hacerte una consulta. Veo que la mayoría de los modelos de detención usan el dataset COCO, el cual tiene 80 clases. Hay algún modelo de Yolo v5, v6 o v7 que esté preentrenado para detectar más clases?...Gracias. He aprendido mucho con tus videos.
Hola Roman. En sitios como kaggle hay alguno modelos pre entrenados ya con otras clases, normalmente si quieres mas clases ya es una tarea de cada quien. Lo que si es que te puedes apoyar de datasets ya pre etiquetados. En general COCO es un estándar de la industria y es el dataset sobre el que gran parte de los modelos son entrenados inicialmente y testeados.
@@AMPTech Perfecto. Gracias de nuevo.
holaa muy buen video, gracias por tu contenido me ayuda bastante a aprender, consulta sabes si este modelo se puede hacer correr de forma optima en una raspberry? obviamente no esperando los mismos resultados que en un pc con una tarjeta dedicada, gracias de antemano
No estoy seguro que estos pasos en especifico te funcionen. Lo que pasa con la raspberry a veces no es por la potencia sino que tiene un procesador ARM y muchos códigos de ML están diseñados para correr en CPUx86 (amd o intel)
Muy buen contenido amigo , yo estoy en un proyecto en donde entrene un modelo en docker y tengo que hacer la integracion en la web con el protocolo RTSP en react con tensorflow , pero no tengo del todo claro como hacer de manera interactiva un conteo dinamico para contar en directo la cantidad de personas en una playa
Hola eros, estoy haciendo mi proyecto de grado similar ¿Encontraste documentación de cómo hacer la integración en la web?
algo que veo es que yolov7 su certesa es mucho mas eficiente que versiones anteriores, aun poniendo el umbral en 27 logra identificar el numero correcto de clases en la imagen eso es correcto no ?
Porque este video no tiene 1M de visitas xD, tengo algunas dudas sobre un experimento que estaba haciendo con YOLO, hay alguna evidencia cientifica para saber cuantas imagenes son necesarias para identificar una clase? porque 100 o 1000 o 10000, al final quisiera poder hacer algunas consultas que tenfo del algoritmo en si, como puedo contactarme contigo?
Hola que tal saludos, excelente contenido un suscriptor mas, quería ver si me puede ayudar con un curso o algo que me ayude a ver como puedo hacer un calificador de jitomates o uvas y decir en que estado se encuentran, o que tipo de jitomate o uva es, espero me pueda o puedan ayudar se los agradecería mucho. De antemano gracias
Gracias por este magnífico vídeo. Hay algún mail en el que te pueda contactar para hacerte una consulta profesional?. Mil gracias
Hola amigo, una pregunta como hago para que mis clases estén balanceadas!
Cordial saludo, amigo usted ofrece cursos personalizados? por favor, gracias.
Alex como haría para agregar una nueva clase a un modelo ya entrenado?, necesitaría volver a entrenar con todas las fotos y etiquetas de las clases que ya entrené y adicionar las nuevas?, Muchas gracias
Hola Luis. Si, tienes que entrenar de nuevo el modelo, ahora con las muevas clases mas las que tenías inicialmente
Holaa! Buen contenido. Tengo una pregunta, he implementado yolov7 en una jetson nano y quiero hacer inferencias en tiempo real con una cámara Raspberry Pi V2, no consigo configurar la cámara para esto. Tu sabrías como tengo que hacerlo? Un saludo
Yo estoy intentando hacerlo en una jetson nano orin, me podrias ayudar? tengo problemas con las librerias
Saludos, excelente video, pregunto lo siguiente, el archivo final PT, tendrá el conocimiento heredado del PT preentrenado de YoloV7?
En todas las capas si. Menos en las ultimas que ahora están diseñadas para detectar únicamente lo que entrenaste.
@@AMPTech Excelente, muchas gracias!
Podrias hacer un video con Mask RCNN? Porfavor
Por otro lado, tengo un dataset en CVAT ... En que formato descargo para usarlo en YOLOv7?
Gracias por tu video!
Hola Armando. Claro lo voy a tener en consideración. Con cvat puedes etiquetar en distintos formatos. El de yolo es uno que viene en un txt
Que pasa si tengo imágenes de diferentes tamaños, tengo que poner el tamaño máximo que podría tener o a fuerza todas tienen que ser del mismo tamaño?
Ls imágenes pueden ser de cualquier tamaño. El 640 ignoralo, ese re escalado de las imagenes ocurre automáticamente en el modelo.
Se puede hacer detección y conteo a través de un drone? Específicamente contar la cantidad de ganado que pasa por un porton
Si se puede, para saber cuantas cruzan el portón vas a requerir agregar una barrera “virtual”. Una linea sobre la imagen que cuando las coordenadas de las detecciones la crucen, uncremente o decremente contador.
@@AMPTech genial, exactamente wuiero contar todo lo wue pase por un portón (barrera)
Alex excelente video. Una pregunta, estás abierto a nuevos proyectos como freelancer?
Hola Misal, si por twitter si gustas mandame un mensaje y te comparto mi correo!
@@AMPTech Te escribi por twitter
holaaaa oye tengo una duda mi grafica es de amd que tengo que cambiar que no sea la grafica :)
La tarjeta grafica es lo mas importante al entrenar estos modelos. Si no tienes una NVIDIA, podrías trabajar en Google Colab de manera gratuita con una GPU a tu disposición
Buenas! Mil gracias por el tutorial! ¿Podrías enseñar como hacer este etiquetado y reconocimiento en tiempo real?
En mi video de yolo4 enseño el detalle de como etiquetar. Para procesar video, en source en vez del mp4 pon un cero 0
@@AMPTech no se abre la webcam me aparece este error assert cap.isOpened(), f'Failed to open {s}'
Si quieres ver cómo detecta objetos en el vídeo mientras lo va procesando sin esperar a qué acabe la ejecución cómo hay que hacer?
Les recomiendo ampliamente Kaggle, te da acceso a una GPU buenisima por 34 horas a la semana, ademas tiene varios tutoriales, y es completamente gratis
hola! gracias por el vídeo, me sale todo de manera correcta salvo la predicción en imágenes y vídeos, que no me detecta ningún objeto en las imágenes y no me sale ningún error. En teoría debería salir, ¿alguien me podría ayudar? se lo agradecería mucho :(😔😔
Tengo entendido que YOLO se empezó a bifurcar desde la v3 o v4, que las siguientes fueron desarrollos hechos por terceros, ya que el autor original abandono el proyecto y este fue continuado por la comunidad, es cierto?
Si, y respecto a YOLOv7 hubo un tema porque esta version del video no fue la primera v7 en salir, pero, esta version esta hecha por uno de los colaboradores del primer YOLO, lo que le gano un poco mas de “seriedad”
@@AMPTech Y hay algún sitio donde pueda ver explicado (brevemente aunque sea) que versiones hay y que características nuevas proponen? Estoy empezando y la siguiente parte del curso que estoy haciendo es YOLO y me vendría muy bien tener esa info para experimentar 😅
¿podría detectar los articulos de un frigorifico?
Si con iluminación correcta, sin problema
@@AMPTech genial
What hace medio año estaba usandonel yolov5 tan rapido sacaron la 7
Jajaja ya se… hubo una explosión de YOLOs. De hecho hay dos v7 pero este es el “oficial”
Buenas, en el paso de 6:55 me sale: "Assertion Error: CUDA unavailable, invalid device 0 requested"
¿Sabéis qué puede ser y como solucionarlo? Gracias!
Tienes gpu? Si no tienes entonces pon cpu como variable
@@AMPTech Tengo la 3050 de Nvidia; pero quizás me falta configurar algo para que funcione. Con la CPU pone que me tarda 10 dias en hacerse el training.
@@genisbarberaigutierrez1898 Hola cuantos dias tardo con esa GPU???
Chale !!! Y yo que apenas estoy aprendiendo el bucle for y while 😥
Por algún lugar se empieza! Ánimo
hola Alejandro gracias nuevamente por tu aporte a lo mas actualizado respecto a YOLO V, tengo un percance al momento del aprendizaje me sale el siguiente erro:
RuntimeError: CUDA out of memory. Tried to allocate 100.00 MiB (GPU 0; 4.00 GiB total capacity; 2.10 GiB already allocated; 56.41 MiB free; 2.15 GiB reserved in total by PyTorch) If re
served memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CON
Le cambien de bacht-size a 4 (cambia a "Tried to allocate 2.00 MiB") y no puedo correr el aprendizaje, quisiera saber el problema y que soluciones me puedes brindar , gracias por tu tiempo para hacer esta información, saludos.
NOTA: Estoy entrenando para 4 clases, tengo en train 2800 imágenes , val 1200 imágenes, influye también esto?
Intenta bajar tu batch size aun más, el valor mas pequeño que puedes intentar es 1. Aunque por el ultimo error que te salió imagino que con que lo bajes a 3 tal vez te funciona.
@@AMPTech lo baje a 1 tampoco, observe que estaba con CUDA versión : 11.2 y me baje a la ultima versión y comenzó a corre en batch size 4 el tema es el tiempo que me esta corriendo por época 23 min así que voy a demorar como un día y medio aprox jajaj en fin, puede ser el tiempo que demore por el peso de las imágenes que cada imagen pesa 1.74 MB, en total tengo en peso como 5.30 GB así que ni modo al menos me esta corriendo y eso es lo que cuenta, dato estoy realizando en CONDA.🙂
Me podrías indicar el código completo para activar la webcam para reconocimiento en tiempo real por favor.
La verdad que vas tan rápido que no se te entiende nada, pero bueno veo que a varios les gusta. Me gustaria que hicieras este tipo de videos más despacio y explicando más cosas. Gracias por el contenido.
Gracias por el comentario, lo voy a tomar en cuenta, justo quiero encontrar un buen punto y con este video experimenté hacerlo mas rápido.
Saludos!
@@AMPTech muchas gracias a ti
No te quiero desanimar, podrias hacer un curso de varios segmentos cortos sobre como usar pytorch y tensorflow, a mi me interesan. Animo
Si, los tengo en mi lista de próximos videos!
@@AMPTech muchas gracias ❤🤗
Ojala hubiera explicación para hacerlo en windows eso de clonarlo :/
O soy muy idiota y no veo como hacerlo xD
en windows puedes usar wsl para realizar el proceso
@@omarcucu7979 gracias por indicarlo.. Pero lo que encontré es que se necesita versiones superiores a windows home
Entonces ni modo :/
@@santiagocabascango6514 recién lo hice en win11, todo con wsl.
Lo único que me ha dado problema es usar video en tiempo real, ya que da un error al activar la cámara web, pero de ahí en más todo funcionó correctamente.
a ver, yo solo quiero tener un vehiculo especifico, y poder fotografiara cada parte de este mismo (No quiero un millon de fotos de google, solo de mi vehiculo y modelo especifico), para cuando necesite cambiar una pieza (principalmente carroceria) y solo con pasar la camara, reconocer la pieza a remplazar, reconociendo su nombre y lugar en donde se encuentra en la bodega. Eso me haria ganar mucho tiempo. Alguien comprende mi idea?
Se entiende tu idea, se tiene que entrenar etiquetando las partes específicas a reconocer
que lastima que vas rapido en el video y no das el paso a paso mas profundo, ejemplo no se como abrir el LabelImg
La próxima vez explique más rápido para que no se le escape más detalles
Necesariamente debo tener envidia?, pq me pide tener CUDA
Podemos detectar un mentiroso? 😆😆
Pues imagino que lo que podrías hacer sería detectar ciertos rasgos o movimientos que la gente tiene al mentir. Pero imagino que no es algo tan facil de hacer.
Una consulta tengoel siguiente error al mandar a entrenar
File "C:\ProgramData\Anaconda3\lib\site-packages\torch\utils\data\dataloader.py", line 1120, in _try_get_data
data = self._data_queue.get(timeout=timeout)
File "C:\ProgramData\Anaconda3\lib\queue.py", line 178, in get
raise Empty
_queue.Empty
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "train.py", line 616, in
train(hyp, opt, device, tb_writer)
File "train.py", line 336, in train
for i, (imgs, targets, paths, _) in pbar: # batch -------------------------------------------------------------
File "C:\ProgramData\Anaconda3\lib\site-packages\tqdm\std.py", line 1178, in __iter__
for obj in iterable:
File "C:\Users\Adrian\Documents\Vision-por-Computador\Proyecto Interciclo\Yolov7\yolov7\utils\datasets.py", line 110, in __iter__
yield next(self.iterator)
File "C:\ProgramData\Anaconda3\lib\site-packages\torch\utils\data\dataloader.py", line 628, in __next__
data = self._next_data()
File "C:\ProgramData\Anaconda3\lib\site-packages\torch\utils\data\dataloader.py", line 1316, in _next_data
idx, data = self._get_data()
File "C:\ProgramData\Anaconda3\lib\site-packages\torch\utils\data\dataloader.py", line 1272, in _get_data
success, data = self._try_get_data()
File "C:\ProgramData\Anaconda3\lib\site-packages\torch\utils\data\dataloader.py", line 1133, in _try_get_data
raise RuntimeError('DataLoader worker (pid(s) {}) exited unexpectedly'.format(pids_str)) from e
RuntimeError: DataLoader worker (pid(s) 7540) exited unexpectedly
Ayuda