Иллюстрированный контент для взрослых, созданный в Японии, подлежит цензуре по закону. Два распространенных типа цензуры включают в себя цензурные полосы и мозаичное размытие. Для нас, дегенератов, живущих за пределами Японии, это означает, что мы тоже подвержены решеткам и мозаике. Существует решение DeepCreamPy от deeppomf, которое может обойти цензоров, при условии, что вы сообщите ему, где находятся цензоры. Это долгий и кропотливый процесс, поэтому я надеюсь автоматизировать этот процесс с помощью этого проекта. В этом проекте будут использоваться глубокое обучение и сегментация изображений, методы, обычно используемые в автономных транспортных средствах и задачах компьютерного зрения. В версии 1.6.3 мы добавили ESRGAN в качестве альтернативы DeepCreamPy, который также выполняет децензурирование мозаичного изображения/видео после обнаружения.
Он построен на основе Mask R-CNN от Matterport, а для децензурирования видео используется ESRGAN.
Вот видео NSFW, которое лучше показывает, что делает этот проект на старой модели 161.
Твиттер (NSFW).
Нравится то, что вы видите? Помогите финансировать этот проект:
Вы можете присоединиться к обсуждению разработки и новостей на канале Discord: https://discord.gg/j4dPZ7W
Пример обнаружения штанги на модели 226:
Примеры обнаружения мозаики на модели 236:
В обоих случаях новейшая модель 161 обеспечивает гораздо более точные маски и обнаружения.
Вам потребуются все те же требования, что и для реализации Mask RCNN от Matterport, не более того. Обратите внимание, что я использую tensorflow 1.8.0, tensorflow-gpu 1.9.0, torch 0.4.1 и keras 2.2.0. Я не проверял до конца стабильность новых комбинаций. Я использую Anaconda3 для своей командной строки.
Исполняемый файл поддерживается только для Windows. Вы можете вытащить этот код для Linux.
main.py Содержит графический интерфейс, всю обработку ввода-вывода и анализ файлов, а также базовое обнаружение ошибок. Создает экземпляр класса детектора.
детектор.py Содержит мой класс детектора, который отвечает за запуск нейронной сети, запуск обнаружения вывода и создание наложения из маски для DCP. Больше не требуется hentai.py, и он может выполнять обнаружение самостоятельно. Также поддерживает функциональность ESRGAN.
hentai.py Интерфейсы между моим детектором и моделью. На основе Balloon.py реализации Mask RCNN. Нужен только для тренировок.
Inspect_h_model.ipynb Этот блокнот идентичен блокноту-воздушному шару. Вместо этого я модифицировал его для работы с этим проектом, и его лучше всего использовать для проверки модели. Для подробного журналирования используйте Tensorboard (который следует установить, если у вас есть tensorflow).
Inspect_h_data.ipynb То же, что и выше, за исключением того, что этот блокнот используется для проверки набора данных. Также содержит интересную информацию, показывающую некоторые особенности и особенности MaskRcnn.
test_combined_generator.py Скрипт, который автоматизирует цензуру и аннотации полос, более подробно описано ниже. Он предназначен для размещения в отдельной папке и ожидает изображения без цензуры в папке с именем «decensored_input», выводит запрещенное изображение в «decensored_input_original» и заполняет CSV аннотациями. Вам не нужно использовать этот сценарий, если только вы не хотите помочь в расширении набора данных. В таком случае присоединяйтесь к дискорду и свяжитесь со мной.
hent_AI_COLAB_1.ipynb Блокнот Google Colab с инструкциями по децензурированию видео ESRGAN. Он будет бесплатно использовать графические процессоры Google в облаке и должен быть быстрее, чем большинство, если не все потребительские графические процессоры. Но сеансы будут удалены после 30 минут простоя или 12 часов. Я рекомендую этот вариант для любого вида децензурирования видео, он достаточно хорош визуально и очень быстр.
green_mask_project_mosaic_solve.py Скрипт из GMP, который оценивает степень детализации мозаики (размер блоков мозаики) для использования в децензуре ESRGAN.
hconfig.ini Файл конфигурации, содержащий информацию о каталоге.
Набор данных содержит как некоторые аннотации, сделанные вручную, так и изображения, в основном сделанные вручную с помощью нашего test_combined_generator. Этот скрипт принимает в качестве входных данных изображения без цензуры и может создать клон изображения с мозаикой и случайными цензорами, используя NudeNet. Этот набор данных здесь не представлен. Если вам интересно, вы можете связаться со мной в Discord.
Аннотации набора данных были выполнены в форме многоугольника. Атрибуты области Bar и Mosaic формируются как:
"region_attributes":{"censor":"bar"}} OR "region_attributes":{"censor":"mosaic"}}
Вот образец (NSFW) моих аннотаций набора данных вместе с редактором vgg.
Вам понадобится последняя модель для большей точности.
Модель 161 (устарела)
Модель 226
Модель 236 *В комплекте с версией 1.5.
(Последняя) Модель 268
Просто удалите текущий файл Weights.h5 и замените его новым. Пожалуйста, сохраните модель с именем Weights.h5.
ESRGAN (только в коде) использует модель фатальных пикселей Твиттмана для 4-кратного супермасштабирования. Его нет в этом репозитории, поскольку он защищен MPL-2.0. Загрузите модель 340000 здесь из его репозитория. Поместите эту модель в основной каталог.
Вам нужно будет загрузить и установить DeepCreamPy, ссылка на который указана во вступлении.
Исполняемому файлу потребуется ffmpeg, если вы хотите, чтобы звук переносился на видео. Поместите ffmpeg.exe в основной каталог, где-нибудь, определенное в вашем PATH или в переменной среды. Для Linux клонируйте репозиторий и следуйте предоставленным инструкциям для получения требований. Чтобы получить ffmpeg в Linux или Colab, используйте:
!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 (кнопка Force jpg). Вы можете использовать онлайн-инструменты, такие как jpg2png. Опять же, это следует сделать прежде всего.
DCP НЕ совместим с экранными тонами или тем точечным эффектом, который характерен для печатных работ (см. ниже). Просто обратитесь к моему другому проекту Screentone Remover, который позволяет пакетно удалять экранные сигналы с использованием методов цифровой обработки сигналов. Это единственный способ избавиться от цензуры напечатанных нецветных изображений.
Вот пример изображения с тонированным изображением и то, как оно выглядит после удаления с помощью моего приложения Screentone Remover:
Для полной децензуры видео через ESRGAN вам необходимо скачать модель Твиттмана здесь и поместить ее в папку ColabESRGAN/models.
Владельцам графических процессоров Nvidia следует установить CUDA 9.0 и cuDNN 7.6.4. Обратите внимание, что существуют проблемы с картами RTX и ESRGAN, поэтому, если вы хотите использовать их, я снова рекомендую вместо этого ноутбук Colab.
Я настоятельно рекомендую запускать hent-AI на пакетах, например, на одном додзине или нескольких додзинах одновременно. Самая медленная часть hent-AI — это инициализация, поэтому первый вывод требует времени, но все остальное будет быстрее.
Нынешняя модель не идеальна. Еще. Ожидайте некоторых проблем с белыми цензурными полосами, маленькими цензурными полосами, частично прозрачными цензурными полосами и цензурными полосами, которые объединены в один большой цензор. Любое абсурдное количество цензуры может вызвать проблемы для hent-AI.
Эта модель не обучена признавать полную цензуру, где генеталия вообще не прорисовывается. Нестандартная цензура также не поддерживается.
Модель поддерживает мозаику и бары, но при их использовании в одном месте возникают проблемы. Кроме того, DCP может генерировать только полосы или мозаику, поэтому вам нужно будет хранить работы с цензурой мозаики отдельно от работ с цензурой на полосы. Если вам необходимо децензурировать изображения с помощью обоих, я предлагаю децензурировать полосы за один проход, а затем мозаику за несколько секунд.
Графические процессоры Nvidia, совместимые с CUDA, рекомендуются для обработки больших объемов изображений или видео. Если у вас его нет, обратитесь к блокноту Colab.
Кнопка Video Maker создает видео из вывода DCP в decensored_output. Запустите это после завершения DCP. Обратите внимание, что вам все равно необходимо выбрать каталоги для исходного видео и каталог установки DCP.
Не пропускайте целые клипы через видеодетектор, это очень медленная задача. Если можете, отредактируйте только короткие клипы с видимой мозаикой, получите результат без цензуры, а затем отредактируйте его в остальной части видео.
Скомпилированный выпуск exe не поддерживает ESRGAN. Если вы хотите использовать это, обратитесь к блокноту Colab.
v1.0.0: первый выпуск демо-версии HackIllinois 2020 г.
v1.1.0: Очищен код, удален ненужный импорт библиотек, добавлены инструкции по установке и учебное пособие. Добавлено обнаружение ошибок.
v1.2.0: Исполняемый выпуск, основанный на ветке только для обнаружения. Учебные и избыточные библиотеки были удалены или перемещены. Исправлена ошибка, из-за которой все изображение возвращало зеленый цвет. Понижен порог обнаружения.
v1.3.0: (exe еще не выпущен) Удалена ошибка, не связанная с Юникодом. Добавлено всплывающее окно загрузки. Понижен порог обнаружения. Незначительные изменения пользовательского интерфейса.
v1.4.0: Исправлен видеодетектор, неправильно называвший файлы. Добавлено всплывающее окно загрузки. Твики пользовательского интерфейса. Понижен порог обнаружения.
v1.5.0: Исправлена ошибка формы оттенков серого. Исправлена ошибка, при которой видео копировалось в папку DCP. Добавлена поддержка jpg, как вариант преобразования jpg в png. Добавлен улучшенный перехват исключений. Обновлены веса для модели 236.
v1.5.2: Tensorflow обновлен до версии 1.8 для подготовки к будущим функциям обнаружения видео. Ошибки изображения больше не останавливают программу и не пропускаются. Терминальная печать более информативна. Твики пользовательского интерфейса.
1.6.3: Добавлен ESRGAN для децензурирования видео, DCP для этого не требуется. Дальнейшая поддержка имен файлов, отличных от Юникода.
1.6.5: Добавлена адаптивная проверка детализации мозаики через GMP от rekaXua. Добавлен файл colab для бесплатной облачной децензуры видео ESRGAN.
1.6.7: Изменены процессы ESRGAN, которые теперь выполняются в два этапа: изменение размера ESRGAN, затем обнаружение маски. Медленнее, но более прощает память. Добавлено размытие маски для уменьшения количества швов на ESRGAN. Для отличных от ESRGAN добавлено настраиваемое расширение для расширения масок. Удалена опция для jpg, она будет использоваться автоматически. Улучшена очистка файлов.
1.6.8: Видео теперь будет брать звук из исходного видео, используя ffmpeg. Переменный битрейт видео пока недоступен, поэтому файлы могут не соответствовать исходному. ESRGAN теперь будет сохранять видео в тот же каталог, что и исходное видео, в основном для облегчения работы с Colab.
1.6.9: Незначительные изменения пользовательского интерфейса. Теперь есть файл 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
В основном каталоге. Следуйте инструкциям пользовательского интерфейса оттуда.
python sampleshentaihentai.py train --dataset=dataset_img/ --weights=path/to/weights
Альтернативно вы можете возобновить тренировку, используя --weights=last.
Вклад и улучшения этого репозитория приветствуются, поэтому я бы рекомендовал присоединиться к Discord.
Вдохновение от DeepCreamPy
Реализация Mask Rcnn от Matterport
Получены веса от цепочки Маттии-DCGAN.
Реализация ESRGAN из этой статьи с использованием старой архитектуры, предоставленной styler00dollar.
Использование фатальных пикселей обученной модели Твитмана.
Набор данных, аннотированный аннотатором VGG
Примеры изображений от художников @ao_beni, 落書き色々まとめ и @paxiti соответственно. Скринтон «Девушка» от художника soranosuzume.
Текущие изображения из うぱ西まり子 и bibimbub на Pixiv.