Facultad de Ingeniería Universidad de la República Tratamiento de imágenes por computadora PROYECTO FINAL DE CURSO ENTREGA 1 – PLAN DE TRABAJO Colorización Montevideo, Junio de 2008 Rodrigo Alonso Pablo Iturralde 4.217.650-6 4.171.131-1 1 A. Introducción y objetivos generales Por colorización se denomina al proceso de pasar de una imagen o conjunto de imágenes monocromática, es decir, imágenes en escala de grises, sepia u otros, a una imagen o conjunto de imágenes en color. El objetivo general es poder obtener imágenes a color utilizando para ello cierta información de color brindada por el usuario. Actualmente existen algunas técnicas para lograr esta transformación de las imágenes. El objetivo de esta práctica es estudiarlas lo más exhaustivamente posible cada una de ellas, y obtener alguna implementación de modo de poder colorizar imágenes por nuestra cuenta. B. Algunos trabajos y técnicas existentes La primera referencia al proceso de colorización data de 1970, cuando Wilson Markle inventa el primer proceso de colorización, acto seguido funda la empresa Colorization Inc, que llevara a color por ejemplo, la misión apollo que aterrizo en la luna. Básicamente, en aquel trabajo se mostraba un algoritmo para pasar a color filmaciones de películas o programas de TV que originalmente habían sido filmados en blanco y negro. A modo de anécdota cabe mencionar que a la hora de buscar información sobre colorización en los distintos medios disponibles, los resultados que se obtienen más comúnmente refieren a una controversia artística sobre si agregarle color a programas y películas en blanco y negro no atenta contra el valor artístico de las mismas, y si las compañías propietarias tienen derecho a hacerlo o no. En principio, el tema se presta para cierta controversia a nivel artístico. Desde entonces se han publicado varios artículos sobre el tema y actualmente los algoritmos más utilizados (incluyendo algún software comercial como BlackMagic, o alguno más conocido como el Photoshop) comparten un paradigma que requiere de segmentar previamente la imagen para distinguir entre objetos, para luego, mediante una participación activa del usuario, ir asignando una noción del color en cada una de las áreas que resultan de la segmentación (requiere al menos un pixel por área) y de ahí la colorización se realiza de forma automática. Otro enfoque se puede encontrar en [Levin, Lischinski, Weiss] de 2004, donde los autores proponen un nuevo algoritmo que no requiere de segmentación y mantiene al mínimo la participación de un usuario humano. Sin embargo, en todos los trabajos hay algunos elementos que se mantienen constantes: primero, que la imagen original tiene menos información de la que se quiere tener en la imagen final, por lo que es necesario incluirla de alguna manera y por lo tanto parece improbable poder lograr esto sin ninguna participación de un actor humano. Esta información puede o no ser 'verdadera', en el sentido que los colores que se marcan (por parte del usuario y la posterior colorización) sean realmente los colores que tenían los objetos originales, y esto da lugar a procesamientos para cambiar colores o retocar imágenes antes de la versión final. Otra constante es la necesidad de establecer una noción de distancia o función de costo a minimizar para obtener una imagen colorizada coherente con la imagen en blanco y negro, o sea, que a priori se espera que los pixeles más oscuros en la imagen 2 en B&W sean también más oscuros en la imagen color, o también en otras palabras, esperamos que la luminancia de la imagen color coincida con la imagen B&W. C. Imágenes típicas A continuación, y a modo de ejemplificar el objetivo final del trabajo, y el problema que se intenta atacar, se muestran dos imágenes típicas para el proceso de colorización. El usuario dispone los colores sobre ciertas áreas de la imagen, esta información es utilizada por el algoritmo de colorización automática para obtener una imagen final. Fig.1 – Izquierda: Imagen original con algunos colores ingresados por el usuario - Derecha: Imagen final luego del proceso de colorización. Fig.2 – Izquierda: Imagen original con algunos colores ingresados por el usuario - Derecha: Imagen final luego del proceso de colorización. En estas imágenes mostradas, se puede apreciar claramente la intensión primaria del proyecto. Como se mencionó, existen varias técnicas para lograr la colorización de la imagen. La mayoría de éstas, requieren el auxilio del usuario brindando cierta información de color para algunas zonas, como se muestra en las figuras que aparecen sobre la izquierda en ambas imágenes, figuras en donde el usuario ya ha ingresado esta información manualmente sobre la imagen original en blanco y negro. 3 D. Cronograma • • • • • • • 13/6 – 23/6: Explorar bibliografía disponible, para llegar a un conocimiento aceptable respecto de las técnicas utilizadas en colorización. Preparar presentación inicial. 24/6: Presentación inicial. 25/6 – 05/7: Implementación de al menos un algoritmo de colorización en Matlab. Comparación con algoritmos existentes. 06/7 – 14/7: Comenzar documentación del proyecto, preparación de la presentación final. 11/7 ó 15/7: Presentación final. 16/7 – 23/7: Terminación de la documentación y página web del proyecto. 24/7: Entrega del CD. E. Bibliografía tentativa • • • • • Colorization using Optimization – Anat Levin, Dani Lischinski, Yair Weiss [Levin, Lischinski, Weiss] - School of Computer Science and Engineering - The Hebrew University of Jerusalem. Manga Colorization – Yingge Qu, Tien-Tsin Wong, Pheng-Ann Heng [Qu, Wong, Weiss] - The Chinese University of Hong Kong. Fast Colorization Using Edge and Gradient Constrains – Yao Li, Ma Lizhuang, Wu Di – [Li, Lizhuang, Di] - Electrical Engineering Department, Shanghai Jiao Tong University. Inpainting the colors – Guillermo Sapiro – [Sapiro] – Institute for mathematics and its applications, University of Minnesota Distintos artículos publicados en el IEEE, lo cuales no hemos conseguido el acceso aún. 4