`Cet article est également présenté ici. '' https://cloud.flect.co.jp/entry/2020/04/01/201158
Bonjour à tous.
La dernière fois, j'ai présenté comment traiter les images de caméra avec Teams et Zoom. Nous avons introduit une démo qui détecte un sourire et affiche une marque souriante. https://qiita.com/wok/items/0a7c82c6f97f756bde65
Cette fois, j'aimerais en présenter une version légèrement élargie, car j'ai essayé d'analyser les émotions en temps réel avec l'IA (Tensorflow). Plus précisément, comme indiqué ci-dessous, les émotions telles que la tristesse et la colère sont lues à partir des expressions faciales de la personne dans l'image, et l'image qui leur correspond est affichée à l'écran. Il semble que vous puissiez maintenant exprimer vos sentiments sans avoir à dire des mots lors d'une vidéoconférence. (Non attends ...)
Veuillez vous référer à Article précédent et définir v4l2loopback etc.
Cette fois, nous analyserons les émotions de la personne prise par la caméra et afficherons l'image correspondante dans la vidéo sur le flux vidéo. Nous utiliserons Tensorflow pour l'analyse des émotions, mais utilisons le modèle entraîné fourni par la licence MIT sur le site suivant.
https://github.com/oarriaga/face_classification
Commencez par cloner le script à partir du référentiel suivant et installez les modules requis comme auparavant.
$ git clone https://github.com/dannadori/WebCamHooker.git
$ cd WebCamHooker/
$ pip3 install -r requirements.txt
Ensuite, obtenez un modèle formé pour l'analyse des émotions du site précédent. De plus, cette fois, afin d'afficher une image appropriée, je jugerai également le sexe en même temps.
$ wget https://github.com/oarriaga/face_classification/raw/master/trained_models/emotion_models/fer2013_mini_XCEPTION.110-0.65.hdf5 -P models #Modèle d'analyse des émotions
$ wget https://github.com/oarriaga/face_classification/raw/master/trained_models/gender_models/simple_CNN.81-0.96.hdf5 -P models/ #Modèle de détermination du sexe
Aussi, empruntons à nouveau l'image de M. Toya.
$ 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
Parmi ce qui précède, la dernière commande supprime simplement la corbeille (crochets de fin) dans le nom de fichier.
L'exécution est la suivante. Une option a été ajoutée.
--Saisissez le numéro de périphérique webcam réel dans input_video_num. Pour / dev / video0, entrez le 0 de fin. --Spécifiez le fichier de périphérique du périphérique de webcam virtuelle pour output_video_dev. --Définissez emotion_mode sur True.
De plus, veuillez utiliser ctrl + c pour le terminer.
$ python3 webcamhooker.py --input_video_num 0 --output_video_dev /dev/video2 --emotion_mode True
Lorsque vous exécutez la commande ci-dessus, ffmpeg s'exécute et la vidéo commence à être livrée au périphérique de caméra virtuelle.
Comme auparavant, lorsque vous avez une visioconférence, vous verrez quelque chose comme factice ~ ~ dans la liste des appareils vidéo, alors sélectionnez-le. Ceci est un exemple de Teams. La chaîne de caractères en haut de l'écran change selon l'expression et l'image correspondante s'affiche en conséquence. C'est un grand succès.
Il peut être difficile de communiquer avec désinvolture car le travail à domicile est prolongé, mais je pense qu'il serait bon d'apporter ce genre de jeu aux vidéoconférences et d'activer les conversations. Je pense que nous pouvons faire plus, alors essayez-le.
Pour l'analyse des émotions par Tensorflow, je me suis référé au site suivant. (Ce site est introduit dans tensorflowjs)
https://book.mynavi.jp/manatee/detail/id=99887
Recommended Posts