PS1: tracking.js 处理器开销比较大。

PS2: 本地调试只能使用locahost访问 上线需要使用有https的域名 否则无法吊起摄像头

示例效果:

开发思路: 前端只负责检测摄像头内是否存在人脸,如果存在人脸截图当前帧调用接口后台进行人脸对比校验,通过接口返回来确认是否识别成功。

前端使用人脸识别类库 trackingjs 可以直接在github上直接下载,npm安装感觉有问题。 github下载地址。

下载完毕以后放入到 src/assets 目录下文件夹更名为 tracking 方便引入

HTML 示例代码

<template><div><div class="video-box"><video id="video" width="320" height="240" preload autoplay loop muted></video><canvas id="canvas" width="320" height="240"></canvas></div><canvas id="screenshotCanvas" width="320" height="240"></canvas></div>
</template>

JS 示例代码

<script>import tracking from '@/assets/tracking/build/tracking-min.js';import '@/assets/tracking/build/data/face-min.js';export default {data() {return {video: null,screenshotCanvas: null,uploadLock: true // 上传锁}},mounted() {this.init();},methods: {// 初始化设置init() {this.video = document.getElementById('video');this.screenshotCanvas = document.getElementById('screenshotCanvas');let canvas = document.getElementById('canvas');let context = canvas.getContext('2d');// 固定写法let tracker = new window.tracking.ObjectTracker('face');tracker.setInitialScale(4);tracker.setStepSize(2);tracker.setEdgesDensity(0.1);window.tracking.track('#video', tracker, {camera: true});let _this = this;tracker.on('track', function(event) {// 检测出人脸 绘画人脸位置context.clearRect(0, 0, canvas.width, canvas.height);event.data.forEach(function(rect) {context.strokeStyle = '#0764B7';context.strokeRect(rect.x, rect.y, rect.width, rect.height);// 上传图片_this.uploadLock && _this.screenshotAndUpload();});});},// 上传图片screenshotAndUpload() {// 上锁避免重复发送请求this.uploadLock = false;// 绘制当前帧图片转换为base64格式let canvas = this.screenshotCanvas;let video = this.video;let ctx = canvas.getContext('2d');ctx.clearRect(0, 0, canvas.width, canvas.height);ctx.drawImage(video, 0, 0, canvas.width, canvas.height);let base64Img = canvas.toDataURL('image/jpeg');// 使用 base64Img 请求接口即可console.log('base64Img:',base64Img)// 请求接口成功以后打开锁// this.uploadLock = true;}}}
</script>

CSS 示例代码

<style scoped>/* 绘图canvas 不需显示隐藏即可 */#screenshotCanvas{display: none;}.video-box{position: relative;width: 320px;height: 240px;}video,canvas{position: absolute;top: 0;left: 0;border: #000000 5px solid;}
</style>

示例代码中都有注释可以直接参考注释查看,加了一个锁避免请求还没回复就再次请求,总的来说就是前端先检测出人脸之后再由后端来验证,避免过多无效的请求。

示例项目代码

https://wws.lanzoui.com/i14fXohavif
密码:fhzh

区域内滑动元素功能参考 https://blog.csdn.net/weixin_30684743/article/details/102142674

vue 使用tracking.js开发人脸识别功能相关推荐

  1. vue基于face-api.js实现人脸识别

    一.face-api.js Face-api.js 是一个 JavaScript API,是基于 tensorflow.js 核心 API 的人脸检测和人脸识别的浏览器实现.它实现了一系列的卷积神经网 ...

  2. NDK开发前奏 - 实现支付宝人脸识别功能

    1. 基于 Android Studio 的 opencv 配置与使用 先推荐一本书<计算机视觉 - 算法与应用>,相信用过 OpenCV 的哥们都知道这是用来干啥的,这里我就不再啰嗦.只 ...

  3. vue项目中使用trackingjs人脸识别

    vue项目中使用trackingjs人脸识别 前言 一.下载trackingjs库 二.trackingjs引用 三.检测过程 1.初始化设置.创建实例 2.检测视频中人脸 3.判断上传 4.上传人脸 ...

  4. 用Python-opencv快速实现人脸识别功能(从零开始教你)(复制粘贴即可用)

    用Python快速实现人脸识别功能 首先: 一.开发环境: 1.你需要个Python,下载好后设置环境变量(CSDN上面有很多这里不做过多介绍)可以参考 Python下载教程 2.下载pip-参考博主 ...

  5. 人脸识别手机端APK分享 | 极速体验人脸识别功能 创建一个简单的人脸识别手机APP程序

    1.前言 虹软公司提供免费离线人脸识别,对于开发者提供了比较友好.完整的可配置demo.但是如需直接体验功能,还是要花一点时间去完成项目编译.配置等一系列工作,对于初学者.不怎么熟悉整个项目的人来说可 ...

  6. 微信小程序【人脸识别功能】

    前几天偶然看见一个人脸识别的小程序demo,觉得很有趣下载下来想玩玩,结果只是一个框架而已用不了的,花了点时间完善一下 吐槽一下wx.uploadFile这个接口,真是个大坑,最开始调用时候,我以为它 ...

  7. OpenCV+ Qt Designer 开发人脸识别考勤系统

    文章目录 1. 系统介绍 2. 系统架构 3. 开发步骤 3.1 安装必要的库 3.2 设计用户界面 3.3 编写代码 3.3.1 导入库 3.3.2 连接数据库 3.3.3 定义主窗口类 3.3.4 ...

  8. 一个网址,需要生成一个带有人脸识别功能的APP如何做?

    问题:一个官网地址,需要生成一个带有人脸识别功能的APP如何做? 操作步骤: 第一步:进入中控易动平台,创建一个应用,创建完成进入应用 注意:首页网址输入的是:自己的官网地址  第二步:添加人脸识别插 ...

  9. vue3 基于faceapi.js实现人脸识别

    vue3 基于faceapi.js实现人脸识别 先贴代码 <template><div class="app-container"><div>{ ...

  10. java人脸识别教程_用 Java 实现人脸识别功能(附源码)

    > 整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 更多优选 引言 远程在家办公的第N天,快要闲出屁了,今 ...

最新文章

  1. LeetCode简单题之图像渲染
  2. vs2019 编译 WRK 踩坑记录
  3. 在admin设置第三方帐号登录点击Save保存按钮的时候报错     CSRF token missing or incorrect.
  4. JBox2d入门学习一
  5. vSphere虚拟化使用第三方备份方案常见CBT故障实战处理
  6. docker python3环境搭建
  7. JS打开新窗口(window.open() 、href)
  8. 安装eclipse c++版本neno
  9. 白平衡,及白平衡调节过程
  10. html+css 动画制作简单的渐变效果(图片视频)
  11. Annotate点云标注工具
  12. 托托又来了——PCA实现人脸识别
  13. windows系统镜像里的×64和×86有什么区别?
  14. python-opencv截取视频片段
  15. 2022第七届少儿模特明星盛典 全能TOP艺人蒋松廷 T台风采展示
  16. 在操场跑步,逆时针比顺时针更快的原因
  17. Linux如何创建用户、新增用户、创建新用户(adduser、deluser)(useradd、userdel)
  18. 用户画像的构建与使用1
  19. 数据库中事务、回滚是啥意思?
  20. PMP课堂模拟题目及解析(第5期)

热门文章

  1. 用matlab作gmm参数估计,GMM模型的EM参数估计算法
  2. R 回归 虚拟变量na_互助问答第30期:工具变量、GARCH模型操作和多项选择效信度...
  3. C++学习记录vs2013 植物大战僵尸mfc辅助大体框架编写
  4. 革文B2B行业洞察:增长/存亡,中国医疗加速器第三方维保市场迷局
  5. 语文数学英语计算机文理科,高考文理科英语试卷一样吗
  6. 【电脑使用】桌面图标有蓝底怎么去掉
  7. 计算机死机按什么恢复出厂设置,电脑怎么恢复出厂设置?win7恢复出厂设置教程...
  8. Effective Modern C++ 完全解读笔记汇总
  9. cavans制作水印 html
  10. 同频切换的事件_目前现网中,LTE同频切换主要是通过A5事件进行触发