Como crear tu propio DETECTOR DE OBJETOS en TIEMPO REAL con Python OpenCV | Template Matching

Aprende e Ingenia
27 Mar 202112:51

Summary

TLDREn este video educativo, el presentador, Sánchez, guía a los espectadores a través del proceso de creación de un algoritmo de detección de objetos en tiempo real utilizando Python. Comenzando con la captura de imágenes de objetos específicos, como un llavero de moto, el video explica cómo tomar fotografías de diferentes ángulos para mejorar la detección. Luego, se profundiza en los conceptos teóricos fundamentales detrás del algoritmo de visión artificial llamado 'template matching', que utiliza similitud para identificar objetos en una imagen. El vídeo continúa con una guía práctica paso a paso en Python, incluyendo la importación de bibliotecas, la captura de vídeo en tiempo real, el recorte del objeto de interés, y el uso del método 'match template' para detectar instancias del objeto en la imagen. Finalmente, el presentador ilustra cómo dibujar rectángulos alrededor de los objetos detectados y presenta un ejemplo final con monedas para demostrar el efectivo funcionamiento del algoritmo. El video es una valiosa fuente de información para aquellos interesados en la detección de objetos y el procesamiento de imágenes en Python.

Takeaways

  • 📚 Se discute un algoritmo de detección de objetos en tiempo real utilizando Python.
  • 🔍 El algoritmo se basa en la técnica de template matching para encontrar objetos similares en una imagen.
  • 📈 Se utiliza la librería OpenCV (cv2) para el procesamiento de imágenes y la detección de objetos.
  • 📷 Se captura un objeto en tiempo real utilizando la cámara web y se guarda la imagen final como 'objeto.jpg'.
  • 🖼️ Se realiza un recorte del objeto en la imagen para usarlo como plantilla para la detección.
  • 🔢 Se compara la plantilla con el resto de la imagen mediante cálculo de similitud o disimilitud.
  • 🎯 Se utiliza un umbral para determinar si un objeto es lo suficientemente similar a la plantilla para ser detectado.
  • 🟦 Primero se lee la imagen en color y luego se convierte a escala de grises para el procesamiento.
  • 📐 Se extraen las dimensiones del objeto para ajustar el tamaño del rectángulo que lo encierra.
  • 📊 Se utiliza el método de similitud normalizado para obtener valores entre 0 y 1, facilitando la comparación.
  • 🖋️ Una vez detectados los objetos, se dibujan rectángulos alrededor de ellos en la imagen final.

