O InsightFace implementa com eficiência vários algoritmos de reconhecimento facial, detecção facial e alinhamento facial otimizados para treinamento e implantação.
insightface usa onnxruntime como back-end de inferência. Instalar manualmente onnxruntime-gpu
usando GPU ou instalar onnxruntime
usando CPU
Amostra
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=['CUDAExecutionProvider', 'CPUExecutionProvider'])
app.prepare(ctx_id=0, det_size=(640, 640))
img = ins_get_image('t1')
faces = app.get(img)
rimg = app.draw_on(img, faces)
cv2.imwrite("./t1_output.jpg", rimg)
O código detectará rostos da imagem t1.jpg e desenhará os resultados da detecção nela.
Modelo
O modelo padrão é buffalo_l. A coluna automática indica se o download deve ser feito automaticamente. Se você fizer o download manualmente, coloque-o em ~/.insightface/models/
Nome | Modelo de detecção | Modelo de reconhecimento | Alinhamento | Atributos | Tamanho do modelo | Link | Auto |
---|---|---|---|---|---|---|---|
antílopev2 | SCRFD-10GF | ResNet100@Glint360K | 2d106 e 3d68 | Gênero e Idade | 407 MB | link | N |
búfalo_l | SCRFD-10GF | ResNet50@WebFace600K | 2d106 e 3d68 | Gênero e Idade | 326 MB | link | S |
búfalo_m | SCRFD-2.5GF | ResNet50@WebFace600K | 2d106 e 3d68 | Gênero e Idade | 313 MB | link | N |
búfalo_s | SCRFD-500MF | MBF@WebFace600K | 2d106 e 3d68 | Gênero e Idade | 159MB | link | N |
buffalo_sc | SCRFD-500MF | MBF@WebFace600K | - | - | 16 MB | link | N |
Precisão de reconhecimento
Nome | MR-TODOS | África | pessoas brancas | sul da Asia | Ásia leste | LFW | PCP-FP | IdadeDB-30 | IJB-C(E4) |
---|---|---|---|---|---|---|---|---|---|
búfalo_l | 91,25 | 90,29 | 94,70 | 93,16 | 74,96 | 99,83 | 99,33 | 98,23 | 97,25 |
búfalo_s | 71,87 | 69,45 | 80,45 | 73,39 | 51.03 | 99,70 | 98,00 | 96,58 | 95.02 |
Modelo de detecção de chamadas
import cv2
import numpy as np
import insightface
from insightface.app import FaceAnalysis
from insightface.data import get_image as ins_get_image
# Method-1, use FaceAnalysis
app = FaceAnalysis(allowed_modules=['detection']) # enable detection model only
app.prepare(ctx_id=0, det_size=(640, 640))
# Method-2, load model directly
detector = insightface.model_zoo.get_model('your_detection_model.onnx')
detector.prepare(ctx_id=0, input_size=(640, 640))
modelo de reconhecimento de chamada
import cv2
import numpy as np
import insightface
from insightface.app import FaceAnalysis
from insightface.data import get_image as ins_get_image
handler = insightface.model_zoo.get_model('your_recognition_model.onnx')
handler.prepare(ctx_id=0)
referência:
GitHub - deepinsight/insightface: projeto de análise facial 2D e 3D de última geração
Reconhecimento facial e registro facial com base no Blog-CSDN Blog de insightface_Yeyu Piaoling 1
https://www.cnblogs.com/divenswu/p/16450243.html
https://github.com/deepinsight/insightface/tree/0cb03d391bb9335821448ce6e0519dbc870ec68d/examples