Vous lisez fera! La segmentation d'images (sur) par NVIDIA DIGITS

Qu'est-ce que Digits?

8 juillet NVIDIA camp d'entraînement de l'académie d'apprentissage en profondeur à la ligne IDD venir à Shenzhen, le thème est la classification d'images, la base du développement de la détection cible d'entrée de zéro et la segmentation d'images.

Bien que les programmes haut de formation AI dans le monde entier, mais IDD entrer en Chine est trop tard, le site chinois a également été sur la ligne n'a pas fallu longtemps, leader dans le développement domestique savoir comment la carte graphique NVIDIA, mais ne savent pas NVIDIA a en ligne, la technologie AI en ligne la formation. Lei Feng réseau a écrit précédemment introduit IDD, les détails Poke ici.

Sans plus attendre, le camp d'entraînement actuel Shenzhen IDD et tensorflow deux principaux outils utilisés DIGITS. Tensorflow nous le savons tous, vous n'avez pas à présenter. Mais Digits très étrange, quel est-il?

Est DIGITS la popularité de l'étude approfondie NVIDIA a développé une interface utilisateur graphique, facile à utiliser, conçu pour aider les débutants à travers la barrière à l'entrée, démarrer rapidement. Par conséquent, IDD participants à la formation d'introduction doivent commencer à partir DIGITS.

En clair, DIGITS est un outil novice. Toutefois, en raison de l'IDD vient d'entrer en Chine, des tutoriels et des informations sur DIGITS ne suffit pas pour les débutants pour amener le manque d'information. Par conséquent, Lei Feng réseau de ce tutoriel blog officiel NVIDIA publié ont été compilés. Les guides tutoriel le lecteur pour la segmentation d'images avec 5 et DIGITS Caffe, qui est née de l'IDD laboratoire en ligne (laboratoires en ligne) des cours de formation. Ce dernier charge et en anglais seulement, ne sont pas ouverts aux non-membres. Mais nous comprenons ce tutoriel un ordre de grandeur.

Plus important encore, le 8 Juillet au camp d'entraînement à Shenzhen ligne IDD sont trois principales classification de l'image de la formation, avec détection DIGITS cible et DIGITS segmentation d'images avec tensorflow (pour plus d'informations, cliquez ici). Bien que le contenu des deux premiers jeux de ce tutoriel ne correspond pas, le dernier article de difficulté plus élevé que beaucoup, mais au lieu d'utiliser un tensorflow Caffe, mais ce tutoriel et la formation des IDD contenus payants est très proche.

Remerciez les trois chaussures pour enfants Zhu Ting, Peng Yanlei et Maxiao Pei compilé cet article demande beaucoup d'efforts.

Tutoriel: segmentation d'images avec 5 DIGITS

Fin de l'année dernière, NVIDIA a publié 5 DIGITS, est DIGITS a ajouté de nouvelles fonctionnalités, dont deux sont très intéressés par ce tutoriel sont:

1. Une segmentation flux de travail entièrement intégrée, la segmentation, il vous permet de créer ensemble de données d'image, et envoie le résultat de la segmentation de la visualisation du réseau;

2. magasin de modèle DIGITS, il est une bibliothèque de ressources en ligne publique, vous pouvez télécharger le description du modèle du réseau et pré-formation.

Cet article explore le thème de la segmentation d'images. Pour ensemble de données d'image composite Synthia dans la voiture, les piétons, les panneaux routiers et d'autres villes de l'objet, je vais utiliser 5 DIGITS former le réseau de neurones pour identifier et localiser.

La figure 1 est un aperçu, voici ce que vous allez apprendre des choses en faisant ce tutoriel:

Figure 1: Exemple d'utilisation pour la segmentation d'image digits 5,0 visualisation. Cette image d'entrée est alternativement superposées sont affichées, FCN-Alexnet prédicteurs superposées FCN-Alexnet prédit résultats avec la réalité de terrain.

La segmentation d'images à partir d'une classification d'image

