Visión por Computadora utilizando OpenCV

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Como científico de IA y desarrollador, he estado involucrado en aplicaciones de IA durante muchos años, especialmente enfocándome en la detección y reconocimiento de objetos. Me encanta pensar que podemos ser creativos al diseñar redes neuronales. Podemos entrenarlas de manera supervisada, no supervisada, semi o auto-supervisada, y esto nos da la posibilidad de imitar el cerebro humano en un dominio específico. Sin embargo, en las aplicaciones de visión, todavía hay cosas en las que la IA carece y seguirá careciendo sin el conocimiento de visión por computadora. La visión por computadora ha estado resolviendo problemas de detección y reconocimiento durante muchos años. Sin embargo, en la última década, parece que la IA se ve como un reemplazo de la visión por computadora. La IA puede encontrar el modelo óptimo para un tipo específico de conjunto de datos y puede lograr una mejor generalización. La IA puede ser diseñada de tal manera que pueda aprender de por vida, lo que también brinda la posibilidad de crear modelos que funcionen mejor a medida que se usan durante más tiempo. Sin embargo, un sistema de visión de IA carecerá de capacidades sin el conocimiento de visión por computadora. En primer lugar, requerirá un conjunto de datos muy grande para entrenar el modelo, lo que puede ser costoso o incluso imposible. Por otro lado, los sistemas de visión por computadora pueden ser modelados solo utilizando una imagen de plantilla dibujada a mano. El entrenamiento de modelos de IA también requiere GPUs. Sin embargo, no quiero animar a todos a entrenar modelos de IA para resolver cualquier problema simple que podría resolverse fácilmente con visión por computadora. Por último, pero no menos importante, conocer la visión por computadora, el aprendizaje automático y especialmente los métodos de ingeniería de características ayuda a diseñar modelos híbridos que pueden ser más robustos ante ataques adversarios o condiciones cambiantes.


En esta charla, presentaré brevemente cómo se puede utilizar la visión por computadora (especialmente utilizando la biblioteca OpenCV) y el aprendizaje automático para crear modelos de detección y reconocimiento. Sería útil tener algo de experiencia con Python, Jupyter Notebook y algo de conocimiento en aprendizaje automático para obtener más beneficios de esta charla.

This talk has been presented at ML conf EU 2020, check out the latest edition of this Tech Conference.

FAQ

El procesamiento de imágenes implica la manipulación de una imagen para mejorarla o extraer información. Se realiza mediante software que toma una imagen como entrada y produce una imagen procesada como salida.

La visión por computadora utiliza imágenes para extraer valores o datos como números de personas o ubicaciones GPS, mientras que el procesamiento de imágenes se centra en modificar las imágenes mismas para mejorarlas o cambiarlas de alguna manera.

Algunos ejemplos incluyen la eliminación de ruido, ajuste de color, aumento de imágenes, eliminación de fondo y detección de bordes.

Un histograma en procesamiento de imágenes representa la distribución de los valores de brillo dentro de la imagen. Ayuda a entender y manipular la imagen, por ejemplo, mediante la ecualización del histograma para mejorar la visibilidad de texturas y detalles.

OpenCV es una biblioteca de programación ampliamente utilizada para visión por computadora que permite la implementación de diferentes algoritmos, como detección de características, reconocimiento de objetos y manipulación de imágenes.

La ecualización del histograma es un proceso para ajustar el contraste de una imagen utilizando la distribución de intensidad de los píxeles. Sirve para mejorar la visibilidad general de la imagen, haciendo más claros los detalles oscuros y viceversa.

En el campo de la salud, la visión por computadora se utiliza para analizar imágenes médicas, ayudar en el diagnóstico de enfermedades como el cáncer de piel, y mejorar la precisión y eficiencia de los tratamientos médicos.

La IA puede aprender características de manera autónoma y adaptarse a nuevos patrones, pero necesita grandes conjuntos de datos y puede ser vulnerable a ataques adversarios. La visión por computadora manual permite un control más detallado y específico, aunque puede ser menos flexible.

Beril Sirmacek
Beril Sirmacek
32 min
02 Jul, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla de hoy explora el procesamiento de imágenes, la visión por computadora y su combinación con el aprendizaje automático. El procesamiento de imágenes implica manipular imágenes, mientras que la visión por computadora extrae información valiosa de las imágenes. Los histogramas son cruciales en el procesamiento de imágenes, ya que representan la distribución de los valores de brillo. Se pueden utilizar diversas técnicas de procesamiento de imágenes, como umbralización y convolución. Las técnicas de visión por computadora se centran en extraer características importantes para el reconocimiento de objetos y pueden ser adaptadas a medida. El procesamiento de audio no es el enfoque de OpenCV, pero las bibliotecas de TensorFlow pueden ser más adecuadas. Comprender los algoritmos detrás del código es importante para la robustez y la depuración efectiva. La visión por computadora tiene aplicaciones en el campo de la salud para el reconocimiento de cáncer y en la agricultura para el monitoreo de la salud de las plantas.
Available in English: Computer Vision Using OpenCV

1. Introducción y Procesamiento de Imágenes

Short description:

Hoy exploraremos el procesamiento de imágenes, la visión por computadora y la combinación de la visión por computadora y el aprendizaje automático. Proporcionaré ejemplos y un fragmento de código para algoritmos de visión por computadora. Tengo más de 15 años de experiencia en visión por computadora, aprendizaje automático e inteligencia artificial. Comencemos por comprender qué es una imagen.

