CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Transformation du profil d'une image

spidey15
spidey15
Niveau 13
15 juillet 2021 à 01:47:51

Salut,
J'ai entraîné un réseau de neurone pour analyser des images, il arrive à avoir de plutôt bonnes performances sur son dataset d'apprentissage. Maintenant, je veux l'appliquer à d'autres images qui sont légèrement différentes, et à cause de ça il y arrive beaucoup moins bien.
J'ai pas assez de nouvelles images pour refaire un apprentissage donc j'ai pensé à faire des transformations sur les nouvelles images pour qu'elles ressemblent plus à celles apprises, donc modifier leurs profils (de distribution des couleurs) selon ceux des images que l'algorithme connaît déjà.

En premier une image apprise, en second une autre sur laquelle il a d'assez mauvaises performances :
https://image.noelshack.com/fichiers/2021/28/4/1626305751-001cell.png https://image.noelshack.com/fichiers/2021/28/4/1626305760-image.png

On remarque par exemple que le fond n'est pas de la même couleur.
Le but serait d'avoir un programme qui modifie l'image qu'on lui donne en changeant certaines couleurs, mais je vois pas comment, ni avec quelles librairies on pourrait modifier un profil selon les caractéristiques d'un autre.

Niveau distribution des couleurs, on a quelque chose comme ça pour les images apprises :
https://image.noelshack.com/fichiers/2021/28/4/1626306239-capture2.png
Et ça pour la nouvelle image :
https://image.noelshack.com/fichiers/2021/28/4/1626306256-capture.png

je sais pas trop où aller après ça, des idées ?

Merci

godrik
godrik
Niveau 30
15 juillet 2021 à 05:49:42

La question n'est pas simple du tout. C'est pas une question de bibliotheque. C'est une question de comprendre les modeles mathematiques qui sont derriere les boites noires pour comprendre comment les adapter. De facon general, les methodes de CVs sont super sensible a des tonnes de choses comme ca.

On dirait des images prises avec un different type de camera. Quand mes collegues ont ce genre de problemes, ils commencent en general par regarder si il peuvent simplement faire de l'eq. Apres, il regarde pour appliquer du transfer learning.

Message édité le 15 juillet 2021 à 05:50:32 par godrik
spidey15
spidey15
Niveau 13
15 juillet 2021 à 15:15:45

D'ailleurs en analysant les images dans un éditeur et avec les profils que j'ai mis plus haut, je me suis rendu compte que les "nouvelles images" ont différentes combinaisons de bleu et de vert, tandis que les images apprises sont majoritairement composées uniquement de bleu, avec très peu de rouge ou vert (En regardant le RGB d'un pixel au hasard, il est rare de trouver des valeurs supérieures à 1 ou 2 pour ces couleurs, seule la valeur du bleu varie vraiment) toute l'image est plus ou moins une grosse nuance de bleu.

J'ai pensé à convertir les nouvelles images en échelle de gris, puis reconvertir l'intensité de gris en bleu, ce qui devrait donner des couleurs similaires aux autres, je l'espère.
Ça me paraît assez simple, ça peut valoir le coup d'essayer avant de se lancer dans des idées plus complexes.

Pseudo supprimé
Pseudo supprimé 15 juillet 2021 à 18:20:59

Je comprends rien à ton problème :hap: mais-est ce que t'as pensé à demander de l'aide ici https://www.reddit.com/r/learnmachinelearning/ ?

spidey15
spidey15
Niveau 13
15 juillet 2021 à 18:33:08

Le 15 juillet 2021 à 18:20:59 :
Je comprends rien à ton problème :hap: mais-est ce que t'as pensé à demander de l'aide ici https://www.reddit.com/r/learnmachinelearning/ ?

C'est pas vraiment un problème de machine learning, en gros je veux changer les couleurs d'une image pour qu'elle ressemble plus à une autre. Sur les exemples que j'ai mis les 2 sont similaires mais ont des différences de couleurs, il faudrait pouvoir modifier le fond et les tâches

Proutozorent2
Proutozorent2
Niveau 6
15 juillet 2021 à 21:03:38

Le 15 juillet 2021 à 18:33:08 :

Le 15 juillet 2021 à 18:20:59 :
Je comprends rien à ton problème :hap: mais-est ce que t'as pensé à demander de l'aide ici https://www.reddit.com/r/learnmachinelearning/ ?

C'est pas vraiment un problème de machine learning, en gros je veux changer les couleurs d'une image pour qu'elle ressemble plus à une autre. Sur les exemples que j'ai mis les 2 sont similaires mais ont des différences de couleurs, il faudrait pouvoir modifier le fond et les tâches

Salut je peux t'aider, donne plus de détails sur ce que tu veux faire, si tu veux changer uniquement les couleurs d'une image uniquement en gardant scrupuleusement les formes, dans ce cas tu peux quantifier ta première image : https://stackoverflow.com/questions/5906693/how-to-reduce-the-number-of-colors-in-an-image-with-opencv
plein de méthodes existent et mapper chaque pixel de ta seconde image à la palette réduite de couleurs de ta première image en utilisant la plus courte distance par exemple (knn avec n = 1 limite).
Si par contre tu veux en changer l'aspect pour que ta seconde image ressemble à la fois en terme de couleur et en terme de formes à ta seconde image, là c'est mathématiquement compliqué. Tu vas essayer d'utiliser un réseau pré entraîné et, grâce à des successions de gradients à partir d'une loss bien définie pour comparer une le résultat d'une couche profonde avec comme input ta seconde image à cette même couche mais avec comme input ta première image. Tu vas créer une loss qui comparera ces deux même couches pour qu'elles tendent l'une vers l'autre et appliqueras le gradient à ta seconde image qui deviendra ton input à l'itération suivante : https://arxiv.org/pdf/1701.01036.pdf
Le neural style transfer est super sympa comprendre plein de choses. J'en ai fait une fois mes études terminées et sérieux j'ai malgré tout appris vraiment vraiment beaucoup de choses sur plein d'aspects (j'ai utilisé tensorflow).

