L1 Formato immagini, video
e sistemi di acquisizione
Corso di Visione Artificiale
A.A. 2011/2012
Ing. Luca Mazzei
[email protected]
Argomenti

Formati di file per immagini
Formati raster: PNM, TIFF, BMP, GIF, PNG, JPEG
– Formati vettoriali: SVG
– Formati misti: PostScript, PDF, AI
–

AA 2009/2010
Formati di file per video
Visione Artificiale
2
Formati raster
AA 2009/2010
Visione Artificiale
3
Formati raster

Header
–
–
–
–
–

Formato
Dimensioni (WxHxD)
Colore (spazio e riferimenti colorimetrici)
Compressione o meno
Altre informazioni (Autore, TimeStamp, …)
Bitmap
Valori numerici delle intensità luminose dei punti.
– Codifica fortemente dipendente dal formato
– Può essere compressa in vari modi (JPEG, ZIP, LZW, …)
–
AA 2009/2010
Visione Artificiale
4
PNM (PBM/PGM/PPM)
Portable Bit/Grey/Pix Map Format
 Formato NON compresso

Adatto per applicazioni di visione artificiale
Facilmente editabile

Diffuso in ambiente UNIX (Linux)

Header in formato ASCII

Esiste anche la versione video (PVM)
AA 2009/2010
Si converte facilmente
Per incorporare nell’immagine informazioni aggiuntive
Facilmente modificabile con editor di testo
Visione Artificiale
5
PNM Header e Bitmap
P4 = PBM
P5 = PGM
P6 = PPM
(0,0)
P5
320 240
255
@
(0,1)
…
(1,0)
Dimensioni Immagine
Valore massimo del colore
Informazioni aggiuntive
Es. TimeStamp, velocita’
… (319,239)
PBM, PGM: 1 byte per pixel
PPM:
3 byte per pixel
AA 2009/2010
Visione Artificiale
6
PGM Portable Grey Map

Rappresentazione in memoria bitmap
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
255
255
255
0
0
0
0
0
255
255
255
0
0
0
0
0
127
255
127
0
60
0
0
0
127
255
127
0
60
0
0
0
0
255
127
127
60
0
0
0
0
255
127
127
60
0
0
0
0
0
0
70
60
0
0
0
0
0
0
70
60
0
0
0
0
0
0
255
255
255
0
0
0
0
0
255
255
255
AA 2009/2010
Visione Artificiale
7
Formati raster compressi
Tipologia di compressione
 Lossless

Senza perdita di dati
– TIFF, BMP, PNG, GIF, JPEG
–

Lossy
Con perdita di dati
– JPEG
–
AA 2009/2010
Visione Artificiale
8
TIFF Tag(ged) Image File Format

Adobe Developers Association,
TIFF (TM) Revision 6.0 - Final, June 3, 1992
Compresso, senza perdita
 Compressione:
Nessuna, ZIP, LZW …
 Profondità di colore variabile
 Pagine multiple (Fax)

AA 2009/2010
Visione Artificiale
9
Windows BMP Format


Device Independent Bitmap (DIB)
Struttura del file
–
–
–
BITMAPFILEHEADER
bmfh;
tipo, dimensione e layout (pixel  lunghezza)
BITMAPINFOHEADER
bmih;
dimensione, tipo di compressione e formato del colore
RGBQUAD
aColors[];
Contiene tanti elementi quanti sono i colori nella bitmap
 Non presente per bitmap a 24 bit di colore
(24-bit red-green-blue (RGB) per rappresentare ciascun pixel)
 I colori nella tabella sono in ordine di importanza (dithering)

–
AA 2009/2010
BYTE
aBitmapBits[];
indici/intensita’ di colore codificate run-length encoded (RLE)
Visione Artificiale
10
GIF – Graphic Interchange Format
Molto usato su web
 8-bit (256 colori), trasparenza, animazioni
 Usa una color map (256 colori su 16M)
 Algoritmo di compressione brevettato
 Viene abbandonato in favore di PNG
Portable Network Graphic

–
–
AA 2009/2010
Colore a 24 bit + canale Alpha
Algoritmo di compressione non brevettato
Visione Artificiale
11
PNG

Header con una firma di 8-byte
–


AA 2009/2010
89 50 4E 47 0D 0A 1A 0A
Dopo l’header è presente una serie di
chunk ognuno dei quali contiene le
informazioni sull’immagine
Length
Chunk type
Chunk data
CRC
4 bytes
4 bytes
Length bytes
4 bytes
Gestione della trasparenza
Visione Artificiale
12
JPEG File Interchange Format (JFIF)
JPEG: Joint Photographic Experts Group
 Nato alla fine degli anni 80
 Diverso dall’algoritmo di compressione
JPEG
 Platform independent (PC, Mac …)
 Spazi di Colore: RGB, CMYK, YUV

AA 2009/2010
Visione Artificiale
13
Compressione JPEG





