首页 > 解决方案 > 使用自动编码器从视频帧中检测异常,LSTM 如何在这里提供帮助。我需要做一个更好的模型

问题描述

我试图在视频中找到异常,我正在为正常帧训练一个自动编码器模型,所以当我将异常帧作为输入传递时,它应该会给我很高的重建成本并且高于阈值,我可以将其归类为异常。但我目前的准确率只有 63%,我该如何提高呢?这是我现在使用的卷积神经网络模型

model = Sequential()
model.add(Conv2D(128, (3,3), activation='relu', padding='same', input_shape=input_shape))
model.add(MaxPool2D(padding='same'))
model.add(Conv2D(64, (3,3), activation='relu', padding='same'))
model.add(MaxPool2D(padding='same'))
model.add(Conv2D(32, (3,3), activation='relu', padding='same'))
model.add(MaxPool2D(padding='same'))
model.add(Conv2D(16, (3,3), activation='relu', padding='same'))
model.add(MaxPool2D(padding='same'))
model.add(Conv2D(8, (3,3), activation='relu', padding='same'))
model.add(UpSampling2D())
model.add(Conv2D(16, (3,3), activation='relu', padding='same'))
model.add(UpSampling2D())
model.add(Conv2D(32, (3,3), activation='relu', padding='same'))
model.add(UpSampling2D())
model.add(Conv2D(64, (3,3), activation='relu', padding='same'))
model.add(UpSampling2D())
model.add(Conv2D(128, (3,3), activation='relu', padding='same'))
model.add(Conv2D(n_channels, (3,3), activation='sigmoid', padding='same'))

输入形状为 (128, 128, 1)。另外我正在使用将图像转换为 grascaleimg = cv2.imread(join(join(Config.DATASET_PATH, f), c), cv2.COLOR_BGR2GRAY)并且正在训练 30 个 epoch 是否有更好的模型?

标签: tensorflowneural-networkconv-neural-networklstmanomaly-detection

解决方案


推荐阅读