Supposons que vous voulez comprendre un logiciel pour l'image de voiture automatique de conduite de conception. Vous avez peut-être entendu parler de Alexnet , GoogLeNet , VGG-16 et autre classification d'images de l'architecture réseau de neurones, alors vous pourriez commencer par ceux-ci. S'il y a une photo de chiots, la classification d'image, il est de laisser l'ordinateur vous dire que vous êtes un diagramme de processus chargé de Wang.

modèle de classification de l'image de sortie est une distribution de probabilité discrète, des valeurs comprises entre 0,1, est utilisé pour indiquer la probabilité de chacune des classes de formation. La figure 2 est une utilisation Alexnet dans DIGITS l'image d'un chat de faire un exemple de classification. Le résultat est très bon: vous savez Alexnet en 1000 sur le thème de la formation des différentes catégories, y compris les animaux, instruments de musique, des légumes, des véhicules et ainsi de suite. Shocking est que, dans l'intervalle de confiance de 99%, la machine peut être correctement classée comme un thème d'image de chat. Même moi, je l'ai, mais je le crains, ne plus distinguer le chat Egypte chat, chat de calicot tabby ou chats.

Figure 2: données d'image de chat Alexnet mis de la classification des COV PASCAL.

Si une image dans le même temps il y a des chats et des chiens, nous classons ce qui se passera? Du point de vue de bon sens, vous pourriez croire que le réseau de neurones lorsque deux de notre classement d'image animal de compagnie préféré, être classé comme la même probabilité de chaque classe. ESSAYONS: le résultat est représenté sur la figure 3. Chats et chiens dans la prédiction a des résultats mitigés, mais n'a pas donné un 50/50 AlexNet désiré. Dans l'image du milieu, la prédiction des cinq années précédentes n'a pas en fait un chat. Il est vraiment décevant, mais d'autre part, AlexNet est en formation dans le monde, dans ces images est un seul objet « petit » 1,2 millions d'images, de sorte que vous ne pouvez pas assumer les attentes en présence de plusieurs objets sous bien exécuté.

Alexnet 3 chats et les chiens de l'ensemble de données d'image de la figure. COV classification PASCAL

Une autre limitation est leur réseau de classification ne peut pas distinguer la position de l'objet dans l'image. Cela est compréhensible, parce qu'ils ne sont pas formés pour le faire pour. Néanmoins, il est un obstacle majeur à la vision par ordinateur: si une voiture auto-conduite ne peut pas détecter la position de la route, il ne peut pas aller très loin!

Segmentation d'images résoudre certains des inconvénients. Il a pas une seule distribution de probabilité de prédiction de l'image entière, mais l'image est divisée en une pluralité de blocs, chaque bloc de distributions de probabilités prédites. La situation la plus courante est que l'image est divisée en niveau de pixels, faire le classement pour chaque pixel: Pour chaque pixel de l'image, le réseau de formation pour prédire les catégories pixel spécifié. Cela permet au réseau peut non seulement identifier chaque image dans plusieurs catégories de sujets, peut détecter la position de l'objet. Génération d'une segmentation de l'image de l'étiquette généralement la même taille que l'image d'entrée de l'image, les pixels en fonction de différents types d'indice de classement à code couleur. La figure 4 est un exemple, divise en quatre catégories différentes d'une image: tables, chaises, canapés et pot.

