Applicazioni che utilizzano la fotocamera: gli algoritmi di visione artificiale e la libreria openCV

Avete mai notato che la vostra fotocamera a volte non funziona come dovrebbe se attivata da altre applicazioni che non sono di default del dispositivo Android e non soltanto?? Io si soprattutto quando devo inviare le foto da messenger, ma dato che non possiamo sapere che librerie siano state utilizzate da questi sviluppatori non ci resta altro che scegliere le migliori librerie da utilizzare per creare applicazioni che utilizzano la fotocamera a pieno, una di queste è la OpenCV ma prima voglio introdurre gli algoritmi di base della visione artificiale.

Analogie tra occhio umano e sistema di visione artificiale:

Quando un raggio di luce che arriva all’occhio viene rifratto dalla cornea, la luce che entra nell’occhio è messa a fuoco dal cristallino sulla retina, che si trova in fondo. I suoi recettori rilevano l’energia luminosa e, con un processo di trasduzione, generano i potenziali d’azione che viaggiano poi lungo il nervo ottico.

L’occhio è composto da :

  • cornea
  • iride
  • retina
  • cristallino
  • muscolo ciliare

In maniera simile all’occhio, la telecamera/fotocamera trasforma l’immagine in impulsi elettrici e li trasmette all’apparato di elaborazione. La telecamera/fotocamera è composta da un diaframma e una serie di lenti (zoom e fuoco) in grado di modificare l’immagine e direzionarla sul corpo telecamera/fotocamera (tecnicamente chiamato CCD). Il diaframma funziona come la pupilla, ovvero permette il passaggio di più o meno luce per aumentare o diminuire di luminosità l’immagine. La lente di fuoco permette di centrare il fuoco dell’immagine sul CCD ovvero la fovea dell’occhio: con fuoco non in centro al CCD, l’oggetto visualizzato risulta con i contorni non definiti. La lente di zoom determina la quantità di zona visibile; con zoom basso si vede un’area molto grande e quindi il pezzo risulta molto piccolo rispetto ad uno zoom alto in cui il pezzo è invece molto grande.

La visione artificiale è l’insieme dei processi che mirano a creare un modello approssimato del mondo reale partendo da immagini bidimensionali, vi spiego meglio, di base il primo problema affrontato quando si sono montate le prime fotocamere nei dispositivi mobile era la cattura della realtà in maniera che si potessero distinguere i soggetti della foto, la soluzione fu l’introduzione di fotocamere sempre più con alta risoluzione sensibilità e velocità di acquisizione di immagini.

Il problema attuale che affronta la visione artificiale è la possibilità di interpretare e utilizzare correttamente le informazioni acquisite; ad esempio il riconoscimento facciale è uno di questi.In particolare il problema sta nel convertire un’immagine in informazioni oggettive estraendone il contenuto dalla pura rappresentazione luminosa; Il risultato dell’elaborazione è il riconoscimento di determinate caratteristiche dell’immagine per le finalità di cui si necessita.

I problemi classici della visione artificiale sono:

  • Determinare se l’immagine contiene o no determinati oggetti o attività.
  • Ricostruzione della scena, ovvero la ricostruzione di un modello 3D date o due o più immagini 2D.

In quest’ottica per far fronte a queste problematiche si hanno bisogno degli strumenti e uno di questi sono le librerie, tra le quali la più importante è la OpenCV (clicca qui)  (open computer vision).

La OpenCV (Android clicca qui per altre info) è un progetto nato da un gruppo di ricerca sponsorizzato da Intel,dal quale ha ereditato alcuni aspetto dell’Intel Image Processing Lybrary, si avvale di numerosi contributi che vanno dai ricercatori del MIT, fino ai docenti della berkeley University.

Uno dei punti di forza della libreria è l’utilizzo della licenza in stile BSD (Berkeley Software Distribution prima licenza UNIX), famiglia di licenze software permissive delle quali molte vengono considerate Open Source.

Le OpenCV hanno come utilizzo primario è collegato alla visione artificiale, il cui problema principale ,come ho già detto, è quello di estrarre delle immagini dati significanti e trattabili in modo automatico.

Attualmente la libreria include più di 300 funzioni, le quali coprono le più svariate esigenze:

  • Trattamento di immagini
  • Funzioni matematiche ottimizzate
  • Completo pacchetto di algebra matriciale

Tutte le funzioni della libreria sono accomunate dal prefisso “CV”, mentre i nomi delle classi utilizzate hanno prefisso “Cv”(con la C maiuscola), ad eccezione della IplImage, ereditata come si vede dl nome della libreria Ipl. La libreria inoltre è dotata di diverse strutture dati come CvMat (matrici numeriche), IplImage (buffer immagine), CvMemStorage (Buffer dinamici), CvSeq (liste dinamiche), grafi e alberi; con le necessarie funzioni di gestione. E’ inoltre disponibile un completo ventaglio di funzioni di disegno diretto: linee, ellissi , poligonali, testo, ecc. Nel caso in cui ci fosse la necessità di ricorrere a librerie dedicate, specifiche per la gestione dell’hardware adottato le funzioni della libreria permettono un facile scambio di dati con oggetti provenienti da altre librerie.

Uno degli algoritmi che contengono queste librerie è Canny, in grado di identificare gli spigoli dell’immagine, cioè zone di confine tra aree differenti.

Leggi Anche:

Seguiteci anche su Facebook, Google Plus, Tumblr e Twitter, per restare sempre in contatto con noi e con le nostre guide.

Sono una studentessa, la mia passione è la tecnologia in generale,in particolare la robotica è la mia materia, spero di trasmettere la mia passione a voi e che vi divertiate in questo blog

Applicazioni che utilizzano la fotocamera: gli algoritmi di visione artificiale e la libreria openCV ultima modifica: 2015-07-03T15:46:16+00:00 da Lovely Salviato