深度学习卷积神经网络人脸识别案例代码
时间: 2023-08-19 19:05:10 浏览: 129
以下是一个使用卷积神经网络进行人脸识别的Python代码示例,使用了Keras框架和OpenCV库:
```python
import cv2
import numpy as np
import tensorflow as tf
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout
# 读取数据集
X_train = np.load('X_train.npy')
X_test = np.load('X_test.npy')
y_train = np.load('y_train.npy')
y_test = np.load('y_test.npy')
# 数据预处理
X_train = X_train.astype('float32') / 255.0
X_test = X_test.astype('float32') / 255.0
y_train = tf.keras.utils.to_categorical(y_train, num_classes=5)
y_test = tf.keras.utils.to_categorical(y_test, num_classes=5)
# 创建模型
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=X_train.shape[1:]))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(5, activation='softmax'))
# 编译模型
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# 训练模型
model.fit(X_train, y_train, batch_size=32, epochs=10, validation_data=(X_test, y_test))
# 保存模型
model.save('face_recognition_model.h5')
# 加载模型
model = tf.keras.models.load_model('face_recognition_model.h5')
# 测试模型
img = cv2.imread('test_image.jpg')
img = cv2.resize(img, (32, 32))
img = np.expand_dims(img, axis=0)
img = img.astype('float32') / 255.0
output = model.predict(img)
result = np.argmax(output)
print(result)
```
这段代码中,我们使用了一个包含3个卷积层和1个全连接层的卷积神经网络模型进行人脸识别,使用了一个包含5个人的数据集进行训练和测试。在测试阶段,我们读取一张测试图片,进行预处理后输入模型进行预测,输出预测结果。
阅读全文