iCaveats
Integración de componentes y arquitecturas para la visión
embebida en aplicaciones de transporte y seguridad

ANTECEDENTES

Los avances en los sensores de imagen CMOS (CIS) vienen dirigidos principalmente por la electrónica de consumo, cuyo mercado se prevé que tenga un volumen cercano a los 13 mil millones de dólares en 2018 [1]. Las líneas de desarrollo tecnológico en este sector son, por una parte, la demanda de píxeles cada vez más pequeños [2] para una mayor resolución espacial y, por otra, la mejora de la calidad de la imagen mediante una mejora en la circuitería de lectura y de comunicación y la reducción del área, el consumo de potencia y el coste mediante la incorporación de funcionalidad on-chip [3]. Esta última línea de desarrollo permite incorporar un mayor nivel de inteligencia en el chip para extraer la información relevante contenida en un flujo de imágenes, analizarla y elaborar una respuesta adecuada [4]. Pese a lo atractivo del concepto, las aplicaciones industriales de este modelo son todavía muy escasas [5] debido en gran medida a la dificultad de descartar la información redundante contenida en el estímulo visual, que es muy amplia. La necesidad de disponer de una librería de funciones para el procesamiento de imágenes optimizadas para su uso en sistemas de visión embebidos, compactos y con bajo consumo de potencia, ha hecho que el consorcio industrial Khronos haya definido un estándar, OpenVX, para concretar las características que debe tener un acelerador hardware para ser compatible con las herramientas de desarrollo de aplicaciones en visión artificial [6].
Está claro entonces que el problema fundamental es la reducción del número de datos a manejar sin pérdida de información relevante. Y está claro también que leer, transmitir, almacenar y procesar información irrelevante resulta muy limitante a la hora de implementar un sistema ágil y compacto, con capacidad de cómputo pero con bajo consumo de potencia. En este proyecto nos planteamos explorar diferentes alternativas arquitecturales orientadas a la reducción de la información redundante: 

  • La identificación de tareas de visión temprana y de medio nivel que, estando bien definidas en contextos industriales [6], permitan una implementación optimizada cercana al sensor. Esto permitirá la concatenación de tareas de bajo y medio nivel en el mismo substrato de silicio con el objetivo de mejorar las prestaciones globales de algoritmos de visión de interés industrial.
  • La exploración de arquitecturas jerárquicas y tecnologías de integración vertical para la implementación de esquemas de procesamiento con reducción progresiva del número de datos y refinamiento de la información.
  • La extracción de rasgos característicos de la imagen y la detección de puntos salientes, con el fin de elaborar una representación más liviana de la escena.
  • La fusión de información 2D y 3D para la mejora de la percepción.

Así como aquellos aspectos de sistema que refuercen una aproximación comprehensiva a los sensores de visión CMOS para aplicaciones con un presupuesto energético reducido:

  • La gestión de energía a nivel de chip, incluyendo las posibilidades de recolección de energía luminosa cuando los fotodiodos no se utilizan para sensar la imagen [7].
  • El diseño de interfaces que conjuguen la compatibilidad con circuitería de procesamiento digital estándar con las peculiaridades de diferentes modalidades de sensado y representación de la escena, como el sensado compresivo [8] o la representación por eventos espacio-temporales [9].
  • El diseño de convertidores A/D específicos para sensores de imagen, optimizados para la mejora de la relación entre velocidad y consumo de potencia.

En resumen, este proyecto reexamina el esquema convencional de captura de imagen, digitalización y almacenamiento en memoria para su procesamiento posterior, dado que resulta ineficiente a la hora de trabajar en aplicaciones que exijan un importante esfuerzo computacional mientras el consumo de potencia es restringido. Introduciremos innovaciones arquitecturales que permitan explotar el paralelismo inherente a las tareas de visión temprana dentro del propio chip sensor. Incorporaremos nuevas capacidades de sensado compatibles-CMOS para generar una representación de la escena más rica y al mismo tiempo más ligera. Y, en todo momento, trataremos de evitar soluciones ad hoc que resten flexibilidad a nuestras propuestas y nos separen del camino de estandarización que ha iniciado la industria de la visión artificial en sistemas embebidos.


Arquitecturas celulares y procesamiento paralelo de la imagen


