DETECCION Y SEGUIMIENTO DE CARROS Y MOTOS CON VISION ARTIFICIAL | Seguimiento de Objetos con Python

Aprende e Ingenia
17 Jul 202119:53

Summary

TLDREn este video tutorial, Diego Sánchez enseña cómo crear un detector y seguidor de objetos, específicamente para carros y motos, que puede adaptarse a otros objetos y situaciones. Se muestra el funcionamiento del programa, la selección de una zona de interés y la aplicación de un algoritmo de detección y seguimiento. El video incluye pasos detallados para implementar el sistema, desde la captura de imágenes estáticas con una cámara, hasta la programación del seguidor y el ajuste de parámetros para un rendimiento óptimo en entornos controlados como parqueaderos o entradas de edificios.

Takeaways

  • 😀 El video muestra cómo crear un detector y seguidor de objetos, específicamente para carros y motos, que se puede adaptar a otros objetos como humanos.
  • 👀 Se destaca la importancia de tener una cámara estática para el correcto funcionamiento del algoritmo de detección y seguimiento.
  • 🛠️ El script proporciona un paso a paso para implementar un detector de carros en lugares como parqueaderos, entradas de centros comerciales y residenciales.
  • 📍 Se selecciona una zona de interés en la carretera donde todos los objetos a detectar deben pasar para mejorar la eficacia del seguimiento.
  • 🎨 Se utiliza una técnica de máscara para dejar el fondo negro y los objetos en blanco, facilitando su detección.
  • 🔢 El seguidor de objetos cuenta y numera los objetos detectados, como motos y carros, para su monitoreo y control.
  • 👨‍💻 Se detalla la programación necesaria para crear el seguidor, incluyendo la inicialización de variables y el uso de librerías como márquez para operaciones matemáticas.
  • 🔄 Se implementa un algoritmo de detección que utiliza un 'sustractor de fondo' para diferenciar los objetos en movimiento del fondo estático.
  • 📏 Se extraen los contornos de los objetos detectados y se filtran aquellos que no cumplen con un tamaño mínimo para evitar falsos positivos.
  • 📹 Se sugiere ajustar los parámetros del algoritmo, como el umbral de detección y el history, según las condiciones específicas del entorno de aplicación.
  • 👋 El video concluye con una demostración del seguidor funcionando y una invitación a apoyar el canal para recibir más contenido útil.

Q & A

  • ¿Qué es lo que se enseña en el video sobre la detección y seguimiento de objetos?

    -El video enseña cómo hacer un detector y seguidor de objetos, específicamente aplicado a carros y motos, que puede ser utilizado en diferentes escenarios como parqueaderos, entradas de centros comerciales o residenciales.

  • ¿Por qué es importante que la cámara esté estática para el algoritmo de detección y seguimiento?

    -La cámara debe estar estática para que el algoritmo de detección por diferencia de fondo funcione correctamente, ya que este algoritmo se basa en la comparación de la imagen actual con el fondo establecido.

  • ¿Qué es una 'mascarilla' en el contexto de detección de objetos?

    -Una máscara es una técnica utilizada en la detección de objetos que deja el fondo en negro y deja los objetos en blanco, facilitando su identificación y seguimiento.

  • ¿Cómo se selecciona la zona de interés para la detección y seguimiento de objetos?

    -Se selecciona una zona de interés donde deben pasar todos los objetos a ser detectados, como un pasaje obligatorio para carros y motos en una carretera, para optimizar el rendimiento del algoritmo.

  • ¿Qué es el 'sustractor de fondo' y cómo se utiliza en el algoritmo?

    -El sustractor de fondo es un método que identifica las diferencias entre el fondo establecido y la imagen actual, dejando el fondo en negro y los objetos en blanco para su detección.

  • ¿Qué es un 'contorno' en el contexto de procesamiento de imágenes y cómo se relaciona con la detección de objetos?

    -Un contorno es la forma o borde de un objeto detectado en una imagen. En el procesamiento de imágenes, se extraen estos contornos para identificar y dibujar los límites de los objetos.

  • ¿Cómo se eliminan los ruidos o detecciones falsas en el proceso de detección de objetos?

    -Se eliminan los ruidos mediante la aplicación de umbrales y el uso de filtros que solo dejan objetos de un tamaño mínimo, ignorando los pequeños ruidos que podrían ser sombras o elementos irrelevantes.

  • ¿Qué es el 'seguimiento' en el contexto de este video y cómo se realiza?

    -El seguimiento es el proceso de identificar y rastrear los objetos detectados a lo largo del tiempo. Se realiza almacenando las coordenadas centrales de los objetos y asignándoles una identificación única para su conteo y seguimiento.

  • ¿Cómo se ajustan los parámetros del algoritmo según el entorno de aplicación?

    -Los parámetros del algoritmo, como el umbral de detección y la historia del sustractor de fondo, se ajustan según el entorno de aplicación para optimizar la detección y minimizar las detecciones falsas.

  • ¿Qué es la 'zona de interés' y por qué es fundamental en el algoritmo de detección y seguimiento?

    -La zona de interés es un área específica de la imagen donde se esperan que los objetos a detectar pasen. Es fundamental ya que el algoritmo se centra en esta zona para mejorar la eficiencia y precisión de la detección.

