当前位置:首页 > 编程教程 > Python技术文章 > Caffe均值文件mean.binaryproto转mean.npy的方法

Caffe均值文件mean.binaryproto转mean.npy的步骤详解

  • 发布时间:
  • 作者:码农之家
  • 点击:217

这篇文章主要知识点是关于mean.binaryproto、mean.npy、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python数据科学入门
  • 类型:Python数据处理大小:13.9 MB格式:PDF作者:Dmitry
立即下载

Caffe均值文件mean.binaryproto转mean.npy的方法

mean.binaryproto转mean.npy

使用Caffe的C++接口进行操作时,需要的图像均值文件是pb格式,例如常见的均值文件名为mean.binaryproto;但在使用python接口进行操作时,需要的图像均值文件是numpy格式,例如mean.npy。所以在跨语言进行操作时,需要将mean.binaryproto转换成mean.npy,转换代码如下:

import caffe
import numpy as np

MEAN_PROTO_PATH = 'mean.binaryproto'        # 待转换的pb格式图像均值文件路径
MEAN_NPY_PATH = 'mean.npy'             # 转换后的numpy格式图像均值文件路径

blob = caffe.proto.caffe_pb2.BlobProto()      # 创建protobuf blob
data = open(MEAN_PROTO_PATH, 'rb' ).read()     # 读入mean.binaryproto文件内容
blob.ParseFromString(data)             # 解析文件内容到blob

array = np.array(caffe.io.blobproto_to_array(blob))# 将blob中的均值转换成numpy格式,array的shape (mean_number,channel, hight, width)
mean_npy = array[0]                # 一个array中可以有多组均值存在,故需要通过下标选择其中一组均值
np.save(MEAN_NPY_PATH ,mean_npy)

已知图像均值,构造mean.npy

如果已知图像中每个通道的均值,例如3通道图像每个通道的均值分别为104,117,123,我们也可以通过其构造mean.npy。代码如下:

import numpy as np

MEAN_NPY_PATH = 'mean.npy'

mean = np.ones([3,256, 256], dtype=np.float)
mean[0,:,:] = 104
mean[1,:,:] = 117
mean[2,:,:] = 123

np.save(MEAN_NPY, mean)

载入mean.npy

上面我们用两种方式构造了均值文件mean.npy,在使用时载入mean.npy的代码如下:

import numpy as np

mean_npy = np.load(MEAN_NPY_PATH)
mean = mean_npy.mean(1).mean(1)

以上这篇Caffe均值文件mean.binaryproto转mean.npy的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

相关电子书
学习笔记
网友NO.988615

python+opencv+caffe+摄像头做目标检测的实例代码

首先之前已经成功的使用Python做图像的目标检测,这回因为项目最终是需要用摄像头的, 所以实现摄像头获取图像,并且用Python调用CAFFE接口来实现目标识别 首先是摄像头请选择支持Linux万能驱动兼容V4L2的摄像头, 因为之前用学ARM的时候使用的Smart210,我已经确认我的摄像头是支持的, 我把摄像头插上之後自然就在 /dev 目录下看到多了一个video0的文件, 这个就是摄像头的设备文件了,所以我就没有额外处理驱动的部分 一、检测环境 再来在开始前因为之前按着国嵌的指导手册安装的opencv3.2当时没有开启V4L2及GTK_2.x的支持, 所以後面遇到了一连串的问题,请大家如下面方法检测 $ python 1.检测Python的V4L2支持及摄像头驱动是否正常 进入Python之後如下命令 Python 2.7.12 (default, Nov 19 2016, 06:48:10)[GCC 5.4.0 20160609] on linux2Type "help", "copyright", "credits" or "license" for mo……

网友NO.899203

详细介绍高性能Java缓存库Caffeine

1、介绍 在本文中,我们来看看Caffeine — 一个高性能的 Java 缓存库。 缓存和 Map 之间的一个根本区别在于缓存可以回收存储的 item。 回收策略为在指定时间删除哪些对象。此策略直接影响缓存的命中率 — 缓存库的一个重要特征。 Caffeine 因使用 Window TinyLfu 回收策略,提供了一个近乎最佳的命中率。 2、依赖 我们需要在 pom.xml 中添加 caffeine 依赖: dependency groupIdcom.github.ben-manes.caffeine/groupId artifactIdcaffeine/artifactId version2.5.5/version/dependency 您可以在Maven Central 上找到最新版本的 caffeine。 3、填充缓存 让我们来了解一下 Caffeine 的三种缓存填充策略:手动、同步加载和异步加载。 首先,我们为要缓存中存储的值类型写一个类: class DataObject { private final String data; private static int objectCounter = 0; // standard constructors/getters public static DataObject get(String data) { objectCounter+……

网友NO.605383

python与caffe改变通道顺序的方法

把通道放在前面: image = cv2.imread(path + file)image = cv2.resize(image, (48, 48), interpolation=cv2.INTER_CUBIC) aaaa= np.transpose(image,(2, 0, 1)) print(aaaa) 图像原来shape:(48, 48, 3),改之后shape:(3,48,48) 注意:reshape不能解决通道转换问题 pycaffe做识别时通道转换问题: 要注意一点的就是:Caffe中彩色图像的通道是BGR格式,图像存储是【0,255】 1.caffe.io.load_image方式 view plai cop image = caffe.io.load_image(image_file) #加载图片 使用caffe.io.load_image()读进来的是RGB格式和0~1(float) 所以在进行识别之前要在transformer中设置transformer.set_raw_scale('data',255)(缩放至0~255) 以及transformer.set_channel_swap('data',(2,1,0)(将RGB变换到BGR) # python中将图片存储为[0, 1],而caffe中将图片存储为[0, 255],所以需要一个转换 transformer.set_raw_scale('data', 255) # 缩放到[0,255]之间 transformer.set_channel_swap('data', (2,1,0)) #交换通道,将图片……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com