JavaScript裸体识别技术

 当第一次听说nude.js的时候,我非常怀疑这种浏览器端的裸体识别技术,有几个理由:

  1. 正常情况下,裸体识别应该在服务器端进行,这样,那些色情图片或色情视频才能在发送给浏览者前被发现。

  2. 我不相信完全依赖计算机能过滤掉所有色情内容(虽然我是个程序员)。

  3. 黑白裸体图像能被识别出来吗?准确率能有多少?

  4. 如果在客户端发现了色情图片,你能怎么做?这种技术如何使用?

  我用nude.js试验了不少内容,让我来告诉你如何使用它,以及我这些怀疑的答案是什么。

  观看演示

 关于nude.js裸体识别脚本

  从技术的角度上讲,nude.js使用了HTML5画布(Canvas)和WebWorker技术来操作图像进行分析。图像被复制到画布上,使用裸体识别算法进行比较,包括下面几种特征识别:

  • 在图像中查找类似肤色的像素。

  • 根据捕捉到的像素定位或构造皮肤位置。

  • 分析皮肤位置判断是裸体或非裸体。

  • 就裸露情况进行分级,判断是否属于裸露。

  nude.js支持IE9+ (excanvas), Firefox 3.6+, WebKit引擎的浏览器(谷歌浏览器,
Safari, Mobile Safari,Opera)。nude.js还支持对视频进行截屏分析。

 nude.js的用法

  首先要在你的页面上引入nude.js脚本,然后是需要分析的图片:






1

2

3

4

5

6

7

8

9

10

11

<!-- 对于不支持画布技术的IE -->

<!--[if IE]>

<script type="text/javascript" src="excanvas_r3/excanvas.compiled.js"></script>

<![endif]-->

<script src="nude.js/compressed/nude.min.js"></script>

<!-- 需要识别的图片 -->

<img src="/lazy.gif?067588" data-original="dvt1.jpg" alt="Dita Von Tease" id="image1" onclick="onImageClick(‘image1‘);" />

<img src="/lazy.gif?067588" data-original="dvt2.jpg" alt="Dita Von Tease" id="image2" onclick="onImageClick(‘image2‘);" />

<img src="/lazy.gif?067588" data-original="dvt3.jpg" alt="Dita Von Tease" id="image3" onclick="onImageClick(‘image3‘);" />

<img src="/lazy.gif?067588" data-original="dvt4.jpg" alt="Dita Von Tease" id="image4" onclick="onImageClick(‘image4‘);" />

  nude.js的用法很简单,因为它只有两个方法:<code>load</code> 和
<code>scan</code>。其中 <code>load</code> 方法接受图片的
<code>id</code> 或图片本身,将其拷贝到画布里。而 <code>scan</code>
方法根据算法对画布数据进行分析,返回 <code>true</code> 或
<code>false</code>。






1

2

3

4

5

6

7

function onImageClick(node) {

    nude.load(node);

    // 扫描

    nude.scan(function(result){

        alert(result ? "在" + node.id + "发现裸露图像!" : "非裸体");

    });

}

  你可以想象出,这些过程是在浏览器里进行的,所以不要期望很迅速的得出结果。而且,很显然,图片尺寸是分析速度的一个重要因素。如果你的网站严重的依赖nude.js,小心那些大尺寸的图片。

 裸体识别的结果

  对于高质量的裸露女性的JPEG图片,这个小脚本检测成功率非常高。但对于暗色调或黑人皮肤却不是很成功。在我的测试中,nude.js没有识别出黑白裸露图像,也没有发现视频的色情影像(可能是我的视频清晰度不够)。

  观看演示

  不管怎么说,nude.js的表现还是很不错的,但总觉得这种技术还无法大规模使用。扫描图片需要时间,而且会卡住浏览器。因为nude.js(包括它使用的识别算法)对黑白图片和低质量的图片有缺陷,所以我不推荐在网站上大量的依赖这个脚本进行识别。

时间: 2024-10-05 10:42:54

JavaScript裸体识别技术的相关文章

前端html、Javascript、CSS技术小结

简单地总结了一下前端用过的html.javascript.css技术,算是清点一下,做个大略的小结,为进一步的学习给个纲领. 一.HTML 由于HTML5的兴起,简单地判断一个网页是否是html5网页,只需要找找内部是否有html5的标志性标签就行了.然而平时虽然写了不少html,却没怎么关注它的发展史: GML(Generalized Marcup Language)通用标记语言 和SGML(Standard Generalized Markup Language)标准通用标记语言. 由Tim

PHP实现人脸识别技术

这次人脸识别技术,是实现在微信端的,也就是说利用公众微信平台,调用第三的API来实现人脸识别这项技术的. 实现的思路: 首先呢,将收集的照片,建立一个照片库,然后利用在微信平台发送的照片,去到照片库进行匹配,那么怎么匹配呢? 这就要利用第三方的API了. 这个是收集信息,然后存储到信息库(包括图谱库) 部分代码: <html> <head> <meta charset="utf-8"/> <meta name="viewport&qu

基于HTML Canvas实现“指纹识别”技术

作者:zhanhailiang 日期:2015-01-31 说明 所谓指纹识别是指为每个设备标识唯一标识符(以下简称UUID).诸如移动原生的APP都可以通过调用相关设备API来获取相应的UUID.但是浏览器内WebAPP受限于运行环境无法直接防部设备API,此时需要通过其它方法来设置UUID. 基于持久化Cookie生成UUID 原理 当用户访问一个网站时,网站可以在用户当前的浏览器Cookie中种入含有UUID的Cookie,并通过这个信息将用户所有行为(浏览了哪些页面?搜索了哪些关键字?对

指纹识别技术需要遵循的2点原则

手机指纹识别技术应该遵循的2点原则: 第一,指纹扫描必须只基于硬件,不可通过软件激活,或是将指纹信息传送给软件.如果该装置能够被软件激活,则无法避免被恶意代码攻击的风险.而基于硬件的实现仅会通知软件"指纹验证通过"或"指纹验证失败",但不会与软件分享任何指纹相关的数据与信息. 第二,在本地存储的指纹信息,其存储位置必须非常安全,这个位置必须禁止软件的访问,否则黑客会通过破解软件的方式来获取指纹信息.Shuman Ghosemajumder提到的2点原则应该成为所有指

国内图文识别技术应用

图文识别技术的应用 国内图文识别技术应用,布布扣,bubuko.com

Wintone文通科技公司!图文识别技术的应用

"源于清华 服务全球"的国内顶尖OCR图文识别技术,针对文字字符的最新科研计算方法研究的应用     北京文通科技有限公司,是光学中文字符识别的全球领导厂商,具有深厚的技术储备. 文通快档通--扫描识别系统文字识别软件:包含文档扫描.图像处理.ocr识别:条码识别:***识别:公文识别等功能,并提供识别结果的接口,方便用户直接调用. 一.软件功能 (1)文档识别功能 主要作用是普通文档的识别,转出TXT,RTF,EXL,PDF等格式,多用于档案管理软件.资源管理软件等系统集成. (2)

工控系统的指纹识别技术

转载:灯塔实验室 当前,指纹识别技术已被或坏或好的广泛应用于ICT(信息和通信技术)系统.攻击者通过扫描网络获取设备指纹来关联漏洞入侵系统,安全防护者则利用设备指纹来发现系统的脆弱性,检测系统的网络异常.在工业控制系统(ICS)中,指纹识别技术亦用于发现ICS系统脆弱性,检测攻击行为等方向.本文主要关注工控安全领域指纹识别技术. 指纹识别是什么 在ICT领域里,指纹识别是利用不同信息描述运行于网络中的设备或者软件的一种技术.我们了解最多的是设备指纹,被用来远程识别设备的硬件,操作系统,运行软件(

OCR识别技术文档识别怎么用

OCR识别技术文档识别的概括 我们常说的OCR.文字识别.OCR识别技术文档识别是指通过电子设备等将纸质上的文字识别出来,形成可编辑的文字. OCR识别技术文档识别的流程 随着扫描仪的普及与广泛应用,再加上摄像头迅速发展的手机等智能终端设备的应用,OCR识别技术文档识别软件越来越被应用于各种业务系统中. 常规的OCR文字识别处理的过程包括: 1.图像输入.预处理:二值化图片.噪声去除.倾斜较正: 2.版面分析:把页面分为横排文本.竖排文本.表格.图片等不同区域,帮助字符切割.识别OCR: 3.设

文档拍照识别技术

文档拍照识别技术 文档拍照识别技术需求背景: 在很场景中都涉及到对纸质文档汉字的录入,传统的手机录入速度非常慢,体验差.针对这些需求,我们推出了文档拍照识别技术,使用手机或者平板电脑对纸质文档进行拍照后,可以自动识别文字.目前支持android和ios主流操作平台,提供SDK开发包,支持二次开发.可集成到各种APP中,集成后即可获得拍照识别图片文字的功能. 相对于传统的手工录入方式来说,OCR(Optical Character Recognition,光学字符识别)智能录入具有强大的优势,OC