人脸识别技术一直是计算机视觉领域的研究重点。随着深度学习方法的兴起,特别是卷积神经网络(CNN)的出现,人脸识别取得了巨大进展。CNN 能够自动从数据中学习特征,这使得它在人脸识别任务中表现优异。同时,大规模数据集的建立和GPU 计算能力的提高也为基于CNN 的人脸识别研究提供了支持。
卷积神经网络直接用原始图像的全部像素作为输入,但是内部为非全连接结构。因为图像数据在空间上是有组织结构的,每一个像素在空间上和周围的像素是有关系的,和相距很远的像素基本上是没什么联系的,每个神经元只需要接受局部的像素作为输入,再将局部信息汇总就能得到全局信息。权值共享和池化两个操作使网络模型的参数大幅的减少,提高了模型的训练效率。
数据集包含了18000多张图片,需要数据集的宝子们可以私信我哦
#定义网络模型,输出网络结构
Net( (conv1): Conv2d(1, 10, kernel_size=(5, 5), stride=(1, 1)) (conv2): Conv2d(10, 20, kernel_size=(5, 5), stride=(1, 1)) (pooling): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False) (fc1): Linear(in_features=3380, out_features=64, bias=True) (fc2): Linear(in_features=64, out_features=2, bias=True) )
# 模型训练
def train(epo