首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >高级web网页人脸识别tracking.js

高级web网页人脸识别tracking.js

作者头像
马克社区
发布2022-04-19 20:17:21
2.2K0
发布2022-04-19 20:17:21
举报
文章被收录于专栏:高端IT高端IT

what?你没有看错,强大的JavaScript也可以实现人脸识别功能。小编精心整理了一个人脸识别的JavaScript库(tracking.js),通过这篇文章,你可以了解到如何在网页中实现一个人脸识别功能。 tracking.js

Tracking.js 是一个独立的JavaScript库,用于跟踪从相机实时收到的数据。跟踪的数据既可以是颜色,也可以是人,也就是说我们可以通过检测到某特定颜色,或者检测一个人体/脸的出现与移动,来触发JavaScript 事件。它是非常易于使用的API,具有数个方法和事件(足够使用了)。

还有一个我觉得不错的功能就是,截取摄像头的图像,对于一些网站用这个功能来设置用户头像也是个很炫的功能。 简单实例

引入核心类:

<script src="js/tracking-min.js"></script>
1

引入颜色模型类:

<script src="tracker/color.js">
1

实例化类启用电脑的摄像头:

var videoCamera = new tracking.VideoCamera().render();

实例化跟踪通过颜色洋红和显示X,Y和Z位置的检测区域在控制台:

videoCamera.track({undefined type: ‘color’, color: ‘magenta’, onFound: function(track) {undefined console.log(track.x, track.y, track.z); }, onNotFound: function() {} });

在vue中使用

// 引入trackingjs所需文件 import tracking from ‘@/assets/js/tracking-min.js’ import ‘@/assets/js/face-min.js’

const tracker = new window.tracking.ObjectTracker(‘face’);

注:tracking类import之后,使用时需要window.tracking
1

事件

onFound : 每次检测到目标时就会触发该事件

new tracking.VideoCamera().track({undefined onFound: function(track) {undefined // do something } });

onNotFound : 每次没有检测到目标时就会触发该事件.

new tracking.VideoCamera().track({undefined onNotFound: function(track) {undefined // do something } });

rect.x, rect.y, rect.width, rect.height这四个参数表示左上角的坐标和框出来人脸的大小。
1

示例案例 图片人脸识别 效果图

在这里插入图片描述
在这里插入图片描述

实现思路

通过tracking.js获取图片中人脸的信息,然后根据这些信息绘制相对应的div框即可。 核心代码

<style>
  .rect {
    border: 2px solid #a64ceb;
    left: -1000px;
    position: absolute;
    top: -1000px;
    /* background-color: #a64ceb; */
    border:1px solid #a64ceb;
  }

  #img {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: -173px 0 0 -300px;
  }
  </style>

 

<div class="demo-frame">
    <div class="demo-container">
      <img id="img" src="img/faces.jpg" />
    </div>
  </div>

 

var img = document.getElementById('img');
//实例化tracker对象
var tracker = new tracking.ObjectTracker(['face']);
tracker.setStepSize(1.7);

//tracker对象和标签关联
tracking.track('#img', tracker);

//添加事件
tracker.on('track', function(event) {
    //给每个人脸绘制对应的框
    event.data.forEach(function(rect) {
      window.plot(rect.x, rect.y, rect.width, rect.height+20);
    });
});

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';
};
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253

视频人脸识别 效果图

在这里插入图片描述
在这里插入图片描述

更多内容请见原文,原文转载自:https://blog.csdn.net/weixin_44519496/article/details/118611638

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档