Figure 4: la segmentation de l'image du jeu de données à titre d'exemple PASCAL COV (zones blanches marqués pixels non définis, par exemple des objets non classifiés et les contours d'objets).

Dans un autre raffinement de la segmentation d'image, à savoir, l'exemple de la segmentation de l'image perçue (AICA), le réseau de neurones d'apprendre à identifier chaque objet dans un contour de l'image. Ceci est particulièrement utile dans l'application, il doit être en mesure d'identifier chaque catégorie d'apparence, même pas de frontières claires entre les différents types ainsi. Par exemple, sur la figure 5:. La classe moyenne image standard est une segmentation d'image, et l'image est une classe extrême droite norme IAIS (note comment la couleur codée pour identifier de manière unique chaque personne). Je ne parlerai pas de sujets de profondeur IAIS, je vais me concentrer sur des exemples de segmentation, mais je vous encourage à regarder le travail Facebook SharpMask sur l'AICA.

Figure 5: segmentation de l'image (en) Exemples VS perçue segmentation d'image (à droite). PASCAL COV provenant de l'ensemble de données d'image.

Le regard de déposons sur la façon de concevoir un réseau capables de segmentation d'images.

De CNN à FCN

Fait avant un modèle de classification d'image et le modèle de segmentation d'image pour distinguer, l'ancien ne prédisent une distribution de probabilité pour chaque image, qui ne prévoient une distribution de probabilité pour chaque pixel. En principe, il semble très semblable à ce que vous pourriez penser qu'ils utiliseront la même technologie. Après tout, seules les dimensions spatiales du problème a été augmenté. Dans cet article, je vais vous montrer, à seulement quelques petits ajustements seraient suffisants pour classer un réseau de neurones est divisé en un réseau de neurones sémantique. Je vais utiliser dans ce document (ce document) dans le monde de la technologie (j'appelle du papier FCN).

Avant de commencer, commencer par la terminologie: Je qualifierais réseau typique, par exemple Alexnet appelé réseau de neurones convolutionnel (CNN). Il est un peu d'abus, après tout, en plus de convolution image classification du réseau de neurones, il y a beaucoup d'autres utilisations, mais il est une approximation commune.

Le CNN, le réseau est de pratique courante divisée en deux parties: la première partie pour faire l'extraction de caractéristiques, les données sont extraites de plus en plus complexe, des couches abstraites, caractérisé par une pluralité de convolution. Habituellement, entre la couche de convolution de la fonction de transfert non linéaire et la couche de mise en commun. Chaque convolution peut être considérée comme une série de filtre d'image des couches, une forte réponse qu'ils déclenchent dans un mode spécifique. Par exemple, la Figure 6 montre l'expression d'une première couche de filtre Alexnet de convolution, et l'image virtuelle, comprenant l'activation d'une forme simple sur le résultat (sortie) (Fait intéressant, AlexNet l'image en une horloge murale!) ces filtres déclenchés en réponse à un tel niveau des bords verticaux et horizontaux et les coins de ces formes. Par exemple, regardez le coin inférieur gauche du filtre, il ressemble à rayures verticales noires et blanches. Maintenant, regardez les résultats et l'activation respective réponse élevée en une ligne verticale. De même, à droite montre une réponse de filtre dans le haut hachurée. Le réseau sera en mesure de couches plus profondes par exemple convolutionnel déclencheur du polygone de réponse élevé sur des formes plus complexes, les textures et enfin la détection de l'apprentissage et de la composition de divers objets naturels. couche de convolution, est délivré en sortie par chacun des filtres de convolution est appliquée à chacune de la fenêtre d'entrée (également appelé champ récepteur) à partir du calcul, la taille du pas de la couche vers le bas à travers la fenêtre coulissante jusqu'à ce que l'entrée entière . la taille de champ récepteur et le même filtre. Comme représenté sur la. Figure 7 est un schéma d'un exemple de calcul de convolution. Notez que la fenêtre d'entrée sur tous les canaux de l'image d'entrée.

Figure 6: performances Alexnet CONV1 l de couche DIGITS. De haut en bas: a la couche de données (entrée), la couche de filtre visuel CONV1, résultat d'activation (sortie) couche CONV1.

Figure 7: A gauche: échantillon d'entrée rouge et le premier exemple de la couche de corps des neurones convolution. Chaque neurone couche convolution connecté uniquement à la région locale de l'espace d'entrée, mais la profondeur de la liaison (à savoir, tous les canaux de couleur). Notez qu'il existe une pluralité de neurones dans la direction de profondeur (un exemple est 5), qui sont tous connectés à la région d'entrée identique; droite: les neurones dot encore son poids calculé à l'entrée, la fonction non-linéaire, mais ils la connexion est maintenant limitée à l'espace local. Source: cours Stanford University CS231.

Dans la deuxième partie, à savoir la dernière partie de CNN, le classifieur comprenant une pluralité de couches entièrement connectées, une première couche est complètement entrée connecté à partir de l'extracteur de caractéristique. fonction d'apprentissage interaction complexe de ces couches, de sorte qu'un niveau élevé de compréhension du réseau le contenu de l'image. Par exemple, si vous avez de grands yeux et de la fourrure, le réseau pourrait être enclin aux chats. réseau de neurones peut comprendre correctement ces caractéristiques, il est étonnant dans une certaine mesure, mais il est aussi le charme de la profondeur de l'apprentissage des mensonges. Ce manque de interprétabilité parfois critiqué, mais à cet égard, et il fonctionne comme un cerveau humain est en fait un peu: comment savez-vous au sujet d'une image qui est un chat pas un chien, pouvez-vous l'expliquer?

réseau de convolution complète (FCN), son nom l'indique, est d'inclure uniquement la couche de convolution non-paramétrique et la couche temporaire mentionnée ci-dessus. Comment éliminer la couche entièrement connecté pour créer un look modèle plus puissant il? Pour répondre à cette question, nous devons penser à un autre problème.

Figure 8: Alexnet affichée dans le premier plein DIGITS couche de liaison (fcn6) Poids d'entrée et la fonction d'activation.

La question clé est: Quelle est la différence entre la couche pleine de liaison et une couche complète convolution est-il?

Il est très simple, la couche de liaison ensemble, chaque donnée d'entrée pondéré de sortie de neurone et le calcul. En revanche, chacune des données de calcul de filtre de pondération sentir et Nonaka. Attendez, est-il pas la même chose? - Oui mais cela ne se produit que dans la même taille de la couche d'entrée et la taille du champ réceptif. Si le rapport d'entrée des grands champs récepteurs, qui coulisse couche suivante de la fenêtre d'entrée de convolution, un autre calcul d'une somme pondérée. Ce processus est répété jusqu'à ce que l'image d'entrée est de gauche à droite et de haut en bas à nouveau balayage. Enfin, chaque filtre génère une matrice d'activation, chaque matrice est appelée une carte de fonction.

Ceci permet d'obtenir un indice: couche de connexion de remplacement en utilisant une couche de convolution plein équivalent, la même taille que la taille de la couche filtrante à la couche d'entrée sont connectées en utilisant le même nombre entier de neurones et filtre. Je vais montrer un entièrement connecté sur la première couche de Alexnet (fcn6) qui suit: Comme représenté sur la figure 8 est une couche d'intérêt chiffres visualisation.. Vous pouvez voir entrée fcn6 de intérieure5, la forme de l'image d'entrée est de 2566x6. En outre, des résultats d'activation en 4096 est fcn6 longue dimension de la matrice, ce qui signifie fcn64096 neurones de sortie. Ainsi, si je veux remplacer la couche fcn6 avec l'équivalent de convolution, je dois définir la taille du filtre est de 6 * 6, le nombre de carte caractéristique de sortie pour 4096. Une petite digression pour dire, pensez-vous que cette couche combien de paramètres peuvent être formés là-bas? Pour chaque filtre, il est un terme de polarisation plus un poids de chaque valeur dans le domaine de la sensation de lourdeur. La profondeur du champ récepteur 256, une taille de 6 * 6, chaque filtre a 256x6x6 + 1 = 9217 paramètres. Parce qu'il ya filtre 4096, un total de 37.752.832 des paramètres de la couche. Ceci est le nombre de paramètres dans DIGITS fcn6 ont. Jusqu'à présent, tout va bien.

Dans la pratique, il est facile de remplacer la couche. Si vous utilisez Caffe, pour remplacer la définition de la gauche avec la droite définie dans le tableau 1.

Avec cette connaissance, vous pouvez maintenant commencer à toutes les couches entièrement connectées de Alexnet converties à la couche convolution correspondante. Notez que, vous n'avez pas besoin d'utiliser la forme calculée de l'entrée Digits ces couches, vous pouvez les calculer manuellement. Bien que cela semble intéressant, je suis sûr que si vous êtes 16 couches VGG-16 (avec la couche intermédiaire de la piscine) pour ce faire, vous perdrez la patience. Sans oublier que vous allez inévitablement perdre votre papier calcul. De plus, comme un passionné d'apprentissage profond, vous devez vous habituer à laisser la machine faire le travail. Alors laissez le travail DIGITS pour vous maintenant.

Et le FCN CNN de base résultant peut avoir le même nombre de paramètres d'apprentissage, et la même capacité à exprimer la même complexité de calcul. Compte tenu de la même entrée, la même sortie est généré. Vous pourriez penser: Pourquoi voulez-vous convertir le modèle tant de peine? Est-ce, CNN fondation introduit « de convolution » trop de flexibilité. Modèle est plus limitée par la (taille de pixel dans Alexnet 224 * 224) agit sur une entrée de taille fixe. Elle peut être la même que la fenêtre coulissante, pour traiter une image d'entrée plus grande obtenue par balayage de l'ensemble, et non pas pour produire une distribution de probabilité de l'entrée entière, mais pour chaque fenêtre 224 * 224, le modèle produit une probabilité. réseau de sortie est un tenseur KxHxW de forme, où, K représente le nombre de catégories, H représente le nombre de fenêtre coulissante selon l'axe longitudinal, W représente le nombre de fenêtre coulissante selon l'axe horizontal.

Sur le plan de l'efficacité de calcul: théorie, vous pouvez bloquer en sélectionnant de façon répétée une image afin d'obtenir une fenêtre simple coulissement, puis les entrées de bloc de traitement CNN. Dans la pratique, il est très inefficace dans le calcul: Lorsque vous fenêtre coulissante progressivement, pour voir une petite quantité de nouvelle valeur de pixel à chaque étape. Cependant, chaque bloc doit être traitée complètement par le CNN, même s'il existe un chevauchement important entre les blocs successifs. Chaque valeur de pixel de l'accord final sera répété plusieurs fois. Dans FCN, parce que ces calculs se sont produits dans le réseau interne, avec un nombre minimum d'opérations requises pour effectuer toute la vitesse de traitement est beaucoup plus rapide.

Dans l'ensemble, c'est une étape importante: deux dimensions spatiales augmentation de la production de la classification du réseau. Dans la section suivante, je vais montrer comment améliorer encore le modèle.

(A suivre)

via nvidia, Lei Feng réseau compilé

dur Chen Kun, je ne pouvais pas sauver « sortir »?
Précédent
Rupture d'un mode de fonctionnement siècle de la première utilisation de « en dehors de la boucle » air d'auto-nettoyage de l'air frais conditionné Haier sortie
Prochain
À la violence par la violence, vraiment éclater froid tm
Roi de porcelaine brillant Chine Semaine internationale de la mode aiment le visage exotique
Ne reflètent pas nécessairement le premier feu, « flammes Fangfei » peu grand soutien
rue ne connaissent pas, YY: une piste, deux espèces
Entièrement homomorphic MAC authentification des messages algorithme de conception
La propagande officielle! trajet en bus Chongqing tourné en mode code de balayage, pour voir comment l'opération ici!
Faible dérive en température PSRR plus design de référence bandgap
analyse d'images médicales dans l'apprentissage de profondeur (a)
Hollywood "New Six" Remaniement
Design "académique" bus PCIe à base de FPGA d'interface du contrôleur DMA
DeepMind déchiffrer la boîte noire Première étape: principes cognitifs du réseau de neurones d'origine et les humains sont les mêmes!
Hé, cela ressemble à un gros morceau drogues dures scène