tensorflow.js 对视频 / 直播人脸检测和特征点收集
前言:
这里要介绍的是 Tensorflow.js 官方提供的两个人脸检测模型,分别是 face-detection 和 face-landmarks-detection。他们不但可以对视频中的人间进行精确定位,而且还能对当前设备 (手机 / 电脑摄像头) 采集的直播流实时监测人脸。所以这些的应用场景就很常见了,比如在线美颜,实时添加互动虚拟挂件等等。
虽然这两个模型实现的功能类似,但是也还是有区别滴。face-landmarks-detection 相比 face-detection 对人脸的检测有更多的特征点,而特征点更多可用来做类似建模匹配的重合度就越高,以下会通过官方的例子打印出脸部的特征点数据。

实操:
1. 下载源码。

2. 单独提出 demos 里 upload_video。

这里要说明一下,因为个人习惯,我这里还是通过 parcel 方式打包。官方推荐是 yarn,而且有文档流程介绍,可以按着上面运行。而我的方法完全不按套路出牌,其实单独提出 demo 里项目运行也是不正确,npm 安装报错连连,那我就对我遇到的几个错误做一一复原吧。
2.1. npm install 抛出各种依赖包版本冲突,npm ERR! code ERESOLVE npm ERR,如下。

2.1.1. 原因:
由于本人前端水平有限,经过查阅,是 npm 版本原因。npm 从 v7 开始,默认安装 peerDependencies。在多数情况下,导致版本冲突,从而终端安装过程,在安装前可以查询一下 npm -v,小于 v7 就不用看下面方法了。
2.1.2. 解决方法:
在命令后面添加
--legacy-peer-deps
加了这个就可以绕过 peerDependency 自动安装,告诉 NPM 忽略项目中引入的各个模块之间的相同模块,但不同版本的问题,保证各个引入的依赖之间对自身所使用的不同版本模块共存,最后的依赖就安装成功了,最后就执行 parcel index 打包。
2.2. parcel 时,抛出 face-detection 模型不存在,如下。

2.2.1. 原因:
这里就是我运行项目时的方法不对,因为运行时需要在外面进行安装打包会生成模型文件,而 demos 里的模型引入其实是引入前面打包好的文件,我们可以看到 package.json 里。

2.2.2. 解决方法:
将 package.json 里的模型依赖删掉,也就是上面标注的部分,然后通过 npm 进行安装,安装成后 json 文件会更新,其他问题类似。
npm install @tensorflow-models/face-detection --legacy-peer-deps
运行效果:
1. face-detection
运行地址: http://127.0.0.1:1234/?model=mediapipe_face_detector
通过打印可以看到以上数据,box 是目标的宽高等值,而 keypoints 就是检测出人脸的 6 个特征点。包括特征的名称和移动位置等信息。


2. face-landmarks-detection
地址: http://127.0.0.1:1234/?model=mediapipe_face_mesh
打印出的不同的 face-detection 的是,keypoints 数据更多,除了检测出人脸五官,而且五官轮廓的点位置也全部识别出来了。



