|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 343
|
Lente per CMOS camera, tutto bianco a luce ambiente
Ciao a tutti.
Per la mia tesi ho progettato una scheda con camera CMOS, microcontrollore, memoria flash e varie interfacce, da collegare al PC per applicare alcuni algoritmi di image processing, che ho già scritto, sulle foto fatte. Ho impiegato quasi un mese solo per far leggere correttamente l'output della camera al microcontrollore, ottimizzando all'estremo il codice per non perdere neanche un colpo di clock della camera, perché è lentissimo e assolutamente sottodimensionato per l'applicazione, ma me lo hanno imposto senza ascoltare le mie obiezioni al riguardo, quindi cavoli loro (impiega quasi un minuto solo per leggere e memorizzare una singola foto...). Per fare ciò, ho utilizzato come riferimento un'immagine di test predefinita memorizzata nella camera, che ora legge alla perfezione. Ora sto cercando di fare una foto normale. Ho messo una lente alla fotocamera, recuperata da una webcam non funzionante (una di quelle esterne per monitorare le stanze), ma non riesco a vedere nulla a luce ambiente. Mi spiego meglio: oggi ho provato a fare delle foto al buio totale, in cui l'unica fonte di illuminazione era il LED rosso di alimentazione della scheda, a un foglio a una ventina di centimetri dalla fotocamera. Le foto erano accettabili, si distingueva il foglio con l'asticella per tenerlo e le ombre su di esso, la lente era un po' sporca e la messa a fuoco non era proprio perfetta, ma comunque quello che si vedeva era corretto (esempio foto scattata), e a me per ora interessa solo riuscire a vedere qualcosa, ci penserò dopo alla qualità delle immagini. Invece, se provo a scattare una foto a luce ambiente non vedo praticamente nulla, solo foto interamente bianche o luminosissime. Ad esempio, questa l'ho scattata ora in casa mia: foto, a vederla così sembra che ci sia una fortissima luce che viene dall'alto, ma la stanza è illuminata semplicemente da una lampadina da 50W, che non fa neanche molta luce. In ambiente più illuminato, ad esempio di giorno, la foto esce completamente bianca. La CMOS camera ha molti registri interni in cui si possono configurare il gain dei colori, saturazione, luma, luminance, exposure, white balance, ma io non me ne intendo minimamente di queste cose e non so cosa modificare e come. Ho provato a cambiare qualche parametro e il massimo che ho ottenuto è una foto grigiastra con un alone azzurro (al posto della solita foto interamente bianca). Qualcuno di voi, appassionato o esperto di queste cose, sa a cosa può essere dovuto questo comportamento e quali parametri modificare per correggerlo?
__________________
Portatile Asus ROG Strix GL502VSK - Core i7-7700HQ @ 2.8GHz (Turbo 3.8GHz) - 16Gb RAM DDR4-2400 (2x8Gb) - Nvidia GeForce GTX 1070 8Gb - Schermo 120Hz G-SYNC - SSD Samsung 960 PRO NVMe 512Gb - HDD 7200RPM 1Tb "Defeat is not the worst of failures. Not to have tried is the true failure." Ultima modifica di psico88 : 25-09-2012 alle 22:07. |
|
|
|
|
|
#2 |
|
Junior Member
Iscritto dal: Dec 2010
Messaggi: 5
|
Hai qualche modo per controllare il tempo di esposizione del sensore alla luce ?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 343
|
Ecco, un ottimo concetto che non conoscevo. Il tempo di esposizione è quello per fare la foto, la lente è una di quelle per webcam che lascia sempre passare la luce (è questa, tanto per intenderci, è alta un paio di centimetri). Anche il sensore CMOS è uno di quelli per cellulari/webcam, ha una risoluzione di 1280x1024. Il microcontrollore abbinato alla memoria flash sono di una lentezza disarmante, impiegano quasi 50 secondi a leggere e memorizzare una foto... però questo tempo non è costante per tutta l'immagine: praticamente il microcontrollore legge una riga intera della foto e la memorizza della flash, poi passa alla successiva e continua fino alla fine. Quindi le prime righe vengono lette immediatamente, le ultime vengono lette dopo 50 secondi (diciamo che impiega sui 50ms a riga)
EDIT: mi sono letto un po' di pagine sul tempo di esposizione, ho capito cos'è e a cosa serve. In pratica, per ogni foto dovrei regolare il tempo di esposizione del sensore alla luce in base alla luce ambientale, quindi io sono praticamente fregato data la lentezza del sistema nel fare una singola foto. Diciamo che il mio è un ottimo sistema per fare foto notturne, giusto?
__________________
Portatile Asus ROG Strix GL502VSK - Core i7-7700HQ @ 2.8GHz (Turbo 3.8GHz) - 16Gb RAM DDR4-2400 (2x8Gb) - Nvidia GeForce GTX 1070 8Gb - Schermo 120Hz G-SYNC - SSD Samsung 960 PRO NVMe 512Gb - HDD 7200RPM 1Tb "Defeat is not the worst of failures. Not to have tried is the true failure." Ultima modifica di psico88 : 26-09-2012 alle 00:33. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 1999
Messaggi: 3780
|
se il tuo sistema ci mette 50 secondi per "prendere" una foto sei praticamente obbligato a fotografare soggetti che richiedano un tempo di esposizione di 50 secondi o superiore , quindi stelle , pianeti e poco altro.
Per velocizzare la cosa potresti ad esempio non elaborare tutti i pixel ma ad esempio solo una zona 640x480 centrale della webcam. Ad esempio passando da 1280x1024 (1310720 pixel) a 640x480 (307200 pixel) passeresti da un tempo di elaborazione di 50 secondi ad un tempo di elaborazione di 11 secondi circa. Un atra strada potrebbe anche essere quella di vedere se il clock che stai usando per il microcontrollore e' il massimo possibile , molti hanno un clock interno di default , pero' possono accettare anche un segnale da un quarzo esterno con frequenza piu' alta. Comunque e' anche possibile overclockare un pochino i circuiti elettronici curando la stabilita' di alimentazione e raffreddandoli per bene , questo puo' consentire di aumentare la velocita' di funzionamento anche del 10% circa |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 343
|
Sì, potrebbe essere una buona idea quella di leggere solo la parte centrale, ma 11 secondi non è comunque un tempo lunghissimo per un ambiente abbastanza illuminato? Magari potrei provare con 320x256, è una risoluzione ridicola ma dovrebbe far la foto in pochi secondi. Anche se non so esattamente quanto sia un tempo accettabile per un ambiente illuminato, in cui dovrebbe poi lavorare.
La frequenza alla fine non è un problema grandissimo, anche se è veramente al limite delle sue capacità per ora. Il problema più grande è la flash, che è davvero lentissima... nel tempo che impiego a salvare una riga della foto, la fotocamera avrebbe il tempo di inviarmi una foto completa praticamente.
__________________
Portatile Asus ROG Strix GL502VSK - Core i7-7700HQ @ 2.8GHz (Turbo 3.8GHz) - 16Gb RAM DDR4-2400 (2x8Gb) - Nvidia GeForce GTX 1070 8Gb - Schermo 120Hz G-SYNC - SSD Samsung 960 PRO NVMe 512Gb - HDD 7200RPM 1Tb "Defeat is not the worst of failures. Not to have tried is the true failure." Ultima modifica di psico88 : 26-09-2012 alle 02:13. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jun 2003
Città: Padova
Messaggi: 383
|
Quote:
emette soprattutto nell'infrarosso e tra la lente e il CMOS non hai messo un filtro per schermare gli infrarossi che normalmente c'è; e il CMOS gli infrarossi li rileva. Cioè NON questo http://www.hwupgrade.it/forum/showthread.php?t=2281833 che filtra la luce visibile per far vedere gli infrarossi cioè l'opposto di quello che ti serve; ma quello che quì http://www.hoagieshouse.com/IR/ chiamano "Infra Red Filter. It stops IR light getting through to the sensor". Guarda quì dove lo tolgono per riceverli invece gli infrarossi: http://hackaday.com/2006/12/20/digit...ilter-removal/ è questo che ti serve mettere, secondo mè. Ciao
__________________
Lnk ReferendumCostituzionale Ho messo la croce sul NO! per adempiere al mio giuramento militare.
Ultima modifica di Bounty_ : 26-09-2012 alle 07:35. |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 343
|
Hmm, proverò anche questo. Ho trovato un'altra lente che al fondo ha un piccolo vetrino rosso incollato, dovrebbe essere quello che dici tu giusto? foto
__________________
Portatile Asus ROG Strix GL502VSK - Core i7-7700HQ @ 2.8GHz (Turbo 3.8GHz) - 16Gb RAM DDR4-2400 (2x8Gb) - Nvidia GeForce GTX 1070 8Gb - Schermo 120Hz G-SYNC - SSD Samsung 960 PRO NVMe 512Gb - HDD 7200RPM 1Tb "Defeat is not the worst of failures. Not to have tried is the true failure." |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Mar 2002
Città: Castiglione del lago (PG)
Messaggi: 6999
|
Se il problema è il tempo di esposizione, mi dispiace, ma è un disastro! A parte che con 50 secondi di esposizione, la foto sarebbe dovuta venire COMPLETAMENTE BIANCA, anche con 5-6 secondi...
Diciamo che ad una buona ora (le 3-4 del pomeriggio), un buon tempo di esposizione (che però dipenda anche dagli ISO e dall'apertura della lente) si assesta su 1/100 di secondo...anche 1/200 di secondo...quindi non so, ma credo che avrai discreti problemi
__________________
CPU Ryzen 7 7800x3d Cooler Deepcool AK620 Scheda Madre MSI PRO X670 PRam 32 gb DDR 5 Vga Powercolor 9070XT Ali EVGA 700w Monitor Xiaomi Mi2K qhd 165hz |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 343
|
Sì era l'esposizione il problema, sono riuscito a "risolverlo", se così si può dire, abbassando drasticamente il tempo di integrazione della cmos camera, mettendolo quasi al minimo. Ora riesco a fare le foto anche di giorno nonostante i 50 secondi di esposizione. Rimane sempre un sistema lentissimo che sarebbe da rifare tutto con un hardware più veloce, ma così me lo hanno chiesto e così l'ho fatto. Alla fine non sono riuscito a leggere solo la parte centrale del sensore, ci sono i registri per specificare da quale riga e colonna partire ad inviare i pixel ma qualunque cosa ci scrivo fa sempre di testa sua, invia sempre a partire dall'angolo in alto a sinistra
__________________
Portatile Asus ROG Strix GL502VSK - Core i7-7700HQ @ 2.8GHz (Turbo 3.8GHz) - 16Gb RAM DDR4-2400 (2x8Gb) - Nvidia GeForce GTX 1070 8Gb - Schermo 120Hz G-SYNC - SSD Samsung 960 PRO NVMe 512Gb - HDD 7200RPM 1Tb "Defeat is not the worst of failures. Not to have tried is the true failure." |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1911
|
Non conosco l'elettronica che c'è dietro e quindi magari dico una stupidaggine, ma conosco la fotografia: provare a diaframmare la lente? Con un diaframma piuttosto chiuso riduci la quantità di luce totale che colpisce il sensore, quindi i tempi lunghi non sarebbero un problema (ovviamente il soggetto deve essere statico). Inoltre con un diaframma così avresti una notevole profondità di campo risolvendo alla radice il problema della messa a fuoco.
__________________
Un uomo intelligente risolve i problemi Un uomo molto intelligente li previene |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:09.











CIAO 








