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 Cookie 直接浏览网站分网址
Dec 08 Javascript
javascript真的不难-回顾一下基础知识
Jan 15 Javascript
Javascript小技巧之生成html元素
May 15 Javascript
Window.Open如何在同一个标签页打开
Jun 20 Javascript
JS中mouseover和mouseout多次触发问题如何解决
Jun 06 Javascript
ionic组件ion-tabs选项卡切换效果实例
Aug 27 Javascript
yarn与npm的命令行小结
Oct 20 Javascript
JS实现数组去重方法总结(六种方法)
Jul 14 Javascript
AngularJS 中ui-view传参的实例详解
Aug 25 Javascript
小程序实现搜索框功能
Mar 26 Javascript
使用 UniApp 实现小程序的微信登录功能
Jun 09 Javascript
Java无向树分析 实现最小高度树
Apr 09 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
德劲1104的电路分析与改良
2021/03/01 无线电
Apache2 httpd.conf 中文版
2006/12/06 PHP
PHP+MySQL投票系统的设计和实现分享
2012/09/23 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
Yii2实现ActiveForm ajax提交
2017/05/26 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
jQuery中的insertBefore(),insertAfter(),after(),before()区别介绍
2016/09/01 Javascript
LayerClose弹窗关闭刷新方法
2018/08/17 Javascript
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
python对象及面向对象技术详解
2016/07/19 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
对python 中re.sub,replace(),strip()的区别详解
2019/07/22 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
CSS3中文字镂空、透明值、阴影效果设置示例小结
2016/03/07 HTML / CSS
可口可乐唇膏:Lip Smackers
2019/08/27 全球购物
RIP版本1跟版本2的区别
2013/12/30 面试题
技术比武方案
2014/05/19 职场文书
项目合作意向书
2015/05/08 职场文书
遗失证明范文
2015/06/19 职场文书
给学校的建议书400字
2015/09/14 职场文书
员工工作心得体会
2019/05/07 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
MySQL表的增删改查基础教程
2021/04/07 MySQL