【caffe 深度学习】6.GoogleNet实现图像识别

1.到caffe的github上去下载训练好的GoogleNet模型

https://github.com/BVLC/caffe

训练好的模型意思的一些参数比如权值和观测值都已经被训练好,都存在这个模型中。



注:deploy文件是模型结构的描述文件。我们用之前第四篇博客模型可视化的方法用draw_net.py将该模型画出来:


    网络比较长,层数多,宽度宽,我这里只上传一个小截图,就不把全部图片上传过来,大家有兴趣可以自己看看网络结构图。


 图中Inception结构中,不同大小的卷积核意味着不同大小的感受野,最后的合并意味着不同尺度特征的融合。inception是googleNet网络很有特点的结构。采用1,3,5为卷积核的大小,是因为使用步长为1,pad=0,1,2的方式采样之后得到的特征平面大小相同。因为数据的合并要求图片的大小和纬度必须一样。

整个网络有两千多行代码,我这里把部分需要注释的代码上传:

name: "GoogleNet"
layer {
  name: "data"
  type: "Input"
  top: "data"
  input_param { shape: { dim: 10 dim: 3 dim: 224 dim: 224 } }			#每一次输入10张图片,3维数据,图片像素为224*224
}
layer {
  name: "conv1/7x7_s2"
  type: "Convolution"
  bottom: "data"
  top: "conv1/7x7_s2"
  param {
    lr_mult: 1
    decay_mult: 1									#用来调节权值衰减参数
  }
  param {
    lr_mult: 2
    decay_mult: 0
  }
  convolution_param {
    num_output: 64
    pad: 3										#pad就是给图像补零,pad:3就是补3圈。
    kernel_size: 7
    stride: 2										#步长
    weight_filler {
      type: "xavier"
      std: 0.1										#标准差
    }
    bias_filler {
      type: "constant"
      value: 0.2
    }
  }
}

2.准备要识别的图片



扫描二维码关注公众号,回复: 53776 查看本文章

3.准备synset_words.txt文件

    可以在网上下载。synset_word.txt是标签文件,里面有1000行代表有1000种物体、1000种分类。使用googlenet时会返回一个编号,我们可以从此文件夹中找到编号对应的物体。

    

    


4.使用python接口调用实现图像识别,程序下载地址:

python接口调用实现图像识别


对上面的图片识别后,最后结果如下:


猜你喜欢

转载自blog.csdn.net/qq_40314507/article/details/80041573