日本で作成されたイラスト付きアダルト コンテンツは法律で検閲される必要があります。 2 つの一般的なタイプの検閲には、検閲バーとモザイク ブラーが含まれます。日本国外に住む私たち変質者にとって、これは私たちもバーやモザイクの対象となることを意味します。 deeppomf の DeepCreamPy という解決策があり、センサーの位置を指定すればセンサーを乗り越えることができます。これは長くて骨の折れるプロセスなので、このプロジェクトでそのプロセスを自動化したいと考えています。このプロジェクトでは、自動運転車やコンピュータ ビジョン タスクで通常使用される技術であるディープ ラーニングと画像セグメンテーションを利用します。 1.6.3 では新しく、DeepCreamPy の代替として ESRGAN が追加されました。これにより、検出後にモザイク画像/ビデオの検閲も解除されます。
これは Matterport の Mask R-CNN の上に構築されており、ビデオの検閲解除には ESRGAN が使用されます。
これは、古いモデル 161 でこのプロジェクトが何を行うかをよりよく示している NSFW ビデオです。
ツイッター(NSFW)。
ご覧の通りですか?このプロジェクトに資金を提供してください:
Discord チャンネルで開発やニュースのディスカッションに参加できます: https://discord.gg/j4dPZ7W
モデル 226 でのバー検出の例:
モデル 236 でのモザイク検出の例:
どちらの例でも、最新のモデル 161 ははるかに正確なマスクと検出を提供します。
matterport の Mask RCNN 実装と同じ要件がすべて必要になりますが、それ以上のものは必要ありません。私は tensorflow 1.8.0、tensorflow-gpu 1.9.0、torch 0.4.1、および keras 2.2.0 を使用していることに注意してください。新しい組み合わせの安定性を十分にテストしていません。コマンドラインにはAnaconda3を使用しています。
実行可能ファイルでは Windows のみがサポートされています。 Linux 用にこのコードをプルできます。
main.py には、GUI、すべての I/O 処理、ファイル解析、および基本的なエラー検出が含まれています。検出器クラスをインスタンス化します。
detecter.py ニューラル ネットワークの起動、推論検出の開始、DCP のマスクからのオーバーレイの作成を担当するディテクタ クラスが含まれています。 hentai.py は必要なくなり、独自に検出を実行できるようになりました。 ESRGAN 機能も処理します。
hentai.py 検出器とモデルの間のインターフェイスです。 Mask RCNN 実装の Balloon.py に基づいています。トレーニングの場合のみ必要です。
Inspection_h_model.ipynb このノートブックはバルーン ノートブックと同じです。代わりに、このプロジェクトで動作するようにこれを変更しました。モデルを検査するのに最適です。詳細なロギングには、Tensorboard を使用します (tensorflow がある場合はインストールする必要があります)。
Inspection_h_data.ipynb このノートブックがデータセットの検証に使用されることを除いて、上記と同じです。また、MaskRcnn の癖や機能のいくつかを示す素晴らしい情報も含まれています。
test_combined_generator.py バーの打ち切りと注釈を自動化するスクリプト。詳細は以下で説明します。これは別のフォルダーに配置されることを意図しており、「decensed_input」というフォルダー内の無修正画像を想定し、禁止された画像を「decensed_input_original」に出力し、注釈を CSV に入力します。データセットの拡張を支援する場合を除き、このスクリプトを使用する必要はありません。その場合は、discordに参加して私に連絡してください。
hent_AI_COLAB_1.ipynb ESRGAN ビデオの検閲解除の手順が記載された Google Colab ノートブック。これにより、クラウド上の Google の GPU が無料で使用され、すべてではないにしても、ほとんどのコンシューマ GPU よりも高速になるはずです。ただし、セッションは 30 分間アイドル状態または 12 時間経過すると削除されます。あらゆる種類のビデオの検閲を解除する場合は、このオプションをお勧めします。視覚的に十分に優れており、非常に高速です。
green_mask_project_mosaic_resolution.py ESRGAN の検閲解除で使用するモザイクの粒度 (モザイク ボックスのサイズ) を推定する GMP のスクリプト。
hconfig.ini ディレクトリ情報を保持する設定ファイル。
データセットにはいくつかの手動のアノテーションが混在しており、ほとんどは test_combined_generator を使用して手作業でアノテーションが付けられた画像です。このスクリプトは無修正画像を入力として受け取り、NudeNet を使用してモザイクとランダム バー センサーを備えた画像のクローンを作成できます。このデータセットはここでは提供されません。興味があればDiscordで私に連絡してください。
データセットのアノテーションはポリゴン形状で作成されています。バーおよびモザイク領域の属性は次のようにフォーマットされます。
"region_attributes":{"censor":"bar"}} OR "region_attributes":{"censor":"mosaic"}}
これは、私のデータセット アノテーションの (NSFW) サンプルと vgg エディターです。
精度を高めるには最新モデルが必要になります。
モデル 161 (非推奨)
モデル226
モデル 236 *v1.5 に同梱
(最新)モデル268
現在のweights.h5ファイルを削除し、新しいファイルに置き換えるだけです。モデルの名前はweights.h5のままにしておいてください。
ESRGAN (コード上のみ) は、4x スーパースケーリングに Twittman の致命的なピクセル モデルを使用しています。 MPL-2.0 によって保護されているため、このリポジトリにはありません。彼のリポジトリからモデル 340000 をダウンロードしてください。このモデルをメイン ディレクトリに配置します。
イントロにリンクされている DeepCreamPy をダウンロードしてインストールする必要があります。
動画にサウンドを引き継ぎたい場合は、実行可能ファイルに ffmpeg が必要です。 ffmpeg.exe をメイン ディレクトリ、または PATH または環境変数で定義された場所に配置します。 Linux の場合は、リポジトリのクローンを作成し、その要件を取得するための指示に従ってください。 Linux または colab で ffmpeg を取得するには、次を使用します。
!sudo add-apt-repository ppa:jon-severinsson/ffmpeg
!sudo apt-get update
!sudo apt-get install ffmpeg
(Windows 上のソース コード) Anaconda3 を使用して仮想環境でこれらを実行することをお勧めします。 Python 3.5.2、TensorFlow 1.8、Keras 2.2、tensorflow-gpu 1.9.0、torch 0.4.1、およびrequirements.txt
にリストされているその他の一般的なパッケージ。
現時点では、独自の代替案を作成できるまで DCP が必要です。このプロジェクトは DCP ディレクトリを使用することを想定しています。実行可能ファイルまたはソース コードをインストールできますが、どちらも機能するはずです。
DCP は .png 画像のみと互換性があり、jpg とは互換性がありません。 png のみを使用するか、提供されている jpg コンバーター ([jpg を強制] ボタン) を試してください。 jpg2png などのオンライン ツールを使用できます。繰り返しますが、これは何よりも先に行う必要があります。
DCP は、スクリーントーンや印刷物に特有のドット効果とは互換性がありません (下記を参照)。私の他のプロジェクト、Screentone Remover を参照してください。これは、デジタル信号処理技術を使用してスクリーントーンをバッチで削除します。これは、印刷された非カラー画像の検閲を解除する唯一の方法です。
以下はスクリーントーン画像の例と、スクリーントーンリムーバーアプリで削除するとどのように見えるかです。
ESRGAN 経由で完全なビデオの検閲を解除するには、Twittman のモデルをここからダウンロードし、ColabESRGAN/models フォルダー内に配置する必要があります。
Nvidia GPU の所有者は、CUDA 9.0 および cuDNN 7.6.4 をインストールする必要があります。 RTX カードと ESRGAN には問題があるので、それを使用したい場合は、代わりに colab ノートブックを再度お勧めします。
hent-AI をバッチで実行することを強くお勧めします (たとえば、一度に 1 つの同人誌またはいくつかの同人誌)。 hent-AI の最も遅い部分は初期化であるため、最初の推論には時間がかかりますが、残りは速くなります。
現在のモデルは完璧ではありません。まだ。白いセンサー バー、小さなセンサー バー、部分的に透明なセンサー バー、および 1 つの大きなセンサーとして融合されたセンサー バーでは、多少の問題が発生することが予想されます。不条理な量の検閲は、hent-AI に問題を引き起こす可能性があります。
このモデルは、性器がまったく描かれていない完全な検閲を認識するように訓練されていません。非標準の打ち切りもサポートされていません。
このモデルはモザイクとバーをサポートしていますが、両方を同じ場所で使用すると非常に困難になります。また、DCP はバーまたはモザイクに対してのみ生成できるため、モザイク検閲作品をバー検閲作品とは別にする必要があります。両方の画像の検閲を解除する必要がある場合は、1 回の実行でバーの検閲を解除し、2 回目の実行でモザイクの検閲を解除することをお勧めします。
大量の画像やビデオには、CUDA 互換の Nvidia GPU をお勧めします。お持ちでない場合は、colab ノートブックを参照してください。
Video Maker ボタンは、decensed_output の DCP 出力からビデオを作成します。 DCP が完了した後にこれを実行します。ソース ビデオのディレクトリと DCP インストール ディレクトリを選択する必要があることに注意してください。
クリップ全体をビデオ検出にかけないでください。これは非常に時間がかかる作業です。可能であれば、モザイクが見える短いクリップのみを編集し、修正された出力を取得してから、ビデオの残りの部分で編集してください。
コンパイルされた exe リリースは ESRGAN をサポートしていません。これを使用したい場合は、colab ノートブックを参照してください。
v1.0.0: 2020 HackIllinois デモの初期リリース
v1.1.0: コードを整理し、不要なライブラリのインポートを削除し、インストール手順とチュートリアルを追加しました。エラー検出を追加しました。
v1.2.0: 検出専用ブランチに基づく実行可能リリース。トレーニングおよび冗長ライブラリは削除または再配置されました。画像全体が緑色に戻るバグを修正しました。検出閾値を下げました。
v1.3.0: (exeはまだリリースされていません) 非Unicodeエラーを削除しました。ロード画面のポップアップを追加しました。検出閾値を下げました。 UIのマイナーな変更。
v1.4.0: ビデオ検出器が誤ってファイル名を付ける問題を修正しました。読み込みポップアップを追加しました。 UIの調整。検出閾値を下げました。
v1.5.0: グレースケール形状エラーを修正しました。ビデオが DCP フォルダーにコピーされるバグを修正しました。 jpg から png への変換のオプションとして、jpg のサポートが追加されました。より優れた例外キャッチを追加しました。ウェイトをモデル 236 に更新しました。
v1.5.2: 将来のビデオ検出機能に備えて、tensorflow を 1.8 にアップグレードしました。画像エラーでプログラムが停止したりスキップされたりすることがなくなりました。端末の印刷の方が情報が豊富です。 UIの調整。
1.6.3: ビデオの検閲解除用に ESRGAN を追加しました。これには DCP は必要ありません。非 Unicode ファイル名をさらにサポートします。
1.6.5: rekaXua による GMP 経由の適応モザイク粒度チェックを追加しました。無料のクラウドベース ESRGAN ビデオの検閲を解除するための colab ファイルを追加しました。
1.6.7: ESRGAN プロセスが 2 フェーズで実行されるように変更されました: ESRGAN サイズ変更、次にマスク検出。速度は遅くなりますが、メモリの許容度は高くなります。 ESRGAN で継ぎ目を少なくするためにマスクのぼかしを追加しました。非 ESRGAN の場合、マスクを展開するためのカスタム拡張が追加されました。 jpg のオプションが削除されました。自動的に使用されます。ファイルのクリーニングが改善されました。
1.6.8: ビデオは、ffmpeg を使用してソースビデオからオーディオを取得するようになりました。可変ビデオ ビットレートはまだ利用できないため、ファイルサイズがソースと一致しない可能性があります。 ESRGAN は、主に Colab を支援するために、ビデオをソース ビデオと同じディレクトリに保存するようになりました。
1.6.9: UI の軽微な調整。以前に使用したディレクトリと起動時に設定を保存する hconfig.ini が追加されました。画像とビデオの検出プロセス中に、合計画像/フレーム数が表示されます。
1.6.9b: ESRGAN および ESRGAN ビデオのホットフィックス。 .ini のバグを修正しました。注: .exe は影響を受けないため、別のバージョンを使用する必要はありません。
1.6.9c: colab の画像とモザイクの検閲を解除するためのホットフィックス。注: .exe は影響を受けないため、別のバージョンを使用する必要はありません。
詳細な手順については、Install_and_Tutorial.txt に従ってください。
実行可能:
上記のリンクからインストールしてください
どこかのフォルダに解凍する
詳細については、Install_and _tutorial に従ってください
コード:
pip install -r requirements.txt
python setup.py install
python main.py
メインディレクトリ内。そこから UI の指示に従います。
python sampleshentaihentai.py train --dataset=dataset_img/ --weights=path/to/weights
あるいは、--weights=last を使用してトレーニングを再開することもできます。
このリポジトリへの貢献や改善は大歓迎ですので、Discord に参加することをお勧めします。
DeepCreamPy からのインスピレーション
Matterport からのマスク Rcnn 実装
mattya のchainer-DCGAN から重みを取得
styler00dollar が提供する古いアーキテクチャを使用した、この論文の ESRGAN 実装
Twittman のトレーニング済みモデルの致命的なピクセルを使用します。
VGG アノテーターでアノテーションが付けられたデータセット
サンプルアセット画像はそれぞれアーティスト @ao_beni、落書き色々まとめ、@paxiti から提供されました。スクリーントーンの女の子はアーティスト soranozume によるものです。
現在のアセット画像は Pixiv のうぱ西まり子と bibimbub からのものです。