De 0 à 1 : la technologie et l'application de vision par ordinateur derrière l'explosion du moment | Des millions de personnes apprennent l'IA

Ding dong ~ vous avez été touché par l'aide sociale ! Désormais, "2020 AI Developers Conference" 299 tickets sont gratuits ! Entrez sur la page d'inscription [2020 AI Developers Conference (Online Live Tickets)-IT Training Live-CSDN Academy], cliquez sur « Register Now », utilisez le code de réduction « AIP1410 » lors du règlement, et le prix deviendra « 0 » yuan !

Sharer | Ye Cong (Ingénieur R&D senior de Tencent Cloud AI et Big Data Center)

Organiser | Lion

Produit | Intelligence Artificielle Toutiao (Public ID : AI_Thinker)

En cette journée de la jeunesse du 4 mai qui vient de s'écouler, votre cercle d'amis a-t-il été emporté par de telles photos de la République de Chine ? Les utilisateurs n'ont qu'à soumettre leurs photos d'avatar sur la page H5 pour générer automatiquement des photos de comparaison de visage dans de tels styles.L'opération simple est indissociable du support de la technologie de vision par ordinateur et de la technologie cloud Tencent.

Alors, quelles technologies de vision par ordinateur sont utilisées derrière cette application populaire ? Quels parcours d'apprentissage sont nécessaires pour maîtriser ces techniques ?

Le 17 mai, AI Toutiao a invité Ye Cong, ingénieur R&D senior de Tencent Cloud AI et Big Data Center, à répondre à ces questions sous la forme d'une classe ouverte en direct.

Les titres de l'IA organisent le contenu principal comme suit :

1. Introduction d'activités populaires dans le cercle d'amis

Tout le monde voit souvent des jeux très intéressants liés aux images dans le cercle d'amis, y compris les photos d'uniformes militaires précédentes et les activités de la Journée de la jeunesse du 4 mai de cette année. Cette activité est très intéressante. Vous pouvez choisir une photo que vous pensez être la plus belle et la télécharger sur l'application H5, et nous vous aiderons à faire correspondre une excellente photo de jeunes à l'époque moderne. Cette photo est une vieille photo, et tout le monde a téléchargé une nouvelle photo, ce qui a produit des contrastes intéressants. Cet événement a également reçu de fortes réactions cette année, et tout le monde l'a beaucoup aimé.

Une fois tous ces algorithmes créés, nous les téléchargeons sur la plate-forme AI de Tencent Cloud. Parce que nous nous référons au flux de photos d'uniformes militaires l'année dernière, nous avons estimé 50000 QPS pour cet événement, ce qui est en fait une exigence très élevée. L'événement a été lancé le 4 mai et s'est déconnecté le 5. En seulement deux jours, le PV de la page H5 en ligne a atteint 2,526 millions, l'UV était de 1,113 million et le volume d'appels de service était de 4,2 millions, ce qui reste assez étonnant. .

2. Connaissances de base en vision par ordinateur

Tout d'abord, qu'est-ce que la vision par ordinateur ? La vision par ordinateur étudie comment les ordinateurs peuvent obtenir des informations de haut niveau et abstraites à partir d'images et de vidéos. Du point de vue de l'ingénierie, la vision par ordinateur peut automatiser la tâche d'imitation de la vision.

D'une manière générale, la vision par ordinateur comprend les branches suivantes :

  • reconnaissance d'objet
  • détection d'objet
  • Segmentation sémantique
  • Mouvement et suivi
  • Reconstruction tridimensionnelle
  • Questions et réponses visuelles
  • Reconnaissance des actions

Voici une mention supplémentaire de la segmentation sémantique. Pourquoi voulez-vous mentionner cela ? Parce que le mot segmentation sémantique apparaîtra également dans les domaines tels que la PNL, la parole, etc., mais en fait, la signification de la segmentation dans les images est très différente de celle de la parole et de la PNL. Il s'agit en fait d'un traitement au niveau du pixel de différents éléments dans au milieu des images segmentation. Par exemple, sur cette image dans le coin inférieur droit, on peut voir des piétons, des véhicules, des routes et les arbres derrière eux. Ils sont marqués de différentes couleurs. En fait, chaque couleur représente une sémantique. Les deux images à gauche et au milieu, je n'ai peut-être pas besoin de les présenter, tout le monde devrait pouvoir deviner, l'une est la reconnaissance faciale et l'autre est la conduite sans pilote, qui sont toutes deux des applications très largement utilisées et populaires à présent.

Comment une machine peut-elle lire des images comme un humain ? Lorsque les gens traitent des images, nous suivons une perspective biologique, de l'image à la rétine puis au cerveau. Mais la machine n'a pas ce mécanisme, alors comment la machine charge-t-elle l'image dans la mémoire ? Cela implique un format appelé RVB-alpha.

Comme son nom l'indique, c'est rouge, vert et bleu, et puis, qu'est-ce que l'alpha ? Si vous avez joué avec du matériel informatique au début, vous constaterez peut-être que la première carte graphique était en couleur 24 bits, et plus tard, il y avait une vraie couleur 32 bits, qui était entièrement en couleur. Parce que dans le domaine informatique, nous utilisons un binaire 8 bits pour représenter une couleur, et le rouge, le vert et le bleu totalisent 24 bits. Fondamentalement, nous représentons toutes les couleurs.