Hola a todos. Muchas gracias por registrarse en esta conferencia de aprendizaje automático. Ya sea que se encuentren en Europa o en cualquier otro lugar de la Tierra. Muchas gracias por estar aquí.

Soy Veril. Hoy veremos cómo podemos hacer que el software, el software de aprendizaje automático, vea cosas como lo hacen los humanos. Intentaremos introducir algunos temas de procesamiento de imágenes y visión por computadora en este tiempo muy limitado corto. Debido a la limitación de tiempo, no puedo mostrarles tantos ejemplos de programación. Pero en mis diapositivas, si se fijan, he puesto algunos algoritmos dentro de cajas. Así que espero que puedan volver y echar un vistazo más tarde, eso podría ser útil. Y podemos discutir más ejemplos tal vez después de la presentación en la sesión de preguntas y respuestas.

Esta es mi agenda para hoy. Después de una pequeña introducción, primero les presentaré qué es el procesamiento de imágenes, algunos algoritmos de procesamiento de imágenes y luego veremos la visión por computadora. Y veremos algunos algoritmos clásicos de visión por computadora. Finalmente, quiero abordar cómo podemos combinar la visión por computadora y el aprendizaje automático, y cómo es diferente de la IA regular que resuelve todos los problemas por sí misma. Entonces, ¿cómo es diferente? ¿La visión por computadora es irrelevante ahora porque la IA está haciendo todo por sí misma? Así que discutiremos estos temas. Por último, les daré un fragmento de código. Nuevamente, pueden implementarlo ustedes mismos para comenzar a hacer algunos algoritmos de visión por computadora, con suerte.

Un poco de introducción sobre mí. Actualmente soy profesor asistente en la Universidad de Jönköping en Suecia. Es un laboratorio de IA que se enfoca en desarrollar algoritmos de IA y IA explicables. Además, tengo mi propia empresa, que ha desarrollado muchas aplicaciones de visión por computadora en el pasado en los Países Bajos. También estoy ubicado en los Países Bajos. Tengo más de 15 años de experiencia en el área de visión por computadora, aprendizaje automático y también la inteligencia artificial es el área en la que estoy poniendo mucho esfuerzo en estos días. Si quiero presentarme, siempre necesito agregar que soy ecologista.

¿Qué es una imagen? Comencemos con qué es una imagen antes de procesar estas imágenes. Si es una imagen digital, estamos hablando de imágenes digitales, no de imágenes antiguas de estilo analógico. Si es una imagen digital, estamos hablando de una matriz. La fuente puede ser cualquier cosa. La fuente puede ser tu teléfono inteligente, una cámara regular.

2. Procesamiento de Imágenes y Visión por Computadora

Short description:

Si estamos hablando de una imagen digital, estamos hablando de una matriz. Si vemos una imagen con una T en ella, podemos representar esta T como una imagen poniendo 1 cuando está brillante y poniendo 0 cuando está oscuro. El procesamiento de imágenes y la visión por computadora son diferentes. El software de procesamiento de imágenes toma una imagen como entrada y produce una imagen procesada. La visión por computadora toma una imagen como entrada y produce un valor, como el número de personas en la escena o una ubicación GPS encontrada en una imagen satelital.

Puede ser un sensor satelital. Puede ser un sensor de calor. Puede ser una imagen dermatológica o microscópica, una imagen de telescopio, lo que sea. Si estamos hablando de una imagen digital, estamos hablando de una matriz. Muy bien, si tienes una matriz, sabes cómo hacer operaciones de matriz y bienvenido al procesamiento de imágenes. Ahora sabes cómo hacer procesamiento de imágenes.

Si vemos una imagen con una T en ella, digamos, podemos representar esta T como una imagen poniendo 1 cuando está brillante y poniendo 0 cuando está oscuro. Ahora tenemos la T representada como una imagen digital. Cuando los números son solo 0 y 1, por supuesto, esta matriz es una matriz binaria. Se llama imagen binaria. Pero normalmente, cuando nuestros teléfonos inteligentes toman una foto, tenemos RGB, rojo, verde, imágenes en color azul. Entonces, eso significa que no tenemos una imagen como una sola matriz. Para cada imagen, tenemos tres matrices. Pero para simplificar las operaciones, ahora intentaremos ver una matriz a la vez.

Supongamos que hablamos de la imagen de brillo o escala de grises, que es una combinación de estas bandas rojas, verdes y azules todas juntas. Supongamos que se obtiene una suma ponderada. Entonces, antes de continuar, dije que hablaría sobre el procesamiento de imágenes. Hablaré sobre la visión por computadora. ¿Son lo mismo o no? Digo que es lo mismo. ¿Es verdad o falso? Da una respuesta de tu cabeza ahora. Es falso. Bueno, aunque las personas usan estos términos indistintamente, algunas personas dicen procesamiento de imágenes para la visión por computadora, algunas personas pueden decir visión por computadora para una aplicación de procesamiento de imágenes, pero en realidad son cosas diferentes. Cuando decimos procesamiento de imágenes, asumimos que tenemos un software, al que llamamos software de procesamiento de imágenes, donde la entrada es una imagen y la salida es una imagen procesada, entonces tenemos un software de procesamiento de imágenes. Sin embargo, cuando hablamos de visión por computadora, nuestra entrada nuevamente es una imagen. Pero la salida es un valor. Puede ser el número de personas en la escena o un vector, una posición, una ubicación GPS que encontramos en una imagen satelital, un límite, una forma. Puede ser cualquier clase, por ejemplo. Entonces, si tenemos un valor al final, decimos que hemos realizado visión por computadora. Y la mayoría de las veces, se hacen juntos, porque la mayoría de las veces la imagen para la visión por computadora no es adecuada para procesar y ser procesada inmediatamente.

