67. Big data y vision artificial

Published: Feb. 15, 2016, 5:07 a.m.

Comenzamos el c\xe1p\xedtulo 67, vamos a ver temas muy diversos centrados en Big Data y visi\xf3n artificial. Veremos qu\xe9 significa este t\xe9rmino, algunos ejemplos, la extracci\xf3n de datos con data mining y c\xf3mo las m\xe1quinas son capaces de aprender de la informaci\xf3n obtenida.

Si quieres aportar o preguntar algo, puedes utilizar los comentarios que est\xe1n debajo de este art\xedculo, estaremos encantados de comenzar un debate al respecto.

Lo primero que tenemos que decir es que no somos expertos en este tema, hay mucha literatura escrita, solo pretendemos dar nuestra visi\xf3n de todo lo que rodea a Big Data. Ya hemos tratado este tema en alguna ocasi\xf3n en el podcast (10. C\xf3mo afecta el Big Data a nuestras vidas) y en el blog (El Big Data).

No es algo nuevo en nuestra sociedad. La obtenci\xf3n de informaci\xf3n y su posterior almacenamiento se lleva haciendo desde hace mucho tiempo. Un ejemplo pueden ser los datos p\xfablicos estad\xedsticos del INE, existen datos de 1858 por ejemplo, donde aparece informaci\xf3n de Cuba, cuando era una colonia espa\xf1ola. Desde entonces han sucedido muchas cosas en nuestro pa\xeds y en el mundo entero, incluso la revoluci\xf3n tecnol\xf3gica m\xe1s importante que ha vivido este planeta.

Gracias al avance de la tecnolog\xeda, hoy podemos disfrutar de almacenamiento de datos cada vez m\xe1s barato, desarrollo y evoluci\xf3n de la tecnolog\xeda y la ultraconectividad entre dispositivos. Estos avances han permitido que crezca el volumen de informaci\xf3n que se almacena (la media de b\xfasquedas de Google por segundo es 40.000) y que su procesamiento sea cada vez m\xe1s r\xe1pido.

Adem\xe1s de toda la informaci\xf3n que podemos suministrar los humanos, el IoT (Internet de las cosas) jugar\xe1 un papel crucial en este sector. Imag\xednate si obtienes informaci\xf3n de alguna instalaci\xf3n agropecuaria, con cientos de sensores enviando informaci\xf3n cada segundo, con un tratamiento adecuado de la informaci\xf3n podr\xedas acondicionar la meteorolog\xeda a tu antojo. Esto supondr\xeda un ahorro dr\xe1stico en este sector.

Big Data es el empleo m\xe1s prometedor de 2016 en USA seg\xfan la revista Forbes, y en Espa\xf1a ser\xe1 uno de los m\xe1s demandados, solo tienes que buscar en cualquier portal especializado en el sector del empleo.

Pero el Big Data no es algo extra\xf1o para nosotros, sin darnos cuenta estamos contribuyendo diariamente enviando informaci\xf3n desde nuestros dispositivos m\xf3viles, cuando pagamos con una tarjeta, cuando vamos al m\xe9dico o simplemente cuando estamos hablando por tel\xe9fono.

De esto trata el Big Data, de almacenar datos para luego poder extraer patrones a trav\xe9s de la miner\xeda de datos, patrones que se repiten y que se pueden detectar. La informaci\xf3n obtenida es muy diversa, se pueden obtener patrones de consumo, de gatos o delictivos.

Arduino tiene mucho que decir en este aspecto. Es el dispositivo que puede enlazar el mundo real con el mundo estad\xedstico, gracias a la ventana al mundo exterior que ofrece a la tecnolog\xeda por medio de sus pines digitales y anal\xf3gicos. Por el contrario Raspberry Pi juega el papel de servidor. Al igual que ha ocurrido con la programaci\xf3n, con la electr\xf3nica y con la tecnolog\xeda en general, gracias a Arduino y Raspberry Pi tenemos al alcance de todos poder utilizar el Big Data en nuestras vidas. Un ejemplo podr\xeda ser el Picocluser, un cluster de Raspberry Pi a muy bajo coste. Podemos utilizarlo para aprender a trabajar en paralelo con diferentes m\xe1quinas y utilizar en nuestros proyectos del Big Data caseros. Incluye software y material did\xe1ctico instalado.

