Technosphäre fünf Jahre



Heute feiert das Technosphere-Projekt sein fünfjähriges Bestehen. Hier sind unsere Erfolge im Laufe der Jahre:

  • Die Ausbildung wurde von 330 Absolventen abgeschlossen.
  • Der Kurs hat 120 Studenten.
  • Der Unterricht wird von 30 Lehrern gehalten.
  • Der Lehrplan umfasst 250 Lektionen in 16 Disziplinen.
  • Die Schüler führen 71 DZ durch.
  • 8000 Benutzer.
  • Mehr als 100 Studenten begannen ihre Karriere bei der Mail.ru Group.

Am Ende der Ausbildung erstellen die Studenten ihre eigenen Abschlussprojekte, für die sie drei Monate Zeit haben. Und zu Ehren des fünften Jahrestages der Technosphäre haben wir die hellsten Abschlussarbeiten der letzten Jahre gesammelt. Die Absolventen selbst werden über ihre Projekte berichten.

"Heller Speicher"


Wsewolod Vikulin, Boris Kopin, Denis Kusmin

Zunächst wollten wir einen Bildretuschservice einrichten, mit dem wir auch Schwarzweißfotos einfärben können. Bei der Diskussion von Projekten mit Mentoren entstand die Idee, das OK-Team über diese Idee zu informieren. Daher beschlossen sie, eine spezielle Anwendung mit der Funktion zum Färben von Schwarzweißfotos des Krieges zu erstellen.

Dazu mussten wir die Architektur des neuronalen Netzwerks entwerfen, einen geeigneten Satz von Fotos zum Trainieren des Modells erstellen und die Anwendung auf der OK-Plattform ausführen.

Wir haben viele vorgefertigte neuronale Netze ausprobiert, aber keines von ihnen lieferte die gewünschte Qualität. Dann haben wir beschlossen, unsere eigenen zu erstellen. In der ersten Phase versuchte das neuronale Netzwerk, das RGB-Bild auf dem BW-Kanal vorherzusagen, aber das Ergebnis war mittelmäßig, weil das Netzwerk versuchte, alles in Grautönen zu färben.


Ein Beispiel für den Betrieb des ursprünglichen neuronalen Netzwerks.

Dann entschieden wir uns für ein zweites vorab trainiertes neuronales Netzwerk.

Mit seiner Hilfe konnten wir Zeichen sowohl aus dem Originalfarbfoto als auch aus dem vom ersten neuronalen Netzwerk gemalten extrahieren. Deshalb haben wir dem zweiten neuronalen Netzwerk beigebracht, zu verstehen, welche Farben bestimmten Objekten im wirklichen Leben innewohnen: Der Himmel ist blau, das Gras ist grün und so weiter. Zur Implementierung neuronaler Netze verwendeten wir das beliebte Pytorch-Framework.


Neue neuronale Netzwerkarchitektur.

Die Hauptsache war jedoch, dem Modell beizubringen, wie man die Gesichter der Menschen so realistisch wie möglich malt. Wir waren mit der Tatsache konfrontiert, dass unter den vorhandenen Datensätzen niemand für unsere Aufgabe geeignet war - wir brauchten große Fotos von Gesichtern mit natürlichem Hintergrund. Um unsere eigenen Bilder zu erstellen, haben wir zunächst eine Liste mit 5000 Prominenten erstellt. Dann wurden diese Namen in verschiedenen Suchmaschinen nach Bildern durchsucht. Mithilfe von Gesichtserkennungsmethoden wurden Bilder entfernt, die überhaupt keine Gesichter enthielten, und die am besten geeigneten Fragmente wurden auf den verbleibenden Fotos hervorgehoben. Also haben wir die notwendigen 600.000 Fotos gesammelt.

Als nächstes kam die Aufgabe der realistischen Bemalung einer Militäruniform.

Um es zu lösen, musste ich künstlich Militäruniformen mit verschiedenen Medaillen und Orden herstellen. Außerdem musste ich einige Farbfilme über den Krieg machen.


Beispiele für Fotos aus dem Trainingsset.

In Kombination mit einer beliebten Sammlung von Allzweckfotos erhielten wir 2,5 Millionen Fotos für das Training des neuronalen Netzwerks.

Wir haben einen funktionierenden Prototyp des neuronalen Netzwerks vorbereitet und mit der Entwicklung einer Anwendung auf der OK-Plattform begonnen. Dies ist eine Standard-Webanwendung mit Backend und Frontend. Wir waren für das Backend verantwortlich und das OK-Team übernahm das Frontend. Als wir die verfügbaren Ressourcen realistisch bewerteten, entschieden wir, dass es rationaler wäre, die aktuelle Architektur des Artisto-Projekts zu verwenden.

Zu diesem Zweck haben wir den Code des neuronalen Netzwerks auf das Lua Torch-Framework portiert und in der Umgebung implementiert.


Die Anwendungsoberfläche ist in Ordnung.

Am 9. Mai wurde unsere Anwendung für die millionenschweren Klassenkameraden von Odnoklassniki verfügbar, mehrere große Medien haben darüber geschrieben, und derzeit nutzen 230.000 Menschen den Dienst. Es war sehr schwierig, das Projekt in so kurzer Zeit umzusetzen, aber wir haben alles geschafft. Vielen Dank an unsere Mentoren Olga Schubert und Alexei Voropaev, die uns bei der Integration in OK geholfen haben. Wir danken auch der Infrastructure Development Group von Mail.ru Search für die Hilfe bei der Integration in das Artisto-Projekt und Dmitry Solovyov für wertvolle Ratschläge zur Architektur neuronaler Netze.

"Musikkarte"


Vladimir Bugaevsky, Dana Zlochevskaya, Ralina Shavalieva



Die Idee des Projekts wurde uns von den Mentoren Aleksey Voropaev und Dmitry Solovyov vorgeschlagen. Es war einmal ein Sony-Player, der Songs nach vier Stimmungen klassifizieren konnte. Heute hat die Technologie einen großen Schritt nach vorne gemacht, künstliche Intelligenz und neuronale Netze entwickeln sich aktiv und wir haben erkannt, dass wir etwas Cooleres tun können, das unsere Benutzer möchten - eine Musikkarte, die die Stimmung der Audioaufnahmen des VK-Benutzers visualisiert. Und sie haben beschlossen, es in Form einer Erweiterung für Chrome zu implementieren - es ist einfach zu installieren und bequem zu verwenden.

Natürlich haben wir zunächst die Ansätze untersucht, mit denen bereits die Stimmung der Musik bestimmt wurde. Nachdem wir ungefähr ein Dutzend wissenschaftliche Artikel gesehen hatten, stellten wir fest, dass fast niemand versucht hatte, neuronale Netze zu verwenden, um die Emotionen von Audioaufnahmen zu analysieren.

Eine weitere Schwierigkeit für uns war die Visualisierung von Emotionen. Es stellte sich heraus, dass es in der Psychologie viele Modelle zur Darstellung menschlicher Stimmungen gibt, von denen jedes seine eigenen Vor- und Nachteile hat. Wir haben uns für das sogenannte zirkumplexe räumliche Modell entschieden: Seine Idee ist, dass jede Emotion als Punkt im zweidimensionalen Raum dargestellt werden kann. Dank dieser Skala konnten wir die Stimmung seiner Audioaufnahmen für den Benutzer verständlich visualisieren.

Wir haben drei Arbeitsbereiche für die Anwendung identifiziert:

  • Der Serverteil akzeptiert Erweiterungsanforderungen, erstellt Spektrogramme, erstellt Prognosen und gibt sie an den Benutzer zurück.
  • Der Benutzerteil, mit dem die Person interagieren wird.
  • Neuronales Netzwerktraining: Vorbereitung des Trainingssatzes, Auswahl der Netzwerkarchitektur und des Lernprozesses selbst.

Der Arbeitsumfang war extrem groß, so dass sich jeder in allem versuchen konnte. Unser Team handelte sehr kohärent: Wir haben ständig verschiedene Wege gefunden, um bestimmte Probleme zu lösen, und uns gegenseitig dabei geholfen, die Merkmale der Implementierung einzelner Teile herauszufinden. Die Hauptschwierigkeit war eine extrem enge Frist von drei Monaten. Während dieser Zeit mussten wir die Entwicklung des Frontends (Schreiben in JavaScript lernen), die Feinheiten des Frameworks für das Training des neuronalen Netzwerks (PyTorch) von Grund auf verstehen und die Technologie der modularen Entwicklung (Docker) beherrschen. Jetzt arbeitet unsere Anwendung im Testmodus für mehrere Benutzer.

"Videofarbung für Profis"


Juri Admiralski, Denis Bibik, Anton Bogowski, George Kasparyants



