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 相关文章推荐
如果文字过长,则将过长的部分变成省略号显示
Jun 26 Javascript
js 返回时间戳所对应的具体时间
Jul 20 Javascript
基于jquery的无刷新分页技术
Jun 11 Javascript
编程语言JavaScript简介
Oct 16 Javascript
javascript的switch用法注意事项分析
Feb 02 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
Nov 25 Javascript
微信小程序 开发之顶部导航栏实例代码
Feb 23 Javascript
jQuery简易时光轴实现方法示例
Mar 13 Javascript
JS获取短信验证码倒计时的实现代码
May 22 Javascript
基于JavaScript实现淘宝商品广告效果
Aug 10 Javascript
使用Vue构建可重用的分页组件
Mar 26 Javascript
通过JavaScript下载文件到本地的方法(单文件)
Mar 17 Javascript
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
追忆往昔!浅谈收音机的百年发展历史
2021/03/01 无线电
用PHP函数解决SQL injection
2006/10/09 PHP
PHP 上传文件的方法(类)
2009/07/30 PHP
PHP 判断变量类型实现代码
2009/10/23 PHP
PHP 安全检测代码片段(分享)
2013/07/05 PHP
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
node.js中的fs.open方法使用说明
2014/12/17 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
Js得到radiobuttonlist选中值的两种方法(推荐)
2016/08/25 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
4个顶级JavaScript高级文本编辑器
2018/10/10 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
卸载vue2.0并升级vue_cli3.0的实例讲解
2020/02/16 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
CSS3让登陆面板3D旋转起来
2016/05/03 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
大学生作弊检讨书
2014/02/19 职场文书
辅导员评语
2014/05/04 职场文书
艺术学院毕业生求职信
2014/07/09 职场文书
保护校园环境倡议书
2015/04/28 职场文书
离婚被告代理词
2015/05/23 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python