[PYTHON] So verarbeiten Sie Kamerabilder mit Teams und Zoom Volumen der Emotionsanalyse mit Tensorflow

`Dieser Artikel wird auch hier vorgestellt. `` https://cloud.flect.co.jp/entry/2020/04/01/201158

Hallo zusammen.

Letztes Mal habe ich vorgestellt, wie man Kamerabilder mit Teams und Zoom verarbeitet. Wir haben eine Demo eingeführt, die ein Lächeln erkennt und ein Lächeln zeigt. https://qiita.com/wok/items/0a7c82c6f97f756bde65

Dieses Mal möchte ich eine leicht erweiterte Version davon vorstellen, da ich versucht habe, Emotionen mit AI (Tensorflow) in Echtzeit zu analysieren. Wie unten gezeigt, werden Emotionen wie Traurigkeit und Wut aus den Gesichtsausdrücken der Person auf dem Bild abgelesen, und das zu ihnen passende Bild wird auf dem Bildschirm angezeigt. Es scheint, dass Sie jetzt Ihre Gefühle vermitteln können, ohne in einer Videokonferenz Worte sagen zu müssen. (Nein, warte ...)

out2.gif

Annahme

Bitte lesen Sie Vorheriger Artikel und setzen Sie v4l2loopback usw.

Webkamera-Hakenerweiterung

Dieses Mal analysieren wir die Emotionen der von der Kamera aufgenommenen Person und zeigen das entsprechende Bild im Video im Videostream an. Wir werden Tensorflow für die Emotionsanalyse verwenden, aber verwenden wir das trainierte Modell, das von der MIT-Lizenz an der folgenden Stelle bereitgestellt wird.

https://github.com/oarriaga/face_classification

Klonen Sie zunächst das Skript aus dem folgenden Repository und installieren Sie die erforderlichen Module wie zuvor.

$ git clone https://github.com/dannadori/WebCamHooker.git
$ cd WebCamHooker/
$ pip3 install -r requirements.txt

Als nächstes erhalten Sie ein geschultes Modell für die Emotionsanalyse von der vorherigen Site. Außerdem werde ich dieses Mal gleichzeitig das Geschlecht beurteilen, um ein angemessenes Bild anzuzeigen.

$ wget https://github.com/oarriaga/face_classification/raw/master/trained_models/emotion_models/fer2013_mini_XCEPTION.110-0.65.hdf5 -P models #Modell für die Emotionsanalyse
$ wget https://github.com/oarriaga/face_classification/raw/master/trained_models/gender_models/simple_CNN.81-0.96.hdf5 -P models/ #Modell zur Geschlechtsbestimmung

Lassen Sie uns das Bild auch noch einmal von Mr. Toya ausleihen.

$ wget https://4.bp.blogspot.com/-8DirG_alwXo/V5Xc1SMykvI/AAAAAAAA8u4/krI2n_SWimUBGEyMWCw5kZZ-HzoUKrY8ACLcB/s800/pose_sugoi_okoru_woman.png -P images/
$ wget https://4.bp.blogspot.com/-EBpxVigkCCY/V5Xc1CHSeEI/AAAAAAAA8u0/9XIAzDJaQNU3HIiXi4PCPK3aMip3aoGyACLcB/s800/pose_sugoi_okoru_man.png -P images/

$ wget https://4.bp.blogspot.com/-HJ0FUQz67AA/XAnvUxSRsLI/AAAAAAABQnM/3XzIWzvW6L80aGB-geaHvAQETlJTAwkYQCLcBGAs/s800/business_woman2_4_think.png -P images/
$ wget https://3.bp.blogspot.com/-S7iQQCOgfWY/XAnvQWwBGtI/AAAAAAABQmc/z7yIqGjIQr88Brc_QNdOGsrJRLvqY1hcQCLcBGAs/s800/business_man2_4_think.png -P images/

$ wget https://4.bp.blogspot.com/-PQQV4wfGlNI/XAnvQBMeneI/AAAAAAABQmU/lN7zIROor9oi3q-JZOBJiKKzfklzPE1hwCLcBGAs/s800/business_man2_2_shock.png] -P images/
$ wget https://3.bp.blogspot.com/-QcDbWqQ448I/XAnvUT4TMDI/AAAAAAABQnE/_H4XzC4E93AEU2Y7fHMDBjri1drdyuAPQCLcBGAs/s800/business_woman2_2_shock.png -P images/

$ wget https://3.bp.blogspot.com/-dSPRqYvIhNk/XAnvPdvjBFI/AAAAAAABQmM/izfRBSt1U5o7eYAjdGR8NtoP4Wa1_Zn8ACLcBGAs/s800/business_man1_4_laugh.png -P images/
$ wget https://1.bp.blogspot.com/-T6AOerbFQiE/XAnvTlQvobI/AAAAAAABQm8/TYVdIfxQ5tItWgUMl5Y0w8Og_AZAJgAewCLcBGAs/s800/business_woman1_4_laugh.png -P images/

$ wget https://4.bp.blogspot.com/-Kk_Mt1gDKXI/XAnvS6AjqyI/AAAAAAABQm4/LQteQO7TFTQ-KPahPcAqXYannEArMmYfgCLcBGAs/s800/business_woman1_3_cry.png -P images/
$ wget https://4.bp.blogspot.com/-3IPT6QIOtpk/XAnvPCPuThI/AAAAAAABQmI/pIea028SBzwhwqysO49pk4NAvoqms3zxgCLcBGAs/s800/business_man1_3_cry.png -P images/

$ wget https://3.bp.blogspot.com/-FrgNPMUG0TQ/XAnvUmb85VI/AAAAAAABQnI/Y06kkP278eADiqvXH5VC0uuNxq2nnr34ACLcBGAs/s800/business_woman2_3_surprise.png -P images/
$ wget https://2.bp.blogspot.com/-i7OL88NmOW8/XAnvQacGWuI/AAAAAAABQmY/LTzN4pcnSmYLke3OSPME4cUFRrLIrPsYACLcBGAs/s800/business_man2_3_surprise.png -P images/

$ cp images/lN7zIROor9oi3q-JZOBJiKKzfklzPE1hwCLcBGAs/s800/business_man2_2_shock.png]  images/lN7zIROor9oi3q-JZOBJiKKzfklzPE1hwCLcBGAs/s800/business_man2_2_shock.png

Mit dem letzten Befehl wird nur der Papierkorb (Endklammern) im Dateinamen entfernt.

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 --emotion_mode True

Wenn Sie den obigen Befehl ausführen, wird ffmpeg ausgeführt und das Video wird an das virtuelle Kameragerät gesendet.

Lassen Sie uns eine Videokonferenz haben!

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. Die Zeichenfolge am oberen Bildschirmrand ändert sich je nach Ausdruck, und das entsprechende Bild wird entsprechend angezeigt. Es ist ein großer Erfolg. out2.gif

Schließlich

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.

Referenz

Für die Emotionsanalyse von Tensorflow habe ich auf die folgende Site verwiesen. (Diese Seite wird in tensorflowjs eingeführt)

https://book.mynavi.jp/manatee/detail/id=99887

Recommended Posts

So verarbeiten Sie Kamerabilder mit Teams und Zoom Volumen der Emotionsanalyse mit Tensorflow
So verarbeiten Sie Kamerabilder mit Teams und Zoom
So verarbeiten Sie Kamerabilder mit Teams und Zoom Verarbeitungsvolumen im Animationsstil
Freigeben von Ordnern für Docker und Windows mit Tensorflow
[How to!] Lerne und spiele Super Mario mit Tensorflow !!
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
So suchen Sie mit Pythons Astroquery und erhalten passende Bilder mit Skyview
So zeigen Sie Bilder kontinuierlich mit matplotlib Memo an
Erfahren Sie, wie Sie Bilder aus dem TensorFlow-Code aufblasen
[Linux] Anzeigen der CPU-Auslastung mit dem Befehl ps, Anzeigen des Headers und nicht Anzeigen des Grep-Prozesses
So extrahieren Sie Nullwerte und Nicht-Nullwerte mit Pandas
So schleifen und spielen Sie ein GIF-Video mit openCV ab
[TensorFlow] Ich möchte Fenster mit Ragged Tensor verarbeiten
Ich habe versucht, Grad-CAM mit Keras und Tensorflow zu implementieren
[TF] Speichern und Laden von Tensorflow-Trainingsparametern
Wie man einen bestimmten Prozess am Anfang und Ende der Spinne mit Scrapy einfügt
So erstellen Sie mit Flask einen BOT für Cisco Webex-Teams
[TensorFlow 2 / Keras] Ausführen des Lernens mit CTC Loss in Keras
So laden Sie keine Bilder, wenn Sie PhantomJS mit Selen verwenden
[Python] Wie man mit Klassenvariablen mit Dekorator und Metaklasse spielt
TensorFlow-Lernmethode für Profis der freien Künste und Python-Anfänger
Konvertieren Sie verstümmelte gescannte Bilder mit Pillow und PyPDF in PDF
So erstellen Sie einen Datenrahmen und spielen mit Elementen mit Pandas
So melden Sie sich mit Python bei AtCoder an und senden automatisch
Emotionsanalyse von Python (word2vec)
Wie aktualisiere ich mit SQLAlchemy?
Wie man mit Theano besetzt
Wie mit SQLAlchemy ändern?
So trennen Sie Zeichenfolgen mit ','
Wie man RDP auf Fedora31 macht
Wie lösche ich mit SQLAlchemy?
Text Emotionsanalyse mit ML-Ask
So legen Sie eine Verknüpfung fest, um in IBus zwischen voller und halber Breite zu wechseln
Erstellen eines sequentiellen Tensorflow-Modells mit einem zu MNIST hinzugefügten Originalbild
So importieren Sie CSV- und TSV-Dateien mit Python in SQLite
Umgang mit Fehlern bei der Installation von Whitenoise und der Bereitstellung auf Heroku
Korrespondenzanalyse von Sätzen mit COTOHA API und Speichern in Datei
So führen Sie Jupyter und Spark auf einem Mac mit minimalen Einstellungen aus
So installieren Sie Pandas auf EC2 (Umgang mit MemoryError und PermissionError)
[C-Sprache] So erstellen, vermeiden und erstellen Sie einen Zombie-Prozess
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Umgang mit Fehlern bei der Installation von Python und Pip mit Choco
Erklärt, wie TensorFlow 2.X mit der Implementierung von VGG16 / ResNet50 verwendet wird
Node.js: So töten Sie Nachkommen eines Prozesses, der von child_process.fork () gestartet wurde
So erstellen Sie eine Python- und Jupyter-Ausführungsumgebung mit VSCode
Der schnellste Weg, um regelmäßig Kamerabilder mit Pythons OpenCV zu erhalten
[Python] Versuchen Sie, Zeichen aus Bildern mit OpenCV und pyocr zu erkennen
So fügen Sie OpenCV in Raspberry Pi ein und sammeln mit Python ganz einfach Bilder von Gesichtserkennungsergebnissen