caffe实战之classify.py解析

本文将对caffe/python下的classify.py代码以及相关的classifier.py和io.py进行解析。一、classify.py由最后的if __name__ == '__main__': main(sys.argv)代表该文件在命令行下运行,则运行main函数,参数存放在sys.argv中。在main函数定义中,分别判断并存入各类参数,分别如下:input_file
摘要由CSDN通过智能技术生成

本文将对caffe/python下的classify.py代码以及相关的classifier.py和io.py进行解析。

一、classify.py

    由最后的if__name__ == '__main__': main(sys.argv)代表该文件在命令行下运行,则运行main函数,参数存放在sys.argv中。在main函数定义中,分别判断并存入各类参数,分别如下:

    input_file:输入图像,参数为必需。

    output_file:输出文件,参数为必需。

    --model_def:网络测试结构文件,默认为imagenet的deploy.txt文件

    --pretrained_model:网络参数文件,默认为imagenet的bvlc_reference_caffenet.caffemodel文件。

    --gpu:是否用gpu计算,action=’store true’表示如果不指定,则默认false,用cpu,否则为true,用gpu。对于一张128*128的灰度图像,cpu前向计算大概20ms,而gpu仅5ms左右。

    --center_only:默认false,即对输入图像的裁剪图像做预测,然后将结果进行平均;指定为true,即只取输入图像的中间部分做一次预测。当然,如果指定输入图像和裁剪尺寸一致,那么取中间部分即为原图本身。

    --images_dim:输入图像尺寸,只考虑高和宽,默认256*256。

    --mean_file:均值文件。注意数据格式是npy文件,即存储为numpy.array格式,维度为(通道,高,宽)。如果仅有通过compute_mean.bin计算的均值文件,需要进行转化。默认均值文件为imagenet的ilsvrc_2012_mean.npy文件。

    --input_scale:图像预处理后的缩放系数,发生在减去均值后,默认为1。

    --raw_scale:图像预处理前的缩放系数,发生在减去均值前。由于读入的像素值在[0,1]区间,则默认为255.0,使像素在[0,255]区间。

    --channel_swap:通道调整,默认为’2,1,0’,因为caffe通过opencv读入的图片通道为BGR,因此必须将RGB-->BGR,即第0个通道和第2个通道交换。

    --ext:默认’jpg’,代表如果输入指定为目录,则仅读取后缀名为jpg的文件。

    下面几个参数是改进版classify.py中新加的。

    --labels_file:标签类别文件,默认为imagenet的synset_words.txt文件。

    --print_results:是否打印结果到屏幕,不指定则false,指定为true。

    --force_grayscale:是否指定输入为单通道图像,不指定则false,指定为true。

    通过args= parser.parse_args()更新,确认最终输入的参数。下面进行分类测试:

    # 列表生成式,通过逗号划分维度字符串,并强制转化为int类型。最后为列表。

image_dims = [int(s) for s inargs.images_dim.split(',')]

    # 如果指定了均值文件,则加载均值文件

    if args.mean_file:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值