手写签名验证

2024-05-15 20:41:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在进行一个签名验证项目。我使用了ICDAR 2011 Signature dataset。目前,我正在将原始图像的编码与伪造图像配对以获得一个训练样本(标记为0)。编码来自预先训练的VGG-16卷积神经网络(去除完全连接层)。然后,我修改了具有以下架构的全连接层:

  • 输入大小:50177
  • 第一隐藏层:1000单位(激活:“sigmoid”,丢失:0.5)
  • 第二隐藏层:500单位(激活:“sigmoid”,退出:0.2)
  • 输出层:1个单元(激活:“sigmoid”)

问题是,虽然训练集的准确性提高了验证精度的波动随机。它在测试集上表现很差

我尝试过不同的架构,但似乎都不管用 那么,有没有其他方法来准备数据,或者我应该继续尝试不同的架构??在


Tags: 项目标记图像编码架构单位神经网络卷积
1条回答
网友
1楼 · 发布于 2024-05-15 20:41:55

我不认为使用VGG16模型进行特征提取是正确的。您使用的模型是在相对复杂的RGB图像上训练的,然后尝试将其用于基本上由边缘(签名)的灰度图像组成的数据集。您使用的是最后一个嵌入层,它包含ImageNet数据集(VGG模型的原始训练数据集)最复杂、最专业的表示。在

你得到的特征没有真正的意义,这可能就是为什么当你试图微调模型时,训练精度和验证准确度根本没有关联。在

我的建议是要么使用VGG16的早期层进行特征提取(我是在第5-6层的某个地方进行讨论),要么更好的是,使用一个更简单的模型,该模型是在更相似的数据集上训练的,比如MNIST数据集。在

MNIST数据集由手写数字组成,因此它与您的任务更为相似,并且在其上训练的任何模型都可以作为更好的任务特征提取器。 您可以从MNIST上的以下基准测试结果列表中选择任何模型,并将其用作功能提取器:

MNIST Benchmark Results

相关问题 更多 >