3. Procesamiento de Imágenes e Histograma

Short description:

En el procesamiento de imágenes, podemos eliminar ruido, ajustar colores, aumentar imágenes, detectar bordes y esquinas, y hacer que las fotos antiguas parezcan nuevas. El histograma es un elemento crucial en el procesamiento de imágenes, ya que representa la distribución de los valores de brillo dentro de una imagen.

Por lo tanto, es una buena idea realizar primero el procesamiento de imágenes para procesar la imagen, tal vez eliminar algo de ruido y hacerla más adecuada para ser procesada por la visión por computadora. Y luego, la visión por computadora extrae algunos valores, formas, vectores. Más adelante, puedes tomarlos y ponerlos en un algoritmo de aprendizaje automático, aprender algo, clasificar algo, reconocer algo. Así que veremos más ejemplos.

En el procesamiento de imágenes, decimos que nuestra entrada es una imagen y nuestra salida es una imagen procesada. ¿Qué podría ser esto? Solo algunos ejemplos de algoritmos de procesamiento de imágenes. Podría ser el resultado de eliminación de ruido. Tal vez la entrada fuera una imagen ruidosa y la salida sea una imagen sin ruido. Es más suave. Puede ser una aplicación de ajuste de color realizada por un algoritmo de procesamiento de imágenes. Puedes hacer aumento de imágenes, muy interesante para generar conjuntos de datos de prueba para IA, por ejemplo. O puedes eliminar el fondo como hacen las reuniones de Zoom, cambiando el fondo. Esto también es un algoritmo de procesamiento de imágenes. Puedes hacer detección de bordes, detección de esquinas, como implementar. Puedes hacer estos métodos utilizando algoritmos de procesamiento de imágenes, pero supongamos que tienes una imagen del borde al final. Y también puedes hacer que las fotos antiguas parezcan nuevas adivinando los colores que deberían tener al final. Y hay un ejemplo de algo similar a ver videos antiguos en color. Y este es el resultado de un algoritmo de procesamiento de imágenes donde se aplica el procesamiento de imágenes a cada fotograma del video.

Así que te mostraré algunos algoritmos de procesamiento de imágenes, pero tal vez lo más importante para expresar es el histograma, cuando hablamos de cómo hacer algoritmos de procesamiento de imágenes. El histograma es la distribución de los valores de brillo dentro de la imagen. Y es lo más interesante de observar en una imagen cuando la obtienes. Por ejemplo, aquí hay una escena que puedes ver. Si colocamos el histograma, nos referimos a los valores de la imagen. Si estamos hablando de una imagen de 8 bits, los valores van de 0 a 2255 porque deberíamos tener 256 valores al final para una imagen de 8 bits. Cada uno de estos valores nos dice sobre el nivel de brillo de la imagen. Si es muy brillante, si es muy blanco, el valor es 255. Si está completamente oscuro, el valor es cero, y los demás valores de gris están en el medio. Si observas la distribución, cuántos píxeles brillantes hay en esta imagen, si observas las estadísticas, verás que se produce una acumulación cerca de cero, y otra acumulación cerca de los valores más altos de 255. Podemos esperar que estos valores más oscuros, esta montaña, estén causando esta acumulación de valores más oscuros aquí. Nos da una idea sobre los valores dentro de la imagen y si están distribuidos de manera adecuada o no.

4. Ecualización del Histograma y Segmentación

Short description:

Podemos realizar más procesos en la imagen al observar el histograma. La ecualización del histograma estira el histograma para asegurar que la distribución esté entre 0 y 255. Esto se hace utilizando los valores acumulativos del histograma. Los histogramas se utilizan para hacer que las imágenes sean más visibles y también se pueden utilizar para la segmentación.

Y también podemos realizar más procesos en la imagen al solo observar este histograma. Por lo tanto, lo primero importante que debemos saber sobre cómo hacer cosas con el histograma es saber cómo realizar la ecualización del histograma. La mayoría de las veces, cuando tenemos imágenes de entrada, por ejemplo, de un dron, está observando un área limitada donde también proyecta su propia sombra. Tendremos valores muy oscuros.

En primer lugar, debemos asegurarnos de haber estirado estos valores lo suficiente para que haya alguna textura, algunas propiedades dentro. De lo contrario, no podremos realizar aplicaciones de visión por computadora para extraer algunas características y reconocer cosas. Lo primero interesante para observar es la ecualización del histograma, y trata de estirar el histograma para asegurarse de que la distribución se encuentre entre 0 y 255 y podamos ver alguna textura en su interior.

Esta ecualización del histograma se realiza fácilmente al observar los valores acumulativos del histograma. Esto significa que si tenemos la distribución de los valores de brillo, podemos contar cuántos valores de brillo hay hasta este valor para proyectar este histograma acumulativo, luego podemos utilizar esta distribución acumulativa para encontrar los nuevos valores de cada brillo simplemente utilizando la función de distribución acumulativa como una función de proyección para encontrar la nueva distribución, nuevos valores de brillo para proyectar en valores estirados. Así que espero que puedas encontrar más información en las referencias, pero utilizamos estos histogramas para hacer que la imagen sea más visible, las características en su interior sean más visibles, pero también podemos utilizarlo para la segmentación.

