Faces in the Wild
收藏资源简介:
我们使用了一个包含各种人类面部图像的数据集进行探索性研究,以比较和分类基于其特征的面部。我们使用卷积神经网络提取特征,并应用池化来减少维度。然后使用分类指标来评估我们模型的性能。
We conducted an exploratory study using a dataset comprising diverse human facial images, with the objective of comparing and classifying facial images based on their features. We utilized Convolutional Neural Networks (CNNs) to extract features, applied pooling to reduce dimensionality, and then employed classification metrics to evaluate the performance of our model.
人脸比较的卷积神经网络
简介
本项目旨在通过分析包含各种人脸图像的数据集,使用孪生和三元组神经网络进行比较,利用卷积神经网络(CNN)提取特征,并基于人脸相似度进行预测。
数据集概览
我们使用了人类行为识别数据集的一个子集,由于实际和计算限制。数据集包括:
- 训练集:1760个视频
- 验证集:440个视频
- 测试集:1000个视频
标签
- 相同(1)
- 不同(0)
特征提取
我们利用CNN块通过在Imagenet1k_v1上预训练的AlexNet、ResNet-50、ResNet-152和在VGGFace2上预训练的FaceNet(基于Inception模型)提取特征,由于其优越的准确性和硬件限制,无法重新训练大多数FaceNet。
网络架构
孪生网络
孪生网络包括:
- 卷积基:我们尝试了AlexNet、ResNet-50、ResNet-152和FaceNet进行特征提取。
- 全连接层(MLP):一个具有sigmoid激活函数的多层感知器(MLP),用于产生二进制预测(0或1)。
三元组网络
三元组网络包括:
- 卷积基:我们使用AlexNet进行特征提取。
- 三元组损失函数:我们使用三元组损失函数训练网络,优化以确保锚点和正例之间的距离小于锚点和负例之间的距离。
损失函数
对于孪生网络,我们使用二元交叉熵损失函数,优化以最小化相似对的距离并最大化不同对的距离。对于三元组网络,我们使用三元组损失函数。
实验结果
孪生网络
准确率
| 模型 | 准确率 |
|---|---|
| AlexNet | 0.60 |
| ResNet-50 | 0.58 |
| ResNet-152 | 0.69 |
| FaceNet | 0.97 |
F1分数
| 模型 | F1分数 |
|---|---|
| AlexNet | 0.60 |
| ResNet-50 | 0.58 |
| ResNet-152 | 0.69 |
| FaceNet | 0.99 |
三元组网络
准确率
| 模型 | 准确率 |
|---|---|
| TripletNN | 0.74 |
F1分数
| 模型 | F1分数 |
|---|---|
| TripletNN | 0.81 |
结论
- 最佳准确率:FaceNet表现最好,表明与数据的真实结构更好地对齐。
- 最佳F1分数:FaceNet在平衡精确度和召回率方面表现出色。
- 模型选择:每个模型都有其优势:
- AlexNet:更简单,训练速度更快,但准确率较低。
- ResNet-50/152:由于更深的架构,准确率更高。
- FaceNet:最适合人脸识别任务。
- TripletNN:在需要区分多个类别的情况下有效。
- 数据增强和数据集扩展:
- 鉴于本项目使用的数据集相对较小(2200对图像),实施数据增强技术以防止过拟合至关重要。通过创建图像的修改版本来增加数据集大小有助于模型更好地泛化。
未来工作
- 评估替代架构:
- 考虑在三元组神经网络中应用其他特征提取架构,这些架构有可能在不显著增加模型复杂性的情况下提高准确率。
- 迁移学习:
- 实施和实验迁移学习技术,特别是在与FaceNet具有相似准确率的预训练模型中,这些模型在面部识别任务中已被证明有效。这可能包括重新训练模型的最后几层,以更好地适应新数据集的特征。




