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.

(Cliquez ici pour plus d'informations sur cette image.)

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:

(Cliquez ici pour plus d'informations sur cette image.)

Résultat sur 12 images de mon choix:

(Cliquez ici pour plus d'informations sur cette image.)

(Cliquez ici pour plus d'informations sur cette image.)

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

Problèmes et solutions

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