[lnkForumImage]
Download FREE Software.

Confronta i prezzi di migliaia di prodotti.
News Forum Italiano
 Home | Login | Registrati | Ricerca 


 

Forums >

it.comp.giochi.sviluppo

Piccola divagazione su Time of Flight Camera

Gianpaolo Ingegneri

29/09/2010 15:10:11

Facendo delle ricerche ho scoperto che la camera del Kinetic (in passato
Project Natal) si basa su un modello più economico di videocamera poco
accessibile al vasto pubblico: le Time Of Flight Cameras. Ho visto che su
internet ci sono diversi video di applicazioni molto buone di background
subtraction, human detection, gesture recognition e tant'altro. Riporto una
lista dei modelli di ToF Camera attualmente reperibili sul mercato:

CanestaVision
D-imager
FOTONIC-B70
Optrima
PMD[vision]
SwissRanger
3D MLI Sensor
TriDiCam

Il fatto incoraggiante è che tutti questi prodotti vengano venduti assieme
ai rispettivi driver per PC, anche se i prezzi sono decisamente alti. Avevo
puntato gli occhi su un modello di ToF Camera: la SwissRanger 4000. Ho tolto
subito lo sguardo quando ho visto che il prezzo da listino era 9090$
(abbastanza costoso). Adesso ho trovato un video interessante di un tizio
che si è procurato una Fotonic-B70 ed ha usato OpenCV per programmare un
controller umano simile a quello del Kinetic (potremmo vederlo come una
sorta di prova sperimentale che l'idea ha motivo di esistere):

Create your own Project Natal / Kinect game:
http://www.youtube.com/watch?v=Z...

Credo che sia piuttosto interessante. Cercavo informazioni sul prezzo del
Fotonic-B70 ma ho trovato solo un piccolo data sheet che vi mando in
allegato assieme ai datasheet di altre tof camere. La cosa che mi ha fatto
storcere il naso è la risoluzione un po' bassina (160x120), al contrario mi
è sembrata abbastanza discreta la precisione (0.5 cm con un range da 0.5 a 1
metro; 1cm con un range da 1,5 a 3 metri; 5 cm con un range da 3 a 7 metri).
L'interfaccia è una normalissima USB 2.0, poi il fatto che un tizio che non
è Bill Gates sia riuscito ad usarla senza problemi con OpenCV mi fa ben
sperare. Magari le specifiche tecniche non sono fantastiche però almeno sono
chiare e può darsi che abbiano un prezzo più contenuto rispetto ai prodotti
da 10 mila dollari, considerato che del kinetic (essendo un giocattolo)
ancora non si hanno dati sperimentali.

Personalmente credo che le ToF Camera aprano un interessante capitolo nel
campo della computer vision in generale, così come recitano i venditori di
tali dispositivi:

- About Security / Surveillance

Segmentation of 2D images is highly dependent on illumination conditions and
is difficult to achieve in many cases. The third dimension that is delivered
by our cameras allows for much easier segmentation of images. This allows
for example to determine the presence, location, and number of persons or
objects in a target zone and to address efficiently following applications
in the field of security and surveillance:

* Person-counting at secured gates for detection of tail-gating or
undesired intrusions.
* Person-counting at airports and in mass-transit systems for security
or statistical purposes.
* Object surveillance or detection in sensitive areas.

- About Automotive Industry

Add sensors to the vehicle and avoid collisions with blind-spot detection
and pedestrian detection. Those are the improvements waiting just around the
corner. When calculating the distance from the sensor to objects in real
time, a three-dimensional image can be used for a number of other features
to improve vehicles. With 60 pictures per second, any sudden motions or
movements in the car's surroundings are detected in an instant.

- About Robotics

The diverse world of mobile robotics has been in search of real-time
electronic eyes that closely mimic the behavior of the human eyes. The use
of the MESA products avoids the shortcomings of alternative solutions -
which suffer from the need for bulky stereoscopic cameras or laser scanners.
These compute-intensive options suffer from a high degree of software
processing and their results are often ambiguous. A single MESA camera
allows a single compact sensor to serve as a highly capable input device in
many robotic applications:

* Autonomously guided vehicles, with improved obstacle identification
and avoidance, for map building, localization, and path planning.
* Service robots in both industrial and consumer applications.
* Industrial robots in assembly, quality control monitoring, material
handling, and automation.

Le applicazioni più interessanti si potrebbero realizzare usando prodotti
tipo la SwissRanger 4000 che ha un range che va da 0 a 10 metri con
precisione millimetrica (ottimo per la videosorveglianza). Tuttavia, il
corto raggio dei prodotti meno costosi (compresi il kinetic) rendono questo
dispositivo più accessibile per i videogiochi o per tutti quei
riconoscimenti che possono essere fatti a corta distanza.

L'idea di una luce frontale a infrarossi potrebbe essere utilizzata senza la
stima del tempo di volo per l'eliminazione delle ombre o di falsi positivi
dovuti a sorgenti di luce presenti nella stanza. In effetti la mia webcam ha
una luce accecante ed è davvero fastidiosa, forse l'idea di renderla
invisibile (a infrarossi) non è tanto male.

Saluti.


13 Risposte

Gianpaolo Ingegneri

29/09/2010 15:15:33

0

Dovevo mandare questa email ad alcuni colleghi e per errore l'ho postata
qua, quindi niente allegati ;-P Fortuna che parlavo solo di argomenti
tecnici, stavolta mi è andata bene. Se volete potete ignorare questo post.
;-)