AA 2009/2010
La compressione basata su
luminanza/crominanza
I valori RGB o CMYK dei pixel vengono
convertiti
in uno spazio basato su luminanza/crominanza
Compressione separate dei due fattori
Per il sistema visivo umano
la luminanza è più importante della crominanza
L’informazione sulla luminanza viene preservata
più rispetto a quella di crominanza
Visione Artificiale
14
JPEG PRO e CONTRO

Compressione Elevata:
–
–
20  1 internet
5  1 stampa
Bene immagini a tono continuo
 Male immagini con pochi colori
 Poco adatto per visione (perdita, artefatti)

AA 2009/2010
Visione Artificiale
15
Scalable Vector Graphics
Grafica vettoriale
 linguaggio derivato dall'XML W3
 permette di avere 3 tipi di oggetti grafici:

–
–
–
AA 2009/2010
forme geometriche, cioè linee costituite da segmenti di retta e curve e
aree delimitate da linee chiuse;
immagini della grafica raster e immagini digitali;
testi esplicativi, eventualmente cliccabili.
Visione Artificiale
16
SVG - Esempio
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="1052.3622"
height="744.09448"
id="svg2"
version="1.1"
inkscape:version="0.48.1 r9760"
sodipodi:docname="Nuovo documento 1">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
…
inkscape:randomized="0"
d="m 251.42858,175.52305 -61.11845,4.77394 -30.71632,53.05434 -23.42693,-56.65186 -59.949534,-12.81827 46.639804,-39.78672 -6.33453,60.976461 52.25191,32.062318 56.03459,-24.867261 -14.34635,59.602324 z"
transform="translate(0,308.2677)"
inkscape:transform-center-x="1.8913327"
inkscape:transform-center-y="6.9973399" />
</g>
</svg>
AA 2009/2010
Visione Artificiale
17
PostScript



Linguaggio di descrizione della pagina
Permette di incorporare grafica vettoriale e raster
Es: EPS che disegna un quadrato spesso 10 unit
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 5 5 105 105
10 setlinewidth
10 10 moveto
0 90 rlineto 90 0 rlineto 0 -90 rlineto closepath
stroke

AA 2009/2010
Usato soprattutto per la stampa dei documenti
Visione Artificiale
18
Formati video
Unico file una sequenza di immagini
 Header: informazioni sulla sequenza

–
–
–

Dimensione del frame e profondità di colore
Frame rate
Tipo di compressione
Visione: meglio frame separati e non
compressi.
Piu’ facile operare su un singoli frame con diverse
app.
– Sequenze lunghe: File di dimensioni minori, molti
file
–
AA 2009/2010
Visione Artificiale
19
Formati video

Formati non compressi (PVM)
HEADER

Frame 1
Frame 2
Frame n
…
Formati compressi (MPEG)
HEADER
AA 2009/2010
KeyFrame1 Delta1 Delta2 … Deltan KeyFrame2
Visione Artificiale
…
20
Acquisizione delle immagini
Sistemi di acquisizione immagini
 Telecamere analogiche
 Telecamere digitali
 Smart cameras
 Schede di acquisizione video
 Interfacce di programmazione

AA 2009/2010
Visione Artificiale
21
Panoramica
TC
Elaboratore
Immagini generate dalla telecamera (Tx)
 Collegamento
 Trasferite al sistema di elaborazione (Rx)

AA 2009/2010
Visione Artificiale
22
Videocamera (camera)

Ingressi
–
–
–

Uscite
–
–

Alimentazione
Trigger
Scena inquadrata
Segnale video
(Analogico o Digitale)
Sincronizzazione
Parametri
(fisici, segnali, software)
–
AGC (On/Off e riferimento),
shutter, temp di colore…
AA 2009/2010
Visione Artificiale
23
Conversione A/D
Sistema di elaborazione (analogico)
– Rumore (termico e interferenze)
– Problemi di ricampionamento
– Basse frequenze (circa 30 fps)
– Formato standard (televisivo: 768x576)
– Basso costo (dipende dal sensore)
 Telecamera (digitale)
– CMOS: conversione alla sorgente
– Esistono alcuni standard (Es: DV, DCAM, Camera Link, USB …)
– Prestazioni elevate: (fino a 1000 fps: crash test)
– Software complesso
– Costo variabile (Firewire basso, Camera Link elevato)
 Collegamento (ibrido)
– Necessità di usare telecamere con sensori particolari
(di solito analogiche) e frame grabber digitali a basso costo

AA 2009/2010
Visione Artificiale
24
Ritardi
L’immagine acquisita rappresenta un
evento avvenuto nel passato.
 TC, buffer di tx, rx, driver, API.
 Per applicazioni realtime occorre avere
bassi ritardi. (Elab + output)

Elaboratore
TC
t
t1
t + t1 + t2
t2
AA 2009/2010
Visione Artificiale
25
Sensori
AA 2009/2010
Visione Artificiale
26
Tipica Pipeline Sensore
http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm
AA 2009/2010
Visione Artificiale
27
CCD vs CMOS

Charge-Coupled Device:
–
–
–
Charge is actually transported across the chip and read at
one corner of the array
Usage of a special manufacturing process to create the
ability to transport charge across the chip without distortion.
Higher Fill Factor
http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm
AA 2009/2010
Visione Artificiale
28
CCD vs CMOS

Complimentary Metal-Oxide Semiconductor:
–
–
–
–
–
AA 2009/2010
Several transistors at each pixel amplify and move the
charge using more traditional wires
It is more flexible because each pixel can be read
individually
Usage of the same traditional manufacturing processes to
make most microprocessors.
Easy integration
Lower Fill Factor
Visione Artificiale
29
CMOS microlenses
http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm
AA 2009/2010
Visione Artificiale
30
Colore: Separazione Spettrale
AA 2009/2010
Visione Artificiale
31
Color Field Array image sensor
Microlenti che focalizzano la luce dentro al filtro CFA
Il CFA permette il passaggio di un solo colore per volta
I fotorecettori accumulano gli elettroni ricevuti e il
voltaggio viene trasformato in un valore numerico.
http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm
AA 2009/2010
Visione Artificiale
32
CFA image sensor
http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm
AA 2009/2010
Visione Artificiale
33
AA 2009/2010
Visione Artificiale
http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm
Demosaicing linear interpolation
34
Riepilogo
(a)
(b)
(c)
(d)
Grayscale mosaic image
Color vision mosaic image
Demosaicked full-color image
Post processed final image
http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm
AA 2009/2010
Visione Artificiale
35
Defects
http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm
AA 2009/2010
Visione Artificiale
36
Telecamere Analogiche
Sensori
– Visibile (mono e colore), NIR, FIR
–
Tecnologia CCD, CMOS
Formato
768x576@30fps
Standard PAL, NTSC
AA 2009/2010
Visione Artificiale
37
Telecamere digitali


Sensori: visibile o NIR
Formato variabile
–
risoluzione




Interfacce di comunicazione
–
–
AA 2009/2010
continua impostabile via SW (anche nel tempo)
elevata: sensori oltre 4096x4096
supporto formati compressi (JPEG,…)
Low End: DV, DCAM, Ethernet
High End: CameraLink
Visione Artificiale
38
Smart camera
General Purpose System
 Applicazioni industriali
 Atom Z530 Z510
 Ram DDR2 533Mhz
 SSD 4Gb

AA 2009/2010
Visione Artificiale
39
Schema camera pc
TC 1
Frame
Grabber
Elaboratore
40
AA 2009/2010
Visione Artificiale
40
Frame grabber analogici
Schede con uno o più ingressi video
agganciati al bus del calcolatore
 Caratterizzate da un chip di conversione

–
–
BT8x8, Philips SAA 7146, …
Necessari driver di dispositivo appositi
Sincronizzazione HW a basso costo
Con interfacce opportune si possono acquisire
2 segnali sincronizzati con 1 canale
interallacciato
 Necessaria un’API di alto livello per
mascherare le differenze tra I chip. Video For
Linux (2)


AA 2009/2010
Visione Artificiale
41
Frame grabber digitali a basso
costo
Firewire, USB, Eth
Controller integrati sulle MoBo
 Elevato numero di dispositivi
 Sincronizzazione SW o HW
 API di alto livello

–
AA 2009/2010
libdc1394. USB
Visione Artificiale
42
Sistemi multicanale

Per applicazioni avanzate occorrono più camere
– Flusso dati molto grande
– Sincronizzazione
TC 1
– Regolazione camere
TC 2
Elaboratore
…
TC n
AA 2009/2010
Visione Artificiale
43
Sincronizzazione


N camere si dicono sincronizzate quando
(a parità di tempo di acquisizione)
il ritardo tra i tempi di inizio acquisizione è
basso
La sincronizzazione dipende dall’applicazione
Per fenomeni lenti (terreno) anche qualche
secondo
– Per fenomeni veloci (crash-test) si scende ai s
–


AA 2009/2010
Hardware
–
–
Telecamere master/slave
Generatore di sincronismo
–
Telecamere digitali con comandi di sincronismo
Software
Visione Artificiale
44
API: Video for Linux 2
API di acquisizione video integrata kernel
2.6
 Acquisizione frames
 Proprietà del framegrabber (luminosità,
contrasto)
 Molto diffusa e stabile.
 Supporta i principali framegrabber
analogici
(Driver integrati nel kernel o forniti dal
produttore)

AA 2009/2010
Visione Artificiale
45
DCAM

Protocollo per scambio dati con tc FireWire:
–
–



Canale isocrono: video
Canale asincrono: comandi e parametri
API di alto livello:
–
AA 2009/2010
flusso di dati consegnati dalla telecamera
parametrizzazione della telecamera
(luminosità, otturatore, bilanciamento bianco…)
libdc1394
http://www.sourceforge.com/projects/libdc1394
Visione Artificiale
46
DCAM connessioni
Linux
Windows
Apple
Embedded
…
IEEE 1394 BUS
FireWire
Hub
AA 2009/2010
Visione Artificiale
DCAM
…
DCAM
DCAM
DCAM
Compatible
Camera
(Vendor 2)
DCAM
DCAM
Compatible
Camera
(Vendor 1)
DCAM
Compatible
Camera
(Vendor n)
47
Scarica

L1_Immagini_Sensori