JavaScript实现的人脸检测方法是怎样的

技术JavaScript实现的人脸检测方法是怎样的这篇文章给大家介绍JavaScript实现的人脸检测方法是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。我一直对视频和图片中的人脸标记、检测和

本文向大家介绍了用JavaScript实现的人脸检测方法,内容非常详细。感兴趣的朋友可以参考一下,希望对你有所帮助。

我一直对视频和图片中的人脸标记、检测和人脸识别技术很感兴趣。虽然我知道获取逻辑和算法来开发人脸识别软件或插件超出了我的想象。当我知道Javascript库可以识别微笑、眼睛和脸的结构时,我受到了启发,写了一篇教程。有许多库,要么是纯粹基于javascript的,要么是基于Java的。

今天,我们开始学习tracking.js,这是一个来自Eduardo Lundgren开发的,的轻量级javascript库,它允许你进行实时人脸检测、颜色跟踪和标记朋友的脸。在本教程中,我们将看到如何从静止图片中检测人脸、眼睛和嘴巴。

您可以看到一个教程,其中提供了一个可以使用的示例。这个例子有技巧和更多的技术细节。

首先,我们需要构建一个项目,从github下载项目并提取构建文件夹,并根据您的文件和目录结构放置构建文件夹。在本教程中,我使用了以下文件和目录结构。

文件夹结构

项目index.html资产face.jpgjs跟踪-min . jsdataeye-min . jseye . jsface . jsmouth-min . jsmouth以下是index.html的html代码。

HTML代码

!doctypehtmlhtmltownetacharset=' utf-8 ' title @ TutsFacedetectionTourial/title scriptsrc=' js/tracking-min . js '/script src=' js/data/face-min . js '/script script src=' js/data/eye-min . js '/script script src=' js/data/mouth-min . js '/script style . rect { bord

r: 2px solid #a64ceb;      left: -1000px;      position: absolute;      top: -1000px;    }       #img {      position: absolute;      top: 50%;      left: 50%;      margin: -173px 0 0 -300px;    }    </style> </head> <body> <div class="imgContainer">   <img id="img" src="assets/face.jpg" /> </div>    </body> </html>

在上面的HTML代码中,我们引入4个javascript来自于tracking.js的文件,这些文件有助于我们从图片中检测人脸、眼睛和嘴巴。现在我们写一段代码来实现从静态图片中检测人脸,眼睛和嘴巴。我故意选用这张图片,因为这张图片中有多张不同表情和姿势脸。

JavaScript实现的人脸检测方法是怎样的

为了达成目标,我们需要修改html文件头部的代码。

HTML 代码

<!doctype html> <html> <head>   <meta charset="utf-8">   <title>@tuts Face Detection Tutorial</title>      <script src="js/tracking-min.js"></script>   <script src="js/data/face-min.js"></script>   <script src="js/data/eye-min.js"></script>   <script src="js/data/mouth-min.js"></script>      <style>   .rect {      border: 2px solid #a64ceb;      left: -1000px;      position: absolute;      top: -1000px;    }       #img {      position: absolute;      top: 50%;      left: 50%;      margin: -173px 0 0 -300px;    }    </style> // tracking code.  <script>     window.onload = function() {        var img = document.getElementById('img');           var tracker = new tracking.ObjectTracker(['face', 'eye', 'mouth']); // Based on parameter it will return an array.        tracker.setStepSize(1.7);           tracking.track('#img', tracker);           tracker.on('track', function(event) {          event.data.forEach(function(rect) {            draw(rect.x, rect.y, rect.width, rect.height);          });        });           function draw(x, y, w, h) {          var rect = document.createElement('div');          document.querySelector('.imgContainer').appendChild(rect);          rect.classList.add('rect');          rect.style.width = w + 'px';          rect.style.height = h + 'px';          rect.style.left = (img.offsetLeft + x) + 'px';          rect.style.top = (img.offsetTop + y) + 'px';        };      };    </script>    </head> <body> <div class="imgContainer">   <img id="img" src="assets/face.jpg" /> </div>    </body> </html>

结果

JavaScript实现的人脸检测方法是怎样的

代码说明.

  • tracking.ObjectTracker() 方法对你想要进行跟踪的对象进行了分类,它可以接受一个数组作为参数.

  • setStepSize() 指定的块的步进大小.

  • 我们将要跟踪的对象绑定上 “track” 事件, 对象一被跟踪,很快正在跟踪的对象就会触发跟踪事件.

  • 我们以对象数组的形式中获取数据,里面有每个对象(脸部,嘴部很眼部)的宽度,高度 , x 和 y 坐标;

注意:由于浏览器安全性的原因,这个程序需要运行在一样的域或者禁用网络安全的浏览器中。

关于JavaScript实现的人脸检测方法是怎样的就分享到这里了,希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/98441.html

(0)

相关推荐

  • 幂的乘方50道计算题,求50道六年级计算题是方程

    技术幂的乘方50道计算题,求50道六年级计算题是方程64x 207=169 127x 61=117 78x 15=78 253x 161=165 18x 255=217 178x 115=178 97x 5=9 121x

    生活 2021年10月22日
  • 正常语速一分钟可以说多少个字,一个人一分钟正常说多少字

    技术正常语速一分钟可以说多少个字,一个人一分钟正常说多少字一般情况下,人讲话的语速为每分钟160至180个汉字左右,如果在情绪激动或是专业播报的情况下,比如体育比赛中的评述语速可达每分钟250至300个汉字,《新闻联播》

    生活 2021年10月29日
  • 恩格斯名言,你有自己的名言吗

    技术恩格斯名言,你有自己的名言吗有,我的名言条是引用《周易》里面的一句:天行健,君子以自强不息,地势坤,君子以厚德载物恩格斯名言。这句名言来提醒自己。这句话什么意思?是告诉我,君子要像天一样自强不息。也要像地一样厚德载物

    生活 2021年10月26日
  • 抖音刷粉网址,抖音刷粉丝靠谱平台

    技术抖音刷粉网址,抖音刷粉丝靠谱平台抖音怎么涨粉丝比较快,抖音怎么做才会涨粉丝,学着点!抖音是一款深受大众喜欢的短视频app,虽然已经出现几年了,但是有很多用户的粉丝还是没有多少个。抖音刷粉平台有吗?这个肯定有的,而且有

    测评 2021年10月20日
  • Linux系统下ESP32开发板如何搭建RT-Thread开发环境

    技术Linux系统下ESP32开发板如何搭建RT-Thread开发环境这篇文章将为大家详细讲解有关Linux系统下ESP32开发板如何搭建RT-Thread开发环境,文章内容质量较高,因此小编分享给大家做个参考,希望大家

    攻略 2021年10月22日
  • 如何进行null与index的分析

    技术如何进行null与index的分析这期内容当中小编将会给大家带来有关如何进行null与index的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。今天在测试过程中遇到一问题, S

    攻略 2021年11月30日