当前位置:   article > 正文

前端使用mediapipe实现人脸识别_mediapipe vue

mediapipe vue

在前端使用mediapipe实现人脸识别,以vue框架为例,

首先需要安装@mediapipe/tasks-vision库:

npm i @mediapipe/tasks-vision

在项目中引入后,初始化,runningMode有 "IMAGE"和"VIDEO"两种模式分别对应着识别源是图片还是视频。

  1. import {
  2. FaceDetector,
  3. FilesetResolver
  4. } from "@mediapipe/tasks-vision";
  5. async function initFaceDetector() {
  6. const vision = await FilesetResolver.forVisionTasks(
  7. "https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.0/wasm"
  8. // "/mediapipe/tasks-vision/wasm" 下载到本地
  9. )
  10. faceDetector = await FaceDetector.createFromOptions(vision, {
  11. baseOptions: {
  12. //将模型下载到本地,引入本地文件
  13. //modelAssetPath: `/mediapipe/blaze_face_short_range.tflite`,
  14. modelAssetPath: `https://storage.googleapis.com/mediapipe-models/face_detector/blaze_face_short_range/float16/1/blaze_face_short_range.tflite`,
  15. delegate: "CPU"
  16. },
  17. runningMode: "IMAGE" //VIDEO
  18. })
  19. }

识别图片中的人脸:

  const detections = faceDetector.detect(imageData).detections;

识别视频中的人脸:

  1. //使用usb相机,加载到id为cam的video标签中
  2. function loadVideoUSB() {
  3. navigator.mediaDevices.getUserMedia({video: true})
  4. .then(function (stream) {
  5. let videoElement = document.getElementById('cam');
  6. // 用于关闭相机
  7. mediaStreamTrack = stream
  8. videoElement.srcObject = stream;
  9. const track = stream.getVideoTracks()[0];
  10. const settings = track.getSettings();
  11. console.log("Resolution: " + settings.width + "x" + settings.height);
  12. })
  13. .catch(function (err) {
  14. alert(err);
  15. })
  16. }
  17. // 加载前需要把runningMode 设置为‘VIDEO’
  18. function handleVideo() {
  19. console.log('mode is video ')
  20. let video = document.querySelector("#cam")
  21. let lastVideoTime = -1;
  22. async function predictWebcam() {
  23. let startTimeMs = performance.now();
  24. if (video.currentTime !== lastVideoTime) {
  25. lastVideoTime = video.currentTime;
  26. const detections = faceDetectorVideo.detectForVideo(video,startTimeMs).detections;
  27. //detections中就是识别到的人脸数据
  28. }
  29. requestAnimationFrame(predictWebcam)
  30. }
  31. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/906115
推荐阅读
相关标签
  

闽ICP备14008679号