已经有一些基于图像的搜索引擎和面部识别技术可用,因此我认为这并不是什么高深技术,应该可以做到。然而,我对它的工作原理以及如果我想从头开始开发它应该怎么做一无所知。
我该如何开始?
是否有任何开源项目正在进行中?
实际上这相当容易。你可以编程检测肤色 - 色情图片往往有很多皮肤。这将产生错误的正面结果,但如果这是一个问题,你可以通过实际审核来处理这些图片。这不仅极大地减轻了审核员的工作量,而且还给你带来了大量免费的色情内容。这是双赢。
#!python
import os, glob
from PIL import Image
def get_skin_ratio(im):
im = im.crop((int(im.size[0]*0.2), int(im.size[1]*0.2), im.size[0]-int(im.size[0]*0.2), im.size[1]-int(im.size[1]*0.2)))
skin = sum([count for count, rgb in im.getcolors(im.size[0]*im.size[1]) if rgb[0]>60 and rgb[1]<(rgb[0]*0.85) and rgb[2]<(rgb[0]*0.7) and rgb[1]>(rgb[0]*0.4) and rgb[2]>(rgb[0]*0.2)])
return float(skin)/float(im.size[0]*im.size[1])
for image_dir in ('porn','clean'):
for image_file in glob.glob(os.path.join(image_dir,"*.jpg")):
skin_percent = get_skin_ratio(Image.open(image_file)) * 100
if skin_percent>30:
print "PORN {0} has {1:.0f}% skin".format(image_file, skin_percent)
else:
print "CLEAN {0} has {1:.0f}% skin".format(image_file, skin_percent)
这段代码测量了图像中心的肤色。我测试了20张相对温和的“色情”图片和20张完全无辜的图片。它标记出了100%的“色情”图片和20张干净图片中的4张。虽然误报率相当高,但该脚本旨在非常谨慎,可以进一步调整。它适用于浅色、深色和亚洲人的肤色。
其主要误报弱点是棕色物体(如沙子和木材),当然,它也不知道“淘气”和“漂亮”的皮肤有什么区别(比如人脸照片)。
假阴性的弱点将是没有暴露太多肉体的图片(如皮革束缚)、涂画或纹身的皮肤、黑白图像等。
这篇文章写于2000年,不确定色情检测技术的现状是否有所进步,但我表示怀疑。
http://www.dansdata.com/pornsweeper.htm
对于有色彩的图片,PORNsweeper似乎可以区分人物图片与非人物图片,但是较难区分脏乱的人物图片和干净的人物图片。使用默认的中等敏感度时,如果人力资源部门发送了会计部新同事的照片,你有大约50%的机会获得它。如果你的姐姐给你发她六个月大孩子的照片,也有类似的可能被拦截。
应该指出一些有趣的错误,例如把《蒙娜丽莎》称为色情图片,如果这些错误代表了软件的行为方式,那么当它确实出现这种错误时,取笑它就显得愚蠢了。但是PORNsweeper只在一个方面符合其声明的规格——检测实际的色情图片。它在检测干净图片方面表现不好。而且我不会惊讶于在不久的将来没有在这个领域取得重大进展。
我更愿意允许用户报告不良图片。图像识别开发需要太多的时间和精力,并且准确性也不如人眼。外包这项审核工作成本更低。
请看:亚马逊机械土耳其
"亚马逊机械土耳其(MTurk)是亚马逊网络服务套件之一,是一个众包市场,使计算机程序协调使用人类智能执行计算机无法完成的任务。"
BOOM! 这里是包含算法的白皮书(点击此处)。
有人知道哪里可以获取Java(或任何语言)实现的源代码吗?
那太棒了。
一种名为WISE的算法具有98%的准确率,但14%的假阳性率。因此您需要让用户标记2%的假阴性,并自动删除一定数量的用户标记后,由管理员查看14%的假阳性。
2004年,来自台湾国立成功大学的一位研究生对此进行了研究。他能够以89.79%的成功率检测从互联网下载的裸体图片。以下是他的论文链接:基于肤色的裸体人像图像检测研究。
如果您无法阅读,请使用翻译工具。
话虽如此,您可以简单地在用户生成的内容旁边添加一个“冒犯?”链接,并让管理员交叉检查收到的投诉。
编辑:
我忘记了一件事:如果您要实施某种过滤器,您需要一个可靠的过滤器。如果您的解决方案只有50%正确率,那么将会有2000个出现像样图片的用户被阻止。预计会引起公愤。