5. Técnicas de Procesamiento de Imágenes

Short description:

Podemos usar el histograma para segmentar objetos eligiendo valores de umbral. OpenCV proporciona el método de umbral OTSUS para encontrar automáticamente el valor de umbral. Otro enfoque es utilizar el umbral de histéresis para extraer líneas seleccionando dos umbrales y considerando los píxeles conectados. Mediante operaciones de matriz y ventanas de convolución, podemos realizar diversos algoritmos de procesamiento de imágenes.

Por ejemplo, si observamos el histograma y establecemos un valor de umbral, como recordar la montaña y el fondo del mar, podemos aplicar un umbral al histograma para eliminar el fondo o resaltar el primer plano. También podemos usar el histograma para segmentar objetos. Podemos hacer esta segmentación observando el histograma de la imagen en general, o podemos observar ventanas pequeñas y elegir diferentes umbrales si el brillo fluctúa mucho dentro de la imagen.

La pregunta es cómo elegir automáticamente el valor de umbral para realizar la segmentación. En resumen, OpenCV nos ayuda con un método llamado umbral OTSUS, que se puede utilizar en una sola línea. Lo que hace es ajustar dos gaussianas a este histograma. Puedo ajustar dos gaussianas a dos picos, dos valores de pico que encontré en este histograma, como esto. El lugar de intersección me da el valor de umbral para segmentar automáticamente esta imagen. Podemos discutir más en la sesión de preguntas y respuestas.

Podemos explorar más algoritmos en el área de procesamiento de imágenes. Podemos utilizar los valores de brillo para extraer líneas. ¿Cómo podemos hacer esto? Podemos utilizar el umbral de histéresis, por ejemplo. Lo que hace el umbral de histéresis es seleccionar dos umbrales en lugar de uno, uno es el umbral alto y el otro es el umbral bajo. Luego, observamos los píxeles conectados. Si todos los píxeles conectados son más bajos que el umbral máximo, los eliminamos, ya que no representan nada significativo. Sin embargo, si algunas partes de los píxeles conectados tienen un valor de brillo más alto que el umbral alto, asumimos que todos los píxeles del segmento conectado, incluso si algunos lugares son más oscuros, forman un borde juntos. Esto nos proporciona algoritmos muy robustos, ya que un umbral puede no detectar todas las líneas conectadas, pero dos umbrales con el umbral de histéresis y métodos similares nos ayudan a desarrollar un enfoque más robusto. Te he presentado algunos algoritmos para procesar imágenes en mayor detalle, pero debo ir más rápido. Por favor, revisa las diapositivas más tarde. Para realizar algoritmos de procesamiento de imágenes, podemos realizar operaciones de matriz porque una imagen es una matriz. Podemos aplicar una ventana de convolución y escanear la imagen con ella. Por ejemplo, si la ventana de convolución tiene solo valores de uno, eso significa que colocamos el promedio del valor dentro de la ventana en cada píxel mientras viajamos, y al final obtenemos píxeles promediados, lo que nos da una imagen suavizada. Si reemplazamos esta ventana de convolución por una forma gaussiana, eso significa que el píxel central tiene la mayor influencia cuando realizamos el promedio ponderado. Y el píxel más alejado tiene un menor impacto en el promedio ponderado.

6. Técnicas de Procesamiento de Imágenes y Visión por Computadora

Short description:

Los algoritmos de procesamiento de imágenes se pueden realizar en el dominio de frecuencia convirtiendo la imagen en un espectro de frecuencia y aplicando filtros. La visión por computadora extrae características importantes, como esquinas y bordes, para reconocer objetos. Se utilizan vectores descriptores para algoritmos de aprendizaje automático. La visión por computadora permite la adaptación manual, mientras que la IA encuentra características automáticamente. La IA requiere conjuntos de datos grandes, mientras que la visión por computadora puede usar una sola plantilla de imagen. Los métodos de visión por computadora no siempre requieren una GPU, a diferencia de los métodos de IA.

