关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » JavaScript »JavaScript人脸检测的实现方法

    JavaScript人脸检测的实现方法

    2015-02-10 00:00:00 出处:Ray Liang
    分享

    今天,我们开始学习tracking.js,它是一个由Eduardo Lundgren开发的轻量级的javascript库,它可以让你做实时的人脸检测,色彩追踪和标记好友的脸。在这个教程中,我们将会看到,我们如何从静态图片中检测脸,眼睛和嘴巴。

    我一直对视频和图片中的人脸标记、检测和人脸识别技术很感兴趣。尽管我知道获取逻辑和算法去开发人脸识别软件或者插件已经超出了我的想象。当我知道Javascript库可以识别微笑,眼睛和脸部结构时,我得到启发去写一个教程。有许多的库,这些库要不就是纯粹的基于Javascript的,要不就是基于java语言的。

    今天,我们开始学习tracking.js,它是一个由Eduardo Lundgren开发的轻量级的javascript库,它可以让你做实时的人脸检测,色彩追踪和标记好友的脸。在这个教程中,我们将会看到,我们如何从静态图片中检测脸,眼睛和嘴巴。

    在教程的最后,你可以看到一个教程提供可以用的例子,这个例子有技巧和提示以及更多的技术细节。

    首先,我们需要建立一个工程,从github中下载这个工程并且抽取build文件夹,根据你的文件和目录结构放置build文件夹。在这个教程里,我用了如下的文件和目录结构。

    文件夹结构

    Project Folder  
    │  
    │   index.html  
    │  
    ├───assets  
    │       face.jpg  
    │  
    └───js  
        │   tracking-min.js  
        │   tracking.js  
        │  
        └───data  
                eye-min.js  
                eye.js  
                face-min.js  
                face.js  
                mouth-min.js  
                mouth.js

    你可以看到js文件夹里有我们从tracking.js中抽取的javascript文件。下面是index.html的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> 
    </head> 
    <body> 
    <div class="imgContainer"> 
      <img id="img" src="assets/face.jpg" /> 
    </div> 
    
    </body> 
    </html>

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

    face

    为了达成目标,我们需要修改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>

    结果

    resutlface

    代码说明.

    tracking.ObjectTracker() 方法对你想要进行跟踪的对象进行了分类,它可以接受一个数组作为参数. setStepSize() 指定的块的步进大小. 我们将要跟踪的对象绑定上 &#8220;track&#8221; 事件, 对象一被跟踪,很快正在跟踪的对象就会触发跟踪事件. 我们以对象数组的形式中获取数据,里面有每个对象(脸部,嘴部很眼部)的宽度,高度 , x 和 y 坐标;

    结果总结.
    你可能会发现结果会根据形状的条件而有所不同, 还有地方需要改进和提高,而我们也承认并且真心认同对于这种类型的API的开发.

    运行示例:

    带有的图片的运行示例.

    更多资源 &#8211; 基于 Javascript 的面部识别

    https://github.com/auduno/headtrackr

    https://github.com/auduno/clmtrackr

    我们计划为 HTML5 的 Canvas 和摄像头视频的脸部跟踪以及图像标签做一个教程。你可能会用到我上面提到的客户端访问摄像头博客,它可以帮助你,用你知道的方式去访问用户的摄像头。

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

    喜欢该文吗?

    您要是有建议,补充,或者在该文中发现错误,信息过时。我们期待你的评论。

    请您花一点时间将文章分享给您的朋友或者留下评论。我们将会由衷感谢您的支持!

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    IT头条

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    技术热点

    微软已修复windows 7/windows 8.1媒体中心严重漏洞 用户可下载安

    卸载MySQL数据库,用rpm如何实现

    windows 7中使用网上银行或支付宝支付时总是打不开支付页面

    一致性哈希算法原理设计

    MySQL数字类型中的三种常用种类

    如何解决SQL Server中传入select语句in范围参数

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。