Russian Empire Image Colorization Project -- Ryan Allyn Nader -- CS180 FALL 2024

github: https://github.com/berkeleybear22ryan/CS180_Project1

website: https://berkeleybear22ryan.github.io/CS180_Project1/

1. Project Overview and Approach

This project aims to colorize the Prokudin-Gorskii photo collection from the Russian Empire. The collection consists of glass plate negatives with three separate exposures for red, green, and blue color channels. My task is to align these channels and produce a single color image.

Approach:

I implemented several methods for aligning and colorizing the images:

  1. Trivial stack: Simply stacking the three channels without alignment.
  2. Euclidean stack: Using exhaustive search with Euclidean distance as the error metric.
  3. Normalized Cross-Correlation (NCC) stack: Similar to Euclidean, but using NCC as the error metric.
  4. Sobel filter with crop: Applying a Sobel filter to detect edges before alignment, significantly improving speed and results.
  5. Multiscale pyramid with Sobel filter and crop: Combining the Sobel filter approach with a pyramid structure for even faster processing.
  6. Multiscale pyramid (normal): The standard pyramid approach without additional filtering.

Implementation Details:

Challenges and Solutions:

The main challenges were processing speed for high-resolution images and achieving accurate alignment for images with low contrast. I addressed these by:

2. Results on Example Images

Below are the results of my algorithm on all provided example images. The offsets calculated for each image are listed, and the results are displayed using compressed video formats. Each area is selectable.

3. Results on Additional Images

I applied my algorithm to additional images from the Prokudin-Gorskii collection. The results for these images are displayed below:

4. Alignment Failures

My algorithm successfully aligned all provided images. The only issues that showed up are like in the z_extra2.jpeg where because the image is so messy and distored it is very difficult to focus on important outlines as the suns outline is very small and thus have very little effect on reducing the error function so naturally it will focus on parts that it should not.

This also could happen on some lower resolution images as there was less to work with but based on my eye every still looked good given the resolution level.

5. Extra Credit Implementations (Bells and Whistles)

I implemented several extra credit features to enhance the quality and efficiency of my colorization process:

Before and After Comparisons: