InsightFace-paddle的版本还是太麻烦了

并没有真正做到不建立索引

下面来说一下真正不需要建立索引的

https://github.com/deepinsight/insightfacehttps://github.com/deepinsight/insightface没错,这次我们使用原版InsightFace项目

安装非常简单,使用pip的包

pip install -U insightface

安装好了之后直接上测试代码:

# 测试代码
import argparse
import cv2
import sys
import numpy as np
import insightface
from insightface.app import FaceAnalysis
from insightface.data import get_image as ins_get_image
assert insightface.__version__>='0.3'
parser = argparse.ArgumentParser(description='insightface app test')
parser.add_argument('--ctx', default=0, type=int, help='ctx id, <0 means using cpu')
parser.add_argument('--det-size', default=640, type=int, help='detection size')
args = parser.parse_args()
app = FaceAnalysis(name="antelopev2")
app.prepare(ctx_id=args.ctx, det_size=(args.det_size,args.det_size))
img_1 = cv2.imread("face1.png")
img_2 = cv2.imread("face2.png")
faces_1 = app.get(img_1)
faces_2 = app.get(img_2)
assert len(faces_1)!=0 and len(faces_2)!=0
#rimg_1 = app.draw_on(img_1, faces_1)
#rimg_2 = app.draw_on(img_2, faces_2)
#cv2.imwrite("./f1_output.jpg", rimg_1)
#cv2.imwrite("./f2_output.jpg", rimg_2)
# then print all-to-all face similarity
feats = []
for face in faces_1:feats.append(face.normed_embedding)
for face in faces_2:feats.append(face.normed_embedding)
feats = np.array(feats, dtype=np.float32)
sims = np.dot(feats, feats.T)
print(sims)

思路非常简单,通过内置接口获得面部嵌入,然后算个点积就行了,至于那个相似度矩阵,两张照片直接取sims[0][1]那个位置的值就可以了,一般来说大于0.45就认为这两张照片是同一个人,但是实际来看如果不是什么稀奇古怪的角度或者光线,但部分都是0.1以内和0.7以上。

速度上非常快,使用onnxruntime-gpu时推理时间能控制在10ms左右

我就不放图了,如果测试成功记得回来点个赞~

InsightFace实现人脸比对[升级版] | 不用建立索引的那种 (二)相关推荐

  1. InsightFace-Paddle实现人脸比对 | 不用建立索引的那种 (一)

    需要任意两张同一个人的照片能够准确分辨出是不是同一个人,尽量简化识别过程,不需要知道是谁,也最好不用建立索引文件. 现在这个版本的insughtface很奇怪,不知道为什么自己建立索引的时候需要每个人 ...

  2. 人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载)

    人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载) 目录 人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载) 1. ...

  3. 人脸识别3:C/C++ InsightFace实现人脸识别Face Recognition(含源码)

    人脸识别3:C/C++ InsightFace实现人脸识别Face Recognition(含源码) 目录 1. 前言 2. 项目安装 (1)项目结构 (2)配置开发环境(OpenCV+OpenCL+ ...

  4. 人脸识别4:Android InsightFace实现人脸识别Face Recognition(含源码)

    人脸识别4:Android InsightFace实现人脸识别Face Recognition(含源码) 目录 人脸识别4:Android InsightFace实现人脸识别Face Recognit ...

  5. 数据库性能优化1——正确建立索引以及最左前缀原则

    1. 索引建立的原则 用于索引的最好的备选数据列是那些出现在WHERE子句.join子句.ORDER BY或GROUP BY子句中的列. 仅仅出现在SELECT关键字后面的输出数据列列表中的数据列不是 ...

  6. 建立索引和主外约束_Mysql索引原理

    阅读文本大概需要3分钟. 作者:菜菜聊架构来源:https://www.cnblogs.com/caicz/p/11009507.html 一.为什么要有索引 索引在MySQL中也叫做"键& ...

  7. MySQL索引介绍,普通索引,全文索引,空间索引,多列索引使用原则,建立索引常用的规则

    转自:https://blog.csdn.net/tomorrow_fine/article/details/78337735 1.MySQL在创建数据表的时候创建索引 在MySQL中创建表的时候,可 ...

  8. w ndows 高级索引,软媒原创:为Windows7建立索引,搜索文件更给力

    Win7之家( www.win7china.com):软媒原创:为Windows7建立索引,搜索文件更给力 也许你还记得XP时代搜索文件时出现的那只黄色的小狗狗,在Windows7时代,搜索变得更加快 ...

  9. mysql 建表时建立索引_mysql 分享建表和索引的几点规范

    一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. ...

最新文章

  1. 公司的费用报销系统【为什么不好用】?做业务系统软件的可以参考一下
  2. method initializationerror not found:JUnit4单元测试报错问题
  3. lisp精要(2)-基础(1)
  4. 最新版mac使用m1芯片,使用nvm安装低版本的node报错问题
  5. 你问我答,准备面试需要做哪些技术储备,面试官更加关心什么方面的技术点?...
  6. windows10在线升级失败后的一些补救措施
  7. 哈哈,终于想着注册博客了
  8. mysql约束教程,MySQL 约束
  9. mysql c api简单连接池
  10. ip fragmentation_为什么 TCP/IP 协议会拆分数据
  11. j2me怎么运行java_[转载]使用J2ME进行开发一个简单的KJava应用程序示例(2)
  12. NBGI 传说系列历史
  13. Arch LInux | 网络管理工具iproute2(网络接口、ip地址、路由表)
  14. 最新抓包工具BurpSuite2022.2.3 pj版
  15. 华为牛人的十年工作感悟
  16. Apple Watch简述
  17. 从底层操作系统到容器云平台:OpenCloudOS与秒云构筑完美兼容链
  18. 什么是android应用程序未安装,Android 解决应用程序未安装的三种方法
  19. 计算机网络技术教程第3版课后答案,《计算机网络技术基础教程》课后习题答案刘四清版3.doc...
  20. java技术栈是什么意思?一次认全9大主流技术栈!

热门文章

  1. 使用Python制作学习英语软件
  2. Google 昨晚发了一堆新硬件,却讲了一个老故事
  3. 阳谷计算机电缆,计算机与仪表电缆
  4. 如何将USB设备映射到VM虚拟机?帮你轻松解决技术难题!
  5. 快速修复装ubuntu9.10后,系统引导菜单中XP丢失的问题
  6. APP发布到应用市场(苹果APP STORE+安卓各大应用市场)
  7. 架设一个网站建设一个网站需要花费多少
  8. 中秋节活动策划PPT模板
  9. Python使用input输入字符串会报错
  10. ubuntu---mysql初步