Q & A

  • ¿Qué es el algoritmo de detección de objetos en tiempo real que se explicó en el video?

    -El algoritmo de detección de objetos en tiempo real explicado en el video es un algoritmo de visión artificial llamado 'template matching'. Este es un método básico de detección de objetos que funciona bien en ambientes controlados.

  • ¿Cómo funciona el algoritmo de detección de objetos 'template matching'?

    -El algoritmo 'template matching' funciona tomando una parte de la imagen que contiene el objeto de interés como un 'template' o patrón, y luego busca similitudes de este patrón en el resto de la imagen. Se realiza un cálculo de similitud y aquellos elementos que superen un umbral determinado son considerados como objetos similares al template.

  • ¿Por qué es importante tomar fotos de los objetos desde diferentes ángulos y posiciones?

    -Es importante tomar fotos de los objetos desde diferentes ángulos y posiciones para que el algoritmo pueda detectar el objeto en una variedad de situaciones y no solo cuando está en una posición específica. Esto aumenta la versatilidad y eficacia del algoritmo.

  • ¿Qué pasos son necesarios para implementar el algoritmo 'template matching' en Python?

    -Para implementar el algoritmo 'template matching' en Python, se deben seguir los siguientes pasos: 1) Importar las librerías necesarias para el procesamiento de imágenes, 2) Capturar el objeto en tiempo real, 3) Guardar el último frame de la captura, 4) Leer y recortar la imagen del objeto, 5) Tomar otra captura para la detección, 6) Leer la imagen de detección en color y convertirla a escala de grises, 7) Utilizar la función 'match_template' para encontrar coincidencias, 8) Dibujar rectángulos alrededor de los objetos detectados.

  • ¿Qué es la imagen en escala de grises y por qué se utiliza en el procesamiento de imágenes?

    -La imagen en escala de grises es una representación de una imagen en la que cada píxel es asignado un único valor de gris, dependiendo de la intensidad de luz en ese píxel. Se utiliza en el procesamiento de imágenes porque simplifica el análisis y mejora la eficiencia del algoritmo, reduciendo la cantidad de datos a procesar.

  • ¿Cómo se toman las fotos de los objetos para ser utilizadas como 'template' en el algoritmo?

    -Se toman fotos de los objetos en diferentes ángulos y posiciones para capturar su apariencia de manera variada. Estas fotos son luego utilizadas como 'template' o patrón en el algoritmo de detección de objetos, permitiendo al algoritmo comparar y detectar el objeto en la imagen.

  • ¿Por qué se utiliza un umbral en el algoritmo de detección de objetos?

    -Se utiliza un umbral en el algoritmo de detección de objetos para determinar qué coincidencias son lo suficientemente fuertes como para ser consideradas como una instancia del objeto de interés. Los valores por encima del umbral indican una alta similitud con el template y son marcados como objetos detectados.

  • ¿Cómo se muestran los resultados del algoritmo de detección de objetos en la pantalla?

    -Los resultados del algoritmo de detección de objetos se muestran en la pantalla dibujando rectángulos alrededor de las áreas donde se ha detectado el objeto. Estos rectángulos se superponen sobre la imagen en color original para que los objetos detectados sean fácilmente visibles.

  • ¿Qué tipo de objetos se pueden detectar utilizando el algoritmo de 'template matching'?

    -El algoritmo de 'template matching' puede detectar cualquier tipo de objeto, siempre y cuando tengamos una imagen del objeto para usar como template. Esto incluye objetos complejos y de diferentes tamaños, siempre que el objeto sea lo suficientemente distintivo para ser reconocido en la imagen.

  • ¿Cómo se puede mejorar la precisión del algoritmo de detección de objetos?

    -La precisión del algoritmo de detección de objetos puede mejorarse tomando fotos del objeto desde múltiples ángulos y bajo diferentes condiciones, utilizando una imagen de alta calidad para el template, y ajustando el umbral de similitud para minimizar las falsas coincidencias.

  • ¿Por qué es importante el procesamiento de imágenes en escala de grises en lugar de en color?

    -El procesamiento de imágenes en escala de grises es importante porque reduce la complejidad del análisis, ya que cada píxel solo tiene un valor de gris en lugar de tres valores (para el rojo, verde y azul). Esto hace que el algoritmo sea más eficiente y rápido al buscar similitudes en la imagen.

  • ¿Cómo se guarda la última foto tomada durante la captura en tiempo real?

    -La última foto tomada durante la captura en tiempo real se guarda utilizando el nombre de archivo 'objeto.jpg'. Esto permite almacenar la imagen capturada para su posterior uso como template en el algoritmo de detección de objetos.

Outlines

00:00

😀 Introducción a la detección de objetos en tiempo real

El primer párrafo presenta la temática del video, que es la explicación de un algoritmo de detección de objetos en tiempo real utilizando Python. Se menciona que se creará una aplicación para detectar cualquier tipo de objeto y cantidad de objetos. Se destaca la importancia de tomar fotografías de los objetos a identificar, como en este caso, dos llaveros de moto, y cómo el algoritmo selecciona estos objetos. Además, se introduce el concepto de 'template matching', un método básico de detección de objetos que funciona bien en entornos controlados, y se describe el proceso que sigue el algoritmo: captura de una imagen, generación de candidatos, cálculo de similitud y decisión para identificar el objeto deseado.

05:00

📸 Proceso de captura y selección del objeto

El segundo párrafo se enfoca en el proceso de captura de la imagen del objeto a través de la biblioteca OpenCV (cv2). Se describe cómo se realiza la captura en tiempo real con la ayuda de una cámara USB y cómo se muestra el vídeo en pantalla. Se menciona la interacción con el usuario a través de la presión de una tecla para detener la captura y guardar el último fotograma. Luego, se procede a recortar el objeto deseado del vídeo y se guarda esta imagen para su posterior uso en el algoritmo. Se destaca la importancia de tomar fotografías de diferentes ángulos y posiciones del objeto para mejorar la precisión del algoritmo.

10:03

🔍 Aplicación del algoritmo de detección y visualización de resultados

