+ All Categories
Home > Documents > On the Architectural Design and Applications of CMOS Vision...

On the Architectural Design and Applications of CMOS Vision...

Date post: 21-Jun-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
111
© ANAFOCUS 2009 1 IEEE CAS Workshop 2009 Rio de Janeiro, November 24 Belo Horizonte, November 26 On the Architectural Design and Applications of CMOS Vision Systems Carlos Mendoza Giraldo
Transcript
Page 1: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

1

IEEE CAS Workshop 2009Rio de Janeiro, November 24Belo Horizonte, November 26

On the Architectural Design

and Applications of

CMOS Vision Systems

Carlos Mendoza Giraldo

Page 2: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

Outline of the Talk

• Some Basic Concepts:

◊ Concept of Vision System◊ Conventional Vision System Architecture◊ Rationale for Using CMOS

• Architectures for Vision Systems

◊ Progressive Distributed Processing◊ Bio-Inspired Architectures◊ Shifting the Analogue-to-Digital Border

• Topographical Sensor-Processors

◊ Concept of Concurrent Sensory-Processing◊ Functional Requirements◊ Multi-Functional Pixel

• The Eye-RIS Vision System◊ The Q-Eye and the Eye-RIS Architecture◊ The Eye-RIS Family◊ Programming Platform◊ Sample Applications◊ The Eye-RIS Image Processing Library

Page 3: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

Some Basic Concepts

Concept of Vision System

Conventional Vision System Architecture

Rationale for Using CMOS

Page 4: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

Some Basic Concepts

Concept of Vision System

Conventional Vision System Architecture

Rationale for Using CMOS

Page 5: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

5Concept of Vision System

Interpretation and Decision

Image Acquisition

Image Processing

A Vision System analyzes a sequence of images and makes decisions

Current Vision Systems:

Bulky, power hungry

Inefficient

Page 6: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

6

4

3

2

1Start code

Code under recognition

Spinning at 300 codes/sec

Illustrating the Challenge of Speed I

Systems to close the Perception-to-Action Loopat Thousands Images-per-Second

Page 7: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

7

Systems to close the Perception-to-Action Loopat Thousands Images-per-Second

Laser system

Illumination system

Speed ~ 40 m /s

Up to 3,000 frames per second

Illustrating the Challenge of Speed II

Page 8: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

8

3 persons detected

1 object removed

1 abandoned object

Illustrating the Challenge of Compactness

Compact systems that can be installed in small places and include all the needed functionality

Page 9: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

9

Voltage regulator board

Motor controller board

Battery4

3

2

1

Illustrating the Challenge of Autonomy

Systems capable of making autonomous decisions for vision-based guidance

Page 10: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

10Goals of Artificial Vision Systems

Perceive lightness and colour under various illuminations

Detect intensity changes and perform 2-D segmentation

Infer 3-D structures from stereo or motion images

Organize surface and regions into objects of interest

Generate description of objects and recognize them among

a potentially large class of objects

Make non-visual inferences about the scene based on

visual processing (abstraction)

[H.R. Myler, Fundamentals of Machine Vision]

Page 11: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

11

Some Basic Concepts

Concept of Vision System

Conventional Vision System Architecture

Rationale for Using CMOS

Page 12: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

12The Vision Processing Chain

o Huge amount of data atEarly Stages

o Most data is useless

Page 13: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

13

If the algorithmcontains Ns

convs.

If the image isNxM

17x NsxNxM Oper.17xNxM Oper.

At F Frames persecond

10 convolutions on 8-bit gray-scale VGA images at 100 FPS requires5 GOPS

Memory operations must be accounted for as well

17xFx NsxNxM OPS

Illustrating the Computational Demands

Per-Pixel 3x3 Linear Convolution

+

9 Products

8 Sums

17 Operations

[Original from Gustavo Liñán]

Page 14: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

14Conventional Vision System Architecture

Conventional systems are heterogeneous

Sensors, Memory, Processors,

Communications

Involve multiple technologies

ADC RAM

F F F

CMOS / CCD sensor

Image Acquisition

High-performance A/D Converters

Image Coding

Advanced DSP & High Density Memory

Image Processing and Storage

control signals

F

Data Flow

Page 15: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

15

Camera

Input Image

BOTTLENECK BOTTLENECK

DSP

DSP DSP

Memory

Physical separation:

Sensors

Processors

Heterogeneous technologies

CCD or CMOS for sensing

CMOS: FPGA, Power-PC, DSP, etc for processing

Bottlenecks at different

stages

Image coding

Image transmission

Image processing

Troubles of Conventional Vision Systems Architectures

Page 16: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

16

Some Basic Concepts

Concept of Vision System

Conventional Vision System Architecture

Rationale for Using CMOS

Page 17: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

17Rationale for using CMOS

Homogeneous systems

Lower power consumption

Low cost

Random pixel access

Allow additional circuitry in

the pixel: can be used for

processing!

CMOS Image Sensors have some important advantages that make them very suitable for Vision Systems

Page 18: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

18The Concept of CMOS Camera On-Chip

Page 19: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

19

Image Sensors

ADCADC

Data Converters

Digital Signal Processors

RAMRAMMemory

Multi-Function System

Single-Chip Solution

All functions for smart imaging and vision systems on chip

The Concept of CMOS Vision System On-Chip

Page 20: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

Architectures for Vision Systems

Progressive Distributed Processing

Bio-Inspired Architectures

Shifting the Analogue-to-Digital Border

Page 21: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

Architectures for Vision Systems

Progressive Distributed Processing

Bio-Inspired Architectures

Shifting the Analogue-to-Digital Border

Page 22: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

22

Digital

A/D Conversion

Sensors+

Analog Signal Read-out

Large spatial resolutionlimited only by pixel SNR

Large circuit operationpredictability and robustness

analog only at the ADCs

Small spurious signalinteractions

Large flexibility and pro-grammability:

mostly digital circuits andcodes

Small computational power andefficiency

Large memory requirements

Data transfer bottlenecks

Conceptual Architectural Choices

Conventional Architecture

Page 23: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

23

Smaller spatial resolution:trade-off with processing

Large circuit operationpredictability and robustness:

analog only at the ADCs

Small spurious signal interactions

Large flexibility and pro-grammability:

mostly digital circuits andcodes

Larger computational power andefficiency

Smaller memory requirements

Data transfer bottlenecks

Conceptual Architectural Choices

Digital

Sensors+

Analog Signal Read-out

A/D Conversion

Distributed Digital: LAP

Linear Array of Digital Processors

Page 24: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

24

Smaller spatial resolution:trade-off with processing

Smaller circuit operationpredictability and robustness:

analog also for processing

Larger spurious signalinteractions

Smaller flexibility and pro-grammability:

both analog and digitalcircuits

Larger computational power andefficiency

Smaller memory requirements

Smaller transfer bottlenecks

Conceptual Architectural Choices

Digital

Sensors+

Analog Signal Read-out

Distributed Digital: LAP

Distributed Analog+

A/D Conversion

Linear Array of Analogue-Digital Processors

Page 25: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

25

Architectures for Vision Systems

Progressive Distributed Processing

Bio-Inspired Architectures

Shifting the Analogue-to-Digital Border

Page 26: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

26How Does The Retina Work? I

Actuate

Control

Sensors and

processors are

merged

Processing and

sensing are

simultaneous

Significant data

compression is

achieved

Page 27: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

27

[Roska & Werblin 2001]

How Does The Retina Work? II

Page 28: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

28

Smaller spatial resolution:trade-off with processing

Larger system operationpredictability and robustness:

analog only for ADCs

Smaller spurious signalinteractions

Larger flexibility and pro-grammability:

only digital processing

Functionality and efficiencycompromised by ADC accuracy

Large in-pixel memoryrequirements

Conceptual Architectural Choices

Digital

Distributed Digital: LAP

Sensors+

ADCs+

Digital +

Memory

Topographic ADCs + Digital Processing

Page 29: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

29

Low spatial resolution:trade-off with processing

Involved circuit operationpredictability and robustness:

analog also for processing

Larger spurious signalinteractions

Involved flexibility andprogramability:

both analog and digitalcircuits

Large computational power andefficiency

Small memory requirements

Small transfer bottlenecks

Conceptual Architectural Choices

Digital

A/D Conversion

Distributed Digital: LAP

Sensors+

Analog+

Digital +

Memory

Topographic Mixed-Signal Processing

Page 30: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

30

ADC RAM

F F F

CMOS / CCD sensor

Image Acquisition

High-performance A/D Converters

Image Coding

Advanced DSP & High Density Memory

Image Processing and Storage

control signals

F

Data Flow

Focal-Plane Sensor-Processor

Image Acquisition & Pre-processing

ADC

Low-Profile A/D Converters

Pre-processed Image Conversion

RAM

f

Simple DSP & Low Memory

Image Post-Processing and Storage

f << F f

control signals

FData Flow

Using the Bio-Inspiration Concept

Page 31: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

31

Architectures for Vision Systems

Progressive Distributed Processing

Bio-Inspired Architectures

Shifting the Analogue-to-Digital Border

Page 32: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

33

Sensors+

Signal Coditioning

A/D Conversion

Digital

Shifting the Analogue-Digital Border

Page 33: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

34

Sensors+

Signal Coditioning

A/D Conversion

Digital

Sensors+

Mixed-Signal Cond. + Proc.

Shifting the Analogue-Digital Border

Page 34: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

Topographical Sensor-Processors

Concept of Concurrent Sensory-Processing

Functional requirements

Multi-Functional Pixel

Page 35: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

Topographical Sensor-Processors

Concept of Concurrent Sensory-Processing

Functional requirements

Multi-Functional Pixel

Page 36: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

37Concurrent Sensory-Processing I

Feature 1: Acquisition and processing are done on the focal plane

Page 37: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

38Concurrent Sensory-Processing II

Feature 2: Multiple representations of an scene

Page 38: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

39

Topographical Sensor-Processors

Concept of Concurrent Sensory-Processing

Functional requirements

Multi-Functional Pixel

Page 39: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

40

Pixel-Wise “Cosmetic Operations”: Eachpixel is transformed independently of itsneighbors, but remains on the samelocation

The Functional Requirements: Main Processing Tasks

[Original from Gustavo Liñán]

Page 40: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

41

Generalized Convolutions: Each pixel istransformed as a combination of thepixels within its neighborhood:

1) Linear Convolution Kernels

Pixel-Wise “Cosmetic Operations”: Eachpixel is transformed independently of itsneighbors, but remains on the samelocation

[Original from Gustavo Liñán]

The Functional Requirements: Main Processing Tasks

Page 41: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

42

Generalized Convolutions: Each pixel istransformed as a combination of thepixels within its neighborhood:

1) Linear Convolution Kernels

2) Morphological Operators

Pixel-Wise “Cosmetic Operations”: Eachpixel is transformed independently of itsneighbors, but remains on the samelocation

[Original from Gustavo Liñán]

The Functional Requirements: Main Processing Tasks

Page 42: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

43

Generalized Convolutions: Each pixel istransformed as a combination of thepixels within its neighborhood:

1) Linear Convolution Kernels

2) Morphological Operators

3) Nonlinear Operations; … anisotropicdiffusion, median filtering, etc

Pixel-Wise “Cosmetic Operations”: Eachpixel is transformed independently of itsneighbors, but remains on the samelocation

[Original from Gustavo Liñán]

The Functional Requirements: Main Processing Tasks

Page 43: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

44

Pixel-Wise “Cosmetic Operations”: Eachpixel is transformed independently of itsneighbors, but remain on the same location

Convolutions: Each pixel is transformed as acombination of the pixels within itsneighborhood:

Movements: Pixels are moved to a differentposition. Movements can be decomposedinto shifts and rotations.

[Original from Gustavo Liñán]

The Functional Requirements: Main Processing Tasks

Page 44: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

45

Pixel-Wise “Cosmetic Operations”: Eachpixel is transformed independently of itsneighbors, but remain on the same location

Convolutions: Each pixel is transformed as acombination of the pixels within itsneighborhood:

Image-wise Operations: Pixels indifferent images in the same or differentlocations are combined (either linearly ornon-linearly)

Movements: Pixels are moved to a differentposition. Movements can be decomposedinto shifts and rotations.

[Original from Gustavo Liñán]

