【深度学习】Python快捷调用InsightFace人脸检测,纯ONNX推理

pypi资料:

https://pypi.org/project/insightface/

模型选择:

https://github.com/deepinsight/insightface/tree/master/python-package#model-zoo

onnxruntime的GPU对应CUDA :

https://onnxruntime.ai/docs/reference/compatibility

https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html

我的环境 CUDA 11.6 python3.8安装:

pip install insightface onnx==1.13 onnxruntime-gpu==1.14 -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
pip install opencv-python

GPU执行代码:


import cv2
import numpy as np
from insightface.app import FaceAnalysisapp = FaceAnalysis(name='buffalo_sc',providers=['CUDAExecutionProvider'])  # 使用的检测模型名为buffalo_sc
app.prepare(ctx_id=0, det_size=(640, 640))  # ctx_id小于0表示用cpu预测,det_size表示resize后的图片分辨率img = cv2.imread("sunyanzi.png")  # 读取图片
faces = app.get(img)  # 得到人脸信息
# print(faces)
for facedata in faces:print(facedata["bbox"].shape)  # 人脸框坐标print(facedata["kps"].shape)  # 人脸关键点坐标print(facedata["det_score"])  # 人脸检测分数print(facedata["embedding"].shape)  # 人脸特征向量

CPU执行代码:

import cv2
import numpy as np
from insightface.app import FaceAnalysisapp = FaceAnalysis(name='buffalo_sc',providers=['CPUExecutionProvider'])  # 使用的检测模型名为buffalo_sc
app.prepare(ctx_id=-1, det_size=(640, 640))  # ctx_id小于0表示用cpu预测,det_size表示resize后的图片分辨率img = cv2.imread("sunyanzi.png")  # 读取图片
faces = app.get(img)  # 得到人脸信息
# print(faces)
for facedata in faces:print(facedata["bbox"].shape)  # 人脸框坐标print(facedata["kps"].shape)  # 人脸关键点坐标print(facedata["det_score"])  # 人脸检测分数print(facedata["embedding"].shape)  # 人脸特征向量

只想要人脸检测推理咋整:

https://github.com/xddun/insightface_onnx_infer

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

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

相关文章

1999-2021年地级市城镇居民人均消费性支出数据

1999-2021年地级市城镇居民人均消费性支出数据 1、时间:1999-2021年 2、指标:城镇居民人均消费性支出 3、范围:290个地级市 4、来源:城市年鉴、地级市统计公报 5、指标解释: 城镇居民人均消费性支出:指…

kubesphere安装依赖文件

yum install socat -y yum install conntrack -y

GAMES101-Homework2

目录 普通作业:提高作业:参考博客博客一博客二博客三 附代码框架的个人一些注释和理解:rasterizer.cppTriangle.cpp 普通作业: // 判断点是否在三角形内的辅助函数 static bool insideTriangle(float x, float y, const Vector3f…

再添千万级罚单,某银行年内罚款过亿!金融行业合规问题亟待解决

11月17日晚间,国家金融监管总局上海监管局披露行政处罚信息显示,某银行因32项违法违规事实收到两张690万元的大额罚单,合计罚款金额达1380万元。但这并不是银行该今年收到的第一张大额罚单。今年4月28日,该行因在结售汇、外币理财…

k8s-pod生命周期 4

容器环境初始化 pod 由pod 镜像来提供,在pod 生命周期里容器主要分为两种:初始化容器和主容器 初始化容器一定要成功运行并退出,当初始化容器运行退出完了之后主容器开始和运行 主容器开始运行的时候,有两个探针:存…

什么是arguments对象?

arguments 对象是 JavaScript 中的一个特殊对象,它包含了函数被调用时传入的所有参数。arguments 对象是一个类数组对象,它有一个 length 属性和按数字索引的元素。 每个函数在执行时都会自动创建一个 arguments 对象。我们可以通过arguments去访问参数…

网络图简单计算规则

