文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

vue2+tracking怎么实现PC端的人脸识别

2023-06-30 15:40

关注

本篇内容介绍了“vue2+tracking怎么实现PC端的人脸识别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

需求

上传患者真实头像,可以有两种选择,一种是通过常规的文件选择方式上传,第二种方式就是医生可以调用电脑的摄像头拍一张然后上传。

分析

常规的就不用分析了,只分析第二种:

实现思路

首先看有不有能识别到患者脸部的前端第三方库,如果没有,这个需求就相对来说就麻烦一点,就是在拍照的时候需要医生辨别能否达到上传的要求,然后再拍照上传也行。

基于上面的思路,开始寻找,最后确定使用 tracking.js 它的 github 地址

使用 tracking.js

src/components/TestFace.vue

<template>  <div>    <div>      <p>请将摄像头对准患者脸部</p>      <video id="video"  autoplay></video>    </div>    <div>      <p>检测人脸结果</p>      <canvas id="canvas" width="200" height="200" ></canvas>    </div>  </div></template><script>import { userMedia } from '../utils/utils'require('tracking/build/tracking-min.js')require('tracking/build/data/face-min.js')export default {  data () {    return {      videoObj: null,      trackerTask: null    }  },  mounted () {    this.openCamera()  },  methods: {    openCamera () {      // 有可能触发一些其他的按钮会重新获取      this.$nextTick(() => {        const canvas = document.getElementById('canvas')        const context = canvas.getContext('2d')        this.videoObj = document.getElementById('video')        // eslint-disable-next-line no-undef        const tracker = new tracking.ObjectTracker('face') // 检测人脸        tracker.setInitialScale(4)        tracker.setStepSize(2)        tracker.setEdgesDensity(0.1)        // eslint-disable-next-line no-undef        this.trackerTask = tracking.track('#video', tracker, { camera: true })        const constraints = {          video: { width: 200, height: 200 },          audio: false        }        userMedia(constraints, this.success, this.error)        tracker.on('track', (event) => {          event.data.forEach((rect) => {            // 绘制到 canvas            context.drawImage(this.videoObj, 0, 0, canvas.width, canvas.height)            context.font = '16px Helvetica'            context.strokeStyle = '#1890ff'            context.strokeRect(rect.x, rect.y, rect.width, rect.height)          })          if (event.data.length !== 0) {            // 说明检测到人脸了,此时就可以截取图片传递给后端            // canvas 调用 toDataURL          }        })      })    },    handleCancel () {      this.videoObj.srcObject.getTracks()[0].stop()      this.trackerTask.stop()    },    // 成功显示    success (stream) {      this.videoObj.srcObject = stream      this.videoObj.play()    },    // 失败抛出错误,可能用户电脑没有摄像头,或者摄像头权限没有打开    error (error) {      // 可以在这里面提示用户      console.log(`访问用户媒体设备失败${error.name}, ${error.message}`)    }  },  beforeDestroy () {    this.handleCancel()  }}</script>

src/utils/utils.js

export let userMedia = function (constraints, success, error) {  if (navigator.mediaDevices.getUserMedia) {    userMedia = function (constraints, success, error) {      navigator.mediaDevices.getUserMedia(constraints).then(success).catch(error)    }  } else if (navigator.webkitGetUserMedia) {    userMedia = function (constraints, success, error) {      navigator.webkitGetUserMedia(constraints, success, error)    }  } else if (navigator.mozGetUserMedia) {    userMedia = function (constraints, success, error) {      navigator.mozGetUserMedia(constraints, success, error)    }  } else if (navigator.getUserMedia) {    userMedia = function (constraints, success, error) {      navigator.getUserMedia(constraints, success, error)    }  }  userMedia(constraints, success, error)}

最终的效果如下:

vue2+tracking怎么实现PC端的人脸识别

最后

首先确保有摄像头

有时候本地调试无法打开摄像头,可以在浏览器上输入:chrome://flags/#unsafely-treat-insecure-origin-as-secure

然后会出现如下页面,再操作即可:

vue2+tracking怎么实现PC端的人脸识别

“vue2+tracking怎么实现PC端的人脸识别”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