顔領域,手領域の匿名化(HypoX64/DeepMosaics を使用)

顔領域,手領域の匿名化を行う

利用条件などは利用者において確認してください

謝辞:DeepMosaics の作者に感謝します

前準備(作者が公開しているファイルをダウンロード,展開)

  1. Web ページを開く

    https://github.com/HypoX64/DeepMosaics/

  2. ダウンロードのリンクをクリック(「Google Drive」をクリック).
  3. ダウンロードする
  4. 展開(解凍)する

    このとき,どのディレクトリ(フォルダ)に展開(解凍)したか,確認しておくこと.

    Windows での展開(解凍)に便利な 7-Zip: 別ページ »で説明
  5. 付属の hands_test.mp4 を再生してみる
    手の動画である
  6. 先ほどのページで,pretrained_model をダウンロードする
    右クリックメニューで「Download」を選ぶ.しばらく待つ.
  7. ダウンロードした .zip ファイルを,展開(解凍)する.
    Windows での展開(解凍)に便利な 7-Zip: 別ページ »で説明
  8. 展開(解凍)してできたファイルを確認する
  9. いま展開(解凍)してできたファイルはすべて,DeepMosaics を展開(解凍)してできたディレクトリに移動しておくと分かりやすい

GUI で使ってみる

  1. DeepMosaics を起動する
  2. 「step 1: choose video or image」は,動画ファイルもしくは画像ファイルを選択する. ここでは,hands_test.mp4 を選択してみる
  3. 「step 2: choose pretrained model」は,学習済みモデルの設定である.
    手を扱いたいときは,add_hands_128.pth, 顔を扱いたいときは,add_face_128.pth を使う
  4. 「Run」をクリックすると,処理が始まる
  5. result の下に結果のファイルができるので確認
  6. 再生してみる

    Windows 付属の Windows Media Player でうまく再生できないときは,VLC media player など,他の動画プレイヤーをインストールし試してみること.

  7. 演習:顔が写っている写真,ビデオを入手.顔なので,「add_face_128.pth」を使ってみなさい.

Python プログラムから使ってみる

GUI は 1 件ずつファイルを指定して処理する形になっているが,DeepMosaics は本体(deepmosaic.py)をコマンドラインから呼び出すこともできる.
ここでは,指定したフォルダに含まれる画像・動画ファイルすべてに対し,順番に「顔(または手)領域へのモザイク追加」処理を行う Python プログラムを示す.
DeepMosaics 自身が結果ファイルを result フォルダに出力するので,このプログラム側では出力先を指定するだけでよい.
  1. 次のプログラムを,DeepMosaics を展開(解凍)してできたディレクトリの直下に保存する(例:batch_add_mosaic.py).
    # DeepMosaics の deepmosaic.py を用いて,
    # 指定フォルダ内の画像・動画すべてに,顔または手のモザイクを追加する
    
    import os
    import glob
    import subprocess
    
    # 処理対象のファイルが入っているフォルダ
    INPUT_DIR = './imgs'
    
    # 学習済みモデルのパス
    # 顔を隠したいとき : ./pretrained_models/mosaic/add_face_128.pth
    # 手を隠したいとき : ./pretrained_models/mosaic/add_hands_128.pth
    MODEL_PATH = './pretrained_models/mosaic/add_face_128.pth'
    
    # 使用する GPU 番号(GPU を使わないときは -1)
    GPU_ID = 0
    
    targets = sorted(glob.glob(os.path.join(INPUT_DIR, '*.*')))
    
    for media_path in targets:
        subprocess.run([
            'python', 'deepmosaic.py',
            '--media_path', media_path,
            '--model_path', MODEL_PATH,
            '--mode', 'add',
            '--gpu_id', str(GPU_ID)
        ])
    
  2. フォルダ INPUT_DIR に,匿名化したい画像・動画ファイルを入れておく.
  3. MODEL_PATH に,顔用(add_face_128.pth)または手用(add_hands_128.pth)の学習済みモデルのパスを指定する.
  4. コマンドプロンプトなどで,DeepMosaics を展開(解凍)してできたディレクトリに移動し,次のコマンドで実行する.
    python batch_add_mosaic.py
    
  5. 処理が終わると,DeepMosaics 本体の仕様どおり,result フォルダの下に,ファイルごとの結果(モザイクが追加された画像・動画)が生成される.
    GPU を搭載していないパソコンでは,GPU_ID に -1 を指定する.この場合,CPU で処理されるため,時間がかかる.