17

我目前正在为客户开发一个网站。它包括用户能够上传图片以显示在网站的画廊中。

我们遇到的问题是,当用户上传图片时,显然需要对其进行验证以确保网站安全(没有色情或露骨图片)。但是,我的客户不希望手动接受正在上传的每张图片,因为这会很耗时,而且用户的图片不会立即在线。

我正在用 PHP 编写代码。如果需要,我可以更改为 ASP.net 或 C#。有什么办法可以做到这一点?

4

7 回答 7

27

2019 更新

自 2013 年这个原始答案方式以来,发生了很多变化,主要是机器学习。现在有许多库和 API 可用于以编程方式检测成人内容:

Google Cloud Vision API,它使用与 Google 用于安全搜索的相同模型。

NSFWJS使用 TensorFlow.js 声称可以达到约 90% 的准确度,并且在 MIT 许可下是开源的。

Yahoo在 BSD 2 条款许可下有一个名为Open NSFW的解决方案。

2013年答案

有一个名为nude.js的JavaScript 库就是为此而生的,尽管我从未使用过它。这是它的使用演示

还有PORNsweeper

另一种选择是使用诸如Amazon Mechanical Turk之类的东西“外包”审核工作,这是一个众包平台,“使计算机程序能够协调使用人类智能来执行计算机无法完成的任务”。因此,您基本上会为每个审核项目支付少量费用,并让外包的实际人员为您审核内容。

我能想到的唯一其他解决方案是让图像用户审核,用户可以标记不适当的帖子/图像以进行审核,如果没有人想要手动审核它们,可以在一定数量的标记后简单地删除它们。

以下是有关该主题的其他一些有趣的链接:

于 2013-01-18T09:56:30.123 回答
2

如果您正在寻找基于 API 的解决方案,您可能需要查看Sightengine.com

它是一种自动化解决方案,用于检测图像和视频中的成人内容、暴力、名人等内容。

这是一个使用 SDK 的 PHP 示例:

<?php
$client = new SightengineClient('YourApplicationID', 'YourAPIKey');

$output = $client>check('nudity')>image('https://sightengine.com/assets/img/examples/example2.jpg');

然后输出将返回分类:

{ "status": "success", "request": { "id": "req_VjyxevVQYXQZ1HMbnwtn", "timestamp": 1471762434.0244, "operations": 1 }, "nudity": { "raw": 0.000757, "partial": 0.000763, "safe": 0.999243 }, "media": { "id": "med_KWmB2GQZ29N4MVpVdq5K", "uri": "https://sightengine.com/assets/img/examples/example2.jpg" } }

查看文档以获取更多详细信息:https ://sightengine.com/docs/#nudity-detection (免责声明:我在那里工作)

于 2017-05-11T12:14:30.830 回答
2

下面的示例不会为您提供 100% 准确的结果,但它应该至少对您有所帮助并且开箱即用。

<?php
$url = 'http://server.com/image.png';
$data = json_decode(file_get_contents('http://api.rest7.com/v1/detect_nudity.php?url=' . $url));

if (@$data->success !== 1)
{
    die('Failed');
}
echo 'Contains nudity? ' . $data->nudity . '<br>';
echo 'Nudity percentage: ' . $data->nudity_percentage . '<br>';
于 2017-06-17T14:30:45.197 回答
1

有一个免费的 API 可以检测成人内容(色情、裸露、NSFW)。

https://market.mashape.com/purelabs/sensitive-image-detection

我们已经在我们的生产环境中使用它,我会说它到目前为止工作得很好。虽然有一些错误检测,但如果他们不确定,他们似乎更愿意将图像标记为不安全。

于 2016-08-26T19:50:37.993 回答
0

这完全取决于您正在寻找的准确度水平,简单的肤色检测(如nude.js)可能会在大量样本集上为您提供60-80%的准确度,比这更准确的东西,比如说90-95 %,您将需要一些专门的计算机视觉系统,其模型会随着时间的推移而不断改进。对于后者,您可能需要查看http://clarifai.comhttps://scanii.com(我正在研究)

于 2016-09-06T03:52:25.773 回答
0

Microsoft Azure 有一个非常酷的 API,称为计算机视觉,您可以免费使用(通过 UI 或以编程方式),并且有大量文档,包括 PHP

它有一些非常准确(有时是幽默)的结果。

除了检测成人和“色情”材料之外,它还会读取文本、猜测您的年龄、识别原色等。

您可以在azure.microsoft.com上试用。

“活泼”图像的示例输出:

FEATURE NAME:               VALUE:
Description                 { "tags": [ "person", "man", "young", "woman", "holding",
                              "surfing", "board", "hair", "laying", "boy", "standing", 
                              "water", "cutting", "white", "beach", "people", "bed" ], 
                              "captions": [ { "text": "a man and a woman taking a selfie", 
                              "confidence": 0.133149087 } ] }
Tags                        [ { "name": "person", "confidence": 0.9997446 }, 
                              { "name": "man", "confidence": 0.9587285 }, 
                              { "name": "wall", "confidence": 0.9546831 }, 
                              { "name": "swimsuit", "confidence": 0.499717563 } ]
Image format                "Jpeg"
Image dimensions            1328 x 2000
Clip art type               0
Line drawing type           0
Black and white             false
Adult content               true
Adult score                 0.9845981
Racy                        true
Racy score                  0.964191854
Categories                  [ { "name": "people_baby", "score": 0.4921875 } ]
Faces                       [ { "age": 37, "gender": "Female",
                                "faceRectangle": { "top": 317, "left": 1554, 
                                                   "width": 232, "height": 232 } } ]
Dominant color background   "Brown"
Dominant color foreground   "Black"
Accent Color                #0D8CBE
于 2018-03-07T14:00:27.517 回答
0

我最近发现自己需要一个系统来检测成人内容。

我最终构建了这个项目,这是一个可以轻松部署到 Herkou(或任何可以运行 docker 容器的地方)的 API,并允许您为成人内容的图像评分。

它基于open_nsfw一个开源模型,该模型经过训练可以检测不适合工作的图像。上面的项目基本上是一个基于 open_nsfw 的 python API,可以部署。

于 2018-10-14T06:38:57.203 回答