¿Es posible mejorar la calidad de las imágenes que tomo a 90 fps?

Estoy usando "Raspicam" ( https://www.raspberrypi.org/documentation/hardware/camera.md ) para un proyecto de robótica, donde necesito obtener tantas imágenes como sea posible en 1 segundo.

La cámara funciona perfectamente bien cuando la uso en modo estacionario. Sin embargo, todo parece bastante oscuro cuando lo cambio a 90 fps, 320x240.

Al final, estaré procesando la imagen, por lo que la baja resolución no es un problema, en realidad es una ventaja para mí. Sin embargo, no puedo comprometer la calidad de los colores, ya que todo el procesamiento dependerá de eso.

Tengo las siguientes propiedades para ajustar:

  • CV_CAP_PROP_BRILLO: [0,100]

dejé esto en modo automático -1

  • CV_CAP_PROP_CONTRASTE: [0,100]

dejé esto en modo automático -1 también

  • CV_CAP_PROP_SATURACIÓN: [0,100]

usado 100

  • CV_CAP_PROP_GAIN: (iso): [0,100]

usado 100

  • CV_CAP_PROP_EXPOSURE: -1 automático. [1100] velocidad de obturación de 0 a 33 ms

usado 100

  • CV_CAP_PROP_WHITE_BALANCE_RED_V: [1100] -1 balance de blancos automático

lo dejó en modo automático (cualquier cosa que no sea cero arruinó la imagen por alguna razón)

  • CV_CAP_PROP_WHITE_BALANCE_BLUE_U: [1100] -1 balance de blancos automático

lo deje en modo automatico

¿Hay alguna forma de mejorar la calidad de las imágenes que obtengo a 90 fps usando esos valores? ¿Qué podría estar causando la oscuridad de mi imagen?

Aquí está la imagen que tengo a 90 fps:

ingrese la descripción de la imagen aquí

Aquí está la imagen que tengo en modo estacionario (la resolución es más alta en esta, solo la subí para mostrar cómo se suponía que se verían los colores reales):

ingrese la descripción de la imagen aquí

Usted enumera las configuraciones, pero no especifica qué valores usó para ellas al tomar las imágenes. ¿Qué configuraciones exactas cambiaste entre las dos imágenes que publicaste?
Solo los agregué.
¿Un CV_CAP_PROP_EXPOSUREvalor de 100corresponde a un obturador de 33 ms? Tal vez me estoy perdiendo algo, pero 90 fps corresponde a una velocidad de obturación máxima absoluta de 1/90 = 0,011111 s = 11,1 ms.
Tienes razón, me lo he perdido. Acabo de configurar la velocidad de obturación en ~ 9 ms, pero lamentablemente eso no solucionó el problema.
Acabo de reconocer que todo tiene algún tipo de corrimiento al rojo. Mis paredes son amarillas, pero parecen rojizas. Todo lo demás se vuelve más oscuro.
Voto para cerrar esta pregunta como fuera de tema porque se trata de visión artificial y procesamiento de imágenes, no de fotografía.
Afirmas que tus objetivos son completamente diferentes del objetivo de producir una fotografía. Dado que de eso se trata este sitio, está fuera de tema. Si estuvieras haciendo un robot con el objetivo de hacer fotografías, ese sería el tema (incluso si involucrara programación).
La cosa es que, sin importar cuál sea mi objetivo, tengo una cámara que produce imágenes de mala calidad por alguna razón. Entonces, necesito preguntarme qué propiedades de la cámara podrían ser la causa, y la gente aquí entiende este concepto. Si hago esta pregunta en stackoverflow, por ejemplo, solo sabrán cómo configuro alguna propiedad de la cámara usando el código. Pero qué propiedad configurar para tener una mejor imagen no es una especialidad de los programadores.
Después de todo, podría haber mentido sobre mi objetivo y haber hecho la misma pregunta, y no estaría fuera de tema con tu opinión. Una pregunta debe dirigirse a las personas adecuadas con el conocimiento adecuado, es por eso que la publiqué aquí. Creo que entiendes propiedades como la ganancia, la velocidad de obturación mucho mejor que nosotros los programadores. Y la calidad de mis imágenes está arruinada debido a la configuración de la cámara, otra toma con la configuración automática produce imágenes perfectamente finas, pero esa configuración es demasiado lenta para mi objetivo. Así que solo quería preguntarme en qué aspectos podría trabajar para producir mejores imágenes.

Respuestas (3)

TL;RD

No mucho realmente. Una velocidad de obturación de 11 ms, en interiores, con poca luz, es una situación difícil incluso para una cámara profesional.


Más extenso

Nota: mi inglés es limitado y solo respondo con la información que pude encontrar sobre Raspicam.

Supongo que está cometiendo el error habitual de confundir la velocidad de fotogramas (fps) con la velocidad de obturación; son similares, pero no relacionados.

La velocidad de obturación es la cantidad de tiempo que el sensor de la cámara está expuesto a la luz: cuanto más tiempo se permita que la luz ingrese a la cámara y golpee el sensor en el interior, más brillante será la imagen final; por ejemplo, una velocidad de obturación de 10 ms significa que el obturador está abierto durante 10 ms y que el sensor recibe luz durante ese tiempo.

La velocidad de fotogramas es, en cambio, la velocidad a la que la cámara graba los fotogramas: sin entrar en demasiados detalles, 90 fps significa que cada 1/90 de segundo la cámara toma cualquier señal que esté en el sensor y genera un nuevo fotograma. No hay duración aquí: lo que está allí está allí.

Entonces, si configura la velocidad de obturación en 11 ms, significa que su obturador se abre, el sensor recibe luz durante 11 ms, luego el obturador se cierra, y así sucesivamente. Y, sinceramente, a 1/90 de la velocidad de obturación en interiores, en condiciones de poca luz y sin flash, no se puede esperar mucho ni siquiera de un buen equipo, y mucho menos de una cámara de juguete como la Raspicam.

Entonces, ¿qué puedes hacer, al final?

Bueno, eso depende.

El Raspi tiene configuraciones separadas para la velocidad de fotogramas y la velocidad de obturación. Así, puedes mantener los 90fps si realmente lo necesitas y cambiar la velocidad de obturación para intentar conseguir algo si las condiciones lo permiten. La teoría establece que la velocidad de obturación debe ser el doble de la velocidad de fotogramas, por lo que para una velocidad de fotogramas de 90 fps (1/90), la velocidad de obturación debe ser de 5,5 ms (1/180); esta es una buena regla general, pero puede ignorarla si los resultados se ajustan a sus necesidades y, por ejemplo, intentar hacer lo contrario. Dudo seriamente que termines con algo bueno, pero aún así, no hay nada de malo en intentarlo.

Entonces, ¿por qué no encuentro este problema de oscuridad en imágenes estacionarias? Quiero decir, para una imagen estacionaria, capta más que suficiente luz. Intenté reducir los fps a 30, pero la calidad no mejoró en absoluto, lo que no esperaba. Empecé a dudar si esto no se debe a los fps altos, tal vez algunas configuraciones se hayan hecho mal en el modo de cámara. Pero como no conozco el concepto, no tengo idea de qué podría estar mal.
Si por "estacionario" te refieres a una imagen fija a través del comando raspistill, tal vez sea porque la imagen fija se produce en modo automático con la cámara eligiendo la configuración correcta para obtener la iluminación adecuada. Por tu comentario, tengo la sensación de que no te interesan mucho los conceptos básicos de la fotografía para entender cómo funciona todo; si realmente planea usar esa cámara, intente hacer una búsqueda rápida en Internet de los términos "velocidad de obturación".
Uh, y por cierto...gracias por la confianza, pero si mi respuesta no te ayudó a solucionar el problema, no la marques como aceptada. Esto alentará a otros a publicar nuevas respuestas (esperemos que sea más efectivo para resolver el problema, entonces) :-)
Su respuesta fue bastante informativa, creo que cubre lo que este sitio puede decir sobre mi problema. Esperaba que la gente aquí pudiera decir lo que faltaba en la imagen oscura por experiencia. Todas las respuestas parecen estar relacionadas con la configuración automática y la velocidad del obturador, pero parece que no es posible decir que falta "..." con solo mirar las imágenes. Entonces, comenzaré convergiendo en la velocidad de obturación y cómo se realizan los ajustes automáticos y veré a dónde me lleva. Muchas gracias de nuevo, fuiste de gran ayuda. :)