menos contribución cuando hacemos el promedio. Así nos ayuda a lograr dos resultados, que están suavizados, pero los bordes no se suavizan mucho, los bordes se preservan al final. Te aconsejo que revises mis diapositivas más tarde, las compartiré, pero también es posible realizar estos algoritmos de procesamiento de imágenes en el dominio de frecuencia convirtiendo la imagen en un espectro de frecuencia y luego procesarla allí aplicando un filtro pasa bajos, un filtro pasa altos y luego convertirlo de nuevo al dominio de la imagen para obtener resultados. Todo lo que hemos hecho aquí en escala de grises también es posible hacerlo en las bandas roja, verde y azul de la imagen directamente, y tal vez combinar los resultados más tarde, pero lo más interesante para las personas en IA es ver los métodos de aumento que podemos hacer con los métodos de procesamiento de imágenes para generar una gran cantidad de datos que podemos usar. Después de procesar la imagen, viene la visión por computadora. La visión por computadora intenta extraer características importantes. Llamamos a esto características locales, para observar la imagen, para reconocer cosas. Para hacerlo, intentamos desarrollar algunos métodos que puedan identificar esquinas, bordes afilados o propiedades de textura específicas, como lo hizo Harris con su algoritmo, comparando cada ventana pequeña con su vecino para ver si el vecino hizo un cambio significativo o no. Aquí está el mapa de Harris en la parte superior derecha que obtuvo. Si hay un cambio significativo al comparar el vecino, se resalta. Luego, cuando lo controló, obtuvo esquinas al final. Este es el algoritmo de Harris. Luego, más tarde, otras personas propusieron enfoques heurísticos o enfoques de filtrado de paso de banda que son más robustos a los efectos del ruido, porque el de Harris no era robusto a los efectos del ruido. Si hay un píxel de ruido, se resaltará al final. ¿Son suficientes las características para el reconocimiento? No, responderé por ti. Necesitamos describir cada característica con un vector de características que llamamos vector descriptor para poder utilizar algoritmos de aprendizaje automático para aprender o clasificar cosas. Por favor, mira la extracción del vector descriptor y te lo doy dentro del cuadro de código fuente que te ofrece directamente OpenCV y hay diferentes métodos para usar estos vectores descriptores para reconocer o emparejar cosas, como emparejar directamente con una plantilla que ya tenemos en la memoria. Podemos tratar de encontrar los descriptores más similares dentro de la imagen o podemos tratar de observar la distribución especial de estos vectores descriptores con una teoría de grafos. Y te di más ejemplos, pero antes de terminar, quiero discutir cómo es diferente de los algoritmos de IA que conocemos. ¿Significa que si desarrollamos IA, con algoritmos más sofisticados, logramos más? No siempre. A veces la visión por computadora y el aprendizaje automático vienen con más ventajas porque adaptamos manualmente todo y la IA viene con otras ventajas. Así que enumeré algunas listas de comparación aquí y en general, la visión por computadora nos permite adaptar manualmente lo que estamos observando. Sin embargo, la IA encuentra las buenas características por sí misma. Hace que las cosas tal vez sean más robustas o generalizadas, pero también puede hacer que las cosas sean más vulnerables a ataques adversarios cuando no podemos adaptar manualmente qué observar de manera significativa. La IA siempre necesita un gran número de conjuntos de datos para aprender. Sin embargo, como puedes ver, si estamos utilizando visión por computadora, podemos usar solo una plantilla de imagen para encontrar cosas similares. Con los métodos de visión por computadora, puede ser desafiante encontrar un modelo óptimo porque mostramos solo una plantilla. Sin embargo, la IA aprende de un gran conjunto de datos, tal vez pueda encontrar una mejor generalización. Y finalmente, para los métodos de visión por computadora, no siempre se necesita una GPU. Pero con los métodos de IA, para desarrollar y encontrar una solución óptima, definitivamente se necesita una GPU. Así que por favor, sigue adelante, escribe el código que abrirá tu cámara

7. Conclusiones y Procesamiento de Audio

Short description:

Tengo que cerrarlo ahora, pero estoy feliz de responder tus preguntas. Puedes encontrar más sobre mí en mi sitio web y Twitter. Suscríbete a mi canal de YouTube y boletín informativo para obtener contenido gratuito. En cuanto al procesamiento de audio, OpenCV está destinado a la visión por computadora y al procesamiento de imágenes, no al audio. El audio es unidimensional y basado en el tiempo, mientras que las imágenes son bidimensionales. Las bibliotecas de TensorFlow pueden ser más adecuadas para el procesamiento de audio.

y obtener una imagen que puedas comenzar a usar con los algoritmos de OpenCV. Y esto es un tiempo muy corto. Desafortunadamente, tengo que cerrarlo ahora y estoy muy feliz de responder tus preguntas y profundizar más en el tema. Muchas gracias por invitarme. Puedes encontrar más información sobre cómo contactarme en mi sitio web, mi nombre y apellido.com, y puedes encontrarme en Twitter. Por favor, suscríbete a mi canal de YouTube donde enseño mucho y también a mi boletín informativo para obtener todo el contenido gratuito que entrego cada mes. Muchas gracias.

Hola, Raquel. Hola. ¿Cómo estás hoy? Estoy bien. Gracias. Gracias. Muy contenta de estar aquí. Muy buena conferencia. Genial. Bueno, todos estamos contentos de que estés aquí. Y queremos comenzar esta conferencia. Bueno, ya la hemos comenzado, pero queremos continuar y seguir adelante con algunas preguntas increíbles de nuestra audiencia, ¿verdad? Porque tienen muchas preguntas para ti. Bueno, aquí hay una buena pregunta. Vale, ¿cuáles son algunos ejemplos de procesamiento que se pueden hacer en el dominio de, como, frecuencia y audio? ¿Se puede usar OpenCV para eso, por ejemplo? Oh, para el procesamiento de audio, OpenCV está destinado a Open Computer Vision, que significa visión por computadora y procesamiento de imágenes. Por lo tanto, no está destinado para el procesamiento de audio directamente, pero supongo que podrías encontrar tal vez una o dos funciones que te permitan procesar señales de audio de una dimensión también. Como hemos visto en las diapositivas, todas las imágenes que estamos viendo son métricas bidimensionales. Por lo tanto, son un poco diferentes al audio, que es una dimensión y está basado en el tiempo. Así que es OpenCV. No está destinado para el procesamiento de sonido. Tienes razón. Estoy seguro de que puedes beneficiarte de algunas bibliotecas de TensorFlow, pero ¿otras bibliotecas? Tal vez sea bueno investigar más a fondo. No es realmente mi área. Sí, eso es cierto porque sé que la operación de convolución, aunque tiendes a aplicarla a las imágenes y es la operación fundamental para la visión por computadora. También tenemos convoluciones unidimensionales para el procesamiento de señales, pero sí, eso es cierto. Tampoco he escuchado mucho al respecto en OpenCV, pero definitivamente es relevante en términos de operaciones fundamentales.

