Estoy trabajando específicamente en el aprendizaje automático (ML) aplicado a los sistemas de visión por computadora (CV), por mi cuenta, nadie me paga por eso. Estoy diseñando y construyendo un sistema de visión que integra muchos atributos del sistema visual humano (HVS), en un marco compacto y eficiente, como la atención, el aprendizaje gradual, la visión periférica y periférica y el saccade del ojo como el escaneo de escenas visuales al integrar múltiples características de alto nivel juntas. El proyecto se llama sistema de reconocimiento e inferencia integrado por IRIS que comenzó en enero de 2016.
Así que he estado iterando en el diseño durante un año y finalmente este año podría hacer una demostración y escribir sobre los resultados que he estado obteniendo con este sistema. Mi objetivo es que el sistema rompa algunos registros en algunos conjuntos de datos de detección de objetos. No tengo una máquina poderosa para escalar este sistema para entrenar en el desafío ImageNet de clase 1000, así que lo probaré solo en conjuntos de datos MNIST y Pascal VOC para la detección de objetos. Luego, tengo el objetivo de desarrollar aplicaciones que pueda implementar utilizando el sistema completo.
IRIS se finalizará como API más adelante y se pondrá a disposición del público (sin el código fuente), a un costo razonable, para aplicaciones en robots, sistemas de visión integrados, automóviles autónomos y aplicaciones médicas. También estoy planeando construir sistemas de robots utilizando la API IRIS y entrar en un negocio de robótica suministrando juguetes o robots domésticos con tecnología IRIS.
- ¿Por qué el uso de información mutua / ganancia de información / funciones similares funciona mejor que simplemente usar el error promedio (usando probabilidad) para un booleano (conjunto de datos de 2 clases) al construir un árbol de decisión?
- ¿Cuáles son las principales aplicaciones de aprendizaje profundo en centros de datos?
- ¿Por qué es tan lento TensorFlow?
- Cómo configurar Sublime Text para el entorno de Machine Learning
- ¿Por qué decimos que la máquina de vectores de soporte y muchas otras técnicas de aprendizaje automático tienen un supuesto subyacente de iid?
También he creado una aplicación panorámica [1] utilizando nuevos algoritmos de visión por computadora que desarrollé personalmente. Aunque la mayoría de los algoritmos en esa aplicación no están basados en ML, la fase de coincidencia sí lo es, he desarrollado un esquema de coincidencia de características basado en ML rápido para el sistema de visión detrás del sistema de reconocimiento panorámico, llamo a ese algoritmo el “FastMatcher”. No puedo entrar en detalles explicando cómo el sistema combina imágenes juntas porque todavía no he hecho públicos los algoritmos y actualmente no estoy planeando hacer públicos los algoritmos en el corto plazo.
También codifico cada uno de los módulos del sistema anteriores desde cero utilizando programación hardcore C ++. He estado trabajando durante varios años construyendo una biblioteca de visión y aprendizaje automático para impulsar todos mis proyectos. Entonces, para crear el sistema de visión para la aplicación, tuve que comenzar literalmente de la nada, idear algoritmos nuevos y escribir una biblioteca de álgebra lineal, implementando algoritmos como la descomposición de valores singulares (SVD), álgebra no lineal como el algoritmo Levernberg-Marquardt para ajuste de paquete, detector de región prominente, coincidencia de características, integrador de características, consenso de muestras aleatorias (RANSAC), estimador de homografía y muchos, muchos más. Además, introduje redes neuronales, máquinas de vectores de soporte (SVM) y algoritmos de retropropagación (backprop) + descenso de gradiente estocástico (SGD) en la biblioteca como medios para ayudar a la implementación del nuevo sistema IRIS.
También me enseñé todo eso: inteligencia artificial (IA), ML, procesamiento de imágenes, CV y programación en C ++ (competente), Java (desarrollo de Android) y Python (todavía aprendiendo). Me enseñé a mí mismo cómo diseñar e implementar código modular para una fácil administración de la base del código, no solo mentores.
Los amigos se negaron a ayudarme, pensé, joder, lo haré yo mismo.
EDITAR : abriré todo el código una vez que termine IRIS.
Espero que esto ayude.
Notas al pie
[1] Bimostitch Panorama Stitcher – Aplicaciones de Android en Google Play