Carnefrisca

29/09/2010 15:57:42

0

Il 29/09/2010 17.15, Gianpaolo Ingegneri ha scritto:
> Dovevo mandare questa email ad alcuni colleghi e per errore l'ho postata
> qua, quindi niente allegati ;-P Fortuna che parlavo solo di argomenti
> tecnici, stavolta mi è andata bene. Se volete potete ignorare questo post.
> ;-)
>
>

beh...
alla fine è interessante.

non fosse altro che ultimamente mi stavo dedicando a cose del genere...

anzi, visto che a quanto pare la cosa te la sei studiata per bene. Quei
modelli da te segnalati hanno gli stessi problemi di lag come nel caso
del kinect?

--
http://carnefrisca.bl...
http://frischfleisch.devi...

Gianpaolo Ingegneri

29/09/2010 18:32:43

0


> beh...
> alla fine è interessante.
>
> non fosse altro che ultimamente mi stavo dedicando a cose del genere...

Per caso hai qualche fantastico modello di tof cam tra le mani?

> anzi, visto che a quanto pare la cosa te la sei studiata per bene. Quei
> modelli da te segnalati hanno gli stessi problemi di lag come nel caso del
> kinect?

Ho sentito parlare del lag del kinetic ma secondo me è più una questione di
software. Alcuni dicono che ci saranno tipo 2 frames di lag a 30 frame al
secondo (67 ms di lag) altri dicono che supera i 100 ms ma mi sembra
eccessivo. Dal punto di vista hardware non c'è alcun motivo perchè la zcam
debba tardare di due o più fotogrammi visto che funziona come una normale
videocamera.

Per questi dispositivi il parametro che determina la velocità si chiama
Integration Time e può andare da 0.1 a 50 ms (i valori più alti determinano
una maggiore precisione). Ad esempio la Fotonic-B70 ha un valore di massimo
40 ms, quindi significa che può andare a 25 fps usando la massima
precisione. Ovviamente il lag minimo è pari a questo integration time,
perchè è il tempo minimo di attesa per avere un'immagine in output dalla
quale estrarre le informazioni per il movimento. Certo più lentamente estrai
le informazioni più il lag aumenta. Non ho il datasheet del kinetic, però
tutto questo ritardo dei fotogrammi potrebbe essere dato dagli algoritmi via
software per la human detection, gesture recognition, eccetera, il che
potrebbe derivare dalla loro pesantezza o semplicemente dall'averli
programmati senza ottimizzare.

Il problema si crea dunque con la sincronizzazione tra acquisizione,
elaborazione e motore 3D. Per fare un esempio: la zcam ci sta 34 ms ad
acquisire, l'algoritmo di recognition ci sta 33 ms e deve aspettare che sia
pronto l'input della zcam prima di funzionare, così come il videogioco
aspetta che l'algoritmo di recognition abbia finito prima di aggiornare il
movimento. In questo modo si crea un ritardo di 67 ms, perchè ben 33 ms
derivano dalla lentezza della recognition. E bada che questo lag può
verificarsi anche con il multithreading, perchè è pur vero che si mantiene
la fluidità facendo lavorare i processi in parallelo ma un processo deve
comunque attendere che l'altro abbia finito prima di prelevare le
informazioni. In questo caso mi spiego un lag di 2 o più fotogrammi.


