L1 Formato immagini, video e sistemi di acquisizione Corso di Visione Artificiale A.A. 2011/2012 Ing. Luca Mazzei
AA 2009/2010 Visione Artificiale 2 Argomenti n Formati di file per immagini – Formati raster: PNM, TIFF, BMP, GIF, PNG, JPEG – Formati vettoriali: SVG – Formati misti: PostScript, PDF, AI n Formati di file per video
Formati raster AA 2009/2010 Visione Artificiale 3
Formati raster n Header – Formato – Dimensioni (WxHxD) – Colore (spazio e riferimenti colorimetrici) – Compressione o meno – Altre informazioni (Autore, TimeStamp, …) n 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) n Portable Bit/Grey/Pix Map Format n Formato NON compresso Adatto per applicazioni di visione artificiale Facilmente editabile Facilmente editabile n Diffuso in ambiente UNIX (Linux) Si converte facilmente n Header in formato ASCII Per incorporare nellimmagine informazioni aggiuntive Facilmente modificabile con editor di testo n Esiste anche la versione video (PVM) AA 2009/2010 Visione Artificiale 5
PNM Header e Bitmap AA 2009/2010 Visione Artificiale 6 P P4 = PBM P5 = PGM P6 = PPM Dimensioni Immagine Informazioni aggiuntive Es. TimeStamp, velocita (0,0)(0,1) … (319,239)(1,0) … Valore massimo del colore PBM, PGM: 1 byte per pixel PPM: 3 byte per pixel
PGM Portable Grey Map n Rappresentazione in memoria bitmap AA 2009/2010 Visione Artificiale
Formati raster compressi n Tipologia di compressione n Lossless – Senza perdita di dati – TIFF, BMP, PNG, GIF, JPEG n Lossy – Con perdita di dati – JPEG AA 2009/2010 Visione Artificiale 8
TIFF Tag(ged) Image File Format n Adobe Developers Association, TIFF (TM) Revision Final, June 3, 1992 n Compresso, senza perdita n Compressione: Nessuna, ZIP, LZW … n Profondità di colore variabile n Pagine multiple (Fax) AA 2009/2010 Visione Artificiale 9
Windows BMP Format n Device Independent Bitmap (DIB) n Struttura del file – BITMAPFILEHEADERbmfh; tipo, dimensione e layout (pixel lunghezza) – BITMAPINFOHEADER bmih; dimensione, tipo di compressione e formato del colore – RGBQUAD aColors[]; n Contiene tanti elementi quanti sono i colori nella bitmap n Non presente per bitmap a 24 bit di colore (24-bit red-green-blue (RGB) per rappresentare ciascun pixel) n I colori nella tabella sono in ordine di importanza (dithering) – BYTE aBitmapBits[]; indici/intensita di colore codificate run-length encoded (RLE) AA 2009/2010 Visione Artificiale 10
GIF – Graphic Interchange Format n Molto usato su web n 8-bit (256 colori), trasparenza, animazioni n Usa una color map (256 colori su 16M) n Algoritmo di compressione brevettato n Viene abbandonato in favore di PNG Portable Network Graphic – Colore a 24 bit + canale Alpha – Algoritmo di compressione non brevettato AA 2009/2010 Visione Artificiale 11
PNG n Header con una firma di 8-byte – E 47 0D 0A 1A 0A n Dopo lheader è presente una serie di chunk ognuno dei quali contiene le informazioni sullimmagine n Gestione della trasparenza AA 2009/2010 Visione Artificiale 12 LengthChunk typeChunk dataCRC 4 bytes Length bytes4 bytes
JPEG File Interchange Format (JFIF) n JPEG: Joint Photographic Experts Group n Nato alla fine degli anni 80 n Diverso dallalgoritmo di compressione JPEG n Platform independent (PC, Mac …) n Spazi di Colore: RGB, CMYK, YUV AA 2009/2010 Visione Artificiale 13
Compressione JPEG n La compressione basata su luminanza/crominanza n I valori RGB o CMYK dei pixel vengono convertiti in uno spazio basato su luminanza/crominanza n Compressione separate dei due fattori n Per il sistema visivo umano la luminanza è più importante della crominanza n Linformazione sulla luminanza viene preservata più rispetto a quella di crominanza AA 2009/2010 Visione Artificiale 14
JPEG PRO e CONTRO n Compressione Elevata: – 20 1internet – 5 1 stampa n Bene immagini a tono continuo n Male immagini con pochi colori n Poco adatto per visione (perdita, artefatti) AA 2009/2010 Visione Artificiale 15
Scalable Vector Graphics n Grafica vettoriale n linguaggio derivato dall'XML W3 n permette di avere 3 tipi di oggetti grafici: – 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. AA 2009/2010 Visione Artificiale 16
SVG - Esempio AA 2009/2010 Visione Artificiale 17 <svg xmlns:dc=" xmlns:cc=" xmlns:rdf=" xmlns:svg=" xmlns=" xmlns:sodipodi=" xmlns:inkscape=" width=" " height=" " id="svg2" version="1.1" inkscape:version=" 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 , , , , , , , , , , z" transform="translate(0, )" inkscape:transform-center-x=" " inkscape:transform-center-y=" " />
PostScript n Linguaggio di descrizione della pagina n Permette di incorporare grafica vettoriale e raster Es: EPS che disegna un quadrato spesso 10 unit Es: EPS che disegna un quadrato spesso 10 unit %!PS-Adobe-3.0 EPSF-3.0 %BoundingBox: setlinewidth moveto 0 90 rlineto 90 0 rlineto rlineto closepath stroke n Usato soprattutto per la stampa dei documenti AA 2009/2010 Visione Artificiale 18
Formati video n Unico file una sequenza di immagini n Header: informazioni sulla sequenza – Dimensione del frame e profondità di colore – Frame rate – Tipo di compressione n 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 AA 2009/2010 Visione Artificiale 20 n Formati non compressi (PVM) n Formati compressi (MPEG) HEADER Frame 1 Frame 2 Frame n … HEADERKeyFrame1Delta1 … Delta2 Deltan KeyFrame2 …
Acquisizione delle immagini n Sistemi di acquisizione immagini n Telecamere analogiche n Telecamere digitali n Smart cameras n Schede di acquisizione video n Interfacce di programmazione AA 2009/2010 Visione Artificiale 21
Panoramica AA 2009/2010 Visione Artificiale 22 n Immagini generate dalla telecamera (Tx) n Collegamento n Trasferite al sistema di elaborazione (Rx) TC Elaboratore
Videocamera (camera) AA 2009/2010 Visione Artificiale 23 n Ingressi – Alimentazione – Trigger – Scena inquadrata n Uscite – Segnale video (Analogico o Digitale) – Sincronizzazione n Parametri (fisici, segnali, software) – AGC (On/Off e riferimento), shutter, temp di colore…
Conversione A/D n 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) n 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) n 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 n Limmagine acquisita rappresenta un evento avvenuto nel passato. n TC, buffer di tx, rx, driver, API. n Per applicazioni realtime occorre avere bassi ritardi. (Elab + output) AA 2009/2010 Visione Artificiale 25 TC Elaboratore t t + t1 + t2 t1 t2
Sensori AA 2009/2010 Visione Artificiale 26
Tipica Pipeline Sensore AA 2009/2010 Visione Artificiale 27
CCD vs CMOS AA 2009/2010 Visione Artificiale 28 n 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
CCD vs CMOS n Complimentary Metal-Oxide Semiconductor: – 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 AA 2009/2010 Visione Artificiale 29
CMOS microlenses AA 2009/2010 Visione Artificiale 30
Colore: Separazione Spettrale AA 2009/2010 Visione Artificiale 31
Color Field Array image sensor AA 2009/2010 Visione Artificiale 32 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.
CFA image sensor AA 2009/2010 Visione Artificiale 33
Demosaicing linear interpolation AA 2009/2010 Visione Artificiale 34
Riepilogo AA 2009/2010 Visione Artificiale 35 (a)Grayscale mosaic image (b)Color vision mosaic image (c)Demosaicked full-color image (d)Post processed final image
Defects AA 2009/2010 Visione Artificiale 36
Telecamere Analogiche n Sensori – Visibile (mono e colore), NIR, FIR – Tecnologia CCD, CMOS n Formato n Standard PAL, NTSC AA 2009/2010 Visione Artificiale 37
Telecamere digitali n Sensori: visibile o NIR n Formato variabile – risoluzione n continua impostabile via SW (anche nel tempo) n elevata: sensori oltre 4096x4096 n supporto formati compressi (JPEG,…) n Interfacce di comunicazione – Low End: DV, DCAM, Ethernet – High End: CameraLink AA 2009/2010 Visione Artificiale 38
Smart camera n General Purpose System n Applicazioni industriali n Atom Z530 Z510 n Ram DDR2 533Mhz n SSD 4Gb AA 2009/2010 Visione Artificiale 39
Schema camera pc AA 2009/2010 Visione Artificiale 40 TC 1 Elaboratore Frame Grabber
Frame grabber analogici n Schede con uno o più ingressi video agganciati al bus del calcolatore n Caratterizzate da un chip di conversione – BT8x8, Philips SAA 7146, … – Necessari driver di dispositivo appositi n Sincronizzazione HW a basso costo n Con interfacce opportune si possono acquisire 2 segnali sincronizzati con 1 canale interallacciato n Necessaria unAPI 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 n Firewire, USB, Eth Controller integrati sulle MoBo n Elevato numero di dispositivi n Sincronizzazione SW o HW n API di alto livello – libdc1394. USB AA 2009/2010 Visione Artificiale 42
Sistemi multicanale AA 2009/2010 Visione Artificiale 43 n Per applicazioni avanzate occorrono più camere –Flusso dati molto grande –Sincronizzazione –Regolazione camere TC 1 Elaboratore TC 2 TC n …
Sincronizzazione n N camere si dicono sincronizzate quando (a parità di tempo di acquisizione) il ritardo tra i tempi di inizio acquisizione è basso n La sincronizzazione dipende dallapplicazione – Per fenomeni lenti (terreno) anche qualche secondo – Per fenomeni veloci (crash-test) si scende ai s n Hardware – Telecamere master/slave – Generatore di sincronismo n Software – Telecamere digitali con comandi di sincronismo AA 2009/2010 Visione Artificiale 44
API: Video for Linux 2 n API di acquisizione video integrata kernel 2.6 n Acquisizione frames n Proprietà del framegrabber (luminosità, contrasto) n Molto diffusa e stabile. n Supporta i principali framegrabber analogici (Driver integrati nel kernel o forniti dal produttore) AA 2009/2010 Visione Artificiale 45
DCAM n Protocollo per scambio dati con tc FireWire: – flusso di dati consegnati dalla telecamera – parametrizzazione della telecamera (luminosità, otturatore, bilanciamento bianco…) n Canale isocrono: video n Canale asincrono: comandi e parametri n API di alto livello: – libdc AA 2009/2010 Visione Artificiale 46
DCAM connessioni AA 2009/2010 Visione Artificiale 47 LinuxWindowsAppleEmbedded … DCAMCompatibleCamera (Vendor 1) IEEE 1394 BUS DCAMCompatibleCamera (Vendor n) FireWireHub DCAM DCAM DCAM DCAM DCAMCompatibleCamera (Vendor 2) …