11 de enero de 2011

¿Como funciona el sensor de una camara digital?

Un elemento vital de cualquier sistema de visión artificial es la cámara digital que permite obtener la imagen que luego sera tratada mediante algoritmos y que finalmente permitirán obtener características relevantes para tomar decisiones en un sistema.

Aunque no es necesario si es importante que conozcamos un poco acerca de como las cámaras digitales pueden transformar los objetos que vemos en nuestro ambiente en matrices llenas de datos.


- ¿Que es un megapixel? 

A pesar de que escuchamos o leemos casi todos los días sobre nuevas cámaras digitales o los nuevos modelos de celulares con cámara y nos maravillamos con sus características, realmente no es de conocimiento general que significa cada una de de esas características que nos nombran al momento de seleccionar un producto de este tipo.

Entre estas características se encuentran el numero de megapixeles con los que cuenta la cámara. ¿Pero que es exactamente un megapixel?... Bueno por una lado sabemos que un píxel es el elemento mas pequeño de una imagen digital ( píxel viene de picture element que significa elemento de imagen) por lo tanto podemos inferir que un megapixel es un millon de pixeles.

Las cámaras digitales tienen una parte conocida como sensor de imagen digital. Este sensor tiene una cantidad muy grande de huecos muy pequeños que cuando se exponen a la luz almacenan fotones. Cada uno de estos huecos va a formar un pixel de la imagen resultante que nosotros vamos a ver. Por lo tanto si una cámara tiene un sensor con 3888 píxeles de ancho y 2592 píxeles de alto quiere decir que la cámara cuenta en total con 10,077,696 píxeles o lo que es lo mismo 10.07 megapíxeles. (3888*2592=10,077,969).

- ¿Como funciona este sensor?

El sensor de una cámara digital se compone básicamente de 3 capas.

1- El substrato del sensor


Este es un material de silicio que mide la intensidad de la luz. Este sensor no es para nada plano, tiene cierta cantidad de huecos que permiten atrapar la luz al momento de tomar la foto para ser medida posteriormente. Cada uno de estos huecos es un píxel en la imagen resultante.

2- Filtro de Bayer


Esta es una capa de colores que esta pegada al substrato para permitir grabar los colores. El sensor solo permite medir la cantidad de fotones que entran mas no permite saber el color de cada uno de estos fotones. Por lo tanto el sensor  por si solo obtiene información en escala de grises.

El filtro de Bayer fue desarrollado por el doctor Bryce E. Bayer en 1976 mientras trabajaba para Kodak. El invento una matriz de colores (rojo, verde y azul) que permite capturar la información del color que entra en el sensor de una camara.

Filtro de Bayer
El filtro de bayer (también conocido como matriz de filtro de colores o CFA "color filter array") actúa como una pantalla que solo deja pasar al sensor los fotones de cierto color. Si se mira la imagen se puede notar que el filtro esta formado por filas que alternan entre el rojo/ verde y azul/verde dando por resultado que los filtro de Bayer estan compuestos en su mayoría por el color verde (hay dos veces mas verde que azul o rojo) esto es debido a que el ojo humano es mas sensible al verde (Investigaciones realizadas por Sony e implementadas en su sensor CCD RGBE demuestran que el ojo humano es mas sensible a una variedad especifica del verde, exactamente el verde esmeralda).

El hecho de que el filtro solo deje pasar un solo color, implica que cada píxel que la cámara obtiene posee un solo color, por lo que se esta perdiendo 2/3 de la información. Pero de esta manera que puede parecer no muy eficiente, cada pixel sabe cuanta cantidad de luz tiene y de que color es. Por ejemplo, si un píxel que tiene encima suyo un filtro rojo y el sensor almaceno 5000 fotones, se puede inferir con seguridad que estos 5000 fotones  que tiene almacenados son de una luz roja por lo que se puede proceder a hacer el calculo de intensidad (cada color se ubica en una escala de 0 a 255 osea 1 byte).

Vista de las cavidades del sensor.

Sensor unido al filtro de Bayer dejando pasar la luz de un solo color por cada píxel.

3- Microlentes


La tercera capa que compone el sensor de una cámara son los microlentes. Estos son pequeños lentes ayudan a captar la máxima luz posible en cada píxel.
Como se ve en las imágenes anteriores existe un espacio entre píxel y píxel por lo que la luz que llega a estos espacios es información que se esta perdiendo. Por esta razón se colocan lentes que ayuden a compensar la existencia de estos espacios y ayuden a redireccionar la mayor cantidad de luz posible.

Sensor con el filtro de Bayer y los microlentes.