Pourquoi y a-t-il encore de l'alpha ? Alpha est utilisé pour indiquer si un pixel est transparent, mais cela ne signifie pas que lorsque alpha est 1, il est transparent, et lorsqu'il est 0, il n'est pas transparent. Cela signifie simplement que le canal alpha est équivalent à une matrice. Cette matrice effectuera une opération avec d'autres matrices RVB. Si ce point d'alpha est 1, cela n'affectera pas la valeur de ce point sur la matrice RVB. C'est l'original Si c'est 0, le point devient transparent. C'est également ainsi que nous utilisons le canal RVB plus alpha pour décrire toutes les images du monde.

Par exemple, dans le coin supérieur droit, cette image est une image en noir et blanc, celle du milieu est une image couleur, celle du bas est quelque peu transparente et il n'y a pratiquement aucun pixel dans le coin inférieur droit. C'est un bon exemple pour comprendre ce qu'est RVB.

En plus de l'expression RVB-alpha, nous avons de nombreuses expressions de couleurs différentes. Y compris si nous sommes engagés dans l'impression, vous pouvez entrer en contact avec un autre système de couleurs, appelé CMJN, qui est également un moyen d'exprimer la couleur. Il y aura d'autres types d'images ici, y compris des images infrarouges, des images à rayons X, une thermographie infrarouge et des images de cellules prises par des microscopes, qui constituent ensemble la gamme d'images que nos ordinateurs peuvent traiter, pas seulement Seules les images que nous avons vues avant, prises avec des téléphones portables et des appareils photo.

On parle souvent d'étapes en vision par ordinateur, pourquoi les appelle-t-on étapes ?

Ici, nous voyons qu'il existe un niveau bas, un niveau moyen et un niveau haut. Pour clarifier ici, cela ne signifie pas que les applications de bas niveau sont relativement de bas niveau et que le haut niveau est relativement haut de gamme. La dimension de cette description est en fait de notre point de vue sur le problème. Comme nous l'avons dit, un niveau bas signifie que nous sommes très proches de ce problème, et un niveau élevé signifie que nous en sommes loin.

Pour donner un exemple simple, par exemple, sur le Niveau bas, on peut faire de la réduction du bruit de l'image, de l'optimisation, de la compression, et de la détection des bords. Peu importe lequel, on peut imaginer que l'on est très proche de l'image pour voir le des détails. Qu'est-ce que le haut niveau ? Y compris la compréhension de la situation, la reconnaissance faciale, la conduite autonome, il examine essentiellement la situation dans son ensemble d'un point de vue relativement éloigné.

Donc, en fait, vous pouvez y penser de cette façon, lors de la résolution du problème, nous devons garder la distance par rapport à la vision de l'image, High signifie loin et Low signifie proche. Cela ne signifie pas que High est plus difficile que Low, ou qu'il est haut de gamme.

Le niveau moyen se situe entre Haut et Bas, y compris la classification, la segmentation, la détection d'objets, puis la segmentation de la scène. La segmentation du contexte ici n'est pas la même que la segmentation. Il faut dire qu'il s'agit d'un problème de segmentation plus profond. Je détaillerai plus tard. expliquer .

Voici quelques exemples pour vous aider à comprendre le traitement de bas niveau. Par exemple, l'image en haut à gauche est l'image que nous verrons lorsque nous prendrons des rayons X. L'image ci-dessus est l'image radiographique originale. Comme vous pouvez le voir, elle est très floue. Il est difficile de comprendre les os. à l'intérieur et où se trouvent les vaisseaux sanguins. . Mais grâce à la réduction du bruit et à l'optimisation du traitement de bas niveau, la position de tous les os et organes internes de ce patient peut être clairement vue.

Celui du milieu est une carte PCB Afin de détecter la carte PCB, certains domaines industriels prendront des photos, effectueront un traitement d'image et utiliseront cette méthode pour trouver des problèmes sur la carte, puis la répareront. Parfois, pour le contrôle de la qualité, l'image originale de la carte PCB au milieu est pleine de bruit.Après optimisation et réduction du bruit, une image très claire est obtenue.

Il s'agit d'un traitement de niveau intermédiaire et la technologie actuelle est relativement mature. Les applications de ce bloc incluent la classification, la segmentation, la détection de cible, ainsi que la détection de scène, la segmentation de scène et même la détection d'intention, qui consiste à juger de leur intention en regardant certains objets dans l'image et certains comportements qu'ils adoptent actuellement.

Il y a plusieurs photos de chatons et de chiots ci-dessous, de gauche à droite est une direction avancée. Tout d'abord, une application à laquelle il est plus facile de penser est de savoir comment utiliser l'apprentissage automatique pour lire le contenu d'une image, alors comment cette méthode y parvient-elle ? En fait, on utilise une classification, car si l'image de gauche est donnée à la machine, l'algorithme de classification vous dira qu'il y a un chat dedans, mais c'est tout.

Donc, si nous voulons savoir, il y a un chat ici, mais où est le chat ? Pour ce problème, nous devons ajouter un positionnement sur cette base, c'est-à-dire la deuxième image, puis nous pouvons localiser, il s'avère que c'est la plage où se trouve le chat, mais dans la plage de cette boîte, ce n'est pas précis au niveau du pixel.

En allant un peu plus loin, s'il n'y a pas que des chats sur cette photo, il peut y avoir beaucoup d'autres choses, et je veux tous les identifier, que dois-je faire ? Cette tâche est appelée détection d'objets, qui consiste à détecter tous les objets de l'image.

En allant un peu plus loin, je veux non seulement étiqueter tous les objets à l'intérieur, mais je veux aussi savoir exactement où ils se trouvent dans l'image, auquel cas je pourrais vouloir les supprimer et supprimer l'arrière-plan. Dans des circonstances normales, l'objet que nous avons encadré est appelé le premier plan et les autres parties sont appelées l'arrière-plan. Si nous voulons faire ressortir le premier plan, nous avons besoin de ce type de technologie de segmentation d'objets. De gauche à droite, nous avons terminé l'ensemble du processus de classification, de positionnement, de détection et de segmentation d'objets. C'est aussi un processus de promotion progressive de du début à la fin. . Étant donné que le positionnement est la base de la classification, la détection d'objets a besoin d'une base de classification, et la segmentation de scène a également besoin d'une base de détection.C'est un processus allant du superficiel au profond.

L'extrême droite est un exemple de segmentation de scène. Je l'ai brièvement présenté auparavant. La technologie actuelle peut classer avec précision presque tous les éléments de notre image, y compris les personnes, les voitures, les routes, les paysages, les plantes, les bâtiments, etc. séparés, et notre technologie est maintenant très mature dans le traitement de niveau intermédiaire.

Ensuite, je présenterai brièvement le traitement de haut niveau, qui est actuellement très populaire et prometteur, mais il faut dire qu'il est loin d'être une technologie mature. Peut-être qu'à l'heure actuelle, le meilleur traitement de haut niveau que tout le monde fait est la détection de visage.

Celui dans le coin inférieur gauche est sans conducteur, qui peut également être appelé conduite assistée à haute intelligence. Différents constructeurs automobiles ont des définitions différentes. Fondamentalement, il s'agit d'une application complexe de détection d'objets, y compris la détection de toutes les conditions sur la route, y compris les différents sols. Les bâtiments environnants, ainsi que tous les véhicules devant vous, même les piétons, diverses informations, y compris la distance à eux, c'est une application de détection d'objets relativement multidimensionnelle et complexe.

Au milieu, deux enfants jouent au tennis. Cette image représente également deux personnages. Y a-t-il une différence par rapport au traitement de niveau intermédiaire précédent ? En fait, à partir de l'arbre d'objets à droite, nous pouvons juger qu'il y a une différence très essentielle dans la profondeur de compréhension de cette image. Dans l'exemple précédent, on sait qu'il y a des chats et des chiens sur la photo, c'est tout. Sur cette photo, en plus de juger qu'il y a deux enfants sur la photo, nous avons également segmenté et défini avec précision leurs différents vêtements, y compris les raquettes qu'ils tiennent dans leurs mains. Une description très détaillée, donc la compréhension des images de haut niveau n'est pas simplement de dire ce que sont les choses, mais les liens et les détails entre elles. Le niveau élevé lui-même ne reconnaît pas seulement ce qui se trouve sur notre graphique, il reconnaît également ce qui doit être fait et quelle est leur relation.

L'image de droite est une application médicale, une carte virtuelle du système cardiovasculaire. Il s'agit d'un projet du Royal College of Medicine et d'une université du Royaume-Uni. Nous utilisons la vision par ordinateur pour simuler le système cardiovasculaire d'un patient afin d'aider les médecins à décider s'il convient de faire une intervention chirurgicale et comment élaborer le plan d'intervention. vision dans Un bon exemple d'application en médecine.

Voici quelques applications courantes de vision par ordinateur, que nous utilisons également en temps ordinaire, y compris la reconnaissance faciale multiple, et maintenant certaines des applications photo les plus populaires, je ne sais pas si vous les utiliserez en temps ordinaire, y compris, par exemple, Google photos, basique Uploader une photo, et ça classera la même personne sur la même photo.C'est aussi une application très courante à l'heure actuelle.

Celui du milieu s'appelle OCR, qui scanne et reconnaît le texte.Cette technologie est relativement mature. L'image sur la photo est une technologie ancienne. À cette époque, je me souviens qu'il y avait une entreprise qui fabriquait cette application. Il y avait un stylo de numérisation, et il s'est transformé en texte après l'avoir numérisé. Maintenant, fondamentalement, il n'est pas nécessaire de numériser si proche. Il vous suffit de prendre une photo. Une photo, si la photo est relativement claire, après une seconde ou deux, notre algorithme peut directement la convertir en texte, et le taux de précision est assez élevé, donc ce type d'OCR sur l'image est une technologie obsolète.

Dans le coin inférieur droit se trouve la détection de la plaque d'immatriculation. En conduisant, j'ai accidentellement appuyé sur la ligne, brûlé un feu rouge et reçu une contravention. Comment faire ? C'est aussi le crédit de la vision par ordinateur. Ils peuvent facilement identifier la plaque d'immatriculation sur cette photo, même si la plaque d'immatriculation présente un certain degré de contamination. Après l'amélioration de la vision par ordinateur, elle peut être optimisée en retour, donc cette technologie est également plus pratique . de.

Parlons de quelques tâches de vision par ordinateur plus difficiles. Le premier est le suivi de cible. Le suivi de cible signifie que nous voulons suivre un objet spécifié dans une image ou un flux vidéo continu. Cela semble être une tâche très facile pour les gens. Tant que vous gardez les yeux sur une chose, personne ne peut s'échapper notre vue.