Algo muy ligado a los datos es el Machine Learning o el aprendizaje de las m\xe1quinas. Muy lejos queda lo que nos imaginamos cuando escuchamos estos t\xe9rminos, robots inteligentes capaces de comportarse como personas. El aprendizaje de las m\xe1quinas consiste en detectar patrones de conducta a base de explorar cantidades ingentes de datos, cuantos m\xe1s, mejores patrones y mejores predicciones. Un ejemplo ser\xeda los datos estad\xedsticos de un banco, imag\xednate que est\xe1n intentando detectar el uso fraudulento de tarjetas. Si tuvi\xe9ramos una lista de 100 casos de los cuales 5 son fraudes y de esos 5, 4 siguen un patr\xf3n, podremos detectar un posible delito si buscamos ese patr\xf3n en toda la informaci\xf3n que vamos obteniendo del uso de tarjetas. Esta cantidad de muestras no es significativa y tendr\xedamos un margen de error alto pero, si esto lo extrapolas a millones de operaciones con tarjetas que se practican al a\xf1o, ser\xeda f\xe1cil sacar un patr\xf3n m\xe1s eficaz, capaz de detectar fraudes con un margen de error muy peque\xf1o.

Esta t\xe9cnica tambi\xe9n se utiliza en la visi\xf3n artificial, hasta d\xeda de hoy existen dos algoritmos utilizados en este marco que destacan por encima de otros. Es importante recalcar que no existe el algoritmo perfecto, en las diferentes aplicaciones que podemos encontrar a d\xeda de hoy se mezclan diferentes t\xe9cnicas seg\xfan cada caso. La visi\xf3n artificial dista mucho de ser visi\xf3n humana, el estado del arte de esta ciencia tiene todav\xeda mucho recorrido para evolucionar, seguramente ni tu ni yo lo veremos. Los dos algoritmos m\xe1s importantes son SIFT (Scale Invariant Featrue Transformation) y SURF (Speed-Up Robust Features). Estos dos algoritmos analizan las im\xe1genes obteniendo los puntos de inter\xe9s de un objeto. Para poder crear un sistema basado en la visi\xf3n artificial, en primera instancia debemos someterlo a un periodo de aprendizaje donde se cataloguen objetos para poder relacionar el conjunto de puntos de inter\xe9s con dichos objetos. Depender\xe1 de la parametrizaci\xf3n de cada algoritmo pero, te aseguro que la cantidad de informaci\xf3n que podemos obtener es inmensa, cuanta m\xe1s informaci\xf3n del objeto (diferentes \xe1ngulos, perspectivas, iluminaci\xf3n, etc...) m\xe1s f\xe1cil ser\xe1 poder detectarlo, pero tambi\xe9n m\xe1s tiempo de c\xf3mputo necesitaremos.

Esto tambi\xe9n forma parte del mundo Big Data, la informaci\xf3n obtenida a trav\xe9s de los algoritmos debe ser almacenada y tratada adecuadamente para poder ser utilizada posteriormente. Si quieres empezar con la visi\xf3n artificial te aconsejo que explores la librer\xeda OpenCV, donde encontrar\xe1s no solo los algoritmos ya citados, tambi\xe9n podr\xe1s binarizar im\xe1genes, detecci\xf3n de movimiento, detecci\xf3n de l\xedneas, etc...

Por \xfaltimo te vamos a hablar de las herramientas disponibles para el tratamiento de la informaci\xf3n. Estas herramientas hacen que la tarea de explorar y extraer informaci\xf3n de los datos almacenados sea m\xe1s r\xe1pida y robusta. Te ofrecen una serie de funcionalidades centradas en la estad\xedstica y en la miner\xeda de datos, facilitando el tratamiento de vol\xfamenes gigantescos de datos. Entre ellas cabe destacar las siguientes:

Lenguaje de programaci\xf3n R
IBM SPSS
Matlab
Y esto es todo lo que te quer\xedamos contar del Big Data, Data Mining, Machine Learning y Visi\xf3n Artificial. Queramos o no estamos pagando el precio por usar servicios "gratuitos". A\xfan as\xed, dudo que ning\xfan d\xeda alguna m\xe1quina se pueda adelantar a nuestros pensamientos, el ser humano es impredecible, y menos mal, de lo contrario este mundo ser\xeda un cochazo.

Recurso del d\xeda

Hadoop

Hadoop es un software de Apache que te permite el procesamiento distribuido de grandes conjuntos de datos. La gran ventaja de este framework es que podemos utilizar m\xe1quinas m\xe1s simples, que est\xe9n distribuidas en diferentes puntos geogr\xe1ficos para que funcionen como un \xfanico servidor. Es un software libre que puede ser utilizado en cualquier proyecto para el Big Data. Est\xe1 programado en Java y al tratarse de un lenguaje mutliplataforma podremos ejecutarlo en cualquier tipo de m\xe1quina, incluso tenemos una versi\xf3n para Raspberry Pi.

Muchas gracias a todos por los comentarios y valoraciones que nos hac\xe9is en iVoox, iTunes y en Spreaker, nos dan mucho \xe1nimo para seguir con este proyecto.