GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

minimaxir

person-blocker – 事前訓練されたニューラルネットワークを使用して、画像内の人物(ブラックミラーなど)を自動的に「ブロック」

投稿日:

事前訓練されたニューラルネットワークを使用して、画像内の人物(ブラックミラーなど)を自動的に「ブロック」します。

人のブロッカー

MS COCOデータセットに事前にマスクされたマスクR-CNNを使用して、画像内の人物( Black MirrorエピソードWhite Christmasなど )を自動的に「ブロックする」スクリプト。 GPUは必要ありません!

しかし、人々だけでなく、キリンやバスなど、最大80種類のオブジェクトをブロックできます。

セットアップ

このプロジェクトはいくつかの依存関係に依存していますので、以下のコマンドを使用して依存関係をインストールしてください。

pip3 install -r requirements.txt

:環境によっては、 sudoを使う必要があるかもしれません。 また、virtualenvを使用することもできます。

使用法

Person Blockerはコマンドラインから使用されます:

python3 person_blocker.py -i images/img3.jpg -c '(128, 128, 128)' -o 'bus' 'truck'
  • -i/--image :イメージファイルを指定します。
  • -m/--model :事前に訓練されたCOCOモデルの重みへのパス(デフォルト:カレントディレクトリ):指定されていなければ、カレントディレクトリに自動的にカレントディレクトリにダウンロードされます(注:重みは258 MBです)。
  • -c/--color :引用符で囲まれた16進数または3要素のRGBタプル形式のマスクの色。 (デフォルト:白)
  • -o/--object :ブロックするオブジェクトのタイプのリスト(または特定のオブジェクトのオブジェクトID)。 ブロックするオブジェクトの選択肢は、 classes.pyまたは-namesフラグを使用して-namesます。 (デフォルト:人)
  • -l/--labeled :検出されたオブジェクトとそのオブジェクトIDで注釈が付けられたラベル付きイメージを保存します。
  • -n/--names :オブジェクトのクラスオプションを出力して終了します。

このスクリプトは、このREADMEの冒頭にある静的な画像( person_blocked.pngperson_blocked.pngperson_blocked.png )の2つの画像を出力します。

python3 person_blocker.py -i images/img1.jpg

python3 person_blocker.py -i images/img2.jpg -c '#c0392b' -o 'giraffe'

python3 person_blocker.py -i images/img3.jpg -c '(128, 128, 128)' -o 'bus' 'truck'

特定のオブジェクトをブロックするには、各オブジェクトのオブジェクトIDを取得するために推論モードで実行し、それらのオブジェクトIDをブロックするという2つのステップが必要です。

python3 person_blocker.py -i images/img4.jpg -l

python3 person_blocker.py -i images/img4.jpg -o 1

要件

マスクR-CNNと同じ要件:

  • Python 3.4以降
  • TensorFlow 1.3+
  • Keras 2.0.8+
  • ナンシー、スキマージ、scipy、枕、cython、h5py

プラスmatplotlibとimageio

メンテナー

マックスウルフ( @minimaxir

MaxのオープンソースプロジェクトはPatreonによってサポートされてます。 このプロジェクトが有益であると判明した場合は、Patreonへの金銭的貢献は高く評価され、創造的に活用されます。

ライセンス

MIT

Matterport、Inc.(MIT-Licensed)のMask R-CNNから使用されたコードで、軽微な変更と著作権表示が保持されています。







-minimaxir

執筆者: