dlib与opencv
Dlib 是一个十分优秀好用的机器学习库,其源码均由 C++ 实现,并提供了 Python 接口,可广泛适用于很多场景.
这里主要记录 Dlib 中关于人脸检测和人脸关键点等技术的 python 应用.
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
安装
dlib
使用whl文件安装
我的python为Windows3.8.8版本所以whl版本为cp38
pip install dlib-19.19.-cp38-cp38-win_amd64.whl
opencv
同使用whl文件安装
pip install opencv_python-3.4.10.37-cp38-cp38-win_amd64.whl
Ⅰ-提取人脸特征
利用Dlib官方训练好的模型shape_predictor_68_face_landmarks.dat进行68点标定
此次使用鞠婧祎的微博视频
import numpy as np
import cv2
import dlib
import os
import sys
import random
# 存储位置
output_dir = './faces'
size = 64
if not os.path.exists(output_dir):
os.makedirs(output_dir)
# 改变图片的亮度与对比度
def relight(img, light=1, bias=0):
w = img.shape[1]
h = img.shape[0]
#image = []
for i in range(0,w):
for j in range(0,h):
for c in range(3):
tmp = int(img[j,i,c]*light + bias