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 Tabs插件宿主IFRAMES
Jan 01 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
Apr 03 Javascript
JS for循环中i++ 和 ++i的区别介绍
Jul 20 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
Dec 14 Javascript
手动初始化Angular的模块与控制器
Dec 26 Javascript
JS将unicode码转中文方法
May 08 Javascript
提高Node.js性能的应用技巧分享
Aug 10 Javascript
angular6 填坑之sdk的方法
Dec 27 Javascript
vue.js 2.0实现简单分页效果
Jul 29 Javascript
JavaScript仿京东秒杀倒计时
Mar 17 Javascript
vue3.0搭配.net core实现文件上传组件
Oct 29 Javascript
JS前端基于canvas给图片添加水印
Nov 11 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
PHP4实际应用经验篇(3)
2006/10/09 PHP
PHP面向对象法则
2012/02/23 PHP
php绘制一条弧线的方法
2015/01/24 PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
JS中的多态实例详解
2017/10/15 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
2018/01/23 jQuery
使用百度地图实现地图网格的示例
2018/02/06 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
Vuex的初探与实战小结
2018/11/26 Javascript
Vue.js构建你的第一个包并在NPM上发布的方法步骤
2019/05/01 Javascript
Vue data的数据响应式到底是如何实现的
2020/02/11 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
[01:24:09]Ti4 冒泡赛第二轮DK vs C9 1
2014/07/14 DOTA
Python cv2 图像自适应灰度直方图均衡化处理方法
2018/12/07 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
对Python函数设计规范详解
2019/07/19 Python
HEMA法国:荷兰原创设计
2019/02/21 全球购物
工程业务员工作职责
2013/12/07 职场文书
好的促销活动方案
2014/08/21 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js
MySQL的Query Cache图文详解
2021/07/01 MySQL
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
Springboot中如何自动转JSON输出
2022/06/16 Java/Android