Si este problema se puede resolver, esto es probablemente lo que lo causa:

dejé esto en modo automático -1

Dejaste muchos de los ajustes en modo automático. El modo automático significa que cedes mucho control sobre lo que sucede.

Tal vez la cámara no pueda hacer todos los cálculos para todos los modos automáticos cuando se aumenta la velocidad de fotogramas.

Cambie todas las configuraciones a algún valor diferente autopara que obtenga un resultado decente.

Luego intente si aún obtiene los mismos resultados para diferentes velocidades de cuadro.

El mejor enfoque para evitar cambios en los resultados de la imagen (a partir de un escenario estático) es mantener constante la configuración de la cámara.

Esto es más o menos en lo que respecta al alcance de este sitio.


Si el problema persiste, intente usar la cámara con otro software.

Use el software incorporado como se describe en la documentación y vea si tiene el mismo problema con ese software.

Es probable que todo sea un problema de software o hardware, que no está dentro del alcance de este sitio. Intente hacer la pregunta en http://raspberrypi.stackexchange.com , que tiene esta pregunta que parece estar relacionada:

Biblioteca Raspicam C ++: la imagen capturada requiere varias capturas para que sea correctamente brillante

¿Es posible mejorar la calidad de las imágenes que tomo a 90 fps?

Por supuesto. Necesitas agregar más luz.