WO2013113961A1 - Procesador de imágenes para extracción de características - Google Patents

Procesador de imágenes para extracción de características Download PDF

Info

Publication number
WO2013113961A1
WO2013113961A1 PCT/ES2013/070037 ES2013070037W WO2013113961A1 WO 2013113961 A1 WO2013113961 A1 WO 2013113961A1 ES 2013070037 W ES2013070037 W ES 2013070037W WO 2013113961 A1 WO2013113961 A1 WO 2013113961A1
Authority
WO
WIPO (PCT)
Prior art keywords
pixel
integrated circuit
image processor
analog
circuits
Prior art date
Application number
PCT/ES2013/070037
Other languages
English (en)
French (fr)
Inventor
Manuel SUÁREZ CAMBRE
Víctor Manuel BREA SÁNCHEZ
Fernando Rafael PARDO SECO
Ángel RODRÍGUEZ VÁZQUEZ
Ricardo CARMONA GALÁN
Original Assignee
Universidad De Santiago De Compostela
Universidad De Sevilla
Consejo Superior De Investigaciones Científicas
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universidad De Santiago De Compostela, Universidad De Sevilla, Consejo Superior De Investigaciones Científicas filed Critical Universidad De Santiago De Compostela
Publication of WO2013113961A1 publication Critical patent/WO2013113961A1/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/462Salient features, e.g. scale invariant feature transforms [SIFT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10DINORGANIC ELECTRIC SEMICONDUCTOR DEVICES
    • H10D88/00Three-dimensional [3D] integrated devices

Definitions

  • the presented embodiments refer to image processors. Specifically, they refer to processors for image acquisition and feature detection
  • Detectors of invariant characteristics to scale and rotation changes are used in different image processing tasks, such as the detection of objects and their classification, image recovery, image registration or tracking tasks. Their invariant nature gives them repetitiveness, which allows them to work in environments with occlusion, or with scenes acquired under different conditions, such as lighting or capture from different angles of vision.
  • the detectors of modern characteristics invariant to scale and rotation changes such as the detector of invariant characteristics to scale transformations, of the English Scale Invariant Feature Transform (SIFT), are complex image processing techniques with a high computational cost, making it difficult its use using general purpose processors and software.
  • An important part of this algorithm is the extraction of the Gaussian pyramid, which comprises a set of images of different resolutions, called octaves. Each octave is the result of a scale of 1/4 of the previous octave. In turn, each octave is formed by a series of images called scales. Each scale is the result of performing a Gaussian filtering with a given width (level- ⁇ in the previous scale).
  • Harris and Stephens Proc. Avley Vis. Conf., Manchester, pp. 147-152, 1998) an algorithm was proposed to detect characteristics, whose main advantage was that the calculations involved in obtaining the characteristics of the images, called Harris points, do not require a high computation time. However, it offers poor results when you work with changes in scale and rotation in the images.
  • the SIFT presented at US Pat. No. 6,711, 293, is an image processing algorithm that obtains invariant characteristics to changes in scale and rotation of digital images. Its main limitation is given by the high computational cost of the method, which makes it difficult to use it in applications that require operating in real time (for example, operating at a frame processing rate of 24 frames per second or more).
  • the embodiments shown include an image processor for feature extraction comprising a single non-planar chip containing a plurality of sensing and processing elements distributed in two or more layers adapted to capture frames of images and extract image characteristics.
  • the non-planar chip is a CMOS-3D integrated circuit with a vertical distribution of the sensing and processing elements along two or more integral circuits arranged vertically.
  • the CMOS-3D integrated circuit implements two or more feature detectors on a single chip. In one embodiment, and without limiting its scope, these characteristics are invariant to transformations (SIFT), Harris point detector and feature detector based on the Hessian matrix, or a combination of all of them.
  • SIFT invariant to transformations
  • Harris point detector Harris point detector
  • feature detector based on the Hessian matrix
  • the CMOS-3D integrated circuit implements the feature detectors by reusing a plurality of circuits used to obtain the gradient and the key points.
  • the integrated circuit implements a processor-by-pixel architecture to achieve massive parallelism at the pixel level, and includes an array of pixel processors and a plurality of circuits that in parallel perform the SIFT, They detect Harris points, and points based on the Hessian.
  • Certain embodiments include a multipurpose switched capacitor network. This network of multipurpose switching capabilities implements the generation of a Gaussian pyramid, correlated double sampling (CDS), and acts as analog memory at the pixel level.
  • CDS correlated double sampling
  • a particular embodiment of the switching capability network employs a double Forward-Euler configuration.
  • the CMOS-3D integrated circuit includes reused shared circuits for analog-to-pixel digital conversion and frame storage.
  • the circuits of the integrated circuit are arranged in 4 layers with (a) a layer for acquisition, correlated double sampling, Gaussian filtering and analog-digital conversion; (b) a level for the storage of the frames, the detection of key points, calculation of Gaussian-Difference (DoG), gradient calculation, and shared analog-digital conversion; and (c) two levels with dynamic random access memory, from the English Dynamic Random Access Memory (DRAM).
  • the method comprises: (a) implementing on a single chip not plan a plurality of sensing and processing elements adapted to image capture and feature extraction and distributed in two or more layers; and (b) reusing the plurality of circuits on the non-planar chip to perform a concurrent calculation of the gradient and detection of the key points; and the correlated double sampling (CDS) and the analog-digital conversion.
  • the non-planar chip implements two or more feature detectors on a single chip.
  • the feature detector may be a feature detector invariant to scale changes (SIFT), a Harris point detector, a point detector given by the Hessian matrix, or a combination of all of them.
  • the described image processor can be used as a CMOS-3D vision processor to execute different feature detectors.
  • the image processor allows the user to select the most appropriate feature detector according to the needs of the user. application.
  • the image processor executes two main modes: 1) SIFT mode, providing a high precision but with the cost of a low speed, and 2) Harris point detectors and based on the Hessian matrix, which are faster at the cost of offering a lower precision. These two modes are possible thanks to: 1) the CMOS-3D architecture, and 2) the fact that executing the SIFT involves executing some of the operations required for the Harris point detector or detector based on the Hessian matrix.
  • the particular embodiment includes a pixel architecture with CDS at the pixel level, and analog-digital conversion at the pixel level by means of an 8-bit simple ramp analog-digital converter.
  • the reuse of the different circuits allows to obtain a smaller area per pixel.
  • the architecture includes the assignment of a structure of 3 transistors of active photodiode sensors, of the English active photodiode sensor (APS), per processor, providing a massively parallel processing capacity, very suitable for operations a pixel level, very frequent operations in any feature detector.
  • the architecture is implemented with a two-level CMOS-3D stack. The top level contains the pixels. Each pixel is completed with the necessary circuits for the network of switching capacities.
  • This network of switching capabilities implements Gaussian filtering, which is used in several feature detectors.
  • the integrated circuit is designed with a two-level CMOS-3D architecture for the generation of the Gaussian pyramid, detection of extremes, and calculation of the spatial derivatives of an image. These tasks are included in many modern feature detectors, which in turn can be used for applications such as object detection, image registration or tracking.
  • the upper level its architecture contains the image acquisition circuits in a 320 x 240 array of active photodiode sensors (active photodiode sensors, APS) and a smaller array of 160 x 120 analog processors for the processing of the image at low level.
  • the upper level comprises the realization in pixel CDS, a network of switching capacities for the generation of the Gaussian pyramid, analog memories and a comparator for the conversion into digital analogue pixel.
  • the reuse of circuits for different functions allows to obtain a smaller area for each pixel.
  • the lower level of the architecture contains a storage of frames with a one-to-one correspondence with the analog processors of the upper level, the digital circuitry necessary for the detection of ends and the calculation of the first and second spatial derivatives of the image, as well as Harris and Hessian feature detectors.
  • the two-tier architecture can be implemented on a CMOS-3D chip in 130 nm technology.
  • An auxiliary chip can perform high level tasks as well as communications. Using this technology, an area of 300 ⁇ 2 per pixel or smaller (1200 ⁇ 2 per analogic processor) can be obtained and allows a frame ratio of 180 frames / s for a digital analog conversion time of 120 ⁇ .
  • FIG. 1 shows a block diagram of an embodiment of the image processor.
  • FIG. 2 shows an embodiment of the acquisition block showing the plurality of sensing elements.
  • FIG. 3 shows a block diagram of an embodiment of the sensing block.
  • FIG. 4 shows a block diagram of an embodiment of the scale space generator.
  • FIG. 5 shows a block diagram of an embodiment of the feature extractor.
  • FIG. 6 shows an embodiment of the CMOS-3D architecture.
  • FIG. 7 shows an embodiment of a level processing element that performs pixel acquisition and Gaussian filtering.
  • FIG. 8 shows an example of the timing of the control signals for the level according to an embodiment.
  • FIG. 9 illustrates the connection between the levels according to an embodiment.
  • FIG. 10 shows the schematic of the network of switching capabilities according to an embodiment.
  • FIG. 11 shows the schematic of the broadcast network for a grid of 16 ⁇ 16 pixels according to one embodiment.
  • FIG. 12 shows an embodiment of the frame storage memory element.
  • FIG. 13 shows the architecture of a second level according to an embodiment.
  • FIG. 14 shows the block diagram of the elements that calculate the gradient, Harris points, Hessian points and DoG. DETAILED DESCRIPTION OF THE INVENTION
  • the embodiments shown include an image processor for feature extraction comprising an acquisition block 100, a scale space generation block 102, and a feature detection block 106.
  • the acquisition block which obtains an image of a scene for the processor to analyze, comprises a plurality of sensing elements 200.
  • Each sensing element acquires a part of the scene 302 that is to be analyzed 300 which is transformed into an analog value 304 and then stored 306.
  • the plurality of analog values acquired by the plurality of sensing elements form the scene image.
  • the generation block of the scale space generates the space of scales, that is, a set of fuzzy images obtained after the application of Gaussian filters with a determined ⁇ : where G (x, y, ka) is a Gaussian filter with a standard deviation ko, l (x, y) is the acquired image composed of the plurality of analog values acquired by the acquisition block, L (x, y, ko) ) is the fuzzy image obtained, and * is the convolution operation.
  • a diffusion process 402 consists of applying a Gaussian filter according to equation (1) to the acquired analog value 400 obtained by the sensing element.
  • the plurality of values obtained from the blurred image 404 is converted to digital values by an analog-digital converter 406.
  • the scale space is composed of fuzzy images, whose blur level is increased by iteratively applying a Gaussian filter with a certain or.
  • the digital value of the fuzzy images 500 is transferred to a memory block 502 comprising a plurality of memory elements.
  • the stored values are sent to the different characteristic obtaining blocks, which imply different operating modes:
  • Harris 504 point detector In this block, a detection of Harris points is carried out from the first blurred image. The detection of this characteristic involves carrying out the following operation on a image, and a point is classified as a Harris point if the next value is greater than an established threshold: where i gx and l gy are images obtained after applying the gradients in the x and y directions to the acquired image, followed by a Gaussian filtering, l gxy is the product of the gradient images in the x and y directions followed by a Gaussian filtering, and K is a predefined parameter.
  • Point detector based on the Hessiana 506 In this block, from the blurred images, a detection of singular points through the Hessian matrix is carried out. A point is classified as a Hessian point if the following value is greater than an established threshold:
  • the feature detector is implemented as a CMOS-3D integrated circuit.
  • the CMOS-3D technology allows to integrate more functionality on the same chip thanks to the different levels of integration it allows.
  • the architecture of such an implementation comprises two layers also referred to as levels 600 and 602, where the desired functionality is implemented and two additional levels of DRAM memory 604 for storing the data.
  • the connection between the two upper levels is carried out through direct connections called through silicon, through Through-Silicon-Vias (TSV), 606.
  • TSV Through-Silicon-Vias
  • the upper level includes the acquisition of the image and the generation of the space of scales (generation of the pyramid Gaussian and its digitalization).
  • the second level 602 comprises a block for detecting characteristics.
  • Level 1 comprises a plurality of processing elements, in which each is responsible for capturing an offset-free image, joining pixels and broadcasting in cooperation with neighboring elements, and contributing to the parallel realization of the analog conversion -digital through a simple ramp converter.
  • 4 photodiodes are assigned to each element.
  • the acquisition of the image is carried out using a three-transistor Active Pixel Sensor, the English 3T Active Pixel Sensor (APS), 700, which together with the state capacitors 702, and the capacitor C 710, carry out the double correlated sampling (CDS) according to a particular embodiment, and without limitation.
  • APS English 3T Active Pixel Sensor
  • CDS double correlated sampling
  • V ref is a reference analog value
  • V s (t 0 ) and V s (ti) are the values acquired by the photodiodes Si, 700 at the time instant t 0 and respectively
  • V Q is the resting point of the inverter, 726.
  • the acquisition is controlled by the signals as shown in FIG. 8.
  • inverter can be read as:
  • an 8-bit analog-digital converter of simple ramp is used to convert the stored analog values into digital values.
  • the comparator 708 carrying out the analog-digital conversion (A / D) is carried out with the inverter 726, and reusing the capacitor C 710 when the signal is inactive.
  • the ADC is distributed in two levels:
  • the comparator changes the logical value to its output.
  • the output of the comparator is the signal that enables or disables the reading of the registers of the lower level.
  • a TSV sends this conversion to the registers that store the corresponding digital code.
  • the other functionality of the processing elements of the higher level is that of the realization of the Gaussian filtering, or generation of the space of scales.
  • the blocks 722 and 724 work in conjunction with the state capacitor 702 to carry out this task.
  • the peripheral blocks are implemented with a network of switching capacities. The switches controlled by the signal carry out the
  • the Gaussian filtering necessary for the generation of the space of scales, is the solution of the heat equation. According to one embodiment, it is implemented using a resistive-capacitive (RC) network.
  • RC resistive-capacitive
  • a capacitive network in double Forward-Euler configuration has the same behavior as a continuous RC network over time, except for the discrete load exchange between neighboring nodes.
  • a schematic of the switching capability network is shown in FIG. 10 (a).
  • the load exchange to carry out the diffusion process is done through the state 910 capacitors, and those neighbors located along the 4 cardinal directions. This discrete behavior allows to control the diffusion process, the value of or, in a simple way controlling the number of cycles of the signals
  • the Gaussian width ⁇ of each cycle is fixed by the relation between the state and exchange capacitors (C / C E ).
  • the value of a node in a cycle n is given by:
  • the value of the same node is considered in an iteration with a discrete Gaussian kernel, where there is only interaction with the cardinal neighbors, which is modeled by:
  • FIGs. 10 (b), (c) show their internal structure.
  • the processing element has four exchange capacitors 922.
  • the termination o1 920, o2, 920 and o3 918 in the names of the signals refer to the scales in which they are used.
  • FIG. 11 shows the structure of a 16 x 16 pixel network, according to one embodiment. For the third octave this involves a new set of switches. These are controlled by the signal When activated, the values
  • the A / D conversion is carried out by sharing resources between the two higher levels.
  • a TSV is needed for each set of 4 pixels, which form what is called a processing element in the upper level.
  • the same structure in the form of an array is replicated in the lower level, allowing to make the cell pairing between the upper and lower level in a simple way.
  • the digitized pixels are written in a set of registers of size M / 2 x N / 2, where M and N are the sizes of the acquired image.
  • Each of these sets of records comprises 6 registers of 8 bits 928, 930, 940, 942, 944 and 946.
  • the four pixels P1-P4 are digitized in series, since there is only one TSV for every 4 processing elements. This implies that all pixels P1 are digitized in a first conversion cycle, P2 in a second conversion cycle, and thus for pixels P3 and P4.
  • the first octave There is a 1-bit signal that controls two AND gates, 932 and 934, with as inputs, controlling the enable signal for the two upper registers R13_K 928 and R24_K 930 that receive the value through the TSV, 936.
  • the two upper registers 928 and 930 store the pixels of the scale k.
  • the 4 lower registers, 940, 942, 944 and 946, store the pixels P1-P4 of the scale k-1.
  • the multiplexers 938 and 948 send the scales k and k-1 of the pixels corresponding to the respective buses for further processing, 931 and 933. The sequence of operations for obtaining each scale in the first octave is described below.
  • the pixel P1 is digitized in registers R13_K, 928, with
  • pixel P2 is digitized and stored in register R24_K 930 following a similar process with the signal activated While activated, the calculation of the DoG is carried out for all the P1 pixels and written to the DRAM memory.
  • the pixels P1 the content of the register R13_K, 928, is transferred to the register R1_K_ 1 940 by means of the activation of the signal ⁇ ⁇ 952.
  • the pixels P3 are digitized in the register R13_K 928, while the pixels P2 are read and transferred to the registers R2_K_ 1 942 by the activation signal ⁇ ⁇ 954.
  • the signals play a similar role in the
  • the storage of frames 960 is a set of M / 2 x N / 2 groups of registers that store the different scales of the scale space.
  • several tasks are executed in parallel: 1) digitization of the pixel P1 on the scale k, 2) scales S (k) 982, 3) Difference of Gaussian between scales ky k-1 DoG (k) 980, 4) horizontal gradient along the directions x and y for the scale k, d x (k) 968 yd and (k) 970, as well as the Harris point detection derivatives and
  • the results are arranged in groups of 128 bits (16 words of 8 bits each) and transferred in mode burst to DRAM memory.
  • the pictures of the table storage are read in groups of 20 registers row by row to provide the first 16 and 16 second derivatives at the same time.
  • the pixel columns Pi are selected by the 4 multiplexers, 962 and 964. Two of them are shared by the first and second octaves for the scales k and k-1, 962. Both scales are required for the calculation of the DoG.
  • the other two 964 multiplexers are used for the third octave. It must be taken into account that for the first and second octaves the multiplexers can be shared, since the access to the registers is done along the rows. At In the case of the first octave, 4 cycles are required to perform the reading and transfer of the pixels P1-P4. In the second and subsequent octave, the transfer is carried out in a single cycle due to the subsample of 1/4 and later.
  • the calculation of the gradient is a very common operation in the image processing.
  • the first derivatives are used in subsequent tasks such as obtaining the orientation and the descriptor vector of each key point in the SIFT algorithm.
  • the first derivatives can be used for the Harris point detector.
  • the reading mechanisms do not allow to obtain the first derivatives d x and d and in a single cycle. Accordingly, this is achieved by calculating the gradient along a different set of axes that have been rotated 45 ° with respect to the conventional axes x and y.
  • the gradient is calculated according to the following set of equations:
  • the result of the detector based on the Hessiana 982 and the Harris 984 point detector are two images of size M x N and 1 and 2 bits per pixel respectively. "1” implies an extreme and "0" is a point without significant information for the Hessian.
  • the Harris algorithm has three states: “00” is a corner, "01” is a border "and” 1X "a point without relevant information
  • Block 986 of FIG.14 reads the values from the records of the frame storage, 987, and performs a calculation per cycle (one pixel).
  • each pixel has the neighbors along the vertical and horizontal directions to calculate the gradient along the conventional x and y axes, and where it is necessary to carry out the interpolation.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