Los sistemas de visión embebidos que se necesitan para, por ejemplo, implementar una vigilancia continuada y adaptativa a las condiciones del entorno, o para asistir a la navegación de vehículos no tripulados, han de ser autónomos y fáciles de instalar y mantener, por lo que se les exigirá un muy reducido consumo de potencia al mismo tiempo que un esfuerzo computacional considerable, ya que tienen que operar sobre una gran cantidad de datos a gran velocidad. Una aproximación factible es el uso de arquitecturas de procesamiento paralelo para aumentar la velocidad de operación. Esto tiene además implicaciones sobre la eficiencia energética [10], al resultar en implementaciones más eficientes. Mientras que el consumo de energía escala linealmente con la frecuencia de operación, la potencia de cálculo, medida en MIPS (millones de instrucciones por segundo), no lo hace. Esto sucede porque la potencia de cálculo no depende exclusivamente del rendimiento del procesador, sino de otros factores que no escalan con el reloj, como la transferencia de datos con la memoria, [11]. Los recursos distribuidos son la clave para superar esta limitación. Mediante la colocación de los recursos necesarios cerca de los elementos de procesamiento, por ejemplo sensores o memorias, se reduce la sobrecarga introducida por la transmisión de datos. Esta intervención arquitectural es el equivalente hardware a dividir el algoritmo en diferentes hilos paralelos. 
Más allá del rendimiento, hay escenarios, como los considerados en esta propuesta, en los que la eficiencia energética es el principal objetivo. En [12] se citan varios intentos para evaluar el efecto de la paralelización sobre el consumo energético orientados principalmente a sistemas heterogéneos, que contienen un número relativamente pequeño de procesadores, de diferentes tipos y con una administración inteligente y compleja de la energía. Una alternativa interesante es el uso de muchos núcleos procesadores [13], mucho más allá del número de procesadores presentes en los chips multicore disponibles en el mercado. Claramente, si el uso de recursos distribuidos reduce la energía extra dedicada a la transferencia de datos, mientras más distribuidos mejor. Un ejemplo de esto es el caso de los arrays de procesadores paralelos dedicados al procesamiento de imagen de bajo nivel y la visión temprana. Los procesadores más eficientes son aquellos que cuentan con el mayor número de elementos de procesamiento trabajando en paralelo; incluso si se han construido en las tecnologías menos finas, la frecuencia de reloj ha disminuido y el acceso a la memoria es mucho más simple. Una arquitectura celular [5], con una correspondencia uno a uno entre sensores y procesadores, es una implementación óptima. 
Por supuesto, es necesario trabajar con los distintos niveles de abstracción para encontrar el grado de paralelismo adecuado en cada etapa del algoritmo. Esto implica optimizar desde operaciones de convolución en el bajo nivel, hasta razonamiento o clasificación en el alto nivel, pasando por operaciones de grupos de píxeles, o píxeles característicos en el medio nivel. Esta aproximación derivará en una optimización global del algoritmo, por lo que se esperan mejores resultados que trabajando sólo con una parte del camino de datos o del flujo de programa. En la referencia [19] podemos ver una solución de este tipo a través de un chip con sensores en tecnología CIS de 0.18µm con procesamiento en el plano focal a través de una matriz bidimensional de procesadores elementales de propósito general en el dominio digital, un conjunto de procesadores dispuestos en columna, una red neuronal y una CPU de dos núcleos. La aproximación de este proyecto apunta a la misma dirección con tres diferencias notables. Primero, la solución de la referencia [19] no asigna un elemento de procesamiento por píxel o fotodiodo, perdiendo así paralelismo en el plano focal. Segundo, hemos demostrado a través de nuestros trabajos previos [20], y también lo hemos visto en otras publicaciones recientes [21], que el procesamiento analógico en el plano focal puede llevar a mejores figuras de mérito que una implementación convencional sobre una CPU con una pérdida de exactitud derivada del dominio analógico aceptable para muchas aplicaciones. Tercero, en consonancia con el interés expuesto por consorcios industriales en librerías de componentes o funciones de visión por computador [6], en el ámbito académico existen trabajos recientes que demuestran que el nivel de especialización de los elementos de procesamiento (EP) en visión de computador da lugar también a mejores figuras de mérito [22][23]. Por otra parte, los argumentos de la pérdida de programabilidad por la ausencia de EP de propósito general y la baja reconfigurabilidad en el dominio analógico pueden superarse a través de la combinación de distintos flujos de programa con distintos componentes o funciones para dar soluciones de distinta naturaleza, p. ej. seguimiento de objetos móviles de baja calidad y alta velocidad, o lo contrario. Esta aproximación ya la hemos propuesto con anterioridad [24]. En la misma línea, publicaciones recientes como [25] combinan distintos caminos de datos para implementar odometría visual. Éstas, y otras mejoras se incorporan en el proyecto aquí solicitado.


