`Dieser Artikel wird auch hier vorgestellt. `` https://cloud.flect.co.jp/entry/2020/04/02/114756#f-459f23dc
In den vorherigen und zwei vorherigen Beiträgen habe ich vorgestellt, wie Kamerabilder mit Teams und Zoom verarbeitet werden. In diesen Beiträgen stellen wir eine Demo vor, die Lächeln und Emotionen (Ausdrücke) erkennt und eine Lächelnmarke anzeigt.
https://qiita.com/wok/items/0a7c82c6f97f756bde65 https://qiita.com/wok/items/06bdc6b0a0a3f93eab91
Dieses Mal habe ich es ein wenig erweitert und ein Experiment versucht, um das Bild in einen Animationsstil umzuwandeln und anzuzeigen, also werde ich es vorstellen. Zunächst denke ich, dass es schwierig ist, die CPU zu verwenden, da die Verzögerung etwas zu groß ist, um sie in Echtzeit in ein animationsähnliches Bild umzuwandeln. ~~ (Ich habe nicht versucht, ob es mit der GPU besser ist.) ~~ ➔ Ich habe es auf der GPU versucht. Es kommen ungefähr 15fps heraus. Es war wahnsinnig schnell.
Dann werde ich es sofort vorstellen.
Es scheint, dass es vor ungefähr einem halben Jahr in den Nachrichtenmedien veröffentlicht wurde, so viele von Ihnen wissen es vielleicht, aber die Methode zum Konvertieren von Fotos in einen Anime-Stil wird auf der folgenden Seite veröffentlicht.
https://github.com/taki0112/UGATIT
In diesem UGATIT scheint es im Gegensatz zur einfachen Konvertierung des image2image-Stils möglich geworden zu sein, auf Formänderungen zu reagieren, indem eine einzigartige Funktion namens AdaLIN hinzugefügt wird, die auf der sogenannten GAN-Technologie basiert, die Generator und Diskriminator verwendet. ist.
In our work, we propose an Adaptive Layer-Instance Normalization (AdaLIN) function to adaptively select a proper ratio between IN and LN. Through the AdaLIN, our attention-guided model can flexibly control the amount of change in shape and texture.
Einzelheiten finden Sie in diesem Dokument [^ 1] und im Kommentarartikel [^ 2]. Wenn Sie tatsächlich mit dem auf der obigen Seite veröffentlichten trainierten Modell konvertieren, sieht es so aus.
Es scheint nicht sehr gut zu konvertieren, wenn das Thema weit weg ist. Außerdem scheint mein Onkel nicht sehr gut damit umgehen zu können. Der in der Schulung verwendete Datensatz wird ebenfalls auf der obigen Seite veröffentlicht, scheint jedoch auf junge Frauen ausgerichtet zu sein, sodass dies die Ursache zu sein scheint. (Ich bin noch kein Onkel, ist das unmöglich?)
Wie oben erwähnt, scheint es notwendig zu sein, ein Bild in der Nähe des Motivs (Gesicht der Person) zu erstellen (≒ Gesicht nimmt den größten Teil des Bildschirms ein). Dieses Mal habe ich versucht, den Standort des Gesichts mit der bis zum letzten Mal eingeführten Gesichtserkennungsfunktion zu identifizieren, den Standort auszuschneiden und mit UGATIT zu konvertieren.
Einzelheiten zur Implementierung finden Sie im unten genannten Repository. [^ 3] [^ 3]: Ab dem 2. April 2020 ist der Quellcode verschmutzt, da er durch Hinzufügen und Hinzufügen erstellt wird. Refactor irgendwo)))
Bitte bereiten Sie v4l2loopback, Gesichtserkennungsmodell usw. unter Bezugnahme auf Artikel bis zum letzten Mal vor.
Klonen Sie das Skript nach wie vor aus dem folgenden Repository und installieren Sie die erforderlichen Module.
$ git clone https://github.com/dannadori/WebCamHooker.git
$ cd WebCamHooker/
$ pip3 install -r requirements.txt
UGATIT stellt offiziell Quellcode für Tensorflow und PyTorch zur Verfügung, aber es scheint, dass das einzige trainierte Modell die Tensorflow-Version ist. Holen Sie sich das und stellen Sie es bereit. Darüber hinaus scheint die Extraktion mit dem normalen Zip-Extraktions-Tool von Windows oder Linux fehlzuschlagen. Es gibt einen Bericht in der Ausgabe, dass 7zip unter Windows gut funktioniert. Außerdem scheint es auf dem Mac keine Probleme zu verursachen. Die Lösung für Linux ist unbekannt ... [^ 4] [^ 4]: Alle ab dem 2. April 2020
Derzeit wird der Hash-Wert (md5sum) des Modells beschrieben, das normal funktioniert. (Vielleicht ist dies der Stolperstein Nummer eins.)
$ find . -type f |xargs -I{} md5sum {}
43a47eb34ad056427457b1f8452e3f79 ./UGATIT.model-1000000.data-00000-of-00001
388e18fe2d6cedab8b1dbaefdddab4da ./UGATIT.model-1000000.meta
a08353525ecf78c4b6b33b0b2ab2b75c ./UGATIT.model-1000000.index
f8c38782b22e3c4c61d4937316cd3493 ./checkpoint
Speichern Sie diese Dateien in `` `UGATIT / checkpoint``` des Ordners, der von git oben geklont wurde. Wenn es so aussieht, ist es OK.
$ ls UGATIT/checkpoint/ -1
UGATIT.model-1000000.data-00000-of-00001
UGATIT.model-1000000.index
UGATIT.model-1000000.meta
checkpoint
Die Ausführung ist wie folgt. Eine Option wurde hinzugefügt.
Verwenden Sie außerdem Strg + C, um den Vorgang zu beenden.
$ python3 webcamhooker.py --input_video_num 0 --output_video_dev /dev/video2 --anime_mode True
Wenn Sie den obigen Befehl ausführen, wird ffmpeg ausgeführt und das Video wird an das virtuelle Kameragerät gesendet.
Wenn Sie eine Videokonferenz haben, wird nach wie vor etwas wie Dummy ~ ~ in der Liste der Videogeräte angezeigt. Wählen Sie es also aus. Dies ist ein Beispiel für Teams. Das Bild der Konvertierungsquelle wird auch durch Löschen in der oberen rechten Ecke des Bildschirms angezeigt. Es wird in einen Anime-Stil umgewandelt und mehr geliefert, als ich erwartet hatte. Es ist jedoch sehr schwer, und wenn es sich um einen etwas alten PC handelt, liegt er bei 1 Bild pro Sekunde (Intel (R) Core (TM) i7-4770-CPU bei 3,40 GHz, 32 G RAM). Es kann schwierig sein, normal zu arbeiten. Im Moment denke ich, dass es ein Aussteiger ist. Ich würde es gerne irgendwann auf der GPU ausprobieren.
Es mag schwierig sein, beiläufig zu kommunizieren, weil die Arbeit von zu Hause aus länger dauert, aber ich denke, es wäre gut, diese Art von Verspieltheit in Videokonferenzen einzubringen und Gespräche zu aktivieren. Ich denke, wir können mehr tun, also probieren Sie es bitte aus.
Recommended Posts