人脸的检测与识别,这方面的文章,我们前期的文章也有相关的介绍,主要涉及到MediaPipe Face Detection,以及基于openCV的人脸检测与识别,并且我们基于CNN卷积神经网络训练了自己的人脸识别模型。本期我们分享一个可以用于2D与3D人脸检测与识别的python库InsightFace。
InsightFace是一个用于2D和3D人脸分析的集成Python库。 InsightFace 有效地实现了各种最先进的人脸识别、人脸检测和人脸对齐算法,并针对训练和部署进行了优化。它支持一系列主干架构,包括 IResNet、RetinaNet、MobileFaceNet、InceptionResNet_v2 和 DenseNet。 除了模型之外,它还可以使用 MS1M、VGG2 和 CASIA-WebFace 等面部数据集。
https://github.com/deepinsight/insightface PyTorch 1.6+ and/or MXNet=1.6-1.8, with Python 3.x.使用insightface前,我们需要安装相应的第三方库,insightface主要基于pytorch,在运行本期代码前,确保自己的电脑上安装了pytorch,且版本大于1.6。然后我们还需要安装insightface。
pip install insightface这里只需要使用pip进行安装即可,安装过程中,会自动安装相关的第三方库。
Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/ Collecting insightface Downloading insightface-0.7.3.tar.gz (439 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 439.5/439.5 kB 9.9 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... done Installing backend dependencies ... done Preparing metadata (pyproject.toml) ... done Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from insightface) (1.22.4) Collecting onnx (from insightface) Downloading onnx-1.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.6/14.6 MB 101.3 MB/s eta 0:00:00 Building wheels for collected packages: insightface Building wheel for insightface (pyproject.toml) ... done Created wheel for insightface: filename=insightface-0.7.3-cp310-cp310-linux_x86_64.whl size=1054571 sha256=36da8226c173934e3336d6477a2cdab835fb8a173e585bed38277691b2c9a4fb Stored in directory: /root/.cache/pip/wheels/e3/d0/80/e3773fb8b6d1cca87ea1d33d9b1f20a223a6493c896da249b5 Successfully built insightface Installing collected packages: onnx, insightface Successfully installed insightface-0.7.3 onnx-1.14.0安装完成后,会自动安装insightface与onnx,当然此模型还需要安装onnxruntime,若电脑中有GPU可以安装GPU版本,当然若只有CPU,可以直接安装onnxruntime。
pip install onnxruntime-gpu &39;&39;&39;成功安装完成所有库之后,我们就可以进行人脸的检测与识别任务了。
import cv2 import numpy as np import insightface from insightface.app import FaceAnalysis from insightface.data import get_image as ins_get_image app = FaceAnalysis(providers=[&39;, &39;]) app.prepare(ctx_id=0, det_size=(640, 640)) 39;t2&39;112233.jpg&34;./t3_output.jpg", rimg)首先我们需要从insightface.app中import FaceAnalysis人脸检测分析库,并基于FaceAnalysis搭建一个用于人脸检测的app,并配置此app检测的对象尺寸。
配置完成后,我们就可以读取一张需要进行人脸检测的图片,这里可以使用cv2.imread来读取一张图片,当然这里我们也可以读取一段视频来进行人脸的检测。
得到图片后,我们直接使用app.get函数来进行人脸的检测,最后使用app.draw_on函数,把检测结果显示在原图片上。从检测的结果来看,模型不仅进行了人脸检测,还对人脸的性别与年龄进行了预测,当然insightface不仅可以进行人脸检测,还可以进行人脸识别,只不过需要我们自己搭建自己的数据集,并进行人脸模型的训练,这个我们后期进行分享吧。
本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除
热门信息
阅读 ()
1 注册微信号怎么注册第二个阅读 ()
2 怎么把照片变成卡通头像阅读 ()
3 手机越充越少电怎么解决