Outlines

00:00

😀 Introducción al Detector y Seguidor de Objetos

El video comienza con una introducción al proyecto de un detector y seguidor de objetos, específicamente para carros y motos, por Diego Sánchez. Se menciona que el algoritmo también puede aplicarse a humanos y se da un vistazo al funcionamiento del programa. Se destaca la efectividad del algoritmo en un ambiente descontrolado y se sugiere que su rendimiento será mejor en lugares como parqueaderos o entradas a centros comerciales.

05:00

🔍 Preparación y Configuración del Detector de Objetos

Se describe el proceso de configuración del detector de objetos, enfatizando la importancia de tener una cámara estática para un correcto funcionamiento. Se detalla la creación de una clase para el seguidor y se discuten las variables iniciales como el contador de identificación y los puntos centrales de los objetos. Además, se menciona la necesidad de ajustar los parámetros del algoritmo según el entorno en el que se implemente.

10:01

📐 Selección y Procesamiento de la Zona de Interés

El script se centra en cómo seleccionar y procesar una zona de interés para la detección de carros y motos. Se sugiere la necesidad de no procesar toda la imagen para evitar un gran desgaste en recursos. Se detalla el uso de un sustractor de fondo para dejar el fondo en negro y los objetos en blanco, y se establece un umbral para eliminar sombras y ruido. Luego, se extraen los contornos de los objetos y se almacenan en una lista para su posterior seguimiento.

15:01

🚗 Implementación del Seguimiento y Detección de Objetos

Se explica cómo se implementa el seguimiento de los objetos identificados. Se describe el proceso de recibir las coordenadas de los objetos, extraer el punto central y asignar un número de identificación si el objeto no ha sido detectado anteriormente. También se menciona el uso de un algoritmo para dibujar rectángulos alrededor de los objetos y cómo se muestran en pantalla con su correspondiente número de identificación. Finalmente, se discute la visualización de la zona de interés y la máscara de detección al final de la captura.

Mindmap

Keywords

💡Detector de objetos

El detector de objetos es una técnica utilizada en la informática de la visión para identificar y localizar objetos en una imagen o secuencia de imágenes. En el video, se utiliza para detectar carros y motos en un entorno de carretera, lo cual es fundamental para el seguimiento y análisis de su movimiento. Se menciona que el detector funciona bien en ambientes controlados, como parqueaderos o entradas a centros comerciales.

💡Seguidor de objetos

El seguidor de objetos es un proceso que permite rastrear el movimiento de un objeto una vez que ha sido detectado. En el contexto del video, se aplica para contar y seguir los carros y motos que entran y salen de una zona de interés, lo que es esencial para aplicaciones como el monitoreo de tráfico o el control de acceso.

💡Zona de interés

La zona de interés se refiere a una área específica de una imagen o secuencia de vídeo donde se esperan que ocurran ciertas actividades o apariciones de objetos. En el script, la zona de interés es donde los carros y las motos pasan, y es la región en la que se aplican los algoritmos de detección y seguimiento.

💡Máscara

Una máscara en procesamiento de imágenes es una técnica que se utiliza para aislar ciertas áreas de interés o para suprimir partes de una imagen. En el video, se crea una máscara para dejar el fondo negro y dejar los objetos en blanco, lo que facilita su detección y seguimiento.

💡Centro de objeto

El centro de objeto se refiere a la posición central de un objeto detectado. En el script, se almacenan las posiciones centrales de los objetos para su seguimiento y conteo, lo cual es crucial para identificar y rastrear a los carros y motos individuales.

💡Contador de identificación

El contador de identificación es un mecanismo para asignar un número único a cada objeto detectado, lo que permite diferenciar y rastrear individualmente a cada uno. En el video, se utiliza para numerar a los carros y motos que entran en la zona de interés.

💡Sustractor de fondo

El sustractor de fondo es un algoritmo que se utiliza para eliminar el fondo de una imagen y destacar los objetos en movimiento. Es fundamental en el script para crear la máscara que permite la detección de los objetos en la zona de interés.

💡Umbral

El umbral es un valor utilizado para diferenciar entre los píxeles que pertenecen a un objeto y aquellos que no. En el video, se utiliza para definir los límites entre los objetos y el fondo, ayudando a crear la máscara y a suprimir el ruido en la detección de objetos.

💡Contornos

Los contornos son las formas o bordes de los objetos en una imagen. En el script, se extraen los contornos de los objetos detectados para identificar sus formas y tamaños, lo que es importante para filtrar los objetos de interés y suprimir los ruidos.

💡Área de los contornos

El área de los contornos se refiere a la extensión de un contorno en la imagen. Se utiliza en el video para filtrar los contornos según su tamaño, permitiendo solo aquellos que corresponden a objetos grandes, como motos y carros, y excluyendo los ruidos o detecciones falsas.

💡Ruido

El ruido en el procesamiento de imágenes se refiere a cualquier detalle o variación que no corresponde a un objeto real y que puede interferir con la detección y el seguimiento. En el video, se busca suprimir el ruido mediante el uso de umbrales y el filtrado de áreas de contornos para mejorar la precisión de la detección de objetos.

Highlights

Introducción a la creación de un detector y seguidor de objetos, específicamente para carros y motos.

Explicación de cómo el detector y seguidor de objetos puede ser aplicado en diferentes escenarios, como parqueaderos o entradas a centros comerciales.

Importancia de que el entorno sea lo más controlado posible para el correcto funcionamiento del algoritmo.

Demostración del funcionamiento del programa con una carretera de ciudad como escenario.

Proceso de selección de una zona de interés para la detección de objetos en movimiento.

Uso de máscara para destacar objetos en blanco sobre un fondo negro y facilitar su detección.

Creación de un seguidor para contabilizar y rastrear objetos detectados.

Consideraciones sobre la estática de la cámara para el correcto funcionamiento del detector de objetos.

Detalles sobre la implementación del algoritmo de detección y seguimiento en un ambiente controlado.

Importancia de ajustar los parámetros del algoritmo según el entorno y las necesidades específicas.

Proceso de lectura de vídeo y configuración de la resolución para la detección de objetos.

Uso de un sustractor de fondo para mejorar la detección de objetos en movimiento.

Selección de una zona de interés y aplicación de detección en esa área específica.

Aplicación de umbrales para eliminar sombras y ruido en la detección de objetos.

Extracción de contornos y su uso para identificar objetos de interés en la zona de interés.

Filtrado de contornos por área para eliminar ruidos y detecciones falsas.

Uso de la biblioteca de CO2 y el rastreador creado para la implementación del detector y seguidor.

Proceso de seguimiento y asignación de identificación a nuevos objetos detectados.

Mostrar el resultado final del seguimiento y detección de objetos en la zona de interés.

Conclusión del tutorial y esperanza de que la información sea útil para proyectos futuros.

Transcripts

play00:00

bueno gente bienvenidos ahora de más de

play00:02

este canal aprende ingenian desde

play00:04

ablación diego sánchez y el día de hoy

play00:05

les voy a enseñar cómo podemos hacer un

play00:07

detector y un seguidor de objetos en

play00:09

este caso aplicado a carros y motos les

play00:12

voy a dar el paso a paso de lo que deben

play00:14

de hacer para que usted lo pueden

play00:16

aplicar en sus proyectos para un

play00:18

detector de carros en un parqueadero en

play00:21

la entrada del centro comercial la

play00:23

entrada junto residencial o un detector

play00:25

de personas en un almacén comercial así

play00:30

que no me enrollo más y comencemos con

play00:32

el vídeo

play00:40

bueno gente como hago normalmente

play00:42

primero les voy a mostrar el

play00:44

funcionamiento del programa y esto es

play00:46

pasamos a toda la parte de la

play00:47

programación y de cómo hacer este

play00:50

algoritmo así que vamos a empezar bueno

play00:53

gente aquí ya en pantalla tenemos el

play00:55

algoritmo funcionando del sitio de

play00:57

interés que nosotros elegimos para

play00:59

detectar los carros y las motos este en

play01:02

realidad es un detector y seguidor de

play01:05

objetos que aplicamos a carros y motos

play01:07

pero usted lo puede aplicar a humanos a

play01:10

lo que ustedes necesiten si este es un

play01:13

ambiente bastante descontrolado por

play01:15

decirlo alguna manera porque es una

play01:17

carretera de una ciudad pero si ustedes

play01:20

tienen por ejemplo un parqueadero la

play01:22

entrada a un centro comercial o la

play01:24

entrada a un conjunto residencial pues

play01:27

les va a funcionar mucho mejor porque es

play01:28

ganar cuenta de que el algoritmo

play01:30

funciona bastante bien que es lo primero

play01:33

que debemos de tener en cuenta como

play01:34

vemos en pantalla tenemos una zona

play01:36

interés nosotros tenemos todo un vídeo

play01:38

pero vamos a seleccionar una zona de

play01:40

interés que es por donde deben de pasar

play01:42

todos los carros y las motos en este

play01:44

caso

play01:45

ay nos da una interés lo que vamos a

play01:47

hacer es extraer una máscara que lo que

play01:50

hace es dejarnos el fondo negro y

play01:52

nuestros objetos quedan en blanco así es

play01:55

la forma en la que los detectamos una

play01:58

vez los detectamos debemos de crear un

play01:59

seguidor para irlos contabilizando así

play02:02

que veamos el funcionamiento ahí viene

play02:04

la primera moto en el primer objeto

play02:07

segunda moto 23

play02:09

ahí tenemos una cuarta moto tenemos el

play02:12

quinto el carro que pasó sexto séptimo

play02:14

el quinto es el carro que salió de la

play02:16

derecha séptimo aquí tenemos un octavo

play02:20

noveno décimo once como pueden ver él lo

play02:25

sigue bastante bien lleva bastante bien

play02:26

el conteo de nuestros carros y también

play02:30

debe tener deben de tener en cuenta que

play02:32

bueno es un ambiente que no está para

play02:33

nada controlado si se juntan mucho los

play02:36

los objetos pues pueden fallar un poco

play02:38

el algoritmo así que ahorita sí vamos a

play02:41

ver cómo se hace este algoritmo

play02:45

bueno gente lo primero que debemos de

play02:47

hacer es dirigirnos hacia el sitio dónde

play02:50

queremos realizar la detección y el

play02:51

seguimiento de los objetos en este caso

play02:54

como queremos detectar y seguir carros

play02:55

bueno vamos a dirigir a una avenida

play02:57

bastante concurrida de la ciudad esto

play02:59

con el fin de mostrarles que puede

play03:01

funcionar este algoritmo puede funcionar

play03:03

en ambientes bastantes controlados ya

play03:06

que si usted lo piensa en implementar en

play03:08

ambientes más controlados como pueden

play03:11

ser parqueaderos entradas centros

play03:13

comerciales entradas a conjuntos

play03:16

residenciales pues puede funcionar mucho

play03:18

mejor así que vamos a ver qué tal nos va

play03:20

bueno gente ya estamos aquí en el sitio

play03:23

donde vamos a captar todos los carros y

play03:25

las motos y nos vamos a subir a ese

play03:27

puente que está por acá con el fin de

play03:29

tener una mejor vista tienen que

play03:31

recordar algo muy importante y es que la

play03:33

cámara tiene que estar totalmente

play03:34

estática por el algoritmo no va a

play03:36

funcionar así que vamos a ver qué tal

play03:38

nos bajó

play03:39

[Música]

play03:44

a

play03:48

bueno gente teniendo en cuenta todas las

play03:50

recomendaciones anteriores de cómo vemos

play03:52

de captar las imágenes para hacer esta

play03:54

detección recuerden que la cámara de

play03:56

estar totalmente quieta si no no va a

play03:58

funcionar así que lo primero que vamos a

play04:00

hacer es mirar estos dos archivos punto

play04:03

país en uno tenemos nuestro seguidor o

play04:06

rastreador y en el otro pues tenemos ya

play04:08

todo implementado el detector con el

play04:09

seguidor entonces importamos la librería

play04:12

márquez para hacer algunas operaciones

play04:13

matemáticas y creamos una clase cierto

play04:17

este va a ser nuestro rastreador

play04:18

seguidor como se le quieran llamar donde

play04:21

pues inicialmente lo que hemos de hacer

play04:22

es inicializar las variables en centro

play04:25

puntos es donde vamos a almacenar las

play04:27

posiciones centrales de los objetos para

play04:30

que para qué vamos a almacenar las

play04:31

posiciones para saber de qué ese objeto

play04:34

ya lo detectamos sí eso lo vamos a ver

play04:36

más adelante y lo otro es el contador de

play04:39

ideas de identificación como tal

play04:41

entonces el contador simplemente es el

play04:43

numerito que aparece arriba del del

play04:45

objeto en este caso carros y motos pues

play04:47

contándole básicamente que inicializa

play04:50

mos en uno porque pues no vamos a tener

play04:52

un objeto número cero por decirlo alguna

play04:54

manera el mayor objeto

play04:55

0

play04:56

así que bueno aquí empezamos con el

play04:58

rastreo lo primero que hacemos es crear

play05:00

una lista donde almacenamos los objetos

play05:02

identificados entonces nosotros por

play05:05

medio del detector le entregamos los las

play05:09

coordenadas de ese objeto a este a esta

play05:13

función como tal donde lo que hacemos es

play05:15

obtener el punto central de ese nuevo

play05:18

objeto una vez obtenemos el punto

play05:20

central de ese nuevo objeto pues debemos

play05:22

de mirar si este objeto ya fue detectado

play05:24

que es lo que les decía concentro puntos

play05:26

ahí debemos de mirar si ya fue detectado

play05:28

entonces esto es muy sencillo como

play05:30

pueden observar simplemente por medio de

play05:32

un force pasamos por toda la lista si

play05:35

pasamos por toda la lista y simplemente

play05:37

miramos si el objeto fue detectado o no

play05:40

detectado

play05:41

entonces en caso de que ya fue detectado

play05:44

pues simplemente no le vamos a asignar

play05:46

un nivel nuevo una identificación una

play05:48

identificación nueva es decir que no

play05:50

vamos a aumentar el contador de ideas

play05:52

que es este que está aquí y simplemente

play05:54

vamos a dejar todo tal cual está

play05:57

pero en caso de que el nuevo objeto sea

play06:00

un nuevo objeto valga la redundancia sí

play06:04

entonces ahí sí lo que tenemos que hacer

play06:06

es aumentar nuestro contador almacenar

play06:10

nuestras coordenadas en el kissinger

play06:13

y asignamos uribe es básicamente lo que

play06:15

tenemos aquí como eres muy básico es

play06:17

cierto pero como pudieron observar

play06:19

funciona bastante bien después lo que

play06:22

hacemos es limpiar la lista de puntos

play06:25

centrales de lucidez que ya no se están

play06:27

usando porque pues esto nos consume de

play06:30

recursos y eso es lo que no queremos

play06:32

gente simplemente asignamos nada como

play06:35

para decidir si es lo que estamos

play06:37

haciendo hace asignar nada a esa lista

play06:40

de objetos y de que la que tenemos aquí

play06:42

a revista esta lista

play06:43

digamos que la vaciamos por por decirlo

play06:46

de alguna manera lo mismo con centro

play06:48

puntos y lo mismo con con los new center

play06:52

point ahora lo que debemos de hacer es

play06:55

entregar estos objetos y de es decir

play06:57

entregamos pues estas coordenadas que ya

play07:00

fueron almacenadas pero que después

play07:02

fueron base hadas quiere decir que

play07:04

entregamos las coordenadas y las

play07:06

limpiamos de una vez para que no se nos

play07:08

pegue el algoritmo así que teniendo en

play07:11

cuenta pues vamos a

play07:13

a pasar a la parte del detector aquí en

play07:18

el detector como pueden observar bueno

play07:20

también es bastante básico bastante

play07:22

sencillo pero se los voy a explicar muy

play07:24

detalladamente para que ustedes puedan

play07:26

entenderlo a la perfección

play07:28

entonces importamos la librería de co2 y

play07:30

también importamos el rastreador que ya

play07:32

creamos esto quiere decir que a

play07:34

rastreador importamos todo si esto

play07:36

quiere decir este es tester hizo

play07:37

entonces que lo que primero lo que lo

play07:40

primero que debemos de hacer bueno lo

play07:42

primero que debemos de hacer es bueno

play07:45

hacer lo que viene siendo la lectura del

play07:49

vídeo aquí realizamos la lectura como

play07:52

tal

play07:53

aquí lo que yo hago es que mi cámara

play07:55

graba 1080 hoy le bajó un poquito la

play07:57

resolución al vídeo para poder ser para

play07:59

poder visualizar la correctamente

play08:01

siempre la bajó a 1280 x 720 cierto

play08:04

entonces

play08:06

y lo primero que hemos de hacer crear

play08:08

como un detector de objetos por eso era

play08:11

tan importante que la cámara estuviese

play08:14

totalmente estática porque nuestro

play08:16

detector de objetos básicamente es un

play08:18

súper insulto tractor de fondo que es

play08:21

este que tenemos aquí entonces esta va a

play08:24

ser nuestra detección nuestro sustractor

play08:27

de fondo es lo que hace es dejarnos

play08:29

nuestro fondo en negro y dejar el objeto

play08:32

que se está moviendo en blanco entonces

play08:34

que es historia history es como las

play08:36

veces que se procesan ese fondo entonces

play08:39

entre más alto sea pues mejor se va a

play08:41

procesar ese fondo y mejor para detectar

play08:43

nuestros objetos

play08:46

y nuestro umbral quiere decir que entre

play08:51

menor sea entre menor sea nuestro umbral

play08:53

en nuestro umbral más detección más

play08:56

