face-api的github链接:face-api.js

里面的readme写的有点难以理解,再附一个讲解的网址:讲解如何使用webcam实现人脸检测:Build Real Time Face Detection With JavaScript
本文代码基本就是这个视频里的代码扒过来的,看不了视频的直接看这篇文章就可以了。

1. 准备

  1. 下载face-api:https://github.com/justadudewhohacks/face-api.js.git
  2. 新建一个自己的文件夹,将刚才下好的face-api.js目录里的/dist/face-api.min.js复制到自己的文件夹下,然后再把/weights文件夹直接全部拖到自己的目录下,新建index.html和face_detect.js。这里的目录设置如图所示:

2. 代码文件

  1. index.html的代码如下:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><title>Face Detection</title><script defer src="face-api.min.js"></script><script defer src="face_detect.js"></script><style>body {margin: 0;padding: 0;width: 100vw;height: 100vh;display: flex;justify-content: center;align-items: center;}canvas {position: absolute;}</style></head><body><video id="video" width="720" height="560" autoplay muted></video></body>
</html>
  1. face_detect.js的代码如下:
const video = document.getElementById('video')Promise.all([faceapi.nets.tinyFaceDetector.loadFromUri('./models'),faceapi.nets.faceLandmark68Net.loadFromUri('./models'),faceapi.nets.faceRecognitionNet.loadFromUri('./models'),faceapi.nets.faceExpressionNet.loadFromUri('./models'),
]).then(startVideo);function startVideo() {navigator.getUserMedia({ video: {} },(stream) => (video.srcObject = stream),(err) => console.error(err));}video.addEventListener("play", () => {const canvas = faceapi.createCanvasFromMedia(video);document.body.append(canvas);const displaySize = { width: video.width, height: video.height };faceapi.matchDimensions(canvas, displaySize);setInterval(async () => {const detections = await faceapi.detectAllFaces(video, new faceapi.TinyFaceDetectorOptions()).withFaceLandmarks().withFaceExpressions();const resizedDetections = faceapi.resizeResults(detections, displaySize);canvas.getContext("2d").clearRect(0, 0, canvas.width, canvas.height);faceapi.draw.drawDetections(canvas, resizedDetections);faceapi.draw.drawFaceLandmarks(canvas, resizedDetections);faceapi.draw.drawFaceExpressions(canvas, resizedDetections);}, 100);});

大功告成~似乎是不能直接点击index.html运行的,会报404的错误(找不到face-api的model),可以用vscode之类的服务端来打开。配合python下的tornado网络框架使用也可。

使用face-api实现html前端摄像头人脸检测相关推荐

  1. 【Python3-OpenCV】实现实时摄像头人脸检测

    OpenCV 是一个C++库,目前流行的计算机视觉编程库,用于实时处理计算机视觉方面的问题,它涵盖了很多计算机视觉领域的模块.在Python中常使用OpenCV库实现图像处理. 本文将介绍如何在Pyt ...

  2. python 摄像头标定_python 3利用Dlib 19.7实现摄像头人脸检测特征点标定

    Python 3 利用 Dlib 19.7 实现摄像头人脸检测特征点标定 0.引言 利用python开发,借助Dlib库捕获摄像头中的人脸,进行实时特征点标定: 图1 工程效果示例(gif) 图2 工 ...

  3. 【优秀课设】基于OpenCV-Python的摄像头人脸检测追踪控制系统

    基于OpenCV-Python的摄像头人脸检测追踪控制系统 资源: download.csdn.net/download/weixin_53403301/25496828 采用OpenCV-Pytho ...

  4. 摄像头人脸检测的树莓派指纹识别系统

    摄像头人脸检测的树莓派指纹识别系统 前言:此项目主要用了摄像头.指纹识别.继电器.Led模块等设备.用于实现智能门锁功能,即摄像头检测到人来之后,打开继电器给指纹模块供电,led显示文字. 代码: i ...

  5. 纯前端实现人脸检测,并给你的头像戴上口罩!

    本文来自社区投稿与征集,作者 Howard Zhang,东华大学研究生在读,中科院计算所客座学生. 本文转自:https://zhuanlan.zhihu.com/p/104070435 根据春节的起 ...

  6. 使用UWP人脸检测API在WPF中进行人脸检测

    目录 介绍 先决条件 背景 人脸检测 标记人脸 查看模型 视图 结论 Download repository 介绍 通用Windows平台的Windows.Media.FaceAnalysis名称空间 ...

  7. 基于OpenCV的摄像头人脸检测

    一.选题背景 二.设计目的和意义 三.设计方案 四.特征分类器的选择 4.1 常用人脸检测的特征分类器 4.2 人脸的Haar特征分类器介绍 4.3 人脸的Haar特征分类器使用 五.设计中主要函数介 ...

  8. [python][mediapipe]摄像头人脸检测

    import cv2 import mediapipe as mp# 导入BlazeFace模型 mp_face_detection = mp.solutions.face_detection mod ...

  9. python+opencv摄像头人脸检测+代码注释

    比较简单直接上代码: #导入模块 import cv2 #摄像头 cap=cv2.VideoCapture('1.mp4')falg = 1 num = 1while(cap.isOpened()): ...

最新文章

  1. shell脚本编程学习笔记(四)shell操作数据库
  2. Galaxy v-21.01 发布,新的流程和历史栏体验
  3. documentum中的Fulltext search的文章收集
  4. 《D3.js数据可视化实战手册》——2.5 使用子选择器
  5. 本田crv混动操作手册_【广汽本田】不只是奶爸车 新出行试驾本田奥德赛锐混动...
  6. 算法篇(暂时就接触一个)
  7. python 文件相似度分析_使用Python做人群相似度分析
  8. 架构的变迁,从分层架构先聊起
  9. 【python】ssh密码字典攻击
  10. matlab2c使用c++实现matlab函数系列教程-kron函数
  11. java题兔子第三个月生_JAVA编程之古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子...
  12. 如何将某一文件添加到信任列表?
  13. windows下mysql免安装配置
  14. echart柱状图堆叠总计显示
  15. mac软件全屏时候最顶上任务栏保留_Mac菜单栏上必备的十款应用程序
  16. 实现计算器(C++版 )
  17. 局域网数据包通过外网发送到另一局域网的过程
  18. Walk Through the Fire,Is there a way out
  19. java发送手机短信demo
  20. python数据拟合怎么做的,python如何实现数据的线性拟合

热门文章

  1. 最广泛使用的服务器软件爆出网络安全漏洞
  2. 项目需求和产品需求_项目需求和你
  3. Cannot find JRE ‘1.8‘. You can specify JRE to run maven goals in Settings | Mav
  4. 《计算机体系结构:量化研究方法》读书笔记
  5. “互联网+”时代,易信企业版能否在企业级服务市场异军突起?
  6. 2009北海市东盟杯导游大赛结束,各奖项名花有主-渤锐软件提供了相关的软件支持
  7. python井字棋_python实现简单井字棋游戏
  8. Android wifi开发包含列表获取点击连接wifi
  9. iOS OC10_Block
  10. Block,多态,数组排序