El tercer párrafo detalla cómo se aplica el algoritmo de detección de objetos en la práctica. Se describe el proceso de lectura de la imagen en escala de grises para el procesamiento, a pesar de mostrar la imagen en color. Se extrae el ancho y el alto del recorte del objeto y se utiliza el método 'matchTemplate' para comparar el patrón del objeto con el de la imagen. Se establece un umbral de similitud y se almacenan las ubicaciones donde la detección supera este umbral. Finalmente, se dibujan rectángulos alrededor de los objetos detectados y se muestra la imagen con los resultados del algoritmo. Además, se incluye un ejemplo adicional de detección con monedas para demostrar la efectividad del algoritmo.

Mindmap

Keywords

💡algoritmo de detección de objetos

Un algoritmo de detección de objetos es un conjunto de reglas y operaciones utilizadas por una computadora para identificar y localizar objetos en una imagen o secuencia de imágenes en tiempo real. En el video, se utiliza para detectar objetos como llaveros de moto y monedas, lo que demuestra su aplicabilidad en entornos controlados.

💡tiempo real

Tiempo real hace referencia a la capacidad de un sistema de procesar y responder a eventos de manera inmediata, sin demoras perceptibles. En el contexto del video, el algoritmo de detección de objetos funciona en tiempo real, lo que permite la identificación rápida de objetos en una secuencia de imágenes o vídeo.

💡aplicación en Python

Se trata de un programa o conjunto de instrucciones escritas en el lenguaje de programación Python, que en este caso se utiliza para implementar el algoritmo de detección de objetos. Python es elegido debido a su simplicidad y la gran cantidad de bibliotecas disponibles para procesamiento de imágenes y visión por computadora.

💡template matching

Template matching es una técnica utilizada en visión por computadora para encontrar áreas de una imagen que son similares a una plantilla o imagen de referencia. En el video, este método se aplica para comparar una parte de la imagen (el objeto a identificar) con el resto de la imagen en busca de objetos similares.

💡cálculo de similitud

El cálculo de similitud es un proceso que determina la similitude entre dos patrones, en este caso, entre la plantilla y los distintos segmentos de la imagen. Se utiliza para determinar qué tan similares son los objetos en la imagen comparándolos con el objeto de referencia. En el script, se utiliza un umbral de similitud para decidir si un objeto es lo suficientemente similar para ser identificado.

💡OpenCV

OpenCV (Open Source Computer Vision Library) es una biblioteca de software de código abierto para visión por computadora. En el video, se utiliza OpenCV para la captura y el procesamiento de imágenes en tiempo real, así como para implementar la lógica del algoritmo de detección de objetos.

💡captura de vídeo

La captura de vídeo se refiere a la obtención de una secuencia de imágenes a través de una cámara. En el contexto del video, la captura de vídeo es esencial para obtener la entrada que el algoritmo de detección de objetos procesará en tiempo real.

💡recorte de imagen

El recorte de imagen es el proceso de seleccionar una parte específica de una imagen. En el video, se realiza un recorte del objeto que se desea identificar, como el llavero de moto, para usarlo como plantilla en el algoritmo de detección de objetos.

💡escalas de grises

Las escalas de grises son una representación de una imagen en la que cada píxel es asignado un valor de gris que varía de negro (0) a blanco (255). Esto simplifica el procesamiento de imágenes al trabajar con una dimensión de color en lugar de tres (RGB). En el video, las imágenes se convierten a escala de grises para facilitar el procesamiento del algoritmo.

💡umbral

Un umbral es un límite o punto de corte que se utiliza para distinguir o clasificar. En el contexto del algoritmo de detección de objetos, el umbral se establece para determinar qué niveles de similitud son aceptables para considerar que dos objetos son iguales o similares. En el script, un umbral de 0.75 se utiliza para decidir si un objeto es lo suficientemente similar al objeto de referencia.

💡rectángulos

En el video, los rectángulos son utilizados para delimitar visualmente los objetos identificados por el algoritmo en la imagen. Una vez que el algoritmo encuentra un objeto similar al de la plantilla, dibuja un rectángulo alrededor del objeto para indicar su posición y tamaño en la imagen.

Highlights

El video ofrece una explicación detallada de un algoritmo de detección de objetos en tiempo real.

Se presenta una aplicación en Python para elaborar un algoritmo de detección de objetos.

El algoritmo es capaz de detectar cualquier tipo y cantidad de objetos.

Se describe el proceso de captura de imágenes de objetos para su posterior identificación.

El algoritmo utiliza la técnica de template matching para la detección de objetos.

Se menciona que el algoritmo funciona bien en ambientes controlados.

Se detalla el esquema de detección que incluye generación de candidatos, cálculo de similitud y decisión.

Se explica cómo se extrae el objeto de interés de la imagen para usarlo como patrón.

Se describe el proceso de comparación del patrón con el resto de la imagen para encontrar objetos similares.

Se utiliza la disimilitud para la comparación, lo que implica restar el patrón de la imagen a comparar.

Se muestra cómo se realiza la comparación por similitud multiplicando el patrón con la imagen.

Se destaca la importancia de la elección del umbral en la comparación para identificar objetos.

Se describe el paso a paso de la implementación del algoritmo en Python.

Se menciona la importación de bibliotecas como NumPy y OpenCV para procesar imágenes.

Se detalla cómo capturar el objeto en tiempo real utilizando la biblioteca OpenCV.

Se explica cómo guardar el último fotograma de la captura para su análisis.

Se muestra el proceso de recorte del objeto de la imagen capturada.

Se destaca la utilidad del algoritmo para cualquier tipo de objeto, independientemente de su tamaño.

Se realiza una demostración final con monedas para validar el funcionamiento del algoritmo.

Transcripts

play00:00

bueno gente bienvenidos una vez más este

play00:03

canal aprendiz niña les hablas entrego

play00:05

sánchez y el de hoy les traigo un vídeo

play00:07

muy muy útil porque les voy a explicar

play00:10

un algoritmo de detección de objetos en

play00:12

tiempo real el día de hoy les voy a dar

play00:15

una aplicación en python y les voy a

play00:17

explicar bien cómo podemos elaborar un

play00:20

algoritmo para detectar cualquier tipo

play00:22

de objeto y cualquier cantidad de

play00:24

objetos así que no me en radio más y

play00:27

comencemos con el vídeo y sonidos

play00:30

entonces lo primero que debemos hacer es

play00:32

tomarle fotos a los vetos que queremos

play00:34

identificar en este caso es el llavero

play00:37

de moto que tenemos

play00:39

él tomó la gótico ahora lo puede hacer

play00:42

es cambiarlo de posición para que usted

play00:44

no me voy a poner y éste lo voy a dejar

play00:57

y ahí pueden ver cómo en nuestro

play00:59

algoritmo seleccionan los dos llaveros

play01:02

de motos así que vamos a ver cómo

play01:04

funciona

play01:08

ah

play01:11

bueno amigos ya estamos aquí en mi

play01:14

computador y como hago normalmente

play01:15

primero les voy a dar los conceptos

play01:17

fundamentales teóricos para después

play01:20

pasar a la práctica en python así que el

play01:22

día de hoy vamos a vamos a programar un

play01:26

algoritmo de visión artificial llamado

play01:28

template machine este es un algoritmo

play01:30

básico de detección de objetos que

play01:33

funciona muy bien en ambientes

play01:34

controlados donde tomamos una imagen

play01:36

como descriptor y esto qué quiere decir

play01:39

esto lo que quiere decir es que vamos a

play01:41

tomar una parte de la imagen dónde está

play01:44

nuestro objeto para compararlo con el

play01:46

resto de la imagen y encontrar más

play01:48

objetos entonces para la detección vamos

play01:52

a seguir los siguientes el siguiente

play01:54

esquema primero vamos a tener una imagen

play01:56

de entrada de ahí vamos a hacer una

play01:58

generación de candidatos después vamos a

play02:00

hacer un cálculo de similitud o de

play02:03

similitud y por último vamos a hacer una

play02:05

decisión una parte de decisión y de

play02:07

generación de ventanas señalando nuestro

play02:10

objeto así que cómo funciona

play02:13

bueno básicamente tenemos una imagen con

play02:16

n elementos porque este algoritmo

play02:18

funciona con cualquier tipo de elemento

play02:19

el que ustedes quieran si nuestro

play02:23

objetivo es identificar los círculos que

play02:25

están en la imagen en esta imagen que

play02:26

tenemos aquí en la parte de la izquierda

play02:28

cierto en esta que tenemos aquí

play02:31

y lo que queremos es identificar los

play02:33

círculos nota

play02:36

más bien paso 1 lo primero que debemos

play02:39

hacer es recordar la parte de la imagen

play02:42

que contiene el objeto que queremos

play02:45

identificar en este caso como queremos

play02:47

identificar los círculos entre

play02:48

recortamos la parte de la imagen que

play02:50

pertenece al círculo ahorita si no está

play02:53

extraemos el objeto que queremos

play02:55

identificar ya que este va a ser el

play02:57

patrón que vamos a comparar con el resto

play02:59

de la imagen lo que le estaba diciendo

play03:01

tomamos ese pedacito de la imagen y lo

play03:03

comparamos con el resto cierto paso

play03:06

número 2 ahora

play03:09

debe de pasar el patrón por toda la

play03:11

imagen buscando similitudes y

play03:14

similitudes con los otros objetos

play03:16

entonces es muy sencillo ver que debemos

play03:18

de hacer aquí tomamos este patrón que ya

play03:20

lo ya lo habíamos notado aquí tomamos

play03:22

este patrón y lo que vamos a hacer es

play03:24

pasarlo por toda la imagen de izquierda

play03:26

a derecha y de arriba hacia abajo

play03:29

buscando elementos parecidos o elementos

play03:33

similares cierto entonces nota en este

play03:38

caso vamos a realizar la comparación por

play03:40

disimilitud eso quiere decir que debemos

play03:43

de restar el patrón con el segmento de

play03:46

la imagen a comparar entonces es muy

play03:49

sencillo que queremos hacer acá entonces

play03:52

como queremos comparar este patrón con

play03:54

el resto de la imagen en todo lo primero

play03:55

que hacemos es compararlo con este

play03:57

espacio que está aquí en blanco listo lo

play04:00

comparamos con este espacio en blanco

play04:02

tenemos dos magnitudes diferentes es

play04:04

decir digamos que este vamos a hacer un

play04:06

ejemplo de que este patrón base va a ser

play04:09

igual a 5 y pues esto va a ser igual a 0

play04:13

entonces 50 va a ser 5 cierto como son

play04:19

magnitudes diferentes eso nos tiene que

play04:21

dar un valor diferente de 0 ahora vamos

play04:24

a hacer el ejemplo comparándolo con esta

play04:27

el siguiente segmento de la imagen a

play04:29

venga aquí tenemos dos elementos iguales

play04:31

es decir tenemos dos magnitudes iguales

play04:34

que esto es como si dijéramos 5 es un

play04:37

ejemplo menos 5 eso qué quiere decir 5

play04:41

menos 50 listo entonces así nos vamos a

play04:46

ir por toda la imagen asignándole y

play04:49

digamos que este umbral a cada uno de

play04:52

los segmentos de la imagen con el fin de

play04:55

que más adelante podamos determinar los

play04:57

ceros porque en este caso lo estamos

play05:00

haciendo una comparación por disimilitud

play05:02

no está en caso de que seamos deseemos

play05:06

hacer la comparación por similitud

play05:07

debemos de multiplicar el patrón con el

play05:11

segmento de la imagen a comparar quiere

play05:14

decir que ya no nos debe dar 0 sino que

play05:16

nos debe dar

play05:18

255 a multiplicar los dos elementos

play05:21

iguales cierto es una multiplicación con

play05:25

otras operaciones conjuntas que no vamos

play05:27

a profundizar en este vídeo porque se

play05:29

nos van a ir media hora cierto listo en

play05:32

donde es paso número 3

play05:34

en el paso número 3 lo que hacemos es

play05:38

tener en cuenta las comparaciones y

play05:40

teniendo en cuenta de las comparaciones

play05:41

buscamos en los píxeles que nos dieron 0

play05:44

255 dependiendo de la comparación que

play05:47

hicimos y los encerramos en un

play05:49

rectángulo entonces en este caso como

play05:51

tenemos estos dos elementos que son

play05:53

iguales entonces debemos de n de

play05:56

encerrar en un rectángulo estos dos

play05:57

elementos que pertenecen a los círculos

play05:59

que era el objeto que que queremos

play06:02

dientes de carne ahora teniendo en

play06:04

cuenta esto vamos a pasar a la práctica

play06:06

en paita bueno gente ya estamos aquí en

play06:09

