豆瓣小组 与 机器学习

回到 4 年前,当时豆瓣的害羞组十分的火爆,堪比现在的抖音。有很多的小姐姐们在上面发自拍(,要是可以发视频的话,还有现在抖音什么事)。

那时我也方兴未艾,天天去上面看小姐姐,后来嫌麻烦,就写了一个爬虫:

豆瓣小组图片下载 (由于是好多年前的代码了,现在已经失效了,我也不打算继续维护了)

我陆续爬去了30000篇帖子,但是里面什么样的照片都会有,比如黄色,卡通,抠脚大汉…… 之前通过帖子的标题,热度等过滤了一些,但是剩下的图片还是一个海量的工作。

NSFW 图片处理筛选

直到最近机器学习的兴起,我们可以通过机器学习的方法筛选不想要的图片。

OpenNSFW 是雅虎数年前已经训练好的一个鉴黄模型,通过机器学习的手段将图片区分为5大类

  • Drawing(绘图) – safe for work drawings (including anime)
  • Hentai(变态) – hentai and pornographic drawings
  • Neutral(安全) – safe for work neutral images
  • Porn(色情) – pornographic images, sexual acts
  • Sexy(性感) – sexually explicit images, not pornography

NSFW -「Not Safe For Work」或者「Not Suitable For Work」的缩写,意思就是某个网络内容不适合上班时间浏览。

如果感兴趣可以试一下在线的demo: http://nsfwjs.com/

早上,我就用 OpenNSFW 对自己的图片精选了筛选。

代码很简单,我就不放出来了,简单的说就是使用他们训练好的模型对图片进行打分:

比如这张图片:

{
    '变态': 0.0004995323, 
    '绘图': 0.0015125229, 
    '性感': 0.013945965, 
    '色情': 0.018440166, 
    '安全': 0.96560174
}

安全值达到了0.96,基本就可以判断这是一张可以上班看的图片了。

安全值大于0.8可以确定一个分类,在0.2~0.8之间还需要人工介入。

其他

高能预警,非战斗人士请火速撤离……

如果自己想训练模型,但是手上没有图片怎么棒?

Github 上有一个 鉴黄图像数据集

在 raw_data 文件夹里,可以找到不同的 .txt 格式的文档,每个文档都含有一组 URL,以下是关于该数据集的一些统计信息: