目的:帮助那些学习过机器学习、深度学习算法、了解keras框架以及熟悉python用 法却对实际应用无从下手的同学,从简单交通标志识别入手,彻底掌握深度学习算法在图像识别领域的应用。
项目完整地址(https://github.com/spytensor/ImageClassification)
注:目前已经支持的网络结构有 :
LeNet
AlexNet
VGGNet
ZFNet
GoogLeNet
ResNet_18/34/50/101/152
DenseNet_161
简书地址:https://www.jianshu.com/p/73e32a55adfe
1.项目准备工作
数据集下载地址交通标志数据集:
1.1 完整目录
创建一下三个文件夹,其中data用来存放待训练的数据以及测试数据,log用来存放keras训练好的模型,便于后续预测图像类别时对训练好的模型进行加载,src用来存放所有的python文件。
1.2 data文件夹
结构如下,其中待识别的图像直接放到test文件夹下面
├─data
│ ├─test
│ └─train
1.3 train文件夹
结构如下,每个文件夹的名称代表一个类别(在代码中会有所体现),每个文件夹存放了一定数量的对应类别的图像
└─train
├─00000
├─00001
├─00002
├─00003
├─00004
├─00005
├─00006
├─00007
├─00008
└─00009
2.2 创建src/utils.py 包括数据读取和不同网络模型的加载
2.3 创建src/train.py,进行训练参数设置的主文件
2.4 创建src/models/AlexNet.py,搭建AlexNet网络结构,其他网络结构不再一一列出
注1:之所以数据的存储文件格式要按照前文的要求,是因为在代码utils.py中的load_data()函数在读取文件是,按照层级结构,根据os.listdir()寻找文件夹和文件。
ps:当你很熟练的时候,当然不用根据代码去调整文件夹了,而是根据数据去调整代码~
3.训练日志
选择的是resnet18,后续还有提升,没有继续训练,有兴趣的可以尝试不同的网络结构~
4.TODO
希望能够添加更多的网络模型进去,目前该项目只支持图像识别任务,后续做一个检测类的项目。
5.项目完整地址
Github:ImageClassification
6.参考文献
[1] Lécun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.
[2] Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]// International Conference on Neural Information Processing Systems. Curran Associates Inc. 2012:1097-1105.
[3] Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[J]. Computer Science, 2014.
[4] Zeiler M D, Fergus R. Visualizing and Understanding Convolutional Networks[J]. 2014, 8689:818-833.
[5] He K, Zhang X, Ren S, et al. Deep Residual Learning for Image Recognition[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2016:770-778.
[6] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]// IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2015:1-9.
[7] Huang G, Liu Z, Laurens V D M, et al. Densely Connected Convolutional Networks[J]. 2016:2261-2269.
[8] Introduce the cnns from LeNet to DensNet
[9] DenseNet-Keras
[10] keras-resnet
领取专属 10元无门槛券
私享最新 技术干货