miércoles, 23 de septiembre de 2009

Rotación de logs

Existen aplicaciones que, debido a su actividad, generan archivos de registro o logs de gran tamaño que dificultan la lectura y, en muchas ocasiones, ocupan un espacio valioso en el disco duro. Un caso típico ocurre en los servidores web. En Apache, por ejemplo, el registro de acceso crece normalmente en 1MB por cada 10.000 peticiones.

Para solucionar este inconveniente, muchos administradores recurren a la 'rotación de logs', una técnica sencilla que consiste en almacenar parcialmente el contenido de un archivo de logs en nuevos archivos cada cierto tiempo predefinido. Esta acción facilita la organización de logs, la realización de copias de seguridad y la eliminación de logs innecesarios que están ocupando espacio.

En Linux, existen varias alternativas para habilitar la rotación de logs. Un usuario con mínimos conocimientos de Bash podría hacer su propio script personalizado para rotar logs, no obstante, las principales distribuciones proveen herramientas listas para utilizar, un ejemplo es logrotate.

jueves, 10 de septiembre de 2009

Reconocimiento de objetos en tiempo real con una webcam

Como resultado de mis andaduras con V4L y SIFT, a continuación os dejo un ejemplo práctico para el reconocimiento de objetos utilizando una webcam de bajo coste.

La aplicación hace uso de SiftGPU de Changchang Wu para aprovechar la potencia de la tarjeta gráfica. En este ejemplo, SiftGPU se ha compilado e inicializado con soporte para Cg (2.2) de NVIDIA. Las pruebas se han realizado sobre Ubuntu 9.04 (x86_64) en un laptop Vaio FZ31S con GPU 8600M GS y procesador T8100. La webcam utilizada es una Conceptronic CChatcam2.

SIFT (Scale-invariant feature transform) es un algoritmo creado por David Lowe que permite obtener características de una imagen invariantes a la escala, orientación y parcialmente invariantes a la iluminación y cambios de perspectivas. A partir de aquí, la detección de objetos en la escena tiene lugar mediante un algoritmo de búsqueda y matching con los posibles objetos aprendidos. Si estáis interesados en este tema, os recomiendo la lectura del artículo "Distinctive Image Features from Scale-Invariant Keypoints" de David Lowe.