Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Applicazioni di visione artificiale su smart ca...

Applicazioni di visione artificiale su smart camera - Fabrizio Dini

Avatar for Better Embedded

Better Embedded

September 25, 2012
Tweet

More Decks by Better Embedded

Other Decks in Technology

Transcript

  1. Magenta srl • Società di Ingegneria Informatica di Firenze fondata

    nel 2007. • Oggi l'azienda è principalmente un fornitore di tecnologie IT per altre organizzazioni, pubbliche e private. • L'azienda mantiene inoltre stretti legami con il mondo accademico, e in particolare con i dipartimenti UNIFI/MICC e DSI. Principali aree di attività: • Applicazioni web in tecnologia Java Enterprise. • Applicazioni per la gestione, l'elaborazione e l'analisi di immagini e video. • Applicazioni per dispositivi mobili su piattaforma Android. www.magentalab.it
  2. Applicazioni di Video Analisi Video sorveglianza Face detection, stima della

    posa Object detection (scale invariant) Adaptive enconding www.magentalab.it
  3. Un po’ di storia... 1942: Primo esperimento di CCTV (Siemens)

    1965-69: Inizia la diffusione della CCTV nei luogi pubblici (USA) 1970: Vengono lanciati Betamax e VHS 1975: Prima fotocomera digitale (con CCD) 1982: Standardizzazione protocolli TCP/IP 1982+: Prime telecamere digitali (Sony) 1990: Vengono lanciati i primi DVR (Digital Video Recorder) 1996: Prima telecamera IP centralizzata (Axis) 1999: Prima telecamera IP decentralizzata (Mobotix) 2005: Prima telecamera con Video Content Analysis (Intellio) 1960: Digital Image Processing 1968: Journal Pattern Recognition 1970: International Conference on Pattern Recognition (ICPR) 1977: International Conference on Pattern Recognition (ICPR) 1979: IEEE Transaction on Pattern Analysis and Machine Intelligence (PAMI) 1986: International Conference on Computer Vision (ICCV) www.magentalab.it
  4. Analisi video Approccio classico: trasmettere il video, poi elaborarlo •

    Pro: sensori video più semplici e meno costosi; maggiore capacità di calcolo disponibile; possibilità di elaborazione off-line • Contro: maggiore banda trasmissiva richiesta; problemi di privacy legati alla necessità di trasmettere/memorizzare il video Pedestrians: 34 Vehicles: 3 Abandoned objects: - ... ... www.magentalab.it
  5. Analisi video Approccio "distribuito": elaborare il video a bordo, trasmettere

    dati analitici • Pro: minima occupazione della banda trasmissiva disponibile; ridotti problemi di privacy per la possibile assenza di trasmissione e/o memorizzazione di immagini • Contro: sensore video più costoso; generalmente ridotta potenza di calcolo disponibile; necessità di elaborare il video in tempo reale Pedestrians Vehicles ... ... Abandoned objects ... ... Vehicles ... ... Pedestrians ... ... Pedestrians: 34 Vehicles: 3 Abandoned objects: - ... ... www.magentalab.it
  6. La piattaforma ACAP Smart camera programmabile Axis: • cpu ARM

    Artpec3 400Mhz running Linux 2.6 • 128MB ram, 128MB memoria flash interna Piattaforma di sviluppo "open": • libreria open source (GNU LGPL) per l'image processing di basso livello (RAPP: http://savannah.nongnu.org/projects/rapp) • libreria open source (GNU LGPL) per i calcoli in virgola fissa (FixMath: http://savannah.nongnu.org/projects/fixmath/) • librerie binarie per l'interfaccia con gli altri device della telecamera (web server, event server, digital I/O, ...) • cross-compilatore CRISV32 (C/C++) www.magentalab.it
  7. Smart camera Sensor VCA image raw video VCA output Digital

    I/O Alarm sub-sys Web server Output sub-system www.magentalab.it
  8. Smart camera IP programmabile Sensor image raw video HTTP, RTSP,

    RTP... User application application output encoded video Digital I/O Alarm sub-sys Video server Encoder Output sub-system www.magentalab.it
  9. Criticità nello sviluppo su piattaforma video embedded 1. Assenza di

    librerie di alto livello per l'image processing: a. re-implementazione di algoritmi noti b. gestione a basso livello dei pixel buffer 2. Feedback visuale praticamente assente, debug non immediato (debug remoto, concorrenza…) 3. Limitata potenza di calcolo: il carico computazionale impatta anche sugli fps ottenibili - troppo carico, meno fps e questo è un problema per i metodi che hanno "memoria" www.magentalab.it
  10. 1 - Libreria di image processing: RAPP • La libreria

    RAPP (RAster Processing Primitives) fornisce un discreto numero di funzionalità di image processing di basso livello: o operazioni pixelwise o statistiche elementari o filtri di convoluzione e morfologici o thresholding o copy e set condizionali o ... • La gestione della memoria è affidata completamente all'utente: la libreria non alloca memoria, MAI. www.magentalab.it
  11. 1 - Libreria di image processing: RAPP • I pixel

    buffer devono essere allineati: o il buffer inizia a una locazione di memoria multipla di ALIGNMENT (4, 8 o 16 byte, dipende dall'architettura) o la dimensione del buffer è multipla di ALIGNMENT o ogni riga dell'immagine è memorizzata all'interno del buffer in locazioni di memoria contigue a partire da un indirizzo allineato o se la larghezza dell'immagine non è multipla di ALIGNMENT, si aggiungono byte di allineamento www.magentalab.it
  12. 1 - Libreria di image processing: RAPP ALIGNMENT ALIGNMENT BYTES

    HEIGHT BASE ADDRESS WIDTH STRIDE <BASE ADDRESS, STRIDE, WIDTH, HEIGHT> www.magentalab.it
  13. 1 - Libreria di image processing: RAPP • Il pixel

    buffer è completamente specificato quando sono noti: o indirizzo di base o stride o larghezza dell'immagine ( <= stride ) o altezza dell'immagine • Una sottoimmagine può essere facilmente selezionata ricalcolando indirizzo di base, larghezza e altezza, e lasciando inalterato lo stride. www.magentalab.it
  14. 1 - Libreria di image processing: RAPP 0x00000 0x12CA0 480

    640 320 240 <0x00000, 640, 640, 480> <0x12CA0, 640, 320, 240> www.magentalab.it
  15. 2 – Feedback visuale, debug RAPP FixMath VideoSource Params NetHTTP

    Events Licensekey Logs Utils MAGENTA WRAPPER LIBRARY APPLICATION www.magentalab.it
  16. 2 – Feedback visuale, debug RAPP FixMath VideoSource Params NetHTTP

    Events Licensekey Logs Utils MAGENTA WRAPPER LIBRARY APPLICATION Params Net_HTTP Events Licensekey RAPP FixMath ARTPEC3 Capture www.magentalab.it
  17. 2 – Feedback visuale, debug RAPP FixMath VideoSource Params NetHTTP

    Events Licensekey Logs Utils MAGENTA WRAPPER LIBRARY APPLICATION Capture OpenCV SDL X86 Params Net_HTTP Events Licensekey RAPP FixMath www.magentalab.it
  18. 3 - Limitata potenza di calcolo Paradosso: se catturo meno

    frame, riesco ad aumentare il frame rate di lavoro! Frames Processed Per Second Frames Captured Per Second www.magentalab.it
  19. Piattaforma di sviluppo per ACAP Ambiente di sviluppo basato su:

    • Eclipse (Galileo, ..., Indigo, Juno) + CDT • Script ANT, Makefile e bash per l'invocazione del compilatore GCC o CRISV32 e per l'installazione dei binari a bordo camera • Librerie personalizzate in doppia versione: x86 e Artpec3 www.magentalab.it
  20. Vehicle Counter Applicazione per il monitoraggio del traffico: • Raccoglie

    statistiche sul numero e sulla velocità dei veicoli in transito sulle corsie inquadrate • Sviluppata nell'ambito del progetto europeo ORUSSI: Optimal Road sUrveillance based on Scalable vIdeo (Bando ERA-SME 2009 6th call) www.magentalab.it
  21. Vehicle Counter: architettura FS HTTP server Vehicle Counter Event server

    LIST ALARMS GET CONFIGURATION SET CONFIGURATION LIST DATA HTTP REQUEST VEHICLES STATS SPEED STATS ALARMS PROBES CONFIGURATION ALARM EVENTS STOP EVENT www.magentalab.it