Die Idee des Projekts entstand als Ergebnis der Analyse moderner Trends bei der Entwicklung neuronaler Netze zur Lösung von Aufgaben in der Verarbeitung von Computergrafiken und Multimedia-Inhalten. In diesem Bereich wurden bereits verschiedene Ansätze zum Färben einzelner Bilder vorgeschlagen, wobei dieses Problem beispielsweise bei der Verarbeitung alter Archivfotos auftritt. Andererseits hat der Erfolg kolorierter Versionen von sowjetischen Schwarzweißfilmen die Relevanz von Videofarbaufgaben gezeigt. Das manuelle Färben des Videos Frame für Frame ist eine äußerst zeitaufwändige Aufgabe, für die professionelle Studios erforderlich sind. Und von den Benutzern, die Farbversionen ihrer alten Videos erhalten möchten, verfügen nur wenige über die erforderlichen Fähigkeiten und haben genügend Zeit für das manuelle Färben, ganz zu schweigen vom Geld, um eine solche Aufgabe mit Hilfe professioneller Teams von Videostudios zu erledigen. Aus diesem Grund haben wir uns entschlossen, die bekannten Ansätze zum Färben anzuwenden und ein Editorprogramm zu erstellen, um die Komplexität des Färbens von Videos mithilfe neuronaler Netze erheblich zu reduzieren.

Die Hauptaufgabe, die bei der Entwicklung eines solchen Programms gelöst werden musste, bestand darin, beim Malen von Objekten im Rahmen die richtigen Farben zu erhalten. Wir sind mit der Tatsache konfrontiert, dass die klassischen Datensätze (z. B. ImageNet), die beim Training neuronaler Netze zur Lösung von Bildverarbeitungsproblemen verwendet werden, es uns nicht ermöglichen, eine gute automatische Färbung (ohne zusätzliche Informationen) zu erreichen. Beispielsweise wurden einige Objekte im Rahmen nicht erkannt und blieben im kolorierten Bild schwarzweiß. Ein weiteres Problem von Modellen nach dem Stand der Technik war die falsche Farbwahl zum Malen von Objekten - sowohl aufgrund der unbestimmten Aufgabe (Färbung der Kleidung) als auch aufgrund der falschen Definition seltener Objekte sowie von Objekten, die von Kompressionsartefakten betroffen sind. Beim Ändern von Rahmen wurde eine Farbänderung bei der Färbung von im Rahmen vorhandenen Objekten aufgrund der Instabilität der Modelle gegenüber kleinen Änderungen im Rahmen beobachtet.

Um dieses Problem zu lösen, haben wir die Methode der lokalen Farbstichwörter angewendet, mit der wir die richtige Farbzuordnung für das gesamte Objekt und korrekte Farbübergänge erzielen konnten, indem wir die Farben einzelner Punkte von Objekten festlegen. Gleichzeitig steuert das neuronale Netzwerk während des Färbens die Einhaltung der Grenzen von Objekten und Helligkeitsübergänge. Dieser Ansatz ermöglichte es uns, den Aufwand beim Färben einzelner Rahmen zu verringern (es war erforderlich, die Farben nur einzelner Punkte auf dem Rahmen explizit festzulegen, ohne Pinsel zu verwenden), und half, das Problem von Unterbestimmungen und Farbänderungen beim Umschalten zwischen Rahmen zu lösen. Darüber hinaus haben wir Modelle implementiert, mit denen Sie die Bewegung von Objekten im Rahmen verfolgen und Farbtipps verschieben können. Mit unserem Editorprogramm haben wir ein Fragment aus dem alten Schwarzweißfilm The Kid eingefärbt .


Ein Beispiel eines gemalten Rahmens aus dem Film Chaplin The Kid (1921).

Wir haben den Editor in Form einer Client-Standalone-Anwendung implementiert, in die das Video geladen wird, und dann werden Frames mit Farbtipps markiert. Sie können die Farbmodelle auf dem lokalen Computer oder auf der Rechenleistung eines Drittanbieters (z. B. Bereitstellen des Serverteils in der Cloud) berechnen, um Videos schneller zu verarbeiten.

Um den Editor zu erstellen, haben wir viel Arbeit geleistet, einschließlich Testen und Finalisieren von Modellen zum Färben und Verfolgen von Rahmenobjekten, Entwickeln einer Client-Server-Architektur für die Anwendung und Erarbeiten der Benutzerfreundlichkeit der Clientanwendung. Wir lernten die Feinheiten der Arbeit mit dem PyTorch-Framework, das die Arbeit neuronaler Netze implementiert, beherrschten das Qt 5-Framework für die Entwicklung einer Clientanwendung und lernten, wie man Django-REST und Docker zum Entwickeln und Bereitstellen eines Computer-Backends verwendet.


Ein Beispiel für eine Clientanwendung.

Vielen Dank an die Lehrer der Technosphäre für ihre engagierte Arbeit und das relevante Wissen, das Sie den Schülern vermitteln. Wir wünschen, dass das Projekt wächst und sich entwickelt!

* * *

Sie können sich bis zum 16. Februar um 10:00 Uhr unterpher.mail.ru für eine Schulung bewerben . Bitte beachten Sie, dass nur Studenten und Doktoranden der Moskauer Staatlichen Universität in der Technosphäre studieren können. M.V. Lomonosov.

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


All Articles