Mostrando entradas con la etiqueta Curiosidades. Mostrar todas las entradas
Mostrando entradas con la etiqueta Curiosidades. Mostrar todas las entradas

domingo, 24 de octubre de 2010

El Test de Turing


Hace un tiempo os hablaba de quién era Turing y de la importancia que este tenía para la informática. Hoy me gustaría hablaros del famoso "Test de Turing".

Turing trató el problema de la inteligencia artificial y propuso un experimento que consistía en lo siguiente: Un humano y una máquina se situan en una habitación y un juez se situa en otra habitación distinta. El juez realiza preguntas a las que la máquina y el humano deben responder (a los dos les está permitido mentir). Se considera que una máquina pasa el Test de Turing si el juez no es capaz de distinguir qué respuestas son de la máquina y qué respuestas son del humano.


Con este experimento se podría corroborar la existencia de inteligencia en una máquina.

Hasta el día de hoy, ninguna máquina ha podido superar el Test de Turing a pesar de que ha habido muchos intentos. Se cree que Google podría hacerlo en un futuro próximo. Podeis leer el artículo en Microsiervos.


Como curiosidad, ¿sabeis que significa CAPTCHA? Si, esas letritas que tenemos que escribir cada vez que nos registramos en un sitio o cada vez que queremos bajar algo de megaupload. Me refiero a estas letras:

Con este método un sitio web puede asegurarse de que está accediendo un humano y no es un programa automatizado que podría bloquear el sitio web o crear muchas cuentas falsas.


El nombre de estas letras captcha proviene de: Completely Automated Public Turing Test to tell Computers and Humans Apart. (Prueba de Turing Pública y Automática para Diferenciar a Máquinas y Humanos).


Nota: Ya hay algunos programas de reconocimiento de caracteres que consiguen superar el captcha, pero de eso hablaré otro día ;)

miércoles, 12 de mayo de 2010

La ilusión optica del año

Hoy os dejo un video de una ilusión optica bastante sorprendente que vi en Gizmodo




Fue nombrada "la ilusión del año" por el Instituto Meiji de estudios matemáticos avanzados en Japón.

Aqui teneis la web del creador donde podeis encontrar un kit de construcción para que os fabriqueis una vosotros mismos y una breve historia de como se descubrió ;)

domingo, 28 de febrero de 2010

Reconocimiento óptico de caracteres.

Hoy he encontrado una aplicación bastante curiosa para mi Nokia 5800 la cual te permite traducir un texto con la cámara de fotos. Me explico:

Estás en un pais extranjero y necesitas saber que significa un determinado cartel que hay en una tienda o un bar o cualquier sitio. Pues con esta aplicación basta con hacer una foto al cartel donde se vean bien las letras y esta puede traducir a tu idioma lo que pone en el cartel.

Esto me ha parecido un poco increible, pero la verdad es que funciona.

Ya sabía de la existencia de scaners que podían hacer algo parecido. Podemos escanear un folio con apuntes de clase escritos a mano y este nos lo convierte a caracteres en el PC. Pero nunca lo había visto a partir de una foto.

Tras descargarme la aplicación y ver que funcionaba me he puesto a buscar información sobre con que tipos de algoritmos se puede conseguir esto y he encontrado alguna información interesante sobre como se hace y cuales son los problemas actuales de estos algoritmos asi como algunas otras aplicaciones de este método:

Partiendo de una imagen perfecta, es decir, una imagen con sólo dos niveles de gris, el reconocimiento de estos caracteres se realizará básicamente comparándolos con unos patrones o plantillas que contienen todos los posibles caracteres. Ahora bien, las imágenes reales no son perfectas, por lo tanto el Reconocimiento Óptico de Caracteres se encuentra con varios problemas:

  • El dispositivo que obtiene la imagen puede introducir niveles de grises al fondo que no pertenecen a la imagen original.
  • La resolución de estos dispositivos puede introducir ruido en la imagen, afectando los píxeles que han de ser procesados.

  • La distancia que separa a unos caracteres de otros, al no ser siempre la misma, puede producir errores de reconocimiento.

  • La conexión de dos o más caracteres por píxeles comunes también puede producir errores.

Todos los algoritmos de Reconocimiento Óptico de Caracteres tienen la finalidad de poder diferenciar un texto de una imagen cualquiera. Para hacerlo se basan en 4 etapas:


Binarización

La mayor parte de algoritmos de OCR parten como base de una imagen binaria (dos colores) por lo tanto es conveniente convertir una imagen de escala de grises, o una de color, en una imagen en blanco y negro, de tal forma que se preserven las propiedades esenciales de la imagen. Una forma de hacerlo es mediante el histograma de la imagen donde se muestra el número de pixeles para cada nivel de grises que aparece a la imagen. Para binarizarla tenemos que escoger un umbral adecuado, a partir del cual todos los pixeles que no lo superen se convertirán en negro y el resto en blanco.

Mediante este proceso obtenemos una imagen en blanco y negro donde quedan claramente marcados los contornos de los caracteres y símbolos que contiene la imagen. A partir de aquí podemos aislar las partes de la imagen que contienen texto (mas transiciones entre blanco y negro).


Fragmentación o segmentación de la imagen

Este es el proceso más costoso y necesario para el posterior reconocimiento de caracteres. La segmentación de una imagen implica la detección de los contornos o regiones de la imagen, basándose en la información de intensidad o información espacial.

Una de las técnicas más clásicas y simples para imágenes de niveles de grises consiste en al determinación de los modos o agrupamientos (“clusters”) a partir del histograma, de tal forma que permitan una clasificación o umbralización de los pixeles en regiones homogéneas.