QnA

Matemáticas y Enfoque Práctico

Short description:

¿Recomendarías a las personas que comiencen directamente con OpenCV y luego hagan las matemáticas más tarde? Es importante entender los algoritmos detrás del código para garantizar la robustez y una depuración efectiva. La autoeducación a través de recursos en línea puede ser beneficiosa. Un buen equilibrio entre los aspectos prácticos y teóricos es crucial. En el campo de la salud, la visión por computadora se puede utilizar para el reconocimiento del cáncer y determinar el estadio del cáncer mediante la extracción de características.

Sí. Y bien. Aquí hay otra pregunta. Sé que has introducido algo de matemáticas en tus diapositivas mientras también explicas OpenCV y sé que para muchas personas, las matemáticas pueden ser muy intimidantes. Y debido a esto, hay personas que ven las matemáticas y piensan, bueno, no quiero meterme en esto. ¿Recomendarías a las personas que comiencen directamente con OpenCV y luego hagan las matemáticas más tarde, o hay algún otro enfoque para esta visión por computadora que tomarías?

Sí, esa es una muy buena pregunta. En primer lugar, solo quiero mencionar, en mi opinión, que he compartido mis diapositivas. Creo que se anunciará en un sitio web o en Twitter que están las diapositivas de esta charla. Puedes usarlas para encontrar las referencias. Siempre pongo el enlace para leer más. Así que tal vez puedas hacer clic en el enlace y verificar la cita, verificar la fuente para aprender más. Lo que acabas de escuchar en esta charla muy corta, desafortunadamente, no puedo explicar todo en detalle. Pero cuando estás programando, comienzas a hacer cosas, es realmente bueno verificar en la red, de lo contrario, es posible que obtengas un buen resultado con tu programación, pero ¿es realmente un algoritmo robusto que puedes implementar y que funcione en la vida real o cuando hay un error, hay un reconocimiento falso, ¿de dónde viene? No sería fácil debug si no estás al tanto de qué tipo de algoritmos hay detrás o necesitas conocer los parámetros de esta función para ajustarlos. Pero, ¿cómo eliges los parámetros si no conoces la lógica detrás de ellos? No estoy diciendo que vayas y obtengas una maestría o un doctorado, algo así, no todos necesitan hacer eso. Pero sé que los desarrolladores profesionales realmente hacen cosas sólidas y robustas, solo se autoeducan. Y hoy en día todo está en línea. Recomendaría que mientras estás escribiendo código, funciona bien. Pero ve y verifica las matemáticas detrás de él, solo en línea, leyendo algunos blogs, foros y haciendo preguntas a otras personas. Sería beneficioso.

Sí, estoy completamente de acuerdo en que un buen y saludable equilibrio entre el aspecto práctico real y el aspecto teórico puede hacer maravillas para ayudarte a comprender exactamente en qué te estás metiendo. Sí. Gracias por esa respuesta. Y tenemos algunas preguntas más aquí también. Permíteme sacar algunas de ellas. OK, ¿tienes alguna idea o técnicas de visión por computadora que usarías en el campo de la salud o la agricultura o cualquier otra causa social que te importe?

Sí, muchas en el campo de la salud. Lo he utilizado para el reconocimiento del cáncer, el cáncer de piel y para identificar si el área del cáncer es maligna o benigna. Entonces, ¿en qué etapa del cáncer podría estar? Y para este propósito, encontré la extracción de características inspirada en los médicos. Me explicaron cómo ven la piel.

Clasificación del cáncer y agricultura

Short description:

Los médicos pueden clasificar visualmente el estadio del cáncer basándose en su experiencia. Se pueden utilizar algoritmos matemáticos para la extracción de características y la clasificación. La inteligencia artificial puede ayudar a los médicos en la toma de decisiones, proporcionando una segunda opinión y normalizando respuestas. En agricultura, se utiliza la visión por computadora y OpenCV para monitorear la salud de las plantas y detectar problemas antes de que se propaguen.