The Functional Requirements: Main Processing Tasks

Page 45: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

46

Topographical Sensor-Processors

Concept of Concurrent Sensory-Processing

Functional requirements

Multi-Functional Pixel

Page 46: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

47Multi-Functional Pixel Example

Page 47: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

48

The more processing/storage you place in the pixel the lower will be the maximum achievable resolution for a given optical size

Finding the optimum partitioning between pixel-wise, column-wise and system-level processing is key to devise an efficient processing sensor

Size of sensory pixel Size of sensory-processor pixel

Physical Architecture Trade-off

Page 48: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

49The Resolution Compromise

Size of Sensory Pixel

Size of Sensory-Processing Pixel

How Important is Resolution ?

Page 49: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

50

Vision is possible with 25 x 25 “pixels” (within limited field of view)

Text can be read at 200 words/min (300 words/min with normal vision)

Students can navigate in complex environments (maze) with confidence

How Important is Resolution?

Resolution can be increased through proper design

VGA and up to 1.3Mpixelsresolution for Surveillance

> 1Mpixels for Machine Visionand Automotive

512 x 512 128 x 128 64 x 64 32 x 32

Page 50: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

The Eye-RIS Vision System

The Q-Eye and the Eye-RIS Architecture

Eye-RIS Family

Programming Platform

Sample Applications

The Eye-RIS Image Processing Library

Page 51: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

The Eye-RIS Vision System

The Q-Eye and the Eye-RIS Architecture

Eye-RIS Family

Programming Platform

Sample Applications

The Eye-RIS Image Processing Library

Page 52: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

53The Q-Eye Chip

UMC 0.18 m CMOS 1P5M (1.8V/3.3V) - mixed-signal.

High-performance Smart Image Sensor

176 x 144 grey-scale pixels with 29.1µm pitch

High-speed global electronic shutter. Programmable

exposure time (controlling step-down to 20ns)

Approximated sensitivity of 3V/lux-sec at 550nm

7 +1 (two banks) high-retention analogue and 7

binary memories

Analogue multiplexer for image shifting

Analogue MAC unit

Programmable,3 x 3 neighbourhood pattern

matching with 1/0/d.n.c.pattern definition (fast

morphological functions)

On-chip bank of high-speed ADCs and DACs.

Multiple I/Os and high-speed communication ports

Page 53: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

54

176 x 144 cell array

ADCs

Buffers - DACs

Inte

rnal

con

trol

logi

c

Control unit + memory

LAMs

MAC

Morphological

operator

Neigbourhood

multiplexer

Resistive grid

Binary memories

Grey optical

module

R-G-B optical

modules

LLU

Direct address event

block

Generic analog

voltages

Input / output

block

Q-Eye Pixel

Page 54: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

55The Eye-RIS™ Vision System Concept

Configurable system which provides an efficient solution for low-to-medium resolution and high frame rates

applications

32bit RISC

MicroprocessorProgram - Memory

(SRAM)

Ethernet / PCI /

USB 2,0

Off-chip memory

Controller

Data - Memory

(SRAM)Q-Eye

Mixed-signal focal-

plane early processor

High-speed Bus

Bus BridgeTiming, PLL,

General I/O, …

Low-speed Bus

Ultra-high frame rate: up to 8,000fps@QCIF image resolution

Ultra-low power consumption: < 10mW@30fps@QCIF image resolution

Multi-channel

DMA controller

Page 55: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

56Eye-RIS™ System: Architecture

The Eye-RIS Vision System is made up of two processors:

SIS Q-Eye (Smart Image Sensor Q-Eye)

Image acquisition

Pre-processing tasks

Input are images

Output are some particular characteristics of those images

Altera’s Nios II

Input is information about the images

Post-processing tasks

Output are decisions based on that information

Page 56: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

57

The structure of a an Eye-RIS Application follows scheme of a tipical vision application

System arquitecture: Typical Application

int main()

{

// Init

...

while(1)

{

// Optical acquisition

...

// preProcessing

...

// postProcessing

...

// Decision making

// and actuation

...

}

return 1;

}

1. There is a main loop

2. Initialization (Both processors)

3. Optical acquisition (SIS Q-Eye)

4. Preprocessing (SIS Q-Eye)

5. Postprocessing (SIS Q-Eye andmaybe Nios II)

6. Decision making and actuation(Nios II)

The Nios II uses the SIS Q-Eyeto accomplish the correspondingtasks

Page 57: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

58

The execution flow between the two processors is the key point to understand how the Eye-RIS Vision System works

System arquitecture: Execution Flow

Nios II SIS Q-Eye

...

Section_execute(S1);

...

Section_execute(S3);

...

void section S1 ()

{

...

}

void section S2 ()

{

...

}

void section S3 ()

{

...

}

Execution in:

Nios II

SIS Q-Eye

Execution is split between both processors

Nios II leads the execution -> the execution starts in the “main” function

Nios II decides when to execute a section in the SIS Q-Eye code usingfunction Section_execute

Page 58: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

59

Both processors can work in parallel mode, executing its respective codes at the same time

System arquitecture: Parallelism

Nios II SIS Q-Eye

...

Section_executeAsync(S1);

...

Section_wait();

...

Section_execute(S3);

...

...

...

Section_wait();

...

void section S1 ()

{

...

}

void section S2 ()

{

...

}

void section S3 ()

{

...

}

Execution in:

Nios II

SIS Q-Eye

Replace Section_execute for Section_executeAsync and Section_wait

Section_executeAsync launches the execution of a CFPP code section, butreturns immediately, without waiting for the section execution to end

Section_wait waits for the section execution to end. It must be called tosynchronize Nios II and SIS Q-Eye

Page 59: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

60

Sharing data is the way the Nios II and the SIS Q-Eye can work together to accomplish the tasks

System arquitecture: Sharing data

There are three ways to share data:

1. sections arguments and return value

2. CFPP global variables

3. Sharing images: the Eye-RIS Image Memory

Page 60: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

61

Argumentsand returntype can be

of type:int

bool

time

CFPP sections can have arguments and a return value

System arquitecture: sections

Declare the section to receive the arguments and return a value:

int section SampleSection (int arg)

{

// Section code

...

return retValue;

}

Add the parameters and read the return value in the call toSection_execute or Section_executeAsync:

int main ()

{

int par;

int result;

...

result = Section_execute(SampleSection, par);

...

}

CFPP code

C/C++ code

Page 61: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

62

CFPP global variables can be accessed from the C/C++ code

System arquitecture: CFPP global variables

Declare the global variable in CFPP code:

int g_a;

time g_t;

...

void section SampleSection ()

{

...

}

Declare the global variables as extern and use them in C/C++ code:

extern fpp_int g_a;

extern fpp_time g_t;

int main ()

{

int a = g_a;

g_a = 3;

fpp_time t = FPPTime_read(g_t);

FPPTime_write(g_t, 20000);

}

CFPP code

C/C++ code

Shared global variables can be of type:int

bool

time

fpp_int

variables can be used directly

fpp_time

variables must be accesed using macros

Page 62: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

63

Images are the most important information that`s exchanged in the system

System arquitecture: Sharing images

The Eye-RIS Image Memory is sharedbetween the SIS Q-Eye and the Nios IIprocessor

The Nios II processor operates on theimages in the Image Memory

SIS Q-Eye does not operate on images in theImage Memory, only loads/downloadsimages and points coordinates from/to it

SISQ-EyeTM

Nios II Processor

Eye-RIS Image Memory

Page 63: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

64

The Image memory is an important part of the system

System arquitecture: Image memory

Is statically allocated in pages, one for each image

Divided in two areas:

1. 440 grey level images

2. 512 binary images

Images are referenced by its page index

Grey level images Binary images

0 1 2 439 5110

. . . . . .

Page 64: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

65

The Eye-RIS Vision System

The Q-Eye and the Eye-RIS Architecture

Eye-RIS Family

Programming Platform

Sample Applications

The Eye-RIS Image Processing Library

Page 65: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

66

Eye-RIS™ v1.2 vision system

Main Features

Q-Eye focal-plane processor▪ 176 x 144 spatial resolution

▪ Monochrome image sensor with 3.2V/(lux∙sec) sensitivity

▪ Maximum frame rate (sensing + processing) of over 8,000fps

▪ Advanced pixel architecture combining image acquisition, image processing and storage:

- Multi-mode image sensing, analogue & binary memories, analogue multiplexor for image shifting, analogue MAC unit, programmable LUT, resistive grid for controllable smoothing…

Digital control & post-processing▪ ALTERA NIOS-II 32-bit RISC microprocessor

▪ 1.17 DMIPS/MHz performance at 70MHz operation frequency

▪ 32Mb SDRAM for program and image/data storage

Communications▪ SPI port, UART, 2xPWM ports and GPIOs, USB 2.0, and GigE

▪ JTAG Controller

▪ 1.5W typical power consumption

Eye-RIS ADK (Application Development Kit)▪ Application Development Kit including: Project builder, C compiler,

assembler, linker, and source-code debugger.▪ Image-processing library including basic routines such as: point-to-

point operations, spatial filtering operations, morphological operations and statistical operations

Existing standard products: Eye-RIS™ v1.2

Page 66: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

67

Main Features

Q-Eye Smart Image Sensor▪ 176 x 144 spatial resolution

▪ Monochrome image sensor with 3.2V/(lux∙sec) sensitivity

▪ Maximum frame rate (sensing + processing) of over 8,000fps

▪ Advanced pixel architecture combining image acquisition, image processing and storage

Digital control & post-processing▪ ALTERA NIOS-II 32-bit RISC microprocessor

▪ 1.17 DMIPS/MHz performance at 70MHz operation frequency

▪ 64 + 64Mb DDR2 for program and image/data storage (expandable up to 256 + 256Mb

▪ Multi Layer Perceptron

▪ Digital Image Coprocessor

Communications▪ UART, 2xPWM ports and GPIOs and GigE

▪ JTAG Controller

▪ 1.5W typical power consumption

Eye-RIS ADK (Application Development Kit)▪ Application Development Kit including: Project builder, C compiler,

assembler, linker, and source-code debugger.▪ Image-processing library including basic routines such as: point-to-

point operations, spatial filtering operations, morphological operations and statistical operations

Existing standard products: Eye-RIS™ v1.3

Eye-RIS™ v1.3 vision system

Page 67: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

68

Main Features

On-chip Smart Image Sensor▪ 176 x 144 spatial resolution

▪ Monochrome image sensor with 1V/(lux∙sec) sensitivity

▪ Maximum frame rate (sensing + processing) of over 8,000fps

▪ Advanced pixel architecture combining image acquisition, image processing and storage:

- Multi-mode image sensing, analogue & binary memories, analogue multiplexor for image shifting, analogue MAC unit, programmable LUT, resistive grid for controllable smoothing…

On-chip digital control & post-processing▪ NIOS-II microprocessor with 1.17 DMIPS/MHz at 100MHz

▪ On-chip 128kB image storage, 256kB program and data memory. External SRAM interface up to 2GB.

▪ 8MB of Flash EPCS for program and data storage.

On-chip communication I/Os▪ SPI port, UART, 2xPWM ports and GPIOs, USB 2.0 interface, and

▪ JTAG Controller

▪ <700mW typical power consumption

Eye-RIS ADK (Application Development Kit)▪ Application Development Kit including: Project builder, C compiler,

assembler, linker, and source-code debugger.▪ Image-processing library including basic routines such as: point-to-

point operations, spatial filtering operations, morphological operations and statistical operations

Existing standard products: Eye-RIS™ v2.1

Eye-RIS™ v2.1 vision system

Page 68: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

69

Q-Eye Focal-plane processor

NIOS-II uP

Memory

Memory

Contr

ol unit

Chip Layout

Chip photography

System view

Existing standard products: Eye-RIS™ v2.1

Page 69: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

70

The Eye-RIS Vision System

The Q-Eye and the Eye-RIS Architecture

Eye-RIS Family

Programming Platform

Sample Applications

The Eye-RIS Image Processing Library

Page 70: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

71

Eye-RIS vision systems are programmed using the Eye-RIS ADK (Application Development Kit), a complete development environment based on the open and extensible “eclipse” platform

www.eclipse.org

ADK includes all the necessary toolsto develop and debug applicationson Eye-RIS vision systems

▪ Project creation wizards

▪ Project management

▪ Built-in editors

▪ Output consoles

▪ Real-time image viewer

▪ Launcher

▪ Debugger

▪ On-line help

Programming Platform: Eye-RIS ADK

Page 71: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

72

Eye-RIS

Eye-RIS Project

Elf file

The creation of Eye-RIS applications follows a typical developing scheme:

1. Create a Project

2. Write the Application code

3. Compile the Project

4. Execute and/or debug the Project

5. Make it a stand-alone application

Main.c

int main()

{

...

while(1)

{

...

// Code

...

}

return 1;

}

One.fpp

int oneFunction ()

{

...

// Function code

...

}

Another.fpp

int anotherFunction()

{

...

// Function code

...

}

Programming Platform: Workflow

Page 72: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

73

Eye-RIS

Running a project means downloading it to the Eye-RIS Vision System and launching it

To run a project, right click on the project and select “Run as -> Eye-RIS Application”

The “.elf” file is loaded into the Eye-RIS memory and executed

PC

Elf file

Programming Platform: Execution

Page 73: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

74

Each processor is programmed in a different language

o SIS Q-Eye TM is programmed using CFPP code

o Nios II is programmed using C/C++ code

SIS Q-Eye

CFPP code

Nios II

C/C++code(Nios code)

Programming Platform: Coding

Page 74: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

75

The CFPP code is a proprietary language developed in Anafocusto program the SIS Q-Eye

Its main characteristics are:

1. C like syntax for a quick learning-curve

2. Special types: time, lam, template, mpattern, etc…

This types are built in types that represent Q-Eye specific parameters

3. Structured in functions and sections. A section is a particular type of

function that can be called from Nios code

4. There are no arrays, although some special types may look like

arrays

5. There are no multiplications nor divisions

Programming Platform: CFPP Code

Page 75: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

76

Nios II

EBL ExtendedIPL

SIS Q-Eye

IPL

The Eye-RIS ADK provides a set of libraries to enhance the development of Eye-RIS applications

SIS Q-Eye (CFPP code)

Image Processing Library (IPL)

Nios II (C/C++ code)

Extended Image Processing Library (Extended IPL)

Eye-RIS Basic Library (EBL)

CFPPCode

C/C++code(Nios code)

Programming Platform: Libraries

Page 76: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

77

The IPL allows the user to take advantage of the sensing and processing capabilities of the SIS Q-Eye

It is focused on images and its main uses are:

Image acquisition

Filters

Arithmetical operations

Morphological and logic operations

Coordinates extraction

The Extended IPL combines the SIS Q-Eye with the computing potential of the Nios II to extend the capabilities of the IPL

Its main uses are:

Blobs processing

Coordinates management

Smart sensing

Programming Platform: IPL and EIPL

Page 77: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

78

The Eye-RIS Basic Library eases typical Nios II tasks in Eye-RIS applications

Its main uses are:

Control of the SIS Q-Eye: Section_execute, FPPTime_write, ...

Displaying of images in the PC: Image_display, ...

Loading/storing images from/on the PC: Image_write, Image_read

Printing messages on the PC: printMessage

Text input: scanMessage, ...

Interrupts: Irq_enable, ...

Timers: Timer_start, Timer_measure

Programming Platform: EBL

Page 78: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

79

The Eye-RIS Vision System

The Q-Eye and the Eye-RIS Architecture

Eye-RIS Family

Programming Platform

Sample Applications

The Eye-RIS Image Processing Library

Page 79: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

80

Laser system

Image acquisition | Low-pass filtering | activity detection |motion estimation | object tracking | Loop control |position prediction |coordinates translation |actuation on the laser system.

Illumination system

Speed ~ 40 m /s

Up to 2,000 frames per second

For downloading demo video please go to http://www.anafocus.com/videos/mt.mov

Sample Applications: High Speed Multitracking I

High speed Multitracking

Page 80: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

81

High speed Multitracking

Image Acquisition

Image binarization with

adaptive threshold

Blob mass calculation

Calculation of X / Y speed

Laser actuation

Erosion & dilation for centre

of mass identification

Q-Eye

NIOS

Image acquisition | Low-pass filtering |

adaptive thresholding | motion estimation |

object tracking | Loop control |

position prediction | coordinates translation

| actuation on the laser system.

Sample Applications: High Speed Multitracking II

Page 81: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

82

High-speed processing of 3,000 images-per-second to decode up to 200 data-matrix codes per second

4

3

2

1

Image acquisition |recognize complete code | detect extreme points |detect alternating patterns | localize points of interest | read points of interest | decode.

Start code

Code under recognition

Spinning at 300 codes/sec

For downloading demo video please go to http://www.anafocus.com/videos/dmc.mov

Sample Applications: DMC I

Data Matrix Code (DMC) decoding

Page 82: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

83

Image Acquisition

Image preprocessing

Extreme points

Extract Data

Decode

Alternating pattern

Q-Eye NIOS

Code

detected

?

No

YesECC

Synchronization

N

...

...

...

...

N+

1N

-1

Control

Data

Data

Control

Sample Applications: DMC II

Data Matrix Code (DMC) decoding

Page 83: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

84

For downloading demo video please go to http://www.anafocus.com/videos/mt.mov

0 IL

m0

m1

m2

m3

m4

Vo1

m5

Vo2

Vo3

Vo4

Vo5

Vo5 = Vsat

IL_max(lineal) IL_max(WA)

Vo

DR

Rst(i)

VR1

Start of integration End of integration

VR0

VR2

VR3

VR4

VR5

0 t1 tt2 t3 t4 t5 texp

VR6

IL0

IL1

IL2

IL3

IL4

IL5

Vo0

Vo1

Vo2Vo3

Vo4

Vo5

Sample Applications: HDR I

High Dynamic Range: Well-Adjustment

Page 84: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

85

InitInit

Image acquisitionImage acquisition

Image MeanImage Mean

Multiple images captured

with different exp. timeMultiple images captured

with different exp. time

Compose

HDR ImageCompose

HDR Image

ThresholdingThresholdingMorphological

FilteringMorphological

Filtering

Adjust

exposure Time

Adjust

exposure Time

Mean=128?Mean=128?

Show resultsShow results

Saturation due to

excess of light

Lose of information

due to lack of time

HDR algorithmSimple exposure-

time control

InitInit

Image acquisitionImage acquisition

Image MeanImage Mean

Multiple images captured

with different exp. timeMultiple images captured

with different exp. time

Compose

HDR ImageCompose

HDR Image

ThresholdingThresholdingMorphological

FilteringMorphological

Filtering

Adjust

exposure Time

Adjust

exposure Time

Mean=128?Mean=128?

Show resultsShow results

Saturation due to

excess of light

Lose of information

due to lack of time

HDR algorithmSimple exposure-

time control

Sample Applications: HDR II

High Dynamic Range: Multiple images average

Page 85: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

86

All steps ofprocessing chainare performed inthe Q-Eye

Amount of datato be processedby the hostdigital processoris very small

Sample Applications: Part Finding

Page 86: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

87

move left

move right

jump

crouch

Hand tracking

Shoot (in game)

Drag & drop

Hand gesture recognition

Track bodyFinger count

Starting menu

Hand tracking

Hand gesture recognition

Body motion recognition

Body gesture recognition

Sample Applications: Human Computer Interface

Interactive Human Computer Interface

Page 87: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

88

Access control and network of intelligent surveillance cameras

3 persons detected

1 object removed

1 abandoned object

For downloading demo video please go to http://www.anafocus.com/videos/surveillance.mov

▪ 98% accuracy in access control under a wide range of situations

▪ Automatic and efficient adaptation to illumination conditions

▪ Capability to detect changes in the background

▪ Equipped with GigE connection to create networks with distributed intelligence

Sample Applications: Smart Surveillance I

Smart Surveillance

Page 88: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

89

Smart Surveillance

InitInit

Image acquisitionImage acquisition

Band-pass filteringBand-pass filtering

Motion

detectionMotion

detection

Background

substractionBackground

substraction

ThresholdThreshold

Morphological

FilteringMorphological

Filtering

Show resultsShow results

ThresholdThreshold

Morphological

FilteringMorphological

Filtering

People

trackingPeople

tracking

Objects

detectionObjects

detection

Background

acquisitionBackground

acquisition

NIOS

Q-Eye

InitInit

Image acquisitionImage acquisition

Band-pass filteringBand-pass filtering

Motion

detectionMotion

detection

Background

substractionBackground

substraction

ThresholdThreshold

Morphological

FilteringMorphological

Filtering

Show resultsShow results

ThresholdThreshold

Morphological

FilteringMorphological

Filtering

People

trackingPeople

tracking

Objects

detectionObjects

detection

Background

acquisitionBackground

acquisition

NIOS

Q-Eye

Sample Applications: Smart Surveillance II

Page 89: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

90

Voltage regulator board

Motor controller board

Battery

4

3

2

1

Image acquisition | Low-pass filtering | tresholding |skeletonization |morphological filtering | signal recognition |road-lanes recognition |actuation on the robot wheels.

Sample Applications: Autonomous Vehicle I

Systems capable of making autonomous decisions for vision-based guidance

Autonomous Vehicle

Page 90: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

91

Road

detectionRoad

detection

Perspective

transform Perspective

transform

Track algorithm

and speed controlTrack algorithm

and speed control

Signal analysisSignal analysis

Turning

decisionTurning

decision

Signal

Detected?Signal

Detected?

Adjust exposure timeAdjust exposure time

Optical acquisitionOptical acquisition

Adaptive ThresholdAdaptive Threshold

SkeletonSkeleton

Corners detectionCorners detection Morphological filteringMorphological filtering

Obstacle

detected?Obstacle

detected?StopStop

InitInit

Yes

No

Yes

No

SIGNAL

RECOGNITION

ROAD

TRACKING

OBSTACLE

DETECTION

Q-Eye

NIOS

Road

detectionRoad

detection

Perspective

transform Perspective

transform

Track algorithm

and speed controlTrack algorithm

and speed control

Signal analysisSignal analysis

Turning

decisionTurning

decision

Signal

Detected?Signal

Detected?

Adjust exposure timeAdjust exposure time

Optical acquisitionOptical acquisition

Adaptive ThresholdAdaptive Threshold

SkeletonSkeleton

Corners detectionCorners detection Morphological filteringMorphological filtering

Obstacle

detected?Obstacle

detected?StopStop

InitInit

Yes

No

Yes

No

SIGNAL

RECOGNITION

ROAD

TRACKING

OBSTACLE

DETECTION

Road

detectionRoad

detection

Perspective

transform Perspective

transform

Track algorithm

and speed controlTrack algorithm

and speed control

Signal analysisSignal analysis

Turning

decisionTurning

decision

Signal

Detected?Signal

Detected?

Adjust exposure timeAdjust exposure time

Optical acquisitionOptical acquisition

Adaptive ThresholdAdaptive Threshold

SkeletonSkeleton

Corners detectionCorners detection Morphological filteringMorphological filtering

Obstacle

detected?Obstacle

detected?StopStop

InitInit

Yes

No

Yes

No

SIGNAL

RECOGNITION

ROAD

TRACKING

OBSTACLE

DETECTION

Q-Eye

NIOS

Sample Applications: Autonomous Vehicle II

Autonomous Vehicle

Page 91: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

92

The Eye-RIS Vision System

The Q-Eye and the Eye-RIS Architecture

Eye-RIS Family

Programming Platform

Sample Applications

The Eye-RIS Image Processing Library

Page 92: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

93

Image Acquisition

Analogue processing

Binary processing

X-X 0 X-X 0 X-X 0

SIS Q-Eye

1 128 255 1 128 255

Image Load/Download

Eye-RIS Image Memory10

Analogue to binary image conversion

Grey-level storing mode

Binary storing mode

The Eye-RIS Image Processing Library

Image codification inside the SIS Q-Eye takes sign into account

Page 93: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

94

IPLImage acquisition functions:

Sense_acquire

Sense_startSense_readSensorSense_endSense_noiseRemovalAndScale

LLU

HitAndMiss

LDMs

Digital I/O

Active pixel I/O

Binary Image shifter

Optical sensor

lad

n

Resistive grid

LAMs

Analog I/O

MAC

Analog Image shifter

Analog-to-binary converter

Binary-to-analog converter

ldd

n

Parameters:Destination LAMExposure TimeGain

Beware:Dark Current NoiseMAC Errors

start 4xreadSensor end4xnoiseRemoval…

The Eye-RIS IPL: Acquisition

Page 94: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

95

IPLImage Moving Functions

Move_loadImageMove_downloadImage

Move_moveImage

Move_shiftImage

LLU

HitAndMiss

LDMs

Digital I/O

Active pixel I/O

Binary Image shifter

Optical sensor

lad

n

Resistive grid

LAMs

Analog I/O

MAC

Analog Image shifter

Analog-to-binary converter

Binary-to-analog converter

ldd

n

Parameters:Origin/Destination LAMOrigin/Destination Digital MemoryNumber Of Shifted PixelsMasksContour Conditions

Beware:LAM Read ErrorsAnalog Image Shifter Errors

The Eye-RIS IPL: Image Moving

Page 95: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

96

IPLFilters

Filter_gaussianFilter_convolution

Filter_diffusionFilter_directionalDiffusion

Filter_averageFilter_laplaceFilter_sobelFilter_sharpen

LLU

HitAndMiss

LDMs

Digital I/O

Active pixel I/O

Binary Image shifter

Optical sensor

lad

n

Resistive grid

LAMs

Analog I/O

MAC

Analog Image shifter

Analog-to-binary converter

Binary-to-analog converter

ldd

n

Parameters:Origin/Destination LAMSaturationModeMasks

Beware:LAM Read ErrorsMAC ErrorsResistive Grid ErrorsAnalog Image Shifter Errors

Two approaches:LPF + MAC operation.Convolution.

Sign info in horizontal Sobel

The Eye-RIS IPL: Filters

Page 96: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

97

IPLArithmetic Operations

Arith_setImageValue

Arith_imageMean

Arith_macOperation

LLU

HitAndMiss

LDMs

Digital I/O

Active pixel I/O

Binary Image shifter

Optical sensor

lad

n

Resistive grid

LAMs

Analog I/O

MAC

Analog Image shifter

Analog-to-binary converter

Binary-to-analog converter

ldd

n

Parameters:Origin/Destination LAMMasks

Beware:LAM Read ErrorsMAC ErrorsSignal Range

MAC OperationVout= Voffset+ Factor(V1-V2)Factor = 1/2,1,2

The Eye-RIS IPL: Arithmetic Operations I

Page 97: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

98

IPLArithmetic Operations Examples

Arith_macOperation

V1 V2

Offset = 128 Offset = 0 Offset = 255 Result = ¼ *(V1+V2+V3+V4)

V1 V2 V3 V4

The Eye-RIS IPL: Arithmetic Operations II

Page 98: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

99

IPLArithmetic Operations

Arith_invertArith_scaleArith_posDifferenceArith_negDifferenceArith_signedDifference

Arith_absDifferenceArith_add

LLU

HitAndMiss

LDMs

Digital I/O

Active pixel I/O

Binary Image shifter

Optical sensor

lad

n

Resistive grid

LAMs

Analog I/O

MAC

Analog Image shifter

Analog-to-binary converter

Binary-to-analog converter

ldd

n

Parameters:Origin/Destination LAMSaturation

Beware:LAM Read ErrorsMAC ErrorsSignal Range

The Eye-RIS IPL: Arithmetic Operations III

Page 99: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

100

IPLArithmetic Operations Examples

Arith_posDifferenceArith_negDifference

Arith_absDifferenceArith_signedDifference

Arith_add

The Eye-RIS IPL: Arithmetic Operations IV

Page 100: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

101

IPLThreshold

Thresh_threshold

Parameters:Origin/Destination LAMThreshold -> Local / Global

Beware:LAM Read ErrorsMAC Error

LLU

HitAndMiss

LDMs

Digital I/O

Active pixel I/O

Binary Image shifter

Optical sensor

lad

n

Resistive grid

LAMs

Analog I/O

MAC

Analog Image shifter

Analog-to-binary converter

Binary-to-analog converter

ldd

n

Local threshold Global threshold

The Eye-RIS IPL: Thresholding

Page 101: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

102

IPLBinary Basics

Logic_notLogic_andLogic_orLogic_xorLogic_nandLogic_nor Logic_nxor Logic_andNotLogic_notAnd Logic_orNotLogic_notOr

Morph_hitAndMiss

Parameters:Origin/Destination LDMB/W/DNCContour Conditions

LLU

HitAndMiss

LDMs

Digital I/O

Active pixel I/O

Binary Image shifter

Optical sensor

lad

n

Resistive grid

LAMs

Analog I/O

MAC

Analog Image shifter

Analog-to-binary converter

Binary-to-analog converter

ldd

n

Hit & Miss Pattern [DNC, W, B, W, W, B, B, B, B]

The Eye-RIS IPL: Logical Operations

Page 102: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

103

IPLMorphological operations

Morph_erodeMorph_dilateMorph_openMorph_closeMorph_thinMorph_thickenMorph_centroidMorph_skeletonMorph_convexHullMorph_removeSinglePointsMorph_endPointsMorph_pruneMorph_skeletonJointsMorph_skiz

Parameters:Origin/Destination LDMConnectivity / SEContour ConditionsNumber of iterations -> UNC

LLU

HitAndMiss

LDMs

Digital I/O

Active pixel I/O

Binary Image shifter

Optical sensor

lad

n

Resistive grid

LAMs

Analog I/O

MAC

Analog Image shifter

Analog-to-binary converter

Binary-to-analog converter

ldd

n

Morph_centroid Morph_skeleton

Morph_convexHull Morph_skiz

The Eye-RIS IPL: Morphological Operations I

Page 103: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

104

IPLMorphological operations

Morph_floodFillMorph_fillHolesMorph_extractHolesMorph_eraseBorderBlobs

Parameters:Origin/Destination LDMConnectivityContour Conditions

LLU

HitAndMiss

LDMs

Digital I/O

Active pixel I/O

Binary Image shifter

Optical sensor

lad

n

Resistive grid

LAMs

Analog I/O

MAC

Analog Image shifter

Analog-to-binary converter

Binary-to-analog converter

ldd

n

FloodFill with connectivity 8

FillHoles with connectivity 4

The Eye-RIS IPL: Morphological Operations II

Page 104: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

105

IPLActive Points functions

ActivePoints_loadActivePoints_downloadActivePoints_activeRegionActivePoints_activityDetection

Parameters:Origin/Destination LDMOrigin/Destination Digital Memory

LLU

HitAndMiss

LDMs

Digital I/O

Active pixel I/O

Binary Image shifter

Optical sensor

lad

n

Resistive grid

LAMs

Analog I/O

MAC

Analog Image shifter

Analog-to-binary converter

Binary-to-analog converter

ldd

n

ActiveRegion

The Eye-RIS IPL: Active Points

Page 105: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

106

EIPLAdvanced Image Acquisition functions

Sense_acquire (lam destination, time exposureTime, int gain)

Sense_adaptiveAcquire (lam destination, time initTime, int gain, int optimalMeanValue, int numberOfIterations)

Sense_hdrAcquire(lam destination, fpp_time tExp, int percentage[6])Sense_hdrAdaptiveAcquire(lam destination, fpp_time initTime, int optimalMeanValue, int numberOfIterations, int percentage[6])

Rst(i)

VR1

Start of integration End of integration

VR0

VR2

VR3

VR4

VR5

0 t1 tt2 t3 t4 t5 texp

VR6

IL0

IL1

IL2

IL3

IL4

IL5

Vo0

Vo1

Vo2Vo3

Vo4

Vo5

0 IL

m0

m1

m2

m3

m4

Vo1

m5

Vo2

Vo3

Vo4

Vo5

Vo5 = Vsat

IL_max(lineal) IL_max(WA)

Vo

DR

The Eye-RIS EIPL: Advanced Acquisition

Page 106: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

107

EIPLActive Points functions

IPL ActivePoints_downloadActivePoints_readData (int imageNumber, int firstPoint, int numberOfPoints, char *x, char *y)

IPL ActivePoints_loadActivePoints_writeOnePoint (int imageNumber, int pointIndex, char x, char y)

ActivePoints_writeData (int imageNumber, int firstPoint, int numberOfPoints, char *x, char *y, int

totalNumPoints)

ActivePoints_getPointer (int imageNumber)

IPL ActivePoints_activeRegion ActivePoints_getBoundingBox (int imageNumber, char *xMin, char *yMin, char *xMax, char *yMax)

ActivePoints_contactPoints (ldm orig, char *bb_xMin, char *bb_xMax, char *bb_yMin, char *bb_yMax,

char *xUp0, char *xUp1, char *xDown0, char *xDown1, char *yLeft0, char *yLeft1, char *yRight0, char *yRight1)

int Counting_whitePointsAuto (ldm orig)

int Counting_whitePointsFixed (ldm orig, unsigned short exponent)

int Counting_whitePointsSeed (ldm orig, unsigned short exponent, unsigned short numberOfIterations)

The Eye-RIS EIPL: Active Points

Page 107: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

108

EIPLBlob Handling Library

Blobs_configureBlobs_getBlobs_recallBlobs_selectFeatures

Blobs_removeFeatures

Blobs_getFeaturesBlobs_contactPointsBlobs_selectBlobs_reconstructBlobs_sortByFeature

Blobs_eraseBlobs_free

Blobs_configure

Blobs_get

Blobs_recall

Blobs_selectFeatures

Blobs_reconstruct

Blobs_selectBlobs_removeFeatures

Blobs_getFeaturesBlobs_sortByFeature

The Eye-RIS EIPL: Blobs I

Page 108: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

109

EIPLBlob Handling Library Features

AreaPerimeterBounding boxBounding Box AreaContact PointsExtent = Area/BB_AreaFirst PointBounding Box Width and HeightConvex PerimeterConvex AreaConvexity = Convex Perimeter/PerimeterCompactness = Perimeter2/(4 Area)Number of HolesEuler Number = Number of Blobs – Number of HolesLength and Breadth Perimeter = 2(Length + Breadth)Area = Length x Breadth

Elongation = Length/Breath

Intercept 0 [B F]Intercept 45Intercept 90Intercept 135

Intercept 180 [F,B]

Intercept 225Intercept 270Intercept 315

CentroidEllipse Major Axis

Ellipse Minor Axis

apap 2

2

2

2 2

2

2

2

apap 2

2

2

2 2

2

2

2

The Eye-RIS EIPL: Blobs II

Page 109: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

110

EIPLBlob Handling Library Features Example

Blobs_configure(&blobsExample, CONNECT_8, BINARY, numberOfBlobs);

Blobs_selectFeatures(&blobsExample, numberOfFeatures, AREA, PERIMETER, NUMBER_OF_HOLES);-----------------------------------------Blobs_get(&blobsExample, LDM_2);

Blobs_getFeatures(&blobsExample, ALL_FEATURES);-----------------------------------------Blobs_free(&blobsExample);

The Eye-RIS EIPL: Blobs III

Page 110: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

111

EIPLBlob Handling Library Example

Blobs_configure(&blobsExample, CONNECT_4, BINARY, 8);

Blobs_selectFeatures(&blobsExample, numberOfFeatures, AREA, PERIMETER);---------------------------------------------GetBlobs(&blobsExample, LDM_2);

Blobs_getFeatures(&blobsExample, 1, AREA);

Blobs_select(&blobsExample, EXCLUDE,AREA,LESS,AREA_MIN,0);

Blobs_getFeatures(&blobsExample, PERIMETER);

Blobs_sortByFeature(&blobsExample, PERIMETER, DESCENDING, orden);

Blobs_recall(&blobsExample, LDM_3, orden[k]+1);---------------------------------------------Blobs_free(&blobsExample);

The Eye-RIS EIPL: Blobs IV

Page 111: On the Architectural Design and Applications of CMOS Vision Systemsgabriel/cpe786/091127_Workshop_Brasil... · 2010-12-02 · Camera Input Image B O T T L E N E C K B O T T L E N

© ANAFOCUS 2009

112

Conclusions

We can take advantage of nature through understanding

Parallel and concurrent sensory-processing

Multi-scale representation

Smart CMOS sensors are not common yet

A real challenge for engineering !!

Close interaction and collaboration between analog and

digital circuitry is needed for efficient VSoC design.

VSoCs are still like science fiction toys for industry


Recommended