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 相关文章推荐
基于jquery的一个图片hover的插件
Apr 24 Javascript
javascript中encodeURI和decodeURI方法使用介绍
May 06 Javascript
jquery showModelDialog的使用方法示例详解
Nov 19 Javascript
Egret引擎开发指南之视觉编程
Sep 03 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
Sep 09 Javascript
深入理解js数组的sort排序
May 28 Javascript
jQuery实现右键菜单、遮罩等效果代码
Sep 27 Javascript
js实现textarea限制输入字数
Feb 13 Javascript
详解vue中axios的封装
Jul 18 Javascript
jQuery 实现批量提交表格多行数据的方法
Aug 09 jQuery
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
Apr 19 Javascript
Vue可自定义tab组件用法实例
Oct 24 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
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
告诉大家什么是JSON
2008/06/10 Javascript
通过url查找a元素应用案例
2014/04/29 Javascript
用javascript读取xml文件读取节点数据
2014/08/12 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
2015/04/02 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
巧用weui.topTips验证数据的实例
2017/04/17 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
vue2.0 中使用transition实现动画效果使用心得
2018/08/13 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
vue如何在项目中调用腾讯云的滑动验证码
2020/07/15 Javascript
js 将多个对象合并成一个对象 assign方法的实现
2020/09/24 Javascript
Python中的rjust()方法使用详解
2015/05/19 Python
python Django模板的使用方法
2016/01/14 Python
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
python opencv之SIFT算法示例
2018/02/24 Python
Windows系统下PhantomJS的安装和基本用法
2018/10/21 Python
python异步存储数据详解
2019/03/19 Python
numpy下的flatten()函数用法详解
2019/05/27 Python
浅谈对python中if、elif、else的误解
2020/08/20 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
Kenneth Cole官网:纽约时尚优雅品牌
2016/11/14 全球购物
全球酒店比价网:HotelsCombined
2017/06/20 全球购物
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
物业客服专员岗位职责
2013/11/30 职场文书
剪枝的学问教学反思
2014/02/07 职场文书
职务聘任书范文
2014/03/29 职场文书