Solución de visión embedida con cámera board level USB 3.0

La visión embebida es, junto con el 3D y la visión robótica, una de las megatendencias actuales en la industria del procesamiento de imágenes. Los sistemas autónomos de transporte y los robots de la industria 4.0, los automóviles sin conductor o los drones completamente autosuficientes serían inimaginables sin la tecnología de procesamiento de imágenes en tiempo real. Por razones de coste y espacio, sin embargo, los sistemas clásicos de procesamiento de imágenes no son adecuados para este tipo de aplicaciones, y las llamadas "cámaras inteligentes" presentan por lo general una funcionalidad muy limitada. Ha sido la combinación de cámaras miniaturizadas, placas de procesador compactas y software flexible la que ha hecho posible desarrollar aplicaciones de procesamiento de imágenes específicas para su integración directa en máquinas y vehículos.

Aplicacion
Solución de visión embebida con cámara board level USB 3.0
Solución de visión embebida con cámara board level USB 3.0

La Universidad Técnica de Braunschweig, por ejemplo, ha desarrollado un multirrotor capaz de cartografiar en tiempo real zonas en las que se ha producido una catástrofe. Un sistema de visión embebida integrado en el multirrotor y compuesto por un ordenador de una placa basado en ARM y una cámara board level USB 3.0 de IDS se encarga de confeccionar los mapas.

Poco a poco los drones empiezan a ser un elemento habitual del paisaje en zonas declaradas catastróficas. Pueden recoger muestras de agua, lanzar salvavidas al mar o suministrar geodatos e imágenes de zonas impracticables o inaccesibles para los equipos de rescate. El equipo de trabajo AKAMAV, formado por estudiantes y por personal técnico y científico de la Universidad Técnica de Braunschweig, con el apoyo del Instituto Técnico de Dinámicas de Vuelo (IFF) de dicha universidad, ha diseñado un multicóptero con un equipamiento muy especial.

Este microvehículo aéreo no tripulado (MAV) sobrevuela las zonas catastróficas —desde ciudades arrasadas por un terremoto o una inundación hasta fábricas en llamas— y suministra a los equipos de emergencia mapas en tiempo real para que puedan planificar mejor sus intervenciones. El multirrotor sobrevuela de manera completamente autónoma la zona trazada a partir de una imagen de satélite georreferenciada. De esta forma, en función del tamaño del área terrestre y de la resolución espacial deseada, se genera automáticamente una lista de waypoints que después se sobrevuela con ayuda de un sistema GNSS o GPS. El despegue y el aterrizaje del multirrotor también tienen lugar de manera completamente automática.

Los requisitos derivados de la necesidad de suministrar imágenes en tiempo real no permiten utilizar las tecnologías de teledetección convencionales, como por ejemplo la fotogrametría. Esta técnica solo suministra datos una vez ha registrado y procesado todas las imágenes mediante algoritmos complejos que, la mayoría de las veces, requieren gran capacidad de cálculo. Los mapas generados a partir de estos algoritmos son muy exactos, pero en situaciones de emergencia la rapidez suele ser más importante que la exactitud a la hora de obtener una primera impresión general de la zona y planificar las primeras intervenciones.

Multirrotor con cámara industrial USB 3.0 de IDS y ordenador ARMv7 de una placa
Multirrotor con cámara industrial USB 3.0 de IDS

La solución diseñada por AKAMAV se basa en la técnica del mosaico de imágenes o foto stitching, un procedimiento de eficacia probada que permite obtener rápidamente una imagen panorámica a partir de la combinación de múltiples imágenes. Para poder utilizar este procedimiento a bordo de un multicóptero, es necesario que un ordenador procese las imágenes suministradas por la cámara en el momento y en el lugar.

Los sistemas "clásicos" de visión artificial constan de una cámara industrial conectada vía USB, GigE o FireWire a un ordenador de sobremesa o PC industrial. Este ordenador procesa las imágenes mediante el software de procesamiento de imágenes correspondiente y controla el resto de componentes que pueda tener la aplicación. Una configuración de este tipo necesita mucho espacio, es relativamente cara y ofrece una funcionalidad muy amplia que muchas veces no se necesita. Los sistemas de visión embebida con ordenador de una placa y sistema operativo de código abierto son mucho más compactos, más flexibles a la hora de programar y, por lo general, más baratos. En este contexto, las cámaras board level con puerto USB y los ordenadores de una placa basados en ARM forman la pareja perfecta. Estos presentan la suficiente potencia de cálculo, un bajo consumo energético, están disponibles en diversos factores de forma —la mayoría de las veces muy pequeños— y se pueden adquirir ya por un precio inferior a los 100 euros. Pensamos por ejemplo en la popular Raspberry Pi.

El equipo AKAMAV ha apostado por el mini ordenador ODROID-XU4 con procesador ARM de ocho núcleos y sistema operativo Linux; muy potente con un tamaño de tan solo 83 x 60 mm. Este ordenador de una sola placa dispone de todos los puertos necesarios (entre otros, GigE, USB 2.0 y USB 3.0) y está conectado vía USB al piloto automático del sistema de vuelo. A través de esta conexión de datos, el ordenador recibe información de estado del sistema de vuelo y también datos sobre la posición actual en grados de longitud y latitud, la altura barométrica y la altura sobre el elipsoide de referencia.