Y cómo clasifican el estadio del cáncer simplemente mirando con su ojo. Por supuesto, debe haber una biopsia, pero los médicos han visto tantos ejemplos y pueden simplemente mirar y decir. Y estaba realmente curioso, ¿cómo miras y dices? Explícamelo. Cuando los médicos me lo explicaron, encontré una forma de describir lo que ellos explican matemáticamente, luego se convirtió en un algoritmo de extracción de características, que se podría utilizar para la clasificación del estadio del cáncer al final, siempre me inspira a pensar cómo los humanos ven esto y cómo los humanos reconocen y ¿puedo encontrar un método matemático para hacer algo similar? Sí. Creo que ese tipo de comprensión meta de cómo un humano haría esto y tratar de instruir a una máquina para hacer algo muy similar es muy importante. Y a veces también es muy difícil en términos de atención médica, porque sé que si, por ejemplo, en la detección de cáncer, los errores que cometas pueden ser más fatales, estás jugando con la vida humana. Entonces, hay ese sube y baja de, está bien usar artificial intelligence? ¿Para ser el tomador de decisiones, pero queremos ser un apoyo en la toma de decisiones, para el médico siempre en esas áreas críticas, no queremos reemplazar al ser humano, sino simplemente ser un apoyo. Y lo segundo, si pones a 10 médicos, no llegarán a la misma respuesta. Si les preguntas en qué etapa está el cáncer. También tienen algunas fluctuaciones en sus respuestas. Entonces, tal vez un sistema de machine learning podría ser una forma de normalizar sus respuestas. Y simplemente obtener una segunda opinión de la máquina. Entendido. Sí. Gracias por esa respuesta. Y creo que tenemos una pregunta más final a la que podríamos responder. En este momento, tal vez en tu trabajo actual, probablemente en tu startup y Create4D, ¿cómo estás utilizando actualmente la visión por computadora y incluso OpenCV en este trabajo, en tu espacio de trabajo actual? Sí, es muy interesante ver lo que está sucediendo en la Tierra, especialmente en el área de la agricultura, ya que es mi pasión ver la security alimentaria y cómo están las plantas. ¿Tendremos suficiente comida pronto en el supermercado o no? Y los métodos que describí en esta charla, como la convolución simple, ayudan mucho a extraer algunas características, que pueden indicar un cambio repentino en un área local, tal vez algo está mal en esta área, y puedo ir allí y visitar y rescatar las plantas antes de que mueran o propaguen la enfermedad a otras plantas. Eso es lo que quiero. Genial, impresionante. Bueno, muchas gracias Farola. Creo que ahora mismo no tenemos tiempo para más preguntas, pero agradezco que hayas venido aquí y respondido nuestras preguntas y también nos hayas dado una buena visión de la visión por computadora, sí, la visión por computadora y todo eso. Quiero decir, eso es increíble. Por cierto, si alguien quiere hablar con Brielle ahora mismo, ella estará disponible en su sala de conferencias para responder sus preguntas en el evento de que no hayas podido hacer tus preguntas, al menos en esta sesión de preguntas y respuestas. Así que muchas gracias por acompañarnos, Brielle. Fue genial tenerte aquí, y nos veremos más tarde en tu sala de conferencias. Gracias. Hasta luego por ahora.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
ML conf EU 2020ML conf EU 2020
41 min
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
TensorFlow.js enables machine learning in the browser and beyond, with features like face mesh, body segmentation, and pose estimation. It offers JavaScript prototyping and transfer learning capabilities, as well as the ability to recognize custom objects using the Image Project feature. TensorFlow.js can be used with Cloud AutoML for training custom vision models and provides performance benefits in both JavaScript and Python development. It offers interactivity, reach, scale, and performance, and encourages community engagement and collaboration between the JavaScript and machine learning communities.
Transformers.js: Machine Learning de Última Generación para la Web
JSNation 2025JSNation 2025
27 min
Transformers.js: Machine Learning de Última Generación para la Web
Joshua introduces Transformers JS and Hugging Face, emphasizing community collaboration and pre-trained models. Transformers JS evolution led to 1.4 million monthly users, supporting 155 architectures. The library's browser-based capabilities offer real-time processing, cost-efficiency, and scalability. Integration enhancements include native web GPU execution and React Native implementation. Web ML implementation focuses on Onyx Runtime for device execution and web GPU for resource optimization. Browser-based ML applications cover vision, speech recognition, and text-to-speech. Advanced implementations include multimodal applications and educational tools. Interactive AI demonstrations showcase semantic search and conversational AI scenarios. Model licensing transitions to ECMAScript for efficiency and model redownloading factors are discussed.
Uso de MediaPipe para Crear Aplicaciones de Aprendizaje Automático Multiplataforma con React
React Advanced 2021React Advanced 2021
21 min
Uso de MediaPipe para Crear Aplicaciones de Aprendizaje Automático Multiplataforma con React
Top Content
MediaPipe is a cross-platform framework that helps build perception pipelines using machine learning models. It offers ready-to-use solutions for various applications, such as selfie segmentation, face mesh, object detection, hand tracking, and more. MediaPipe can be integrated with React using NPM modules provided by the MediaPipe team. The demonstration showcases the implementation of face mesh and selfie segmentation solutions. MediaPipe enables the creation of amazing applications without needing to understand the underlying computer vision or machine learning processes.
Observabilidad con diagnostics_channel y AsyncLocalStorage
Node Congress 2023Node Congress 2023
21 min
Observabilidad con diagnostics_channel y AsyncLocalStorage
Observability with Diagnostics Channel and async local storage allows for high-performance event tracking and propagation of values through calls, callbacks, and promise continuations. Tracing involves five events and separate channels for each event, capturing errors and return values. The span object in async local storage stores data about the current execution and is reported to the tracer when the end is triggered.
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
JSNation Live 2021JSNation Live 2021
39 min
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
JavaScript with TensorFlow.js allows for machine learning in various environments, enabling the creation of applications like augmented reality and sentiment analysis. TensorFlow.js offers pre-trained models for object detection, body segmentation, and face landmark detection. It also allows for 3D rendering and the combination of machine learning with WebGL. The integration of WebRTC and WebXR enables teleportation and enhanced communication. TensorFlow.js supports transfer learning through Teachable Machine and Cloud AutoML, and provides flexibility and performance benefits in the browser and Node.js environments.

Workshops on related topic

