¿Cuál es la relación entre aprendizaje automático, procesamiento de imágenes y visión por computadora?

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:

  1. La capacidad de hacer que la computadora vea el gesto que se realiza.
  2. 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.


(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.

La visión por computadora está relacionada con el procesamiento de imágenes en el sentido de que el front-end de visión por computadora se compone de técnicas de procesamiento de imágenes como la reducción de ruido, el blanqueamiento o la mejora de la imagen. Hay mucha superposición entre la visión por computadora y el procesamiento de imágenes.

El aprendizaje automático, por otro lado, es flexible, ya que se puede usar en la visión por computadora o en el procesamiento de imágenes.

Procesamiento de imágenes

  1. El objetivo del procesamiento de imágenes es mejorar o comprimir la información de imagen / video.
  2. Utiliza operaciones basadas en píxeles, como transformar una imagen en otra. Por ejemplo, aplicando una rotación en píxeles.
  3. No se extrae información significativa de esas operaciones basadas en píxeles.

Visión por computador

  1. El objetivo de la visión por computadora es extraer información significativa de imágenes / videos. Tal como si un determinado objeto está presente o no en una escena particular.
  2. La visión por computadora no se limita a las operaciones basadas en píxeles, puede ser compleja, mucho más compleja que el procesamiento de imágenes.
  3. Esas operaciones complejas se pueden resumir en detectores de características que pueden proporcionar información rica sobre el contenido de la imagen / video.

Aprendizaje automático

  1. El objetivo del aprendizaje automático es optimizar los parámetros diferenciables para minimizar una determinada función de pérdida / costo.
  2. El aprendizaje automático se puede usar tanto en el procesamiento de imágenes como en la visión por computadora, pero ha encontrado más uso en la visión por computadora que en el procesamiento de imágenes.
  3. En ML, la función de pérdida puede tener un significado físico, en cuyo caso las características aprendidas pueden ser bastante informativas, pero este no es necesariamente el caso para todas las situaciones.

La relación entre ellos puede ser bastante compleja. Por ejemplo, las redes neuronales convolucionales están utilizando las tres técnicas, las convoluciones provienen del procesamiento de imágenes, ya que funcionan por vecindad de píxeles pequeños, la necesidad de extraer el contenido de la imagen proviene de la visión por computadora, mientras que los parámetros del núcleo se ajustan utilizando técnicas de aprendizaje automático.

Por lo tanto, estos campos se superponen considerablemente, pero son diferentes.

Espero que esto ayude.

El procesamiento de imágenes y la visión por computadora son dos temas a estudiar. Ambos están relacionados con la visión, por lo que algunos dirían que el procesamiento de imágenes es un superconjunto de la visión por computadora. Personalmente, no me importan esos matices en los límites entre estos dos temas.

El aprendizaje automático es un método para abordar problemas, es un concepto ortogonal para el procesamiento de imágenes o la visión por computadora.

Puede utilizar el aprendizaje automático para abordar problemas de procesamiento de imágenes, pero no es obligatorio. La compresión de imágenes, por ejemplo, puede abordarse con elegancia sin aprendizaje automático, pero algunas investigaciones de vanguardia están utilizando el aprendizaje automático ahora.

Lo mismo ocurre con los problemas de visión por computadora, el famoso algoritmo de clasificación de imágenes SIFT o HoG no está basado en el aprendizaje automático, se puede construir un clasificador de imagen razonablemente bueno sin ningún algoritmo de aprendizaje automático, pero los algoritmos basados ​​en el aprendizaje automático están dominando esta área en este momento.

En una linea

Visión por computadora = Procesamiento de imágenes (para extracción de funciones) + Aprendizaje automático (uso de estas funciones para construir un modelo)

Sin embargo, esta es una explicación muy abstracta.