La presente invención se refiere a un procesador de imágenes para la extracción de características que comprende un único chip no planar que contiene una pluralidad de sensores integrados y recursos de procesamiento distribuidos en dos o más capas adaptado a capturar cuadros de imágenes y extraer características de las imágenes. En una realización particular, el chip no planar es un circuito integrado CMOS-3D (CI CMOS- 3D) con una distribución vertical de los recursos de sensado y de procesado distribuidos en dos o más capas verticales de circuito integrado. El CI CMOS-3D implementa dos o más detectores de características en un único chip reutilizando una pluralidad de circuitos empleados para la obtención del gradiente y de puntos clave. Los detectores de características incluyen un detector invariante a transformaciones (SIFT), un detector de Harris y un detector basado en la matriz Hessiana.

Description

Procesador de imágenes para extracción de características
SECTOR TÉCNICO DE LA INVENCIÓN Las realizaciones presentadas se refieren a procesadores de imágenes. Específicamente, se refieren a procesadores para la adquisición de imágenes y detección de características
ESTADO DE LA TÉCNICA
Los procesadores de imágenes convencionales siguen una estructura en la que operan cuadro a cuadro, es decir, primero se capturan los cuadros, posteriormente se codifican al dominio digital y finalmente se procesan. Esta aproximación se beneficia del enorme poder de cálculo de los procesadores digitales en tecnologías de alta integración, pero no es la aproximación más eficiente en términos de velocidad de procesado (tiempo transcurrido entre la entrada y las acciones) ni en términos de consumo de energía.
Los detectores de características invariantes a cambios de escala y rotación se emplean en distintas tareas de procesado de imágenes, como son la detección de objetos y su clasificación, recuperación de imágenes, registro de imágenes o tareas de seguimiento (tracking). Su naturaleza invariante les confiere repetitividad, lo que permite trabajar en ambientes con oclusión, o con escenas adquiridas bajo distintas condiciones, como iluminación o captura desde distintos ángulos de visión.
Los detectores de características modernos invariantes a cambios de escala y rotación, como es el detector de características invariantes a transformaciones de escala, del inglés Scale Invariant Feature Transform(SIFT), son técnicas de procesado de imágenes complejas con un elevado coste computacional, haciendo difícil su uso empleando procesadores de propósito general y software. Una parte importante de este algoritmo es la extracción de la pirámide Gaussiana, que comprende un conjunto de imágenes de diferentes resoluciones, denominadas octavas. Cada octava es el resultado de un escalado de 1/4 de la octava anterior. A su vez, cada octava está formada por una serie de imágenes llamadas escalas. Cada escala es el resultado de realizar un filtrado Gaussiano con un ancho dado (nivel-σ en la escala anterior).
En Harris and Stephens (Proc. Avley Vis. Conf., Manchester, pp. 147-152, 1998) se propuso un algoritmo para detectar características, cuya principal ventaja era que los cálculos involucrados en la obtención de las características de las imágenes, llamadas puntos de Harris, no requieren un tiempo de cómputo elevado. Sin embargo, ofrece unos resultados pobres cuando trabaja con cambios de escala y rotación en las imágenes. El SIFT, presentado en la U.S. Pat. No. 6,711 ,293, es un algoritmo de procesado de imágenes que obtiene características invariantes a cambios de escala y rotación de imágenes digitales. Su principal limitación viene dada por el elevado coste computacional del método, que dificulta su uso en aplicaciones que requieran operar en tiempo real (por ejemplo operar a una tasa de procesado de cuadros de 24 cuadro por segundo o más). Para evitar las limitaciones el algoritmo SIFT original, en Bonato et al., (IEEE Trans Circuits Syst., 18(12), pp. 1703-1712, 2008) se presenta una implementación sobre una FPGA, del inglés Field Programmable Gate Array. Sin embargo, la adquisición de las imágenes no está integrada con los elementos de procesamiento, lo que ralentiza el procesado. Además, el elevado consumo de potencia de las FPGAs hace que sea difícil integrarlas en un sistema de bajo consumo de potencia para tareas de visión por computador.
En Yao et al. (International Conference on Field-Programmable Technology, 2009. FPT 2009) se presenta otra implementación FPGA del algoritmo SIFT. Como en el caso de Bonato et al., la adquisición de la imagen no se ha tenido en cuenta a la hora de desarrollar el sistema.
En Kiyoyama et al., (IEEE International Conference on 3D System Integration, 2009) se lleva a cabo el análisis del rendimiento de un circuito paralelo de procesado de señal, que incluye un circuito a nivel de píxel y un convertidor analógico digital (ADC) con muestreo doble correlacionado, del inglés correlated double sampling (CDS), jerárquico. Este trabajo se centra en la adquisición de la imagen pero no trata el problema de la creación de un núcleo de procesado.
DESCRIPCIÓN DE LA INVENCIÓN
Las realizaciones mostradas incluyen un procesador de imágenes para extracción de características que comprende un único chip no planar que contiene una pluralidad de elementos de sensado y procesado distribuidos en dos o más capas adaptados a capturar cuadros de imágenes y extraer características de imágenes. De acuerdo a una realización particular, el chip no planar es un circuito integrado CMOS-3D con una distribución vertical de los elementos de sensado y de procesado a lo largo de dos o más circuitos integrales dispuestos verticalmente. En particular, el circuito integrado CMOS-3D implementa dos o más detectores de características en un único chip. En una realización, y sin limitar su alcance, estas características son invariantes a transformaciones (SIFT), detector de puntos Harris y detector de características basado en la matriz Hessiana, o una combinación de todas ellas. En particular, el circuito integrado CMOS-3D implementa los detectores de características reutilizando una pluralidad de circuitos empleados para la obtención del gradiente y de los puntos clave (keypoints). A modo de ejemplo, en una realización, el circuito integrado implementa una arquitectura procesador-por-píxel para alcanzar un paralelismo masivo a nivel de píxel, e incluye un array de procesadores en píxel y una pluralidad de circuitos que en paralelo realizan el SIFT, detectan puntos de Harris, y puntos basado en la Hessiana. Ciertas realizaciones incluyen un red de capacidades en conmutación (switched capacitor network) multipropósito. Esta red de capacidades en conmutación multipropósito implementa la generación de una pirámide Gaussiana, muestreo doble correlacionado (CDS), y actúa como memoria analógica a nivel de píxel. Una realización particular de la red de capacidades en conmutación emplea una configuración doble Forward-Euler. De manera similar, el circuito integrado CMOS-3D incluye circuitos compartidos reutilizados para la conversión analógica-digital en píxel y el almacenamiento de los cuadros. En una realización particular, y sin limitar el alcance, los circuitos del circuito integrado se disponen en 4 capas con (a) una capa para adquisición, muestreo doble correlacionado, filtrado Gaussiano y conversión analógica- digital; (b) un nivel para el almacenamiento de los cuadros, la detección de puntos clave, cálculo de differencia-de-Gaussianas (DoG), cálculo de gradiente, y conversión analógica-digital compartida; y (c) dos niveles con memoria dinámica de acceso aleatorio, del inglés Dynamic Random Access Memory (DRAM).
De igual manera, se muestra un método para obtener características de las imágenes de forma eficiente usando un circuito integrado. El método comprende: (a) implementar en un único chip no planar una pluralidad de elementos de sensado y procesado adaptados a la captura de imágenes y extracción de características y distribuidos en dos o más capas; y (b) reutilizar la pluralidad de circuitos en el chip no planar para realizar un cálculo concurrente del gradiente y la detección de los puntos clave; y el muestreo doble correlacionado (CDS) y la conversión analógica-digital. En una realización particular, el chip no planar implementa dos o más detectores de características en un único chip. Por ejemplo, el detector de características puede ser un detector de características invariante a cambios de escala (SIFT), un detector de puntos Harris, un detector de puntos dados por la matriz Hessiana, o una combinación de todos ellos.
En una realización particular, el procesador de imágenes descrito se puede usar como un procesador de visión CMOS-3D para ejecutar distintos detectores de características.. El procesador de imágenes permite al usuario seleccionar el detector de características más apropiado de acuerdo a las necesidades de la aplicación. En una realización, el procesador de imágenes ejecuta dos modos principales: 1) Modo SIFT, proporcionando una alta precisión pero con el coste de una baja velocidad, y 2) Detectores de puntos Harris y basado en la matriz Hessiana, que son más veloces a costa de ofrecer una menor precisión. Esos dos modos son posibles gracias a: 1) la arquitectura CMOS-3D, y 2) el hecho de que ejecutar el SIFT implica ejecutar algunas de las operaciones requeridas para el detector de puntos Harris o detector basado en la matriz Hessiana. En concreto, la realización particular, y sin limitar el alcance, incluye una arquitectura de pixel con CDS a nivel de pixel, y conversión analógica-digital a nivel de pixel mediante un convertidor analógico-digital de rampa simple de 8 bits. La reutilización de los diferentes circuitos permite obtener una menor área por pixel. Además, de acuerdo a una realización, la arquitectura incluye la asignación de una estructura de 3 transistores de sensores activos de fotodiodos, del inglés active photodiode sensor (APS), por procesador, proporcionado una capacidad de procesamiento masivamente paralela, muy adecuada para operaciones a nivel de pixel, operaciones muy frecuentes en cualquier detector de características. En una realización particular, la arquitectura se implementa con una pila CMOS-3D de dos niveles. El nivel superior contienes los píxeles. Cada pixel se completa con los circuitos necesarios para la red de capacidades en conmutación. Esta red de capacidades en conmutación implementa un filtrado Gaussiano, que se emplea en varios detectores de características. En un ejemplo de realización más particular, y sin limitación, el circuito integrado se diseña con una arquitectura CMOS-3D de dos niveles para la generación de la pirámide Gaussiana, detección de extremos, y cálculo de las derivadas espaciales de una imagen. Estas tareas están incluidas en muchos detectores de características modernos, que a su vez pueden ser usados para aplicaciones tales como detección de objetos, registro de imágenes o seguimiento. En una realización del nivel superior, su arquitectura contiene los circuitos de adquisición de imágenes en un array de 320 x 240 de sensores activos de fotodiodos (active photodiode sensors, APS) y un array más reducido de 160 x 120 procesadores analógicos para el procesado de la imagen a bajo nivel. El nivel superior comprende la realización en pixel CDS, una red de capacidades en conmutación para la generación de la pirámide Gaussiana, memorias analógicas y un comparador para la conversión en pixel analógica digital. La reutilización de circuitos para distintas funciones permite obtener una menor área por cada pixel. De acuerdo a una realización, el nivel inferior de la arquitectura contiene un almacenamiento de cuadros con una correspondencia uno-a-uno con los procesadores analógicos del nivel superior, la circuitería digital necesaria para la detección de extremos y el cálculo de la primera y segunda derivadas espaciales de la imagen, así como detectores de características Harris y Hessiana. A modo de ejemplo, y sin limitación, la arquitectura de dos niveles se puede implementan en un chip CMOS-3D en tecnología de 130 nm. Un chip auxiliar puede realizar las tareas de alto nivel así como las comunicaciones. Empleando esta tecnología se puede obtener un área de 300 μηι2 por píxel o menor (1200 μηι2 por procesador analógico) y permite obtener un ratio de cuadros de 180 cuadros/s para un tiempo de conversión analógico digital de 120 με.
BREVE DESCRIPCIÓN DE LAS FIGURAS
Las modalidades detalladas en las figuras se ilustran a modo de ejemplo y no a modo de limitación:
La FIG. 1 muestra un diagrama de bloques de una realización del procesador de imágenes.
La FIG. 2 muestra una realización del bloque de adquisición mostrando la pluralidad de elementos de sensado.
La FIG. 3 muestra un diagrama de bloques de una realización del bloque de sensado.
La FIG. 4 muestra un diagrama de bloques de una realización del generador del espacio de escalas.
La FIG. 5 muestra un diagrama de bloques de una realización del extractor de características.
La FIG. 6 muestra una realización de la arquitectura CMOS-3D.
La FIG. 7 muestra una realización de un elemento de procesamiento del nivel que realiza la adquisición de un píxel y el filtrado Gaussiano.
La FIG. 8 muestra un ejemplo del cronograma de las señales de control para el nivel de acuerdo a una realización.
La FIG. 9 ilustra la conexión entre los niveles de acuerdo a una realización.
La FIG. 10 muestra el esquemático de la red de capacidades en conmutación de acuerdo a una realización.
La FIG. 11 muestra el esquemático de la red de difusión para una rejilla de 16x16 píxeles de acuerdo a una realización.
La FIG. 12 muestra una realización del elemento de memoria del almacenamiento de cuadros.
La FIG. 13 muestra la arquitectura de un segundo nivel de acuerdo a una realización. La FIG. 14 muestra el diagrama de bloques de los elementos que calculan el gradiente, puntos de Harris, puntos Hessianos y DoG. DESCRIPCIÓN DETALLADA DE LA INVENCIÓN
Las realizaciones mostradas incluyen un procesador de imágenes para la extracción de características que comprende un bloque de adquisición 100, un bloque de generación del espacio de escalas 102, y un bloque para detectar características 106.
En esta realización particular, el bloque de adquisición, que obtiene una imagen de una escena para que el procesador la analice, comprende una pluralidad de elementos de sensado 200. Cada elemento de sensado adquiere una parte de la escena 302 que va a ser analizada 300 que es transformada en un valor analógico 304 y luego se almacena 306. La pluralidad de valores analógicos adquiridos por la pluralidad de elementos de sensado forman la imagen de la escena.
El bloque de generación del espacio de escalas genera el espacio de escalas, es decir, un conjunto de imágenes borrosas obtenidas tras la aplicación de filtros Gaussianos con una σ determinada:
Figure imgf000008_0001
donde G(x,y,ka) es un filtro Gaussiano con una desviación estándar ko, l(x,y) es la imagen adquirida compuesta por la pluralidad de valores analógicos adquiridos por el bloque de adquisición, L(x,y,ko) es la imagen borrosa obtenida, y * es la operación de convolución. De acuerdo a una realización, un proceso de difusión 402 consiste en aplicar un filtro Gaussiano de acuerdo a la ecuación (1) al valor analógico adquirido 400 obtenido por el elemento de sensado. La pluralidad de valores obtenidos de la imagen borrosa 404 es convertida a valores digitales mediante un convertidor analógico-digital 406. El espacio de escala está compuesto de imágenes borrosas, cuyo nivel de difuminado se incrementa aplicando iterativamente un filtro Gaussiano con una determinada o.
El valor digital de las imágenes borrosas 500 se transfiere a un bloque de memoria 502 que comprende una pluralidad de elementos de memoria. Los valores almacenados se envían a los distintos bloques de obtención de características, que implican distintos modos de funcionamiento:
• Detector de puntos Harris 504: En este bloque, a partir de la primera imagen borrosa se lleva a cabo una detección de los puntos de Harris. La detección de esta característica involucra la realización de la siguiente operación sobre una imagen, y un punto es clasificado como punto de Harris si el siguiente valor mayor que un umbral establecido:
Figure imgf000009_0001
donde ígx y lgy son imágenes que se obtienen tras aplicar a la imagen adquirida los gradientes en las direcciones x e y respectivamente, seguido por un filtrado Gaussiano, lgxy es el producto de las imágenes gradiente en las direcciones x e y seguida por un filtrado Gaussiano, y K es un parámetro predefinido.
• Detector de puntos basado en la Hessiana 506: En este bloque, a partir de las imágenes borrosas, se lleva a cabo una detección de puntos singulares a través de la matriz Hessiana. Un punto es clasificado como punto Hessiano si el siguiente valor es mayor que un umbral establecido:
Figure imgf000009_0002
donde lxx y lyy son, respectivamente, las segundas derivadas espaciales de la imagen en las direcciones x e y, y lxy es la derivada cruzada en las direcciones x e y-
• Differencia de Gaussianas, del inglés Difference of Gaussians, (DoG) 508: En este caso se lleva a cabo una diferencia entre dos imágenes consecutivas del espacio de escalas, es decir:
Figure imgf000009_0003
De acuerdo a una realización, el detector de características se implementa como un circuito integrado CMOS-3D. La tecnología CMOS-3D permite integrar más funcionalidad en el mismo chip gracias a los distintos niveles de integración que permite. La arquitectura de tal implementación comprende dos capas también denominadas niveles 600 y 602, donde la funcionalidad deseada es implementada y dos niveles adicionales de memoria DRAM 604 para almacenar los datos. La conexión entre los dos niveles superiores se lleva a cabo mediante conexiones directas denominadas vías a través de silicio, del inglés Through-Silicon-Vias (TSV), 606. El nivel superior incluye la adquisición de la imagen y la generación del espacio de escalas (generación de la pirámide Gaussiana y su digitalizacion). El segundo nivel 602 comprende un bloque para detectar características.
El nivel 1 comprende una pluralidad de elementos de procesamiento, en el que cada uno es responsable de la captura de una imagen libre de offset, unión de píxeles y difusión en cooperación con los elementos vecinos, y contribuyen a la realización paralela de la conversión analógica-digital mediante un convertidor de rampa simple. Para reducir el consumo de área, se asignan 4 fotodiodos a cada elemento. La adquisición de la imagen se lleva a cabo usando un Sensor Activo de Píxel de tres transistores, del inglés 3T Active Pixel Sensor (APS), 700, que junto con los condensadores de estado 702, y el condensador C 710, llevan a cabo el muestreo doble correlacionado (CDS) de acuerdo a una realización particular, y sin limitación. El resultado de la adquisición se almacena en la correspondiente memoria analógica Cs¡ 702 que está dado por:
Figure imgf000010_0001
donde Vref es una valor analógico de referencia, Vs(t0) y Vs(ti) son los valores adquiridos por los fotodiodos Si, 700 en el instante de tiempo t0 y respectivamente, y VQ es el punto de reposo del inversor, 726. La adquisición se controla mediante las señales
Figure imgf000010_0007
tal y como se muestra en la FIG. 8. Tal
Figure imgf000010_0002
y como se muestra en el cronograma cuando se lleva a cabo el procesado del píxel 1 se activan las señales de esta forma se transfiere el valor capturado por el
Figure imgf000010_0003
fotodiodo al condensador de estado correspondiente, en este caso Csi , 702, donde es almacenado para su posterior digitalización y realización del proceso de difusión. Ajusfando el valor de los valores almacenados en la salida del
Figure imgf000010_0004
inversor se pueden leer como:
Figure imgf000010_0005
De acuerdo a una realización particular, y sin limitación, se usa un convertidor analógico- digital (ADC) de 8 bits de rampa simple para convertir los valores analógicos almacenados en valores digitales. El comparador 708 que lleva a cabo la conversión analógica-digital (A/D) se lleva a cabo con el inversor 726, y reutilizando el condensador C 710 cuando la señal está inactiva. El ADC se distribuye en dos niveles: el
Figure imgf000010_0006
generador de la rampa analógica 900 y el comparador 902 en el nivel superior y un registro 908 y un contador digital 906 en el nivel inferior. Para llevar a cabo la conversión, el valor dado por la Eq. (6) se escribe en el condensador C, 710, activando las señales
Figure imgf000011_0002
A continuación, este valor se compara con el valor de la rampa analógica global Vramp 714 activando La salida del inversor 732 viene
Figure imgf000011_0003
dada por:
Figure imgf000011_0001
Cuando se produce un cruce por cero en el primer término de la Eq. (7) el comparador cambia el valor lógico a su salida. La salida del comparador es la señal que habilita o inhabilita la lectura de los registros del nivel inferior. Una TSV envía esta conversión a los registros que almacenan el código digital correspondiente.
La otra funcionalidad de los elementos de procesamiento del nivel superior es la de la realización del filtrado Gaussiano, o generación del espacio de escalas. Los bloques 722 y 724 trabajan conjuntamente con el condensador de estado 702 para llevar a cabo esta tarea. Los bloques periféricos están implementados con una red de capacidades en conmutación. Los conmutadores controlados por la señal llevan a cabo el
Figure imgf000011_0004
submuestreo 1/4, uniendo el valor de los cuatro condensadores de estado para la segunda octava.
El filtrado Gaussiano, necesario para la generación del espacio de escalas, es la solución de la ecuación de calor. De acuerdo a una realización, es implementado usando una red resistiva-capacitiva (RC). Una red capacitiva en configuración doble Forward-Euler tiene el mismo comportamiento que una red RC continua en el tiempo, excepto por el intercambio discreto de carga entre nodos vecinos. Un esquema de la red de capacidades en conmutación se muestra en la FIG. 10(a). El intercambio de carga para llevar a cabo el proceso de difusión se realiza mediante los condensadores de estado 910, y aquellos vecinos localizados a lo largo de las 4 direcciones cardinales. Este comportamiento discreto permite controlar el proceso de difusión, el valor de o, de forma simple controlando el número de ciclos de las señales
Figure imgf000011_0005
La anchura de la Gaussiana σ de cada ciclo se fija mediante la relación entre los condensadores de estado e intercambio (C/CE). En particular, el valor de un nodo en un ciclo n está dado por:
Figure imgf000012_0001
Por otro lado, se considera el valor del mismo nodo en una iteración con un núcleo Gaussiano discreto, donde sólo existe interacción con los vecinos cardinales, que es modelado por:
Figure imgf000012_0002
De las Eqs. (8)-(9), el nivel por ciclo se puede escribir como:
Figure imgf000012_0003
La aplicación de dos filtros Gaussianos sucesivos o núcleos con σ0 es equivalente a un núcleo Gaussiano con una cierta o. Esta propiedad permite obtener con un nivel de filtrado o0 fijado por el cociente C/CE aproximar cualquier núcleo Gaussiano mediante filtrado recursivo o aplicando núcleos Gaussianos de o0. La dependencia de σ con el número de ciclos σ = σ(η) viene dada por:
Figure imgf000012_0004
Las S escalas de cada octava de la pirámide Gaussiana se generan con los mismos S valores de o. Los bloques periféricos A 724 y B 722 llevan a cabo la interacción con los vecinos a lo largo de las direcciones cardinales. Las FIGs. 10(b),(c) muestran su estructura interna. Para cada condensador de estado el elemento de procesamiento tienen cuatro condensadores de intercambio 922. La terminación o1 920, o2, 920 y o3 918 en los nombres de las señales hacen referencia a las escalas en las que son usadas. Después de ejecutar las difusiones de la primera octava, los cuatro condensadores de estado Cs, 702 se unen en un único condensador a través de los conmutadores controlados por llevando a cabo el submuestreo de 1/4 de la imagen. En esta
Figure imgf000013_0002
situación, los bloques A 724 están cortocircuitados, y por lo tanto el cociente C/CE incrementa su valor por un factor de 2, cambiando la relación σ = o (n) del sistema. Para preservar el valor de o, se inhabilitan los condensadores CS3 y CS4 después de realizar la unión. Esto se lleva a cabo a través del conmutador
Figure imgf000013_0001
La FIG. 11 muestra la estructura de una red de 16 x 16 pixeles, de acuerdo a una realización. Para la tercera octava esto involucra un nuevo juego de conmutadores. Estos son controlados por la señal
Figure imgf000013_0003
Cuando está activada, los valores
Figure imgf000013_0004
almacenados en las cuatro celdas son promediados en un único píxel, llevando a cabo el submuestreo de la imagen original a otra con una resolución 1/4 de la original. Después de la unión, sólo una de cada cuatro celdas permanece habilitada 924. El filtrado se lleva a cabo con estas celdas activas en un proceso similar al descrito anteriormente mediante las líneas de conexión punteadas de la FIG. 11 926.
La conversión A/D se lleva a cabo compartiendo recursos entre los dos niveles superiores. Estando distribuidos el comparador en el nivel superior, y las señales del contador global (generación del código digital) entre los registros del nivel inferior, así se necesita una TSV para cada conjunto de 4 pixeles, que forman lo que se denomina un elemento de procesamiento en el nivel superior. La misma estructura en forma de array se replica en el nivel inferior, permitiendo hacer de forma sencilla el emparejamiento de celdas entre el nivel superior e inferior. Así, los pixeles digitalizados se escriben en un conjunto de registros de tamaño M/2 x N/2, donde M y N son los tamaños de la imagen adquirida. Cada uno de estos conjuntos de registros comprende 6 registros de 8 bits 928, 930, 940, 942, 944 y 946. Dos de ellos realizan la conversión de la escala k, 928 y 930, junto con el comparador del nivel superior, donde k indica la escala dentro de una octava. Se necesitan dos registros para permitir la conversión de un píxel mientras los otros están siendo leídos para su posterior procesado. El resto de los registros, 940, 942, 944 y 946, almacenan los valores de la escala previa (k-1). De esta forma la imagen completa M x N se almacena en el nivel inferior. Estos pixeles se denotan como: P1 , P2 , P3 y P4, que corresponden con las localizaciones (i,j), (i, j + 1), (i + 1 , j) y (i + 1 , j + 1), respectivamente, donde i indica la fila y j indica la columna dentro de la imagen. Los cuatro pixeles P1-P4 se digitalizan en serie, ya que sólo hay un TSV por cada 4 elementos de procesamiento. Esto implica que todos los pixeles P1 se digitalizan en un primer ciclo de conversión, P2 en un segundo ciclo de conversión, y así para los pixeles P3 y P4.
Por lo tanto, se necesitan cuatro ciclos de conversión para la digitalización de toda la imagen en la primera octava. Hay una señal de 1 bit que controla dos puertas AND, 932 y 934, con
Figure imgf000014_0001
como entradas, controlando la señal de habilitación para los dos registros superiores R13_K 928 y R24_K 930 que reciben el valor a través de la TSV, 936. Los dos registros superiores 928 y 930 almacenan los pixeles de la escala k. Los 4 registros inferiores, 940, 942, 944 y 946, almacenan los pixeles P1-P4 de la escala k-1. Los multiplexores 938 y 948 envían las escalas k y k-1 de los pixeles correspondientes a los respectivos buses para un posterior procesado, 931 y 933. La secuencia de operaciones para obtener cada escala en la primera octava se describe a continuación. El píxel P1 se digitaliza en los registros R13_K, 928, con
Figure imgf000014_0004
activada. A continuación, el píxel P2 se digitaliza y almacena en el registro R24_K 930 siguiendo un proceso similar con la señal
Figure imgf000014_0003
activada. Mientras
Figure imgf000014_0005
activada, se lleva a cabo el cálculo de la DoG para todos los pixeles P1 y se escriben en la memoria DRAM. Después de la lectura de los pixeles P1 el contenido del registro R13_K, 928, se transfiere al registro R1_K_ 1 940 mediante la activación de la señal φ^ 952. Posteriormente, los pixeles P3 se digitalizan en el registro R13_K 928, mientras que los pixeles P2 se leen y se transfieren a los registros R2_K_ 1 942 mediante la señal de activación φ^ 954. Las señales juegan un papel similar en el
Figure imgf000014_0002
proceso de transferencia y almacenamiento de los pixeles P3 y P4 respectivamente. El proceso continua hasta llegar a los pixeles P4, completando la primera octava.
De acuerdo a una realización, el almacenamiento de cuadros 960 es un conjunto de M/2 x N/2 grupos de registros que almacenan las diferentes escalas del espacio de escalas. Después de cada difusión o filtrado Gaussiano de una imagen y su digitalización, se ejecutan varias tareas en paralelo: 1) la digitalización del píxel P1 en la escala k, 2) escalas S(k) 982, 3) Diferencia de Gaussianas entre escalas k y k-1 DoG(k) 980, 4) gradiente horizontal a lo largo de las direcciones x e y para la escala k, dx(k) 968 y dy(k) 970, así como las derivadas detección de puntos de Harris y
Figure imgf000014_0006
Hessianos, 966, en las escalas, 972 y 6) detección de puntos de Harris y Hessianos 976 sobre las DoG, 974. Después los resultados se ordenan en grupos de 128 bits (16 palabras de 8 bits cada uno) y se transfieren en modo ráfaga a la memoria DRAM. En una realización particular, las imágenes del almacenamiento de cuadros se leen en grupos de 20 registros fila a fila para proporcionar las 16 primeras y 16 segundas derivadas al mismo tiempo. Para cada fila i, las columnas de pixeles Pi se seleccionan mediante los 4 multiplexores, 962 y 964. dos de ellos son compartidos por la primera y segunda octavas para las escalas k y k-1 , 962. Se requieren ambas escalas para el cálculo de las DoG. Los otros dos multiplexores 964 se emplean para la tercera octava. Debe tenerse en cuenta que para la primera y segunda octava los multiplexores pueden ser compartidos, ya que el acceso a los registros se hacen a lo largo de las filas. En el caso de la primera octava se necesitan 4 ciclos para realizar la lectura y transferencia de los píxeles P1-P4. En la segunda octava y posteriores, la transferencia se lleva a cabo en un único ciclo debido al submuestrado de 1/4 y posteriores.
El cálculo del gradiente es una operación muy común en el procesado de imágenes. Además, las primeras derivadas se usan en tareas subsiguientes como son la obtención de la orientación y el vector descriptor de cada punto clave en el algoritmo SIFT. Además, las primeras derivadas se pueden usar para el detector de puntos Harris.
De acuerdo a una realización particular, debido a la asignación de 4 píxeles a un procesador en el nivel superior los mecanismos de lectura no permiten obtener las derivadas primeras dx y dy en un único ciclo. Por consiguiente, esto se logra calculando el gradiente a lo largo de un conjunto diferente de ejes que han sido rotados 45° con respecto a los ejes convencionales x e y. Así, el gradiente se calcula de acuerdo al siguiente conjunto de ecuaciones:
Figure imgf000015_0001
El resultado del detector basado en la Hessiana 982 y el detector de puntos Harris 984 son dos imágenes de tamaño M x N y de 1 y 2 bits por píxel respectivamente. "1" implica un extremo y "0" es un punto sin información significativa para la Hessiana. El algoritmo Harris tiene tres estados: "00" es una esquina, "01" es un borde" y "1X" un punto sin información relevante. El bloque 986 de la FIG. 14 lee los valores del los registros del almacenamiento de cuadros, 987, y realiza un cálculo por ciclo (un píxel).
Otros detectores están basados en la localización de puntos característicos a través de la matriz Hessiana 982. Para obtener esta matriz se necesita realizar las segundas derivadas. El cálculo de estas derivadas requiere una vecindad de orden 4. Como se mencionó previamente, en el proceso de lectura la realización mostrada, un píxel no tiene disponibles los vecinos para calcular las primeras derivadas a lo largo de los ejes convencionales x e y (direcciones vertical y horizontal). Sin embargo, es posible realizar esta operación con los píxeles localizados a una distancia de dos píxeles. Una aproximación para la segunda derivada se realiza generando los vecinos localizados a una distancia de un píxel a lo largo de las direcciones horizontal y vertical interpolando los píxeles situados a una distancia de dos píxeles con respecto al píxel que está siendo procesado. Así, en este proceso, el vecino en (i+1 ; j) se genera como l(i+1 ; j) = [l(i+2; j)+ ¡; j)]/2. Con esta aproximación las segundas derivadas vienen dadas por:
Figure imgf000016_0001
donde
Figure imgf000016_0002
para la primera octava,
Figure imgf000016_0003
para las siguientes octavas, dado que en la segunda y tercera octavas cada píxel tiene los vecinos a lo largo de las direcciones vertical y horizontal para calcular el gradiente a lo largo de los ejes x e y convencionales, y en donde nos es necesario llevar a cabo la interpolación.

