周末,在开源中国上看到一篇文章,一位叫做 @正_午 的作者发布了一款开源的鉴黄工具 nsfw,并在文章前面声明了。
不要找我要训练数据,我是遵纪守法的好公民,训练数据已经删除。
引起了不少网友的热议^_^
该模型目前已经建成,开源在 Github 上面,并且作者还建立了一个在 demo 网站,便于测试鉴别结果。
我随便拿了一张模特的图片测试,给出如下结果。
说明:class: 图片所属列表 probability: 各类别所属的概率得分。
该模型的训练数据来源于另外一个 Github 开源项目 nsfw_data_scrapper,该项目主要用于收集成千上万的图片,用于做数据训练模型。
训练数据共五类。
porn - pornography images
hentai - hentai images, but also includes pornographic drawings
sexy - sexually explicit images, but not pornography. Think nude photos, playboy, bikini, beach volleyball, etc.
neutral - safe for work neutral images of everyday things and people
drawings - safe for work drawings (including anime)
通过以下混淆矩阵训练 CNN 分类器可使得准确度达到91%。
从上图,我们可以看出训练数据的数量分布为。
drawing: 18251 hentai: 42649 netural: 44677 porn: 108114 sexy: 17253
作者在文中说该模型主要参考了 Tensorflow 官方的 Resnet 代码,做了少许修改。尝试了微调和训练一个相对简单的新模型,微调的效果并不好,反而速度会慢很多。作者猜测应该是因为这些图片和 ImageNet 数据集相差太大的缘故。作者最终发布的模型使用 Resnet-32, 准确率达到 90% 。
对于机器学习这块,本人没有研究过,只是觉得这个项目比较有意思,分享给大家,想了解更多,去 github 上面看源码哈。
PS: 本文原创发布于wx公众号 「Java面试那些事儿」,关注并回复「1024」,免费领学习资料。原文链接