spidey15
spidey15
Niveau 13
15 juillet 2021 à 22:21:31

Le 15 juillet 2021 à 21:03:38 :

Le 15 juillet 2021 à 18:33:08 :

Le 15 juillet 2021 à 18:20:59 :
Je comprends rien à ton problème :hap: mais-est ce que t'as pensé à demander de l'aide ici https://www.reddit.com/r/learnmachinelearning/ ?

C'est pas vraiment un problème de machine learning, en gros je veux changer les couleurs d'une image pour qu'elle ressemble plus à une autre. Sur les exemples que j'ai mis les 2 sont similaires mais ont des différences de couleurs, il faudrait pouvoir modifier le fond et les tâches

Salut je peux t'aider, donne plus de détails sur ce que tu veux faire, si tu veux changer uniquement les couleurs d'une image uniquement en gardant scrupuleusement les formes, dans ce cas tu peux quantifier ta première image : https://stackoverflow.com/questions/5906693/how-to-reduce-the-number-of-colors-in-an-image-with-opencv
plein de méthodes existent et mapper chaque pixel de ta seconde image à la palette réduite de couleurs de ta première image en utilisant la plus courte distance par exemple (knn avec n = 1 limite).
Si par contre tu veux en changer l'aspect pour que ta seconde image ressemble à la fois en terme de couleur et en terme de formes à ta seconde image, là c'est mathématiquement compliqué. Tu vas essayer d'utiliser un réseau pré entraîné et, grâce à des successions de gradients à partir d'une loss bien définie pour comparer une le résultat d'une couche profonde avec comme input ta seconde image à cette même couche mais avec comme input ta première image. Tu vas créer une loss qui comparera ces deux même couches pour qu'elles tendent l'une vers l'autre et appliqueras le gradient à ta seconde image qui deviendra ton input à l'itération suivante : https://arxiv.org/pdf/1701.01036.pdf
Le neural style transfer est super sympa comprendre plein de choses. J'en ai fait une fois mes études terminées et sérieux j'ai malgré tout appris vraiment vraiment beaucoup de choses sur plein d'aspects (j'ai utilisé tensorflow).

Pas besoin de modifier les formes, juste les couleurs. J'ai commencé à appliquer la méthode que j'aie décrit plus haut, pour le moment ça fonctionne très bien, quand les conditions sont bonnes.
Par exemple j'ai d'autres images où les tâches bleues ne sont pas aussi claires, après conversion en noir et blanc elles sont trop sombres par rapport aux paramètres que j'ai inséré à la main, il faut que je rajoute une étape pour augmenter l'intensité d'un noyau

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment