Face2V人脸向量开发包

news2025/1/18 20:13:49

Face2V SDK适用于需要人脸检测、人脸特征点和特征向量提取的应用,提供Web API和原生API。官方下载地址:Face2V SDK  。

1、目录组织

Face2V SDK开发包的目录组织说明如下:

face2v_sdk    
  | - core                      # 核心代码目录
    | - face_detector.py        # 人脸检测器实现类
    | - landmark_regressor.py   # 人脸特征点回归器实现类
    | - embedding_extractor.py  # 人脸特征向量提取器实现类
  | - models                    # 预训练模型目录
  | - samples                   # 测试图片目录
  | - serve.py                  # Web UI/API 启动代码  
  | - web_api_test.py           # Web API测试代码  
  | - native_api_test.py        # Native API测试代码 
  | - requirements.txt          # 依赖包描述文件

在第一次使用之前,首先安装依赖文件:

pip install -r requirements.txt

2、使用Web UI

执行如下命令启动Web UI:

python serve.py

然后使用浏览器访问 http://127.0.0.1:7860,即可打开Web UI。

在Web UI中打开一个图像文件,然后点击[Submit]按钮,就可以进行检测,如下图所示:

webui

选中 提取人脸特征点 ,然后点击[Submit]按钮,可以提取人脸特征点(68点),如下图所示:

webui landmarks

选中 提取人脸特征向量 ,然后点击[Submit]按钮,可以提取人脸特征向量(512维),如下图所示:

webui embeddings

3、使用Web API

访问端点: /predict

输入参数:

  • input:输入图像
  • extract_landmark:是否提取人脸特征点
  • extract_embedding:是否提取人脸特征向量

输出结果:

  • [0] :输出图像文件路径
  • [1] :人脸特征点数组
  • [2] :人脸特征向量数组

Python调用示例如下:

from gradio_client import Client, handle_file

client = Client("http://127.0.0.1:7860/")
result = client.predict(
  input=handle_file('./samples/test-1.jpg'),
  extract_landmark=True,
  extract_embedding=True,
  api_name="/predict" 
)
print(result)

执行结果如下:

4、使用原生API

除了Web API,Face2V SDK也提供了Python原生API。

4.1 人脸检测器

FaceDetector是人脸检测器类,使用其 process()方法对传入的图片进行处理,并返回检测结果数据。

FaceDetector实例的 process()调用示例代码如下:

from core import FaceDetector                       # 导入FaceDetector 
import cv2

fd = FaceDetector()                                 # 实例化FaceDetector

input = cv2.imread('samples/selfie-1.jpg')          # 读取输入的包含人脸的图片

boxes, probs = fd.process(input)                    # 返回检测到的人脸包围盒及对应的概率 
for box in boxes:                                   # 遍历所有包围盒
  x1, y1, x2, y2 = box
  print(f'face in rect => {(x1,y1)}, {(x2,y2)}')    # 输出包围盒的两个顶点坐标

4.2 特征点回归器

LandmarkRegressor是人脸特征点回归器,使用其 process()方法提取传入人脸图片的68个特征点:

face 68 points

LandmarkRegressor实例的 process()调用示例代码如下:

from core import LandmarkRegressor               # 导入LandmarkRegressor  
import cv2

lr = LandmarkRegressor()                         # 实例化LandmarkRegressor

input = cv2.imread('samples/f0.jpg')             # 读取输入的人脸图片

landmark = lr.process(input)                     # 提取输入人脸图片的特征点
for i, xy in enumerate(landmark):                # 遍历所有特征点 
  print(f'{i}: {xy}')                            # 输出每个特征点的序号和x, y坐标

4.3 特征向量提取器

EmbeddingExtractor是人脸特征向量提取器,使用其 process()方法提取传入人脸图片的512维向量, 可用于人脸搜索等应用。

EmbeddingExtractor实例的 process()调用示例代码如下:

from core import EmbeddingExtractor                # 导入EmbeddingExtractor
import cv2

ee = EmbeddingExtractor()                          # 实例化EmbeddingExtractor

input = cv2.imread('samples/f0.jpg')               # 读取输入的人脸图像

embedding = ee.process(input)                      # 返回对应的512维特征向量
print(f'embedding => {embedding}')                 # 打印输出特征向量

y原文链接:Face2V人脸向量开发包 - 汇智网 

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

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

相关文章

【算法】动态规划解决背包问题

应用场景——01背包问题 有一个背包,背包的容量为 4,现有如下物品 要求 1.目标为装入背包的总价值最大,并且重量不超出 2.要求装入的物品不能重复 动态规划算法介绍 1.动态规划算法的核心是:将大问题划分为小问题进行解决&…

函数调用的过程理解_汇编角度

目录 1、调用函数流程(main函数调用print函数):Step1 保存main函数现场地址等信息Step2 跳转到print函数的位置Step3 执行print函数的指令Step4 返回main函数,执行下一条指令流程连续性总结 2、其他知识总结 1、调用函数流程&…

竞赛报名管理系统asp.net+sqlserver

竞赛报名管理系统 功能简单 内容单调 适合学习 asp.net 三层架构 sqlserver2022数据库 账号登陆注册 用户管理 克赛管理 竞赛报名 竞赛评分 公告维护 修改密码 新增竞赛 2019数据库版本低 附加不了 需要高版本数据库 说明文档 运行前附加数据库.mdf(或sql生成数据…

24/8/4算法笔记 梯度下降

通过迭代地调整参数,沿着目标函数梯度的反方向(即最陡峭的下降方向)进行搜索,从而找到函数的局部最小值。 导入库 import matplotlib.pyplot as plt import numpy as np 构建方程和导数 #构建方程 f lambda x:(x-3.5)**2-4.…

代码随想录算法训练营第二天 | 209. 长度最小的子数组、59. 螺旋矩阵 II

目录 209. 长度最小的子数组1、题目描述2、思路3、code4、复杂度分析 LC59 螺旋矩阵 II1、题目描述2、思路3、code4、复杂度分析 209. 长度最小的子数组 题目链接:209 1、题目描述 给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其总和大于…

Netty一

Netty Netty介绍 Netty应用场景 I/O模型 阻塞IO 同步非阻塞IO 异步非阻塞IO BIO NIO AIO对比 Netty线程模型 Reactor模式 单Reactor单线程 单Reactor多线程 主从Reactor多线程 Netty模型 异步模型 Future-Listener机制 TCP粘包拆包基本介绍 Netty内存使用 Netty内存池化 Netty…

PCB设计

PCB设计 一、 元件封装是什么? 元件封装:一是指元件的包装方式,二是指元件的焊盘形状与尺寸。 在绘制PCB板的时候,要保证元件封装绘制正确,否则元件很可能无法焊接到成品板上。 不同的厂家生产的各类元器件的形状、尺…

用uniapp 及socket.io做一个简单聊天app 5

聊天中的通知及好友申请&#xff1a; 如下图效果 聊天的效果&#xff1a; 这里的friends&#xff0c;好友例表&#xff0c;里面有相关代码&#xff1a; <template><view class"friends-container"><view v-if"!isLoggedIn" class"…

【资治通鉴】“ 将欲取之、必先予之 “ 策略 ① ( 魏桓子 割让土地 | 资治通鉴原文分析 | 道德经、周书、吕氏春秋、六韬 中的相似策略 )

文章目录 一、" 将欲取之、必先予之 " 策略1、魏桓子 割让土地2、资治通鉴原文分析 二、" 将欲取之、必先予之 " 类似的原理1、将欲败之&#xff0c;必姑辅之&#xff1b;将欲取之&#xff0c;必姑与之 - 周书2、将欲歙之&#xff0c;必固张之&#xff0c;…

24年第五届“华数杯”数学建模竞赛浅析

需要完整资料&#xff0c;请关注WX&#xff1a;“小何数模”&#xff01; 本次华数杯数模比赛的赛题已正式出炉&#xff0c;无论是赛题难度还是认可度&#xff0c;该比赛都是仅次于数模国赛的独一档&#xff0c;可以用于国赛前的练手训练。考虑到大家解题实属不易&#xff0c;…

24/8/4算法笔记 线性回归

在简单或多元线性回归中&#xff0c;最小二乘法用来估计模型参数&#xff0c;使得预测值与实际值之间的差异&#xff08;残差&#xff09;的平方和最小。 最小二乘法 导入代码包 import numpy as np Xnp.array([[1,1],[2,1]]) X 构建矩阵 ynp.array([14,10]) y linalg是线…

电子电气架构 --- 域控制器在新架构中的功能承担

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

五. TensorRT API的基本使用-build-trt-module

目录 前言0. 简述1. 案例运行2. 代码分析2.1 main.cpp2.2 model.cpp2.3 network.hpp 3. 案例3.1 sample_cbr3.2 sample_resBlock3.3 sample_convBNSiLU3.4 sample_c2f 总结下载链接参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》&#xff0c;链接。记录下个人学…

力扣第五十二题——N皇后II

内容介绍 n 皇后问题 研究的是如何将 n 个皇后放置在 n n 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回 n 皇后问题 不同的解决方案的数量。 示例 1&#xff1a; 输入&#xff1a;n 4 输出&#xff1a;2 解释&#xff1a;如上图所…

C# ADC数据波形显示

1. 串口显示汉字的程序设计 using System; using System.Text; using System.Windows.Forms;namespace 汉字显示 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private byte[] StringToBytes(string TheString){Encoding FromEncoding Encodin…

鼻咽癌综述

小罗碎碎念 本期推文主题&#xff1a;鼻咽癌综述 这篇文章提供了一个全面的综述&#xff0c;探讨了鼻咽癌&#xff08;NPC&#xff09;的关键研究进展&#xff0c;包括病理机制、治疗、筛查和生物标志物的发展。 文章首先强调了NPC在特定地理区域的流行情况&#xff0c;并讨论了…

微分方程的数值解法——Runge-Kutta (RK4)

Runge-Kutta (RK4)   The Runge-Kutta (RK4) methods are used to solve the solution of the non-liner ordinary differential equation. Here, we will simply summary this method.   Assume the Intial Value Piont (IVP) is satisfied: y ′ f ( t , y ) , y ( t 0 )…

深入底层源码,剖析AQS的来龙去脉!

这里写目录标题 回顾前缀知识一、Condition的概念二、Condition底层结构三、Condition源码解析3.1 newCondition()3.2 await() 总结主要方法&#xff1a; 回顾 如果你还没熟悉 AQS 中的独占锁&#xff0c;可以先看这篇文章的前导篇。上一篇文章是以ReentrantLock 里面的加锁、解…

【2024年华数杯C题老外游中国】(完整题解+代码+完整参考论文)

请问 352 个城市中所有 35200 个景点评分的最高分&#xff08;Best Score&#xff0c;简称 BS&#xff09;是多少&#xff1f;全国有多少个景点获评了这个最高评分&#xff08;BS&#xff09;&#xff1f;获评了这个最高评分&#xff08;BS&#xff09;景点最多的城市有哪些&am…

2024带你轻松玩转Parallels Desktop19虚拟机!让你在Mac电脑上运行Windows系统

大家好&#xff0c;今天我要给大家安利一款神奇的软件——Parallels Desktop 19虚拟机。这款软件不仅可以让你在Mac电脑上运行Windows系统&#xff0c;还能轻松切换两个操作系统之间的文件和应用程序&#xff0c;让你的工作效率翻倍&#xff01; 让我来介绍一下Parallels Desk…