python y cómo pueden observar este

play06:11

código todavía no le pasaba a júpiter

play06:13

notebook así que tengan en cuenta que

play06:15

cuando lleguemos a mil 500 suscriptores

play06:17

les voy a estar liberando este y todos

play06:19

los códigos de visión artificial que

play06:21

subido en los últimos días así que

play06:23

empecemos lo primero que hacemos es

play06:24

importar las librerías numbi y cb2 que

play06:27

la librería para hacer el procesamiento

play06:30

de imágenes como tan cierto entonces que

play06:33

lo primero que hemos de hacer capturar

play06:34

el objeto en tiempo real como lo hacemos

play06:37

lo hacemos con cb2 punto vídeo captura y

play06:41

aquí entre paréntesis debemos de colocar

play06:42

la cámara que

play06:44

utilizar en este caso colocó uno porque

play06:47

quiere utilizar una cámara que tengo

play06:49

conectado por usb en caso de que quiera

play06:51

utilizar la cámara de mi computador

play06:52

portátil pues colocó cero cierto si

play06:56

ustedes tienen más cámaras conectadas

play06:57

entonces van a colocar 2 3 4 5 las que

play07:01

ustedes tengan conectadas así que a

play07:03

continuación hacemos un while con el fin

play07:05

de mostrar el vídeo en pantalla entonces

play07:07

lo primero que hacemos es leer el vídeo

play07:08

con cap punto royal y nos mostramos en

play07:11

pantalla con un título que va a ser

play07:13

objeto cierto a continuación lo que

play07:16

hacemos es unir para leer una tecla de

play07:19

nuestro teclado valga la redundancia

play07:21

cual tecla vamos a leer vamos a leer la

play07:23

tecla que tenga el código aquí oa la que

play07:26

le pertenezca el código aquí 27 que es

play07:29

la tecla ese escape quiere decir que

play07:31

cuando le demos escape vamos a romper

play07:34

ese why quiere decir que vamos a romper

play07:35

ese vídeo y lo que vamos a hacer a

play07:37

continuación es guardar ese último frame

play07:40

ese último fotograma esa última foto la

play07:44

vamos a acordar con el nombre de objeto

play07:45

punto jpg

play07:47

a continuación lo que hacemos es cerrar

play07:51

el vídeo y cerrar la ventana

play07:54

listo ahora lo que hacemos es leer la

play07:56

imagen para recortar el objeto como tal

play07:59

entonces como lo hacemos en off que es

play08:02

una abreviación de objeto leemos la

play08:04

imagen que guardamos anteriormente ahí

play08:06

vamos bien y ahora lo que hacemos es un

play08:09

recorte al cuadrante central de la

play08:13

pantalla o sea de esa de ese vídeo que

play08:15

generamos anteriormente por eso cuando

play08:18

queremos identificar x objetos entonces

play08:20

lo acomodamos en el cuadrante central y

play08:22

le tomamos la foto por eso es que este

play08:24

algoritmo sirve para cualquier tipo de

play08:26

objeto

play08:28

tienen que tener en cuenta que desde un

play08:29

objeto muy grande pues hacemos el

play08:30

recorte más grandecito y ya listo y lo

play08:33

mostramos en pantalla como les muestra

play08:35

anteriormente como les va a mostrar a

play08:37

continuación listo una vez hacemos esto

play08:39

lo que hacemos es tomar otra captura

play08:41

totalmente igual pero porque yo hago

play08:44

esto yo podría quedarme con la captura

play08:46

anterior

play08:47

yo lo hago con el fin de que movamos los

play08:50

objetos de que los cambiamos de posición

play08:52

para que ustedes encuentra que en verdad

play08:54

pues el algoritmo funciona y funciona

play08:57

muy bien en este ambiente controlado

play08:58

entonces volvemos a hacer exactamente lo

play09:01

mismo que es leer después el vídeo

play09:04

mostrarlo y tomar el último prime pero

play09:07

en este caso vamos a guardar esa punto

play09:08

como detección punto jpg cierto que es

play09:12

lo que estamos haciendo aquí las

play09:13

guardamos como dirección punto jp

play09:16

y ahora lo que vamos a hacer es leer esa

play09:18

detección esa imagen entonces tengan en

play09:20

cuenta algo la vamos a leer y la vamos a

play09:22

almacenar en img pero en este caso las

