Cómo configurar el Intel Movidius Neural Compute Stick

En 2017, Intel se me acercó para unirme a su Programa Innovador. Después de un par de entrevistas, me introdujeron como Intel Innovator en el espacio de la IA. La idea de la iniciativa es apoyar a los tecnólogos de todo el mundo que participan en la comunidad al proporcionar hardware de vanguardia, oportunidades de orador y una plataforma para promover su trabajo y relacionarse con más personas.

Intel me envió un Movidius Neural Compute Stick. Es una memoria USB un poco más grande que una memoria USB diseñada específicamente para entrenar y ejecutar principalmente gráficos de redes neuronales, lo cual es particularmente útil en la ejecución de redes para el aprendizaje profundo donde el aprendizaje se produjo a partir de medios como imágenes y videos. Probablemente cubra el aprendizaje profundo en una publicación futura. Desde los puntos de referencia, el dispositivo de computación neural Movidius promete ejecutar modelos hasta cinco veces más rápido que una computadora portátil estándar.

Al recibir el dispositivo, me di cuenta de que actualmente solo se ejecuta en Ubuntu 16.04 y Raspberry Pi 3. Siendo un usuario de macOS, esto era un poco problemático, así que decidí ejecutar una máquina virtual Ubuntu para comenzar a jugar con el dispositivo. Esta guía describe cómo configuré con éxito un entorno aceptable para el dispositivo Movidius y describe brevemente sus capacidades.

Configurar una máquina virtual

El primer paso es poner en funcionamiento una máquina virtual (VM). Aunque hay varias opciones diferentes de software de VM, Virtual Box es de libre acceso y es fácil de configurar y usar. Las alternativas como Parallels y VMWare pueden proporcionar un mejor rendimiento si la VM está destinada a ser utilizada como estación de trabajo principal.

  1. Descargar Virtual Box.
  2. Instale Virtual Box usando el instalador descargado.
  3. Descargar Virtual Box Extension Pack.
  4. Instale Virtual Box Extension Pack usando el instalador descargado.
  5. Descargue la imagen ISO de Ubuntu 16.04 de 64 bits.
  6. Crea una nueva máquina virtual.
  7. Cargue la imagen de Ubuntu 16.04 como disco óptico en la máquina virtual recién creada.
  8. Inicia la máquina virtual.
  9. Siga los pasos para instalar Ubuntu en la máquina virtual.

Las especificaciones de mi máquina virtual:

Estas son las configuraciones que utilicé. Siéntase libre de ajustar la memoria (RAM) y la asignación del disco duro como mejor le parezca. Tenga en cuenta que la asignación excesiva de recursos tendrá como resultado un bajo rendimiento en el sistema operativo host.

  • Nombre: Ubuntu 16.04
  • Tipo: Linux
  • Tamaño de memoria: 3072 MB
  • Disco duro virtual: 40 GB

Prerrequisitos en Ubunutu 16.04

Antes de poner en funcionamiento el SDK y los ejemplos, se requieren algunas dependencias para garantizar que el entorno de desarrollo esté listo y las herramientas necesarias estén disponibles. Esto implica actualizar Ubuntu y asegurarse de tener Python, PIP (paquetes de instalación de PIP) y Git para clonar repositorios de código.

  1. Actualizar Ubuntu: debe aparecer una ventana emergente para actualizar Ubuntu o puede usar este comando en la consola: sudo apt-get upgrade
  2. Para usar la consola, simplemente haga clic en el menú de Ubuntu y busque la aplicación "Consola".
  3. Asegúrese de que Python 3 esté instalado usando la consola: python3 --version
  4. Si Python 3 no está instalado, instálelo usando la consola: sudo apt install python3
  5. Asegúrese de que pip 3 esté instalado usando la consola: pip3 --version
  6. Si pip 3 no está instalado, instálelo usando la consola: sudo apt install python3-pip
  7. Asegúrese de que Git esté instalado usando la consola: git --version
  8. Si Git no está instalado, instálelo usando la consola: sudo apt install git-all

Asegúrese de que se reconozca el Movidius Stick