(Matteo Perenzoni)

29/09/2010 18:51:09

0

On 29 Set, 20:32, "Gianpaolo Ingegneri"
<gingegneri82_NOSP...@hotmail.it> wrote:
> > beh...
> > alla fine è interessante.
>
> > non fosse altro che ultimamente mi stavo dedicando a cose del genere...
>
> Per caso hai qualche fantastico modello di tof cam tra le mani?
>
> > anzi, visto che a quanto pare la cosa te la sei studiata per bene. Quei
> > modelli da te segnalati hanno gli stessi problemi di lag come nel caso del
> > kinect?
>
> Ho sentito parlare del lag del kinetic ma secondo me è più una questione di
> software. Alcuni dicono che ci saranno tipo 2 frames di lag a 30 frame al
> secondo (67 ms di lag) altri dicono che supera i 100 ms ma mi sembra
> eccessivo. Dal punto di vista hardware non c'è alcun motivo perchè la zcam
> debba tardare di due o più fotogrammi visto che funziona come una normale
> videocamera.
>
> Per questi dispositivi il parametro che determina la velocità si chiama
> Integration Time e può andare da 0.1 a 50 ms (i valori più alti determinano
> una maggiore precisione). Ad esempio la Fotonic-B70 ha un valore di massimo
> 40 ms, quindi significa che può andare a 25 fps usando la massima
> precisione. Ovviamente il lag minimo è pari a questo integration time,
> perchè è il tempo minimo di attesa per avere un'immagine in output dalla
> quale estrarre le informazioni per il movimento. Certo più lentamente estrai
> le informazioni più il lag aumenta. Non ho il datasheet del kinetic, però
> tutto questo ritardo dei fotogrammi potrebbe essere dato dagli algoritmi via
> software per la human detection, gesture recognition, eccetera, il che
> potrebbe derivare dalla loro pesantezza o semplicemente dall'averli
> programmati senza ottimizzare.
>
> Il problema si crea dunque con la sincronizzazione tra acquisizione,
> elaborazione e motore 3D. Per fare un esempio: la zcam ci sta 34 ms ad
> acquisire, l'algoritmo di recognition ci sta 33 ms e deve aspettare che sia
> pronto l'input della zcam prima di funzionare, così come il videogioco
> aspetta che l'algoritmo di recognition abbia finito prima di aggiornare il
> movimento. In questo modo si crea un ritardo di 67 ms, perchè ben 33 ms
> derivano dalla lentezza della recognition. E bada che questo lag può
> verificarsi anche con il multithreading, perchè è pur vero che si mantiene
> la fluidità facendo lavorare i processi in parallelo ma un processo deve
> comunque attendere che l'altro abbia finito prima di prelevare le
> informazioni. In questo caso mi spiego un lag di 2 o più fotogrammi.

Nonostante il post "sbagliato", hai dato una sferzata al ng :)
Poi mi colpisci nel vivo perchè di telecamere TOF ne ho progettate un
paio...
Posso dirvi subito che (per quello che ho capito) la Kinect non è una
TOF ma una proiezione di frange: un pattern (magari anche più) viene
proiettato sulla scena e con una carretta di processing viene estratta
la distanza (il che è hardware, nello scatolotto della camera, ma
potrebbe essere responsabile del lag). Tecnicamente rientra nella
categoria di camere basate su triangolazione/geometria. La camera è
convenzionale, quindi la risoluzione è buona. Anche il costo... si
mormora che il prezzo si aggirerà sui 150euro. Sul fronte gaming,
spazzerà via tutti, ne sono sicuro.
Sulle telecamere veramente TOF, non sperate di vedere risoluzioni
molto elevate o framerate elevati, la fisica lo impedisce. Serve un
pixel grande per prendere più luce in ritorno, lo standard è sui
30-40um. Anche se noi abbiamo il record di 10um e 80fps, ma non sullo
stesso tipo :)
Chi vincerà? :P
________________________
Matteo
http://fuzzware.alte...
"A man with a new idea is a crank until the idea succeds" - M. Twain

Gianpaolo Ingegneri

29/09/2010 20:15:47

0


> Nonostante il post "sbagliato", hai dato una sferzata al ng :)
> Poi mi colpisci nel vivo perchè di telecamere TOF ne ho progettate un
> paio...
> Posso dirvi subito che (per quello che ho capito) la Kinect non è una
> TOF ma una proiezione di frange: un pattern (magari anche più) viene
> proiettato sulla scena e con una carretta di processing viene estratta
> la distanza (il che è hardware, nello scatolotto della camera, ma
> potrebbe essere responsabile del lag). Tecnicamente rientra nella
> categoria di camere basate su triangolazione/geometria. La camera è
> convenzionale, quindi la risoluzione è buona. Anche il costo... si
> mormora che il prezzo si aggirerà sui 150euro. Sul fronte gaming,
> spazzerà via tutti, ne sono sicuro.
> Sulle telecamere veramente TOF, non sperate di vedere risoluzioni
> molto elevate o framerate elevati, la fisica lo impedisce. Serve un
> pixel grande per prendere più luce in ritorno, lo standard è sui
> 30-40um. Anche se noi abbiamo il record di 10um e 80fps, ma non sullo
> stesso tipo :)
> Chi vincerà? :P

Adesso sei tu ad interessare me, e di brutto :-) Se hai costruito tali
dispositivi saprai di certo quanto costano, se è così ti prego di
illuminarmi... anzi procuramene uno che mi serve! :-P

Per quanto riguarda il Kinect ho detto che è basato su una TOF perchè in
passato avevo letto su qualche articolo che la Microsoft avrebbe usato la
tecnologia della ZCam, ma saranno state solo voci di corridoio. Leggendo su
wikipedia mi rendo conto che è proprio come dici tu.

Ho letto che la lunghezza d'onda degli infrarossi usati in questi
dispositivi si aggira sugli 800 nm, questo è perchè non si deve entrare
nello spettro della radiazione termica? (900-14000 nm). Se è così, potrei
costruire una camera basata sulla proiezione del pattern e successiva
elaborazione dell'immagine acquisita? In passato ho programmato degli
algoritmi di background modelling per il people tracking e stavo pensando di
adottare questa tecnica per l'eliminazione dei falsi positivi dovuti ad
ombre e riflessi. Secondo te è meglio il faidate oppure esistono delle
soluzioni già collaudate a costi contenuti?


(Matteo Perenzoni)

30/09/2010 06:43:42

0

On 29 Set, 22:15, "Gianpaolo Ingegneri"
<gingegneri82_NOSP...@hotmail.it> wrote:
> > Nonostante il post "sbagliato", hai dato una sferzata al ng :)
> > Poi mi colpisci nel vivo perchè di telecamere TOF ne ho progettate un
> > paio...
> > Posso dirvi subito che (per quello che ho capito) la Kinect non è una
> > TOF ma una proiezione di frange: un pattern (magari anche più) viene
> > proiettato sulla scena e con una carretta di processing viene estratta
> > la distanza (il che è hardware, nello scatolotto della camera, ma
> > potrebbe essere responsabile del lag). Tecnicamente rientra nella
> > categoria di camere basate su triangolazione/geometria. La camera è
> > convenzionale, quindi la risoluzione è buona. Anche il costo... si
> > mormora che il prezzo si aggirerà sui 150euro. Sul fronte gaming,
> > spazzerà via tutti, ne sono sicuro.
> > Sulle telecamere veramente TOF, non sperate di vedere risoluzioni
> > molto elevate o framerate elevati, la fisica lo impedisce. Serve un
> > pixel grande per prendere più luce in ritorno, lo standard è sui
> > 30-40um. Anche se noi abbiamo il record di 10um e 80fps, ma non sullo
> > stesso tipo :)
> > Chi vincerà? :P
>
> Adesso sei tu ad interessare me, e di brutto :-) Se hai costruito tali
> dispositivi saprai di certo quanto costano, se è così ti prego di
> illuminarmi... anzi procuramene uno che mi serve! :-P
>
> Per quanto riguarda il Kinect ho detto che è basato su una TOF perchè in
> passato avevo letto su qualche articolo che la Microsoft avrebbe usato la
> tecnologia della ZCam, ma saranno state solo voci di corridoio. Leggendo su
> wikipedia mi rendo conto che è proprio come dici tu.
>
> Ho letto che la lunghezza d'onda degli infrarossi usati in questi
> dispositivi si aggira sugli 800 nm, questo è perchè non si deve entrare
> nello spettro della radiazione termica? (900-14000 nm). Se è così, potrei
> costruire una camera basata sulla proiezione del pattern e successiva
> elaborazione dell'immagine acquisita? In passato ho programmato degli
> algoritmi di background modelling per il people tracking e stavo pensando di
> adottare questa tecnica per l'eliminazione dei falsi positivi dovuti ad
> ombre e riflessi. Secondo te è meglio il faidate oppure esistono delle
> soluzioni già collaudate a costi contenuti?- Nascondi testo citato
>
> - Mostra testo citato -

