|
|
|
Overview The primary objective of the SeeMos Project is to propose a research platform dedicated to active vision and in particular to the early vision process. Thus, the SeeMos platform which constitutes an embedded system is composed of a modular hardware and a software design. The main feature of this platform is an architecture based on FPGA, CMOS imager, Inertial devices, High speed communication and a DSP-based Codesigned board. |
Imaging device
This module consists of a CMOS imager manufactured by Neuricam. The imager allows full 2D addressing with a column bus and a row bus. It has a resolution of 640x480 (VGA) and provides a broad dynamic range (120db) due to the logarithmic response of its pixel structure.
Four digital-to-analog converters allow modification of the four analog voltages of the imager: analog signal offset, digital conversion range, voltage reference and a pixel precharge voltage. These four converters are used to optimize the conversion range. In effect, the CMOS imager has a logarithmic curve that enables the broad dynamic range (120dB).

FPGA Board
This is the core of the system. It was designed around a Stratix EP1S60 manufactured by Altera which is connected to 5x1MB SRAM and 64MB SDRAM. Of course, this component enables a high density of integration (57120 Logic Elements).
The need for strong parallelization was what led us to connect 5x2MB SRAM synchronous memory blocks. Each 2MB memory has private data and address buses. Consequently, in the FPGA, 5 processes (using 2MB each) can address all the memory at the same time and an SDRAM module socket provides an extension of the memory to 64 MB.

DSP Board
This module can be considered as a "co-processor" for the FPGA. The main idea consists in using the DSP like a part of the FPGA in order to carry out a particular task. In our design, the originality of the connection between the DSP and the FPGA will be to consider the set " DSP + algorithm " as a custom instruction.

Consequently, few custom instructions will be able to easily write
in C or assembler and optimized for a such device (Filtering,
FFT,...). Thus a set of compiled C routines (saved in a dedicated
memory on the DSP board module) corresponds to a set of custom
instruction.
Communication
This board is connected to the main board and manages all communications with a host computer. The communication bus is actually high-speed USB2.0 and we develop a FireWire link.





Inertial device
The inertial set is composed of two 2D linear accelerometers ADXL 311 designed by Analog Devices and three gyrometers ENC03-M designed by Murata.

These sensors are soldered onto the imager PCB and aligned with the imager axis. A single 8-input analog-to-digital converter allows conversion of the different axis measurements. It is important to notice that a temperature sensor is included in this board to regulate the inertial sensors' deviations.

The Z gyrometer and accelerometer are soldered on a second board positioned at right angle with the imager board.
Architectural features The main purpose of our architecture is to allow the implementation
of early vision processes as in the human or primate visual
system. In these systems it is well known that the first neural
layers (in the retina) pre-filter the visual data flow in order to
select only the conspicious information.
|
Architecture Motivations: The active vision approach An artificial active vision system uses observer-controlled input
sensors. Its main goal must be to actively extract the requested
information in order to solve a given task. In this spirit, an active vision system can be divided in 2 two main parts: Early vision step and Cognitive processes. In the design of our sensor, we only consider the Early vision step which can be divided into two successive tasks:
.
. Tracking of a gray scale template (32x32) at 2000fr/s |
Implementation approach The implementation of such an approach requires management, sequential and concurrent execution of the routines previously described. Indeed, all task-oriented execution (attention, focusing) is controlled by supplied results and these layers possibly have to share areas of interest. Moreover, the information bottleneck located in the imager level should be continuously optimized to ensure an efficient performance. In our hardware architecture, these functions are carried out by what we term a "Sequencer'' (noted M0 on the figure below) and are performed on the NIOS soft core processor. This solution has two main advantages:
An internal RAM (noted R0 on the figure below) is used to store the instruction sequences which define the sequencer behavior according to the task under consideration. The host computer which uses our embedded system communicates with it through a standard communication bus (actually USB 2.0 protocol) and sends requests in order to indicate to the sequencer to adopt the relevant behavior. More precisely, the controls are accordingly (and potentially a set of parameters) stored in a dedicated stack, then the sequencer M0 chooses pre-established interactions between the modules (noted P4 on the figure below) which constitute a dedicated processing chain.
|