Representación de la escena mediante rasgos característicos (features)


La extracción de rasgos distintivos es una buena estrategia para deshacerse de la información irrelevante contenida en el estímulo visual, siendo ésta la forma natural de procesar la información del cerebro [26]. Por este motivo, las técnicas  de visión por computador utilizan a menudo extractores de características [27]. Idealmente, éstos deben ser invariantes frente los cambios introducidos por la traslación, rotación, escala, oclusiones parciales y transformaciones afines. También deben ser inmunes al ruido y a los cambios de las condiciones de iluminación. Su resultado debe ser siempre el mismo a pesar de estos cambios, aunque en la práctica se sacrifica la repetibilidad por la eficiencia computacional. 
Las aplicaciones basadas en estos extractores de características constan de tres etapas: i) la detección de puntos de interés o puntos clave; ii) la generación de un vector descriptor para cada punto; y iii) el establecimiento de correspondencias entre puntos de diferentes imágenes. Existen diferentes enfoques para cada uno de estos pasos, y muchas formas de combinar estas técnicas. Por ejemplo, en [28] tenemos una revisión de hasta 20 combinaciones diferentes de detectores de puntos de interés, vectores descriptores, y técnicas de emparejamiento para el seguimiento visual. Tres de los algoritmos más utilizados para la detección de puntos de interés son: el clásico detector de esquinas de Harris-Stephens [29], el detector de rasgos invariante a escala (SIFT) [30], y las características aceleradas y robustas (SURF) [31]. Más recientemente, el detector FAST y los descriptores BRIEF están ganando terreno por sus menores tiempos de cómputo [25]. 
Sin embargo, mientras que los descriptores locales ciertamente alivian la carga computacional de las etapas de procesamiento posteriores, aún es necesario tratar a bajo nivel con las imágenes en bruto. Por ejemplo, para construir el espacio de escalas [32] se necesita aplicar varios filtros gaussianos a la imagen original, de modo que la extracción de características en sí puede resultar muy costosa, lo que nos lleva de nuevo a la discusión sobre la arquitectura del sistema. Una vez más planteamos que el procesamiento en el plano focal [4] [5]  es el más adecuado para la explotación de las características de las tareas de visión temprana. Por un lado, la cantidad de datos que se manejan en esta fase del algoritmo es enorme. Por otro lado, el flujo computacional es muy uniforme ya que los mismos cálculos se llevan a cabo una y otra vez sobre cada uno de los píxeles. Además, el resultado que obtenemos para cada píxel no suele depender de los resultados del resto, por lo que la extracción de características puede ser implementada mediante procesamiento en paralelo [33]. Además, la estructura jerárquica de la extracción puede mapearse de manera natural en una pila de chips interconectados verticalmente [34]. Esto significa que este esquema de procesamiento permite la migración a tecnologías de integración 3-D, una vez que éstas alcancen madurez suficiente para el diseño y la fabricación de sensores imagen.


Sensores de tiempo de vuelo (ToF) en tecnologías CMOS


La posibilidad de adquirir imágenes 2D y 3D en un mismo dispositivo supone una reducción de tamaño, consumo de potencia y complejidad importante frente a métodos tradicionales de triangulación. Además, la integración de información 2D y 3D en un mismo sustrato de silicio facilita la correspondencia entre píxeles 2D y 3D, mucho más compleja en un par estéreo, que es la técnica tradicional usada en visión por computador. Estos sensores generan un mapa de profundidad estimando el tiempo de vuelo (ToF) mediante la sincronización de un sistema de iluminación activa de luz infrarroja mediante láser pulsado o modulado con la captura del sensor. La solución descrita en la referencia [35] es la implementación más reciente de este tipo de sensores. En esta implementación se alcanzan errores de menos de 2 cm en un rango de distancia de 0.5 a 4 m mediante tecnología no estándar, a través de la modificación de los perfiles de dopado, opción imposible no sólo porque el precio sería inasumible en este proyecto, sino porque es difícil abordar esta aproximación si no se dispone de una fábrica de semiconductores. Estos autores pertenecen a Microsoft. 
Los dispositivos de avalancha por simple fotón en modo Geiger (SPADs, del inglés Single Photon Avalanche Diodes) son una alternativa viable a los sensores de tiempo de vuelo en tecnología CMOS estándar, donde se puede integrar toda la circuitería de acondicionamiento y procesamiento en el plano focal [36], o la función de foto multiplicador [37] por agregación de pulsos. En nuestro caso, tenemos alguna experiencia en el diseño de sensores de tiempo de vuelo basados en SPADs [38], lo que será nuestro punto de partida para conseguir adquirir información 2D y 3D en el mismo chip [39].