Claims

REIVINDICACIONES
1. Un procesador de imágenes para detección de características que comprende un único chip no planar que contiene una pluralidad de elementos integrados de sensado y procesamiento distribuidos en dos o más capas adaptados para la captura de cuadros de imágenes y la extracción de características de imágenes.
2. El procesador de imágenes según la reivindicación 1 , donde el chip no planar es un circuito integrado CMOS tridimensional con una distribución vertical del sensado y los elementos de procesamiento en dos o más capas de circuitos integrados.
3. El procesador de imágenes según la reivindicación 2, donde el circuito integrado CMOS tridimensional implementa dos o más detectores de características en un único chip.
4. El procesador de imágenes según la reivindicación 3, donde los detectores de características son características invariantes a cambios de escala (SIFT), detectores de puntos Harris, detector basado de la matriz Hessiana, o una combinación de todos ellos.
5. El procesador de imágenes de la reivindicación 4, donde el circuito integrado CMOS tridimensional implementa dos o más detectores de características reutilizando una pluralidad de circuitos usados para la extracción del gradiente y puntos clave.
6. El procesador de imágenes de la reivindicación 5, donde el circuito integrado CMOS tridimensional implementa una arquitectura píxel-por-procesador para obtener un paralelismo masivo a nivel de operación de píxel.
7. El procesador de imágenes de la reivindicación 6, donde el circuito integrado CMOS tridimensional comprende un array de procesadores en píxel y una pluralidad de circuitos que de forma paralela implementan los detectores de características SIFT, detector de puntos Harris, y detector de puntos basados en la matriz Hessiana.
8. El procesador de imágenes de la reivindicación 7, donde la pluralidad de circuitos incluye una red de capacidades en conmutación multipropósito.
9. El procesador de imágenes de la reivindicación 8, donde la red de capacidades en conmutación multipropósito implementa la generación de la pirámide Gaussiana, muestreo doble correlacionado (correlated double sampling, CDS) en píxel, y una memoria analógica a nivel de píxel.
10. El procesador de imágenes de la reivindicación 9, donde la red de capacidades en conmutación multipropósito presenta una configuración doble Forward-Euler.
11. El procesador de imágenes de la reivindicación 10, donde el circuito integrado CMOS tridimensional incluye la reutilización de circuitos compartidos para la conversión en píxel analógica-digital y el almacenamiento de cuadros.
12. El procesador de imágenes de la reivindicación 11 , donde los circuitos del circuito integrado CMOS tridimensional están dispuestos en capas con (a) un nivel para la adquisición, CDS, filtrado Gaussiano y conversión analógica-digital; (b) un nivel para el almacenamiento de cuadros, extracción de puntos clave (keypoints), cálculo de la diferencia de Gaussianas (Difference-of-Gaussian, DoG), cálculo del gradiente y compartición de la conversión analógica-digital; y (c) dos niveles con memoria dinámica de acceso aleatorio, del inglés Dynamic Random Memory Access (DRAM).
13. Un método para extraer de forma eficiente características de imágenes mediante un circuito integrado que comprende:
a. implementar un único chip no planar que contiene una pluralidad de elementos integrados de sensado y de procesamiento distribuidos en dos o más niveles adaptados a la captura de cuadros de imágenes y extracción de características de imágenes; y
b. reutilizar una pluralidad de circuitos en el chip no planar para obtener una implementación concurrente del cálculo del gradiente y de los puntos clave; CDS y conversión analógica-digital.
14. El método de la reivindicación 13, donde el chip no planar implementa dos o más detectores de características en un único chip.
15. El método de la reivindicación 14, donde las características son características invariantes a cambios de escala (SIFT), detector de puntos de Harris, detector basado en la Hessiana, o una combinación de todos ellos.
16. El método de la reivindicación 15, donde el circuito integrado CMOS tridimensional implementa un procesador por píxel para obtener un paralelismo de operación masivo a nivel de píxel; el circuito integrado CMOS tridimensional comprende un array de procesadores en píxel y una pluralidad de circuitos que realizan en paralelo el SIFT, detección de puntos Harris, detección de puntos basada en la Hessiana; la pluralidad de circuitos incluye una red de capacidades en conmutación multipropósito; la red de capacidades en conmutación multipropósito implementa la generación de la pirámide Gaussiana, el muestreo doble correlacionado (CDS) en píxel, y una memoria analógica a nivel de píxel; la red de capacidades en conmutación multipropósito tiene una configuración doble Forward-Euler; el circuito integrado CMOS tridimensional incluye recursos compartidos para la conversión analógica-digital en píxel y el almacenamiento de cuadros; los circuitos del circuito integrado CMOS tridimensional están dispuestos en cuatro capas con (a) un nivel para la adquisición, muestreo doble correlacionado, filtrado Gaussiano y conversión analógica-digital; (b) un nivel para el almacenamiento digital de cuadros, extracción de puntos clave, cálculo de la DoG, cálculo del gradiente, y compartición de la conversión analógica-digital; y (c) dos niveles con memoria DRAM.
PCT/ES2013/070037 2012-02-01 2013-01-29 Procesador de imágenes para extracción de características WO2013113961A1 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ES201200090A ES2421581B1 (es) 2012-02-01 2012-02-01 Procesador de imágenes para extracción de características
ESP201200090 2012-02-01

Publications (1)

Publication Number Publication Date
WO2013113961A1 true WO2013113961A1 (es) 2013-08-08

Family

ID=48904443

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2013/070037 WO2013113961A1 (es) 2012-02-01 2013-01-29 Procesador de imágenes para extracción de características

Country Status (2)

Country Link
ES (1) ES2421581B1 (es)
WO (1) WO2013113961A1 (es)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711293B1 (en) 1999-03-08 2004-03-23 The University Of British Columbia Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711293B1 (en) 1999-03-08 2004-03-23 The University Of British Columbia Method and apparatus for identifying scale invariant features in an image and use of same for locating an object in an image

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
BONATO ET AL., IEEE TRANS CIRCUITS SYST., vol. 18, no. 12, 2008, pages 1703 - 1712
HARRIS; STEPHENS, PROC. AVLEY VIS. CONF., MANCHESTER, 1998, pages 147 - 152
NILCHI A ET AL.: "Focal-Plane Algorithmically-Multiplying CMOS Computational Image Sensor", IEEE JOURNAL OF SOLID-STATE CIRCUITS, vol. 44, no. 6, 1 June 2009 (2009-06-01), PISCATAWAY, NJ, USA, pages 1829 - 1839, XP011258529 *
PEIZHEN WANG ET AL.: "Feature Extraction and Matching for Plant Images.", COMPUTATIONAL INTELLIGENCE AND SECURITY, 2009. CIS '09. INTERNATIONAL CONFERENCE ON, 11 December 2009 (2009-12-11), PISCATAWAY, NJ, USA, pages 155 - 159, XP031598436 *
YAMASAKI H ET AL.: "A real-time image-feature-extraction and vector-generation vlsi employing arrayed-shift-register architecture.", SOLID-STATE CIRCUITS CONFERENCE, 2005. ESSCIRC 2005. PROCEEDINGS OF THE 31ST EUROPEAN, 12 September 2005 (2005-09-12), PISCATAWAY, NJ, USA, pages 121 - 124, XP010854919 *

