Dynamic Closest Color Warping to Sort andCompare Palettes
SIGGRAPH 2021
SUZI KIM and SUNGHEE CHOI, KAIST, Republic of Korea

Why do we need a palette?

Why do we need a palette?
🤢

Why do we need a palette?

Why do we need to sort a palette?

-

Easily create good palettes without professional art skills-

Find color trendings in random combination of colors

What’s the problem to sort a palette?
-How do you define a good colortrending?

-What’s the distance between 2colors?

-Can we separate several palettes
from a bunch of colors?

What we want:

What we don’t want:

Visual Plausibility

Image Compression

Palette Creation

Neural Network

Palette Sorting

Boring Evaluation

Palette Separation
Inner Structure of Colors

Fun Application

Single Palettes SortingSingle Palette Sorting“Nature Order of Colors”:-CIELAB* color space

L*: Luminancea*: Red and Greenb*: Blue and Yellow
CIELAB colorspace is a device independent,“standard observer” model
Reference: Math | EasyRGB

Single Palette Sorting

Convert to LABspace

Calculate distance

Find Shortest Path

Solving Traveling Salesman Problem
Old classic problem from 1930, but still underintensive studying…

-

Iterate through all solution? O(n!)-

Held-Karp Algorithm(Dynamic Programming)-

Genetic Algorithm-Annealing-

Lin–Kernighan heuristic 👍Single Palette Sorting
1. Locate color point in CIELAB space
2. Calculate distance between colors
3. Symmetric Traveling Salesman

Problem
4. Cut the longest edge to flatten theloop into a paletteSingle Palette Sorting is Good Enough?
Our result:

Looks good, but…

Single Palette Sorting is Good Enough?
Our result:

Looks good, but…

Useful palette in real world is nota single flatten row, but an array

Single Palette Sorting is Good Enough?
1. Plenty of colors categorized

into multiple columns
2. Colors in Every column iswell sorted
3. Color trendings in eachcolumn is similar

Two Palettes SortingTwo Palettes SortingTwo Palettes Sortinga. Both well sorted

b. Similar color trending

Two Palettes Sorting
Why do we need to sort two palettes?

Two Palettes Sorting
Why do we need to sort two palettes?
Merge 2 palettes = Merge infinite palettes
PalettePalettePalettePalettePalettePalettePaletteUnordered Messy Colors

Lots of little Palettes

Ordering little Palettes

Beautiful Big Palettes

Unordered Messy Colors

Lots of little Palettes
Two Palettes Sorting

Ordering little Palettes

Beautiful Big Palettes

Two Palettes Sorting1

Two Palettes

Two Palettes Sorting1

Two Palettes

2

Merged Palettes

Two Palettes Sorting1

Two Palettes

2

Sorted Palettes

Two Palettes Sorting1

Two Palettes

2

Sorted Palettes

Two Palettes Sorting1

Two Palettes

2

3

Sorted Palettes

Find the longest edge connecting
the same palette colors

Two Palettes Sorting
3

Find the longest edge connecting
the same palette colors

4

Choose the subpath with fewer
verticesTwo Palettes Sorting
3

Find the longest edge connecting
the same palette colors

4

Choose the subpath with fewer
vertices, and find a cut point

Two Palettes Sorting4

Choose the subpath with fewer
vertices, and find a cut point

5

Flatten into sorted paletteTwo Palettes Sorting1

Two Palettes

5Flatten into sorted paletteTwo Palettes Sorting1

Two Palettes
Different size

5

Flatten into sorted paletteTwo Palettes Sorting1

Two Palettes
Different size

More than 2 palettes

5Flatten into sorted paletteApplication

Palette Interpolation
Random Colors

Sorted Colors

A Good PaletteInterpolation

Palette Extraction

Palette Transfer

Palette Transfer
SourceTargetSorted Target

Adjusted Target

Palette Transfer
SourceTargetSorted Target

Adjusted TargetMy Implementation

Fun Palettes
An application to:
1. Visualize color space
2. Edit and adjust color palette
3. Color palette sorting
4. Save and load palette
5. Create palette from several color
What I expect further:
1. Better methods on solving TSP
2. Palette extraction and transferfrom image

Thank You!