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 相关文章推荐
js 浮动层菜单收藏
Jan 16 Javascript
jquery制作居中遮罩层效果分享
Feb 21 Javascript
js用typeof方法判断undefined类型
Jul 15 Javascript
jquery.mobile 共同布局遇到的问题小结
Feb 10 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
Jul 18 Javascript
js倒计时小实例(多次定时)
Dec 08 Javascript
Node.js与Sails redis组件的使用教程
Feb 14 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
Mar 28 Javascript
Vue+Element实现动态生成新表单并添加验证功能
May 23 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
Sep 05 Javascript
vue与django集成打包的实现方法
Nov 11 Javascript
jquery轮播图插件使用方法详解
Jul 31 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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
PHP 文件上传限制问题
2019/09/01 PHP
Aster vs KG BO3 第二场2.18
2021/03/10 DOTA
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
python正则分析nginx的访问日志
2017/01/17 Python
在Python中使用AOP实现Redis缓存示例
2017/07/11 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
python去除文件中重复的行实例
2018/06/29 Python
python 地图经纬度转换、纠偏的实例代码
2018/08/06 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
CSS3改变浏览器滚动条样式
2019/01/04 HTML / CSS
html5-canvas中使用clip抠出一个区域的示例代码
2018/05/25 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
德国电子商城:ComputerUniverse
2017/04/21 全球购物
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
什么是数组名
2012/05/10 面试题
保送生自荐信范文
2013/10/06 职场文书
个人党性剖析材料
2014/02/03 职场文书
经典婚礼主持词
2014/03/13 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python
详解Java实现数据结构之并查集
2021/06/23 Java/Android
十大动画制作软件,Adobe产品上榜两款,第一是行业标准软件
2022/03/18 杂记