数据层名: AnnotatedData
1、transform_param
作用:数据变换
transform_param {
# 镜像,左右翻转
mirror: true
# 三个通道均值
mean_value: 104.0
mean_value: 117.0
mean_value: 123.0
#将输入图像resize到特定尺寸,如果设置多个,可以变成多尺度训练
resize_param {
prob: 1.0
resize_mode: WARP
height: 320
width: 320
interp_mode: LINEAR
interp_mode: AREA
interp_mode: LANCZOS4
}
# batch sampler 的额外限制条件(坐标表示形式)
emit_constraint {
emit_type: CENTER
}
#数据像素变换,数据增强
distort_param {
#随机改变图像亮度(Random Brightness)
brightness_prob: 0.5
brightness_delta: 32.0
#随机改变对比度、色度、饱和度(Random Contrast, Hue, Saturation)
contrast_prob: 0.5
contrast_lower: 0.5
contrast_upper: 1.5
hue_prob: 0.5
hue_delta: 18.0
saturation_prob: 0.5
saturation_lower: 0.5
saturation_upper: 1.5
#随机改变颜色通道
random_order_prob: 0.0
}
#对原图周围用均值扩充,变成一个大图片,后面缩放到特定尺寸之后,原图目标就会缩小,目的是使网络适应小尺寸的目标,增强小目标的检测效果
expand_param {
prob: 0.5 #expand发生的概率
max_expand_ratio: 2.0 #最大的扩充倍数
}
}
2、data_param
作用:指定训练数据的路径,批大小,和数据格式
data_param {
source: "E:/dataset/train_lmdb/" #训练数据路径
batch_size: 16 #训练批大小
backend: LMDB #训练数据格式(LMDB,LEVELDB)
}
3、annotated_data_param
作用:随机采样
annotated_data_param {
batch_sampler {
sampler {
##随机选择的高范围(占原图高的比例)
min_scale: 0.3
max_scale: 1.0
#随机选择的宽高比
min_aspect_ratio: 0.5
max_aspect_ratio: 2.0
}
#采样的patch必须满足的约束条件
sample_constraint {
#min_jaccard_overlap: 0.3 #裁剪出的patch和目标框的IOU(用的最多)
#min_sample_coverage:0.1 #表示裁剪出的patch中,目标占了多少百分比
min_object_coverage: 1.0 #裁剪出的patch中的目标,占完整目标的百分比(YuDetectNet中使用)
}
max_sample: 1 #一个采样器要选择的符合条件的patch数量
max_trials: 50 #一个采样器的最大尝试次数,如果超过这个次数就不再查找
}
...
...
label_map_file: "./labelmap_voc.prototxt" #类别标签文件
}