Utilisation de réseaux de neurones pour extraire plusieurs paramètres des images

8

Je veux extraire des paramètres d'une image à l'aide d'un réseau neuronal.

Exemple:

Étant donné l'image d'un mur de briques, le NN devrait extraire la largeur et la hauteur des briques, la couleur et la rugosité.

Je peux générer des images pour des paramètres donnés pour entraîner le NN et je veux l'utiliser pour extraire les paramètres d'une image réelle.

J'ai examiné les CNN. Puis-je effectuer cette tâche avec eux? Ai-je besoin d'algorithmes d'apprentissage spéciaux pour extraire plusieurs paramètres au lieu de la classification? Existe-t-il des NN conçus pour de telles tâches?

H4kor
la source
Pourriez-vous joindre quelques exemples d'images que vous avez en tête? Les CNN peuvent être exagérés pour la tâche, mais d'autre part, cela vaut la peine d'étudier et d'expérimenter si votre priorité absolue est l'utilisation des réseaux de neurones contrairement aux algorithmes CV "traditionnels".
NikoNyrh
@NikoNyrh pourrait fournir des exemples d'images, mais je veux utiliser la technique pour différentes classes de textures. L'objectif est d'extraire les paramètres du shader des images. L'exemple de brique contient principalement des paramètres intuitifs, mais d'autres shaders utiliseront probablement des paramètres qui ne peuvent pas être facilement obtenus par un algorithme bien conçu. Je teste actuellement différentes approches et je voulais essayer les réseaux de neurones car je peux générer des données d'entraînement "infinies".
H4kor

Réponses:

8

Un CNN pourrait être un bon choix pour cette tâche si vous vous attendez à des variations de l'échelle de l'image d'origine, de l'éclairage de rotation, etc., et que vous disposez également de nombreuses données d'entraînement.

L'architecture CNN habituelle est d'avoir des couches convolutives près de l'entrée et des couches entièrement connectées dans la sortie. Ces couches entièrement connectées peuvent avoir la sortie organisée pour différentes tâches de classification ou de régression comme bon vous semble. La prédiction des valeurs des paramètres décrivant l'image est une tâche de régression.

Si vous souhaitez des mesures précises de la taille, vous devrez peut-être éviter d'utiliser des couches de regroupement maximales. Malheureusement, ne pas utiliser la mise en commun rendra votre réseau plus grand et plus difficile à former - vous pourriez vous en sortir avec une convolution étagée si cela vous pose problème.

Si vos images d'entrée sont très simples et claires (car elles sont toujours générées par ordinateur), alors d'autres approches peuvent être plus fiables. Vous pouvez être en mesure de procéder à une ingénierie inverse de la production d'images et de dériver des règles simples telles que l'identification des lignes, des coins, des cercles et d'autres composants d'image faciles à filtrer, et d'effectuer des mesures directes. Il peut également y avoir un terrain d'entente dans la complexité où l'extraction de ces données en tant que fonctionnalités et leur utilisation pour former un NN simple (ou un autre modèle ML) auront de bonnes performances.

Neil Slater
la source