caffe学习笔记--TransformationParameter

功能描述

对输入的图片进行转换处理

proto文件中描述

message TransformationParameter {
  optional float scale = 1 [default = 1];
  optional bool mirror = 2 [default = false];
  optional uint32 crop_size = 3 [default = 0];
  optional string mean_file = 4;
  repeated float mean_value = 5;
  optional bool force_color = 6 [default = false];
  optional bool force_gray = 7 [default = false];
}网络

描述:
scale:对输入图片的像素值作缩放的系数。例如输入图像的某一像素(RGB)值为(255,255,255),若是scale值为1/255,则缩放后变为(1,1,1)。
mirror:以图像中线为轴,进行左右反转。
crop_size:对输入图片进行随机切割。若是输入图片的大小比crop_size大,则从图片中随机剪裁crop_size大小的图片做为网络输入。
mean_file:保存要训练的图片集的均值的文件。若是是RGB就是训练集图片所有像素的R、G、B相加除训练集所有图片的像素数,结果为(Rm,Gm,Bm)。图片scale前先减该均值。
mean_vale:要训练的图片集均值。若是只配置一次,则该值被全部通道使用(各通道都减该值);若是针对每一个通道要配置不一样的均值,须要重复配置n次(n表示通道数)。mean_value和mean_file不能同时设定。
force_color:输入图片是否为3通道的彩色图片。
force_gray:输入图片是否为1通道的灰度图(force_gray和force_color不能同时设定为true)。
注:若是输入mean_value/mean_file,在进行scale前图片先进行减mean操做,而后进行scale。ui

源文件解析

src/caffe/data_transformer.cpp
include/caffe/data_transformer.hpporm

代码解析

class属性描述:
  TransformationParameter param_; //transform描述信息
  shared_ptr<Caffe::RNG> rng_; //crop使用的随数生成器
  Phase phase_; //训练or预测信息描述
  Blob<Dtype> data_mean_; //存储mean_file中读取的数据
  vector<Dtype> mean_values_; //存储meal_value值图片

class方法描述:
  Transform(...) //根据param_描述的transform信息对图像进行变换
  InferBlobShap(...)//根据输入的数据,推断图像转换后产生的blob形状
  InitRand(...) //初始化随机数生成器string

相关文章
相关标签/搜索