¿Cuáles son algunas herramientas de software comunes utilizadas por los desarrolladores de Inteligencia Artificial?

No diría que soy un desarrollador de IA por definición, pero he creado herramientas para mejorar el trabajo en algoritmos de Computer Vision. Uno es un anotador.

Dado que gran parte de la IA se trata de datos de verdad básica y conjuntos de datos etiquetados, tienes suerte como Google y tienes servicios que crean grandes cantidades de conjuntos de datos etiquetados (piensa en “marcar como spam” en Gmail o “etiquetar la cara de tus amigos” en Facebook) o tienes que construir y desinfectar tu propio conjunto de datos. [No estoy hablando específicamente sobre el bombo de aprendizaje profundo aquí o las técnicas donde la IA está destinada a descubrir la estructura en los datos y aprender por sí sola.]

Si introduce estos datos en su algoritmo, lo siguiente que desea probar es cómo se generaliza a datos desconocidos. En este caso, dejarías que un humano “juegue” contra tu algoritmo. Por lo tanto, su software necesitaría diferentes técnicas de visualización y permitiría la opinión de un supervisor humano, que actúa como un juez y le dice si la IA es correcta o incorrecta. Idealmente, entonces se auto-optimizaría o volvería a entrenar en base a dicha retroalimentación.

En mi caso, quería detectar lo que mira un conductor en función de una sola cámara en el tablero del automóvil. Uno de mis enfoques fue detectar características faciales en el video, extraer información sobre la deformación de la forma y ajustar / ajustar un modelo 3D (avatar) en función de los parámetros extraídos y hacer un poco de trazado de rayos. Aquí hay una visualización que permite a un observador detectar errores en la clasificación. Los modelos para detectar las características reales, tuvieron que ser entrenados en un conjunto de datos de imagen con puntos de referencia correspondientes que tuvieron que ser anotados manualmente de antemano (ver 300 Faces In-the-Wild Challenge (300-W), ICCV 2013).

Aquí hay una versión anterior de mi software “Gaze Tracker Studio” que muestra un video y el mundo 3D correspondiente que se calcula.

La respuesta corta es: Desafortunadamente, tuve que desarrollar estas herramientas por mi cuenta ya que no había Framework o IDE AI comercial. * Sin embargo, he usado OpenCV y la biblioteca dlib C ++ para las cosas de CV y ​​estaba agradecido de que existan. .

Finalmente, pensé que era malo que no hubiera un kit o CV IDE, así que desarrollé uno para mis propios módulos. Una herramienta como esta puede ayudar en el desarrollo de algoritmos de IA o CV, especialmente para “depurar” algoritmos y analizar el dominio, pero no ayuda a diseñar realmente los algoritmos o reemplaza la ciencia detrás de los algoritmos modernos:

Esto debería proporcionar una buena visión general de las herramientas que tuvieron que crearse para un caso específico de dominio. Sin desmoralizar (;-), uno tendrá que escribir mucho código. No hay muchas herramientas disponibles y existe la impresión constante de que las grandes empresas tienen kits de herramientas avanzados pero los mantienen en secreto. Para todos los aspirantes a empresarios que leen este artículo: hay mucho espacio para la innovación, el potencial para ganar dinero y cambiar la forma en que se hace la ciencia.

Para resumirlo: cada investigador de CV en algún momento escribirá su propio reproductor de video o navegador de imágenes para visualizar los resultados; y cada investigador de IA en algún momento creará etiquetas para entrenar modelos. El trabajo se realiza una y otra vez y sería genial tener mejores herramientas.

Estaba pensando en el código abierto de mi software, pero algunas partes se basan en mi investigación y son propiedad de MIT. El proceso de revisión de código abierto del MIT aún se está ejecutando. El siguiente problema es que este es un proyecto ENORME y mantenerlo requeriría una gran parte de mi tiempo, que actualmente prefiero gastar en mi inicio:

autobeat: toda tu música en un solo lugar 🙂

* muchos desarrolladores de IA usan MATLAB u Octave, pero incluso con estas herramientas uno tendrá que escribir mucho código. Además, creo que obtendrá ventajas competitivas reales si desarrolla módulos y herramientas especializados por su cuenta.