---------------------------------------------------------------------------------------------------------------------------------

- Si los sensores solo captan 1/3 de la luz y sus colores, ¿Como es que nosotros vemos las imágenes digitales con todos los colores?

Existen métodos que permiten reconstruir la información faltante basándose en la información existente que provee el sensor de la cámara.

El método usado se llama interpolación cromática (Gracias por el termino al amigo que lo puso en los comentarios). En simples términos el proceso consiste en lo siguiente: Imaginemos que la cámara trata cada conjunto de píxeles de 2x2 como si fuera uno solo (dos verdes, uno azul y uno rojo) de la siguiente manera

Sección que toma la cámara para determinar el color real.
Usando estos 4 píxeles la cámara puede estimar el color real basándose en los niveles de intensidad de color de cada píxel.

Para explicar el proceso cada píxel va a tener un nombre. G1, B1, R1 y G2.
Después de tomarse la foto los píxeles están llenos de fotones, en ese momento comienzan los cálculos (¿se dan cuenta que cuando se toma una foto con una cámara digital, pasa un tiempo entre tomar la foto y ver la foto en el display de la cámara?... ese es el tiempo que se toma la cámara en realizar el procedimiento que describiré a continuación).

Tomemos como referencia G1 y miremos que sucede. G1 habla con B1, averigua cuantos fotones azules tiene y los suma a sus fotones verdes. Luego G1 habla con R1 y con G2 y hace exactamente lo mismo.Ahora G1 usa esa información que recogió  para mostrar el color verdadero que le corresponde haciendo una especie de promedio. A la vez, mientras G1 le preguntaba a cada píxel su cantidad de fotones, también les entregaba la información de cuantos fotones tenia él para que los otros píxeles realizaran el mismo calculo que el hizo.

Pero esa no es toda la historia, ahora imaginemos que la cámara hace grupos de 3x3 para realizar el procedimiento anterior lo cual quiere decir que cada píxel va a tener mas información para realizar su calculo por lo que va a ser mas exacto (cada píxel tiene 8 alrededor que le van a brindar información para realizar sus cálculos).
Basándonos en la distribución de los colores del filtro de Bayer podemos saber que se van a presentar 3 casos.

Cuando el píxel del centro es el verde

Cuando el píxel del centro es el rojo

Cuando el píxel del centro es el azul
Esta no es la historia completa, pero es lo básico. La forma en que cada cámara realiza los cálculos varia según el modelos, la marca y el tipo de sensor.

- ¿Y que pasa con los píxeles que están en los bordes?, ¿Como realizan los cálculos si tienen menos píxeles alrededor?


Digamos que nos paramos en el píxel de la esquina superior izquierda del sensor. Si lo miramos bien, nos daremos cuenta que solo tiene 3 píxeles a quienes pedirle la información. De todo esto nos damos cuenta que los píxeles en las esquinas y en los bordes están en desventaja al tener menos información para realizar sus cálculos.
Esta es precisamente la diferencia entre los píxeles reales y los píxeles efectivos. Los píxeles reales son la cantidad de píxeles que tiene un sensor. Sin embargo no todos los píxeles son usados para formar la imagen digital. Los píxeles de los bordes y las esquinas son usados para brindar información a los píxeles de adentro mas no para ser mostrados en la imagen ya que carecen de información lo cual los hace mas inexactos. Discriminando estos píxeles podemos afirmar que cada píxel usado para crear la imagen contiene la misma cantidad de información para crear su color real.

Por esta razón, alguna veces cuando leemos las especificaciones de una cámara, dice píxeles efectivos: 10.1 megapíxeles , número total de píxeles: 10.5 megapíxeles.
 
Los 400,000 píxeles de diferencia son los usados para crear la imagen pero no son mostrados en la imagen resultante. Por lo que ahora sabemos que una cámara tiene mas píxeles de los que son mostrados realmente en la imagen que nos provee.

Traducción y Adaptación. Rafael Poveda

Fuentes:
http://www.sensorland.com/HowPage090.html
http://www.cambridgeincolour.com/tutorials/camera-sensors.htm
http://www.imaging-resource.com/NEWS/1181811769.html
http://es.wikipedia.org/wiki/Sensor_de_imagen
Interpolación de imagenes - Diego Mauricio Rivera, Universidad Nacional de Colombia

2 comentarios:

  1. De acuerdo con wikipedia, demosaicing se traduce como "interpolación cromática".

    ResponderEliminar
  2. excelente explicación, relatada claramente por alguien que entendió el tema y no copio y pego de otro lado, muchas gracias

    ResponderEliminar