La visión por computadora y el aprendizaje automático son dos ramas principales de la informática que pueden funcionar y potencian sistemas muy sofisticados que dependen exclusivamente de los algoritmos CV y ML, pero cuando combinas los dos, puedes lograr aún más. Es decir, no necesita aprender uno antes del otro o incluso simultáneamente y hay casos de uso específicos o dominios en los que consideraría un matrimonio entre los dos.
Aquí hay un ejemplo: un proyecto en el que trabajé en mis días de ingeniería tenía como objetivo reconocer los gestos con las manos humanas en tiempo real para realizar tareas simples: abrir / cerrar aplicaciones, cambiar diapositivas de PowerPoint, reproducir / pausar música, etc. Este proyecto, como puedes adivinar, necesitaba dos ingredientes centrales para tener éxito:
- La capacidad de hacer que la computadora vea el gesto que se realiza.
- La capacidad de entender el gesto que se realiza.
La primera parte es un problema de CV. En mi caso, utilizamos algoritmos de detección de piel que capturarían múltiples cuadros mientras se realizaba el gesto, detectarían la posición dentro de cada mano convirtiendo cada imagen a escala de grises y omitiendo el ruido de fondo (enfocando solo en la mano) y trazando El camino seguido. Por lo tanto, aquí los pasos del procesamiento de imágenes conducen a la extracción de características que se utilizará para el procesamiento posterior. Todo esto se ejecutó utilizando técnicas de visión artificial y esta parte de la base del código básicamente permitió que la computadora usara una cámara web para “ver” lo que estaba sucediendo y grabarlo en un idioma que entendiera.
- ¿Qué es un desbordamiento de búfer?
- Tengo un problema de algoritmo. ¿Como puedó resolver esté problema?
- ¿Qué temas de estadística y probabilidad se deben conocer antes de comenzar el aprendizaje automático?
- ¿Cómo se ha desarrollado Virtual Studio?
- Con respecto a estas últimas noticias de NSA pirateando nuestras bases de datos e invadiendo incluso redes gubernamentales altamente confidenciales, tengo una fuerte motivación para dedicarme al campo de la Criptografía. ¿Desde dónde y cómo debo comenzar?
(Muestras de imágenes preliminares del proyecto)
La segunda fase fue hacer que la computadora entendiera lo que estaba sucediendo. La mayoría de las veces, esto se acompaña de la capacidad de “recordar” o “reconocer” un patrón dado. En este ejemplo, el patrón era el camino seguido por el usuario (imagine un camino muy lineal para gestos rectos arriba / abajo / izquierda / derecha mientras que uno curvo para cualquier cosa que implique movimientos circulares). La coincidencia de patrones era esencial aquí e incluso antes de que el patrón dado pudiera coincidir con la base de conocimiento de la computadora, su base de conocimiento tenía que construirse. Aquí es donde viene el aprendizaje automático. Utilizamos una técnica de ML popular utilizando un modelo de Markov oculto para adaptarnos a las necesidades de nuestro sistema. Lo capacitamos en cientos de muestras (básicamente, realizamos cada gesto varias veces) para que el sistema fuera capaz de detectar y comprender diferencias sutiles en los movimientos para el mismo gesto realizado por diferentes usuarios.
Este es uno de los muchos, muchos escenarios en los que podría acoplar estos dos campos. Piense en imágenes de seguridad, reconocimiento facial, reconocimiento de gestos, detección de movimiento utilizando cámaras de profundidad como Kinect, etc. Todos funcionan con alguna combinación de algoritmos CV y ML. La visión por computadora aprovecha el poder de las complejas técnicas de procesamiento de imágenes para extraer características significativas de muestras de imagen / video dadas, mientras que el aprendizaje automático trata el reconocimiento de patrones y el aprendizaje computacional en sistemas de inteligencia artificial, etc., utilizando algoritmos sofisticados de predicción de datos, redes neuronales artificiales y mucho más. En cuanto a lo que debe aprender primero, en realidad no importa porque necesitaría pasar mucho tiempo entendiendo los matices de cada campo. Puede ser útil ir en el orden de lo que se necesita secuencialmente primero para que su idea o proyecto funcione.