![見出し画像](https://assets.st-note.com/production/uploads/images/107554089/rectangle_large_type_2_b64b0091477dd945281324d93f1627b4.png?width=1200)
「もうこりごりでやんす~」をweb会議でもするプログラム【アイリスアウト】
Introduction
web会議中などにアイリスアウトの演出で退場できるようにしたかった。
アイリスアウトってのはこういうやつ
![](https://assets.st-note.com/img/1686059158142-x1eQ2scUb4.png?width=1200)
動作デモ
表示されるウィンドウをアクティブにした状態で、'k'キーを押すことで状態が遷移。
「通常webカムモード」→「顔の中心まで黒背景が来る」→「完全に黒背景に飲まれる」→ 以下ループ
※ プライバシー保護のために、顔面をイラストでマスクしています。
※ 顔面素材は付属しません、自分で描いてください。
環境など
ライブラリとか
Python 3.10.11
numpy 1.23.1
opencv-python 4.7.0.72 (多分)
insightface 0.7.3
顔認識モジュールであるinsightfaceのインストールがなんか順番とか依存関係とかあって、めんどくさかった。
インストール後になんかエラー出たら、OpenCVを入れなおしたらイケた。
PCすぺっこ
windows 11 home
AMD Ryzen 5 5600X
DRAM 3600Hz 32GB
使用方法
pythonファイルは一つなのでそれを実行してください。
webカメラとして使う場合はOBSでキャプチャして、OBS仮想カメラで出力してください。
![](https://assets.st-note.com/img/1686059042175-UrFLHZR0ev.png?width=1200)
web会議などでアイリスアウトできるようにしました。
— おみくじV (@_omikuji) June 6, 2023
最悪の会議から「こりごりでやんす~」と撤退できます。https://t.co/IK1tw0o60g pic.twitter.com/Cy568mCPRD
機能
3つのウィンドウで、各処理を紹介する。
まず、左右のウィンドウで顔部分に変なイラストがくっついてるのはプライバシー保護兼イケメンが流出するのを防いでいるだけで、本筋の機能ではない。
顔検出
左のウィンドウのように、顔検出で顔の大きさと座標を取得している
ここでは、顔の大きさくらいに緑色の円を描画している
マスクの作成
アイリスアウトで迫って来る黒背景をマスクで表現
表示では白(255)と黒(0)だが、内情は1と0
マスクは顔の座標と大きさをベースに大きさを変化させる
2画像の乗算
カメラ画像とマスクを乗算することで、1の部分のみが残る
円形部分のみ元映像で、周囲は0(黒)になる
ソースコード
License
MIT
https://github.com/omikujiv/korigori/blob/main/LICENSE
Conclusion
変な顔のイラストはブルーアーカイブというゲームの主人公のご尊顔なのだが、意外と書くのが難しかった。
あと、顔認識が重いのでFPSが出にくい。
つくったはいいものの、使いどころは全くない。
ゴミです。