什么是以编程方式检测色情图片的最佳方法?

120
Akismet在检测垃圾评论方面表现出色。但是如今,评论并不是唯一的垃圾形式。如果我想要像Akismet这样的东西自动检测社交网络网站上的色情图片,该怎么办?该网站允许用户上传他们的照片、头像等。
已经有一些基于图像的搜索引擎和面部识别技术可用,因此我认为这并不是什么高深技术,应该可以做到。然而,我对它的工作原理以及如果我想从头开始开发它应该怎么做一无所知。
我该如何开始?
是否有任何开源项目正在进行中?

82
我认为这听起来比火箭科学还要难!我们已经有很多火箭,但据我所知,没有这样的“色情检测器” :) - GaZ
4
LOL。现在已经有人脸识别技术了,但是还没有生殖和乳房识别技术。真不幸。 - Jon Limjap
11
色情内容是与地域相关的问题。此外,我确信有许多图片并没有显示生殖器或裸体,但在某些地方仍然被认为是相当露骨的。(再次强调-在某些地方)。听起来需要一个高级人工智能来完成,而不是简单的算法。 - Noam Gal
2
我刚刚偶然发现了这个实用工具,让我想起了这个帖子。不知道它是否有效?http://proofpronto.com/porn-detection-stick-by-paraben.html - Martin Smith
1
@jm666,如果这个问题对你来说很严重,并且你认为这个领域的技术水平在过去两年里有所提高,那么为什么不在被引用的重复问题上设置赏金呢?这样你就可以吸引一些关注,也许会得到一些答案。 - Michael Petrotta
显示剩余4条评论
25个回答

4

添加一个有攻击性的链接并存储冒犯图片的md5(或其他哈希)以便将来可以自动标记。

如果有人拥有一个大型的公共图像md5数据库,同时运行具有描述性标签的webservice,那将是多么酷啊!很多色情内容都不是原创作品(因为现在拥有它的人可能没有制作它),而且流行的图像往往会漂浮到不同的地方,所以这真的可以产生巨大的影响。


8
我怀疑。互联网上有太多的色情内容(并且每天还会产生大量),你再次看到相同图片的概率非常接近于零(依我之见)。 - Vilx-
想想Tub Girl在一段时间内出现的频率有多高。它只需要被标记一次,然后其他人就可以避免它了。 - rfusca
3
除非它在上传之前被裁剪、调整大小或只是被打开并重新保存。 - Blorgbeard
是的,我考虑过了 :( 嗯,只是一个想法。 - rfusca
1
比MD5更好,使用licence idée的TinEye。 - Tobu
@rfusca:你提到“浴缸女孩”真是太恶心了,现在我都睡不着觉了。 - Alix Axel

2
如果你真的有时间和金钱:
一种方法是通过以下步骤来实现:1)编写图像检测算法,以查找对象是否为人类。这可以通过对图像进行位掩码操作来检索其“轮廓”,并查看轮廓是否符合人类轮廓来完成。
2)数据挖掘大量色情图片,并使用诸如C4算法或粒子群优化等数据挖掘技术来学习检测与色情图片匹配的模式。
这将要求您确定裸体男/女在数字化格式下的身体轮廓应该是什么样子(这可以通过OCR图像识别算法的方式来实现)。
希望你玩得开心! :-)

2

在我看来,主要的障碍是定义“色情图片”。如果您能轻松定义它,那么您可能可以编写一些有效的程序。但即使是人类也无法就什么是色情达成一致。应用程序如何知道呢?用户审核可能是最好的选择。


1

1

BrightCloud Web Service API非常适合这个需求。它是一个REST API,用于执行类似于此类的网站查询。它包含一个非常大且准确的网络过滤数据库,其中一个类别“成人”已经识别出超过1000万个色情网站!


1

我听说过一些使用非常简单但相当有效的算法的工具。该算法计算了与某些预定义的“肤色”颜色接近的像素的相对数量。如果该数量高于某个预定义值,则认为图像是色情/色情内容。当然,该算法会对特写面部照片和许多其他事物产生误报结果。
由于您正在撰写社交网络相关内容,因此会有很多具有高度皮肤颜色的“正常”照片,因此您不应使用此算法来拒绝所有具有积极结果的图片。但是,您可以使用它为管理员提供一些帮助,例如标记这些图片具有更高的优先级,因此如果管理员想要检查某些新图片是否包含色情内容,他可以从这些图片开始。


我实际上见过类似的系统在使用中。它不能单独依赖,可是在适当时能很好地提醒管理员。它不是完全可靠的,特别是如果人只露出一个小区域。反过来的比例并不那么可靠。 - Tim Post

1
我看到过一款网络过滤应用程序,可以进行色情图像过滤,抱歉我记不得它的名称了。它很容易出现误判,但大部分时间都能正常工作。
我认为主要的技巧是检测图片中“太多皮肤” :)

1
我也记不得这项研究了,但它进行了边缘检测,并匹配了旋转或遮挡的阴道图案。从图像处理的角度来看,非常有趣。 - jim
-1,这提供了评论,但并没有给出实质性的解决方案。 - Brad Koch

1

检测色情图片仍然是一个非常理论的人工智能任务。

通过添加一个按钮/链接“报告垃圾邮件/滥用”来收集集体力量和人类智慧。或者雇用几个管理员来完成这项工作。

P.S. 真的很惊讶有多少人问问题,假设软件和算法是万能的,甚至没有考虑他们想要的东西是否可以实现。他们是那些对硬件、低级编程和所有“魔法背后”的理解一无所知的新型程序员的代表吗?

P.S. #2. 我还记得定期会发生这样的情况,即人们自己无法确定一张图片是色情还是艺术,这时候就会被送上法庭。即使法院做出了裁决,也有一半的人认为这个决定是错误的。最近发生的最愚蠢的情况是,由于一张CD封面图片中出现了裸露,一篇维基百科页面在英国被禁止访问。


1

我能想到的两个选项(虽然都不是程序上检测色情内容):

  1. 阻止所有上传的图像,直到您的管理员查看它们。这并不需要很长时间:您可以编写一些软件,以每秒显示10张图片的速度,几乎就像电影一样 - 即使在这种速度下,人类也很容易发现潜在的色情图片。然后您可以在此软件中倒带并仔细查看。
  2. 添加通常的“标记此图像为不适当”的选项。

0
今天我不打算进一步定义我认为包含在“硬核色情”这个简短描述中的材料种类,也许我永远无法清晰地做到这一点。但是当我看到它时,我知道它是什么,而且这个案件涉及的电影不是那种类型。
- 美国最高法院大法官波特·斯图尔特,1964年

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接