Introduction

El proceso de adquisición de imágenes puede dividirse en dos partes. La primera relacionada al hardware de captura: el sensor, los componentes electrónicos y la interfaz de transmisión de datos. La selección de estos elementos depende de la aplicación. En años recientes, nuevos tipos de sensores e interfaces han permitido el incremento de resolución espacial de imágenes y la taza de captura de imágenes a más de 25 frames por segundo que es el estándar para grabar vídeo. Por defecto, la mayoría de cámaras comprimen la imagen capturada para reducir el ancho de banda en la transmisión y el uso de memoria. Pero, en el caso de aplicaciones que requieren medir de manera precisa la reflexión de luz sobre un objeto las imágenes sin comprimir, comúnmente conocido como formato RAW, son preferidas.

La segunda parte del proceso corresponde las operaciones que realiza el progama de adquisición en el computador: 1) monitoreo de señal de inicio/fin de captura, 2) lectura de una imagen desde la cámara, 3) almacenamiento temporal en memoria y 4) Escritura de imagen en disco. Estas operaciones se repiten de hasta que se almacenen todas las imágenes necesarias. La relación entre los componentes antes mencionados se muestra en la figura 1. Dado que la imágenes RAW tienen el doble de tamaño que las imágenes comprimidas con el estándar JPEG es necesario optimizar la ejecución de cada uno de los pasos descritos arriba para evitar la pérdida de imágenes.

En relación a la lectura de imágenes está se realiza enviando mensajes al driver de la cámara para iniciar la transferencia de datos. El acceso al driver se realiza por medio de APIs encapsuladas en librerías de programación. Ciertas herramientas populares en procesamiento de imágenes como matlab u opencv proveen interfaces de programación independientes del hardware subyacente. Si bien estas herramientas facilitan la codificación introducen retardos debido a las capas de software adicionales. Para reducir el tiempo requerido para almacenar imágenes en RAM, en el caso de sistemas basados en computadores, se puede incrementar la cantidad de memoria RAM a fin de mantener todos los frames en memoria. La escritura en disco es la operación que requiere más tiempo, aquí el orden de operaciones de escritura de es un factor a considerar.

Actualmente, existe la tendencia de construir sistemas de captura de datos para plataformas con limitada capacidad de procesamiento, memoria y almacenamiento secundario. Consecuentemente es importante buscar mecanismos que permitan mantener una taza de captura tan cercana al máximo proporcionado por el sensor sin requerir tarjetas adicionales. En este trabajo, proponemos y evaluamos varios esquemas para optimizar la adquisición de imágenes. Estos esquemas explotan conceptos bien conocidos de los sistemas operativos. La ventaja de este enfoque es que sin mayor modificación pueden emplearse en sistemas basados en System on Chip (SoC) en tanto ejecuten un sistema operativo que al menos provea soft-realtime.

La aplicación de interés es un sistema de captura de imágenes hiperespectrales usado al momento en experimentos para poder clasificar granos de cacao de producción ecuatoriana como son el CCN-51 y el Nacional. Ademas, el sistema hiperespectral es usado con plantas de banano para la detección temprana de síntomas de la Sigatoka Negra que es una enfermedad causada por el hongo Mycosphaerella fijensis. The proposed imaging system comprises a motorized stage, a high-sensitivity VIS-­NIR camera and an optical spectrograph.

En la sección 2, se discuten diferentes esquemas de sincronización de procesos. Los experimentos realizados se describen en la sección 3. En la sección 4 se presentan los resultados. Las conclusiones se dan en la última sección.