Eh eh potessi averci fatto dei soldini... lavoro in un centro di
ricerca quindi non abbiamo prodotti, ma tecnologie a disposizione di
chi il prodotto lo vuole fare...

Pero' ti spiego subito perche' le TOF costano: i volumi di produzione.
Per chi non ha idea dell'ordine di grandezza del costo fisso della
produzione di un chip custom, ci aggiriamo su alcune centinaia di
migliaia di euro inclusi i costi di sviluppo: chiaro che per
ammortizzare questi costi, o c'e' un mercato da milioni di pezzi
oppure il singolo chip ti viene a costare non meno di qualche
centinaio o migliaio di euro, per piccolo che sia.

Tieni conto che la Mesa e' veramente una delle migliori sul mercato,
in termini di prestazioni (tra l'altro, sono stati i primi). Se cerchi
qualcosa di piu' economico, con un ragionamento in base alla
tecnologia usata, forse Optrima offre buone possibilita'. Il nostro
prototipo (http://soi.fbk.eu/en/technologie...) e' ancora
troppo prototipo, invece :)

Se vuoi farti una cosa tutta tua, la proiezione di frange non e' una
cosa impossibile, dipende da come te la cavi in ottica :) ... a meno
che non trovi un qualcosa di gia' fatto. L'uso degli 800-900 nanometri
e' dato dalla necessita' di non infastidire l'utente con luce
visibile, e allo stesso tempo poter usare telecamere in silicio: il
silicio e' cieco sopra i 1100nm. Le tecnologie militari usano 1.5um e
InGaAs, ma il costo e' tutto un altro (anche la risoluzione pero'!!)

Sono OT? Beh non credo che gli altri 3 utenti del ng se la prendano...
________________________
Matteo
http://fuzzware.alte...
"A man with a new idea is a crank until the idea succeds" - M. Twain

Carnefrisca

30/09/2010 07:56:24

0

Il 30/09/2010 8.43, Matteo Perenzoni ha scritto:
> Sono OT? Beh non credo che gli altri 3 utenti del ng se la prendano...

beh...
mica tanto dai...

visto che ora anche nel game development sta prendendo piede questa
tecnologia.

--
http://carnefrisca.bl...
http://frischfleisch.devi...

Gianpaolo Ingegneri

30/09/2010 13:32:52

0

> Eh eh potessi averci fatto dei soldini... lavoro in un centro di
> ricerca quindi non abbiamo prodotti, ma tecnologie a disposizione di
> chi il prodotto lo vuole fare...

> Pero' ti spiego subito perche' le TOF costano: i volumi di produzione.
> Per chi non ha idea dell'ordine di grandezza del costo fisso della
> produzione di un chip custom, ci aggiriamo su alcune centinaia di
> migliaia di euro inclusi i costi di sviluppo: chiaro che per
> ammortizzare questi costi, o c'e' un mercato da milioni di pezzi
> oppure il singolo chip ti viene a costare non meno di qualche
> centinaio o migliaio di euro, per piccolo che sia.

