ROUGH DRAFT authorea.com/117438
Main Data History
Export
Show Index Toggle 0 comments
  •  Quick Edit
  • Paper CVR CPU

    Abstract

    Image processing system design usually focuses on optimizing the routines needed to solve the problem at hand. It is usually taken for granted that the number of frames to be processed matches the frame rate of the imaging sensor. However, several factors may reduce the effective frame processing rate. In this article, we focus on the effect of memory management and process synchronization on frame acquisition. As more abstraction layers are added to existing image processing tools software coding becomes easier but the control over the image acquisition process decreases. For high-end systems this may not be a problem but for systems with lower processing power the efficient use of memory and CPU is necessary. In this paper, we present and evaluate several image acquisition approaches in the context of a Hyperspectral imaging system that takes as input RAW images to build a HS data cube.

    Keywords: Real Time

    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.

    Process Synchronization Schemes

    En aplicaciones donde se requiere la captura imágenes en tiempo en tiempo real, la optimización en el proceso depende de factores relacionados al hardware de adquisición y al programa de adquisición y almacenamiento en un computador. Las limitaciones con respecto al hardware, tales como velocidad de transferencia del dispositivo de adquisición, velocidad del procesador, cantidad de memoria, velocidad del medio de almacenamiento, son claves para determinar tiempo de procesamiento de imágenes en una aplicación. Por otro lado, en lo que corresponde al programa que adquisición del computador, optimizar este tiempo dependerá la efectividad del algoritmo utilizado para cumplir con las tareas de 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, siendo este último el que toma más tiempo.