在日本创作的成人插图内容必须接受法律审查。两种常见的审查类型涉及审查栏和马赛克模糊。对于我们生活在日本以外的堕落者来说,这意味着我们也受到酒吧和马赛克的影响。有一个解决方案,deeppomf 的 DeepCreamPy,只要您告诉它审查器在哪里,它就可以绕过审查器。这是一个漫长而艰苦的过程,所以我希望通过这个项目实现该过程的自动化。该项目将利用深度学习和图像分割,这些技术通常用于自动驾驶车辆和计算机视觉任务。在 1.6.3 中,我们添加了 ESRGAN 作为 DeepCreamPy 的替代品,它也会在检测后对马赛克图像/视频进行去密处理。
它建立在 Matterport 的 Mask R-CNN 之上,视频解码使用 ESRGAN。
这是一个 NSFW 视频,更好地展示了该项目在旧型号 161 上的功能。
推特(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 处理和文件解析,以及基本的错误检测。实例化检测器类。
detector.py 包含我的检测器类,它负责神经网络启动、启动推理检测以及从 DCP 掩码创建覆盖。不再需要 hentai.py,并且可以自行运行检测。还处理 ESRGAN 功能。
hentai.py 我的探测器和模型之间的接口。基于 Mask RCNN 实现的 Balloon.py。仅需要训练。
spect_h_model.ipynb 此笔记本与气球笔记本相同。我修改了它以用于该项目,并且它最适合用于检查模型。对于详细的日志记录,请使用 Tensorboard(如果您有tensorflow,则应安装它)
spect_h_data.ipynb 与上面相同,只是此笔记本用于验证数据集。还有一些很酷的信息,展示了 MaskRcnn 的一些怪癖和功能
test_combined_generator.py 自动执行条形审查和注释的脚本,下面有更多解释。这意味着要放置在一个单独的文件夹中,并且期望将未经审查的图像放在名为“decensored_input”的文件夹中,并将禁止的图像输出到“decensored_input_original”中,并使用注释填充 csv。您不需要使用此脚本,除非您想帮助扩展数据集。在这种情况下,请加入不和谐并联系我。
hent_AI_COLAB_1.ipynb Google Colab 笔记本,包含 ESRGAN 视频去审查说明。这将免费使用云端的 Google GPU,并且应该比大多数(如果不是全部)消费类 GPU 更快。但是,会话将在闲置 30 分钟或 12 小时后被删除。我推荐这个选项用于任何类型的视频解码,它在视觉上足够好而且速度非常快。
green_mask_project_mosaic_resolution.py 来自 GMP 的脚本,用于估计用于 ESRGAN 去删失的马赛克粒度(马赛克框的大小)。
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(仅在代码上)正在使用 Twittman 的致命像素模型进行 4 倍超级缩放。它不在此存储库中,因为它受 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,它将使用数字信号处理技术批量删除屏幕色调。这是对打印的非彩色图像进行解密的唯一方法。
下面是一个屏幕色调图像的示例,以及它被我的 Screentone Remover 应用程序删除后的样子:
要通过 ESRGAN 进行完整视频解码,您需要在此处下载 Twittman 的模型并将其放入 ColabESRGAN/models 文件夹中。
Nvidia GPU 用户应安装 CUDA 9.0 和 cuDNN 7.6.4。请注意,RTX 卡和 ESRGAN 存在问题,因此如果您想使用它,我再次推荐使用 Colab 笔记本。
我强烈建议批量运行hent-AI,例如一次运行一个同人或几个同人。 hent-AI 最慢的部分是初始化,因此第一次推理需要时间,但其余部分会更快。
当前的模型并不完美。然而。预计白色审查条、小审查条、部分透明审查条以及融合在一起作为一个大审查条的审查条会出现一些问题。任何荒谬的审查都可能会给 hent-AI 带来问题。
该模型没有接受过识别全面审查制度的训练,根本没有绘制基因。也不支持非标准审查。
该模型支持马赛克和条形,但当两者在同一位置使用时,它确实很困难。此外,DCP 只能生成条形或马赛克,因此您需要将马赛克审查作品与条形审查作品分开。如果您必须同时使用这两种方法对图像进行去中心化,我建议在一次运行中对条形进行去中心化,然后在运行一秒钟时对马赛克进行去中心化。
对于大量图像或视频,建议使用 CUDA 兼容的 Nvidia GPU。如果您没有,请参阅 Colab 笔记本。
Video Maker 按钮根据 decensored_output 中的 DCP 输出创建视频。 DCP 完成后运行此命令。请注意,您仍然需要选择源视频的目录和 DCP 安装目录。
不要对整个剪辑进行视频检测,这是一项非常缓慢的任务。如果可以的话,仅编辑带有可见马赛克的短片,获得经过审查的输出,然后在视频的其余部分中对其进行编辑。
编译的exe版本不支持ESRGAN。如果你想使用它,请参阅colab笔记本。
v1.0.0:2020 HackIllinois 演示的初始版本
v1.1.0:清理了代码,删除了不需要的库导入,添加了安装说明和教程。添加了错误检测。
v1.2.0:基于仅检测分支的可执行版本。培训和冗余库已被删除或搬迁。修复了整个图像返回绿色的错误。降低了检测阈值。
v1.3.0:(exe 尚未发布)删除了非 unicode 错误。添加了加载屏幕弹出窗口。降低了检测阈值。用户界面的细微变化。
v1.4.0:修复了视频检测器错误命名文件的问题。添加了加载弹出窗口。用户界面调整。降低了检测阈值。
v1.5.0:修复了灰度形状错误。修复了视频被复制到 DCP 文件夹的错误。添加了对 jpg 的支持,作为 jpg 到 png 转换的选项。添加了更好的异常捕获。将重量更新为型号 236。
v1.5.2:将tensorflow升级到1.8,为未来的视频检测功能做好准备。图像错误不再停止程序并被跳过。终端打印信息更丰富。用户界面调整。
1.6.3:添加了用于视频解码的 ESRGAN,不需要 DCP。对非 unicode 文件名的进一步支持。
1.6.5:rekaXua 通过 GMP 添加了自适应马赛克粒度检查。添加了用于免费的基于云的 ESRGAN 视频解码的 colab 文件。
1.6.7:将 ESRGAN 流程更改为分两个阶段运行: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 的 Mask Rcnn 实现
从 mattya 的 chainer-DCGAN 获得权重
本文中的 ESRGAN 实现,使用 styler00dollar 提供的旧架构
使用 Twittman 训练的模型致命像素。
使用 VGG 注释器注释的数据集
示例资产图像分别来自艺术家 @ao_beni、落书き色々まとめ 和 @paxiti。 Screentone Girl 出自艺术家 soranosuzume 之手。
当前资产图像来自 Pixiv 上的うぱ西まり子和 bibimbub。