Bonjour tout le monde,
Bon j’vous explique le bail vite fait, je dispose de diverses couleurs. Chacune d’elles définit un et un seul type de dessin : une rivière, un arbre, de la terre, de la roche, du gravier, de l’herbe, du buisson, des fleurs, le ciel, des nuages, etc.
Je veux les mettre dans un canvas vierge et ainsi construire un paysage à base de couleurs, pour des raisons que je ne souhaite pas dévoiler mais qui sont facilement devinables avec un léger background en ML. Le topic ne porte pas du tout sur "comment passer d’une couleur à une photo de l’entité qu’elle représente". (ça je sais déjà le faire en ML et ça marche bien)
L’idée est donc de faire une composition cohérente avec ces couleurs : d’une génération de canvas à une autre, il faut donc :
-
Ne pas utiliser toutes ces couleurs sinon ce serait trop chargé.
-
La proximité entre les différentes couleurs doit être cohérente (pas de nuage au niveau du sol, c’est à peu près la seule contrainte de ce type que je vois).
-
Le paysage doit être cohérent (ressembler à des paysages qu’on a l’habitude de voir, pas trop imaginaires donc incohérents).
-
Le nombre d’occurrences doit être pris en compte d’une génération de canvas à une autre pour produire des paysages différents à chaque fois : en effet on peut avoir un groupe de fleurs à gauche, un autre à droite et au milieu un groupe de terre (donc ici on a deux couleurs de fleurs et une couleur de terre dans le canvas).
-
La localisation d’une couleur donnée doit différer d’une génération de canvas à une autre pour produire des paysages différents à chaque fois.
Pour l’instant mon algorithme (Python) consiste en :
-
Définir avec random integer quel type d’affichage ("layout") utiliser. En gros je pense que je vais définir 2 ou 3 layouts. Un layout définit dans les grandes lignes quelles couleurs peuvent être utilisées et détermine leur localisation (qui sera tout de même légèrement changée par la suite, cf. ci-dessous). Cela permet de satisfaire les points 1, 2 et 3. Un layout dira donc : dans le coin bas gauche on aura une couleur "terrain" (donc roche, ou bien terre, gravier, etc.), dans le coin bas droit et milieu droit une couleur de "végétal" (donc fleurs, ou bien buisson, etc.).
-
Utiliser random integer pour définir la couleur d’un type : c’est là qu’on choisit si la couleur de type "terrain" utilisée sera une roche, ou bien une terre, ou bien un gravier.
-
Utiliser un random integer pour bouger un petit peu la localisation définie par le layout : on satisfait donc le dernier point.
Ma question
Que pensez-vous de ce petit algo ? Y voyez-vous des pbs qui en résulteront lorsque je générerais mes canvas ? Connaissez-vous d’autres façons de faire plus simples, plus rapides et/ou plus efficaces à mettre en place ? Avez-vous connaissance d’études/prototypes/papiers de recherche qui s’y sont déjà intéressés ?
Merci bien. Bonne journée.