PDA

View Full Version : [C] Scrivere un codice per riconoscimento di persone - digital image processing


techfede
18-08-2016, 13:25
Salve a tutti, per prima cosa spero che questa sia la sezione giusta (forse era più adatta quella sul digital imaging, ma il punto principale qua è la programmazione).
Sto cercando indicazioni e suggerimenti su come scrivere un programma, in C, che mi permetta di identificare figure umane da uno stream video (spiego meglio dopo), quindi deve saper classificare una figura umana da una non umana (ergo non mi interessa riconoscere una persona specifica).
Il segnale sarebbe acquisito da un sensore molto simile al Kinect, il quale penso mi fornisca una mappa di profondità, e credo anche una nuvola di punti (qui non sono sicurissimo, ma in ogni caso credo che dei calcoli sulle nuvole di punti siano troppo complessi per processori low power che vorrei utilizzare).

Per il momento ho visto che ci sono funzioni interessanti nella libreria OpenCV, anche se non ho trovato una documentazione adeguata, ma le ho viste solo tramite esempi di codice da altri utenti.

Se avete qualcosa da consigliarmi sono tutt'occhi, e se voleste taggare qualcuno che ne possa sapere di più mi fareste un gran piacere :) saluti a tutti.

ingframin
18-08-2016, 15:27
Puoi spiegare esattamente che devi fare e come vuoi farlo?
Su che processore vuoi farlo?
Che sensore vuoi usare?
Perché proprio in C?
Hai un minimo di basi di signal processing?
Cosa c'è che di "non adeguato" in questa docuementazione?
http://docs.opencv.org/3.1.0/#gsc.tab=0
https://www.intorobotics.com/how-to-detect-and-track-object-with-opencv/
http://www.pyimagesearch.com/2015/11/09/pedestrian-detection-opencv/
http://www.codeproject.com/Questions/788799/Human-detection-using-opencv

Ci sono anche 1000000000000000000000000000000000 libri su OpenCV.

Considera inoltre che la computer vision è piuttosto onerosa in termini di risorse hardware, quindi se stai pensando di farlo con Arduino, lascia perdere...

techfede
20-08-2016, 14:36
Puoi spiegare esattamente che devi fare e come vuoi farlo?
Su che processore vuoi farlo?
Che sensore vuoi usare?
Perché proprio in C?
Hai un minimo di basi di signal processing?
Cosa c'è che di "non adeguato" in questa docuementazione?
http://docs.opencv.org/3.1.0/#gsc.tab=0
https://www.intorobotics.com/how-to-detect-and-track-object-with-opencv/
http://www.pyimagesearch.com/2015/11/09/pedestrian-detection-opencv/
http://www.codeproject.com/Questions/788799/Human-detection-using-opencv

Ci sono anche 1000000000000000000000000000000000 libri su OpenCV.

Considera inoltre che la computer vision è piuttosto onerosa in termini di risorse hardware, quindi se stai pensando di farlo con Arduino, lascia perdere...

Ciao, intanto grazie per la risposta :)
Intanto: si, le basi di signal processing le dovrei avere.
Il processore e il sensore al momento non li ho sotto mano, non ricordo i modelli esatti, ma ricordo che per la board che farà il processing purtroppo serve per forza il c.
Di "non adeguato" ci sarebbe che cercavo una funzione specifica (chamfer matching, dovrebbe essere chamerMatching(...) ) e non la trovo. Cerco questa in particolare perché seguo alcuni paper che ho trovato sul sito della IEEE, e ho visto che la funzione esiste in opencv, come si vede da questo (https://github.com/kipr/opencv/blob/master/samples/cpp/chamfer.cpp) esempio.
Non sono ancora andato oltre nella ricerca delle librerie / risorse / funzioni da utilizzare, ma volevo prima capirci un po' di più.

Per ora mi basta fare qualcosa che funzioni, dopo lavorerò su ottimizzazione del codice e sullo sfruttamento di eventuali vincoli che permettano di diminuire l'onere computazionale.