En fait, c'est une tâche très difficile pour une machine, pourquoi ? Parce que lorsque la machine suit l'objet, la plupart d'entre eux utiliseront les méthodes les plus primitives et adopteront une certaine déformation et adaptation de l'image cible, qui est une méthode de reconnaissance informatique relativement précoce, et cette méthode est très difficile à réaliser dans des applications pratiques. Pourquoi ? Étant donné que l'objet à suivre deviendra flou en raison de l'angle, de l'éclairage et de l'occlusion, y compris le mouvement et l'interférence d'arrière-plans similaires, il nous est difficile d'utiliser la correspondance de modèle pour suivre cet objet. Une personne face à vous, face à vous et face à vous peut avoir des scènes complètement différentes. Dans ce cas, le même modèle ne peut pas correspondre. Par conséquent, il est très potentiel mais aussi très difficile, car la cible actuelle L'algorithme de suivi n'a pas atteint le précision de la reconnaissance faciale, et de nombreuses personnes essaient constamment de trouver de nouvelles méthodes pour s'améliorer.

Le côté droit est également un exemple, c'est un simple suivi de notre tête, ce qui est également très difficile, car notre tête peut être tournée, l'échelle peut également changer et nous pouvons la bloquer avec nos mains, ce qui rend l'appariement très difficile. .

Il y a des tâches de vision par ordinateur plus difficiles dans le dos. Nous les classons comme des problèmes multimodaux, y compris VQA. Qu'est-ce que cela signifie ? Cela signifie qu'à partir d'une image, nous pouvons lui poser des questions arbitrairement, généralement des questions plus directes, telles que Qui, Où, Comment, et des questions similaires, ou ce modèle multimodal.De vraies informations pour répondre à nos questions.

Par exemple, par exemple, il y a deux enfants au milieu de l'image ci-dessous. Lorsque la vision par ordinateur voit cette image, elle doit segmenter tous les objets qu'elle contient. Il est nécessaire de comprendre ce qu'est chaque objet et sa connexion. Par exemple, l'enfant de gauche boit du lait. Si son biberon est séparé, il doit savoir que l'enfant boit du lait. Cette relation est également très importante.

La question à l'écran est "Où est assis l'enfant ?", ce qui est plus complexe que la simple analyse de l'image. Il doit analyser toutes les informations qu'il contient et être capable de corréler leurs relations avec précision. En même temps, le modèle doit être capable de comprendre le but de poser cette question. Il doit savoir que la question porte sur le l'emplacement, et l'objet est Cet enfant, donc c'est une combinaison de vision par ordinateur et de reconnaissance du langage naturel, la combinaison de ces deux technologies, donc on appelle ça un problème multimodal. Assembler ces modalités ensemble s'appelle un problème multimodal.

Un exemple à droite est la génération de sous-titres, qui est un domaine de recherche très populaire actuellement. Étant donné une image, décrivez ensuite ce qu'il y a dans l'image. Il existe également des applications plus intéressantes pour cela, que je présenterai en détail plus tard. .

Trois, le traitement d'image passé - méthodes traditionnelles

Parlons ensuite des méthodes traditionnelles de traitement d'image par vision par ordinateur que nous avons accumulées au fil des ans.

Tout d'abord, plusieurs filtres sont mentionnés, dont les filtres spatiaux, les filtres de Fourier, les filtres à ondelettes, etc. Ce sont les filtres que nous utilisons souvent dans le traitement initial des images. Dans des circonstances normales, après le filtrage, nous effectuerons Feature Design sur l'image, c'est-à-dire que nous devons extraire certaines informations de l'image que nous pensons être plus importantes et pouvant être utilisées pour un traitement ultérieur. informations à classer, ou segmentation, etc. Dans ces applications, certaines des méthodes les plus classiques, notamment SIFT, Symmetry, HOG, et certaines sont un algorithme que nous utilisons souvent dans la classification, notamment SVM, AdaBoost, Bayesian, etc.

Segmentation et détection d'objets plus poussées et certains algorithmes classiques, notamment Water-shed, Level-set, Active shape, etc.

Tout d'abord, nous faisons du Feature Design pour extraire les caractéristiques d'un objet au milieu d'une image. La façon la plus simple d'y penser est de séparer le bord de l'objet. Edge Detection est en effet une méthode d'extraction d'informations d'image très précoce.

Par exemple, une pièce comprenant le motif ci-dessus sera extraite par une simple détection de bord, mais en fait, la détection de bord perdra beaucoup d'informations dans certaines situations plus complexes, y compris des arrière-plans complexes, dans de nombreux cas. bord.

Dans ce cas, nous avons également proposé une autre méthode appelée symétrie locale, cette méthode consiste à regarder le centre de gravité de l'objet et à utiliser le centre de gravité pour représenter certaines caractéristiques de l'image.

C'est ce qu'on appelle Haar Feature, ce qui équivaut à combiner les caractéristiques du bord avant et d'autres informations sur les caractéristiques. Haar Feature est généralement divisé en trois catégories

  • caractéristiques de bord
  • Caractéristique linéaire
  • Fonction diagonale centrale