tensorflow.js 对视频 / 直播人脸检测和特征点收集的更多相关文章
- livego+obs+flv.js 搭建视频直播
一.流程 主播通过 obs软件通过直播 ->推流到->直播服务器 客户通过浏览器 访问站点->flv.js拉取直播服务器视频流并播放 二.环境 centos7 直播服务器 https ...
- 视频人脸检测——OpenCV版(三)
视频人脸检测是图片人脸检测的高级版本,图片检测详情点击查看我的上一篇<图片人脸检测——OpenCV版(二)> 实现思路: 调用电脑的摄像头,把摄像的信息逐帧分解成图片,基于图片检测标识出人 ...
- OpenCV + python 实现人脸检测(基于照片和视频进行检测)
OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...
- 基于opencv3.0下的人脸检测和检测部分的高斯模糊处理
如题 这里将任务分解为三大部分: 1.录播放视频 2.人脸检测 3.部分高斯模糊 其中重点放在人脸检测和部分高斯模糊上 1.录播放视频(以opencv中的VideoCapture类进行实现) 首先罗列 ...
- 浅析人脸检测之Haar分类器方法
一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸检测也逐渐作为一个单独的研究方向发 ...
- Ello讲述Haar人脸检测:易懂、很详细、值得围观
源地址:http://www.thinkface.cn/thread-142-1-1.html 由于工作需要,我开始研究人脸检测部分的算法,这期间断断续续地学习Haar分类器的训练以及检测过程,在这里 ...
- 2、转载一篇,浅析人脸检测之Haar分类器方法
转载地址http://www.cnblogs.com/ello/archive/2012/04/28/2475419.html 浅析人脸检测之Haar分类器方法 [补充] 这是我时隔差不多两年后, ...
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
浅析人脸检测之Haar分类器方法 一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸 ...
- Python 3 利用 Dlib 实现摄像头人脸检测特征点标定
0. 引言 利用 Python 开发,借助 Dlib 库捕获摄像头中的人脸,进行实时人脸 68 个特征点标定: 支持多张人脸: 有截图功能: 图 1 工程效果示例( gif ) 图 2 工程效果示例( ...
- Vue + WebRTC 实现音视频直播(附自定义播放器样式)
1. 什么是WebRTC 1.1 WebRTC简介 WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频 ...
随机推荐
- 你知道Object类和Objects的常用方法吗
文章目录 Object的常用方法 Objects的常用方法 hashCode hash isNull equals requireNonNull compare nonNull 大家好,Leo又来了! ...
- 【python爬虫】模拟肯德基餐厅地理信息查询
本篇仅在于交流学习 网页地址:http://www.kfc.com.cn/kfccda/storelist/index.aspx 解析页面 在搜索栏输入地理位置便会显示地理信息 解析后发现页面是以js ...
- pytest测试实战和练习
开头 经过前面几章的学习,这时候要来个测试实战会比较好巩固一下学过的知识 任务要求 1.实现计算器(加法,除法)的测试用例 2.使用数据驱动完成测试用例的自动生成 3.在调用测试方法之前打印[开始计算 ...
- 2022-04-06:go中proto文件能跨平台,那是因为能生成不同语言的代码,做框架开发用protoc+插件生成代码是不合适的,需要解析,请问如何解析?
2022-04-06:go中proto文件能跨平台,那是因为能生成不同语言的代码,做框架开发用protoc+插件生成代码是不合适的,需要解析,请问如何解析? 答案2022-04-06: go get ...
- Redis基础命令汇总,看这篇就够了
本文首发于公众号:Hunter后端 原文链:Redis基础命令汇总,看这篇就够了 本篇笔记将汇总 Redis 基础命令,包括几个常用的通用命令,和各个类型的数据的操作,包括字符串.哈希.列表.集合.有 ...
- vue全家桶进阶之路25:Vue2的停维通知
Vue 2 的技术支持会持续多久?从官方发文来看,Vue 2.7 是当前.同时也是最后一个 Vue 2.x 的次级版本更新.Vue 2.7 会以其发布日期,即 2022 年 7 月 1 日开始计算,提 ...
- Django admin管理工具的使用、定制及源码解析
admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLE ...
- 树莓派上使用docker部署aria2,minidlna
目前在树莓派上安装aria2跟minidlna能搜到的教程基本上都是直接apt-get install安装的.现在是docker的时代了,其实这2个东西可以直接使用docker run跑起来.有什么问 ...
- 微信小程序setData()异常
近来开发一个小程序的项目,遇到使用setData()始终报错的情况,其问题奇特难解- 一.操作错误截图 如上图,只要将setData放置在回调函数中就会出现异常,如果不放在回调中就正常: 好郁闷,wh ...
- STM32H5移植zbar记录
ZBar是一种流行的二维码扫描和解码工具,它在嵌入式系统中拥有广泛的应用.在嵌入式系统中,我们面临着有限的资源和更严格的性能要求,因此,选择适当的库来完成特定的任务非常重要. ZBar适用于各种嵌入式 ...