TP1: COLORISATION DE L'EMPIRE RUSSE

Par Michael Bonenfant

1- APERÇU

Ce projet vise à restaurer des photographies à trois canaux prisent avec des filtres de couleur en une seule image couleur. Les photographies utilisées proviennent de la collection du photographe Sergei Mikhailovich Prokudin-Gorskii qui prit des centaines de photos de l'ancien empire russe. Ses travaux sont maintenant numérisées, conservées et disponible sur le site web de la Librairie du Congrès. Les détails de la méthode utilisée seront expliqués dans les sections suivantes. L'image plus bas est un bon exemple du résultat de l'algorithme utilisé pour la restauration, on y vois le photographe Gorskii lui même devant un paysage Russe.

Image: 01468u Alignement: Rx 174, Ry 37, Gx 76, Gy 28

2- APPROCHE À UNE SEULE ÉCHELLE

L'idée est de découper l'image originale en trois sections pour obtenir une image par canal, donc une image de niveau de gris avec filtre rouge, vert et bleu. Ensuite, ces trois images doivent être alignées et combinées pour former l'image finale en couleur. L'alignement se fait en vérifiant la différence entre un canal de référence (le bleu est utilisé) et les deux autres canaux. Pour ce faire, l'algorithme utilise la somme des différences au carré (SDC) en essayant différentes positions (+/- 15 pixels). En minimisant cette différence, on obtient le meilleur alignement. Pour augmenter la fiabilité et la précision de l'alignement, l'image est d’abord traitée, on élimine temporairement les bordures et on applique un filtre de Canny pour détecter les arêtes. Une autre approche analysée fut de binariser l'image après avoir ajusté le niveau d'intensité, cette approche rendait une très bonne performance sur un petit désalignement, mais de mauvais résultats sur de grands désalignements. C'est pourquoi cette dernière technique fut conservée, mais utilisé après que l'image soit alignée avec la technique de détection des arrêtes, ce dernier ajustement permet de corriger les derniers petits défaut d'alignements.

Image: 01588v Alignement: Rx 16, Ry 2, Gx 9, Gy 1

Image: 01673v Alignement: Rx 14, Ry -2, Gx 6, Gy -1

Image: 00907v Alignement: Rx 6, Ry -1, Gx 2, Gy 0

Image: 00888v Alignement: Rx 12, Ry 1, Gx 6, Gy 1

Image: 01657v Alignement: Rx 12, Ry 1, Gx 5, Gy 1

Image: 01264v Alignement: Rx 8, Ry 3, Gx 3, Gy 2

Image: 01031v Alignement: Rx 4, Ry 2, Gx 1, Gy 1

Image: 00106v Alignement: Rx 9, Ry -1, Gx 4, Gy 1

Image: 00757v Alignement: Rx 5, Ry 5, Gx 2, Gy 3

Image: 01619v Alignement: Rx , Ry , Gx , Gy

Image: 01880v Alignement: Rx 14, Ry 4, Gx 6, Gy 2

Image: 01903v Alignement: Rx 14, Ry -1, Gx 6, Gy 0

Image: 00911v Alignement: Rx 13, Ry -1, Gx 1, Gy -1

Image: 00889v Alignement: Rx 4, Ry 3, Gx 1, Gy 2

3- APPROCHE À ÉCHELLES MULTIPLES

La méthode précédente rend habituellement de bons résultats sur les images de basse résolution, mais est limitée sur les images de grande résolution, car l'alignement est de seulement 15 pixels au maximum. Augmenter cette limite augmenterait aussi grandement le temps de traitement. L'approche utilisée est donc d'aligner l'image à plusieurs échelles. La résolution de l'image est premièrement calculée puis l'échelle initiale et le nombre déplacement en pixel sont ajustés en fonction. Ensuite, l'image est réduite puis l'algorithme d'alignement précédent est appliqué à cette échelle, on refait l'opération pour toutes les échelles en additionnant le déplacement de l'échelle précédente. On obtient donc le même résultat avec la même méthode que pour une image de basse résolution, mais avec une application récursive.

Image: 01043u Alignement: Rx 10, Ry 18, Gx -16, Gy 10

Image: 00747u Alignement: Rx 108, Ry -32, Gx 40, Gy -5

Image: 01047u Alignement: Rx 70, Ry 33, Gx 23, Gy 19

Image: 00955u Alignement: Rx 55, Ry 30, Gx 22, Gy 17

Image: 00087u Alignement: Rx 108, Ry 66, Gx 49, Gy 47

Image: 00128u Alignement: Rx 49, Ry 37, Gx 33, Gy 22

Image: 00458u Alignement: Rx 87, Ry 30, Gx 42, Gy 5

Image: 00737u Alignement: Rx 48, Ry 13, Gx 14, Gy 4

Image: 00822u Alignement: Rx 122, Ry 34, Gx 54, Gy 25

Image: 00872u Alignement: Rx -18, Ry -24, Gx -30, Gy -13

Image: 00892u Alignement: Rx 41, Ry 3, Gx 16, Gy 2

Image: 01135u Alignement: Rx 119, Ry -18, Gx 58, Gy 0

Image: 00029u Alignement: Rx 88, Ry 35, Gx 38, Gy 18

Image: 01335u Alignement: Rx 130, Ry 31, Gx 59, Gy 26

4- RECADRAGE

L'alignement des images produit souvent une bordure indésirable de couleur variée. Cette bordure peut être détectée et éliminée automatiquement. Pour effectuer cette tâche la méthode de détection utilisée fut de calculer la variance des lignes dans les différents canaux. Lorsque la ligne analysée se trouve sur une bordure de couleur, au moins un des canaux présente une variance minime entre la valeur d’intensité des pixels de cette ligne. Si c'est le cas, la ligne est simplement effacée. L'opération se répète jusqu'à ce que les trois canaux de couleurs présentent des variances plus hautes que le seuil fixé. On remarque que la performance de l'algorithme est différente sur les images.

Image originale

Image recadrée automatiquement

5- AJUSTEMENTS

Différents ajustements ont été apportés pour améliorer le rendu de l'image finale. Pour ne pas trop altérer l'information de la photographie initiale, ces changements sont légers. Un filtrage médian est effectué pour éliminer un certain bruit et quelques petits défauts sans trop altérer l'image. Ce filtrage n'est automatiquement effectué que sur les images ayant une résolution plus grande que le seuil fixé. Ensuite un léger ajustement du contraste permet d'obtenir des couleurs plus vives et de meilleurs contrastes. Pour obtenir un meilleur résultat, la restauration des images devrait être personnalisée pour chaque photographie.

Image originale

Image ajustée

Zoom Image originale

Zoom Image ajustée

6- UTILISATION SUR PHOTOS RÉCENTES

L'algorithme utilisé sur les photographies en noir et blanc fut utilisé sur des images prises avec un appareil moderne. Pour obtenir trois canaux de couleurs, une série de photographies ont été prises en mode rafale pour éviter le mouvement entre les images. Trois images ont ensuite été séparées en leurs composantes pour n'en conserver qu'une par image pour la reconstitution. Ces trois images ont servi d'entrée à l'algorithme de restauration pour obtenir un alignement et la restauration d'une image couleur. Bien sur, même avec un alignement parfait, si la scène présente un mouvement, ont observe un décalage des canaux. Sur la première image, on voit un mouvement de la scène et de la prise de vue, sur la deuxième image on voit un mouvement d'une voiture et sur la dernière image aucun décalage n'est observé, car le mouvement du sujet est inexistant!

Mario

Voiture

Tortue

Tortue R,G,B

CONCLUSION

Il est très intéressant de constater toutes les possibilités que les techniques et la technologie moderne peuvent nous apporter. Grâce à un algorithme assez simple, il est possible de restaurer automatiquement des photographies prises il y a plus d'un siècle. L'environnement Matlab fut utilisé lors de ce projet, il s'est avéré un outil de traitement d'image simple et puissant. Par contre, il serait probablement possible de réduire le temps de calcul en utilisant un autre langage de programmation plus approprié au traitement de données.