face-api实现人脸识别。

face-api实现人脸识别

  • face-api的由来
    • tensorflow.js 是什么
      • 部分代码
        • 模型介绍

face-api的由来

访问地址

JavaScript API for face detection and face recognition in the browser implemented on top of the tensorflow.js core API 官方说明

翻译:在tensorflow.js核心API之上实现的用于浏览器中人脸检测和人脸识别的JavaScript API

tensorflow.js 是什么

访问tensorflow.js

在这里插入图片描述

部分代码

const video = document.getElementById("video");const startVideo = async () => {const stream = await navigator.mediaDevices.getUserMedia({ video: true });video.srcObject = stream;console.log(stream)video.play();
};
Promise.all([faceapi.nets.tinyFaceDetector.loadFromUri("./models"),faceapi.nets.faceLandmark68Net.loadFromUri("./models"),faceapi.nets.faceRecognitionNet.loadFromUri("./models"),faceapi.nets.faceExpressionNet.loadFromUri("./models"),
]).then(startVideo());
video.addEventListener("play", () => {// 制作定位 canvasconst canvas = document.createElement("canvas");// canvas.style.position = "absolute";document.body.append(canvas);// 配置显示尺寸const displaySize = { width: video.width, height: video.height };faceapi.matchDimensions(canvas, displaySize);// 每 100ms 去绘制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); // 表情if (detections && detections.length > 0) {}}, 1000);

蓝奏云:https://wwud.lanzouw.com/iLnE516oj2eh
百度云:https://pan.baidu.com/s/10CXGdfx1Q99TEefxSJUsBw?pwd=kutw

下载完成,可以在index.html页面直接live-server运行。

模型介绍

  1. ageGenderNet 识别性别和年龄
  2. faceExpressionNet 识别表情,开心,沮丧,普通
  3. faceLandmark68Net 识别脸部特征用于mobilenet算法
  4. faceLandmark68TinyNet 识别脸部特征用于tiny算法
  5. faceRecognitionNet 识别人脸
  6. ssdMobilenetv1 google开源AI算法除库包含分类和线性回归
  7. tinyFaceDetector 比Google的mobilenet更轻量级,速度更快一点
  8. mtcnn 多任务CNN算法,一开浏览器就卡死
  9. tinyYolov2 识别身体轮廓的算法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/59420.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SaaS多租户系统架构设计

前言:多租户是SaaS(Software-as-a-Service)下的一个概念,意思为软件即服务,即通过网络提供软件服务。SaaS平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作的实际需求,通过互联网…

机器学习:无监督学习

文章目录 线性学习方法聚类ClusteringKmeansHAC 分布表示降维PCAMatrix FactorizationManifold LearningLLELaplacian Eigenmapst-SEN 线性学习方法 聚类Clustering Kmeans 随机选取K个中心,然后计算每个点与中心的距离,找最近的,然后更新中…

【Java】Java基础

环境准备 安装JDK和JRE 下载JDK,可以在官网Java Downloads | Oracle 中国下载,但是这里需要注册才能够下载。在Index of java-local/jdk (huaweicloud.com)也可以下载到,但是版本比较老,关系不大,直接下载&#xff0…

linux并发服务器 —— 多进程并发(四)

进程概述 程序是包含一系列信息的文件,描述了如何在运行时创建一个进程; 进程是正在运行的程序的实例,可以用一个程序来创建多个进程; 用户内存空间包含程序代码以及代码所使用的变量,内核数据结构用于维护进程状态…

超声波俱乐部分享:AI冷静期,创业者们应该做什么?

8月26日,2023年第十一期超声波俱乐部内部分享会在北京望京举行。本期的主题是:AI冷静期,创业者们应该做什么? 到场的嘉宾有: 超声波创始人杨子超,超声波联合创始人、和牛商业创始人刘思雨,中国…

探讨uniapp的页面问题

1 新建页面 uni-app中的页面,默认保存在工程根目录下的pages目录下。 每次新建页面,均需在pages.json中配置pages列表; 未在pages.json -> pages 中注册的页面,uni-app会在编译阶段进行忽略。pages.json的完整配置参考&am…

知更鸟语音训练

现在哪还有人读小说、看视频,谁还用真人朗读呢? 现在给大家介绍,假人朗读是怎么来的,提供一些音频,进行训练,然后就能合成属于自己的音频了。这里只讲训练部分,使用请自己看github知更鸟&#…

Python2021年06月Python二级 -- 编程题解析

题目一 没有重复数字的两位数统计 编写一段程序,实现下面的功能: (1)检查所有的两位数; (2)程序自动分析两位数上的个位与十位上的数字是否相同,相同则剔除, 不同则保留(例:12符合本要求,个位是2,十位是1,两…

what(): NCCL Error 1: unhandled cuda error解决方法

文章目录 遇到问题解决方法参考 遇到问题 运行项目:ACL2021的一篇工作,LM-BFF (Better Few-shot Fine-tuning of Language Models) https://github.com/princeton-nlp/LM-BFF 遇到环境问题。 我的机器环境如下: 服务器上CUDA版本为11.4 GPU…

常见的下载方式

一. 使用 window.open() 使用场景 // 1. 先封装一个实习下载的函数 export const download (path) > {window.open(下载的接口,例如:/fs/download?path path) } // 2. 使用:在需要下载的地方调用download函数,传入下载的u…

视频批量剪辑矩阵分发系统源码开源分享----基于PHP语言

批量剪辑视频矩阵分发: 短视频seo主要基于抖音短视频平台,为企业实现多账号管理,视频分发,视频批量剪辑,抖音小程序搭建,企业私域转化等,本文主要介绍短视频矩阵系统抖音小程序开发详细及注意事…

linux创建进程

linux创建进程 准备工作 准备工作 在Ubuntu64系统上 1、安装GCC和Make工具 编译器GCC:把C源码转为二进制程序 Make:自动编译多源文件项目 sudo apt-get update #更新存储库 sudo apt-get install build-essential #安装build-essential包 gcc --versio…

docker之 Consul(注册与发现)

目录 一、什么是服务注册与发现? 二、什么是consul 三、consul 部署 3.1建立Consul服务 3.1.1查看集群状态 3.1.2通过 http api 获取集群信息 3.2registrator服务器 3.2.1安装 Gliderlabs/Registrator 3.2.2测试服务发现功能是否正常 3.2.3验证 http 和 ng…

关于异数OS服务器CPU效能分析工具

该工具发布背景 近年来,国产服务器CPU产业的逐渐发展,但由于专业性较差,与国外存在40年以上技术差距,一些服务器CPU厂商利用信息差来制造一些非专业的数据夸大并虚假宣传混淆视听,成功达到劣币驱良币的目标&#xff0…

【论文笔记】最近看的时空数据挖掘综述整理8.27

Deep Learning for Spatio-Temporal Data Mining: A Survey 被引用次数:392 [Submitted on 11 Jun 2019 (v1), last revised 24 Jun 2019 (this version, v2)] 主要内容: 该论文是一篇关于深度学习在时空数据挖掘中的应用的综述。论文首先介绍了时空数…

react css 污染解决方法

上代码 .m-nav-bar {background: #171a21;.content {height: 104px;margin: 0px auto;} }import React from "react"; import styles from ./css.module.scssexport default class NavBar extends React.Component<any, any> {constructor (props: any) {supe…

数组(个人学习笔记黑马学习)

一维数组 1、定义方式 #include <iostream> using namespace std;int main() {//三种定义方式//1.int arr[5];arr[0] 10;arr[1] 20;arr[2] 30;arr[3] 40;arr[4] 50;//访问数据元素/*cout << arr[0] << endl;cout << arr[1] << endl;cout &l…

Redis怎么测试?

有些测试朋友来问我&#xff0c;redis要怎么测试&#xff1f;首先我们需要知道&#xff0c;redis是什么&#xff1f;它能做什么&#xff1f; redis是一个key-value类型的高速存储数据库。 redis常被用做&#xff1a;缓存、队列、发布订阅等。 所以&#xff0c;“redis要怎么…