单代号进度网络图(节点法) 概念 计算规则 (顺时针计算法) (TF取之差) (T:持续时间) ES → EF (ES取大EF加T) ↑ T ↑ (TF:总时差&…

NOIP2003提高组第二轮T3:加分二叉树

题目链接 [NOIP2003 提高组] 加分二叉树 题目描述 设一个 n n n 个节点的二叉树 tree \text{tree} tree 的中序遍历为 ( 1 , 2 , 3 , … , n ) (1,2,3,\ldots,n) (1,2,3,…,n),其中数字 1 , 2 , 3 , … , n 1,2,3,\ldots,n 1,2,3,…,n 为节点编号。每个节点都…

【视觉SLAM十四讲学习笔记】第三讲——Eigen库

专栏系列文章如下: 【视觉SLAM十四讲学习笔记】第一讲——SLAM介绍 【视觉SLAM十四讲学习笔记】第二讲——初识SLAM 【视觉SLAM十四讲学习笔记】第三讲——旋转矩阵 本章将介绍视觉SLAM的基本问题之一:如何描述刚体在三维空间中的运动? Eigen…

网工内推 | Base北京,国企网工运维,最高30k*14薪,IE认证优先

01 万方数据股份有限公司 招聘岗位:网络工程师 职责描述: 1.负责完成基础网络组网工作; 2.负责网络对象的访问控制及安全策略,配置VLan,黑白名单、地址转换、故障排查及网络安全监控工作; 3.负责对操作系…

Vue框架学习笔记——Vue实例中el和data的两种写法

文章目录 前文提要Vue实例的el第一种写法第二种写法小结 Vue实例中data第一种写法&#xff0c;对象式效果图片第二种写法&#xff0c;函数式效果图片小结 前文提要 本文仅做自己的学习记录&#xff0c;如有错误&#xff0c;请多谅解 Vue实例的el 第一种写法 <body><…

Python图片文件和base64编码互转

图片和base64编码互转 import base64 import cv2# 将图片base64字符串生成图片文件. def base64_to_img(base64_code,save_img_path):"""根据base64生成图片.:param base64_code: 图片的base64文件:param save_img_path: 生成的图片路径:returns: None"&q…

分布式锁之基于mysql实现分布式锁(四)

不管是jvm锁还是mysql锁&#xff0c;为了保证线程的并发安全&#xff0c;都提供了悲观独占排他锁。所以独占排他也是分布式锁的基本要求。 可以利用唯一键索引不能重复插入的特点实现。设计表如下&#xff1a; CREATE TABLE tb_lock (id bigint(20) NOT NULL AUTO_INCREMENT,…

(二)C语言之变量与算数运算表达式概述

C语言之变量与算数运算表达式概述 一、华氏温度与摄氏温度对照二、代码概述三、练习 一、华氏温度与摄氏温度对照 #include <stdio.h>/*当华氏温度为 0,20,40,...300时&#xff0c;打印出华氏温度与摄氏温度对照表华氏温度与摄氏温度 C(5/9)(̧F-32) 其中C表示摄氏温度&…

顺序栈和链栈

#include<iostream> using namespace std; #define MAXSIZE 100 typedef int SElemType; typedef struct { SElemType* base; SElemType* top; int stacksize; }SqStack;//顺序栈 //构造一个空栈 int InitStack(SqStack& s) { s.base new SElemType…

Django之中间件与CSRF_TOKEN

文章目录 一、什么是中间件二、中间件有什么用三、Django自定义中间件中间件中主要方法及作用创建自定义中间件的步骤&#xff1a;process_request与process_response方法process_view方法process_exceptionprocess_template_response&#xff08;不常用&#xff09; 四、CSRF_…

mysql latin-1报错解决

conn pymysql.connect(hostmeta_conf[host], usermeta_conf[user], passwordmeta_conf[password], portmeta_conf[port], charsetutf8) 光把表声明 ENGINEINNODB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_bin ROW_FORMATDYNAMIC 并不能解决这个报错,需要在创建mysql连接时候…

面试:RabbitMQ相关问题

文章目录 简单介绍RabbitMQRabbitMQ架构什么是 RabbitMQ&#xff1f;有什么显著的特点&#xff1f;RabbitMQ 有那些基本概念&#xff1f;RabbitMQ routing 路由模式消息怎么路由&#xff1f;RabbitMQ publish/subscribe 发布订阅(共享资源)能够在地理上分开的不同数据中心使用 …

vue2指令的使用和自定义指令

前言 个人认为vue的指令,对比react来说,给开发者节省了很大的学习成本。比如在react中,你想渲染一个列表,需要用Array.map的方法return<div>,而在vue中,一个简单的v-for就解决了问题。 在学习成本和入手体验上,vue的作者确实后来者居上,能让人更快的使用vue开发。不过也…

无边界电视点播TVbox壳+源

TBBox可以是个盒子也可以是软件 视频播放的困局新的改变TVBox apk更成熟的熊猫宝盒_3.10还有这个没测试恒星TV 写在最后 视频播放的困局 现在电视上几大平台看剧集都要充会员&#xff0c;而电脑上网页端有很多可以看的网页&#xff0c;只有 随便一搜就测出来&#xff0c;只是经…