A continuación, podemos configurar el dispositivo Movidius. Esto implica garantizar que la máquina virtual reconozca los dispositivos USB. Dado que una máquina virtual obtiene acceso al hardware a través del sistema operativo host, se requiere cierta configuración para dispositivos como Movidius, donde los controladores no se distribuyen comúnmente.

  1. Conecte el dispositivo Movidius a un puerto USB.
  2. Use el comando lsusb en la consola para determinar si VM y Ubuntu lo reconocen. Debería ver el dispositivo Movidius en la lista de dispositivos USB.
  3. Si no es reconocido. Apague la máquina virtual y siga las instrucciones a continuación.
  4. Navegue a la configuración de la VM en Virtual Box. Elija Puertos> USB.
  5. Agregue un nuevo filtro para USB 2 proporcionando solo la ID del proveedor como 03e7
  6. Agregue un nuevo filtro para USB 3 proporcionando solo la ID del proveedor como 040e
  7. Inicie la máquina virtual Ubuntu.
  8. Use el comando lsusb para enumerar los dispositivos USB, y ahora debe reconocer el dispositivo Movidius. En mi caso, funcionó enchufado a un puerto USB 3 pero fue reconocido como ID de proveedor de USB 2 03e7.

Instalar NCSDK

Se requiere el NCSDK para interactuar con el dispositivo Movidius. El objetivo del SDK es proporcionar una interfaz para el hardware de cómputo neuronal. Esto significa que los programas de aprendizaje automático pueden escribirse para aprovechar la optimización del hardware específico del propósito mediante el uso de este SDK.

  1. Clone el repositorio de NCSDK (Neural Compute Software Development Kit) en la consola: git clone https://github.com/movidius/ncsdk.git
  2. Si tiene problemas con el repositorio, descargue el NCSDK aquí. Usé la versión 1:

1.12.00.01:
https://ncs-forum-uploads.s3.amazonaws.com/ncsdk/ncsdk-01_12_00_01-full/ncsdk-1.12.00.01.tar.gz

2.05.00.02:
https://ncs-forum-uploads.s3.amazonaws.com/ncsdk/ncsdk-02_05_00_02-full/ncsdk-2.05.00.02.tar.gz

Luego realice los siguientes pasos:

  1. Navegue al directorio NCSDK en la consola.
  2. Construya el SDK en la consola: haga la instalación
  3. Construye los ejemplos: haz ejemplos

Ejemplos de compilación y ejecución

Finalmente, podemos ejecutar algunos ejemplos y ver el Movidius en acción. Neural Compute App Zoo es un repositorio de ejemplos que demuestran cómo NC SDK y Movidius stick pueden usarse para entrenar y procesar gráficos de redes neuronales de manera más eficiente que las CPU típicas.

El ejemplo que veremos es la clasificación de imágenes. En lugar de crear nuestro propio modelo que tomará innumerables horas de recopilación de datos, procesamiento de datos y capacitación, simplemente usaremos GoogLeNet, un modelo bien entrenado para la clasificación de imágenes por parte de Google. El motor gráfico utilizado para procesar el modelo será Caffe. Caffe es un marco de visión artificial ampliamente utilizado que sobresale en las tareas relacionadas con la imagen.

  1. Clonar el repositorio de ejemplos en la consola: git clone https://github.com/movidius/ncappzoo.git
  2. Navegue al directorio clonado: cd ncappzoo
  3. Construye los ejemplos: make
  4. Instale sk-image si falta: pip3 install scikit-image
  5. Make caffe GoogleImageNet graph: cd caffe && make
  6. Navegue al clasificador de imágenes: aplicaciones de CD / clasificador de imágenes
  7. Ejecute el ejemplo: python3 image-classifier.py
  8. ¡Éxito! Debería ver los resultados del clasificador de imagen básico.

Ve hacia adelante y conquista

Aunque el dispositivo Movidius Neural Compute solo es compatible con Raspbian y Ubuntu en este momento, es posible que se ejecute en su plataforma. Pronto veremos IA en dispositivos periféricos como drones, cámaras domóticas y otros dispositivos IoT a través de soluciones de hardware específicas para propósitos como Movidius. Explore los ejemplos y cree su propia IA, comparta su gran trabajo y ayude a moldear el futuro.

Manténgase en contacto "Estoy activo en Twitter: @RishalHurbans

Estoy disponible por correo electrónico a través de rishal [at] prolificidea [dot] com

También escribo más, así que sígueme en Medium.

Si disfrutaste este artículo, por favor dale un aplauso, o cinco, o cincuenta. Ayudará a otros a verlo.