如何以编程方式识别成人内容?
2022-08-30 21:59:53
我目前正在为客户开发一个网站。它包括用户能够上传要在网站上的图库中显示的图片。
我们遇到的问题是,当用户上传图像时,显然需要对其进行验证,以确保它对网站是安全的(没有色情或露骨的图片)。但是,我的客户不希望手动接受正在上传的每个图像,因为这将非常耗时,并且用户的图像不会立即在线。
我正在用PHP编写代码。如果需要,我可以更改为 ASP.net 或C#。有什么办法可以做到这一点吗?
我目前正在为客户开发一个网站。它包括用户能够上传要在网站上的图库中显示的图片。
我们遇到的问题是,当用户上传图像时,显然需要对其进行验证,以确保它对网站是安全的(没有色情或露骨的图片)。但是,我的客户不希望手动接受正在上传的每个图像,因为这将非常耗时,并且用户的图像不会立即在线。
我正在用PHP编写代码。如果需要,我可以更改为 ASP.net 或C#。有什么办法可以做到这一点吗?
2019年更新
自2013年这个原始答案以来,很多事情都发生了变化,主要是机器学习。现在有许多库和 API 可用于以编程方式检测成人内容:
Google Cloud Vision API,它使用与Google用于安全搜索的相同模型。
NSFWJS使用TensorFlow.js声称可以达到约90%的准确率,并且在MIT许可下是开源的。
雅虎有一个名为Open NSFW的解决方案,根据BSD 2条款许可证。
2013年回答
有一个名为nude的JavaScript库.js就是为了这个,尽管我从未使用它。这是使用它的演示。
还有PORNSweeper。
另一种选择是使用像Amazon Mechanical Turk这样的东西“外包”审核工作,这是一个众包平台,“使计算机程序能够协调人类智能的使用,以执行计算机无法完成的任务”。因此,您基本上会为每个审核项目支付少量费用,并有一个外包的实际人员为您审核内容。
我能想到的唯一另一个解决方案是使图像用户审核,用户可以标记不适当的帖子/图像进行审核,如果没有人想要手动审核它们,则可以在一定数量的标志后简单地将其删除。
以下是有关该主题的其他一些有趣链接:
下面的示例不能为您提供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>';