TP1: Colorisation de l'Empire Russe
Par Pierre-Marc Levasseur
Description
Le but de ce travail est d'aligner des images en utilisant des algorithmes à force brute. Comme ces algorithmes peuvent avoir un temps d'exécution assez long, j'ai développé ma solutions de manière itérative en améliorant mon algorithme à chaque étape du travail (alignement de images à basse résolution, alignement de images à haute résolution, alignement de mes propres images, etc). Je voulais aussi expérimenter avec différentes métriques et en trouver une efficace et performante. Des explications sur la métrique que j'ai choisi sont fournies dans la prochaine section.
Je suis assez satisfait des résultats que j'ai obtenu. J'ai dû expérimenter beaucoup pour en arriver à ces résultats, mais je crois avoir trouvé une approche qui fonctionne sur la majorité des images.
Toutes les images sur cette page peuvent être visionnées en plein écran en cliquant sur celle-ci.
Résultat à une échelle
Voici les résultats en utilisant une approche à une seule échelle. Pour aligner les différentes images, j'ai utilisé la somme des différences absolues. Cette métrique calcule simplement la différence entre chacun des pixels des deux images et fait la somme des valeurs absolues de ceux-ci. J'ai choisi cette métrique puisqu'elle m'a donné de bons résultats et elle est assez performante pour les besoins du travail. Pour plus d'information sur cette métrique, vous pouvez consulter l'article suivant.
L'algorithme que j'ai écris travail seulement sur 50% de l'image pour alléger les calculs. L'algorithme fait donc tout ses calculs de métrique dans un rectangle au centre de l'image.
Cliquez sur les photos pour voir les translations calculées dans le bas de la page.
![](images/result-01880v.jpg)
![](images/result-01657v.jpg)
![](images/result-01031v.jpg)
![](images/result-00911v.jpg)
![](images/result-00907v.jpg)
![](images/result-00889v.jpg)
Résultat à plusieurs échelles
Pour traiter les images à haute résolution, j'ai utilisé la même métrique et le même algorithme avec des appels récursif. J'ai par contre restraint les translations à + ou - 10 pixels pour des raisons de performance.
Résultat sur les images imposées:
![](images/result-01047u.jpg)
![](images/result-01043u.jpg)
![](images/result-00892u.jpg)
![](images/result-00128u.jpg)
![](images/result-00029u.jpg)
![](images/result-00087u.jpg)
Résultat sur 12 images de mon choix:
![](images/result-00005u.jpg)
![](images/result-00006u.jpg)
![](images/result-00007u.jpg)
![](images/result-00008u.jpg)
![](images/result-00009u.jpg)
![](images/result-00010u.jpg)
Résultat sur mes photos!!
Cette section pré les résultats de mon algorithme sur des images que j'ai moi-même prises. J'ai utilisé le même algorithme que dans la section précédente. Pour toutes les images présentées ici, j'ai pris trois photos en bougeant un peu l'appareil. Vous pourrez voir une des photos originales dans la colonne de gauche (celle qui a servi de référence pour aligner les autres) et la version restaurée à droite.
Originaux
Restorations
![](images/Guitare1.jpg)
![](images/result-Guitare.jpg)
![](images/Manette1.jpg)
![](images/result-Manette.jpg)
![](images/Micro1.jpg)
![](images/result-Micro.jpg)
Problèmes et solutions
-
Photo 12
Initialement, je n'ai pas obtenu un bon résultat sur cette image. Le canal rouge n'était pas correctement aligné. J'ai dû calculer la somme des différences absolues sur toute l'image pour obtenir un bon résultat. Puisque le canal rouge était beaucoup plus pâle dans celle-ci, j'ai l'impression qu'il manquait de détail dans 50% de l'image pour faire la comparaison entre ce canal et le canal de référence.
-
Photo 18
Encore une fois, le canal rouge n'était pas correctement aligné lors de mon premier essai. J'ai dû calculer la somme des différences absolues sur toute l'image pour obtenir un bon résultat. Cette fois-ci par contre, je crois que le problème était dû au manque d'information au centre de l'image.
-
Photo 24
Cette photo est bien alignée sauf pour les personnes dans le coin en bas à gauche. Ils semblent avoir bougé un peu entre les prises. C'est pourquoi on voit des défauts d'ombrage.
-
Photo 32
Cette photo est elle aussi bien alignée, mais les couleurs sont très mal balancées. Vous pouvez voir une version corrigé dans la section suivante.
Crédits supplémentaires
Pour améliorer la qualité des images, j'ai appliqué deux traitements supplémentaires. J'ai premièrement coupé les bordures en calculant encore une fois la somme des différences absolues sur les trois canaux de couleur. Cette fois-ci par contre, au lieu de déplacer les canaux par rapport à une référence, j'ai retiré un certain pourcentage des bordures (entre 1 et 10%) et j'ai recalculé le score pour chaque pourcentage retiré sur le reste de l'image. J'ai donc retiré le pourcentage qui avait le meilleure score.
Ensuite, pour balancer les couleur et ajouter un peu de contraste, j'ai utilisé l'égalisation d'histogramme sur chacun des canaux de couleur. Cette technique fonctionne bien sur plusieurs photos, mais les résultat est parfois peu convaincant sur d'autre. Les photos présentée ci-dessous sont quelques exemples de bon résultat.
Avant
Après
![](images/result-00013u.jpg)
![](images/result-00013u-corrected.jpg)
![](images/result-00128u.jpg)
![](images/result-00128u-corrected.jpg)
![](images/result-00012u.jpg)
![](images/result-00012u-corrected.jpg)