`Cet article est également présenté ici. '' https://cloud.flect.co.jp/entry/2020/03/31/162537
Bonjour à tous.
Actuellement, à la demande du gouverneur de Tokyo, notre société travaille en principe à domicile pour empêcher la propagation d'une nouvelle infection à coronavirus. Il y a beaucoup de gens qui prennent des mesures similaires, et je pense qu'il y a diverses difficultés, mais j'aimerais travailler ensemble pour surmonter cette chanson difficile.
Soit dit en passant, en règle générale, si vous travaillez à domicile pendant une longue période, vous pouvez être stressé, par exemple ne pas pouvoir avoir des conversations informelles qui ont lieu quotidiennement. Dans une telle situation, je voudrais créer une situation où vous pouvez rire et faire une pause, alors je voudrais vous présenter une petite histoire.
Le contenu est une méthode d'accrochage, de traitement et de livraison d'une webcam dans les vidéoconférences telles que Microsoft Teams et Zoom. Puisque je suis un utilisateur Linux, cette fois je vais l'introduire sous Linux. Je pense que d'autres plates-formes seront introduites quelque part.
De plus, je choisis le moment et le cas pour créer "une situation où même on peut rire et faire une pause", alors faites-le à vos risques et périls (^ _ ^) /.
Je pense que cela fonctionne bien sur la plupart des systèmes Linux, mais l'environnement avec lequel j'ai travaillé est Debian Buster.
$ cat /etc/debian_version
10.3
De plus, si python3 n'est pas inclus, veuillez l'installer.
$ python3 --version
Python 3.7.3
Cette fois, nous utiliserons une webcam virtuelle appelée v4l2loopback. https://github.com/umlaeute/v4l2loopback
Nous devons identifier le périphérique de webcam virtuelle à partir de la webcam réelle, alors vérifiez d'abord le fichier de périphérique pour la webcam réelle. Dans l'exemple ci-dessous, video0 et video1 semblent être attribués à la webcam réelle.
$ ls /dev/video*
/dev/video0 /dev/video1
Maintenant, introduisons le bouclage v4l2. Tout d'abord, git clone, make et installe.
$ git clone https://github.com/umlaeute/v4l2loopback.git
$ cd v4l2loopback
$ make
$ sudo make install
Chargez ensuite le module. A ce moment, il semble qu'il soit nécessaire d'ajouter exclusive_caps = 1 afin de le reconnaître notamment avec chrome. [https://github.com/umlaeute/v4l2loopback/issues/78]
sudo modprobe v4l2loopback exclusive_caps=1
Maintenant que le module est chargé, vérifions le fichier de l'appareil. Dans l'exemple ci-dessous, video2 a été ajouté.
$ ls /dev/video*
/dev/video0 /dev/video1 /dev/video2
ffmpeg Le moyen le plus simple d'envoyer des données à un appareil de webcam virtuelle est d'utiliser ffmpeg. Veuillez l'installer rapidement avec apt-get etc.
Cette fois, si un sourire est détecté, j'essaierai de traiter l'image. Lorsqu'un sourire est détecté, une marque de sourire s'affiche sur la vidéo.
Tout d'abord, clonez les fichiers dans le référentiel suivant pour installer le module.
$ git clone https://github.com/dannadori/WebCamHooker.git
$ cd WebCamHooker/
$ pip3 install -r requirements.txt
Obtenez le fichier en cascade à partir d'ici. Pour plus de détails sur le fichier en cascade, consultez la formule opencv. https://github.com/opencv/opencv/tree/master/data/haarcascades
$ wget https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_default.xml -P models/
$ wget https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_smile.xml -P models/
Empruntons la marque de sourire de M. Toya.
$ wget https://4.bp.blogspot.com/-QeM2lPMumuo/UNQrby-TEPI/AAAAAAAAI7E/cZIpq3TTyas/s160/mark_face_laugh.png -P images/
Ce serait bien d'avoir une structure de dossiers comme celle-ci.
$ ls -1
haarcascade_frontalface_default.xml
haarcascade_smile.xml
mark_face_laugh.png
webcamhooker.py
L'exécution est la suivante. Entrez le numéro de périphérique webcam réel dans --input_video_num. Pour / dev / video0, entrez le 0 de fin. Pour --output_video_dev, spécifiez le fichier de périphérique du périphérique de webcam virtuelle. De plus, veuillez utiliser ctrl + c pour le terminer.
$ python3 webcamhooker.py --input_video_num 1 --output_video_dev /dev/video2
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.
Lorsque vous faites un chat vidéo, vous verrez quelque chose comme factice ~ ~ dans la liste des appareils vidéo, alors sélectionnez-le. Ceci est un exemple de Teams. Pensez à la gauche et à la droite comme les écrans de chaque participant. L'utilisateur de gauche utilise ce périphérique de caméra virtuelle. Le côté droit est le côté récepteur. Lorsque vous souriez, vous verrez une marque de sourire. Grand succès (^ _ ^) /.
Maintenant que la communication en face à face est difficile, j'espère que vous pourrez en profiter encore plus en utilisant le chat vidéo. Cette fois, j'ai montré un exemple de détection d'un sourire et de traitement de l'image, mais je pense que divers traitements peuvent être effectués en utilisant opencv et d'autres outils en fonction de l'appareil. Veuillez essayer différentes choses!
Je me suis référé ici pour la détection de sourire avec opencv. https://qiita.com/fujino-fpu/items/99ce52950f4554fbc17d
Veuillez vous référer ici pour coller des images avec opencv. https://qiita.com/a2kiti/items/9672fae8e90c2da6f352
Recommended Posts