tracking.js实现前端人脸识别功能


Posted in Javascript onApril 16, 2020

1.下载

https://trackingjs.com/

tracking.js实现前端人脸识别功能

2.运行例子

tracking.js实现前端人脸识别功能

纳总一下

tracking.js实现前端人脸识别功能

发现效果

tracking.js实现前端人脸识别功能

里面的代码为

<!doctype html>
<html>
<head>
 <meta charset="utf-8">
 <title>tracking.js - face hello world</title>
 <link rel="stylesheet" href="assets/demo.css" rel="external nofollow" rel="external nofollow" >

 <script src="build/tracking-min.js"></script>
 <script src="build/data/face-min.js"></script>
 <script src="build/data/eye-min.js"></script>
 <script src="build/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="demo-title">
  <p><a href="http://trackingjs.com" rel="external nofollow" target="_parent">tracking.js</a> - detect faces, eyes and mouths in a image</p>
 </div>
 -->
 <!-- <div class="demo-frame"> -->
  <div class="demo-container">
   <img id="img" src="
   http://img3.imgtn.bdimg.com/it/u=2939771753,2928311039&fm=214&gp=0.jpg
   " />
  </div>
<!--  </div> -->

 <script>
  window.onload = function() {
   var img = document.getElementById('img');

   var tracker = new tracking.ObjectTracker(['face', 'eye', 'mouth']);
   tracker.setStepSize(1.7);

   tracking.track('#img', tracker);

   tracker.on('track', function(event) {
    event.data.forEach(function(rect) {
     window.plot(rect.x, rect.y, rect.width, rect.height);
    });
   });

   window.plot = function(x, y, w, h) {
    var rect = document.createElement('div');
    document.querySelector('.demo-container').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>

</body>
</html>

这里要注意,人脸必须是解决跨域了的,读取本地图片可能会包跨域问题

读取摄像头

<!doctype html>
<html>
<head>
 <meta charset="utf-8">
 <title>tracking.js - face with camera</title>
 <link rel="stylesheet" href="assets/demo.css" rel="external nofollow" rel="external nofollow" >

 <script src="build/tracking-min.js"></script>
 <script src="build/data/face-min.js"></script>
  <script src="node_modules/dat.gui/build/dat.gui.min.js"></script>
 <script src="assets/stats.min.js"></script>

 <style>
 video, canvas {
  margin-left: 230px;
  margin-top: 120px;
  position: absolute;
 }
 </style>
</head>
<body>
 <div class="demo-frame">
  <div class="demo-container">
   <video id="video" width="320" height="240" preload autoplay loop muted></video>
   <canvas id="canvas" width="320" height="240"></canvas>
  </div>
 </div>

 <script>
  window.onload = function() {
   var video = document.getElementById('video');
   var canvas = document.getElementById('canvas');
   var context = canvas.getContext('2d');

   var tracker = new tracking.ObjectTracker('face');
   tracker.setInitialScale(4);
   tracker.setStepSize(2);
   tracker.setEdgesDensity(0.1);

   tracking.track('#video', tracker, { camera: true });

   tracker.on('track', function(event) {
    context.clearRect(0, 0, canvas.width, canvas.height);

    event.data.forEach(function(rect) {
     context.strokeStyle = '#a64ceb';
     context.strokeRect(rect.x, rect.y, rect.width, rect.height);
     context.font = '11px Helvetica';
     context.fillStyle = "#fff";
     context.fillText('x: ' + rect.x + 'px', rect.x + rect.width + 5, rect.y + 11);
     context.fillText('y: ' + rect.y + 'px', rect.x + rect.width + 5, rect.y + 22);
    });
   });

   var gui = new dat.GUI();
   gui.add(tracker, 'edgesDensity', 0.1, 0.5).step(0.01);
   gui.add(tracker, 'initialScale', 1.0, 10.0).step(0.1);
   gui.add(tracker, 'stepSize', 1, 5).step(0.1);
  };
 </script>

</body>
</html>

总结

到此这篇关于tracking.js实现前端人脸识别功能的文章就介绍到这了,更多相关tracking.js人脸识别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript中的闭包原理分析
Mar 08 Javascript
有趣的javascript数组定义方法
Sep 10 Javascript
基于mootools 1.3框架下的图片滑动效果代码
Apr 22 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
May 25 Javascript
JQuery中根据属性或属性值获得元素(6种情况获取方法)
Jan 17 Javascript
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
Apr 15 Javascript
jquery文档操作wrap()方法实例简述
Jan 10 Javascript
七夕情人节丘比特射箭小游戏
Aug 20 Javascript
javascript求日期差的方法
Mar 02 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
Sep 19 Javascript
解决webpack多页面内存溢出的方法示例
Oct 08 Javascript
基于JQuery实现页面定时弹出广告
May 08 jQuery
electron 如何将任意资源打包的方法步骤
Apr 16 #Javascript
vue中keep-alive内置组件缓存的实例代码
Apr 16 #Javascript
详解Nuxt内导航栏的两种实现方式
Apr 16 #Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
Apr 16 #Javascript
vue下canvas裁剪图片实例讲解
Apr 16 #Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
Apr 16 #Javascript
js String.prototype.trim字符去前后空格的扩展
Aug 23 #Javascript
You might like
php获取qq用户昵称和在线状态(实例分析)
2013/10/27 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
javascript radio 联动效果
2009/03/04 Javascript
javascript 闭包疑问
2010/12/30 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
直接在JS里创建JSON数据然后遍历使用
2014/07/25 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
深入理解angularjs过滤器
2016/05/25 Javascript
微信小程序 PHP后端form表单提交实例详解
2017/01/12 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
JavaScript实现联动菜单特效
2020/01/07 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
python实现redis三种cas事务操作
2017/12/19 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
python匿名函数的使用方法解析
2019/10/10 Python
python的scipy实现插值的示例代码
2019/11/12 Python
Pandas实现DataFrame按行求百分数(比例数)
2019/12/27 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
伦敦新晋轻奢耳饰潮牌:Tada & Toy
2020/05/25 全球购物
机电一体化毕业生求职信
2013/11/02 职场文书
兼职学生的自我评价
2013/11/24 职场文书
团队精神演讲稿
2013/12/31 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书