Technosphère cinq ans



Aujourd'hui, le projet Technosphère fête son cinquième anniversaire. Voici nos réalisations au fil des ans:

  • La formation a été complétée par 330 diplômés.
  • Le cours a 120 étudiants.
  • Les cours sont dispensés par 30 enseignants.
  • Le programme comprend 250 leçons dans 16 disciplines.
  • Les élèves effectuent 71 DZ.
  • 8000 utilisateurs.
  • Plus de 100 étudiants ont commencé leur carrière au sein du groupe Mail.ru.

A l'issue de la formation, les étudiants créent leurs propres projets de fin d'études pour lesquels ils bénéficient de trois mois. Et en l'honneur du cinquième anniversaire de la Technosphère, nous avons rassemblé les travaux de graduation les plus brillants de ces dernières années. Les diplômés eux-mêmes parleront de leurs projets.

"Bright Memory"


Vsevolod Vikulin, Boris Kopin, Denis Kuzmin

Dans un premier temps, nous avions prévu de créer un service de retouche d'images qui nous permettrait également de coloriser des photographies en noir et blanc. Lors de discussions sur des projets avec des mentors, une idée a surgi pour informer l'équipe OK de cette idée, et en conséquence, ils ont décidé de créer une application spéciale ayant pour fonction de coloriser des photographies en noir et blanc de la guerre.

Pour ce faire, nous avons dû concevoir l'architecture du réseau neuronal, créer un ensemble de photos adapté à la formation du modèle et exécuter l'application sur la plateforme OK.

Nous avons essayé de nombreux réseaux de neurones prêts à l'emploi, mais aucun d'entre eux n'a donné la qualité souhaitée. Ensuite, nous avons décidé de créer le nôtre. À la première étape, le réseau neuronal a essayé de prédire l'image RVB sur le canal BW, mais le résultat a été médiocre, car le réseau a essayé de tout colorier dans des tons de gris.


Un exemple du fonctionnement du réseau neuronal d'origine.

Ensuite, nous avons décidé d'utiliser un deuxième réseau neuronal pré-formé.

Avec son aide, nous avons pu extraire des signes à la fois de la photographie couleur originale et de celle qui a été peinte par le premier réseau neuronal. Nous avons donc appris au deuxième réseau de neurones à comprendre quelles couleurs sont inhérentes à certains objets dans la vie réelle: le ciel est bleu, l'herbe est verte, etc. Pour implémenter des réseaux de neurones, nous avons utilisé le framework Pytorch populaire.


Nouvelle architecture de réseau neuronal.

Mais l'essentiel était d'enseigner au modèle comment peindre le visage des gens de la manière la plus réaliste possible. Nous étions confrontés au fait que parmi les ensembles de données existants, il n'y avait personne adapté à notre tâche - nous avions besoin de grandes photos de visages avec un arrière-plan naturel. Pour former notre propre ensemble d'images, nous avons d'abord construit une liste de 5000 noms de célébrités. Ensuite, ces noms ont été recherchés pour des images dans divers moteurs de recherche. En utilisant des méthodes de reconnaissance des visages, les photos qui ne contenaient pas de visages ont été supprimées et les fragments les plus appropriés ont été mis en évidence dans les autres photos. Nous avons donc collecté l'ensemble nécessaire de 600 mille photos.

Vint ensuite la tâche de peindre de façon réaliste un uniforme militaire.

Pour le résoudre, j'ai dû générer artificiellement des uniformes militaires avec diverses médailles et ordres. De plus, j'ai dû réaliser des films couleur sur la guerre.


Exemples de photos de l'ensemble d'entraînement.

En combinant tout cela avec un ensemble populaire de photographies à usage général, nous avons reçu 2,5 millions de photographies pour la formation du réseau neuronal.

Nous avons préparé un prototype fonctionnel du réseau neuronal et commencé à développer une application sur la plate-forme OK. Il s'agit d'une application Web standard avec un backend et un frontend. Nous étions responsables du backend, et l'équipe OK a repris le frontend. En évaluant de manière réaliste les ressources disponibles, nous avons décidé qu'il serait plus rationnel d'utiliser l'architecture actuelle du projet Artisto.

Pour ce faire, nous avons porté le code du réseau de neurones dans le framework Lua Torch et l'avons implémenté dans l'environnement.


L'interface d'application est OK.

Le 9 mai, notre application est devenue disponible pour les camarades de classe de plusieurs millions de dollars d'Odnoklassniki, plusieurs grands médias ont écrit à ce sujet, et actuellement 230 000 personnes utilisent le service. La mise en œuvre du projet a été très difficile en si peu de temps, mais nous avons tout géré. Un grand merci à nos mentors Olga Schubert et Alexei Voropaev, qui nous ont aidés à l'intégration dans OK. Nous remercions également le Infrastructure Development Group de Mail.ru Search pour son aide à l'intégration dans le projet Artisto, et séparément Dmitry Solovyov pour ses précieux conseils sur l'architecture des réseaux de neurones.

"Carte musicale"


Vladimir Bugaevsky, Dana Zlochevskaya, Ralina Shavalieva



L'idée du projet nous a été suggérée par les mentors Aleksey Voropaev et Dmitry Solovyov. Il était une fois un joueur Sony qui pouvait classer les chansons selon quatre humeurs. Aujourd'hui, la technologie a fait un grand pas en avant, l'intelligence artificielle et les réseaux de neurones se développent activement, et nous avons réalisé que nous pouvions faire quelque chose de plus cool que nos utilisateurs aimeraient - une carte musicale qui permettrait de visualiser l'ambiance des enregistrements audio de l'utilisateur VK. Et ils ont décidé de l'implémenter sous la forme d'une extension pour Chrome - il est facile à installer et pratique à utiliser.

Naturellement, nous avons commencé par explorer les approches déjà utilisées pour déterminer l'ambiance de la musique. Après avoir regardé une dizaine d'articles scientifiques, nous avons réalisé que presque personne n'avait essayé d'utiliser les réseaux de neurones pour analyser les émotions des enregistrements audio.

Une autre difficulté pour nous était la tâche de visualiser les émotions. Il s'est avéré qu'en psychologie, il existe de nombreux modèles de représentation des humeurs humaines, chacun ayant ses avantages et ses inconvénients. Nous nous sommes installés sur le modèle spatial dit circumplex: son idée est que toute émotion peut être représentée comme un point dans un espace bidimensionnel. Grâce à cette échelle, nous avons pu visualiser l'ambiance de ses enregistrements audio de manière compréhensible pour l'utilisateur.

Nous avons identifié trois fronts de travail sur l'application:

  • La partie serveur acceptera les demandes d'extension, construira des spectrogrammes, fera des prévisions et les renverra à l'utilisateur.
  • La partie utilisateur avec laquelle la personne va interagir.
  • Formation au réseau neuronal: préparation de l'ensemble de formation, choix de l'architecture du réseau et du processus d'apprentissage lui-même.

La portée du travail était extrêmement grande, donc tout le monde pouvait s'essayer à tout. Notre équipe a agi de manière très cohérente: nous avons constamment trouvé différentes façons de résoudre certains problèmes et nous nous sommes aidés à comprendre les caractéristiques de la mise en œuvre des pièces individuelles. La principale difficulté que nous avons rencontrée a été un délai extrêmement serré de trois mois. Pendant ce temps, nous avons dû comprendre à partir de zéro le développement du frontend (apprendre à écrire en JavaScript), les subtilités du cadre de formation du réseau neuronal (PyTorch) et maîtriser la technologie du développement modulaire (Docker). Maintenant, notre application fonctionne en mode test pour plusieurs utilisateurs.

«Colorisation vidéo pour les professionnels»


Yuri Admiralsky, Denis Bibik, Anton Bogovsky, George Kasparyants



L'idée du projet est née de l'analyse des tendances modernes dans le développement de réseaux de neurones pour résoudre les problèmes d'infographie et de traitement de contenu multimédia. Plusieurs approches différentes pour colorer des images individuelles ont déjà été proposées dans ce domaine; ce problème se pose, par exemple, lors du traitement d'anciennes photographies d'archives. D'un autre côté, le succès des versions colorisées des films soviétiques en noir et blanc a montré la pertinence des tâches de coloriage vidéo. La coloration manuelle de la vidéo, image par image, est une tâche extrêmement longue, dont la solution nécessite la participation de studios professionnels. Et parmi les utilisateurs qui souhaitent obtenir des versions couleur de leurs anciennes vidéos, peu possèdent les compétences nécessaires et ont suffisamment de temps pour la coloration manuelle, sans parler de l'argent pour effectuer une telle tâche avec l'aide d'équipes professionnelles de studios vidéo. Par conséquent, nous avons décidé d'essayer d'appliquer les approches bien connues de la coloration et de créer un programme d'édition pour réduire considérablement la complexité de la coloration des vidéos à l'aide de réseaux de neurones.

La tâche principale qui devait être résolue lors du développement d'un tel programme était d'obtenir les bonnes couleurs lors de la peinture d'objets dans le cadre. Nous sommes confrontés au fait que les ensembles de données classiques (par exemple, ImageNet) utilisés dans la formation des réseaux de neurones pour résoudre les problèmes de traitement d'image ne nous permettent pas d'obtenir une bonne coloration automatique (sans aucune information supplémentaire). Par exemple, certains objets du cadre n'étaient pas reconnus et restaient en noir et blanc dans l'image colorisée. Un autre problème des modèles de pointe était le mauvais choix de couleurs pour la peinture des objets - à la fois en raison de la tâche indéterminée (coloration des vêtements) et en raison d'une définition incorrecte des objets rares, ainsi que des objets affectés par des artefacts de compression. Lors du changement de cadres, un changement de couleur a été observé dans la coloration des objets présents dans le cadre en raison de l'instabilité des modèles à de petits changements dans le cadre.

Pour résoudre ce problème, nous avons appliqué la méthode des repères de couleurs locaux , ce qui nous a permis d'obtenir la bonne attribution de couleurs pour l'objet entier et de bonnes transitions de couleurs en définissant les couleurs des points individuels des objets. Dans le même temps, le réseau neuronal lors de la coloration contrôle l'observation des frontières des objets et des transitions de luminosité. Cette approche nous a permis de réduire la lourdeur de la coloration des images individuelles (il était nécessaire de définir explicitement les couleurs de seuls points individuels sur l'image, sans utiliser de pinceaux), et a aidé à résoudre le problème des sous-déterminations et des changements de couleur dans la transition entre les images. De plus, nous avons mis en œuvre des modèles qui vous permettent de suivre le mouvement des objets dans le cadre et de déplacer des indices de couleur. À l'aide de notre programme d'édition, nous avons colorisé un fragment du vieux film en noir et blanc The Kid .


Un exemple d'un cadre peint du film Chaplin The Kid (1921).

Nous avons implémenté l'éditeur sous la forme d'une application client autonome, dans laquelle la vidéo est chargée, puis les images sont marquées à l'aide de conseils de couleur. Vous pouvez calculer les modèles de coloration sur la machine locale ou sur la puissance de calcul tierce (par exemple, déployer la partie serveur dans le cloud) pour traiter la vidéo plus rapidement.

Pour créer l'éditeur, nous avons fait un excellent travail, notamment en testant et en finalisant des modèles de coloration et de suivi des objets de cadre, en développant une architecture d'application client-serveur et en développant une application client utilisable. Nous avons appris les subtilités de travailler avec le framework PyTorch qui implémente le travail des réseaux de neurones, maîtrisé le framework Qt 5 pour développer une application client, et appris à utiliser Django-REST et Docker pour développer et déployer un backend informatique.


Un exemple d'application client.

Merci aux professeurs de la Technosphère pour leur travail dévoué, pour les connaissances pertinentes que vous donnez aux étudiants. Nous souhaitons que le projet grandisse et se développe!

* * *

Vous pouvez postuler pour une formation jusqu'à 10h00 le 16 février sur sphère.mail.ru . Veuillez noter que seuls les étudiants et les étudiants diplômés de l'Université d'État de Moscou peuvent étudier dans la technosphère. M.V. Lomonosov.

Source: https://habr.com/ru/post/fr439988/


All Articles