Kernels digitales para visión de nivel medio


La visión embebida requiere explotar distintos niveles de paralelismo en un área reducida para optimizar las diferentes etapas de un algoritmo. Esto implica optimizar desde operaciones de tipo convolución en el bajo nivel de procesamiento, hasta razonamiento o clasificación en el alto nivel, pasando por operaciones de grupos de píxeles, o píxeles característicos en el medio nivel en la jerarquía de operaciones de la visión por computador. 
En lo que se refiere a la librería de funciones nivel medio de visión por computador la enfocamos como tres grupos de elementos de procesamiento (EP), en concreto; un grupo de EPs para generación de vectores descriptores, otro de búsqueda de correspondencias (matching), y finalmente otro de generación de histogramas. Hemos seleccionado estos tres módulos de funciones porque tal y como se documenta en la referencia [22], son funciones compartidas por muchos de los algoritmos de visión por computador. Así mismo, y de forma similar a la aproximación seguida en las referencia [23], proponemos utilizar el paradigma de Simple Instrucción Múltiple Dato (SIMD) dentro de cada grupo de EPs para incrementar el paralelismo de datos. El paralelismo a nivel de tarea se realizará con un control global para los tres grupos de EPs mediante un control de acceso a una red de comunicación entre EPs. Destacamos aquí la experiencia de parte del equipo investigador en el diseño de arquitecturas SIMD con EPs sobre FPGAs por publicaciones, patentes y tesis previas [40].
El módulo de vectores descriptores implementará los descriptores SIFT, SURF y BRIEF [41][42]. Los descriptores SIFT muestran una mayor robustez frente a cambios de rotación que los descriptores BRIEF. Éstos, sin embargo, son más rápidos, ya que el vector descriptor se codifica como un conjunto de bits, facilitando la comparación entre vectores por medio de medida de distancias de tipo Hamming. La existencia de varios descriptores podría dar lugar a diferentes modos o salidas de la tarea de visión por computador, e.g. seguimiento de objetos móviles,  a saber modo alta calidad (SIFT), o modo velocidad (BRIEF). Hay que señalar la experiencia previa del equipo de investigación en el diseño de módulos de vectores descriptores SIFT [43].
El módulo de búsqueda de correspondencias (matching) implementará la técnica de los K vecinos más cercanos (K-NN) entre vectores descriptores de dos imágenes de una secuencia. La comparación entre vecinos se hará mediante la norma Euclídea o la distancia χ2, siendo la segunda de mayor calidad, pero también de menor velocidad. Así mismo, se diseñarán técnicas de correlación cruzada del tipo NCC, ZNCC, suma de diferencias o suma de diferencias en valor absoluto para comparar conjuntos de píxeles. Estas técnicas son muy comunes en implementación de flujo óptico para estimación de movimiento, tal y como ya hemos implementado a nivel software [44], o en estimación de distancias con un par estéreo, técnica implementada sobre FPGA en [25], que tomaremos como punto de partida en nuestro proyecto.
El módulo de generación de histograma es una de las operaciones de la generación de los vectores descriptores SIFT. No obstante, en el algoritmo SIFT el histograma se realiza sobre un grupo de 16x16px, y no se extiende a toda la imagen. Creemos necesaria esta operación para abordar tareas como la detección de personas mediante la técnica de histogramas de gradientes (HOG). El punto de partida en nuestro proyecto será la solución descrita en la referencia [45].

 

Recolección de energía


Estudiaremos la utilización de los fotodiodos de adquisición de imagen como micro células solares capaces de recolectar energía. En trabajos recientes se propone usar fotodiodos polarizados en directa [7] o en inversa [46] tanto para la captura de la imagen como para la recolección de energía  o bien usar fotodiodos polarizados en directa como micro células solares y en inversa para captación de la imagen [47]. Como se verá en los paquetes de trabajo, nos proponemos hacer un estudio a nivel de dispositivo de todas estas configuraciones. Para ello partiremos de estudios previos de estructuras fotosensoras con perfiles de dopado realistas en tecnología de CMOS de 0.18µm [48] [49]. 
La recolección de energía se completa con una unidad para su gestión. Sus elementos centrales son los convertidores DC/DC para elevar la tensión generada por el sistema de recolección de energía a la tensión de alimentación de la tecnología CMOS en cuestión, la unidad de seguimiento de máxima transferencia de potencia, y la distribución y regulación de la tensión a la carga o elementos que se alimentan mediante la energía recolectada. En esta línea, el trabajo más reciente [50] opta por  modular el valor de las capacidades del DC/DC con condensadores en conmutación controlados por señales de reloj a una frecuencia fija de 250kHz y un algoritmo de ascenso de colina (hill climbing)  para conseguir una máxima transferencia de la potencia recolectada para las distintas situaciones de iluminancia. Nuestros trabajos previos [51] nos sugieren trabajar a una frecuencia bastante menor para reducir consumo de potencia dinámico. Además, a diferencia de [50], estudiaremos con nuestro modelo matricial conjunto de fotodiodo y convertidores DC/DC la viabilidad de un circuito de seguimiento de máxima transferencia de potencia bien de tipo hill climbing o de tipo perturbar & observar (P&O). Contemplaremos también la implementación de un circuito regulador de la tensión en la carga. En [52] proponen distintos modos de funcionamiento del sensor en función de la energía/iluminación existentes. Finalmente, existen distintos modos para la transición o control entre modo recolección y modo adquisición de imagen. En [47] parte de los fotodiodos recolectan, y otra parte adquiere la imagen, resultando en la práctica en una compresión de la imagen, y por tanto imponiendo la necesidad de técnicas de reconstrucción de la misma. Nosotros proponemos hacer una distribución dinámica de los fotodiodos entre ambas tareas en función de la iluminación. 


Convertidores analógico-digitales específicos para sensores de imagen


Uno de los elementos clave en la mejora de las prestaciones de los chips de visión son los convertidores analógico-digitales (ADC). El diseño de los ADC se regirá por el compromiso entre velocidad, consumo de potencia y tamaño. La disposición regular de los pixeles en el array permite jugar con combinaciones que van desde un único convertidor para toda la imagen hasta un convertidor por píxel. Una arquitectura muy empleada es la de disponer un convertidor por columna. Dentro de ésta, las topologías de ADC más empleadas son las de simple rampa, los cíclicos y los de aproximaciones sucesivas (SAR). Aunque en los últimos años los convertidores cíclicos se han empleado en numerosos diseños de sensores de imagen debido a que son más rápidos que los de rampa y ocupan menos espacio que los SAR  [53], se ha observado un reciente interés por estos últimos, con el empleo paralelo de 256 convertidores de 10 bits [35], o 648 de 14 bits con un consumo de 55.1μW por ADC [54]. Frente a estos diseños, en [20] y [55] se emplean ADC de rampa, en este último caso para un sensor de 3.7Mpx, y 1300fps. También de rampa es el diseño propuesto en [56], para realizar la conversión simultánea de todos los píxeles del sensor.

 

Referencias


