当前位置: 首页 > news >正文

Face2V人脸向量开发包

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_fileclient = 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 cv2fd = FaceDetector()                                 # 实例化FaceDetectorinput = cv2.imread('samples/selfie-1.jpg')          # 读取输入的包含人脸的图片boxes, probs = fd.process(input)                    # 返回检测到的人脸包围盒及对应的概率 
for box in boxes:                                   # 遍历所有包围盒x1, y1, x2, y2 = boxprint(f'face in rect => {(x1,y1)}, {(x2,y2)}')    # 输出包围盒的两个顶点坐标

4.2 特征点回归器

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

face 68 points

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

from core import LandmarkRegressor               # 导入LandmarkRegressor  
import cv2lr = LandmarkRegressor()                         # 实例化LandmarkRegressorinput = 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 cv2ee = EmbeddingExtractor()                          # 实例化EmbeddingExtractorinput = cv2.imread('samples/f0.jpg')               # 读取输入的人脸图像embedding = ee.process(input)                      # 返回对应的512维特征向量
print(f'embedding => {embedding}')                 # 打印输出特征向量

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 使用python爬取今日头条热搜
  • 使用EntityFramework8的学习和开发过程中一些经验
  • Webpack、Vite区别知多少?
  • Linux Ubuntu 20.04 netmap安装
  • OD C卷 - 中庸行者
  • 第128天:内网安全-横向移动IPCATSC 命令Impacket 套件CS 插件全自动
  • 代码随想录 day 30 贪心
  • RabbitMQ应用场景及特性
  • PointMC: Multi-instance Point Cloud Registration based on Maximal Cliques 论文解读
  • 经典算法KMP讲解,包含C++解法ACM模式
  • Python脚本实现USB自动复制文件
  • ADC模数转换在stm32上的应用
  • C语言基础题:硬币问题(C语言版)
  • 蚂蚁0511笔试-选择题
  • 9-springCloud集成nacos config
  • [ JavaScript ] 数据结构与算法 —— 链表
  • Computed property XXX was assigned to but it has no setter
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • k8s如何管理Pod
  • LeetCode29.两数相除 JavaScript
  • Mysql数据库的条件查询语句
  • TypeScript迭代器
  • 初识 beanstalkd
  • 给第三方使用接口的 URL 签名实现
  • 记录一下第一次使用npm
  • 聚簇索引和非聚簇索引
  • 爬虫模拟登陆 SegmentFault
  • 思考 CSS 架构
  • Java总结 - String - 这篇请使劲喷我
  • # 计算机视觉入门
  • #565. 查找之大编号
  • (6)添加vue-cookie
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • (超详细)语音信号处理之特征提取
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)memcache、redis缓存
  • ***详解账号泄露:全球约1亿用户已泄露
  • .mysql secret在哪_MySQL如何使用索引
  • .net refrector
  • .net Stream篇(六)
  • .net 生成二级域名
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .net6使用Sejil可视化日志
  • .net8.0与halcon编程环境构建
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • [AIGC] Java 和 Kotlin 的区别
  • [bzoj4240] 有趣的家庭菜园
  • [C#]使用DlibDotNet人脸检测人脸68特征点识别人脸5特征点识别人脸对齐人脸比对FaceMesh