Grâce au traitement, une fois toutes les informations de bord de l'image extraites, un modèle d'entité sera obtenu à partir de l'image. Soustrayez la somme des pixels du rectangle de pixels noirs. Haar Feature reflète en fait un changement de niveau de gris de l'image, de sorte que certaines caractéristiques du visage peuvent être exprimées par un modèle rectangulaire. Par exemple, les yeux sont plus foncés que les joues et les côtés de l'arête du nez sont plus foncés que l'arête du nez La bouche est plus foncée que la zone environnante, etc. Nous utilisons ces rectangles pour extraire certains détails de l'image.

Transformation d'entité invariante à l'échelle SIFT. Lorsque l'objet présente des changements d'angle et de position d'entité, comment pouvons-nous savoir en permanence qu'il s'agit de la même chose ? Cela nécessite l'utilisation de SIFT. SIFT est un algorithme de caractéristiques pour la détection locale. Cet algorithme correspond à l'image en trouvant des points caractéristiques dans l'image. Il s'agit d'un algorithme très ancien. Il a été proposé vers 2000, et c'est maintenant un algorithme couramment utilisé. Algorithme d'apprentissage pour faire correspondre une image.

Une autre méthode populaire est appelée histogramme de gradient directionnel HOG. Par exemple, comme le montre cette image, au milieu de l'image, l'apparence et la forme de la cible locale peuvent avoir une bonne représentation du gradient du niveau de gris et de la densité de la direction du bord. Par exemple, comme cette image, le dégradé sur une personne est de haut en bas. Pour le fond, du fait de la lumière du fond, si on fait l'analyse des niveaux de gris, on trouvera que son dégradé est horizontal, de cette façon, on peut facilement segmenter le fond du premier plan. De plus, si les directions du dégradé dans de nombreuses petites boîtes sont presque les mêmes, nous pouvons le considérer comme un objet.Cette méthode est un bon moyen de façonner un effet de segmentation. En fait, la détection de cible très précoce est la conception de fonctionnalités, donc la détection est basée sur la classification, ce qui est également le sens. Après l'introduction de l'apprentissage en profondeur, de nombreuses théories ont également subi quelques changements, qui seront présentés en détail plus tard.

C'est aussi une méthode de segmentation très classique, appelée l'algorithme des bassins versants.C'est d'imaginer cette image comme une carte topographique géographique, puis on met de l'eau dans les vallées de manière unifiée.Il y aura toujours des vallées qui seront comblées en premier. Lorsqu'ils sont pleins, nous devons alors construire de tels barrages afin de bloquer le flux de leurs courants, ce qui est également à l'origine du nom de l'algorithme des bassins versants. De cette façon, l'endroit où l'on construit le barrage est une très bonne frontière pour la segmentation d'une image.Vous pouvez imaginer qu'en reliant l'image de gauche avec la frontière de droite, vous comprendrez que cet algorithme est une très algorithme ingénieux.

L'algorithme classique des bassins versants présente encore quelques défauts. Par exemple, en raison d'un bruit sur l'image, il provoque souvent une sur-segmentation locale, et certains éléments de l'image ne seront pas segmentés à cause de couleurs similaires, donc des erreurs se produisent souvent. C'est aussi une des limites de l'algorithme des bassins versants.

ASM, le nom chinois est une correspondance de modèle variable ou un modèle de forme subjectif. Cette traduction semble bizarre, mais elle est en fait très facile à comprendre. Elle extrait certaines caractéristiques du visage. La méthode consiste à trouver des coins sur le visage pour dessiner des points. Généralement, environ 68 points clés sont dessinés. Points caractéristiques. Puis en utilisant ces points caractéristiques, nous extrayons un modèle original.

Une fois le modèle d'origine extrait, peut-il être utilisé directement ? Ce n'est pas si simple, car le visage peut être déformé à cause du changement d'angle. Si vous comparez simplement ces 68 points, y a-t-il toujours la même position sur la nouvelle photo ? Dans la plupart des cas, c'est Non. À ce stade, nous devons construire des vecteurs pour ces points caractéristiques. Nous extrayons les 68 points et les vectorisons. En même temps, nous faisons de même pour les points que nous devons comparer et le visage à comparer. Vectorisons-le également . Ensuite, nous faisons simplement correspondre les points vectoriels de l'image d'origine avec les points de la nouvelle image. Nous pouvons faire pivoter et mettre à l'échelle le déplacement horizontal et le déplacement vertical pour trouver une équation pour les rendre aussi égaux que possible, et enfin Lorsque l'optimisation ne peut plus être optimisé, comparez la taille du seuil. S'il est inférieur à un certain seuil, le visage peut être adapté. Cette idée est assez intéressante.

De plus, comme il peut y avoir plus de 68 points ici, les performances de notre ordinateur peuvent ne pas être aussi bonnes il y a longtemps et il n'y a pas de GPU. Si nous écrivons pour améliorer la vitesse de correspondance, nous devons trouver un moyen de réduire le rapport requis. Pour la quantité de points caractéristiques, un algorithme relativement bien connu appelé analyse en composantes principales est introduit à ce moment. À l'aide de ce PC, nous ferons une réduction de dimensionnalité. Par exemple, certains points qui ne sont pas d'une grande importance peuvent être supprimé, réduisant la quantité de données, réduisant la quantité de calculs et améliorant l'effet. , bien sûr, ce n'est pas nécessaire, c'est juste une méthode bonus pour améliorer les performances réelles d'ASM.

