insightface

博客介绍了命令行解析模块的使用,包括创建对象、读入命令行参数,说明了各参数如name or flags、default等的作用。还提及载入人脸识别和年龄性别模型的路径,解析命令行后加载模型、读取图片获取特征,最后计算并显示特征差值和矩阵乘积的值。
import face_model
import argparse
import cv2
import sys
import numpy as np

parser = argparse.ArgumentParser(description='face model test')
# general
parser.add_argument('--image-size', default='112,112', help='')
parser.add_argument('--model', default='', help='path to load model.')
parser.add_argument('--ga-model', default='', help='path to load model.')
parser.add_argument('--gpu', default=0, type=int, help='gpu id')
parser.add_argument('--det', default=0, type=int, help='mtcnn option, 1 means using R+O, 0 means detect from begining')
parser.add_argument('--flip', default=0, type=int, help='whether do lr flip aug')
parser.add_argument('--threshold', default=1.24, type=float, help='ver dist threshold')
args = parser.parse_args()

model = face_model.FaceModel(args)
img = cv2.imread('Tom_Hanks_54745.png')
img = model.get_input(img)
#f1 = model.get_feature(img)
#print(f1[0:10])
gender, age = model.get_ga(img)
print(gender)
print(age)
sys.exit(0)
img = cv2.imread('/raid5data/dplearn/megaface/facescrubr/112x112/Tom_Hanks/Tom_Hanks_54733.png')
f2 = model.get_feature(img)
dist = np.sum(np.square(f1-f2))
print(dist)
sim = np.dot(f1, f2.T)
print(sim)
#diff = np.subtract(source_feature, target_feature)
#dist = np.sum(np.square(diff),1)

 

import face_model
import argparse
import cv2
import sys
import numpy as np

导入命令行解析模块 

 

parser = argparse.ArgumentParser(description='face model test')

 创建对象
将括号内的内容赋值给parser

 

parser.add_argument('--image-size', default='112,112', help='')
parser.add_argument('--model', default='', help='path to load model.')
parser.add_argument('--ga-model', default='', help='path to load model.')
parser.add_argument('--gpu', default=0, type=int, help='gpu id')
parser.add_argument('--det', default=0, type=int, help='mtcnn option, 1 means using R+O, 0 means detect from begining')
parser.add_argument('--flip', default=0, type=int, help='whether do lr flip aug')
parser.add_argument('--threshold', default=1.24, type=float, help='ver dist threshold')
  • parser.add_argument 读入命令行参数。
  • name or flags :必须的参数,包括有选项参数或者是位置参数,例如'--image-size'即为选项参数。在终端时需要输入别名以及对应的值。
  • default:当你没有在终端输入参数值时,需要用到默认值,由这个参数确定,默认为None。
  • help:使用这个参数描述选项作用。
  • type:使用这个参数,转换输入参数的具体类型,这个参数可以关联到某个自定义的处理函数,这种函数通常用来检查值的范围,以及合法性。​​​​​​​
  1. ​​图片尺寸为112*112
  2. 载入模型model(人脸识别)的路径
  3. 载入模型ga-model(年龄性别)的路径
  4. gpu id = 0 ,且必须为整数
  5. det = 0,必须为整数,1表示使用R+0,0表示从新检测
  6. flip = 0
  7. threshold = 1.24
args = parser.parse_args()

解析程序的命令行

model = face_model.FaceModel(args)
img = cv2.imread('Tom_Hanks_54745.png')
img = model.get_input(img)

加载人脸识别模型,读取图片,模型加载图片

#f1 = model.get_feature(img)
#print(f1[0:10])

获取并且输出特征

gender, age = model.get_ga(img)
print(gender)
print(age)
sys.exit(0)

加载性别年龄模型。显示性别和年龄。正常退出。

img = cv2.imread('/raid5data/dplearn/megaface/facescrubr/112x112/Tom_Hanks/Tom_Hanks_54733.png')
f2 = model.get_feature(img)

读取图片并获取特征值

dist = np.sum(np.square(f1-f2))
print(dist)
sim = np.dot(f1, f2.T)
print(sim)
#diff = np.subtract(source_feature, target_feature)
#dist = np.sum(np.square(diff),1)

计算并显示f1和f2的差值

计算并显示f1和f2的矩阵乘积的值

InsightFace是基于PyTorch和MXNet的开源2D/3D深度人脸识别分析工具,由旷视研究院开发并维护,集成了众多先进的人脸识别算法和模型,可用于多种人脸识别相关的任务[^1]。 ### 主要特点 - **算法模型**:包含多个在国际人脸识别竞赛中取得优异成绩的算法模型,如ArcFace、CosFace等。这些模型采用创新的损失函数和网络架构,能学习到更具判别性的人脸特征,在人脸识别任务中取得高精度识别效果[^1]。 - **支持2D和3D人脸识别**:不仅能处理传统的2D人脸图像,还支持对3D人脸数据的分析,能更全面地描述人脸的几何形状和纹理信息,提高在复杂场景下的识别准确率和鲁棒性[^1]。 - **多模态分析能力**:除基本的人脸识别功能外,还支持对人脸的多种属性进行分析,如年龄、性别、表情、姿态等,在需要综合分析人脸信息的应用场景中具有很大优势[^1]。 - **高效的推理性能**:经过优化的模型结构和代码实现,在推理过程中具有较高效率,可在GPU和CPU上快速运行,满足不同硬件环境下的使用需求,尤其在大规模人脸识别系统中能保证实时性[^1]。 - **丰富的工具和文档**:项目提供丰富的工具和脚本,方便用户进行数据处理、模型训练、评估和部署,同时有详细的文档和示例代码,初学者也能快速上手[^1]。 ### 使用指南 若使用基于InsightFace的RESTful API服务实现InsightFace - REST,其基本目录结构及相关文件作用如下: ```plaintext . ├── Dockerfile # Docker 容器构建文件 ├── insightface # 主要的人脸识别模型库和代码 │ ├── ... ├── app.py # Flask 应用主入口,处理HTTP求 ├── requirements.txt # 项目依赖列表 ├── config.py # 系统配置文件 ├── README.md # 项目读我文件,包含基本说明 └── utils # 辅助工具函数或类 ``` 其中,Dockerfile用于创建项目的运行环境的Docker配置;insightface包含核心的人脸识别模型和算法;app.py是Flask Web服务器的主要脚本,实现了接口的服务逻辑;requirements.txt是Python依赖包列表,确保环境一致性;config.py存储所有要的应用配置参数;utils包含一些辅助工具函数,帮助完成特定任务[^2]。 ### 下载 InsightFace是开源项目,可通过其开源代码仓库(一般在GitHub等代码托管平台)进行下载获取其源码,然后按照文档说明进行环境配置和使用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值