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