PROGRAMMAZIONE AVANZATA DI SISTEMI MOBILI
cod. 1006646

Anno accademico 2018/19
2° anno di corso - Primo semestre
Docente
Andrea PRATI
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Ambito
Ingegneria informatica
Tipologia attività formativa
Caratterizzante
48 ore
di attività frontali
6 crediti
sede: PARMA
insegnamento
in ITALIANO

Obiettivi formativi

Conoscenza e Comprensione
Lo scopo del corso è quello di comprendere come poter realizzare applicazioni (App) avanzate per dispositivi mobili. Oltre alle conoscenze specifiche dei vari linguaggi di programmazione (C++, OpenCV e Java) si acquisiranno conoscenze relative al sistema operativo Android.

Capacità di applicare conoscenza e comprensione
Lo studente acquisirà la capacità di realizzare applicazioni complesse per dispositivi mobili.

Prerequisiti

E' fortemente consigliabile (anche se non obbligatorio) aver seguito il corso di Programmazione di Sistemi Mobili alla triennale.

Contenuti dell'insegnamento

Riallineamento su piattaforme mobili, programmazione di dispositivi mobili e problematiche connesse alla programmazione mobile. Dettaglio della piattaforma Android e delle Android SDK.
Realizzazione di interfaccie grafiche Android mediante widgets. Accessibilità ai sensori mediante Android SDK. Buone pratiche nello sviluppo di App.
Android NDK (Native Development Kit), JNI (Java Native Interface) e IDE di sviluppo Android Studio.
Esempi di applicazioni avanzate possibili.

Introduzione alle applicazioni di mobile vision (visione artificiale applicata a dispositivi mobili).
La libreria OpenCV e il suo interfacciamento con Android: modulo core e il contenitore Mat; modulo imgproc (filtri 2D sulle immagini, morfologia binaria, edge detection, template matching, ecc.); creazione interfacce; feature extraction (Shi-Tomasi, SIFT, SURF, ORB, ecc.); object detection (cascade classifiers, ecc.).
Esempi di progetti OpenCV su dispositivi mobili.

Cenni ad altre applicazioni mobili. Uso dei sensori (accelerometri, giroscopio, .) per applicazioni avanzate.

Programma esteso

Il corso si articola in circa 42 ore di didattica frontale sui seguenti argomenti (durate indicative):
- introduzione al corso; introduzione alla mobile vision e sue applicazioni; introduzione ad Android; Strumenti di sviluppo; emulatore; emulatore GenyMotion (4 ore)
- primo esempio con OpenCV; rappresentazione delle immagini digitali; spazi colore; la classe Mat di OpenCV; Metodi della classe Mat di OpenCV; (3 ore)
- caricamento di un'immagine da file; istogramma di un'immagine; calcolo e visualizzazione dell'istogramma; equalizzazione dell'istogramma (5 ore)
- filtri spaziali: smoothing, order-statistics, sharpening; filtri del primo ordine; implementazione filtri spaziali; edge detection; implementazione Sobel e Canny; Implementazione Canny su immagini live; (4 ore)
- trasformata di Hough e sua implementazione per le rette; widget SeekBar; gestione click e long click; GBHT; trasformata di Hough per i cerchi (2 ore)
- trasformazioni geometriche; esempio GeometryCorrection; evento touch (2 ore)
- feature detection and matching; operatore di Harris; FAST detector; ORB detector; feature description; BRIEF, ORF, BRISK e FREAK descriptors; implementazione dell'image matching; invarianza degli operatori (6 ore)
- presentazione competition e tesine (2 ore)
- SIFT; SURF; Primo esempio NDK; Verifica numero primo in NDK; Interfacciamento NDK-OpenCV - Harris, FAST e ORB in NDK; image matching e stitching in NDK; ricompilazione codice C++ per NDK Android; SIFT, SURF, FREAK e BRIEF (6 ore)
- accesso ai sensori in Android; accelerometro, bussola e sensori ambientali; Uso di bluetooth; uso GPS; (3 ore)
- classificatori; Cascade classifiers (3 ore)
- segmentazione di immagini (2 ore)

Bibliografia

Slide del corso e materiale online.

Metodi didattici

Il corso consisterà di circa 40 ore di didattica frontale (con esempi pratici di programmazione).

Modalità verifica apprendimento

L'esame consisterà nella realizzazione di un'App avanzata da svolgere singolarmente. L'argomento dell'App verrà stabilito insieme al docente.

Altre informazioni

- - -

Obiettivi agenda 2030 per lo sviluppo sostenibile

- - -

Referenti e contatti

Numero verde

800 904 084

Segreteria studenti

E. segreteria.ingarc@unipr.it

Servizio per la qualità della didattica

Manager della didattica: 
Elena Roncai
T.+39 0521 903663
E. servizio dia.didattica@unipr.it
E. del manager elena.roncai@unipr.it

 

Presidente del corso di studio

Stefano Cagnoni
E. stefano.cagnoni@unipr.it
 

Delegato orientamento in ingresso

Agostino Poggi
E. agostino.poggi@unipr.it
 

Delegato orientamento in uscita

Francesco Zanichelli
E. francesco.zanichelli@unipr.it
 

Docenti tutor

Agostino Poggi
E. agostino.poggi@unipr.it

Delegati Erasmus

Luca Consolini
E. luca.consolini@unipr.it
 

Responsabile assicurazione qualità

Francesco Zanichelli
E. francesco.zanichelli@unipr.it

Studenti tutor

Andrea Tagliavini
E. andrea.tagliavini@unipr.it