480 likes | 661 Views
L1 Formato immagini , video e sistemi di acquisizione. Corso di Visione Artificiale A.A. 2011/2012 Ing . Luca Mazzei m azzei@ce.unipr.it. Argomenti. Formati di file per immagini Formati raster : PNM, TIFF, BMP, GIF, PNG, JPEG Formati vettoriali: SVG
E N D
L1 Formatoimmagini, video e sistemi di acquisizione Corso di VisioneArtificiale A.A. 2011/2012 Ing. Luca Mazzei mazzei@ce.unipr.it
Argomenti • Formati di file per immagini • Formati raster: PNM, TIFF, BMP, GIF, PNG, JPEG • Formati vettoriali: SVG • Formati misti: PostScript, PDF, AI • Formati di file per video Visione Artificiale
Formati raster Visione Artificiale
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, …) Visione Artificiale
PNM (PBM/PGM/PPM) • Portable Bit/Grey/PixMap Format • Formato NON compresso Adatto per applicazioni di visione artificiale Facilmente editabile • Diffuso in ambiente UNIX (Linux) Si converte facilmente • Header in formato ASCIIPer incorporare nell’immagine informazioni aggiuntiveFacilmente modificabile con editor di testo • Esiste anche la versione video (PVM) Visione Artificiale
PNM Header e Bitmap • P5 • 320 240 • 255 • @ Dimensioni Immagine P4 = PBMP5 = PGMP6 = PPM Valore massimo del colore Informazioni aggiuntiveEs. TimeStamp, velocita’ (0,0) (0,1) … (1,0) … (319,239) PBM, PGM: 1 byte per pixelPPM: 3 byte per pixel Visione Artificiale
PGM Portable Grey Map • Rappresentazione in memoria bitmap Visione Artificiale
Formati raster compressi • Tipologia di compressione • Lossless • Senza perdita di dati • TIFF, BMP, PNG, GIF, JPEG • Lossy • Con perdita di dati • JPEG Visione Artificiale
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 colorevariabile • Pagine multiple (Fax) Visione Artificiale
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) • BYTE aBitmapBits[];indici/intensita’ di colorecodificate run-length encoded (RLE) Visione Artificiale
GIF – GraphicInterchange 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 PNGPortable Network Graphic • Colore a 24 bit + canale Alpha • Algoritmo di compressione non brevettato Visione Artificiale
PNG • Header con una firma di 8-byte • 89 50 4E 47 0D 0A 1A 0A • Dopol’header è presenteunaserie di chunk ognunodeiqualicontiene le informazionisull’immagine • Gestionedellatrasparenza Visione Artificiale
JPEG File Interchange Format (JFIF) • JPEG: Joint PhotographicExperts Group • Nato alla fine degli anni 80 • Diverso dall’algoritmo di compressione JPEG • Platform independent (PC, Mac …) • Spazi di Colore: RGB, CMYK, YUV Visione Artificiale
Compressione JPEG • La compressione basata su luminanza/crominanza • I valori RGB o CMYK dei pixel vengono convertitiin 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
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) Visione Artificiale
Scalable Vector Graphics • Grafica vettoriale • linguaggio derivato dall'XML W3 • permette di avere 3tipi 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. Visione Artificiale
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> Visione Artificiale
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 rlinetoclosepath stroke • Usato soprattutto per la stampa dei documenti Visione Artificiale
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 Visione Artificiale
Formati video • Formati non compressi (PVM) • Formati compressi (MPEG) HEADER Frame 1 Frame 2 Frame n … HEADER KeyFrame1 Delta1 Delta2 Deltan KeyFrame2 … … Visione Artificiale
Acquisizione delle immagini • Sistemi di acquisizione immagini • Telecamere analogiche • Telecamere digitali • Smart cameras • Schede di acquisizione video • Interfacce di programmazione Visione Artificiale
TC Panoramica Elaboratore • Immagini generate dalla telecamera (Tx) • Collegamento • Trasferite al sistema di elaborazione (Rx) Visione Artificiale
Videocamera (camera) • Ingressi • Alimentazione • Trigger • Scena inquadrata • Uscite • Segnale video (Analogico o Digitale) • Sincronizzazione • Parametri (fisici, segnali, software) • AGC (On/Off e riferimento), shutter, temp di colore… Visione Artificiale
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 • Costovariabile (Firewire basso, Camera Link elevato) • Collegamento (ibrido) • Necessità di usare telecamere con sensori particolari (di solito analogiche) e frame grabber digitali a basso costo Visione Artificiale
TC Ritardi • L’immagineacquisitarappresenta un eventoavvenutonelpassato. • TC, buffer di tx, rx, driver, API. • Per applicazionirealtimeoccorreaverebassiritardi. (Elab + output) Elaboratore t t1 t + t1 + t2 t2 Visione Artificiale
Sensori Visione Artificiale
Tipica Pipeline Sensore http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm Visione Artificiale
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 Visione Artificiale
CCD vs CMOS • 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 Visione Artificiale
CMOS microlenses http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm Visione Artificiale
Colore: Separazione Spettrale Visione Artificiale
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 Visione Artificiale
CFA image sensor http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm Visione Artificiale
Demosaicing linear interpolation http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm Visione Artificiale
Riepilogo Grayscalemosaic image Color visionmosaic image Demosaicked full-color image Post processedfinal image http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm Visione Artificiale
Defects http://www.dmi.unict.it/~battiato/CVision1011/CVision1011.htm Visione Artificiale
Telecamere Analogiche • Sensori • Visibile (mono e colore), NIR, FIR • Tecnologia CCD, CMOS • Formato 768x576@30fps • Standard PAL, NTSC Visione Artificiale
Telecamere digitali • Sensori: visibile o NIR • Formatovariabile • risoluzione • continua impostabile via SW (anchenel tempo) • elevata: sensorioltre 4096x4096 • supportoformaticompressi (JPEG,…) • Interfacce di comunicazione • Low End: DV, DCAM, Ethernet • High End: CameraLink Visione Artificiale
Smart camera • General PurposeSystem • Applicazioni industriali • Atom Z530 Z510 • Ram DDR2 533Mhz • SSD 4Gb Visione Artificiale
TC 1 Elaboratore Schema camera pc Frame Grabber 40 Visione Artificiale
Frame grabber analogici • Schede con uno o piùingressi videoagganciati al bus del calcolatore • Caratterizzate da un chip di conversione • BT8x8, Philips SAA 7146, … • Necessari driver di dispositivoappositi • Sincronizzazione HW a basso costo • Con interfacce opportune sipossonoacquisire2 segnalisincronizzati con 1 canaleinterallacciato • Necessariaun’API di alto livello per mascherare le differenzetra I chip. Video For Linux (2) Visione Artificiale
Frame grabber digitali a basso costo • Firewire, USB, EthController integratisulleMoBo • Elevatonumero di dispositivi • Sincronizzazione SW o HW • API di alto livello • libdc1394. USB Visione Artificiale
TC 1 TC 2 TC n Elaboratore … Sistemimulticanale • Per applicazioni avanzate occorrono più camere • Flusso dati molto grande • Sincronizzazione • Regolazione camere Visione Artificiale
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 • Hardware • Telecamere master/slave • Generatore di sincronismo • Software • Telecamere digitali con comandi di sincronismo Visione Artificiale
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 principaliframegrabberanalogici(Driver integratinel kernel o forniti dal produttore) Visione Artificiale
DCAM • Protocollo per scambio dati con tc FireWire: • flusso di dati consegnati dalla telecamera • parametrizzazione della telecamera (luminosità, otturatore, bilanciamento bianco…) • Canale isocrono: video • Canale asincrono: comandi e parametri • API di alto livello: • libdc1394 http://www.sourceforge.com/projects/libdc1394 Visione Artificiale
FireWire Hub DCAM Compatible Camera (Vendor 2) … DCAM DCAM DCAM DCAM DCAM connessioni Linux Windows Apple Embedded … IEEE 1394 BUS DCAM Compatible Camera (Vendor 1) DCAM Compatible Camera (Vendor n) Visione Artificiale