Also Published As

Publication number Publication date
ES2421581A1 (es) 2013-09-04
ES2421581B1 (es) 2014-12-16

Similar Documents

Publication Publication Date Title
US8942481B2 (en) Three dimensional CMOS image processor for feature detection
Suarez et al. CMOS-3D smart imager architectures for feature detection
Wang et al. Detail-preserving transformer for light field image super-resolution
EP3201835B1 (en) Scanning window in hardware for low-power object-detection in images
CN105144699B (zh) 阈值监测的有条件重置的图像传感器及其操作方法
Benosman et al. Asynchronous event-based Hebbian epipolar geometry
JP2023052222A (ja) ピクセルワイズイメージングの方法及びシステム
KR20210051242A (ko) 멀티 렌즈 영상 복원 장치 및 방법
CN109478242A (zh) 用于产生方向梯度直方图的方法
Suárez et al. Low-power CMOS vision sensor for Gaussian pyramid extraction
US20150296159A1 (en) Image Sensors Comprising Hybrid Arrays of Global and Rolling Shutter Pixels
Ben-Ezra et al. Penrose pixels super-resolution in the detector layout domain
CN109313806A (zh) 图像处理装置、图像处理系统、图像处理方法和程序
Di Federico et al. SCDVP: A simplicial CNN digital visual processor
US20130243330A1 (en) Method and apparatus for constructing image blur pyramid, and an image feature extracting circuit
CN112399116A (zh) 成像电路
CN110651475A (zh) 用于致密光学流的阶层式数据组织
Rodríguez-Vázquez et al. In the quest of vision-sensors-on-chip: Pre-processing sensors for data reduction
ES2421581B1 (es) Procesador de imágenes para extracción de características
US20210058580A1 (en) Imaging systems and methods for performing floating gate readout via distributed pixel interconnects for analog domain regional feature extraction
US20230403480A1 (en) Methods and apparatus for robotics vision system-on-chip and applications thereof
Suarez et al. A CMOS-3D reconfigurable architecture with in-pixel processing for feature detectors
CN103782585A (zh) 具有可编程集群的像素矩阵
JP2012511836A (ja) 撮像装置及び方法
Fernandez-Berni et al. Image filtering by reduced kernels exploiting kernel structure and focal-plane averaging

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13743826

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2013743826

Country of ref document: EP

122 Ep: pct application non-entry in european phase

Ref document number: 13743826

Country of ref document: EP

Kind code of ref document: A1