¿Pueden los LLM aprender? Personalicemos un LLM para chatear con tus propios datos
C3 Dev Festival 2024C3 Dev Festival 2024
48 min
¿Pueden los LLM aprender? Personalicemos un LLM para chatear con tus propios datos
WorkshopFree
Andreia Ocanoaia
Andreia Ocanoaia
Sientes las limitaciones de los LLMs? Pueden ser creativos, pero a veces carecen de precisión o se basan en información desactualizada. En esta masterclass, desglosaremos el proceso de construir y desplegar fácilmente un sistema de Generación con Recuperación Mejorada. Este enfoque te permite aprovechar el poder de los LLMs con el beneficio adicional de precisión factual e información actualizada.
Aprovechando LLMs para Construir Experiencias de IA Intuitivas con JavaScript
JSNation 2024JSNation 2024
108 min
Aprovechando LLMs para Construir Experiencias de IA Intuitivas con JavaScript
Workshop
Roy Derks
Shivay Lamba
2 authors
Hoy en día, todos los desarrolladores están utilizando LLMs en diferentes formas y variantes, desde ChatGPT hasta asistentes de código como GitHub CoPilot. Siguiendo esto, muchos productos han introducido capacidades de IA integradas, y en este masterclass haremos que los LLMs sean comprensibles para los desarrolladores web. Y nos adentraremos en la codificación de tu propia aplicación impulsada por IA. No se necesita experiencia previa en trabajar con LLMs o aprendizaje automático. En su lugar, utilizaremos tecnologías web como JavaScript, React que ya conoces y amas, al mismo tiempo que aprendemos sobre algunas nuevas bibliotecas como OpenAI, Transformers.js
Deja que la IA sea tu Documentación
JSNation 2024JSNation 2024
69 min
Deja que la IA sea tu Documentación
Workshop
Jesse Hall
Jesse Hall
Únete a nuestro masterclass dinámico para crear un portal de documentación impulsado por IA. Aprende a integrar ChatGPT de OpenAI con Next.js 14, Tailwind CSS y tecnología de vanguardia para ofrecer soluciones de código e resúmenes instantáneos. Esta sesión práctica te equipará con el conocimiento para revolucionar la forma en que los usuarios interactúan con la documentación, convirtiendo las búsquedas tediosas en descubrimientos eficientes e inteligentes.
Aspectos destacados:
- Experiencia práctica en la creación de un sitio de documentación impulsado por IA.- Comprensión de la integración de la IA en las experiencias de usuario.- Habilidades prácticas con las últimas tecnologías de desarrollo web.- Estrategias para implementar y mantener recursos de documentación inteligente.
Tabla de contenidos:- Introducción a la IA en la documentación- Configuración del entorno- Construcción de la estructura de documentación- Integración de ChatGPT para documentación interactiva
Prácticas con TensorFlow.js
ML conf EU 2020ML conf EU 2020
160 min
Prácticas con TensorFlow.js
Workshop
Jason Mayes
Jason Mayes
Ven y descubre nuestro masterclass que te guiará a través de 3 recorridos comunes al usar TensorFlow.js. Comenzaremos demostrando cómo usar uno de nuestros modelos predefinidos, clases de JS muy fáciles de usar para trabajar rápidamente con ML. Luego veremos cómo volver a entrenar uno de estos modelos en minutos utilizando el aprendizaje por transferencia en el navegador a través de Teachable Machine y cómo se puede usar en tu propio sitio web personalizado. Finalmente, terminaremos con un hola mundo escribiendo tu propio código de modelo desde cero para hacer una regresión lineal simple y predecir los precios ficticios de las casas en función de sus metros cuadrados.
La Guía del Autoestopista de la Galaxia de Ingeniería de Aprendizaje Automático
ML conf EU 2020ML conf EU 2020
112 min
La Guía del Autoestopista de la Galaxia de Ingeniería de Aprendizaje Automático
Workshop
Alyona Galyeva
Alyona Galyeva
¿Eres un Ingeniero de Software al que se le asignó la tarea de implementar un modelo de aprendizaje automático o aprendizaje profundo por primera vez en tu vida? ¿Te preguntas qué pasos seguir y cómo se diferencia el software impulsado por IA del software tradicional? Entonces este es el masterclass adecuado al que asistir.
Internet ofrece miles de artículos y cursos gratuitos que muestran lo fácil que es entrenar e implementar un modelo de IA simple. Al mismo tiempo, en la realidad es difícil integrar un modelo real en la infraestructura actual, depurarlo, probarlo, implementarlo y monitorearlo correctamente. En este masterclass, te guiaré a través de este proceso compartiendo consejos, trucos y herramientas de código abierto favoritas que te facilitarán mucho la vida. Así que al final del masterclass, sabrás por dónde empezar tu viaje de implementación, qué herramientas utilizar y qué preguntas hacer.
Introducción al Aprendizaje Automático en la Nube
ML conf EU 2020ML conf EU 2020
146 min
Introducción al Aprendizaje Automático en la Nube
Workshop
Dmitry Soshnikov
Dmitry Soshnikov
Este masterclass será tanto una introducción suave al Aprendizaje Automático, como un ejercicio práctico de uso de la nube para entrenar modelos de aprendizaje automático simples y no tan simples. Comenzaremos utilizando ML Automático para entrenar el modelo para predecir la supervivencia en el Titanic, y luego pasaremos a tareas de aprendizaje automático más complejas como la optimización de hiperparámetros y la programación de series de experimentos en el clúster de cómputo. Finalmente, mostraré cómo Azure Machine Learning se puede utilizar para generar pinturas artificiales utilizando Redes Generativas Adversarias, y cómo entrenar un modelo de preguntas y respuestas de lenguaje en documentos de COVID para responder preguntas relacionadas con COVID.