比较2018最佳NSFW图像审核API!
点击上方关注,All in AI中国
针对裸体(Nudity)、色情(Pornography)和血腥(Gore)等不同类别的多个图像进行内容过滤,这是对于API提供商的综合基准。
人们可以本能地决定他们所看到的内容和画面是否不合适。然而,当涉及到能够判断图像或视频是否不合适的全能型人工智能(不安全的工作)时,这个问题远未解决。在应用自动化技术来识别某种媒体是否可以安全传播或被清除时,许多公司正在竞相采用。
我想亲自了解一下在自动检测普遍考虑的NSFW内容方面最先进的技术。我将基于以下类别的API性能进行比较:
•明确的裸露
•暗示性裸露
•色情/性行为
•模拟/动画色情
•血腥/暴力
Tl;DR:如果你只是想知道哪个是最好的API,那么可以直接跳到文章结尾进行整体比较。
数据集:为了评估,我创建了一个自定义的NSFW数据集,其权重与每个NSFW子类别相同。该数据集由120幅图像组成,其中20个nsfw正图像用于上述五个类别中的每一个和20个NSFW图像。我决定不使用开源YACVID 180图像数据集,因为它主要依赖于使用裸露作为NSFW内容的度量。
收集NSFW图像是一项繁琐、耗时且彻头彻尾的痛苦任务,因此图像数量较少。
该数据集是开源的,可在此处下载。
https://drive.google.com/folderview?id=18SY4oyZgTD_dh8-dc0wmsl1GvMsA7woY这是一张包含数据集中每个图像上API的原始预测的工作表。
https://docs.google.com/spreadsheets/d/1fEOJfTLmQdtRvllw1e8LXJ6vXAjQQj68iF4gWCJy1JM/edit?usp=sharing
指标:
每个分类器都根据普遍接受的指标进行评估,例如:
真阳性:TP
如果分类器称为NSFW,它实际上是NSFW
真阴性:TN
如果分类器称为SFW,它实际上是SFW
假阳性:FP
如果分类器称为NSFW,它实际上是SFW
假阴性:FN
如果分类器称为SFW,它实际上是NSFW
准确性
如果模型做出预测,你能相信吗?
精确
如果模型说图像是NSFW,那通常是多久?
召回
如果所有的NSFW图像识别了多少?
F1得分
它是Precision和Recall的混合体,通常与精度相似。
我为内容审核评估了以下API:
- Amazon Rekognition
- 谷歌
- 微软
- 雅虎
- Algorithmia
- Clarifai
- DeepAI
- Imagga
- Nanonets
- Sightengine
- X-Moderator
跨类别的表现
我首先按类别评估每个API,以了解它们在检测每种不同类型的NSFW内容时的表现。
色情/性行为
谷歌和Sightengine API真正在这里发挥作用,是唯一能够正确检测所有色情图片的API。 Nanonets和Algorithmia紧随其后,因为他们能够正确地对90%的所有色情图片进行分类。而微软和Imagga在这一类别上表现最差。
易于识别的图像明确是色情内容。所有提供商都得到了正确的图像。他们中的大多数人非常自信地预测了NSFW的含量。
难以识别的图像是由于遮挡或模糊导致的困难。在最糟糕的情况下,12家有11家/供应商的图像错误。色情内容在性能方面存在很大差异,具体取决于色情内容的强度以及色情内容的清晰可见程度。
明显的裸露
大多数API在此类别中表现非常好,其中许多API具有100%的检测率。即使性能最低的API(Clarifai和Algorithmia)在这里也有90%的检测率。被认为是裸体的定义一直存在争议,从难以识别的图像中可以清楚地看出,在人们认为这些是SFW的情况下,它们大多是失败的。
易于识别的图像具有明显的可见裸露,并且是明确的。这些将被任何人称为NSFW而没有意见分歧。没有一个提供者犯了错误,平均得分都是0.99。
原始图片的链接:
受到争议的图像是那些提供商弄错的。这可能只是因为每个提供者对于裸露的敏感性有不同的设置。
暗示性裸露
通过对此类别实现100%的检测率,谷歌再次领先于此。Sightengine和Nanonets的性能优于其他产品,检出率分别为95%和90%。对于机器而言,暗示性裸露几乎与明确性裸露一样容易识别,但是它出错的地方是通常看起来像SFW图像但有一些裸露方面的图像。
再一次,没有一个提供商容易识别错误的图像。这些图像都显然是NSFW。
在暗示性的裸露中,提供者进行了划分。与明确的裸露相似,它们都具有不同的可容忍阈值。我不确定这些图像是否应该是SFW。
模拟/动画色情
所有的API都在这里表现得非常好,能够准确地检测出100%的模拟色情内容。唯一的例外是IMAGGA缺失了1个图像。值得注意的是,几乎所有提供商都表现得非常出色。这表明这些算法比自然发生的图像更容易识别人工生成的图像。
所有提供商都有完美的分数和高信度分数。
Imagga错误的一个图像可能被认为可能不是色情,如果看得不够久。
血腥
这是最困难的类别之一,因为API的平均检测率低于50%。 Clarifai和Sightengine能够识别100%的血腥图像,在这方面优于竞争对手。
所有提供者都具有高阈值的那些医学图像可能是因为它们更容易找到。然而,即使在表现最佳的图像中,4/12提供商的图像也是错误的。
图像中没有难以预测的可辨别图案。然而,人们会发现很容易找到这些图像是血腥的。这可能意味着性能不佳的原因是缺乏可用的训练数据。
工作安全
工作安全是不应该被确定为NSFW的图像。收集工作安全的数据集本身很困难,应该接近NSFW以了解这些提供者的意义。如果所有这些图像都是SFW,那么可能会有很多争论。在这里,Sightengine和Google是表现最差的,这可以解释他们在其他类别中的出色表现。们基本上只调用NSFW的任何东西。Imagga在这里做得很好,因为他们没有称为NSFW。 X-Moderator在这方面做得也很好。
易于识别的图像具有非常少的皮肤显示,并且人类很容易识别为SFW。只有1或2家提供商错误地提供了这些图片。
难以识别的SFW图像都有较多的皮肤显示或动漫(色情是对动漫的偏见)。大多数提供商都获得了具有大量SFW的图像,显示为SFW。如果这些是真正的SFW,这会带来问题吗?
整体比较
观察所有NSFW类别的API性能以及它们在能够正确识别工作安全(SFW)内容方面的表现,我发现Nanonets拥有最佳的F1评分,因此平均准确度在所有类别中都表现良好。Google在检测NSFW分类方面做得特别好,它标记了太多的SFW内容,因为NSFW因此在F1评分中受到惩罚。
提供商的比较
我按照准确度和F1评分对前五名提供商进行了比较,以展示他们的表现差异。雷达图表面积越大越好。
1. Nanonets
Nanonets在任何一个类别中的表现都不是最好的。然而,在每个类别中,整体表现最为平衡。它可以做得更好的地方是将更多图像识别为SFW。它对任何皮肤都过于敏感。
2. Google
Google在大多数NSFW类别中表现最佳,但在检测SFW方面表现最差。需要注意的一点是,我发现的图像来自Google,这意味着他们"应该知道"我正在使用的图像是什么。这可能是大多数类别中真正良好性能的原因。
3. Clarifai
Clarifai在识别Gore方面确实很出色,并且比大多数其他API做得更好,它再次很好地平衡了大多数类别,并且表现良好。它缺乏识别暗示裸露和色情。
4. X-Moderator
X-Moderator是另一个平衡良好的API。除了识别血腥图像之外,它还可以很好地识别大多数其他类型的NSFW内容。它在SFW中具有100%的准确性,这使其与竞争对手区分开来。
5. Sightengine
像Google这样的Sightengine在尝试识别NSFW内容方面几乎是完美的得分。然而,它没有确定单个血腥图像。
定价
决定使用哪种API的另一个标准是定价。下面是每个供应商的定价比较。大多数API都有免费试用,使用受限。雅虎是唯一一个完全免费使用并且自托管的供应商,因此不包含在此表中。
对于1M API调用,亚马逊、微软、Nanonets、DeepAI都以每月1000美元的最低价格出售。
哪一个是最好的内容审核API?
NSFW内容的主观性质使得很难将任何一个API声明为内容审核的首选API。
一个更适合内容分发并且想要平衡分类器的一般社交媒体应用程序更喜欢使用Nanonets API,因为其分类器的最高F1评分证明了这一点。
针对儿童的应用程序肯定会更加谨慎,甚至更倾向于隐藏边缘不适当的内容,因此,他们更愿意使用Google API以及其在所有NSFW类别上的示范性能,而有可能过滤掉一些适当的内容。权衡将失去许多可能宣布NSFW的SFW内容。
真正的NSFW是什么?
在花费大量时间研究这个问题之后,我意识到一件关键的事情是,NSFW到底是什么并不清楚。每个人都有自己的定义,你认为可以为自己服务向用户显示哪些内容可以采用,这在很大程度上取决于服务商提供的内容。在约会应用程序中的部分裸露也许没关系,而血腥在医学杂志中也是如此。真正的灰色区域具有暗示性的裸露,无法得到正确的答案。