コロナことCOVID-19のせいで、ZoomやらGoogleハングアウトやらそのあたりのサービスがよく使われるようになりました。 でWebカメラなんかから画像を垂れ流すわけですが、垂れ流す画像, 自分でプログラマブルに加工したいですよね...?
というわけでこんなの作りました。 github.com
Linux限定ですが、Webカメラから画像取得->CNNで画像変換->仮想Webカメラ->Googleハングアウト(など)、みたいな流れをやっています。 Webカメラから画像取得、変換、仮想カメラに垂れ流す、まですべてPythonで書かれているので、いくらでも自由にいじることができます。 ほんとはAnimeGAN動かそうと思ったけどリアルタイムは無理でしたねぇ...
Ubuntuで動かしていますが、別に他のディストーションでも動くんじゃないかな。
Linux向けにv4l2loopbackという大変気の利いたしろものがあり、コマンドちょろっと叩くだけで簡単に仮想Webカメラが使えるようになります。 これをpyfakewebcamというのを使ってPythonから叩いているわけですね。v4l2loopbackの簡単な使い方もREADMEに書いておいたので、ぜひ。
というわけでv4l2loopbackとpyfakewebcamを使うことで簡単に垂れ流す画像を差し替えることができました。めでたしめでたし。 (現実の画像から乖離すればするほど変換がリアルタイムでも、受信がカクツクのはエンコードとかの問題なのかしら...?)
コロナのバカーっ!