聊聊JavaScript人脸识别技术


本文摘自PHP中文网,作者coldplay.xixi,侵删。

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

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

jQuery.faceDetection

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

1

2

3

4

5

6

<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>

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

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,

    }

*/

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

1

2

3

4

5

6

7

8

var coords = jQuery("#myImage").faceDetection({

    complete: function(image, coords) {

        // Do something

    },

    error: function() {

        console.warn("无法分析图片");

    }

});

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

jQuery("img").each(function() {

    var img = this;

    // 获取脸部坐标

    var coordinates = jQuery(img).faceDetection();

    // 在脸上画出框线

    if(coordinates.length) {

        coordinates.forEach(function(coord) {

            jQuery("<p&gt", {

                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视频教程

以上就是聊聊JavaScript人脸识别技术的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

javascript中var有啥缺陷

es6中变量的解构赋值的用法介绍(附代码)

怎么在javascript中进行多行注释

编写javascript程序的唯一工具是纯文本编辑器吗?

javascript特权方法有什么用

html5实现移动端下拉刷新(原理和代码)

你不太了解的json

javascript sqrt方法怎么用

如何取消javascript中的异步任务?

javascript获取当前日期

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...