Jorge Perales Diaz
Xamarin Latino
Published in
3 min readApr 16, 2019

--

Xamarin Forms con Tensorflow

¿Qué es Tensorflow?

TensorFlow es una librería de software open source para ciencias de la computación y computación numérica.

Fue originalmente desarrollada por el Brain Team de Google junto con la Organización de investigación de Inteligencia de Google para machine learning y redes neuronales profundas, pero el sistema en general es lo bastante robusto como para aplicarlo a una gran variedad de otros dominios.

Alcanzó la versión 1.0 en Febrero del 2017, y continuó desarrollandose rápidamente, con más de 21,000 aportaciones, la mayoría por los contribuyentes externos.

TensorFlow es multiplataforma. Puede trabajar prácticamente con cualquier cosa: GPUs and CPUs, incluyendo plataformas móviles y plataformas embebidas e incluso las unidades de procesamiento de tensores (TPUs), las cuales estan especializadas en hardware para hacer el Tensor matemático. Todavía no están ampliamente disponibles, pero recientemente lanzaron un programa alfa.

Integración de un modelo dentro de Xamarin Forms

Primero lo que debemos hacer es descargar un modelo de clasificación de imagenes ya entrenado, siguiendo la documentación en la pagina oficial de Tensorflow se creo un modelo, además de un archivo de etiquetas que utilizaremos mas tarde.

Una vez descargado el modelo y el archivo de etiquetas nos quedaran los siguientes archivos:

Ahora procederemos a crear una solución de Xamarin Forms con un template en blanco.

Ya creado el proyecto nos abrirá un archivo llamado MainPage.xaml, el cual usaremos mas tarde.

Antes que nada vamos a configurar nuestros NuGets, necesitaremos 3; Xam.Plugin.Media, Current Activity Plugin y Xam.Plugins.CustomVision . Para ello vamos a Administrar paquetes NuGet para la solución, buscamos los tres paquetes y los instalamos.

También necesitaremos agregar en el proyecto de Android algunos permisos como:

READ_EXTERNAL_STORAGE
WRITE_EXTERNAL_STORAGE
CAMERA

Después tendremos que abrir el archivo AndroidManifest.xml que se encuentra en nuestro proyecto de Android y dentro de las etiquetas <application> agregaremos lo siguiente:

Luego hay que ir a nuestro proyecto de Android y dentro de la carpeta Resources agregaremos un nuevo folder llamado xml y dentro de esta carpeta un archivo llamado file_paths.xml y dentro de este archivo reemplazaremos el contenido por este código:

Dentro de la clase MainActivity.cs en el metodo OnCreate tenemos que agregar las siguientes lineas de código:

Antes de crear la vista y funcionalidad, tenemos que agregar los dos archivos descargados anteriormente a la carpeta de Assets dentro del proyecto de Android y debemos fijarnos que en su propiedad este marcado como Android Asset.

Ahora si en nuestro archivo llamado MainPage.xaml reemplazamos todo el código por esto:

Y en el archivo llamado MainPage.xaml.cs reemplazamos el contenido por esto:

Finalmente nuestra aplicación esta lista para leer un modelo de red neuronal y arrojar el resultado dependiendo de la imagen capturada por nuestro dispositivo móvil.

Resultados

--

--