神经网络pytorch入门项目:使用基于VGG16的孪生神经网络进行签名鉴别
项目地址(欢迎大家来star一下!):GitHub - liaoyanqing666/siamese_neural_network_OfHSV: OfHSV project using VGG16 and siamese neural network. Very easy. 使用VGG16和孪生神经网络实现离线签名鉴别,极其简单
本项目非常简单,适合刚接触pytorch/神经网络/计算机视觉的同学进行学习复现。
本项目可以实现WI型OfHSV字迹鉴定
WI型即Writer Independent,对两张签名图片判断是否为同一个人的签名
OfHSV即Offline Handwriten Signature Vertification,只使用签名照片进行判别
本项目提供了一个简单的VGG16+孪生神经网络的代码,使用pytorch。
本项目还写了个网页,运行app.py后可以直接在网页上传两张签名照片,判断是否为同一个人的签名
项目包含了数据集(CEDAR.tar.001-CEDAR.tar.011),使用7zip解压即可。
模型介绍
VGG16的结构如下:

图 VGG16网络结构(不包含全连接部分)
以下是孪生神经网络的结构。

图 孪生神经网络
模型原理很简单,将两张签名图像分别输入同一个VGG16网络,得到两个特征向量(就是这个签名图像的各特征组合成的向量),之后将这两个特征向量相减,并求绝对值(可以理解成是计算两张图片在每个特征上的差别)。将这个绝对值向量送入全连接网络就可以进行分类了。
注意事项(快速上手)
1. 注意把学习率learining rate设小一点,训练时间可能需要很久。
2. CEDAR数据集中,真实图像和模仿图像的背景颜色有差别(一种纯白另一种有点泛黄),我的代码中没处理这里,推荐进行处理(在data.py中增加一两行代码)。处理思路包括阈值化或者二值化等。
3. 网页测试等训练出一个模型后运行app.py即可
4. 使用步骤:
- 下载CEDAR数据集
- 运行preprocess.py来标记将要使用的图像对
- 运行train.py来训练
- 自行测试
更多推荐
所有评论(0)