DeepPrivacy2を使って、人物の写真から顔や全身を別の人に入れ替えることで匿名化する方法をご紹介します。
Google colabを使用して簡単に実装することができますので、ぜひ最後までご覧ください。
今回の目標
・DeepPrivacy2とは
・画像の匿名化
・動画の匿名化
DeepPrivacy2とは
DeepPrivacy2 は、顔と全身を含む人間の匿名化のためのツールボックスです。
人物の写真から顔や全身を検出し、GANによって作り出された別の人に入れ替えることで匿名化を実現しています。
初代のDeepPrivacyと比較して、
①全身を匿名化できるようになったこと、
②顔の匿名化の品質と解像度が向上したこと
③StyleMCを使用して、テキスト プロンプトでガイドされた顔を匿名化すること
④コードのクリーンアップによる全体的な精度改善
といった点が改善されています。
DeepPrivacy2 は、3つの検出および統合ネットワークを介して個人を検出し、匿名化を実現しています。
詳細はリンク先を参照してください。
DeepPrivacy2の導入
それでは早速、DeepPrivacy2を使用するための準備をしていきましょう。
ここからはGoogle colabを使用して実装していきます。
まずはGPUを使用できるように設定をします。
「編集」タブから「ノートブックの設定」の中の「ハードウェア アクセラレータ」を「GPU」に設定。
Googleドライブをマウントします。
from google.colab import drive
drive.mount('/content/drive')
%cd ./drive/MyDrive
公式実装からクローンしてきます。
!git clone https://github.com/hukkelas/deep_privacy2.git
%cd deep_privacy2
次に必要なライブラリをインストールします。
!pip install -e .
入力画像と出力画像のフォルダをそれぞれ作成しておきます。
!mkdir inputs outputs
以上で準備が完了しました。
画像の匿名化
まずは画像の匿名化からです。
今回の以下の画像を使用します。
この画像を先ほど作成した「inputs」フォルダに保管します。
顔のみ匿名化
顔のみの匿名化を実装します。
「face.py」を実行することで、顔のみを置き換えることができます。
!python anonymize.py configs/anonymizers/face.py -i ./inputs/test.jpg -o ./outputs/face_test.jpg
なお、主な引数は以下の通りです。
!python anonymize.py configs/anonymizers/face.py -i ./inputs/test.jpg -o ./outputs/face_test.jpg
顔のみを置き換える場合は「configs/anonymizers/face.py」
-i 入力画像
-o 出力画像
--start-time, --st INTEGER 動画の匿名化の開始時間(秒)
--end-time, --et INTEGER 動画の匿名化の終了時間 (秒)
-detection-score-threshold 検出スコアの閾値
--visualize-detection 匿名化を実行せずに、検出結果のみを可視化する。
--track 検出をフレーム単位で追跡する。フレームに渡って検出を追跡する。
--seed INTEGER 画像生成のためのランダムシードを設定する。
--webcam ウェブカメラフィードから画像を読み込む
処理が終わると出力フォルダに以下の画像が保存されます。
顔のみがGANによって生成された画像に置き換わっています。
全身の匿名化
同様に全身のモデルも実装してみます。
!python anonymize.py configs/anonymizers/FB_cse.py -i ./inputs/test.jpg -o ./outputs/FB_cse_test.jpg
顔だけでなく、全身が別な人に置き換わっています。
動画の匿名化
次に動画の匿名化です。
画像の際と同様に、動画を「inputs」フォルダに保管します。
顔のみ匿名化
!python anonymize.py configs/anonymizers/face.py -i ./inputs/test.mp4 -o ./outputs/face_test.mp4
全身の匿名化
!python anonymize.py configs/anonymizers/FB_cse.py -i ./inputs/test.mp4 -o ./outputs/FB_cse_test.mp4
結果は以下の通りです。
まとめ
最後までご覧いただきありがとうございました。
今回はDeepPrivacy2を使って、人物の写真から顔や全身を別の人に入れ替えることで匿名化する方法を紹介しました。
このブログでは、画像処理に関する他の技術についても紹介していますので、ぜひ合わせてご覧ください。