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参数的小问题
Mar 02 Javascript
extJs 常用到的增,删,改,查操作代码
Dec 28 Javascript
动态加载外部javascript文件的函数代码分享
Jul 28 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
Dec 26 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
May 28 Javascript
jQuery对html元素取值与赋值的方法
Nov 20 Javascript
JavaScript原型链示例分享
Jan 26 Javascript
jQuery实现多按钮单击变色
Nov 27 Javascript
JavaScript中原型和原型链详解
Feb 11 Javascript
基于javascript显示当前时间以及倒计时功能
Mar 18 Javascript
JS获取一个未知DIV高度的方法
Aug 09 Javascript
Javascript三种字符串连接方式及性能比较
May 28 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
网站当前的在线人数
2006/10/09 PHP
有关php运算符的知识大全
2011/11/03 PHP
php中hashtable实现示例分享
2014/02/13 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
鼠标经过的文本框textbox变色
2009/05/21 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
js实现双击图片放大单击缩小的方法
2015/02/17 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
python实现图片筛选程序
2018/10/24 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
如何基于Python实现数字类型转换
2020/02/07 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
python cookie反爬处理的实现
2020/11/01 Python
python给list排序的简单方法
2020/12/10 Python
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
团组织关系介绍信
2014/01/12 职场文书
营销总监岗位职责
2014/09/16 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
python基于OpenCV模板匹配识别图片中的数字
2021/03/31 Python
如何使用vue3打造一个物料库
2021/05/08 Vue.js
浅谈Python协程asyncio
2021/06/20 Python
django 认证类配置实现
2021/11/11 Python
Golang连接并操作MySQL
2022/04/14 MySQL