> Tieni conto che la Mesa e' veramente una delle migliori sul mercato,
> in termini di prestazioni (tra l'altro, sono stati i primi). Se cerchi
> qualcosa di piu' economico, con un ragionamento in base alla
> tecnologia usata, forse Optrima offre buone possibilita'. Il nostro
> prototipo (http://soi.fbk.eu/en/technologie...) e' ancora
> troppo prototipo, invece :)

> Se vuoi farti una cosa tutta tua, la proiezione di frange non e' una
> cosa impossibile, dipende da come te la cavi in ottica :) ... a meno
> che non trovi un qualcosa di gia' fatto. L'uso degli 800-900 nanometri
> e' dato dalla necessita' di non infastidire l'utente con luce
> visibile, e allo stesso tempo poter usare telecamere in silicio: il
> silicio e' cieco sopra i 1100nm. Le tecnologie militari usano 1.5um e
> InGaAs, ma il costo e' tutto un altro (anche la risoluzione pero'!!)

Sei stato molto gentile e preciso nel darmi queste informazioni, sono
contento di aver mandato questo messaggio per sbaglio :-)

> Sono OT? Beh non credo che gli altri 3 utenti del ng se la prendano...

Ma figurati, anzi, siamo più in tema di quando si parla di motori 3d o
algoritmi che non c'entrano niente coi videogiochi ;-)


Carnefrisca

30/09/2010 14:45:45

0

Il 30/09/2010 15.32, Gianpaolo Ingegneri ha scritto:
>> Eh eh potessi averci fatto dei soldini... lavoro in un centro di
>> ricerca quindi non abbiamo prodotti, ma tecnologie a disposizione di
>> chi il prodotto lo vuole fare...
>
>> Pero' ti spiego subito perche' le TOF costano: i volumi di produzione.
>> Per chi non ha idea dell'ordine di grandezza del costo fisso della
>> produzione di un chip custom, ci aggiriamo su alcune centinaia di
>> migliaia di euro inclusi i costi di sviluppo: chiaro che per
>> ammortizzare questi costi, o c'e' un mercato da milioni di pezzi
>> oppure il singolo chip ti viene a costare non meno di qualche
>> centinaio o migliaio di euro, per piccolo che sia.
>
>> Tieni conto che la Mesa e' veramente una delle migliori sul mercato,
>> in termini di prestazioni (tra l'altro, sono stati i primi). Se cerchi
>> qualcosa di piu' economico, con un ragionamento in base alla
>> tecnologia usata, forse Optrima offre buone possibilita'. Il nostro
>> prototipo (http://soi.fbk.eu/en/technologie...) e' ancora
>> troppo prototipo, invece :)
>
>> Se vuoi farti una cosa tutta tua, la proiezione di frange non e' una
>> cosa impossibile, dipende da come te la cavi in ottica :) ... a meno
>> che non trovi un qualcosa di gia' fatto. L'uso degli 800-900 nanometri
>> e' dato dalla necessita' di non infastidire l'utente con luce
>> visibile, e allo stesso tempo poter usare telecamere in silicio: il
>> silicio e' cieco sopra i 1100nm. Le tecnologie militari usano 1.5um e
>> InGaAs, ma il costo e' tutto un altro (anche la risoluzione pero'!!)
>
> Sei stato molto gentile e preciso nel darmi queste informazioni, sono
> contento di aver mandato questo messaggio per sbaglio :-)
>
>> Sono OT? Beh non credo che gli altri 3 utenti del ng se la prendano...
>
> Ma figurati, anzi, siamo più in tema di quando si parla di motori 3d o
> algoritmi che non c'entrano niente coi videogiochi ;-)
>
>

e vabbè...
almeno in 3 gatti diamo un pò di vita a questo gruppo.
anche perchè, datemi il tempo di finire di studiare alcune cose e
comincerò a mitragliarvi di domande :P


--
http://carnefrisca.bl...
http://frischfleisch.devi...

Gianpaolo Ingegneri

03/10/2010 17:08:20

0

> Tieni conto che la Mesa e' veramente una delle migliori sul mercato,
> in termini di prestazioni (tra l'altro, sono stati i primi). Se cerchi
> qualcosa di piu' economico, con un ragionamento in base alla
> tecnologia usata, forse Optrima offre buone possibilita'. Il nostro
> prototipo (http://soi.fbk.eu/en/technologie...) e' ancora
> troppo prototipo, invece :)

Hai un'idea orientativa sul costo? Finora non ho trovato nulla al di
sotto dei 4000 euro. Arrivati a questo punto si potrebbe smontare
il Kinect e pagare un ingegnere elettronico esperto per farti una
modifica. La cosa che mi fa smuovere i nervi è che non scrivono
il prezzo.