Vorabinformationen
SmartApplets
SmartApplets sind anwendungsbezogene Bildverarbeitungsbibliotheken. Sie können sofort geladen und ausgeführt werden. Die Systemanpassungen können über Konfigurationsfelder erfolgen.
SmartApplets werden auf die unterstütze Hardware individuell angepasst und nutzen die Möglichkeiten des jeweiligen FPGA Vision-Prozessors optimal aus.
Thematische Schwerpunkte werden in SmartApplets-Familien zusammengeführt. Hierbei kann es branchen-, anwendungs- oder auch technologie-spezifische Thematiken geben. Da SmartApplets ständig erweitert werden, kann sich sowohl die Anzahl der Familien, als auch der Umfang innerhalb einer Familie ändern.
SmartApplets bieten hochqualitative Vorstufen von Bildverarbeitungsanwendungen. Sie reduzieren die Belastung der Host-CPU durch die komplette Auslagerung auf den onboard FPGA. Die SmartApplets verarbeiten hierbei keine Einzelfunktionen, sondern verarbeiten aufeinander abgestimmte Funktionsblöcke, von dem Bildeinzug, über Sensorkorrekturen und Bildverbesserungen bis zu den Sonderfunktionen. Hiernach können die Bildinhalte über die Einbindung in eigene Programme oder der Übergabe an Bildverarbeitungssoftware von Drittfirmen weiterverarbeitet werden.
Überblick über bisher geplante SmartApplets (akteuller Stand; ohne Gewähr)
Smart Applets Familiy Binarization
|
|
Board
|
Img. Size
|
CamPort
|
Bitdepth
|
Sensor
|
LUT
|
Shading
|
Noise
|
Binarization
|
Morphology
|
Segm.
|
# DMA
|
Bandwidth
|
CamClk
|
|
mE4
|
Max.
|
.
|
.
|
Input
|
Output
|
Tap Corr.
|
8/12 bit
|
1D
|
Median
|
Thres.
|
Adapt.
|
Open/Close
|
Blob
|
.
|
Per cam
|
DMA/ch
|
Max.
|
|
CL/GE
|
[Px]
|
#
|
Type
|
[bit]
|
[bit]
|
.
|
.
|
mult+sub
|
3*3
|
.
|
Kernel
|
#
|
Kernel
|
Filter
|
#
|
[MP/s]
|
[MB/s]
|
[MHz]
|
| Area Scan |
| Bin_BAG8 |
VD1
|
4k*4k
|
1
|
BASE
|
12
|
8
|
no
|
yes
|
no
|
yes
|
yes
|
32*32
|
2
|
5*5
|
n/a
|
2
|
170
|
250
|
85
|
| Bin_BAG12 |
VD1
|
4k*4k
|
1
|
BASE
|
12
|
12
|
no
|
yes
|
no
|
no
|
yes
|
32*32
|
1
|
5*5
|
n/a
|
2
|
170
|
250
|
85
|
| Bin_FAG8 |
VD1
|
4k*4k
|
1
|
FULL
|
8
|
8
|
no
|
yes
|
no
|
no
|
yes
|
32*32
|
|
|
n/a
|
2
|
500
|
250
|
85
|
| Bin_BAG8 |
VD4
|
4k*4k
|
1
|
BASE
|
12
|
8
|
no
|
yes
|
no
|
yes
|
yes
|
64*64
|
2
|
7*7
|
n/a
|
4
|
170
|
250
|
85
|
| Bin_BAG8_dual1 |
VD4
|
4k*4k
|
2
|
BASE
|
12
|
8
|
no
|
yes
|
no
|
no
|
yes
|
32*32
|
|
|
n/a
|
2
|
170
|
250
|
85
|
| Bin_BAG8_dual2 |
VD4
|
4k*4k
|
2
|
BASE
|
12
|
8
|
no
|
yes
|
no
|
no
|
yes
|
no
|
2
|
7*7
|
n/a
|
2
|
170
|
250
|
85
|
| Bin_BAG12 |
VD4
|
4k*4k
|
1
|
BASE
|
12
|
12
|
no
|
yes
|
no
|
yes
|
yes
|
64*64
|
2
|
7*7
|
n/a
|
2
|
170
|
250
|
85
|
| Bin_FAG8 |
VD4
|
4k*4k
|
1
|
FULL
|
8
|
8
|
no
|
yes
|
no
|
yes
|
yes
|
64*64
|
1
|
3*3
|
n/a
|
2
|
850
|
750
|
85
|
| Bin_GAG8 |
VQ4
|
4k*4k
|
1
|
GigE Vis.
|
12
|
8
|
no
|
yes
|
no
|
yes
|
yes
|
64*64
|
2
|
7*7
|
n/a
|
2
|
128
|
128
|
n/a
|
| Bin_GAG12 |
VQ4
|
4k*4k
|
1
|
GigE Vis.
|
12
|
12
|
no
|
yes
|
no
|
yes
|
yes
|
64*64
|
2
|
7*7
|
n/a
|
2
|
128
|
128
|
n/a
|
| Bin_GAG12_dual |
VQ4
|
4k*4k
|
2
|
GigE Vis.
|
12
|
12
|
no
|
yes
|
no
|
yes
|
yes
|
32*32
|
1
|
7*7
|
n/a
|
2
|
128
|
128
|
n/a
|
| Line Scan |
| Bin_BLG8 |
VD1
|
8k*65k
|
1
|
BASE
|
8
|
8
|
no
|
yes
|
no
|
no
|
yes
|
32*32
|
1
|
5*5
|
n/a
|
2
|
170
|
250
|
85
|
| Bin_BLG12 |
VD1
|
4k*65k
|
1
|
BASE
|
12
|
12
|
no
|
yes
|
no
|
no
|
yes
|
32*32
|
1
|
5*5
|
n/a
|
2
|
170
|
250
|
85
|
| Bin_FLG8 |
VD1
|
4k*65k
|
1
|
FULL
|
8
|
8
|
no
|
yes
|
no
|
no
|
yes
|
32*32
|
1
|
5*5
|
n/a
|
2
|
170
|
250
|
85
|
| Bin_ BLG8 |
VD4
|
16k*65k
|
1
|
BASE
|
8
|
8
|
yes
|
yes
|
yes
|
no
|
yes
|
64*64
|
2
|
7*7
|
n/a
|
2
|
170
|
250
|
85
|
| Bin_BLG12 |
VD4
|
16k*65k
|
1
|
BASE
|
12
|
12
|
yes
|
yes
|
yes
|
no
|
yes
|
32*32
|
1
|
7*7
|
n/a
|
2
|
170
|
250
|
85
|
| Bin_MLG8 |
VD4
|
16k*65k
|
1
|
MEDIUM
|
8
|
8
|
yes
|
yes
|
*
|
no
|
yes
|
64*64
|
2
|
7*7
|
n/a
|
2
|
340
|
500
|
85
|
| Bin_FLG8_2 |
VD4
|
16k*65k
|
1
|
FULL
|
8
|
8
|
yes
|
yes
|
*
|
no
|
yes
|
64*64
|
2
|
7*7
|
n/a
|
2
|
340
|
500
|
85
|
| Bin_FLG8 |
VD4
|
16k*65k
|
1
|
FULL
|
8
|
8
|
yes
|
yes
|
*
|
no
|
yes
|
no
|
1
|
5*5
|
n/a
|
2
|
850
|
500
|
85
|
| Bin_FLG8_3 |
VD4
|
8k*65k
|
1
|
FULL
|
8
|
8
|
yes
|
yes
|
no
|
no
|
yes
|
32*32
|
1
|
3*3
|
n/a
|
2
|
850
|
500
|
85
|
* Half shading resolution
|
Smart Applets Family Segmentation
|
|
Board
|
Img. Size
|
CamPort
|
Bitdepth
|
Sensor
|
LUT
|
Shading
|
Noise
|
Binarization
|
Morphology
|
Segm.
|
# DMA
|
Bandwidth
|
CamClk
|
|
mE4
|
Max.
|
.
|
.
|
Input
|
Output
|
Tap Corr.
|
8/12 bit
|
1D
|
Median
|
Thres.
|
Adapt.
|
Open/Close
|
Blob
|
.
|
Per cam
|
DMA/ch
|
Max.
|
|
CL/GE
|
[Px]
|
#
|
Type
|
[bit]
|
[bit]
|
.
|
.
|
mult+sub
|
3*3
|
.
|
Kernel
|
#
|
Kernel
|
Filter
|
#
|
[MP/s]
|
[MB/s]
|
[MHz]
|
| Area Scan |
| Blob_BAG8 |
VD1
|
4k*4k
|
1
|
BASE
|
12
|
8
|
no
|
yes
|
no
|
yes
|
yes
|
no
|
2
|
7*7
|
Full
|
2
|
170
|
200
|
85
|
| Blob_BAG12 |
VD1
|
4k*4k
|
1
|
BASE
|
12
|
12
|
no
|
yes
|
no
|
yes
|
yes
|
no
|
2
|
7*7
|
Full
|
2
|
170
|
200
|
85
|
| Blob_FAG8 |
VD1
|
2k*4k
|
1
|
FULL
|
8
|
8
|
no
|
yes
|
no
|
no
|
yes
|
no
|
no
|
no
|
Full
|
2
|
850
|
200
|
85
|
| Blob_BAG8_dual |
VD4
|
4k*4k
|
2
|
BASE
|
12
|
8
|
no
|
yes
|
no
|
yes
|
yes
|
no
|
2
|
5*5
|
Full
|
4
|
170
|
250
|
85
|
| Blob_BAG8 |
VD4
|
4k*4k
|
1
|
BASE
|
12
|
8
|
no
|
yes
|
no
|
yes
|
yes
|
32*32
|
2
|
7*7
|
Full
|
2
|
170
|
250
|
85
|
| Blob_BAG12 |
VD4
|
4k*4k
|
1
|
BASE
|
12
|
12
|
no
|
yes
|
no
|
yes
|
yes
|
32*32
|
2
|
7*7
|
Full
|
2
|
170
|
250
|
85
|
| Blob_FAG8 |
VD4
|
2k*4k
|
1
|
FULL
|
8
|
8
|
no
|
yes
|
no
|
yes
|
yes
|
32*32
|
1
|
3*3
|
Full
|
2
|
850
|
750
|
85
|
| Blob_GAG8 |
VQ4
|
4k*4k
|
1
|
GigE Vis.
|
12
|
8
|
no
|
yes
|
no
|
yes
|
yes
|
32*32
|
2
|
7*7
|
Full
|
2
|
128
|
128
|
n/a
|
| Blob_GAG12 |
VQ4
|
4k*4k
|
1
|
GigE Vis.
|
12
|
12
|
no
|
yes
|
no
|
yes
|
yes
|
32*32
|
2
|
7*7
|
Full
|
2
|
128
|
128
|
n/a
|
| Blob_GAG8_quad |
VQ4
|
4k*4k
|
4
|
GigE Vis.
|
8
|
8
|
no
|
yes
|
no
|
no
|
yes
|
no
|
no
|
no
|
Light
|
4
|
125
|
125
|
n/a
|
| Blob_GAG8_dual |
VQ4
|
4k*4k
|
2
|
GigE Vis.
|
8
|
8
|
no
|
yes
|
no
|
yes
|
yes
|
no
|
2
|
7*7
|
Full
|
2
|
125
|
125
|
n/a
|
| Blob_GAG12_dual |
VQ4
|
4k*4k
|
2
|
GigE Vis.
|
12
|
12
|
no
|
yes
|
no
|
yes
|
yes
|
no
|
2
|
7*7
|
Full
|
2
|
125
|
125
|
n/a
|
| Line Scan |
| Blob_BLG8 |
VD1
|
16k*65k
|
1
|
BASE
|
8
|
8
|
yes
|
yes
|
yes
|
no
|
yes
|
no
|
1
|
5*5
|
Full
|
2
|
170
|
200
|
85
|
| Blob_BLG12 |
VD1
|
16k*32k
|
1
|
BASE
|
12
|
12
|
yes
|
yes
|
yes
|
no
|
yes
|
no
|
no
|
no
|
Full
|
2
|
170
|
200
|
85
|
| Blob_MLG8 |
VD1
|
16k*65k
|
1
|
MEDIUM
|
8
|
8
|
yes
|
yes
|
yes
|
no
|
yes
|
no
|
1
|
7*7
|
Full
|
2
|
250
|
200
|
62,5
|
| Blob_MLG12 |
VD1
|
16k*65k
|
1
|
MEDIUM
|
12
|
12
|
yes
|
yes
|
yes
|
no
|
yes
|
no
|
no
|
no
|
Full
|
2
|
250
|
200
|
62,5
|
| Blob_ BLG8_dual |
VD4
|
16k*65k
|
2
|
BASE
|
8
|
8
|
yes
|
yes
|
yes
|
no
|
yes
|
no
|
no
|
no
|
Full
|
2
|
170
|
250
|
85
|
| Blob_BLG8 |
VD4
|
16k*65k
|
1
|
BASE
|
8
|
8
|
yes
|
yes
|
yes
|
no
|
yes
|
32*32
|
2
|
7*7
|
Full
|
2
|
170
|
250
|
85
|
| Blob_BLG12 |
VD4
|
16k*65k
|
1
|
BASE
|
12
|
12
|
yes
|
yes
|
yes
|
no
|
yes
|
32*32
|
1
|
3*3
|
Full
|
2
|
170
|
250
|
85
|
| Blob_MLG8 |
VD4
|
16k*65k
|
1
|
MEDIUM
|
8
|
8
|
yes
|
yes
|
*
|
no
|
yes
|
32*32
|
2
|
5*5
|
Full
|
2
|
340
|
500
|
85
|
| Blob_MLG12 |
VD4
|
16k*65k
|
1
|
MEDIUM
|
12
|
12
|
yes
|
yes
|
*
|
no
|
yes
|
no
|
2
|
7*7
|
Full
|
2
|
340
|
500
|
85
|
| Blob_FLG8 |
VD4
|
16k*65k
|
1
|
FULL
|
8
|
8
|
yes
|
yes
|
*
|
no
|
yes
|
no
|
1
|
7*7
|
Full
|
2
|
640
|
750
|
85
|
* Half shading resolution
|
Abkürzungen:
VD1 = microEnable IV VD1-CL
VD4 = microEnable IV VD4-CL
VQ4 = microEnable IV VQ4-GE
Beispiel:

Das Beispiel „Blob_BAG8“ für die microEnable IV VD4-CL zeigt anhand eines Blockdiagramms den Ablauf innerhalb des SmartApplets. Die Bildaufnahmefunktion (grün) unterstützt BASE Configuration Kameras mit bis zu 12bit Graustufenauflösung. Die sich anschließende Lookup Tabellenfunktion (gelb) ermöglicht die Bildverbesserung über Gamma-Werte, Kontraste, Helligkeit usw. Ein Median-Filter unterdrückt das Bildrauschen. Anschließend wird eine Binarisierung (orange) mit einstellbarem globalen Schwellwert oder als adaptive Binarisierung mit lokalen Schwellwerten in einer 32*32 Pixel Umgebung durchgeführt. Nach Auswahl der Binarisierungsart (SW) werden über eine zweistufige Morphologie (gelb) mit jeweils hintereinander geschalteten Open-Close Funktionen mit 7*7 Matrixgröße, ungewollte kleine Objekte unterdrückt. Die Blob-Funktion (hellblau) segmentiert das Bild in Binärobjekte. Über Auswahl der Objekteigenschaften (feature extraction) lässt der Objektfilter (blau) nur relevante Objekte passieren. Die Ausgabe (grün) erfolgt sowohl als Objektliste, u.a mit Koordinaten der Bounding Box, Flächeninhalten, Konturlängen und weiteren Objekteigenschaften, und als Graustufenbild. Bei letzterem besteht die Möglichkeit, als Quelle das Bild nach der Entrauschung oder nach der Binarisierung und Morphologie zu wählen (SW).
Verfügbare Modelle:
microEnable IV VD1-CL
microEnable IV VD4-CL
microEnable IV VQ4-GE
Die oben genannten Modelle sind im Lieferzustand für „SmartApplets Base“ vorlizensiert und können die Grundfunktionsbibliotheken sofort laden. Zur Nutzung der erweiterten Funktionsbibliotheken „SmartApplets Extended“ wird eine gesonderte Freischaltung (license code) benötigt.