Python:利用opencv和dlib批量检测人脸并裁剪和对齐
受益于其他博主,也记录一下平时遇到的一些困难和解决方法,希望能帮到他人,感谢博客和博主们!
本文主要是把现有的人脸数据集中的人脸部分给裁剪出来,只需要其中的人脸,再利用仿射矩阵把裁剪的人脸矫正,也就是对齐。以便后续进行自己的模型训练。
代码
```python
#-*-coding:gb2312-*-
import dlib
import face_recognition
import math
import numpy as np
import cv2
import sys
import os
from os.path import basename
def rect_to_bbox(rect):
"""获得人脸矩形的坐标信息"""
# print(rect)
x = rect[3]
y = rect[0]
w = rect[1] - x
h = rect[2] - y
return (x, y, w, h)
def face_alignment(faces):
# 预测关键点
#print("进行对齐-----")
predictor = dlib.shape_predictor("model/shape_predictor_68_face_landmarks.dat")
faces_aligned = []
for face in faces:
rec = dlib.rectangle(0, 0, face.shape[0], face.shape[1])
shape = pr