Adelgazamiento de las componentes

Una vez aisladas las componentes conexas de la imagen, se les tendrá que aplicar un proceso de adelgazamiento para cada una de ellas. Este procedimiento consiste en ir borrando sucesivamente los puntos de los contornos de cada componente de forma que se conserve su tipología.


Comparación con Patrones


En esta etapa se comparan los caracteres obtenidos anteriormente con unos teóricos (patrones) almacenados en una base de datos. El buen funcionamiento del OCR se basa en gran medida a una buena definición de esta etapa. Existen diferentes métodos para llevar a cabo la comparación. Uno de ellos es el Método de Proyección, en el cual se obtienen proyecciones verticales y horizontales del carácter por reconocer y se comparan con el alfabeto de caracteres posibles hasta encontrar la máxima coincidencia.


Algunas otras aplicaciones pueden ser el reconocimiento de matrículas que se utiliza en los radares o el reconocimiento de texto manuscrito.



Por cierto, la aplicación de la que hablaba era esta: ABBYY Foto Translate

miércoles, 3 de febrero de 2010

El Bug de 2038

He estado buscando información de un fenómeno que me pareció muy interesante cuando lo escuché hace tiempo en clase de MP1

Resulta que en el año 2038 tendremos que enfrentarnos a otro bug igual de serio que el pasado bug del famoso "efecto 2000" por el que algunos ordenadores fueron afectados.

Esta vez el fallo tiene que ver con la forma en la que se representan las fechas en POSIX: en segundos desde el 1 de Enero de 1970 a las 00:00:00. En sistemas de 32 bits este valor suele guardarse en variables de tipo entero con signo, siendo el valor máximo que puede representar este tipo 2.147.483.647, valor que se alcanzará a las 03:14:07 del 19 de Enero de 2038, exactamente.

Esta variable (int time_t) puede almacenar valores hasta el 2147483647. Un segundo después del indicado arriba, esta variable pasará a ser el mismo número pero en negativo (-2147483647) causado por un desbordamiento. Muchos programas, entonces, interpretarán que estamos en 1901 o en 1970 en vez de en 2038. Esto haría que muchisimos cálculos fallaran.


La solución sería cambiar esa variable a 64 bits pero esto no es nada facil, ya que se rompería la compatibilidad binaria para el software.

Si consiguieramos cambiar esa variable a 64 bits se retrasaría el problema unos 290 mil millones de años. Para entonces, el sol se habrá extinguido.

¿Donde estaremos en 2038? ¿Se habrá solucionado esto para entonces?¿Qué pasaría si no se soluciona?

lunes, 18 de enero de 2010

¿Por qué los días tienen 24 horas?

De sobra sabemos por qué un año tiene 365 días, a excepción de los años bisiestos, establecidos por ajuste. Lo que pocos saben es por qué los días tienen 24 horas. Y me uno a "lo que pocos saben" ya que yo no tenía ni idea, a pesar de que me lo he preguntado muchas veces, del por qué. Pero el otro día encontré un artículo donde lo explicaba y me pareció bastante interesante.

En primer lugar hay que tener en cuenta que los sistemas de numeración no siempre han sido iguales. Los egipcios y sumerios tenían un sistema duodecimal en vez del sistema decimal que todos utilizamos universalmente hoy en día. Esto quiere decir que contaban de doce en doce en vez de hacerlo en decenas como nosotros.

El que utilizaran este sistema tiene toda su lógica al igual que nuestro sistema decimál es así por nuestros diez dedos de las manos, lo cual hizo más cómodo contar cosas de diez en diez.

El sistema duodecimal se basaba en contar las falanges de los 4 dedos de una mano con el pulgar, de tal modo que una vez se hubieran contado los cuatro dedos, tendríamos doce segmentos, tal y como muestra la imagen inferior:



Por esta razón, los egipcios dividieron los días en 12 horas, siendo una hora para el amanecer, otra para el atardecer y las 10 restantes para contar el tiempo de luz, y la noche la dividieron del mismo modo en 12 horas.

Las horas del día las medían mediante los conocidos relojes solares. Por este motivo, las horas no eran tal y como las conocemos hoy en día, si no que variaban su duración dependiendo de la época del año en la que estuviésemos.

Las horas de la noche, ante la evidente ausencia de luz, eran medidas mediante estrellas que identifican a los 3 decanos de cada uno de los 12 signos zodiacales. Durante el periodo desde la puesta del sol hasta el amanecer aparecen en el cielo un total de 18 de estas estrellas. Las tres primeras y las tres últimas estaban asociadas al atardecer y amanecer respectivamente, quedando las 12 estrellas que dividían las horas de la noche.

Fue entonces con la llegada de los griegos cuando Hiparco de Nicea propuso la división del día en 24 horas.

miércoles, 18 de noviembre de 2009

Firefox no es un zorro

Estoy seguro de que la mayoria de la gente piensa que el animalito que hay en el logo del navegador Firefox es un zorro. De hecho yo lo pensaba también, pero lo cierto es que no.

Hoy me ha dado por hechar un vistazo a las FAQ´s del navegador y leyendo un poco vemos que la cuarta pregunta es "What´s a firefox?", a lo que se responde " A "Firefox" is another name for the red panda".

Es decir, un firefox no es un zorro, ¡es un panda!

Buscando un poco más he visto que firefox es el nombre que se le da en chino al panda rojo y su aspecto es este:




Comparando con el logo:


¿A que es una monada? ^^