Konten dewasa bergambar yang dibuat di Jepang harus disensor oleh hukum. Dua jenis penyensoran yang umum melibatkan bilah sensor dan pengaburan mosaik. Bagi kami kaum degenerasi yang tinggal di luar Jepang, ini berarti kami juga tunduk pada jeruji dan mosaik. Ada solusinya, DeepCreamPy oleh deeppomf yang dapat menarik sensor, asalkan Anda memberi tahu di mana sensornya berada. Itu adalah proses yang panjang dan melelahkan, jadi saya berharap dapat mengotomatiskan proses tersebut dengan proyek ini. Proyek ini akan memanfaatkan pembelajaran mendalam dan segmentasi gambar, teknik yang biasanya digunakan dalam kendaraan otonom dan tugas visi komputer. Yang baru di versi 1.6.3, kami menambahkan ESRGAN sebagai alternatif DeepCreamPy, yang juga akan mendesensor gambar/video mosaik setelah deteksi.
Ini dibangun di atas Mask R-CNN Matterport, dan desensor video menggunakan ESRGAN.
Berikut adalah Video NSFW yang menunjukkan dengan lebih baik apa yang dilakukan proyek ini, pada model lama 161.
Twitter (NSFW).
Seperti apa yang Anda lihat? Bantu mendanai proyek ini:
Anda dapat mengikuti diskusi pengembangan dan berita di saluran Discord: https://discord.gg/j4dPZ7W
Contoh deteksi batang pada model 226:
Contoh deteksi mosaik pada model 236:
Untuk kedua contoh tersebut, model terbaru 161 memberikan masker dan deteksi yang jauh lebih akurat.
Anda akan memerlukan semua persyaratan yang sama seperti implementasi Mask RCNN matterport, tidak lebih. Perhatikan bahwa saya menggunakan tensorflow 1.8.0, tensorflow-gpu 1.9.0, torch 0.4.1, dan keras 2.2.0. Saya belum sepenuhnya menguji stabilitas kombinasi baru. Saya menggunakan Anaconda3 untuk baris perintah saya.
Hanya windows yang didukung untuk file yang dapat dieksekusi. Anda dapat menarik kode ini untuk linux.
main.py Berisi GUI dan semua penanganan I/O dan penguraian file, bersama dengan deteksi kesalahan dasar. Membuat instance kelas detektor.
detector.py Berisi kelas detektor saya, yang bertanggung jawab untuk memunculkan jaringan saraf, memulai deteksi inferensi, dan membuat overlay dari topeng untuk DCP. Tidak lagi memerlukan hentai.py, dan dapat menjalankan deteksi sendiri. Juga menangani fungsionalitas ESRGAN.
hentai.py Antarmuka antara detektor saya dan model. Berdasarkan implementasi Balloon.py dari Mask RCNN. Hanya diperlukan untuk pelatihan.
inspeksi_h_model.ipynb Buku catatan ini identik dengan buku catatan balon. Saya memodifikasinya agar berfungsi dengan proyek ini, dan paling baik digunakan untuk memeriksa model. Untuk logging mendetail, gunakan Tensorboard (yang harus diinstal jika Anda memiliki Tensorflow)
inspeksi_h_data.ipynb Sama seperti di atas, hanya saja notebook ini digunakan untuk memvalidasi dataset. Juga memiliki informasi keren yang menunjukkan beberapa keunikan dan fitur MaskRcnn
test_combined_generator.py Skrip yang mengotomatiskan sensor dan anotasi batang, dijelaskan lebih lanjut di bawah. Ini dimaksudkan untuk ditempatkan di folder terpisah, dan mengharapkan gambar tanpa sensor di folder bernama "decensored_input" dan mengeluarkan gambar yang dilarang ke "decensored_input_original", dan mengisi csv dengan anotasi. Anda tidak perlu menggunakan skrip ini, kecuali Anda ingin membantu memperluas dataset. Dalam hal ini, bergabunglah dalam perselisihan dan hubungi saya.
hent_AI_COLAB_1.ipynb Notebook Google Colab dengan petunjuk untuk desensor video ESRGAN. Ini akan menggunakan GPU Google di cloud secara gratis, dan seharusnya lebih cepat daripada kebanyakan, jika tidak semua GPU konsumen. Namun, sesi akan dihapus setelah 30 menit tidak aktif atau 12 jam. Saya merekomendasikan opsi ini untuk segala jenis desensor video, secara visual cukup bagus dan sangat cepat.
green_mask_project_mosaic_solving.py Skrip dari GMP yang memperkirakan granularitas mosaik (ukuran kotak mosaik) untuk digunakan dalam desensor ESRGAN.
hconfig.ini File konfigurasi yang menyimpan informasi direktori.
Kumpulan data memiliki campuran beberapa anotasi buatan tangan, dan sebagian besar gambar beranotasi buatan tangan menggunakan test_combined_generator kami. Skrip ini mengambil gambar tanpa sensor sebagai masukan, dan dapat membuat tiruan gambar tersebut dengan mosaik dan sensor batang acak, menggunakan NudeNet. Kumpulan data ini tidak disediakan di sini. Anda dapat menghubungi saya di Discord jika Anda tertarik.
Anotasi kumpulan data telah dibuat dengan bentuk poligon. Atribut wilayah Batang dan Mosaik diformat sebagai:
"region_attributes":{"censor":"bar"}} OR "region_attributes":{"censor":"mosaic"}}
Berikut adalah contoh (NSFW) anotasi kumpulan data saya, bersama dengan editor vgg.
Anda memerlukan model terbaru untuk akurasi yang lebih baik.
Model 161 (tidak digunakan lagi)
Model 226
Model 236 *Dikemas dengan v1.5
(Terbaru) Model 268
Cukup hapus file Weights.h5 Anda saat ini, dan ganti dengan yang baru. Harap simpan nama model sebagai Weights.h5
ESRGAN (hanya pada kode) menggunakan model piksel fatal Twittman untuk superskala 4x. Itu tidak ada dalam repo ini karena dilindungi oleh MPL-2.0. Unduh model 340000 di sini dari repo-nya. Tempatkan model ini di direktori utama.
Anda perlu mengunduh dan menginstal DeepCreamPy, yang ditautkan di intro.
Eksekusinya memerlukan ffmpeg jika Anda ingin suara tetap ada di video. Tempatkan ffmpeg.exe di direktori utama, atau di suatu tempat yang ditentukan di PATH Anda atau di variabel lingkungan. Untuk linux, kloning repo dan ikuti instruksi yang diberikan untuk mendapatkan persyaratannya. Untuk mendapatkan ffmpeg di linux atau colab, gunakan:
!sudo add-apt-repository ppa:jon-severinsson/ffmpeg
!sudo apt-get update
!sudo apt-get install ffmpeg
(Kode sumber di Windows) Saya merekomendasikan menjalankan ini di lingkungan virtual, dengan Anaconda3. Python 3.5.2, TensorFlow 1.8, Keras 2.2, tensorflow-gpu 1.9.0, torch 0.4.1 dan paket umum lainnya yang tercantum di requirements.txt
.
Untuk saat ini, DCP diperlukan hingga saya dapat membuat alternatif sendiri. Proyek ini mengharapkan untuk menggunakan direktori DCP. Anda dapat menginstal kode yang dapat dieksekusi atau kode sumber, keduanya akan berfungsi.
DCP HANYA kompatibel dengan gambar .png, dan bukan jpg. Entah Anda menggunakan png saja atau mencoba konverter jpg yang disediakan (tombol Paksa jpg). Anda dapat menggunakan alat online seperti jpg2png. Sekali lagi, ini harus dilakukan sebelum hal lain.
DCP TIDAK kompatibel dengan screentone, atau efek titik-titik yang merupakan ciri khas karya cetak (lihat di bawah). Cukup rujuk ke proyek saya yang lain, Penghilang Nada Layar, yang akan menghapus nada layar secara batch menggunakan teknik Pemrosesan Sinyal Digital. Ini adalah satu-satunya cara agar gambar yang dicetak tidak berwarna dapat didesensor.
Berikut adalah contoh gambar yang disaring, dan tampilannya saat dihapus oleh aplikasi Penghilang Nada Layar saya:
Untuk desensor video lengkap melalui ESRGAN, Anda perlu mengunduh model Twittman di sini dan menempatkannya di dalam folder ColabESRGAN/models.
Pemilik GPU Nvidia harus menginstal CUDA 9.0, dan cuDNN 7.6.4. Perhatikan bahwa ada masalah dengan kartu RTX dan ESRGAN, jadi jika Anda ingin menggunakannya, saya merekomendasikan notebook colab lagi.
Saya sangat merekomendasikan menjalankan hent-AI secara berkelompok, misalnya satu doujin atau beberapa doujin sekaligus. Bagian paling lambat dari hent-AI adalah inisialisasi, sehingga inferensi pertama memerlukan waktu, namun sisanya akan lebih cepat.
Model saat ini belum sempurna. Belum. Kemungkinan akan terjadi masalah pada bilah sensor putih, bilah sensor kecil, bilah sensor yang sebagian transparan, dan bilah sensor yang digabungkan menjadi satu sensor besar. Penyensoran dalam jumlah yang tidak masuk akal dapat menyebabkan masalah bagi hent-AI.
Model ini tidak dilatih untuk mengenali sensor penuh, sehingga genetalia tidak digambar sama sekali. Sensor non-standar juga tidak didukung.
Model ini mendukung mosaik dan batangan, namun sangat sulit jika keduanya digunakan di tempat yang sama. Selain itu, DCP hanya dapat menghasilkan karya yang disensor batangan atau mosaik, jadi Anda perlu memisahkan karya sensor mosaik dari karya yang disensor batang. Jika Anda harus mendesensor gambar dengan keduanya, saya sarankan mendesensor bilah sekaligus, lalu mosaik dalam beberapa detik.
GPU Nvidia yang kompatibel dengan CUDA direkomendasikan untuk gambar atau video dalam jumlah besar. Jika Anda tidak memilikinya, lihat buku catatan colab.
Tombol Pembuat Video membuat video dari keluaran DCP di decensored_output. Jalankan ini setelah DCP selesai. Catatan Anda masih perlu memilih direktori untuk video sumber, dan direktori instalasi DCP.
Jangan memasukkan seluruh klip melalui deteksi video, ini adalah tugas yang sangat lambat. Jika bisa, edit hanya klip pendek dengan mosaik yang terlihat, dapatkan keluaran yang tidak disensor, lalu edit di sisa video.
Rilis exe yang dikompilasi tidak mendukung ESRGAN. Jika Anda ingin menggunakan ini, lihat notebook colab.
v1.0.0: Rilis awal untuk Demo HackIllinois 2020
v1.1.0: Membersihkan kode, menghapus impor perpustakaan yang tidak diperlukan, menambahkan instruksi instalasi dan tutorial. Menambahkan deteksi kesalahan.
v1.2.0: Rilis yang dapat dieksekusi berdasarkan cabang deteksi saja. Pelatihan dan perpustakaan yang berlebihan telah dihapus atau dipindahkan. Bug di mana seluruh gambar kembali berwarna hijau telah diperbaiki. Ambang batas deteksi diturunkan.
v1.3.0: (exe belum dirilis) Menghapus kesalahan non-unicode. Menambahkan popup layar pemuatan. Ambang batas deteksi diturunkan. Perubahan kecil pada UI.
v1.4.0: Memperbaiki detektor video yang salah memberi nama file. Menambahkan popup pemuatan. Perubahan UI. Ambang batas deteksi diturunkan.
v1.5.0: Memperbaiki kesalahan bentuk skala abu-abu. Memperbaiki bug saat video disalin ke folder DCP. Menambahkan dukungan untuk jpg, sebagai opsi untuk konversi jpg ke png. Menambahkan penangkapan pengecualian yang lebih baik. Bobot yang diperbarui ke model 236.
v1.5.2: Tensorflow ditingkatkan ke 1.8 sebagai persiapan untuk fitur deteksi video di masa mendatang. Kesalahan gambar tidak lagi menghentikan program dan dilewati. Pencetakan terminal lebih informatif. Perubahan UI.
1.6.3: Menambahkan ESRGAN untuk desensor video, DCP tidak diperlukan untuk ini. Dukungan lebih lanjut untuk nama file non-unicode.
1.6.5: Menambahkan pemeriksaan granularitas mosaik adaptif melalui GMP oleh rekaXua. Menambahkan file colab untuk desensor video ESRGAN berbasis cloud gratis.
1.6.7: Mengubah proses ESRGAN agar berjalan dalam 2 fase: pengubahan ukuran ESRGAN, lalu deteksi mask. Lebih lambat tetapi lebih memaafkan memori. Menambahkan keburaman masker untuk mengurangi jahitan pada ESRGAN. Untuk non-ESRGAN, menambahkan pelebaran khusus untuk memperluas masker. Opsi untuk jpg dihapus, itu akan digunakan secara otomatis. Pembersihan file yang ditingkatkan.
1.6.8: Video sekarang akan mengambil audio dari video sumber, menggunakan ffmpeg. Bitrate video variabel belum tersedia, jadi ukuran file mungkin tidak cocok dengan sumbernya. ESRGAN sekarang akan menyimpan video ke direktori yang sama dengan video sumber, sebagian besar untuk membantu Colab.
1.6.9: Perubahan kecil pada UI. Sekarang ada hconfig.ini yang akan menyimpan direktori dan pengaturan yang Anda gunakan sebelumnya saat startup. Selama proses deteksi gambar dan video, jumlah total gambar/bingkai akan ditampilkan.
1.6.9b: Perbaikan terbaru untuk video ESRGAN dan ESRGAN. Memperbaiki bug dengan .ini. Catatan: .exe tidak terpengaruh, jadi tidak memerlukan versi lain.
1.6.9c: Perbaikan terbaru untuk desensor gambar dan mosaik untuk colab. Catatan: .exe tidak terpengaruh, jadi tidak memerlukan versi lain.
Untuk petunjuk detailnya, ikuti Install_and_Tutorial.txt
Dapat dieksekusi:
Instal dari tautan di atas
Ekstrak ke beberapa folder
Ikuti Install_and _tutorial untuk lebih lanjut
Kode:
pip install -r requirements.txt
python setup.py install
python main.py
Di direktori utama. Ikuti instruksi UI dari sana.
python sampleshentaihentai.py train --dataset=dataset_img/ --weights=path/to/weights
Alternatifnya, Anda dapat melanjutkan latihan menggunakan --weights=last
Kontribusi dan perbaikan pada repo ini sangat kami harapkan, jadi saya akan mendorong Anda untuk bergabung dengan Discord.
Inspirasi dari DeepCreamPy
Implementasi Mask Rcnn dari Matterport
Memperoleh bobot dari mattya's chainer-DCGAN
Implementasi ESRGAN dari makalah ini, menggunakan arsitektur lama yang disediakan oleh styler00dollar
Menggunakan piksel fatal model terlatih Twittman.
Kumpulan data dianotasi dengan anotator VGG
Contoh gambar aset masing-masing dari artis @ao_beni, 落書き色々まとめ, dan @paxiti. Gadis screentone berasal dari artis soranosuzume.
Gambar aset terkini dari うぱ西まり子 dan bibimbub di Pixiv.