10 / BTS-SIO / Stage_2026

Stage : Projet Buffallo

Animation d'un coloriage en réalité augmentée

Statut : IN PROGRESS Stack : PYTHON, OPENCV, AE Année : 2026

Le Défi

Cette mission consistait à réaliser un “Proof of concept” pour une commande du client Buffalo Grill : permettre à un enfant de colorier un dessin prédéfini, puis de voir ce coloriage prendre vie sous forme d'animation, en réalité augmentée, en reprenant les couleurs effectivement choisies pour chaque zone du dessin. La contrainte principale était de garder un traitement suffisamment léger pour fonctionner correctement sur un smartphone de milieu de gamme.

Détection du coloriage

La façon dont fonctionne le prototype est assez simple : d’abord, on détecte le marqueur Aruco dont on connaît la position relative au coloriage. Cela permet d'inférer la zone approximative dans laquelle se trouve le coloriage, de plus, le marqueur Aruco étant Noir et Blanc, on corrige les couleurs du reste de l’image grâce à ces données. Cependant, il reste encore à affiner la détection, pour cela, j’ai trouvé une technique efficace:
D’abord, on convertie l’image en noir et blanc, et en partant du principe que le coin gauche est isolé du coloriage, on peut déduire que tout pixel voisin de même couleur fait parti de l’exterieur du coloriage. Grâce à cette déduction, on peut avoir un carré propre qui peut être détecté par un algorithme de détection de contour classique.

Pré traitement

Pour savoir quelle couleur du coloriage correspond a quelle zone de l'animation, il faut créer des masques : dans un premier temps, j'ai généré une animation avec l'IA, puis, j'ai remplacé les couleurs de l'animation avec After effect, enfin, j'ai créé un script python pour nettoyer l'image.

Nouvelle architecture

Enfin, dès que le coloriage est détecté, on peut superposer le masque et l’image pour trouver
quelle couleur du masque correspond à quelle couleur du coloriage. Il suffit alors de
remplacer les couleurs de la vidéo par les couleurs trouvées.

10

Pour permettre de bonne performance, le prototype a ensuite été optimisé pour fonctionner en temps réel, avec un gain de performance significatif de 5 images par seconde vers 15 grâce à plusieurs optimisations. Par exemple le remplacement de certains calculs par des multiplications matricielles, ou le pré calcul des couleurs de chaque image à la place d'un calcul à l'exécution). Le prototype a ensuite été présenté au directeur général de l'entreprise.