一个22万张NSFW图片的鉴黄数据集?我有个大胆的想法……

标签: | 发表时间:2019-01-13 14:57 | 作者:
出处:https://mp.weixin.qq.com

机器之心报道

机器之心编辑部


如果你想训练一个内容审核系统过滤不合适的信息,或用 GAN做一些大胆的新想法,那么数据集是必不可少的。例如图像鉴黄,我们需要使用卷积神经网络训练一个分类器,以区分正常图像与限制级图像。但限制级的图像很难收集,也很少会开源。因此最近有开发者在 GitHub 上开源了一份 NSFW 图像数据集,这是不是你们想要的?


内容审核在很多领域都有非常重要的作用,它不仅需要通过分类器识别图像或其它数据不适合展示,同时还能结合语义分割模型对这些限制级图像进行处理(Mask 掉敏感部分)。这样在不过多影响内容的情况下去除掉不合适的信息。开发者 alexkimxyz 构建的这个项目大概收集了 20 多万张敏感图像,且通过 URL 的形式展示了 GitHub 中。


项目地址:https://github.com/alexkimxyz/nsfw_data_scrapper


这 20 万多张图像大概分为以下 5 个类别,它们可以用 CNN训练不同的分类器。这里我们就保留 GitHub 中的原描述了:



其中每一个类别都是一个 Text 文本,文本中的每一行都对应一个 URL,所以读取并下载都非常方便,自己写也就几行代码。如下简单展示了 sexy 类别下文本与图像:



此外值得注意的是,有少量图像 URL 是失效的,因此在处理的过程中需要把这些情况考虑进去。一般如果 URL 是失效的,它会返回一张 161×81 的声明图像。


当然,作者同样提供了获取 URL 和下载图像的脚本,我们只需要运行就行了。目前,这些脚本仅在 Ubuntu 16.04 Linux 发行版本中进行了测试。


以下是重要脚本(位于 scripts 目录下)及它们的作用:


  • 1_get_urls.sh:遍历 scripts / source_urls 下的文本文件,下载上述 5 个类别中每个类别的图像 URL。Ripme 应用程序执行所有关键部分。源 URL 主要是链接到各种 subreddits,但可以是 Ripme 支持的任何网站。注意:作者已经运行了此脚本,其输出位于 raw_data 目录中。除非在 scripts / source_urls 下编辑文件,否则无需重新运行。

  • 2_download_from_urls.sh:下载 raw_data 目录中的文本文件中找到的 URL 的实际图像。

  • 5_create_train.sh:创建 data/train 目录并从 raw_data 将所有* .jpg 和* .jpeg 文件复制到其中。并删除损坏的图像。

  • 6_create_test.sh:创建 data/test 目录,并从 data / trainto 为每个类随机移动 N = 2000 个文件(如果需要不同的训练/测试分割,则在脚本内更改此数字)到 data / test。或者,可以多次运行它,每次它将从 data/train 到 data/test 将每个类别移动 N 个图像。


注意运行 get_urls.sh 后,生成的 URL 文本文件会覆盖 raw_data 下已有的文本文件。所以在复制 GitHub 项目后,我们也可以直接运行 2_download_from_urls.sh 从已有 raw_data 文件下载图像。


环境配置


  • Python3 环境:conda env create -f environment.yml

  • Java 运行时环境(Ubuntu linux):sudo apt-get install default-jre

  • Linux 命令行工具:wget, convert (imagemagick 工具套件), rsync, shuf


怎么运行


将工作目录转到 scripts,并按文件名中的数字指示的顺序执行每个脚本,例如:


      $ bash 1_get_urls.sh # has already been run        
$ find ../raw_data -name "urls_*.txt" -exec sh -c "echo Number of urls in {}: ; cat {} | wc -l" \;
Number of urls in ../raw_data/drawings/urls_drawings.txt:
   25732
Number of urls in ../raw_data/hentai/urls_hentai.txt:
   45228
Number of urls in ../raw_data/neutral/urls_neutral.txt:
   20960
Number of urls in ../raw_data/sexy/urls_sexy.txt:
   19554
Number of urls in ../raw_data/porn/urls_porn.txt:
  116521
$ bash 2_download_from_urls.sh
$ bash 3_optional_download_drawings.sh # optional
$ bash 4_optional_download_neutral.sh # optional
$ bash 5_create_train.sh
$ bash 6_create_test.sh
$ cd ../data
$ ls train
drawings hentai neutral porn sexy
$ ls test
drawings hentai neutral porn sexy


如上所示为脚本的执行方法,五类一共 227995 张敏感图像。这个脚本同样会把它们分割为训练集与测试集,因此直接利用它们实现 5 类别的分类任务会很简单。当然如果我们需要用于其它的任务,就没有必要直接分割了。


使用简单的卷积神经网络直接实现分类任务可以达到 91% 的准确率,这已经非常高了,因为敏感数据手动分为 5 类本来就有一些模糊性存在。以下展示了在测试集上,5 分类任务的混淆矩阵:



其中对角线表示正确预测的样本数,其它为误分类样本数。这个分类任务至少说明了 5 类别是有区分度的,不论我们用于正常内容与敏感内容的二分类,还是使用 GAN 做一些新奇的模型,类别都是很有区分度的特征。


最后,各位请怀着敬畏之心严肃使用,且仅供研究使用(不要举报)……



相关 [nsfw 图片 数据] 推荐:

一个22万张NSFW图片的鉴黄数据集?我有个大胆的想法……

- -
如果你想训练一个内容审核系统过滤不合适的信息,或用. GAN做一些大胆的新想法,那么数据集是必不可少的. 例如图像鉴黄,我们需要使用卷积神经网络训练一个分类器,以区分正常图像与限制级图像. 但限制级的图像很难收集,也很少会开源. 因此最近有开发者在 GitHub 上开源了一份 NSFW 图像数据集,这是不是你们想要的.

[NSFW]猜猜这是干嘛用的[v]

- 丁丁 - 煎蛋
提示1:此物是深圳医疗展的某件医疗器械. 提示2:YouTube被顶得最高的评论为 “這是逼供器,把人綁在上面一天一夜,什麼都招了”. YD周一:来自美国的SEX 大调查. 邪恶美帝:女学生的性爱PPT. YD 周一:一名美国男子因携带性玩具而被捕. 周一啦:关于 sex 的十件事( 情侣 版). © 煎蛋 / 投稿 / 图片托管于又拍网 / 火星商店.

YD周一:性感车坛(图集)[NSFW]

- Yee - 煎蛋
© 生抽 for 煎蛋 / 27条回复 / 投递 / 图片托管于又拍网.

裸露與刺青攝影作品 – Giacomo Sinapsi (NSFW)

- daviddu - KAIAK.TW | 城市美學的新態度
刺青與裸露是最近非常熱門的攝影元素,可以看到許多兩者混合的攝影作品. 來自義大利米蘭的 Giacomo Sinapsi 就是其中一個很棒的攝影師,不管是黑白或是彩色作品;男人的背後或是女人的腿上,都可見到刺青,而鏡頭下所展現出來的態度更是吸睛. 有興趣的人可以前往他的網站看更多.

使用 metadata-extractor 解析图片 exif 元数据信息

- - ITeye博客
//光圈F值=镜头的焦距/镜头光圈的直径. System.out.println("光圈值: f/" + directory.getString(ExifSubIFDDirectory.TAG_FNUMBER) );. System.out.println("曝光时间: " + directory.getString(ExifSubIFDDirectory.TAG_EXPOSURE_TIME)+ "秒" );.

Java获取图片EXIF格式的元数据

- - Java - 编程语言 - ITeye博客
Java中要取得一张图片的exif(Exchangeable Image File, 可交换图像文件)信息. 比如:拍摄时间,拍摄设备型号,焦距,曝光时间等. 通过开源Jar包metadata-extractor-2.8.1.jar、xmpcore-5.1.2.jar中提供的类就可以获取到以上信息.

用Python爬取微博数据生成词云图片

- - 编程学习网
很早之前写过一篇怎么利用微博数据制作词云图片出来,之前的写得不完整,而且只能使用自己的数据,现在重新整理了一下,任何的微博数据都可以制作出来,放在今天应该比较应景. 一年一度的虐汪节,是继续蹲在角落默默吃狗粮还是主动出击告别单身汪加入散狗粮的行列就看你啦,七夕送什么才有心意,程序猿可以试试用一种特别的方式来表达你对女神的心意.

分享图片

- 糖果 - 变态辣椒的时政漫画

数据仓库

- Ran - Linux@SOHU
翻译:马少兵、曾怀东、朱翊然、林业. 尽管服务器存储、处理能力得到有效的提高,以及服务器价格的降低,让人们能够负担起大量的服务器,但是商业软件应用和监控工具快速的增加,还是使得人们被大量的数据所困扰. 在数据仓库领域中的许多系统管理员、应用开发者,以及初级数据库管理员发现,他们正在处理“海量数据”-不管你准备与否-都会有好多不熟悉的术语,概念或工具.

数据抽取

- - 数据库 - ITeye博客
转自: http://wiki.mbalib.com/wiki/%E6%95%B0%E6%8D%AE%E6%8A%BD%E5%8F%96#.   数据抽取是指从源数据源系统抽取目的数据源系统需要的. 实际应用中,数据源较多采用的是. 数据迁移或数据复制,它将数据源中的表或视图的数据原封不动的从数 据库中抽取出来,并转换成自己的ETL 工具可以识别的格式.