2

J'ai une image avec 8 canaux. J'ai un algorithme conventionnel où des poids sont ajoutés à chacun de ces canaux pour obtenir une sortie comme '0' ou '1'.Cela fonctionne bien avec plusieurs échantillons et scénarios complexes. Je voudrais implémenter la même chose dans Machine Learning en utilisant la méthode CNN.Comment appliquer CNN pour des pondérations de données de pixels multicanaux à chaque canal?

Je suis nouveau à ML et a commencé à chercher les tutoriels qui semblent être exclusivement consacrées au traitement d'image problèmes-reconnaissance d'écriture à la main, extraction de caractéristiques, etc.

http://cv-tricks.com/tensorflow-tutorial/training-convolutional-neural-network-for-image-classification/

https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/neural_networks.html

Je configurer les Keras avec Theano comme arrière-plan. Les échantillons de base de Keras fonctionnent sans problème.

Quelles étapes dois-je suivre pour obtenir le même résultat en utilisant CNN? Je ne comprends pas l'utilisation des filtres, des noyaux, de la foulée dans mon cas d'utilisation.Comment fournissons-nous des données de formation à Keras si les valeurs de canal de pixel et la sortie sont dans le formulaire ci-dessous?

Pixel # 1 f (C1, C2 ... C8) = 1

Pixel # 2 f (C1, C2 ... C8) = 1

Pixel # 3 f (C1, C2 ... C8) = 0.

.

Pixel # N f (C1, C2 ... C8) = 1

Répondre

1

Depuis l'entrée est sous la forme de valeurs de canal, que trop sequence.I vous suggère d'utiliser Convolution1D. Ici, vous prenez les valeurs de canal de chaque pixel comme l'entrée et vous devez prévoir pour chaque pixel.Try ce par exemple:

Conv1D(filters, kernel_size, strides=1, padding='valid') 
Conv1D() 
MaxPooling1D(pool_size) 
...... 
(Add many layers as you want) 
...... 
Dense(1) 

utilisation binary_crossentropy comme la fonction de perte.

1

Je pense que vous devriez traiter cette même façon que vous utilisez CNN pour faire la segmentation sémantique. Pour un exemple regarder

https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn.pdf

Vous pouvez utiliser la même architecture a qu'ils utilisent, mais pour la première couche au lieu d'utiliser des filtres pour 3 canaux utilisent des filtres pour 8 canaux.

Pour la fonction de perte, vous pouvez utiliser la même fonction loos ou quelque chose de plus spécifique pour la perte binaire.

Il y a plusieurs pour la mise en œuvre keras mais avec tensorflow back-end

https://github.com/JihongJu/keras-fcn https://github.com/aurora95/Keras-FCN