JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js


Posted in Javascript onSeptember 14, 2015

我一直对人工智能识别技术非常感兴趣,因为我无法想象这究竟是一种什么样的算法,什么样的分析过程。无论是声音识别、人脸识别或其它种识别,人们的外貌、说话的方式都是如此不同,一种图片你可以用不同的方式、从不同的角度拍摄,我不能理解这些识别技术是如何做到的。有个叫做“面具”的游戏也使用了这种识别技术,我想对于脸部识别技术也应该研究一下。Facebook使用了这种技术,在手势控制中也能用到它,所以,你网站上也会有应用的地方。

我找到的一个可以用于人脸识别的JavaScript程序包是Face Detection,它是由Jay Salvat和Liu Liu开发的。它是一个标准的jQuery插件,通过对提供的图片进行分析,返回所有找到的脸部图像的坐标。下面我们来看看它是如何使用的!

jQuery.faceDetection

使用Face Detection这个jQuery plugin,你需要引入四个js文件:

<script src="jquery-1.4.3.min.js"></script>
<!-- mas js -->
<script src="facedetection/ccv.js"></script>
<script src="facedetection/face.js"></script>
<script src="jquery.facedetection.js"></script>

这个脸部识别插件的头两个文件里是它的各种功能性程序,通过它们能得到一个数组对象,这些对象里存储的就是图片里的脸部坐标信息。下面是一个例子:

var coords = jQuery("#myImage").faceDetection();
/* 返回:
 {
 x: 525
 y: 435,
 width: 144,
 height: 144,
 positionX: 532.6353328125226,
 positionY: 443.240976080536,
 offsetX: 532.6353328125226,
 offsetY: 443.240976080536,
 confidence: 12.93120119,
 neighbour: undefined,
 }
*/

你还可以在检测方法上加入事件回调函数:

var coords = jQuery("#myImage").faceDetection({
 complete: function(image, coords) {
 // Do something
 },
 error: function() {
 console.warn("无法分析图片");
 }
});

对于识别出的脸部信息,你可以做任何的处理东西。你可以在图片中脸部的位置画出框线:

jQuery("img").each(function() {
 var img = this;
 // 获取脸部坐标
 var coordinates = jQuery(img).faceDetection();
 // 在脸上画出框线
 if(coordinates.length) {
 coordinates.forEach(function(coord) {
 jQuery("<div>", {
 css: {
 position: "absolute",
 left: coord.positionX + 5 + "px",
 top: coord.positionY + 5 + "px",
 width: coord.width + "px",
 height: coord.height + "px",
 border: "3px solid white"
 }
 }).appendTo(img.parentNode);
 });
 }
});

这很简单,当然你可以做复杂的处理,比如说提取出来。

我用了各种图片进行脸部识别尝试,正如我预想到的,结果并不是很完美。但不管怎样,还是相当不错的。这是一个很简单的脚本技术,而且没有任何技术是十全十美的。这个脸部识别插件并不具有脸部比较功能,你需要用其它方法并提供面部特征信息实现此功能。总之,相当不错,强烈建议你试一下。

脸部识别JavaScript类库Tracking.js

对Web开发者而言,开源的JavaScript库Tracking.js正在使计算机视觉和增强现实技术变得简单, 使用它可以展示效果类似Kinect或者Wii的体感应用,且该JavaScript库体积小 (~7k),非常轻量级,且接口简洁。

Tracking.js 能够在移动Web应用、桌面应用中工作,甚至可以和基于Node.js的服务器进行配对。 它会给浏览器带来计算机图形学算法和技术,其拥有功能:脸部识别(某个特定的颜色时或人物/脸庞/身体出现移动的时候)、实时色彩跟踪。对于Web开发而言,以前需要通过C或C++的技术才能实现类似效果。而现在Traking.js提供了一个Web组件,因此Web前端开发人员可以访问HTML标签组件来实现类似功能,而无需了解JavaScript,这极大的简化了Web开发。

Tracking.js包括一个色彩跟踪算法和对象跟踪组件,它能使Web浏览器识别脸部及眼睛的变化。例如,Web前端还可以对于用这个功能来设置用户头像,对一些网站而言,这也是个很炫的功能;同时对跟踪的脸部数据和后台数据库进行匹配,从而和反馈给用户更多有用的数据。

目前,在GitHub上Tracking.js源码工程已经被Fork了200次以上,8月份上旬,该JS库已经升级为1.0版本。

以上内容就是给大家分享的JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js,希望大家喜欢。

Javascript 相关文章推荐
javascript 事件查询综合 推荐收藏
Mar 10 Javascript
再论Javascript的类继承
Mar 05 Javascript
浅析tr的隐藏和显示问题
Mar 05 Javascript
javascript中innerText和innerHTML属性用法实例分析
May 13 Javascript
jQuery实现简单隔行变色的方法
Feb 20 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
Jul 14 Javascript
Node.js 中exports 和 module.exports 的区别
Mar 14 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
Sep 21 Javascript
Vue.js 中的 v-show 指令及用法详解
Nov 19 Javascript
全面了解JavaScript的作用域链
Apr 03 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
Apr 20 Javascript
利用javaScript处理常用事件详解
Apr 14 Javascript
JS实现可关闭的对联广告效果代码
Sep 14 #Javascript
详解JavaScript中的4种类型识别方法
Sep 14 #Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
Sep 14 #Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
Sep 14 #Javascript
js动态生成Html元素实现Post操作(createElement)
Sep 14 #Javascript
IE9+已经不对document.createElement向下兼容的解决方法
Sep 14 #Javascript
JS动态添加iframe的代码
Sep 14 #Javascript
You might like
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
PHP parse_url 一个好用的函数
2009/10/03 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
2017/10/26 Javascript
Vue框架之goods组件开发详解
2018/01/25 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
Numpy 多维数据数组的实现
2020/06/18 Python
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
机械设计制造专业个人求职信
2013/09/25 职场文书
汽车专业人才自我鉴定范文
2013/12/29 职场文书
离婚财产处理协议书
2014/09/30 职场文书
初中家长评语和期望
2014/12/26 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
金陵十三钗观后感
2015/06/04 职场文书
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
python3操作redis实现List列表实例
2021/08/04 Python
Java使用JMeter进行高并发测试
2021/11/23 Java/Android