基于深度残差网络的图像识别案例
2017-06-10 10:31
585 查看
1、深度残差网络介绍
由何凯明发表的2016年CVPR最佳论文—图像识别中的深度残差学习(Deep Residual Learning for Image Recognition), 这个152层ResNet架构深的网络的错误率低得惊人,在imagenet上达到了3.6%,人类都大约在5%~10%的水平。在五个主要任务轨迹中都获得了第一名的成绩:
ImageNet分类任务:“超级深”的152层网络
ImageNet检测任务:超过第二名16%
ImageNet定位任务:超过第二名27%
COCO检测任务:超过第二名11%
COCO分割任务:超过第二名12%
2、基于tensorflow框架的模型搭建
数据集我用了我自己在公司实习的数据,所以不方便透露,也就是不同车型的图片用以识别图片。2、1导入相关库
import os import pandas as pd import numpy as np import keras.layers.core as core import keras.layers.convolutional as conv import keras.models as models import keras.utils.np_utils as kutils import sklearn.metrics as metrics import keras.preprocessing.image as image import keras.callbacks as callbacks import tensorflow as tf from keras.applications import ResNet50 from keras.layers import Input,Dense,Flatten from keras.models import Model from keras.callbacks import EarlyStopping
2、2模型搭建
模型使用的也就是大名鼎鼎的resnet,因为在keras有预训练好的模型构建,所以我的主模型也就是导入这部分模型,如下所示img_input = Input(shape=(img_rows,img_cols,img_dim)) basemodel = ResNet50(include_top=False,input_tensor=img_input,weights=None) #####权重已经下载在本地 basemodel.load_weights('e:/resnet50_weights_tf_dim_ordering_tf_kernels_notop.h5')
解释:
大家可以看到我在include_top设置了false,也就是说我们只用到resnet中间的模型,后续的全连接我们自己定义
全连接如下:
x = basemodel.output x = Flatten()(x) x = Dense(1024,activation='relu')(x) x = Dense(nb_class,activation='softmax')(x) model = Model(input=img_input,output=x)
3、模型训练
model.fit_generator( train_generator, samples_per_epoch=400, nb_epoch=100, validation_data=validation_generator, nb_val_samples=40, nb_worker=8, callbacks=[EarlyStopping(monitor='val_loss',patience=3)])
最后准确率达到了90啪以上
相关文章推荐
- 【深度学习】论文导读:图像识别中的深度残差网络(Deep Residual Learning for Image Recognition)
- Matlab图像识别/检索系列(6)-10行代码完成深度学习网络之基于CNN的图像分类
- 基于深度残差学习的图像识别 Deep Residual Learning for Image Recognition
- 基于深度残差学习的图像识别Deep Residual Learning for Image Recognition
- Matlab图像识别/检索系列(6)-10行代码完成深度学习网络之基于CNN的图像分类
- [译]基于深度残差学习的图像识别
- [译]基于深度残差学习的图像识别
- 深度学习(二十八)基于多尺度深度网络的单幅图像深度估计-NIPS 2014
- 深度学习(二十八)基于多尺度深度网络的单幅图像深度估计-NIPS 2014
- 基于Triplet loss函数训练人脸识别深度网络(Open Face)
- AOGNet:基于深度 AND-OR 语法网络的目标识别方法 | PaperDaily #28
- 基于Triplet loss 函数训练人脸识别深度网络
- [caffe]深度学习之MSRA图像分类模型Deep Residual Network(深度残差网络)解读
- 基于多尺度深度网络的单幅图像深度估计(转)
- 基于深度卷积特征的增量式图像识别
- 基于深度学习的图像语义分割技术概述之背景与深度网络架构
- 基于多尺度深度网络的单幅图像深度估计
- 基于CNN网络的汉字图像字体识别及其原理
- 基于深度学习的图像语义分割技术概述之背景与深度网络架构
- AOGNet:基于深度 AND-OR 语法网络的目标识别方法