乐趣区

关于javascript:Tensorflowjs-对视频-直播人脸检测和特征点收集

前言

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 这里要介绍的是 Tensorflow.js 官网提供的两个人脸检测模型,别离是 face-detection 和 face-landmarks-detection。他们岂但能够对视频中的世间进行精确定位,而且还能对以后设施 (手机 / 电脑摄像头) 采集的直播流实时监测人脸。所以这些的利用场景就很常见了,比方在线美颜,实时增加互动虚构挂件等等。
     
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 尽管这两个模型实现的性能相似,然而也还是有区别滴。face-landmarks-detection 相比 face-detection 对人脸的检测有更多的特色点,而特色点更多可用来做相似建模匹配的重合度就越高,以下会通过官网的例子打印出脸部的特色点数据。

实操

1. 下载源码。

  1. 独自提出 demos 里 upload_video。

    &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 这里要阐明一下,因为集体习惯,我这里还是通过 parcel 形式打包。官网举荐是 yarn,而且有文档流程介绍,能够按着下面运行。而我的办法齐全不按套路出牌,其实独自提出 demo 里我的项目运行也是不正确,npm 装置报错连连,那我就对我遇到的几个谬误做一一还原吧。

2.1. npm install 抛出各种依赖包版本抵触,npm ERR! code ERESOLVE npm ERR,如下。

2.1.1. 起因:
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 因为自己前端程度无限,通过查阅,是 npm 版本起因。npm 从 v7 开始,默认装置 peerDependencies。在少数状况下,导致版本抵触,从而终端装置过程,在装置前能够查问一下 npm -v,小于 v7 就不必看上面办法了。

2.1.2. 解决办法:
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 在命令前面增加 –legacy-peer-deps, 加了这个就能够绕过 peerDependency 主动装置,通知 NPM 疏忽我的项目中引入的各个模块之间的雷同模块,但不同版本的问题,保障各个引入的依赖之间对本身所应用的不同版本模块共存,最初的依赖就装置胜利了,最初就执行 parcel index 打包。

2.2. parcel 时,抛出 face-detection 模型不存在,如下。

2.2.1. 起因:
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp 这里就是我运行我的项目时的办法不对,因为运行时须要在里面进行装置打包会生成模型文件,而 demos 里的模型引入其实是引入后面打包好的文件,咱们能够看到 package.json 里。

2.2.2. 解决办法:
将 package.json 里的模型依赖删掉,也就是下面标注的局部,而后通过 npm 进行装置,装置成后 json 文件会更新,其余问题相似。npm install @tensorflow-models/face-detection –legacy-peer-deps 

运行成果

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspface-detection 通过打印能够看到以上数据,box 是指标的宽低等值,而 keypoints 就是检测出人脸的 6 个特色点。包含特色的名称和挪动地位等信息。

 &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspface-landmarks-detection 打印出的不同的 face-detection 的是,keypoints 数据更多,除了检测出人脸五官,而且五官轮廓的点地位也全副辨认进去了。

退出移动版