face_recognation的确简单易用,可是实现原理究竟是什么?还需要追本溯源,看看作者怎么说的:
整个模块工作可以分为四个步骤:
一、找出所有人脸
首先对图像做简化处理:
1、将图像转变为黑白图像。
2、然后将人脸图像转变为如下梯度直方图(HOG)。
为什么要转换为梯度直方图呢?
因为生成直方图的过程其实关注的是局部细节的相对特征,两张人脸图像在不同的光照亮度和色彩模式下肯定有显著的差异,但是局部细节的相对特征基本是一样的,这就是为何要做这样的转换。
另外还有一个原因是转换之后,图像就会变得简单,也就更容易从中挑选出所有的人脸图像。