readme

@@ -1,2 +1,93 @@

# Caffe-Data-Augmentation

Image data augmentation util for Caffe

# Introduction

Data augmentation is the best trick when you are training a deep network. the project implements several frequently-used methods for image task. Caffe's prefetching method makes my method costless with time. During training, u can try combinations of multiple diffrent processing , they do boost the performance. the most important things is that it is easy to set up and do any modification by yourself. # Realtime data augmentation utils

Now, the methods in the utils include :

1) Color

2) Contrast

3) Brightness

4) Rotation

# how to use

layer {

name: "data"

type: "ImageData"

top: "data"

top: "label"

include {

phase: TRAIN

}

transform_param {

mirror: true crop_size: 227 mean_file: "imagenet_mean.binaryproto"

color: true

contrast: true

brightness: true

rotation_angle_interval: 10

# check if the methods works, just turn on 2 switchs below#

# show_augment_info: true

# dir_to_save_augmented_imgs : "path"

}

image_data_param {

source: "/home/your/image/list.txt"

batch_size: 32

shuffle: true

new_height: 256

new_width: 256

}}

#how to setup

1 add two files

1) data_augment.hpp --> include/caffe/util/

2) data_augment.cpp --> src/caffe/util/

2 modify include/caffe/data_transformer.hpp

1) #include

...

+ #include "caffe/util/data_augment.hpp"

2) protected:

...

+ DataAugmenter<Dtype> aug_;

3 modify src/caffe/data_transformer.cpp

1) template<typename Dtype>

DataTransformer<Dtype>::DataTransformer(const TransformationParameter& param,Phase phase) : param_(param), phase_(phase)

+ ,aug_( param) {

2) template<typename Dtype>

void DataTransformer<Dtype>::Transform(const cv::Mat& cv_img,Blob<Dtype>* transformed_blob) {

...

+ if ( phase_ == TRAIN) {

+ aug_.Transform(cv_cropped_img);

+ }

CHECK(cv_cropped_img.data);

4 modify src/proto/caffe.proto

1) message TransformationParameter {

...

+ optional bool color = 9 [default = false];

+ optional bool contrast = 10 [default = false];

+ optional bool brightness = 11 [default = false];

+ optional int32 rotation_angle_interval = 12 [default = 0];

+ optional bool show_augment_info = 13 [default = false];

+ optional string dir_to_save_augmented_imgs = 15 [default = false];

5 compile

cd build

cmake ..

make -j8

#Acknowledgment

the implementation of rotation is based on @kevinlin311tw 's caffe-augmentation

#PS:

if u think its nice project, just Star it!


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值