Por @Alvy — 8 de Septiembre de 2009

Frankencamera-1

En la Universidad de Stanford han creado un prototipo llamado Frankencamera, un cámara de código abierto. La idea es que los programadores puedan añadir funciones y algoritmos de tratamiento de la imagen que hoy en día no incorporan las cámaras convencionales, cuyo código es «alto secreto» propiedad de los fabricantes y que los usuarios no pueden habitualmente modificar.

De momento tiene el sensor óptico de una cámara de 5 megapíxeles de Nokia, que no es gran cosa, y el armatoste es de un tamaño descomunal, pero todo se andará. Seguro que se pueden hacer muchas virguerías a nivel de pre-tratamiento de imagen, color y demás, como las que pueden verse en el vídeo de demostración.

Pero el invento estaría genial incluso para funciones ultra simples que seguramente ya podrían incorporar muchas cámaras de fotos de consumo o de gama media y que por misteriosas razones no suelen tener. Entre las que se me ocurren están disparos a intervalos de tiempo programados (cosa que hacen algunos teléfonos Nokia, pero no muchas cámaras Sony) o poder grabar vídeo a más de 30 fotogramas por segundo aunque sea a menos resolución, para conseguir un efecto cámara lenta más digno.

Seguro que la lista de deseos de funciones a incorporar a la «cámara Frankenstein» sería casi infinita, habrá que irla escribiendo...

Compartir en Flipboard  Compartir en Facebook  Tuitear

10 comentarios

#1 — Marcelo

Pregunta: ¿no es más o menos lo que se intenta hacer con el CHDK para las cámaras Canon?

#2 — Marcelo

Pregunta: ¿no es más o menos lo que se intenta hacer con el CHDK para las cámaras Canon?

#3 — Fabio's Arts

wow, mi nokia apenas tiene 0,4 MP que producen una imagen final de 2 MP, pero de todas formas ya me parecece agradable que existan estos proyectos de codigo abierto, me encanta :D

#4 — Manolo

Una de las cosas que pediría en la lista es la posibilidad de ampliar el ISO disponible sacrificando resolución lateral.

La forma más simple de entender esto es la siguiente: activando esta opción, la cámara agruparía los píxeles de 4 en 4 y los convertiría en uno solo sumando la luz que llega a cada uno de ellos.

Con esto multiplicaríamos x4 la luz que nos llega, con lo que estaríamos cuadruplicando la sensibilidad: si nominalmente estábamos en 1600 pasaríamos a 6400.

El precio que hay que pagar sería reducir por 4 la resolución lateral. Esto es, de, por ejemplo, 12 MP pasaríamos a 3 MP, que puede ser suficiente dependiendo de las circunstancias. En cualquier caso, el usuario puede elegir si este sacrificio de resolución se compensa por la mayor cantidad de luz recogida.

Yo echo en falta una opción de este tipo en las cámaras actuales.

#5 — jose manuel rodriguez sánchez

A Manolo:
No tengo yo claro que la luz recogida por 4 pixeles sean el cuadruple de la luz recogida por uno de ellos... bueno, la luz puede que si, pero la información en esta luz es la que no acabo de creer que sea el cuadruple... en que basas tu afirmación?

La óptica y los tiempos de exposición son los que mejoran esa captura de luz pero la agrupación de pixeles no termino de verla, como mucho reducirían el ruido ya que al promediar cuatro pixeles el ruido será menor que el de uno solo...

Por favor, si tienes mas información agradecería que pusieras los links.
gracias y saludos

#6 — Manolo

Para josé manuel, te explico someramente el asunto:

Supongamos que tu sensor es de 12 bits; esto significa que cada punto de imagen se representa con un valor entre 0 y 4095 (por cada canal de color, pero no es necesario complicar las cosas).

Si la foto está correctamente expuesta, tendrás todo el histograma ocupado, es decir, habrá puntos con todos los valores posibles entre 0 y 4095.

Pero ahora supón el siguiente escenario: con la máxima apertura de tu objetivo, a 1600 ASA, tienes que subexponer 2 puntos para poder disparar una escena al límite de la velocidad razonable.

Con 2 puntos menos de exposición, recoges 4 veces menos luz (divide por 2 cada paso de subexposición). Por tanto, tu histograma tendrá valores 0~1024.

Ahora, si los valores de 4 píxeles adyacentes se suman y se recogen como 1 solo píxel, tendremos una imagen con 4 veces menos píxeles, pero cada píxel suma lo de cuatro vecinos. Por ejemplo, en una zona de imagen muy "luminosa", con los valores en torno a 1000 por cada píxel, 4 de ellos vecinos suman ~4000. ¿Lo ves ahora? ¡hemos vuelto a ampliar el histograma!

Es parecido a un promedio. De hecho, todo esto se podría programar por software con el fichero RAW. Pero creo que, si se hace en el momento de recoger la imagen, es posible que se puedan optimizar algunas cosas.

No pongo enlaces porque no sé de otras fuentes. De hecho, esperaba recibir respuestas del tipo "ah, eso lo hace tal marca con tal modelo...", "eso es el modo ISO-extended que implantó tal otra marca" y así tener otras referencias de esta técnica.

#7 — Oscar

Vamos Manolo, lo que viene siendo los modos M-RAW y S-RAW de las Canon. Va a ser que ya está inventado y comercializado.

#8 — IUR

Manolo, creo que José Luis no se refiere exactamente a eso.

Cuatro sensores pequeños reciben la misma cantidad luz que un sensor del cuádruple de su tamaño, evidentemente, pero no siempre pueden emular el comportamiento de un sensor mayor. Por ejemplo, si un sensor necesita recibir una cantidad de luz n para activarse y cada uno de los sensores pequeños recibe n/2, ninguno de ellos registrará nada y su suma será cero. En cambio, un sensor cuatro veces más grande recibiría 2n de luz y sí registraría información.

El ejemplo es un poco extremo y el apaño que comentas podría ser útil en muchas circunstancias, pero habría que ver hasta qué punto.

Saludos.

#9 — Manolo

Oscar, yo es que uso Nikon. ;-)

Pero como ya decía al final de mi comentario #6, tu respuesta es del tipo que estaba esperando. ¡Gracias! Tiraré del hilo que me has dejado.

Esto no invalida mi petición a los papás de Frankestein: ¡que se pueda programar un modo M-RAW / S-RAW como las Canon!

#10 — loxai

pues otra función interesante para anyadir sería poder echar sets de tres (o más) fotos seguidas con distinta apertura para poder sacar versiones HDR (desde el pc o, bueno, ya puestos, generadas en la franken esta :). estaria bien poder crear HDR sin trípode y con las imágenes cercanas en el tiempo...
estuve mirando para hacer tal con el nokia, pero las apis de Java y Python están limitadas, sólo se tiene acceso a las propiedades requeridas mediante C... y bueno... pues eso, por pedir, HDR!