机器学习看裸照:谷歌、微软、亚马逊,哪家图像API鉴黄能力强?

在过去的几年里,科技公司通过机器学习和使用ML算法来检测“有害”的内容,并自动调节UGC来应对这种威胁。

 |  新智元

来源:Dataturks

编译:三石

扫黄打非,刻不容缓!

在智能手机时代,手机上装有一个、两个甚至更多的摄像头,图像(和视频)已经成为用户与社交媒体互动的最常见方式。

几乎所有用户生成的内容,比如Yelp或TripAdvisor上的评论、Instagram和Facebook上的帖子、WhatsApp上的转发等等,所有内容的图片数量都在不断增加。最近一项2017年的数据显示,仅Facebook每天就会上传大约3.5亿张图片。这个数量是非常庞大的。

如果你的网站或者APP允许用户生成内容(UGC),例如评论、上传可能带图片的帖子等等。但目前很现实的一个问题是,一个troll可以将带有色情或者可怕的照片在你的网站上公开显示,必定会带来许多用户的谴责,甚至可能会承担相应的法律责任。

扫黄打非,手段是关键

公司处理这一类问题常见的方式是审核,在审核过程中,UGC的每个细节内容都要通过人工操作,然后才能在网站或应用中展示出来。许多公司雇用了数十名工作人员,他们日复一日地过滤这些UGC。然后公司聘用这样的团队,实际上不仅花费大量的金钱,而且效率也是很低的。

在过去的几年里,科技公司通过机器学习和使用ML算法来检测“有害”的内容,并自动调节UGC来应对这种威胁。最后机器无法自动分类或判别的内容,将交于员工进行人工操作。这就大幅度提高了效率。

开发、构建上述ML解决方案是一件非常困难的任务,所以像谷歌、微软这样的大型技术公司或Clarifai这样的小公司都会提供api来帮助用户完成这项工作。由于大多数这些API提供了类似的功能,我们希望相互测试这些API的有效性,特别是用于检测图像中的成人或色情内容。我们比较了AWS rekognition、Microsoft moderation services、Google vision和Clarifai的鉴黄API的性能。

明确任务,迈向成功的关键

  • 将用户上传的“有害”图片标记为含有成人或色情内容,以便仅批准安全图像;

  • 裸照等图片会被自动删除;

  • 没有明确分类的图片会被发送给人工评估。

数据集介绍

我们使用了YACVID数据集的180幅图像,其中90张图像人工标记为非裸照,90张图像为裸照。我们用这4个API分别去测试这180张图像,并记录它们的分类的情况。

数据集中的一个示例数据项

数据集中安全的示例图像

实验结果一览

在测试这些API时,主要关注以下这些值:

  • 真阳性(True Positive,TP):给定一个安全照片,API鉴定结果也是安全的;

  • 假阳性(False Positive,FP):给定一个色情照片,API鉴定结果是安全的;

  • 假阴性(False Negative,FN):给定一个安全照片,API鉴定结果是色情的;

  • 真阴性(True Negative,TN):给定一个色情照片,API鉴定结果也是色情的;

理想情况下,人们肯定希望100% TP率和0% FP率。无论FP的值是多少,都是有害的,因为这有可能会在你的应用或网站上展现一些色情的图像。而FN的值若是过高,则说明这个系统是无效的,便会导致一个企业投入更多的人力资源。

实验结果如下表所示:

星标的表示集成使用API

最好的独立API来自谷歌,精度为99%,召回率为94%。从表中可以看到,大部分API实验结果都非常良好,数值都达到了90以上。但是考虑到问题的实际背景情况,即使准确率如此之高,但对于许多情况也并非是万无一失的。

我们还试图结合使用两个或多个API来寻找解决问题的最佳方案。在我们的数据集中,似乎将Google和AWS API结合起来可以提供最佳性能。即便如此,仍有10%的安全图片需要人工验证才能共同构建出一个万无一失的系统。

各个API介绍

Microsoft image moderation

这个API将色情图像分类为“成人”或“猥琐”,我们将这两类都视为NSFW类。以下是一些错误地将安全图片分类为色情类的图片:

Google cloud vision

这个API将一个色情图像分类为“也许”、“可能”、“非常可能”,这三类都被视作NSFW类。以下是一些错误地将安全图片分类为色情类的图片:

AWS Rekognition

这个API将一个色情图像分类为“明显裸露”、“裸露”、“暗示”,这三类都被视作NSFW类。以下是一些错误地将安全图片分类为色情类的图片:

Clarifai nudity moderation

这个API返回一个NSFW/SFW类的置信度值。该API将NSFW值大于或等于0.85的图像分类为NSFW, NSFW值小于或等于0.15的图像分类为SFW。而处于0.15到0.85范围之间的图像被视为未知状态(因为召回率非常低)。以下是一些错误地将安全图片分类为色情类的图片:

The Black Swan

下面这张图片,无论哪个API,都将其分类为NSFW,但都被人工分类为SFW。那么问题来了,各位读者,你们认为它应该属于哪类呢?

其它因素

我们还测量了API响应时间,这是决定用户选择使用哪个API的一个因素。由于响应时间可能受很多因素的影响,因此下表的值只是一个大概数字,而不是实际值。下表的统计数据是在Ubuntu系统的笔记本运行试验而得到的(每个API调用180次)。

需要注意的一点是,所有这些API都访问了在Amazon S3上传的图像,AWS API在访问S3映像时会有一定不公平的优势,因此响应时间可能较短。