detecciones tendremos quiere decir que

play08:58

va a dejar pasar más objetos en

play08:59

movimiento entonces es como si digamos

play09:01

está moviendo un árbol lo va a detectar

play09:03

como un objeto y eso es lo que queremos

play09:05

estos valores ustedes los deben de

play09:07

ajustar a sus necesidades digamos si

play09:10

ustedes están en un parqueadero pues no

play09:12

van a tener el árbol moviéndose digamos

play09:14

que de pronto la persona pasando qué sé

play09:17

yo el pajarito volando no van a tener

play09:19

eso entonces digamos que pueden ajustar

play09:22

estos parámetros a sus necesidades

play09:24

digamos que en un parqueadero es mucho

play09:26

más fácil porque tiene un ambiente mucho

play09:28

más controlado aquí pueden cualquier

play09:30

persona cruzar o el pajarito etcétera

play09:32

etcétera entonces

play09:34

teniendo esto en cuenta vamos a crear

play09:37

aquí arribita nuestro objeto de

play09:39

seguimiento y le vamos a llamar

play09:41

seguimiento como tal entonces

play09:43

simplemente frame lo que tenemos es

play09:45

redimensionar lo por decirlo alguna

play09:47

manera bajarle un poquito la calidad

play09:49

vídeo para visualizarlo bien ahora vamos

play09:51

a elegir una zona de interés para el uso

play09:54

de autos se miran bueno como decir que

play09:57

la zona interesa esta zona de interés se

play10:00

las voy a mostrar vamos a minimizar esto

play10:02

es esta que está aquí como ustedes

play10:04

pueden observar esta zona de interés es

play10:07

la zona donde obligatoriamente deben de

play10:09

pasar todos los carros y las motos que

play10:11

pasan por esta carretera que cuáles son

play10:13

es esa es ésta que tenemos aquí abajito

play10:15

se está aquello selección y aquí abajito

play10:17

y es lo que ustedes deben de hacer

play10:19

ustedes no deben de procesar toda la

play10:21

imagen porque sería un desgaste muy

play10:23

grande y no es necesario usted lo que

play10:25

necesitan simplemente es designar esta

play10:28

zona de interés básicamente estaba acá

play10:30

bajito y como por aquí obligatoriamente

play10:32

deben de pasar todos los objetos pues es

play10:34

la zona donde vamos

play10:36

a implementar nuestro seguidor y

play10:38

nuestros defectos como tal entonces esto

play10:41

lo hacemos es dándole las coordenadas al

play10:44

a los 30 a los programas como tal

play10:47

entonces damos las coordenadas de

play10:48

interés a nuestra zona de interés cierto

play10:52

así que a partir de aquí lo que hacemos

play10:55

es crear una máscara con el fin de que

play10:57

nuestros objetos sean totalmente blancos

play11:00

y el fondo sea negro que pasan nuestros

play11:03

extractor de fondos en los entregan el

play11:06

fondo negro pero nos entrega algunos

play11:08

elementos crisis en escala de grises

play11:10

entonces nosotros no queremos esto

play11:12

porque de pronto está pasando la sombra

play11:15

de una moto entonces nada más detectar

play11:16

la sombra de una moto como si fuese otro

play11:18

objeto y eso es lo que queremos evitar

play11:20

entonces lo que hacemos es crear una

play11:24

máscara cierto bueno primero esa

play11:28

detección esta detección que tenemos

play11:30

aquí la vamos a aplicar a la zona

play11:32

interés chicos ya partimos de que

play11:35

estamos iniciando una interés es decir

play11:36

estamos en este recuadro

play11:39

y aquí estamos en este recuadro aquí ya

play11:42

nos olvidamos de este grandote y nos

play11:44

quedamos es con este a partir de ahora

play11:46

este es el que tenemos que que manipular

play11:49

entonces esta detección que yo les

play11:51

hacíamos que del sustractor de fondo lo

play11:53

vamos a aplicar a esa zona de interés

play11:54

ahora qué vamos a decir vamos a aplicar

play11:57

un umbral como así que un umbral cielo

play11:59

es como una una línea que quiere decir

play12:02

esta línea a partir de aquí hacia arriba

play12:04

me lo deja blando y a partir de que hay

play12:07

abajo me lo deja negro nosotros

play12:09

definimos esa línea en este caso qué

play12:12

línea definimos no definimos en el valor

play12:15

254 es decir un poquito menos que

play12:19

totalmente blanco porque porque el

play12:23

detector en realidad nos entrega los

play12:25

objetos blancos blancos blancos es decir

play12:28

en 255 pero las sombras de ellos no las

play12:31

entregan 253 252 un poquito más abajo un

play12:35

poquito más grisáceo entonces queremos

play12:37

eliminar todas esas sombras queremos

play12:38

quedarnos con el objeto como tal

play12:40

entonces de 854 para abajo

play12:43

todo es negro ya todo eso es negro todo

play12:46

eso hace parte del fondo y creemos es el

play12:49

objeto entonces todo lo que esté para

play12:51

254 lo vuelve 0 y lo que esté por encima

play12:54

2 y lo vuelve 255 es decir blanco cierto

play12:59

listo entonces con este umbral

play13:01

eliminamos los pixeles grises y dejamos

play13:03

solo los píxeles

play13:05

que pertenecen a nuestros objetos que

play13:07

están totalmente blancos como ustedes

play13:08

pueden observar aquí todavía tenemos

play13:10

algo de ruido pero donde no hiciéramos

play13:14

esto tendríamos mucho más ruido muchas

play13:16

más detecciones y bueno sería un

play13:18

descontrol total pues ahí pueden

play13:19

observar que detecta muy bien nuestros

play13:21

objetos y está la máscara que yo les

play13:23

estaba diciendo

play13:25

pero aún así no es suficiente con eso

play13:27

entonces lo que tenemos que hacer es de

play13:29

esta máscara que se las voy a volver a

play13:32

mostrar a esta máscara que tenemos aquí

play13:35

pues bueno lo que tenemos que hacer es

play13:37

extraer los contornos de ella cuáles son

play13:40

los contornos pues bueno estos

play13:41

muñequitos que están pasando aquí que

play13:42

son nuestras motos y nuestros carros

play13:44

como tal cierto entonces nuestros

play13:47

contornos lo que debemos de hacer

play13:49

es bueno básicamente dibujarlos sí y

play13:53

como no tenemos digamos que un orden

play13:56

jerárquico que queramos utilizar

play13:58

entonces por eso hacemos el chain a

play14:00

broxton un chip entonces en

play14:03

prácticamente dibujamos esos contornos

play14:05

pero como vamos a dibujar esos contornos

play14:07

bueno en realidad detectamos los

play14:09

contornos aquí detectamos esos contornos

play14:11

y los almacenamos en contornos si

play14:13

creamos una lista de detecciones que es

play14:16

donde vamos a almacenar las coordenadas

play14:17

de esos contornos ahora les voy a

play14:20

mostrar cómo lo hacemos entonces es muy

play14:22

sencillo creamos un foro donde con este

play14:26

en contornos es decir donde con

play14:28

pertenezca a los contornos que ya

play14:29

detectamos y simplemente extraemos el

play14:33

área de esos contornos si se miran bueno

play14:36

porque el área de los contornos porque

play14:38

como ustedes pueden observar tenemos

play14:39

muchos ruidos entonces esos contornos

play14:42

también valen donde no tuviésemos este

play14:45

es como este filtro digámoslo de esta

play14:47

manera todos estos pequeños contornos

play14:50

que se muestran en pantalla y harían que

play14:52

todo esto fuera detecciones todo esto

play14:54

serían de flexiones entonces que

play14:55

necesitamos

play14:56

solamente los contornos que son muy

play14:58

grandes son los que nos interesan porque

play15:00

son los que pertenecen a los objetos que

play15:02

se están moviendo de esa manera es que

play15:04

eliminamos todos estos ruidos tan

play15:06

peritos que aparecen en pantalla

play15:08

entonces extraemos del área de esos

play15:10

contornos como pueden observar y decimos

play15:14

que el área que sea mayor a 800 eso son

play15:17

los que vamos a tomar en cuenta entonces

play15:19

como hacemos esto simplemente área que

play15:21

sea mayor a 2 a 800

play15:22

es usted lo pueden tantear con según sus

play15:26

necesidades entonces si el ave es mayor

play15:28

a 800 es porque estamos hablando de un

play15:30

objeto grande sea una moto un carro un

play15:32

camión el bus lo que sea entonces ahí

play15:34

donde decimos listo ahorita así lo que

play15:37

debemos de hacer es aquí en un principio

play15:40

dibujamos los contornos pero no es lo

play15:42

que vamos a hacer sino que extraemos lo

play15:45

tiene siendo el píxel inicial los

play15:47

píxeles inicial es decir el punto xy ya

play15:49

que es este que está aquí y extraemos el

play15:51

ancho y el alto para que nos den o

play15:54

digamos que un rectángulo como tal si y

play15:57

es el rectángulo pues bueno en lo que

play15:59

dibujamos aquí a continuación lo que

play16:01

estamos haciendo aquí dibujar ese

play16:03

rectángulo una vez tengamos ese

play16:05

rectángulo es porque ya tenemos definido

play16:06

que es un objeto grande entonces lo

play16:09

almacenamos en detección es que la lista

play16:10

que creamos anteriormente con que lo

play16:13

almacenamos con el la componente en x la

play16:16

componente en ya que son los píxeles

play16:18

iniciales el ancho y el alto como tal es

play16:22

decir el pixel que está acá bajito una

play16:25

vez

play16:26

y hacemos eso estas detecciones lo que

play16:29

hemos de hacer es entregárselo al

play16:31

rastreo

play16:32

cuál es el rastreo que tenemos aquí el

play16:34

rastreo como pueden observar es lo que

play16:37

hace recibir las coordenadas en x en el

play16:40

ancho y el alto con el fin de extraer el

play16:42

punto central si el punto central

play16:46

entonces ya con este punto central

play16:48

básicamente lo que hacemos es entregar

play16:51

también el y de cómo les va a mostrar

play16:54

aquí a continuación

play16:56

como pueden observar aquí le entregamos

play16:58

lo que viene siendo el punto equis y el

play17:02

ancho y el alto y él no se entrega el y

play17:06

de que en este caso como pueden observar

play17:08

es el último ítem en este caso era el

play17:10

objeto número 3 ahora que debemos de

play17:11

tener el objeto número 2 en el más la

play17:14

revista por aquí tenemos el objeto

play17:16

número 2 y más arriba debemos de tener

play17:18

el objeto número 1 es este que tenemos

play17:20

aquí sí ahí tenemos esa información

play17:24

bueno y esa información como la vamos a

play17:26

interpretar pues es muy sencillo

play17:27

simplemente decimos que y que debe estar

play17:30

en impide le vamos a asignar lo que

play17:34

viene siendo x va a ser el an el pixel

play17:38

dom el pixel inicial y también los

play17:40

pequeños las coordenadas del píxel

play17:42

inicial el ancho y el alto pero aparte

play17:45

tenemos el y de que el ide es el que

play17:47

queremos

play17:49

digamos que mostrar en pantalla es decir

play17:51

1 2 3 4 5 6 7 8 10 ya lo tenemos

play17:54

simplemente es más que se ve 2 vamos a

play17:56

mostrar un texto y vamos a mostrar el

play17:59

lidl

play18:00

como el estrés vamos a mostrar como

play18:04

sprint le vamos a dar las coordenadas le

play18:06

damos que menos 15 para que se vea un

play18:07

poquito más arriba creamos el puente y

play18:12

listo

play18:13

aquí también lo que hacemos es dibujar

play18:15

nuestro nuestro rectángulo

play18:19

sí entonces básicamente unos son

play18:21

rectángulos pero no pasa nada funciona

play18:25

bien y listo entonces aquí porque

play18:28

nuestro esa información que era lo que

play18:29

les decía las coordenadas en x en el

play18:31

pixel inicial el ancho y el alto y por

play18:34

último el líder

play18:36

por último lo que hacemos aquí es

play18:37

mostrar nuestra zona de interés nuestra

play18:40

carretera que es el total y la máscara

play18:43

cuando le demos al escape el digital 427

play18:46

se va a cerrar todo nivel para cambio

play18:49

les muestro

play18:51

ya teniendo en cuenta todos estos

play18:54

conceptos de que nuestra zona de interés

play18:56

va a estar aquí si está aquí no

play18:59

extracción de interés y aquí está

play19:00

nuestra máscara la cual detecta esos

play19:03

esos contornos grandes que ya que ya

play19:06

sección amos que ya aplicamos varios

play19:08

filtros para que queden solamente esos

play19:11

contornos grandes y bueno a partir de

play19:13

ello le entregamos esas coordenadas y

play19:14

nec y se niegue a nuestro seguidor para

play19:17

que él las almacene detecte su punto

play19:20

central y ver si ese punto central pues

play19:22

ya lo había detectado antes si no es así

play19:25

pues bueno asigna un nuevo y de que en

play19:28

este caso es asignarle un nuevo número

play19:30

uno dos tres cuatro cinco seis siete

play19:31

ocho nueve o diez y de ahí en adelante

play19:34

así que nada gente espero les haya

play19:37

servido mucho el vídeo espero les sirva

play19:39

en sus proyectos no olviden apoyar el

play19:40

canal y nos vemos en la próxima hasta

play19:43

luego

play19:50

chao

Rate This

5.0 / 5 (0 votes)

الوسوم ذات الصلة
Detección de ObjetosSeguimiento de CarrosMotosParqueaderosCentros ComercialesResidencialesAlgoritmosProgramaciónTecnologíaSeguridad
هل تحتاج إلى تلخيص باللغة الإنجليزية؟