play09:25

almas la leímos con los tres canales es

play09:27

decir rgb es decir a color vean que el

play09:31

recorte el recorte lo leí en un solo

play09:33

canal

play09:33

es decir en escala de grises listo

play09:36

entonces la leo a color cierto entonces

play09:38

la vamos a tener a color y porque la

play09:41

leímos a color porque ahí es donde vamos

play09:43

a mostrar en pantalla para que se vea

play09:44

bonito y toda la cosa pero lo vamos a

play09:47

pasar a escala de grises para hacer todo

play09:48

el procesamiento de los objetos entonces

play09:51

es muy importante que tengan esa

play09:53

diferencia a color para mostrarla y en

play09:55

escale grises para el procesamiento al

play09:57

instante de la para la máscara grises y

play09:59

la mostramos ahí vamos muy bien

play10:02

ahora lo que hacemos es extraer el ancho

play10:06

y el alto del recorte del objeto porque

play10:08

porque no queremos tener un objeto muy

play10:11

grande por decir algo y un rectángulo

play10:13

chiquito no queremos que si el objeto es

play10:16

grande entonces el rectángulo que del

play10:18

mismo tamaño cierto entonces por eso lo

play10:20

hacemos y ahora si realizamos la

play10:23

detección entonces como hacemos la

play10:24

infección se ve dos puntos match

play10:26

template colocamos la imagen que

play10:30

acuérdense que va en escala de grises si

play10:32

la imagen colocamos el patrón el objeto

play10:35

que nosotros queremos identificar

play10:37

entonces colocamos el recorte y aquí

play10:39

colocamos el método en este caso yo

play10:42

utilice un método de de similitud

play10:44

normalizado esto quiere que quiere decir

play10:47

que no nos va a dar 255 sino 1 el valor

play10:50

máximo va a ser 1 y el valor mínimo va a

play10:53

ser 0 entonces como lo hicimos por

play10:55

similitud queremos el valor máximo es

play10:57

decir 1 por eso colocamos un umbral de

play11:00

0.75 porque porque los objetos que estén

play11:03

por encima de 0.75 quiere decir que son

play11:06

muy parecidos a nuestro objeto

play11:08

y los vamos a subrayar o los vamos a

play11:11

encasillar en un rectángulo entonces por

play11:14

eso coloque ese umbral listo entonces

play11:17

las ubicaciones las vamos a almacenar

play11:21

cuando la detección sea mayor o igual a

play11:25

0.75 que fue lo que les acabe explicar

play11:28

cierto entonces si es mayor a 0 75 se

play11:30

parece mucho a nuestro objeto así que

play11:32

vamos a guardar esa ubicación que la

play11:33

necesitamos y por último lo que haremos

play11:36

es un x con el fin de dibujar esos

play11:39

rectángulos entonces se ve dos

play11:41

rectángulos lo colocamos en la imagen a

play11:44

color recuerden que las mostramos le da

play11:46

color pero hicimos el procesamiento en

play11:48

escala de grises y lo que hacemos es

play11:51

colocarle este ancho este alto colocarle

play11:54

este color y colocarle este grosor eso

play11:57

fue absolutamente todo y por último

play11:59

mostramos pues ya la imagen con los

play12:02

rectángulos dibujados así que vamos a

play12:06

ver cómo funciona un último

play12:08

funcionamiento de nuestro algoritmo

play12:11

bueno ahora vamos a hacer un último

play12:12

ejercicio con las monedas entonces

play12:14

primero le tomaron foto a la moneda que

play12:16

queremos identificar

play12:18

al mismo tiempo entonces debería

play12:20

identificar las tres del agua cambiar de

play12:22

posición para que usted no vayan a

play12:23

pensar que de pronto estamos haciendo

play12:26

trapo de estatura acá también

play12:33

[Música]

play12:35

ahí está ya identificamos las tres

play12:38

monedas así que nadie espero les haya

play12:40

gustado el vídeo nos vemos una próxima

play12:42

ocasión y hasta luego

play12:45

[Música]

Rate This

5.0 / 5 (0 votes)

Related Tags
Detección de ObjetosVisión ArtificialPythonMachine LearningTemplate MatchingProcesamiento de ImágenesCódigo de VisiónTécnicas de ProgramaciónTutorialIATecnología
Do you need a summary in English?