OpenCV 中的人脸检测、识别与图像特征处理
1. 人脸检测与识别算法概述
在人脸检测与识别领域,有多种算法可供选择,各有其特点和适用场景。
- Fisherfaces :源于 PCA 并进行了概念演进,应用了更复杂的逻辑。虽然计算量较大,但通常比 Eigenfaces 能产生更准确的结果。
- LBPH :大致将检测到的人脸划分为小单元,并将每个单元与模型中的对应单元进行比较,为每个区域生成匹配值的直方图。这种灵活的方法使得 LBPH 是唯一允许模型样本人脸和检测到的人脸具有不同形状和大小的人脸识别算法。
2. 训练数据准备
为了让人脸识别算法能够识别我们的人脸,需要将样本图片加载到算法中。所有的人脸识别算法在其 train() 方法中都需要两个参数:图像数组和标签数组。标签代表某个人脸的 ID,这样在进行人脸识别时,我们不仅能知道人脸被识别出来,还能知道是数据库中的哪个人。
具体操作步骤如下:
1. 创建一个逗号分隔值(CSV)文件,该文件应包含样本图片的路径,后面跟着该人的 ID。例如:
jm/1.pgm;0
jm/2.pgm;0
jm/3.pgm;0
...
jm/20.pgm;0
其中, jm/ 表示子文件夹,末尾的 0 是我的人脸 ID。
3. 数据加载与读取函数
接下来,需要将图像数组和 CSV 文件加载到人脸识别算法中进行训练。为此
超级会员免费看
订阅专栏 解锁全文
1568

被折叠的 条评论
为什么被折叠?



