本文分享了我在silent speech 项目过程中实现的基于嘴唇图像数据集的autoencoder自编码器。输入输出都是64∗6464*6464∗64的嘴唇灰度图。自编码器由编码解码两个部分构成,同时实现了利用checkpoint在每个epoch运算时,自动保存测试集loss更小的模型。
数据集共包含84679张图片,其中前68728张图片作为训练集,后15951张图片作为测试集。
import tensorflow as tf
from tensorflow.keras import layers
from tensorflow import keras
import numpy as np
from tensorflow.keras.callbacks import ModelCheckpoint
from tensorflow.keras import optimizers
from matplotlib import pyplot as plt
from tensorflow.keras import Input
from tensorflow.keras.layers import Dense, Conv2D, MaxPooling2D, concatenate, Flatten, Conv2DTranspose, UpSampling2D
from tensorflow.keras.models import Model
def autoencoder_lips():
input_img = Input(shape=(64, 64, 1))
# encoding
conv1 = Conv2D(filters=16, kernel_size=(5, 5), activation=