人脸检测+特征提取

  • 简介:基于insightface的人脸检测项目,实现输入图像提取人脸截图,同时返回返回特征信息
  • insightface项目地址: https://github.com/deepinsight/insightface

首先,安装insightface的包:pip install insightface

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()
app.prepare(ctx_id=0, det_size=(640, 640))

(下面直接给代码,关键函数的代码,我感觉都很好理解,没什么好解释的,不懂的话评论区问吧

检测人脸Box

import imutils

def face_save(image, box):
    """
    直接存储Arcface检测出的人脸box
    """
    global unknow_cnt
    (x, y, x2, y2) = box
    w = int(x2 - x)
    h = int(y2 - y)
    faceOrig = imutils.resize(image[y : y + h, x : x + w], width=256)
    # faceAligned = fa.align(image, gray, rect)
    cv2.imwrite(f"face_crop/test.png", faceOrig)

我中间注释的一行是想进行人脸对齐操作后再保存,但是后续项目不需要对齐(因为是检测嘛,又不是要做人脸数据集

人脸特征提取

def get_face_feat(face_path):
    img = cv2.imread(face_path)
    faces = app.get(img)
    feature = ()
    for face in faces:
        feature = np.array(face.embedding).reshape((1, -1))
        feature = preprocessing.normalize(feature)
        box = face.bbox.astype(np.int64)
        face_save(img, box)
        print(feature)
  • 写在最后(碎碎念)
    好久没有在CSDN上写文章了,由于实验室和C公司有合同不得以提前成为了一名准打工人,在公司跑的项目又不好在公共平台上交流,公司电脑也不能往外传东西orz
    就把之前写的一个项目拆吧拆吧写出来,除了人脸的检测后续还有车辆、车牌的检测,代码不会开源(虽然没签什么合同吧,但是也是交付了的)但会附上关键的代码
    写完算法,再写写使用mqtt和sanic(http)来传输信息的方法
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值