martes, 24 de septiembre de 2019

Luces atmosféricas

Se nombra atmosferic ghost light a un conjunto de fenómenos luminosos (la mayoría aún no explicados) que se reportan en muchas partes del mundo. Son tan relativamente comunes y la evidencia fotográfica y relatos anecdóticos son tan similares que tengo la sospecha de que se trata de procesos geofísicos que valen la pena investigar. En el caso de México, he escuchado en varios pueblos de Morelos, Guerrero y Puebla historias sobre "brujas", fantasmas de fusilados de la revolución y, por supuesto, ovnis que se aparecen volando en las cumbres de los cerros o en las entradas de las cuevas. Por un lado, mi hipótesis del origen natural de estas luces es algo que no les gusta oir a los aficionados a los ovnis o lo paranormal, y por el otro, es una propuesta de investigación que sería difícil de tomar en serio en la academia. Así que cazar estos objetos sería una aventura científica personal si lo llegara a llevar a cabo. Existen algunos vídeos en Youtube que me parecen reales, aunque me dan gracia algunos de sus títulos:
Algo muy recurrente es las historias de estos avistamientos, especialmente en los comentarios de personas que los han visto de cerca, es un ruido similar al de la estática en el radio y un olor a "estéreo quemado" [ozono]. Estas son dos características de fenómenos eléctricos de alto voltaje. Podrían tratarse de alguna forma de rayo esférico aunque no he escuchado ningún reporte durante la lluvia. Incluso en algún foro de buscadores de tesoros leí una historia de quemaduras internas [aunque la palabras que en realidad usaron fueron "hechizo de bruja"], lo que me haría sospechar de ondas estacionarias de microondas, que en principio serían requeridas para confinar un plasma esférico. Comparen el vídeo anterior con este otro:
El cerro de la Silla es mucho más alto, pero la posición relativa de las luces es similar. Si lo comparan ahora con este video de un rayo globular, comenzaran a notar también que aquí hay un patrón. La geografía de los 3 videos es muy similar. Otro lugar famoso muy similar es el Punto Marconi o "Cerro del Ovni" en Atlixco, Puebla donde también se reportan luces en las cumbres de los cerros de la zona. Probar mi hipótesis de los rayos globulares no sería sencillo. Estos fenómenos están muy ampliamente diseminados y no ocurren con tanta frecuencia. Sería muy útil tener un mapa con las etiquetas geográficas de todos los lugares en México dónde se reportan este tipo de fenómenos. Luego compararlos con los mapas de suelos y encontrar alguna correlación con las características físicas del terreno (si es zona sísmica o la abundancia de ciertos minerales en el suelo). Teniendo ese mapa, el siguiente paso sería construir una estación de instrumentación electrónica autónoma. Podría ser un módulo de bajo costo con cámara, estación meteorológica básica, con una Raspberry Pi alimentada por un banco de baterías recargadas con celdas solares y un enlace de comunicación LoRa. Con más presupuesto, un espectroscopio para tener más información sobre el proceso que genera la luz.

Si tienen curiosidad, aquí hay otras luces atmosféricas reportadas en otras partes del mundo:

domingo, 22 de septiembre de 2019

Registro de imágenes con SIFT en OpenCV

Se le llama registro al proceso de trasformación entre varios conjuntos de datos que permiten "encajar" o superponer patrones similares. Quizá el proceso más conocido sea la creación automática de fotos panorámicas a partir de varias fotos independientes. En esta entrada haremos un ejemplo más sencillo. Observen estas dos fotografías de un mismo objeto (uno de mis libros favoritos) tomadas en ángulos diferentes:
Lo que haremos sera colocar la imagen de la izquierda con la misma orientación y escala que la imagen de la derecha. Tomaremos de referencia las características comunes entre ambas imágenes (el libro principalmente). ¿Cómo encontramos estos puntos? En 2004 David Lowe publicó un algoritmo llamado SIFT (Scale-Invariant Feature Transform)  que permite encontrar puntos clave invariantes a las rotaciones y, en buena medida, a los cambios de iluminación. Los puntos clave con mejor correspondencia entre ambas imágenes se ven así:
Este algoritmo está patentado y no aparece en la instalación estándar de OpenCV. Deben seguir las instrucciones que puse en mi entrada anterior para poderlo utilizar. El código que escribí es una modificación para SIFT del código que pueden encontrar acá. Lo he reducido y comentado para mejor claridad:
La imagen final registrada es esta:

sábado, 21 de septiembre de 2019

Instalar OpenCV-Python con SIFT y SURF habilitados

Quiero ahorrarles algunas horas y frustración con esto. Estas notas están hechas para Linux (uso Debian) pero posiblemente funcione también en Windows (no lo garantizo). Voy asumir que ya tienen instalado Anaconda... Primero tienen que crear un nuevo entorno virtual (esto es por seguridad y no dañar su entorno principal de Python por si algo malo ocurre). Para crear un nuevo entorno:

$ conda create --name mi_entorno_OpenCV -y

Pueden nombrar su entrono como quieran pero es buena idea ponerle un nombre que haga referencia a su modulo. Si trabajan con IA seguramente necesitarán un nuevo para Tensorflow. Ahora, si es la primera vez que crean un entorno virtual tendrán que configurar su terminal para permitir que conda administre los entornos virtuales:

$ conda init bash

Si no usan bash debe poner la shell que utilicen. Bien, una vez que hayan hecho esto pueden activar su entorno con:

$ conda activate mi_entorno_OpenCV

Notarán que habra cambiado la etiqueta antes del promp y deberá aparecer el nombre de su entorno. Deberán instalar ahora matplotlib (su nuevo entorno solo tendrá numpy y scipy [si no, deberán instalarlos también]):

$ conda install -c conda-forge matplotlib

Spyder tampoco estará instalado en su nuevo entorno así que deberan instalarlo también:

$ conda install -c anaconda spyder

Recomiendo leer Managing enviroments de la documentación de conda. Ahora si, para instalar una versión de OpenCV que permita utilizar los algoritmos SIFT y SURF deberán instalar específicamente esta:

$ pip install opencv-contrib-python==3.4.2.16 

Listo. Terminada la instalación pueden hacer una prueba con los códigos de ejemplo de la documentación de OpenCV. Recuerden que deben mandar a llamar a Spyder desde la terminal con el entorno virtual que crearon para OpenCV. para salir del entorno utilicen:

$ conda deactivate

 En la próxima entrada pondré un ejemplo utilizando el algoritmo SIFT.

sábado, 14 de septiembre de 2019

Messidor

Si me preguntan a mí, The Durutti Column inventaron el Post-Rock en 1981 con la canción Messidor. Aparece en su segundo álbum: LC. Esta canción se adelanta casi 20 años a su época e incorpora mucha de la estructura y el estilo en las guitarras que le podemos escuchar a The Explosions in The Sky.