Quatrièmement, l'éclosion du traitement d'image - méthode d'apprentissage en profondeur

Ensuite, nous parlerons des méthodes d'apprentissage en profondeur des graphiques qui sont très populaires actuellement et le seront encore plus à l'avenir. Il existe deux réseaux d'apprentissage en profondeur ci-dessous.Le soi-disant apprentissage en profondeur est en fait un réseau de neurones profond, qui est plus facile à comprendre pour tout le monde. Celui de gauche est un réseau de neurones à deux couches. Pour expliquer ici, nous disons généralement que le nombre de couches d'un réseau de neurones n'est pas la couche d'entrée. Les deux couches comprennent une couche d'entrée, une couche cachée et une couche de sortie. couche. Donc, parfois, si nous parlons d'un réseau à une seule couche, il n'a en fait qu'une couche d'entrée et une couche de sortie. Savez-vous ce qu'est le réseau de neurones peu profond dans ce cas ? C'est la régression logistique très classique et la machine à vecteurs de support dans notre apprentissage automatique traditionnel.

À l'heure actuelle, vous constaterez que l'apprentissage en profondeur n'est pas si loin, il est en fait lié à certaines de nos méthodes traditionnelles. Il s'agit simplement d'un emballage de multiples, ou d'un renforcement combiné, puis réutilisé, et finalement emballé dans une nouvelle méthode d'apprentissage automatique.

Il y a deux réseaux de neurones dans la figure, et certains d'entre eux ont quelque chose en commun : tout d'abord, ils ont tous deux une couche d'entrée et une couche de sortie. Ceci est nécessaire pour tous les réseaux de neurones. La couche cachée au milieu est la vraie différence. Afin de résoudre différents problèmes, différents réseaux auront différentes couches cachées.

Il s'agit d'un réseau neuronal profond conçu pour la reconnaissance de plusieurs visages. Nous pouvons voir qu'un prétraitement sera effectué au milieu de la couche d'entrée, notamment la conversion de l'image en certaines cartes de contraste. La première couche cachée est Face Features, qui extrait les valeurs de caractéristiques clés des visages humains. La deuxième couche cachée consiste à commencer à faire correspondre les valeurs des caractéristiques, et la couche de sortie finale consiste à produire les résultats, généralement la classification.

En plus du réseau de neurones typique que nous venons de voir, y aura-t-il d'autres types de réseaux ? Il y a des triangles, des rectangles et des losanges au milieu des rectangles. Après l'avènement des réseaux de neurones, cela a changé une partie de la façon dont les gens travaillent. Auparavant, la plupart des scientifiques de l'apprentissage automatique choisissaient un modèle, puis choisissaient comment optimiser le modèle. Dans le domaine de l'apprentissage en profondeur, ce que tout le monde considère, c'est le réseau que nous utilisons pour atteindre notre objectif, ce qui est en fait assez différent.

CNN, également connu sous le nom de réseau de neurones convolutifs, est actuellement le réseau de reconnaissance d'images le plus utilisé.Comprendre CNN aidera beaucoup à comprendre les autres réseaux, alors prenez ceci comme exemple.

Dans cet exemple, nous avons effectué une reconnaissance d'écriture manuscrite, qui comprend une couche d'entrée, une couche de sortie, ainsi qu'une couche de convolution et une couche de regroupement. En général, non seulement on fait une convolution, mais on fait aussi plusieurs convolutions, mise en commun puis convolution, en utilisant cette méthode pour réduire la dimension plusieurs fois. La couche de mise en commun se trouve en fait dans ce réseau neuronal convolutif. Un effet est de réduire la dimension de nos données.

À la fin, il y aura une couche entièrement connectée, qui est un héritage de l'histoire. Maintenant, tout le monde réduit en fait l'utilisation de la couche entièrement connectée. En général, la couche entièrement connectée est utilisée pour les diverses mises en commun et convolutions à l'avant. Les résultats sont classés. En fait, l'apprentissage en profondeur accorde désormais plus d'attention à l'apprentissage de bout en bout et à une efficacité élevée. Dans ce cas, la signification de la couche entièrement connectée n'est parfois pas si grande, car cette classification peut être utilisée lors de la convolution. En fait, il est encore beaucoup de place à l'amélioration.

Comme autre exemple, il existe de nombreux nouveaux réseaux basés sur CNN qui sont actuellement populaires pour la segmentation des images. Par exemple, sur la base de CNN, nous avons ajouté quelque chose appelé Region Proposal Network, qui peut être utilisé pour optimiser la direction de certaines données dans le CNN traditionnel. Faster-RCNN n'est pas réalisé du jour au lendemain, il a emprunté certaines fonctionnalités de SPPNET à RCNN, puis a inventé Fast-RCNN, qui a ensuite été optimisé sur la base de Fast-RCNN pour devenir Faster-RCNN.

Comme vous pouvez le constater, le réseau de neurones n'est pas statique, il évolue constamment, et lorsque nous avons pensé pour la première fois à utiliser des réseaux de neurones pour résoudre des problèmes d'image, quelle était la raison ? C'est parce que nous avons rencontré de grandes difficultés en essayant d'utiliser CNN pour la détection d'images, et l'effet n'était pas bon. A cette époque, des scientifiques très puissants pensaient, pouvons-nous transformer un problème de détection très typique en classification ? Le problème, parce que CNN est très efficace pour résoudre les problèmes de classification, il y aura de nombreuses applications de telles transformations. Chaque réseau que j'ai écrit ci-dessus est un très bon article, donc si vous êtes intéressé, je peux le partager après le cours.

