【基于开源insightface的人脸检测,人脸识别初步测试】

简介

InsightFace是一个基于深度学习的开源人脸识别项目,由蚂蚁金服的深度学习团队开发。该项目提供了人脸检测、人脸特征提取、人脸识别等功能,支持多种操作系统和深度学习框架。本文将详细介绍如何在Ubuntu系统上安装和实战InsightFace项目。

目前github有非常多的人脸识别开源项目,下面列出几个常用的开源项目:

  • deepface
  • compreface 是免费开源的人脸识别服务,无需事先掌握机器学习知识即可轻松集成到任何系统中。它提供了用于人脸识别、人脸验证、人脸检测、特征点检测、口罩检测、头部姿态检测、年龄和性别识别的REST API,并可通过Docker轻松部署。
  • face_recognition 使用全球最简单的人脸识别库,从Python或命令行识别和操作人脸。
    该库基于dlib构建,利用深度学习技术实现先进的面部识别功能。在Labeled Faces in the Wild基准测试中,模型的准确率高达99.38%。
    此外,还提供了一个简单的face_recognition命令行工具,可以从命令行对一整套图像进行人脸识别!
  • facenet 使用TensorFlow实现的人脸识别
  • facenet-pytorch 使用pytorch实现的人脸识别
  • insightface

安装步骤

在开始之前,请确保您的Ubuntu系统满足以下要求:

  • 操作系统:Ubuntu 16.04/18.04/20.04
  • Python版本:Python 3.5及以上
  • 深度学习框架:PyTorch或TensorFlow
  • 其他依赖库:OpenCV、NumPy、Pillow等

安装依赖库
首先,安装Python和pip:

sudo apt update
sudo apt install python3 python3-pip python3-dev

在这一定要安装python3-dev,否则在构建insightface工程时会报错:
下面报错解决方法

mesh_core_cython.cpp:4:10: fatal error: Python.h: 没有那个文件或目录#include "Python.h"^~~~~~~~~~
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

然后,安装必要的依赖库:

pip3 install torch torchvision torchaudio nvidia-cudnn-cu12 numpy pillow -i https://pypi.tuna.tsinghua.edu.cn/simple

最后,安装项目依赖库:

pip3 install opencv-python onnx tqdm scikit-image albumentations matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple 

下载InsightFace项目源码

# github clone
git clone https://github.com/deepinsight/insightface.git
# or gitee clone mirror
git clone https://gitee.com/mirrors/InsightFace.git
cd insightface
# 安装项目指定必要的依赖
pip3 install -r requirements.txt

工程文件介绍

下面是insightface工程主要目录,对于应用来讲主要使用标红框的目录。
在这里插入图片描述

构建python-package

python-package/cpp-package 主要是对insightface核心框架的应用封装,在开发应用时可以直接进行模块导入。
在执行测试demo前需要先执行该目录中的setup.py进行构建当前平台的部署。如果你是通过pip3直接安装的insightface模块’pip3 install insightface’,就无需执行。

执行如下:

cd python-package
python3 setup.py build_ext -i

在这里插入图片描述
如下图代表构建成功:

在这里插入图片描述

examples例程测试

因为我们是工程项目进行本地部署,所以我们需要将examples目录中的demo文件赋值到python-package目录中在执行,否则会提示无法正确导入insightface模块。
在首次执行demo的时候会自动进行模型下载,如果下载很慢的话也可以将模型先下载完后放到: ~/.insightface/models/目录下即可,默认下载的是buffalo_l模型

~/work/deep-study/insightface/insightface/python-package$ cp ../examples/demo_analysis.py ./
#执行demo
~/work/deep-study/insightface/insightface/python-package$ python3 demo_analysis.py
/home/djzheng/.local/lib/python3.8/site-packages/albumentations/__init__.py:13: UserWarning: A new version of Albumentations is available: 2.0.5 (you have 1.4.18). Upgrade us

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

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

相关文章

设计一个简单的权限管理系统

针对大规模服务器集群的权限管理系统设计,需结合 角色分层、最小权限原则 和 动态权限控制 来实现安全高效的权限管理。以下是分阶段设计方案: 一、核心设计思路 基于角色的访问控制(RBAC) 定义角色层级(如董事长 >…

使用 nano 文本编辑器修改 ~/.bashrc 文件与一些快捷键

目录 使用 nano 编辑器保存并关闭文件使用 sed 命令直接修改文件验证更改 如果你正在使用 nano 文本编辑器来修改 ~/.bashrc 文件,以下是保存并关闭文件的具体步骤: 使用 nano 编辑器保存并关闭文件 打开 ~/.bashrc 文件 在终端中运行以下命令&#xf…

spm12_fMRI 2*4混合方差分析 Flexible factorial 对比矩阵

实验设计:2*4被试内设计 分析模型:spm 二阶分析中的 Flexible factorial 问题:Flexible factorial交互作用对比矩阵如何编写? 老师:deepseek老师【大神们看看这个矩阵是否可以如下编写?】 以下是来自de…

用Python修改字体字形与提取矢量数据:fontTools实战指南

字体设计与分析是NLP和视觉领域的交叉应用,而**fontTools** 是一款强大的Python库,可以让我们直接操作字体文件的底层结构。本文将通过两个实用函数,展示如何修改特定字形和提取所有字形的矢量数据,帮助开发者快速上手字体编辑与分…

Windows 11 PowerShell重定向文本文件的编码问题

目录 问题的由来 编码导致的问题 解决办法 VSCode进行转换 记事本进行转换 直接指定输出的文本编码 总结 问题的由来 在我的嵌入式系统的课程中有一个裸机开发的实验,其中需要把图片等文件转换为C语言数组保存在程序中。课程中,我推荐了CodePlea的…

SQL开发的智能助手:通义灵码在IntelliJ IDEA中的应用

SQL 是一种至关重要的数据库操作语言,尽管其语法与通用编程语言有所不同,但因其在众多应用中的广泛使用,大多数程序员都具备一定的 SQL 编写能力。然而,当面对复杂的 SQL 语句或优化需求时,往往需要专业数据库开发工程…

算法——分支限界

学习目标: 掌握算法入门知识 学习内容: 分支限界的定义例题详细步骤讲解(找牛) 1. 分支限界的定义 分支限界法是一种用于求解 组合优化问题 的算法框架,通过 系统性地搜索解空间树,并结合 剪枝策略 来避…

对接日本金融市场数据全指南:K线、实时行情与IPO新股

一、日本金融市场特色与数据价值 日本作为全球第三大经济体,其金融市场具有以下显著特点: 成熟稳定:日经225指数包含日本顶级蓝筹股独特交易时段:上午9:00-11:30,下午12:30-15:00(JST)高流动性…

解决opencv中文路径问题

见cv_imread函数和cv_imwrite函数 import cv2 import os import matplotlib.pyplot as plt from paddleocr import PaddleOCR, draw_ocr import numpy as np import urllib.parse # Add this import statementfrom txt_get import ImageTextExtractor# 初始化OCR,…

Linux中的Vim与Nano编辑器命令详解

📢 友情提示: 本文由银河易创AI(https://ai.eaigx.com)平台gpt-4-turbo模型辅助创作完成,旨在提供灵感参考与技术分享,文中代码与命令建议通过官方渠道验证。 在Linux系统中,文本编辑是最常用的…

宝马集团加速 ERP 转型和上云之旅

宝马集团(BMW Group)作为全球领先的豪华汽车和摩托车制造商,致力于构建更加智能、绿色、人性化的出行体验。为了支持其全球化、数字化业务战略,宝马集团正在进行大规模的 IT 体系升级和 ERP 云转型。该项目以“RISE with SAP S/4H…

大数据学习(105)-Hbase

🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…

【数学建模】

全国大学生数学建模竞赛(CUMCM)历年试题速浏(查看超级方便)_全国大学生数学建模竞赛真题-CSDN博客 高教社杯全国大学生数学建模竞赛历年赛题(含解析、评阅) - 赛氪教育 年份 赛题 真题 问题类型 对应算法及模型 2023年 A题 定日镜场的优化设计 …

【Python语言基础】18、多态

文章目录 1. 多态1.1 什么是多态1.2 多态实现方式1.3 多态的好处1.4 多态的好处1.5 不同层面的理解1.6 多态的优缺点 1. 多态 在 Python 里,多态是一种非常有用的编程特性,它能让你以统一的方式处理不同类型的对象 1.1 什么是多态 多态就好比在生活中…

AI多模态论文解读:OmniCaptioner:多领域视觉描述生成框架(附脑图)

AIGCmagic社区知识星球是国内首个以AIGC全栈技术与商业变现为主线的学习交流平台,涉及AI绘画、AI视频、大模型、AI多模态、数字人以及全行业AIGC赋能等100应用方向。星球内部包含海量学习资源、专业问答、前沿资讯、内推招聘、AI课程、AIGC模型、AIGC数据集和源码等…

Spring IoC深度解析:掌控Bean存储艺术与分层架构的智慧​​

一、IoC的本质:从"造物主"到"使用者"的思维跃迁 在传统编程中,开发者像"造物主"一样亲手创建每个对象(new UserController()),并管理它们的依赖关系。这种方式导致代码高度耦合&#xf…

ubuntu22.04下安装mysql以及mysql-workbench

一、mysql安装以及配置 安装之前先查看是否已将安装mysql: rpm -qa | grep mysql (一)、在线安装 保证网络正常的情况下: 1、更新软件包: sudo apt update 2、安装mysql安装包 查看可以安装的安装包: sudo apt search mysql-server 安装指定安装包: sudo apt i…

第二届数字图像处理与计算机应用国际学术会议(DIPCA 2025)

重要信息 时间:2025年4月25-27日 地点:中国-西安 官网:www.icipca.net(了解详情) 部分展示 征稿主题 包括但不限于: 图像处理:模式识别、计算机视觉、低级视觉和图像处理、光学技术在图像中的…

【后端开发】Spring MVC阶段总结

文章目录 快捷引入依赖lombok的使用Lombok依赖Lombok使用Lombok注解 三层架构分层的目的MVC与分层的区别三层架构分层的好处 企业命名规范常见命名命名风格介绍大驼峰风格小驼峰风格包名 常见注解Cookie与Session 快捷引入依赖 这个方法可以快捷引入依赖,但是引入依…

FastAPI依赖注入系统及调试技巧

title: FastAPI依赖注入系统及调试技巧 date: 2025/04/11 15:00:50 updated: 2025/04/11 15:00:50 author: cmdragon excerpt: FastAPI的依赖注入系统采用树状结构管理依赖关系,自动解析并执行依赖项。复杂依赖关系可能导致循环依赖、性能问题、逻辑错误和调试困难。使用Fa…