Ni el algoritmo de seguimiento ni el algoritmo de reconocimiento de objetos son únicos; Lo bueno de la aplicación es la forma en que se han combinado para hacer un proceso de aprendizaje sólido.
El seguimiento se realiza con un rastreador Lucas-Kanade basado en flujo óptico (ver entrada de wikipedia). El reconocimiento utiliza un esquema de clasificación tipo Halet-wavelet. La parte clara es que cuando el usuario identifica algo (automóvil, ojo, etc.) para rastrear / detectar, el sistema de reconocimiento utiliza la entrada inicial del usuario como datos de entrenamiento etiquetados. Después de eso, el sistema de seguimiento se usa para etiquetar datos adicionales, expandiendo el conjunto de entrenamiento sobre diferentes vistas / aspectos del mismo objeto. Esto es excelente hasta que el sistema comienza a desviarse, porque utilizará datos etiquetados incorrectamente para entrenar, y divergerá de la verdad del terreno. La respuesta de Predator a esto es que el sistema genera restricciones positivas y negativas, y busca datos etiquetados incorrectamente. Cuando un objeto se etiqueta como objeto de interés pero no puede ser objeto de interés debido a las restricciones, se agrega al conjunto de entrenamiento negativo. Del mismo modo, un objeto etiquetado como no objeto de interés pero debe ser debido a restricciones se agrega al conjunto de entrenamiento positivo. Después de agregar objetos al conjunto de entrenamiento, el reconocedor se vuelve a entrenar. Hacer esto hace que el sistema sea mejor y mejor con el tiempo.
Para mí, la primera aplicación de este algoritmo de seguimiento sería la generación eficiente de datos de entrenamiento. Una de las partes más difíciles y que requieren más tiempo para hacer el reconocimiento de objetos es generar datos de entrenamiento etiquetados. Requiere que alguien pase una cantidad excesiva de tiempo seleccionando el objeto de interés. Usando Predator, la cantidad de datos etiquetados se expande dramáticamente.
- ¿Hay algún programa en desarrollo que pueda escuchar un idioma y comenzar a aprenderlo, como en Star Trek?
- ¿Qué es Kaggle y cómo debo usarlo exactamente?
- ¿Cuál es el asistente virtual personal más avanzado?
- ¿Se usa el álgebra abstracta en el aprendizaje automático?
- ¿Cómo puedo comparar diferentes arquitecturas de redes neuronales sin entrenarlas durante semanas? ¿Hay alguna forma práctica de verificar si las redes merecen la capacitación completa o no?
La segunda aplicación es la transición del reconocimiento de objetos a video de manera realista. La mayoría del reconocimiento de objetos de video es solo reconocimiento de imágenes estáticas que se realiza rápidamente. Si bien ese reconocimiento rápido aún debe hacerse con Predator, puede representar el movimiento del objeto como una ruta en el espacio de la imagen y usarlo para mejorar el rendimiento. El uso de esto para rastrear muchos objetos en movimiento al mismo tiempo será muy poderoso, ya que permite rastrear, por ejemplo, muchos automóviles o personas al mismo tiempo. Reducirá la confusión y resolverá las ambigüedades, lo que hará que la mayoría de los algoritmos sean inútiles una vez que la densidad del tráfico sea demasiado alta.
Finalmente, Predator debería ser utilizable para generar y entrenar en modelos 3D de objetos y luego usar esos modelos para reconocer objetos. El reconocimiento se realiza actualmente con imágenes en 2D, pero si puede rastrear un objeto a medida que se mueve y cambia de ubicación y aspecto, y puede hacer buenas estimaciones de la postura con el tiempo, puede determinar la forma en 3D. La detección de objetos de imagen estática está fundamentalmente infradeterminada: una amplia variedad de objetos 3D puede producir la misma imagen 2D. Si combina imágenes a lo largo del tiempo con un objeto que está cambiando el lado que está frente a la cámara, puede determinar qué objeto 3D es. Depredador es parte de esa solución.