À l'heure actuelle, en plus de Faster-RCNN, il existe également une structure de réseau avec un très bon effet d'application, appelée YOLO, qui est également sur Faster-RCNN. Elle a non seulement été optimisée, mais a changé son mode de pensée. Au début, nous pensions que la détection serait meilleure si elle était convertie en classification. Plus tard, le scientifique qui a inventé Faster-RCNN a estimé qu'il serait parfois préférable d'utiliser la régression pour résoudre le problème de la détection de cible, alors il a finalement déménagé. YOLO, un nouveau cadre de réseau de neurones, est revenu à la méthode d'utilisation de la régression pour résoudre le problème de détection de cible.

Parfois, cela ne signifie pas qu'il existe différentes façons de résoudre le même problème, et cela ne signifie pas qu'il est préférable d'aller jusqu'au bout et de changer la façon de penser. Lorsque les conditions matérielles et logicielles atteignent une nouvelle niveau, certains ont déjà des technologies qui ne fonctionnent pas peuvent être utilisées maintenant, et c'est ainsi que l'apprentissage en profondeur entre en jeu.

Parlons du cas de l'application d'images d'apprentissage en profondeur, comme l'événement de la Journée de la jeunesse du 4 mai que nous avons mentionné, comment il a été conçu. Tout d'abord, nous aurons quelques données d'entraînement pour les images, puis avant d'entrer dans le modèle, nous allons vectoriser les données. Grâce à la vectorisation des données, nous pouvons obtenir un modèle, puis obtenir une classification, et un score, ici Le score est juste une analyse relative de ce résultat par le modèle. Généralement, nous choisirons la catégorie avec le score le plus élevé, puis le front-end sélectionnera des images de cette catégorie pour générer le résultat de H5. Vous pouvez voir quels jeunes historiques célèbres sont similaire.

Le deuxième est également un exemple multimodal, racontant une histoire romantique basée sur une image. La raison pour laquelle nous avons eu cette idée à l'époque était que nous savions qu'il existait déjà une technologie pour lire des images et des descriptions textuelles, alors pouvons-nous aller plus loin Laissez les images raconter l'histoire. De cette façon, l'application peut aider les personnes avec de petits bébés à la maison. En plus de la reconnaissance d'images, nous effectuons également une analyse d'intention.

D'autre part, nous utiliserons une base de données de romans d'amour pour former un autre modèle. Enfin, nous associons les passages au milieu du roman d'amour en fonction des mots clés de cette image et de leurs intentions, et retirons tous les passages pertinents.Certains de ces passages ne sont pas des articles, nous devons donc passer au tour suivant En correspondance, les mots-clés au milieu de ces paragraphes sont ensuite mis en correspondance dans la bibliothèque de romans, et le texte est formé en paragraphes, ce qui réalise un conteur.

Dans ce projet, sauf que nous avons d'abord utilisé l'apprentissage supervisé pour le processus de reconnaissance d'objets dans l'image, le reste est un apprentissage non supervisé. Ce système peut naturellement être appliqué à de nombreux endroits différents. Tant que vous changez de base de données d'articles, il peut raconter des histoires différentes. Certains exemples sont basés sur différentes images, comme celle dans le coin supérieur gauche qui, je pense, a le score le plus élevé : il y a une femme qui marche sur la plage, et notre modèle produit une histoire très romantique, qui correspond fondamentalement à ce scénario.

5. Analyser la prise en charge des capacités d'IA cloud

Nous avons beaucoup parlé de certains algorithmes de traitement d'images de vision par ordinateur, devons-nous réfléchir à la manière d'implémenter cet algorithme et de le transformer en un produit ou une activité intéressante à l'étape suivante ? Si oui, de quel type de capacités avons-nous besoin ?

Nous avons besoin d'une telle architecture. Par exemple, pour cet événement photo d'uniforme militaire, nous aurons un volume de trafic très élevé. En même temps, il aura des utilisateurs dans tout le pays. Dans l'ensemble, nous devons d'abord nous assurer que le système peut être stable et évolutif de manière élastique. , Cependant, puisque toutes les machines ont un coût, nous devons ici considérer un équilibre, comment bien et efficacement assurer le service, et en même temps s'assurer que le système peut être suffisamment stable ?

Derrière cette activité, nous avons utilisé de nombreux services Tencent Cloud, notamment l'accélération statique, l'équilibrage de charge, les serveurs cloud, le stockage d'objets et certains calculs GPU. Plus tard, il a été constaté que les performances du CPU pouvaient répondre à nos besoins, nous n'avons donc pas utilisé le GPU par la suite, car la charge du CPU est encore relativement élevée, mais en fait cet ensemble de processus peut être exécuté comme ça. Dans des circonstances normales, nous utiliserons d'abord SCD et le CDM à l'intérieur pour créer un cache statique vers le nud le plus proche de l'utilisateur, afin que tout le monde n'attende pas que l'image se charge lentement lors de la visite de la page H5, car ce sera Give it au client du téléphone mobile en une seule fois dans un centre de données le plus proche de votre domicile.

Ensuite, il passe à l'équilibreur de charge, qui charge le trafic vers les énormes machines virtuelles derrière lui. Dans différentes zones, comme Pékin, Chengdu aura plusieurs ELB... Cet ELB sera monté avec de nombreux CVM différents, c'est-à-dire des machines virtuelles. Toutes les photos téléchargées par tout le monde sont appariées sur chaque CVM. Pour générer des résultats, puis certaines informations de processus, nous les stockerons également sur COS. Ce stockage COS n'a pas de limite de taille, de sorte que divers besoins peuvent être satisfaits.

Ce mécanisme s'est avéré très efficace à l'heure actuelle, et nombre de nos activités futures continueront d'apporter des optimisations à l'architecture. Si vous avez une bonne idée ou un modèle à mettre en place, vous pouvez également essayer d'utiliser les services cloud, qui sont les plus économiques et les plus efficaces.

Matrice de solutions de produits Tencent Cloud AI

6. Suggestions de compétences avancées

Enfin, parlons de quelques suggestions d'évolution de compétences. Si nous voulons progresser dans le sens de l'IA, que devons-nous faire ? Il y a une pyramide à droite, qui indique que nous voulons compléter un produit d'IA, et le nombre de main-d'uvre dont nous avons besoin.L'algorithme d'IA peut être très central, mais il nécessite un nombre relativement restreint de personnes. La co-implémentation est intermédiaire, vous avez besoin d'un peu plus de développement de bas niveau. En raison du même modèle d'algorithme, vous pouvez avoir un grand nombre d'applications et la quantité de main-d'uvre requise pour le développement et l'application du produit est la plus importante.

Qu'allons-nous faire en termes de recherche d'algorithmes ? La première consiste à établir une base mathématique solide. Parce que l'apprentissage automatique utilise beaucoup de connaissances mathématiques qui sont plus complexes que les mathématiques avancées au collège, ces connaissances exigent que chacun fasse des recherches tôt pour établir une base solide, ce qui nécessite de lire beaucoup d'articles. En même temps, j'ai aussi besoin d'exercer ma capacité à comprendre et à assimiler de nouvelles réalisations académiques. Par exemple, j'ai mentionné un problème de classification d'images de réseaux de neurones. En fait, en seulement dix ans, l'évolution de tant de réseaux différents s'est réalisée Le réseau l'a proposé, mais il n'a même pas été publié, mais il est dans la bibliothèque pré-publiée. Chacun doit rapidement l'assimiler et le comprendre, et vouloir en faire un modèle exécutable. Cela nécessite une pratique répétée.

La deuxième partie est la mise en uvre de l'ingénierie. Si vous souhaitez vous engager dans cet aspect, vous devez d'abord renforcer votre capacité à encapsuler des algorithmes logiques et faire de votre mieux pour exercer votre capacité à former et à optimiser des modèles. Dans ce domaine, vous devrez mettre en uvre un algorithme conçu dans le code. , et constamment ajuster et optimiser pour obtenir les meilleurs résultats. Ce processus nécessite également une formation répétée.

La dernière direction est l'application du produit.Tout d'abord, chacun doit avoir certaines capacités de développement, qu'il s'agisse de développement mobile ou de développement Web, et en même temps améliorer sa compréhension et son application des scénarios de produits d'IA. En fait, de nombreux produits d'IA sont assez différents des produits traditionnels en termes de compréhension. Vous devrez peut-être mettre à jour votre propre réflexion et voir comment certains produits d'IA fonctionnent actuellement. S'il y a de bonnes idées, essayez-les davantage. expérience. Dans le même temps, si nous voulons transformer un modèle d'IA en un produit populaire utilisé par des millions et des dizaines de millions d'utilisateurs, nous avons également besoin de capacités de construction et d'optimisation du système.

Ressources d'apprentissage de la vision par ordinateur

Chercheur de l'algorithme de Yunzhongshen: Explication détaillée de la technologie de suivi et des difficultés de suivi transversal | Million de personnes apprenez l'IA
Précédent
Cerveau de Meituan: méthode de modélisation et application du graphique des connaissances | Des millions de personnes apprennent l'IA
Prochain
Wenyin Internet Bao Jie: Analyse approfondie du développement clé des connaissances et du contexte technique | Des millions de personnes apprennent l'IA
Système de dialogue homme-machine basé sur un graphe de connaissances | Des millions de personnes apprennent l'IA
lac de printemps est pas facile, mais le lac de la maison peut encore parler de données ......
combat d'analyse des données Python: l'analyse de cohorte classique
La nouvelle application de l'épidémie vu la sagesse de la scène médicale, la sagesse médicale de développement de ce que d'autres possibilités?
Drops open source Nightingale Nightingale: solutions de surveillance de classe entreprise
Baidu créé hôpital Internet, les étudiants de recruter des ongles aux produits d'expérience division; iOS 13.4 en ligne | Geeks titres
Ces mauvaises habitudes détruisent les dents, encore votre coup? Yantai hôpital dentaire professionnel avec vous un RECONNAÎTRE
rue Philippine vaccination contre la propagande hardcore cercueil: soit rester à la maison ou couché dans le cercueil
Laiyang 16 ans vieux haut parents recharge Voyage à la main de jeu des élèves du secondaire ont dépensé plus de 20000 yuans
Weihai City Stadium et d'autres lieux intérieurs et extérieurs ouvrent demain
Regardez cri rythme ...... malade en phase terminale, Jinyintan président adhèrent à leur débarquement