[1]     “Yole sees $13BN CMOS image sensor market by 2018”. Optics.org., Jan 20, 2014. http://optics.org/news/5/1/23.
[2]    R. Fontaine, “A Review of the 1.4µm Pixel Generation”. Int. Image Sensor Workshop, Hokkaido, Japan, June 2011.
[3]    Proceedings of Image Sensors and Imaging Systems 2014  SPIE Electronic Imaging 2014. San Francisco, February 2014.
[4]    A. Zarandy (Ed.), Focal-plane sensor-processor chips. Springer 2011.
[5]    A. Rodríguez-Vázquez et al., ”A CMOS vision system on-chip with multi-core, cellular sensory-processing front-end”. Chapter 6 in Cellular Nanoscale Sensory Wave Computers (edited by C. Baatar, W. Porod and T. Roska). Springer 2010.
[6]    Khronos group, “OpenVX 1.0, hardware acceleration API for computer vision applications and libraries,” http://www.khronos.org/openvx, 2013, [Online; accessed 08-March-2013].
[7]    S. K. Nayar, D. C. Sims, M. Fridberg, "Towards Self-Powered Cameras". Proceeding of the ICCP, pp.1-10, 2015.
[8]    J. Romberg, “Imaging via compressive sampling”. IEEE Signal Processing Magazine, Vol. 25, No. 2, pp. 14-20, 2008.
[9]    J. A. Leñero, R. Carmona-Galán, A. Rodríguez-Vázquez, “A high dynamic range image sensor with linear response based on asynchronous event detection”, ECCTD 2015, Trondheim, Norway, August 2015.
[10]    S. Moreno-Londono and J. Pineda de Gyvez, “Extending Amdahl’s law for energy-efficiency”. Int. Conf. on Energy Aware Computing (ICEAC), pp. 1-4, Dec. 2010.
[11]    M. V. Wilkes, “The memory gap and the future of high performance memories”. SIGARCH Computer Architecture News, Vol. 29, No. 1, pp. 2-7, 2001.
[12]    S. Cho and R. Melhem, “On the interplay of parallelization, program performance, and energy consumption”. IEEE Trans. on Parallel and Distributed Systems, Vol. 21, No. 3, pp. 342-353, 2010.
[13]    S. Borkar, “Thousand core chips: a technology perspective”. Proceedings DAC’07 pp. 746-749, 2007.
[14]    G. Gerosa et al., "A sub-1W to 2W low-power IA processor for mobile Internet devices and ultra-mobile PCs in 45nm Hi-k metal gate CMOS". Proceeding ISSCC, pp. 256-611, 2008.
[15]    Tegra Product Roadmap. Nvidia Corp., 2010.
[16]    A. Lopich, P. Dudek, "A SIMD cellular processor array vision chip with asynchronous processing capabilities". IEEE TCAS-I. vol.58, n.10, pp. 2420-2431, Oct. 2011.
[17]    W. Zhang, Q. Fu, N.-J. Wu, "A programmable vision chip based on multiple levels of parallel processors". IEEE JSSC, Vol. 46, No. 9, pp. 2132-2147, 2011.
[18]    S. Lee et al. "24-GOPS 4.5-mm2 digital cellular neural network for rapid visual attention in an object-recognition SoC". IEEE Transactions on Neural Networks, Vol. 22, No. 1, pp. 64-73, 2011.
[19]    Cong Shi et al., “A 1000 fps Vision Chip Based on a Dynamically Reconfigurable Hybrid Architecture Comprising a PE Array Processor and Self-Organizing Map Neural Network”, IEEE JSSC, vol. 49, n. 9, pp. 2067-2082, 2014. 
[20]    M. Suárez, V. M. Brea, J. Fernández-Berni, R. Carmona-Galán, D. Cabello and Á. Rodríguez-Vázquez, "A 26.5nJ/px 2.64Mpx/s CMOS Vision Sensor for Gaussian Pyramid Extraction", 40th European Solid-State Circuits Conf. (ESSCIRC 2014), pp. 311-314, Venice (Italy), September 2014.(http://dx.doi.org/10.1109/ESSCIRC.2014.6942084).
[21]    J. Choi et al., “A 3.4-uW Object-Adaptive CMOS Image Sensor With Embedded Feature Extraction Algorithm for Motion-Triggered Object-of-Interest Imaging”, IEEE J. SSC, vol. 49, no. 1, pp. 289-300, 2014.
[22]    N. Chandrammorthy et al., “Exploring Architectural Heterogeneity in Intelligent Vision Systems”, Proceeding HPCA, pp. 1-12, 2015 
[23]    G. Kim et al., “A 1.22 TOPS and 1.52 mW/MHZ Augmented Reality Multicore Processor with Neural Network NoC for HMD Applications”, IEEE JSSC, vol. 50, no. 1, pp. 113-124, 2015.
[24]    M. Suárez, F. Pardo, V. Brea, R. Carmona-Galán, A. Rodríguez-Vázquez, “Image Processor for Feature Detection”, 8,942,481 B2, USPTO, Jan. 27th, 2015. 
[25]    G. Lentaris et al., “HW/SW co-design and FPGA Acceleration of Visual Odometry Algorithms for Rover Navigation on Mars”, IEEE TCAS-VT, early view, pp. 1-14.
[26]    B. Roska, F.S. Werblin, “Vertical interactions across ten parallel, stacked representations in the mammalian retina”.  Nature, Vol. 410, pp. 583-587, 2001.
[27]    T. Tuytelaars and K. Mikolajczyk, “Local invariant feature detectors: A survey”.  Foundations and Trends Comp. Graph. Vision, Vol. 3, No. 3, pp. 177-280, 2008.
[28]    S. Gauglitz et al., “Evaluation of interest point detectors and feature descriptors for visual tracking”.  Int. J. Computer Vision, Vol. 94, pp. 335–360, 2011.
[29]    C. Harris and M. Stephens, “A combined corner and edge detector”. Fourth Alvey Vision Conference. Vol. 15, pp. 147-151, 1988.
[30]    D. G. Lowe, “Object recognition from local scale-invariant features”. IEEE Int. Conf. on Computer Vision, Vol. 2, pp. 1150-1157, 1999.
[31]    H. Bay et al. “Speeded-up robust features (SURF)”. Computer Vision and Image Understanding, Vol. 110, pp. 346-359, 2008.
[32]    T. Lindeberg, “Scale-Space”, in B. Wah (ed.) Encyclopedia of Computer Science and Engineering, Vol. IV, pp. 2495-2504, John Wiley & Sons, 2009.
[33]    V. Bonato et al., “A parallel hardware architecture for scale and rotation invariant feature detector”. IEEE TCAS-VT, Vol. 18, No. 12, pp. 1703-1712, 2008.
[34]    M. Suárez, V. M. Brea et al. “CMOS-3D smart imager architectures for feature detection”. IEEE JETCAS, Vol. 2, No. 4, pp. 723-736, 2012.
[35]    C.S. Bamji et al., “A 0.13 um CMOS System-on-Chip for a 512 x 424 Time-of-Flight Image Sensor With Multi-Frequency Photo-Demodulation up to 130 MHz and 2 GS/s ADC”, IEEE JSSC, vol. 50, no. 1, pp. 303-319, 2015.
[36]    R. K. Henderson et al. “A 3x3, 5um pitch, 3-transistor single photon avalanche diode array with integrated 11V bias generation in 90nm CMOS technology”. IEDM, pp. 14.2.1-14.2.4, 2010.
[37]    T. Frach et al. "The digital silicon photomultiplier: Principle of operation and intrinsic detector performance". IEEE Nuclear Science Symposium Conference Record (NSS/MIC), pp. 1959-1965), 2009.
[38]    I. Vornicu, R. Carmona-Galán and A. Rodríguez-Vázquez, "On the Calibration of a SPAD-Based 3D Imager with In-Pixel TDC Using a Time-Gated Technique", Proceedings ISCAS, pp. 1102-1105, 2015.
[39]    M. N. Haque, M. R. Pickering, M. Biswas, M. R. Frater, J. M. Scarvell, P. N. Smith, “A computationally efficient approach for 2D-3D image registration”. EMBC, pp. 6268-6271, 2010.
[40]    A. Nieto, D. L. Vilariño, V. Brea, “A Reconfigurable SIMD/MIMD Coprocessor for Computer Vision Systems on Chip”, en fase de revision en IEEE T. on Computers (enviado en Enero 2015). 
[41]    D.G. Lowe, “ Distinctive  Image Features from Scale-Invariant Keypoints”, Int. Journal of Computer Vision, vol. 60, no. 2, pp. 91-110, 2004.
[42]    M. Calonder et al., “BRIEF: Binary Robust Independent Elementary Features”, Proceedings ECCV, pp. 778-792, 2010.
[43]    Pablo Leyva, Ginés Doménech-Asensi, Javier Garrigós, Julio Illade-Quinteiro, Víctor Brea, Paula López and Diego Cabello, “Simplification and Hardware Implementation of the Feature Descriptor Vector Calculation in the SIFT Algorithm”, 24th International Conference on Field Programmable Logic and Applications, pp. 1-4. Munich (Alemania). 2014. (http://dx.doi.org/10.1109/FPL.2014.6927409).
[44]    A. Nieto-Rodríguez, M. Mucientes, V.M. Brea, “Demo: Mask and Maskless Face Classification System to Detect Breach Protocols in the Operating Room”, Aceptado en 9th International Conference on Distributed Smart Cameras (ICDSC 2015, Sevilla (España), Sept. 2015.
[45]    L. Maggiani et al., “Reconfigurable Architecture for Computing Histograms in Real-Time Tailored to FPGA-based Smart Camera”, Proceedings ISIE, pp. 1042-1046, 2014.
[46]    I. Cevik, S.U. Ay. “An ultra Low Power CMOS APS Imager with Improved Energy Harvesting Capability”. Proceedings ESSCIRC, pp. 307-310, 2014.
[47]    Hsuan-Tsung Wang, and Walter Daniel León-Salas, "An Image Sensor With Joint Sensing and Energy Harvesting Functions", IEEE Sensors Journal, vol. 15, no. 4, pp. 902-916, 2015.
[48]    J. Illade-Quinteiro, P. López, V. Brea, D. Cabello and G. Doménech-Asensi, “Four-transistor Pinned Photodiodes in Standard CMOS Technologies for Time-of-Flight Sensors”, Semiconductor Science and Technology, vol. 30, no. 4, pp. 045002 - 045013. 2015. (http://dx.doi.org/10.1088/0268-1242/30/4/045002).
[49]    B. Blanco-Filgueira, P. López, J. Roldán, A Review of CMOS photodiode modeling and the role of the lateral photoresponse, IEEE Trans. on Electron Devices, Special Issue on Solid-State Image Sensors. Aceptado. DOI: 10.1109/TED.2015.2446204. Early view:  http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7152895.
[50]    Xiaosen Liu, Edgar Sánchez-Sinencio, "An 86% Efficiency 12 uW Self-Sustaining PV Energy Harvesting System With Hysteresis Regulation and Time-Domain MPPT for IOT Smart Nodes", IEEE JSSC, vol. 50, no. 6, pp. 1424-1437, 2015.
[51]    Esteban Ferro Santiago, "Convertidores DC/DC con Capacidades en Conmutación para Recolección de Energía Solar en Tecnologías CMOS Estándar", TFM Máster en Microelectrónica (IMSE). Julio 2015. Calificación: Sobresaliente (10). 
[52]    J. Choi et al., "An Energy/Illumination-Adaptive CMOS Image Sensor with Reconfigurable Modes of Operation", IEEEJSSC, vol. 50, no. 6, pp 1438-1450, 2015.
[53]    J. H. Park et al., “A high-speed low-noise CIS with 12b 2-stage pipelined cyclic ADCs,” in Proc. Int. Image Sensor Workshop, pp. 339–342, 2013.
[54]    Jong-Boo Kim et al. "A Low-Power CMOS Image Sensor With Area-Efficient 14-bit Two-Step SA ADCs Using Pseudomultiple Sampling Method," IEEE TCAS II, vol.62, no.5, pp.451,455, 2015.
[55]    S. Okura et al. "A 3.7 M-Pixel 1300-fps CMOS Image Sensor With 5.0 G-Pixel/s High-Speed Readout Circuit," IEEE JSSC, vol.50, no.4, pp.1016-1024, 2015.
[56]    Hongbo Zhu; Shibata, T., "A Real-Time Motion-Feature-Extraction VLSI Employing Digital-Pixel-Sensor-Based Parallel Architecture," IEEE TCAS-VT, vol.24, no.10, pp.1787-1799, 2014.
[57]    J. Fernández-Berni, R. Carmona-Galán, R. del Río, Richard Kleihorst, Wilfried Philips and Á. Rodríguez-Vázquez, "Focal-Plane Sensing-Processing: A Power-Efficient Approach for the Implementation of Privacy-Aware Networked Visual Sensors". Sensors, Vol. 14, No. 8, pp. 15203-15226, Aug. 2014. (http://dx.doi.org/10.3390/s140815203)
[58]    R. Carmona-Galán, J. Fernández-Berni, Á. Rodríguez-Vázquez, "Automatic DR and spatial sampling rate adaptation for secure and privacy-aware ROI tracking based on focal-plane image processing". International Image Sensor Workshop (IISW 2015), Vaals (The Netherlands), June 2015.
(http://imagesensors.org/Past%20Workshops/2015%20Workshop/2015%20INTERNATIONAL%20IMAGE%20SENSOR%20WORKSHOP-Full%20Program-v3d.pdf