TP5: Boris Fortin Côté: Colorisation par gribouillis

Travail inspiré de :
A. Levin D. Lischinski and Y. Weiss Colorization using Optimization.
ACM Transactions on Graphics, Aug 2004.

Ce travail présente une méthode pour rapidement ajouter de la couleur à une image en noir et blanc
simplement en ajoutant quelques traits de couleurs.

Présentation de l'algorithme

L'algorithme prend une image en niveau de gris complète ainsi qu'une version "barbouillée" de la même image.
Comme l'auteur l'explique, le principe est simple :

The under-lying algorithm is based on the simple premise that nearby pixels in space-time that have similar gray levels should also have similar colors.

L'image résultante sera composée de trois canaux, le premier est la luminance: l'information de ce canal provient de l'image en niveau de gris.
Les deux autres canaux représentent la chrominance, contenant l'information sur la couleur de l'image. Cette information devra être calculée par l'algorithme.

Pour trouver ces deux valeurs pour un pixel en particulier, on le compare à ses pixels voisins. Si le canal de luminance d'un voisin est semblable à
celui du pixel à colorer, les deux devraient avoir une couleur similaire. L'impact d'un pixel voisin sur notre pixel est donc ajusté selon leur similarité au niveau de la luminance.
Voici la fonction de pondération utilisée (formule 2 de l'article):

Wrs ∝ e ^(−(Y(r)−Y(s))²/2var²

où Wrs correspond au poids du pixel s sur le pixel r.
Y(s) et Y(r) correspondent à la valeur de luminance des pixels.
et var à la variance

On peut voir que la fonction de pondération utilisée dans mon algorithme est basée sur la différence au carrée entre les canaux de luminance.(Qui sera ajustée pour que la somme des pixels voisins arrive à 1).
À l'échelle de l'image entière, cela signifie qu'il faudra trouver une valeur pour chaque pixel qui, dans l'ensemble, minimisera la différence de couleur entre des pixels voisins similaires.
On utilise simplement mldivide de Matlab pour résoudre le système d'équation qui minimise cette différence, avec les contraintes de couleurs fournies par l'utilisateur pour les deux canaux représentant la couleur.

ESCARGOT

source : Andrew Mroki https://www.pinterest.com/pin/455637687277024687/?from_navigate=true

Escargot couleur artificielle

Barbouillis Résultat Commentaires

Ce premier résultant est intéressant:
On peut voir que l'algorithme est bon pour bien délimiter les éléments de l'image, l'arrière-plan notamment est réussi.
Par contre, deux éléments rendent le résultats moins convaincant. :
- La diversité des couleurs est limitée, on peut voir que l'image a été modifié notamment pour le corps de l'escargot, une couleur uniforme ne donne pas un résultat très réaliste.
- Les couleurs elles-mêmes ne sont pas réalistes, ont a l'impression que l'image a été coloré au marqueur fluorescent

Escargot couleurs réelles

Barbouillis Résultat Commentaires

Une solution pour le problème du choix de couleur est d'utiliser les couleurs de l'images originales, bien entendu l'algorithme n'est pas particulièrement
utile si l'on a l'image originale, mais le résultat mérite l'attention tout de même, considérant que très peu de couleurs ont été échantillonnées.

FRUITS

source : http://gopixdatabase.com/fruit+bowl+black

Barbouillis Résultat Commentaires

L'effet ici est particulièrement réussi.
On peut voir que l'algorithme est plus approprié pour des images avec des zones de couleurs uniformes, plutôt que des motifs comme la coquille de l'escargot
Pour cette raison, les pommes sont les éléments les moins convaincants, à cause du dégradé du rouge et du jaune

Fleurs

Fleurs couleurs artificielles

Barbouillis Résultat Commentaires

J'ai tenté de résoudre les deux problèmes initiaux, en trouvant une photo où les couleurs pourront êtres vives et uniforme pour chaque fleur
Le résultat est intéressant pour plusieurs fleurs! Mais encore ici on peut voir que la plupart des couleurs utilisées ne donne pas un résultats "réalistes", trop fluo..

Fleurs couleurs réelles

source: http://bcater.com/mfc/event/mothers-day-brunch/

Voici une comparaison côte à côte de l'image originale et d'une recontruction avec les couleurs originales. On peut voir que malgré la grande quantité de couleur échantillonée, le résultat aurait encore pu être amélioré. De plus, la similarité de certaines fleurs confond parfois l'algorithme, qui ajoute une teinte non désirée à une fleur.

Barbouillis Avec Agorithme Originale

Images Personnelles, expérimentation

Ici, j'ai essayé tenté de trouver des utilités alternative à l'algorithme, la plupart ont été des échecs, j'en ai conservé 1 pour la postérité.
Mais j'ai tout de même trouvé une utilisation intéressante!

Modification des couleurs d'une section de l'image


Voici un exemple d'effet raté, l'objectif était de changer uniquement la couleur de mon chandail et la couleur de peau. Le résultat est peu convaincant.Le contraste
entre des couleurs réelles et les couleurs artificielles est particulièrement visible et les contours ne sont pas bien définis..

Image Originale Barbouillis Résultats

"Color swap"


Voici une meilleure utilisation de l'algorithme! J'utilise les couleurs déjà présentes dans l'image, mais les appliquent à d'autres objets. Les couleurs restent réalistes et l'effet est amusant.

Image Originale Barbouillis Résultats

Image Bonus: "In Better Times"

source: http://moonionaire.tumblr.com/image/138724198302


Je voulais tenter l'algorithme sur des humains/portraits, voici les résultats. Il est difficile de manipuler les couleurs des visages à cause du nombre élevé de petits traits ou des cheveux, à cause du dégradé de couleur. Par contre, changer les couleurs des vêtements à motifs est simple et convaincant.

Image Originale Barbouillis Résultats