Cámara industrial

De la captación de imágenes se encarga una cámara de visión artificial de la serie USB 3 uEye LE de IDS, que en su variante board level con puerto USB 3.0 solo mide 36 x 36 mm, al tiempo que ofrece todas las funciones necesarias. La cámara está disponible con sensores CMOS de última generación de onsemi y e2v y con resoluciones de hasta 18 megapíxeles. El conector de 8 pins con fuente de alimentación de 5 V, el disparador y el flash, 2 GPIO y el bus I2C para el control de periféricos ofrecen una gran flexibilidad y una conectividad prácticamente ilimitada.

El equipo de AKAMAV ha montado en el multirrotor el modelo UI-3251LE-C-HQ con un sensor CMOS de 2 megapíxeles y una montura de objetivo S. La resolución de la cámara es un factor secundario en este caso, como explica Alexander Kern, estudiante miembro del equipo: "Se trabaja con los datos de imagen originales, que en caso necesario incluso se reducen para garantizar el correcto rendimiento global del algoritmo. En cuanto la cámara capta una imagen y la envía al ordenador, este busca en la imagen puntos destacados y los extrae. Cuando se capta la siguiente imagen se analizan de nuevo los puntos destacados y se contrastan con los de la imagen anterior para detectar parejas de puntos. Estas correspondencias permiten determinar la relación de captación entre ambas imágenes y, por tanto, asignar rápidamente cada nueva imagen a un mapa global".

Para registrar un área terrestre de una hectárea, el multirrotor solo necesita entre cuatro y cinco minutos si despega y aterriza en una de las lindes de la zona a cartografiar. Con una altura de vuelo de alrededor de 40 m y una resolución ajustada de 1200 x 800 píxeles, la resolución espacial media es de aproximadamente 7 cm/px. El sistema de visión embebida se ha ajustado a la velocidad máxima de vuelo del multicóptero de 5 m/s, por lo que es suficiente una frecuencia de imagen relativamente baja de tan solo 1-2 fps. Además, no se necesita ningún búfer para almacenar temporalmente los datos gráficos.

La USB 3.0 camara 3251LE incorpora el sensor CMOS<br>con una resolución de 2 megapíxeles
Resultado del mapeo

Si el sistema de vuelo tiene comunicación con una estación de control, el proceso de stitching se puede seguir en directo desde tierra. Cuando el multirrotor acaba de confeccionar todo el mapa, este se puede consultar de manera remota —si el aparato se encuentra dentro del radio de alcance— o copiarse en un soporte de datos externo después del aterrizaje.

Software

AKAMAV ha configurado el procesamiento de imágenes con la biblioteca de código abierto OpenCV y C++. "Los requisitos que plantea el procesamiento en tiempo real exigían un software muy funcional, algo que solo se puede conseguir con un lenguaje de programación de alto nivel. En los últimos años OpenCV se ha consolidado en el ámbito de la investigación como un estándar para el procesamiento de imágenes, con todo tipo de funciones de análisis y de visión artificial", explica Mario Gäbel, otro estudiante del grupo de trabajo AKAMAV.

La integración de la cámara tiene lugar a través de la API uEye. La interfaz de programación de aplicaciones (API) desempeña un papel fundamental en todas las aplicaciones de visión artificial, puesto que de ella depende la facilidad de uso de la cámara y también la posibilidad de aprovechar todo su potencial. El "estándar" propio que ha desarrollado IDS en este campo ofrece una ventaja competitiva clave, sobre todo a los desarrolladores de aplicaciones de visión embebida. Y es que la API uEye es siempre la misma, independientemente del fabricante de la cámara, de la tecnología de interfaz que se necesite (USB 2.0, USB 3.0 o GigE) y de si se utiliza un sistema de sobremesa o un sistema embebido.

Los requisitos que plantea el procesamiento en tiempo real exigían un software muy funcional, algo que solo se puede conseguir con un lenguaje de programación de alto nivel.

— Mario Gäbel, otro estudiante del grupo de trabajo AKAMAV —

Esto no solo facilita la intercambiabilidad de la cámara y de la plataforma, sino que permite a los desarrolladores diseñar proyectos en un PC de sobremesa y transferirlos después sin grandes adaptaciones de código a un sistema embebido. La integración de la cámara y la adaptación a un software ajeno de procesamiento de imágenes (por ejemplo, Halcon) funcionan en el sistema embebido exactamente igual que en un entorno de sobremesa. Las herramientas especiales, como uEye Cockpit, que incorpora el kit de desarrollo de software propio de IDS facilitan además la labor de los programadores. Bajo el lema "Configurar en lugar de programar", bastan unos pocos clics para preconfigurar la cámara en el ordenador de sobremesa. La configuración se puede guardar y cargar después fácilmente en la aplicación de visión embebida. En los entornos embebidos en particular la programación suele ser muy compleja debido a la necesidad de una compilación cruzada. Además, con frecuencia la falta de conectores de pantalla y de teclado hace imposible ajustar la cámara directamente en el aparato. Precisamente en este tipo de situaciones la preconfiguración de la cámara en uEye Cockpit tiene un valor incalculable.

USB 3 uEye LE - perfecta para sistemas de visión embebida

IDS camara industrial USB 3 uEye LE board level