Un vistazo al Neural Compute Stick de Movidius/Intel

Recientemente Intel Corporation adquirió la empresa Movidius para adentrarse de lleno en el mundo de la así llamada inteligencia artificial.

Luego de esto sacaron al mercado el Neural Compute Stick (NCS); un “stick” USB capaz de realizar grandes cantidades de ciclos computacionales de inteligencia artificial con un bajo consumo de electricidad, liberando al procesador principal de dichas tareas y brindando la capacidad de realizar análisis de inteligencia artificial de tipo TensorflowCaffe sin necesidad de intercambiar datos con la nube.

En esta entrega vamos a darle un pequeño vistazo a este dispositivo, haciendo un poco de reconocimiento de imágenes “in situ” usando un modesto Raspberry PI 3 conectado a un Movidius NCS.


Pasos Iniciales

Iniciamos adquiriendo un Neural Compute Stick de Movidius en Amazon por ~ $80 y un raspberry PI 3 y una tarjeta microSD de 32GB. La tarjeta MicroSD debe ser programada con el sistema operativo Raspbian Stretch que es una versión de Linux optimizada para el Raspberry PI. El software del NCS está preparado para esa versión de Raspbian y no funciona con la versión anterior (Raspbian Jessie).

(!) También se puede seguir este procedimiento con cualquier PC que corra Ubuntu 16.04, ya sea una PC convencional, un NUC o un UpBoard. Con Ubuntu tambien están disponibles las bibliotecas de Tensorflow.

Luego procedemos a instalar el kit de desarrollo (SDK) siguiendo las instrucciones en https://developer.movidius.com/start que se resumen así:

  1. Ejecute los comandos para crear un espacio de trabajo, descargar el SDK e instalarlo. El procedimiento de instalación tarda varias horas compilando en un Raspberry PI 3. Si por alguna razón el proceso se interrumpe, siempre puede volver a ejecutar el comando make install que reanudará la compilación en el punto donde fue interrumpida.
    mkdir -p ~/workspace
    cd ~/workspace
    git clone https://github.com/movidius/ncsdk.git
    cd ~/workspace/ncsdk
    make install
  2. Conectamos el NCS al Raspberry PI y ejecutamos los comandos para poner a funcionar los ejemplos. Lo que sucede con este paso es que cuando hacemos make examples se ejecutan los diferentes ejemplos que vienen en el SDK y se muestran los resultados; pero como son varios podría parecer que se hizo mucho de algo que no se entiende. Al igual que make install, el comando make examples puede tardar varias horas en la primera corrida. De nuevo, si el proceso es interrumpido, puede reanudarse volviendo a ejecutar el comando make examples.
    cd ~/workspace/ncsdk
    make examples

 


Ejemplo de Reconocimiento de Imágenes

Durante la instalación se nos presentó un mensaje diciendo que Tensor Flow no estaba disponible para Raspberry PI, así que seguiremos con los ejemplos relacionados con Caffe. Ambos (Tensor Flow y Caffe) son bibliotecas de inteligencia artificial que han sido implementadas en el NCS.

Nos dirigimos a la carpeta del ejemplo GoogLeNet para la biblioteca Caffe.

cd /workspace/ncsdk/examples/caffe/GoogLeNet

En esa carpeta encontramos el programa de python run.py; al examinarlo vemos que en la línea 72 carga una imagen “data/images/nps_electric_guitar.png

 

Cuando ejecutamos el programa ( python run.py ) tenemos el siguiente resultado:

Notamos entonces que se ha realizado una predicción del contenido de la imagen, y la de mayor probabilidad (99.61%) es de una guitarra eléctrica.

Podemos también editar el archivo run.py que contiene el programa del ejemplo. Nótese que usamos la terminación & con el fin de abrir el editor y continuar trabajando en la terminal.

leafpad run.py &

En el archivo run.py buscamos la línea 72 que lee una imagen “data/images/nps_electric_guitar.png” de los ejemplos y lo reemplazamos con “data/images/nps_chair.png” que corresponde a una silla.

Al ejecutar de nuevo el programa python run.py obtenemos que la predicción que se realiza es de una probabilidad del 100% para un resultado de “folding chair”

De aquí en adelante se pueden modificar los programas, y los ejemplos para desarrollar soluciones personalizadas.

Esperamos que les haya sido de utilidad este pequeño vistazo del NCS Movidius/Intel. No olviden dejarnos sus comentarios, preguuntas y observaciones.

Para finalizar les dejamos el siguiente enlace a NCAPPZOO que es un repositorio GITHUB donde hay ejemplos, aplicaciones y datos para adentrarnos en este fascinante tema.

https://github.com/movidius/ncappzoo

582 total views, 1 views today

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *