簡介
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