Trackeo de Objetos con Yolov8 y SORT | Object Tracking

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ต.ค. 2024

ความคิดเห็น • 33

  • @RodrigoPrieto-t3m
    @RodrigoPrieto-t3m หลายเดือนก่อน

    Amigo, tus explicaciones, son de un nivel superlativo, llevo 4 meses inserto en computer Vision, y me has aclarado más de una duda, felicitaciones!

  • @yormanlopez8553
    @yormanlopez8553 8 วันที่ผ่านมา

    magnifico contenido. deberias plantearte un curso asi sea de paga con vision artificial. no hay mucho contenido en español para ser exacto. te especializas en CV? es tu campo? gracias

  • @AlexMartin-vi4eq
    @AlexMartin-vi4eq 9 หลายเดือนก่อน

    Demasiado interesante y bien explicado!

    • @ferneutron
      @ferneutron  9 หลายเดือนก่อน

      Muchas gracias!

  • @octacba84
    @octacba84 6 หลายเดือนก่อน

    Excelente explicacion, muchas gracias por el ejemplo y el codigo

  • @manuelalexandermorales9244
    @manuelalexandermorales9244 8 หลายเดือนก่อน

    Gracias por el video 👍🏻

  • @joseleonardosanchezvasquez1514
    @joseleonardosanchezvasquez1514 4 หลายเดือนก่อน

    Realmente bueno gracias

  • @darylcandianina
    @darylcandianina ปีที่แล้ว

    Muchas gracias por el video. Estoy intentando filtrarlos también por el tipo de clase para realizar seguimiento de vehículos. Igualmente gracias!

    • @ferneutron
      @ferneutron  ปีที่แล้ว

      ¡Que tal @darylcandianina8414!
      Genial. Como lo comentas, puedes hacer multi-tracking o también, hacer tracking de la o las clases que definas. Solo considera que, mientras más objetos estés trackeando, posiblemente el performance de la aplicación disminuya ligeramente.
      ¡Saludos!

  • @angelgabrielchavez1750
    @angelgabrielchavez1750 2 หลายเดือนก่อน

    Esta súper interesante, soy nuevo y me estoy aventurando a este nuevo mundo, crees que es posible que pueda descartar una persona por su vestimenta es decir no darle seguimiento?

    • @ferneutron
      @ferneutron  2 หลายเดือนก่อน

      Que tal Angel!
      Lo que puede suceder es que se pierda el rastreo al momento de haber una oclusión, en este momento puede surgir un "re-id" por parte de Sort. Como tal, por vestimenta, no he experimentado un cambio de id.
      Saludos y gracias por tu comentario 🤜🤛!

  • @jorgedominguez8440
    @jorgedominguez8440 5 หลายเดือนก่อน

    execelnte video muchas gracias, una duda para leer la medida de una llanta desde su costado que recomiendas?

  • @octacba84
    @octacba84 6 หลายเดือนก่อน +1

    Hola estoy aprendiendo de YOLO, y estoy aventurandome con el codigo, y estoy utilizando este tuto como puntapie de arranque, asi que muchas gracias.
    Consulta:
    Observo que el modelo detecta multiples objetos en los videos, entonces lo que pense es que quiero, como en el ejemplo, que el modelo detecte solo la clase person.
    defini el parametro en la inferencia.
    results = model(frame, classes=['person'], stream=True)
    pero al entrar el le bloque FOR (for res in results:)
    arroja un error:
    for res in results:
    File "C:\Users\turoc\.conda\envs\yolov8v01\lib\site-packages\torch\utils\_contextlib.py", line 35, in generator_context
    response = gen.send(None)
    File "C:\Users\turoc\.conda\envs\yolov8v01\lib\site-packages\ultralytics\engine\predictor.py", line 255, in stream_inference
    self.results = self.postprocess(preds, im, im0s)
    File "C:\Users\turoc\.conda\envs\yolov8v01\lib\site-packages\ultralytics\models\yolo\detect\predict.py", line 25, in postprocess
    preds = ops.non_max_suppression(
    File "C:\Users\turoc\.conda\envs\yolov8v01\lib\site-packages\ultralytics\utils\ops.py", line 265, in non_max_suppression
    x = x[(x[:, 5:6] == torch.tensor(classes, device=x.device)).any(1)]
    ValueError: too many dimensions 'str'
    entiendo que el problema se da en que al limitar la inferencia a una clase se puede dar que el modelo no detecta objeto en el frame dejando results como str o incompleto o vacio.
    como puedo manejar este problema si results parece no contener informacion.
    intente agregar un if antes del bloque for y dentro del bloque for pero no he tenido exito.
    Muchas gracias por el video, tu tiempo y la enseñanza.

    • @octacba84
      @octacba84 6 หลายเดือนก่อน +1

      lo resolvi, tenia que pasar el puntero del array results = model(frame, classes=[0], stream=True) #, classes=['person']
      😅😅

  • @JoseFernandoGarciaV
    @JoseFernandoGarciaV 5 หลายเดือนก่อน

    Hola mira que estuve provando pero mi codigo presenta problemas, cuando instalo Lap, que es necesario para usar Sort. Quisiera saber que versión de numpy, python. Estas usando es que para la instación de Lap, se necesita usar el paquete numpy.distutils._msvccompiler y ese es numpy distutils es deprecated, ya no se implementa. Muchas gracías

  • @didimoescobar2247
    @didimoescobar2247 ปีที่แล้ว

    Excelente video !!!!, deseo preguntar que plugin utilizas para mejorar el aspecto de la consola ...

    • @ferneutron
      @ferneutron  ปีที่แล้ว +1

      ¡Que tal @didimoescobar2247 !
      Utilizo "Oh My Zsh". Acá el link: ohmyz.sh/

  • @Black.ed.mma.
    @Black.ed.mma. ปีที่แล้ว

    Excelente video, me parece genial lo que realizas. Recientemente estoy ingresando al mundo del Machine Learning y agradeceria cualquer consejo, comentario que desde la perspectiva de alguein que ya se encuentra en este mundo pudiera darle a los nuevos desarrolladores, gracias de ante mano. Tambien si me lo permites quisiera hacer una pequena pregunta, en el caso de la complejidad algoritmica y uso de recursos como podria ver la viabilidad, dado que vi que la deteccion parecia tener un pequeno delete en comparacion con la velocidad real, de ante mano te agradezco, excelente dia.

    • @ferneutron
      @ferneutron  ปีที่แล้ว

      ¡Hola @Black.ed.mma.!
      Muchas gracias por tu comentario :)
      Un par de consejos que podría darte:
      - Sigue a gente que comparte teoría, práctica, news, etc. Con respecto a ML o IA en general. Por ejemplo, yo sigo a twitter.com/svpino, siempre comparte contenido muy bueno.
      - Práctica mucho. Trata de hacer proyectos proyectos por tu cuenta propia. Desde lo básico (EDAs), hasta entrenar y desplegar modelos. Eso te ayudará a conocer el end-to-end básico de los modelos ML.
      Bonus: Te recomiendo este libro: www.microsoft.com/en-us/research/uploads/prod/2006/01/Bishop-Pattern-Recognition-and-Machine-Learning-2006.pdf
      A mi me sigue ayudando a clarificar dudas, conocer fundamentos, etc.
      Ojalá te sirvan :)
      ¡Saludos!

  • @carloseduardohernandezinzu357
    @carloseduardohernandezinzu357 ปีที่แล้ว +1

    Hola, el archivo filterpy.kalman donde se encuentra?, en el github nomás encontré sort y tracking :(

    • @ferneutron
      @ferneutron  ปีที่แล้ว +1

      ¡Que tal Carlos!
      Es una librería: `pip install filterpy`
      Justo aquí la referencia directa de la fuente de SORT con respecto a los requerimientos: github.com/abewley/sort/blob/master/requirements.txt
      ¡Espero te ayude!

    • @carloseduardohernandezinzu357
      @carloseduardohernandezinzu357 ปีที่แล้ว +1

      @@ferneutron Gracias :D

  • @didimoescobar2247
    @didimoescobar2247 ปีที่แล้ว +1

    sabes en el minuto 07:04 cuando ejecuto "python -B tracking.py" no levanta el video, es decir, no lo muestra por pantalla.... existe alguna otra libreria que deba añadir, estoy corriendo el proceso en un entorno virtual con python 3.9.13

    • @didimoescobar2247
      @didimoescobar2247 ปีที่แล้ว +1

      leyendo documentación logre dar solución. Este problema solo se dio al usar virtualenv para manejara paqueterías independientes en mi sistema global....

  • @jucedica1
    @jucedica1 ปีที่แล้ว

    Interesante tu contenido soy nuevo y tengo ideas seria bueno incluirle telemetria velocidad de movimiento distancias de recorrido se podra 😊

    • @ferneutron
      @ferneutron  ปีที่แล้ว

      ¡Muchas gracias por tu comentario!
      Justo, creo que un tema super interesante que se puede trabajar arriba de una aplicación de -rastreo de objetos- es la extracción de métricas del dominio de la imagen. Ya estaré preparando algo relacionado para los próximos videos 🙂

  • @guillermovc
    @guillermovc ปีที่แล้ว

    Sabes si tiene alguna variante pra funcionar con TensorRT?

    • @ferneutron
      @ferneutron  ปีที่แล้ว

      ¡Que tal @guillermovelazquez3211 !
      Así es.
      - Para Yolov5, puedes exportar usando torchscript
      - Para Yolov8, desde ultralitycs puedes bajar el compilador: docs.ultralytics.com/yolov5/tutorials/model_export/
      Solo un consejo, cuando compiles a TensorRT, el .engine que generes es dependiente de la arquitectura en donde lo compilaste, es decir, si lo "copias y pegas en otro gpu", posiblemente genere errores. Es decir, trata de compilarlo en la maquina en donde lo utilizarás.
      ¡Saludos!

  • @laranga7735
    @laranga7735 ปีที่แล้ว

    Gran vídeo. Tengo una pregunta a ver si alguien me pudiese ayudar. En el supuesto de que esté trackeando diferentes clases de objetos, hay alguna forma al acabar de procesar un vídeo de que pueda contabilizar cuantos objetos se han trakeado de cada clase, es decir cuantos objetos diferentes se han detectado en el vídeo? Por ejemplo, imaginando que en un vídeo trackeo personas y perros quiero que se contabilice cuantas personas diferentes se han visto en el vídeo y cuantos perros. No sé si hay alguna forma de hacer algo similar.

    • @ferneutron
      @ferneutron  ปีที่แล้ว

      ¡Que tal @laranga7735!
      Se puede. Para lograr contar el total de objetos de la clase "x" que aparecen en el video, tendrías que inicializar tal variable fuera del iterador que lee el video, por ejemplo:
      count_object = 0
      while read_video():
      # acá iría, por ejemplo: yolo + sort
      # luego:
      count_object += 1
      print(f"Numero de veces que objeto apareció en el video: {count_object}")
      Espero te funcione :)

  • @AlfredoGonzalez-qj4ng
    @AlfredoGonzalez-qj4ng ปีที่แล้ว

    Excelente video! me gustaría ver un video de trackeo de objetos mas robusto como mencionas, y tambien ese trackeo dibujarlo por zonas, por ejemplo desde una vista un poco mas arriba segmentar los lugares de video por zonas (poligonos) y ver cuando la persona con el ID: x estuvo en la zona "y", cuanto duro, y a que zonas paso después dentro del video, es como un análisis de flujo de la gente solamente usando video, se podrá?

    • @ferneutron
      @ferneutron  ปีที่แล้ว +2

      ¡Gracias!
      Claro, en algún momento llegué a realizar alguna aplicación similar a lo que comentas, un tracking de personas por zonas para validar en donde ha estado cada persona.
      Buscaré algún video libre que sea ad-hoc para realizar esta aplicación y con gusto hacemos el video. Creo que la parte interesante está en el heurístico arriba del tracker y el detector.
      Agrego este tema a mi lista de "to-do".
      ¡Saludos!