eric612 / Caffe-YOLOv3-Windows

A windows caffe implementation of YOLO detection network
Other
211 stars 128 forks source link

[Training issue]为什么在某些分辨率下,算法会对一类目标漏检? #26

Open yiran-THU opened 4 years ago

yiran-THU commented 4 years ago

up主你好,感谢你的工作。

1.我最近在用一些自己的数据训练Yolov3_lite,然后进行测试。因为数据图像的尺度(1280*1280)固定,目标尺寸大小固定,所以我重新更改了网络结构,并用

It is very strange , can you try this way ?

的办法重新计算了anchor boxes,但是检测结果不理想,在测试集中该类目标一个都没检测出来!其他目标检测结果都正常;

2.此外,我还试过将图像分辨率(1024*1024)改小,并重新计算anchor,结果在该分辨率下,目标能检测出来,但是置信度较低。

3.若是将图像分辨率改为832*832,则该类目标检测结果正常。

My train prototxt name: "MobileNet-YOLO" layer { name: "data" type: "AnnotatedData" top: "data" top: "label" include { phase: TRAIN } transform_param { scale: 0.007843 mirror: true mean_value: 127.5 mean_value: 127.5 mean_value: 127.5 resize_param { prob: 1.0 resize_mode: WARP height: 1280 width: 1280 interp_mode: LINEAR interp_mode: AREA interp_mode: LANCZOS4 } emit_constraint { emit_type: CENTER } distort_param { brightness_prob: 0.5 brightness_delta: 32.0 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 max_expand_ratio: 3.0 } } data_param { source: "examples/VOC0712/VOC0712_trainval_lmdb" batch_size: 1 backend: LMDB } annotated_data_param { yolo_data_type : 1 yolo_data_jitter : 0.3 label_map_file: "data/VOC0712/labelmap_voc.prototxt" } } layer { name: "conv0" type: "Convolution" bottom: "data" top: "conv0" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 stride: 2 weight_filler { type: "msra" } } } layer { name: "conv0/bn" type: "BatchNorm" bottom: "conv0" top: "conv0" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv0/scale" type: "Scale" bottom: "conv0" top: "conv0" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv0/relu" type: "ReLU" bottom: "conv0" top: "conv0" } layer { name: "conv1/dw" type: "DepthwiseConvolution" bottom: "conv0" top: "conv1/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 32 bias_term: false pad: 1 kernel_size: 3 group: 32 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv1/dw/bn" type: "BatchNorm" bottom: "conv1/dw" top: "conv1/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv1/dw/scale" type: "Scale" bottom: "conv1/dw" top: "conv1/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv1/dw/relu" type: "ReLU" bottom: "conv1/dw" top: "conv1/dw" } layer { name: "conv1" type: "Convolution" bottom: "conv1/dw" top: "conv1" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 64 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv1/bn" type: "BatchNorm" bottom: "conv1" top: "conv1" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv1/scale" type: "Scale" bottom: "conv1" top: "conv1" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv1/relu" type: "ReLU" bottom: "conv1" top: "conv1" } layer { name: "conv2/dw" type: "DepthwiseConvolution" bottom: "conv1" top: "conv2/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 64 bias_term: false pad: 1 kernel_size: 3 stride: 2 group: 64 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv2/dw/bn" type: "BatchNorm" bottom: "conv2/dw" top: "conv2/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv2/dw/scale" type: "Scale" bottom: "conv2/dw" top: "conv2/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv2/dw/relu" type: "ReLU" bottom: "conv2/dw" top: "conv2/dw" } layer { name: "conv2" type: "Convolution" bottom: "conv2/dw" top: "conv2" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 128 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv2/bn" type: "BatchNorm" bottom: "conv2" top: "conv2" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv2/scale" type: "Scale" bottom: "conv2" top: "conv2" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv2/relu" type: "ReLU" bottom: "conv2" top: "conv2" } layer { name: "conv3/dw" type: "DepthwiseConvolution" bottom: "conv2" top: "conv3/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 group: 128 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv3/dw/bn" type: "BatchNorm" bottom: "conv3/dw" top: "conv3/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv3/dw/scale" type: "Scale" bottom: "conv3/dw" top: "conv3/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv3/dw/relu" type: "ReLU" bottom: "conv3/dw" top: "conv3/dw" } layer { name: "conv3" type: "Convolution" bottom: "conv3/dw" top: "conv3" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 128 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv3/bn" type: "BatchNorm" bottom: "conv3" top: "conv3" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv3/scale" type: "Scale" bottom: "conv3" top: "conv3" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv3/relu" type: "ReLU" bottom: "conv3" top: "conv3" } layer { name: "conv4/dw" type: "DepthwiseConvolution" bottom: "conv3" top: "conv4/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 128 bias_term: false pad: 1 kernel_size: 3 stride: 2 group: 128 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv4/dw/bn" type: "BatchNorm" bottom: "conv4/dw" top: "conv4/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv4/dw/scale" type: "Scale" bottom: "conv4/dw" top: "conv4/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv4/dw/relu" type: "ReLU" bottom: "conv4/dw" top: "conv4/dw" } layer { name: "conv4" type: "Convolution" bottom: "conv4/dw" top: "conv4" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 256 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv4/bn" type: "BatchNorm" bottom: "conv4" top: "conv4" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv4/scale" type: "Scale" bottom: "conv4" top: "conv4" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv4/relu" type: "ReLU" bottom: "conv4" top: "conv4" } layer { name: "conv5/dw" type: "DepthwiseConvolution" bottom: "conv4" top: "conv5/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 256 bias_term: false pad: 1 kernel_size: 3 group: 256 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv5/dw/bn" type: "BatchNorm" bottom: "conv5/dw" top: "conv5/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv5/dw/scale" type: "Scale" bottom: "conv5/dw" top: "conv5/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv5/dw/relu" type: "ReLU" bottom: "conv5/dw" top: "conv5/dw" } layer { name: "conv5" type: "Convolution" bottom: "conv5/dw" top: "conv5" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 256 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv5/bn" type: "BatchNorm" bottom: "conv5" top: "conv5" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv5/scale" type: "Scale" bottom: "conv5" top: "conv5" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv5/relu" type: "ReLU" bottom: "conv5" top: "conv5" } layer { name: "conv6/dw" type: "DepthwiseConvolution" bottom: "conv5" top: "conv6/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 256 bias_term: false pad: 1 kernel_size: 3 stride: 2 group: 256 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv6/dw/bn" type: "BatchNorm" bottom: "conv6/dw" top: "conv6/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv6/dw/scale" type: "Scale" bottom: "conv6/dw" top: "conv6/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv6/dw/relu" type: "ReLU" bottom: "conv6/dw" top: "conv6/dw" } layer { name: "conv6" type: "Convolution" bottom: "conv6/dw" top: "conv6" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 512 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv6/bn" type: "BatchNorm" bottom: "conv6" top: "conv6" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv6/scale" type: "Scale" bottom: "conv6" top: "conv6" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv6/relu" type: "ReLU" bottom: "conv6" top: "conv6" } layer { name: "conv7/dw" type: "DepthwiseConvolution" bottom: "conv6" top: "conv7/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 512 bias_term: false pad: 1 kernel_size: 3 group: 512 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv7/dw/bn" type: "BatchNorm" bottom: "conv7/dw" top: "conv7/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv7/dw/scale" type: "Scale" bottom: "conv7/dw" top: "conv7/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv7/dw/relu" type: "ReLU" bottom: "conv7/dw" top: "conv7/dw" } layer { name: "conv7" type: "Convolution" bottom: "conv7/dw" top: "conv7" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 512 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv7/bn" type: "BatchNorm" bottom: "conv7" top: "conv7" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv7/scale" type: "Scale" bottom: "conv7" top: "conv7" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv7/relu" type: "ReLU" bottom: "conv7" top: "conv7" } layer { name: "conv8/dw" type: "DepthwiseConvolution" bottom: "conv7" top: "conv8/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 512 bias_term: false pad: 1 kernel_size: 3 group: 512 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv8/dw/bn" type: "BatchNorm" bottom: "conv8/dw" top: "conv8/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv8/dw/scale" type: "Scale" bottom: "conv8/dw" top: "conv8/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv8/dw/relu" type: "ReLU" bottom: "conv8/dw" top: "conv8/dw" } layer { name: "conv8" type: "Convolution" bottom: "conv8/dw" top: "conv8" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 512 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv8/bn" type: "BatchNorm" bottom: "conv8" top: "conv8" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv8/scale" type: "Scale" bottom: "conv8" top: "conv8" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv8/relu" type: "ReLU" bottom: "conv8" top: "conv8" } layer { name: "conv9/dw" type: "DepthwiseConvolution" bottom: "conv8" top: "conv9/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 512 bias_term: false pad: 1 kernel_size: 3 group: 512 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv9/dw/bn" type: "BatchNorm" bottom: "conv9/dw" top: "conv9/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv9/dw/scale" type: "Scale" bottom: "conv9/dw" top: "conv9/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv9/dw/relu" type: "ReLU" bottom: "conv9/dw" top: "conv9/dw" } layer { name: "conv9" type: "Convolution" bottom: "conv9/dw" top: "conv9" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 512 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv9/bn" type: "BatchNorm" bottom: "conv9" top: "conv9" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv9/scale" type: "Scale" bottom: "conv9" top: "conv9" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv9/relu" type: "ReLU" bottom: "conv9" top: "conv9" } layer { name: "conv10/dw" type: "DepthwiseConvolution" bottom: "conv9" top: "conv10/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 512 bias_term: false pad: 1 kernel_size: 3 group: 512 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv10/dw/bn" type: "BatchNorm" bottom: "conv10/dw" top: "conv10/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv10/dw/scale" type: "Scale" bottom: "conv10/dw" top: "conv10/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv10/dw/relu" type: "ReLU" bottom: "conv10/dw" top: "conv10/dw" } layer { name: "conv10" type: "Convolution" bottom: "conv10/dw" top: "conv10" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 512 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv10/bn" type: "BatchNorm" bottom: "conv10" top: "conv10" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv10/scale" type: "Scale" bottom: "conv10" top: "conv10" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv10/relu" type: "ReLU" bottom: "conv10" top: "conv10" } layer { name: "conv11/dw" type: "DepthwiseConvolution" bottom: "conv10" top: "conv11/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 512 bias_term: false pad: 1 kernel_size: 3 group: 512 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv11/dw/bn" type: "BatchNorm" bottom: "conv11/dw" top: "conv11/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv11/dw/scale" type: "Scale" bottom: "conv11/dw" top: "conv11/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv11/dw/relu" type: "ReLU" bottom: "conv11/dw" top: "conv11/dw" } layer { name: "conv11" type: "Convolution" bottom: "conv11/dw" top: "conv11" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 512 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv11/bn" type: "BatchNorm" bottom: "conv11" top: "conv11" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv11/scale" type: "Scale" bottom: "conv11" top: "conv11" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv11/relu" type: "ReLU" bottom: "conv11" top: "conv11" } layer { name: "conv12/dw" type: "DepthwiseConvolution" bottom: "conv11" top: "conv12/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 512 bias_term: false pad: 1 kernel_size: 3 stride: 2 group: 512 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv12/dw/bn" type: "BatchNorm" bottom: "conv12/dw" top: "conv12/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv12/dw/scale" type: "Scale" bottom: "conv12/dw" top: "conv12/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv12/dw/relu" type: "ReLU" bottom: "conv12/dw" top: "conv12/dw" } layer { name: "conv12" type: "Convolution" bottom: "conv12/dw" top: "conv12" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 1024 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv12/bn" type: "BatchNorm" bottom: "conv12" top: "conv12" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv12/scale" type: "Scale" bottom: "conv12" top: "conv12" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv12/relu" type: "ReLU" bottom: "conv12" top: "conv12" } layer { name: "conv13/dw" type: "DepthwiseConvolution" bottom: "conv12" top: "conv13/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 1024 bias_term: false pad: 1 kernel_size: 3 group: 1024 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv13/dw/bn" type: "BatchNorm" bottom: "conv13/dw" top: "conv13/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv13/dw/scale" type: "Scale" bottom: "conv13/dw" top: "conv13/dw" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv13/dw/relu" type: "ReLU" bottom: "conv13/dw" top: "conv13/dw" } layer { name: "conv13" type: "Convolution" bottom: "conv13/dw" top: "conv13" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 1024 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv13/bn" type: "BatchNorm" bottom: "conv13" top: "conv13" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv13/scale" type: "Scale" bottom: "conv13" top: "conv13" param { lr_mult: 0.1 decay_mult: 0.0 } param { lr_mult: 0.2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv13/relu" type: "ReLU" bottom: "conv13" top: "conv13" } layer { name: "conv16/dw" type: "DepthwiseConvolution" bottom: "conv13" top: "conv16/dw" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 1024 bias_term: false pad: 1 kernel_size: 3 group: 1024 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv16/dw/bn" type: "BatchNorm" bottom: "conv16/dw" top: "conv16/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv16/dw/scale" type: "Scale" bottom: "conv16/dw" top: "conv16/dw" param { lr_mult: 1 decay_mult: 0.0 } param { lr_mult: 2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv16/dw/relu" type: "ReLU" bottom: "conv16/dw" top: "conv16/dw" } layer { name: "conv16" type: "Convolution" bottom: "conv16/dw" top: "conv16" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 1024 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv16/bn" type: "BatchNorm" bottom: "conv16" top: "conv16" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv16/scale" type: "Scale" bottom: "conv16" top: "conv16" param { lr_mult: 1 decay_mult: 0.0 } param { lr_mult: 2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv16/relu" type: "ReLU" bottom: "conv16" top: "conv16" } layer { name: "upsample" type: "Deconvolution" bottom: "conv16" top: "upsample" param { lr_mult: 0 decay_mult: 0 } convolution_param { num_output: 512 kernel_size: 4 stride: 2 pad: 1 group: 512 weight_filler: { type: "bilinear" } bias_term: false } } layer { name: "conv17/dw" type: "DepthwiseConvolution" bottom: "conv11" top: "conv17/dw" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 512 bias_term: false pad: 1 kernel_size: 3 group: 512 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv17/dw/bn" type: "BatchNorm" bottom: "conv17/dw" top: "conv17/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv17/dw/scale" type: "Scale" bottom: "conv17/dw" top: "conv17/dw" param { lr_mult: 1 decay_mult: 0.0 } param { lr_mult: 2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv17/dw/relu" type: "ReLU" bottom: "conv17/dw" top: "conv17/dw" } layer { name: "conv17" type: "Convolution" bottom: "conv17/dw" top: "conv17" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 512 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv17/bn" type: "BatchNorm" bottom: "conv17" top: "conv17" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv17/scale" type: "Scale" bottom: "conv17" top: "conv17" param { lr_mult: 1 decay_mult: 0.0 } param { lr_mult: 2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv17/relu" type: "ReLU" bottom: "conv17" top: "conv17" } layer { name: "conv17/sum" type: "Eltwise" bottom: "conv17" bottom: "upsample" top: "conv17/sum" } layer { name: "conv18/dw" type: "DepthwiseConvolution" bottom: "conv17/sum" top: "conv18/dw" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 512 bias_term: false pad: 1 kernel_size: 3 group: 512 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv18/dw/bn" type: "BatchNorm" bottom: "conv18/dw" top: "conv18/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv18/dw/scale" type: "Scale" bottom: "conv18/dw" top: "conv18/dw" param { lr_mult: 1 decay_mult: 0.0 } param { lr_mult: 2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv18/dw/relu" type: "ReLU" bottom: "conv18/dw" top: "conv18/dw" } layer { name: "conv18" type: "Convolution" bottom: "conv18/dw" top: "conv18" param { lr_mult: 1 decay_mult: 1 } convolution_param { num_output: 1024 bias_term: false kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv18/bn" type: "BatchNorm" bottom: "conv18" top: "conv18" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv18/scale" type: "Scale" bottom: "conv18" top: "conv18" param { lr_mult: 1 decay_mult: 0.0 } param { lr_mult: 2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv18/relu" type: "ReLU" bottom: "conv18" top: "conv18" } layer { name: "conv20_new" type: "Convolution" bottom: "conv16" top: "conv20_new" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 1024 kernel_size: 1 pad: 0 stride: 1 weight_filler { type: "msra" } bias_filler { value: 0 } } } layer { name: "conv20_new/bn" type: "BatchNorm" bottom: "conv20_new" top: "conv20_new" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv20_new/scale" type: "Scale" bottom: "conv20_new" top: "conv20_new" param { lr_mult: 1 decay_mult: 0.0 } param { lr_mult: 2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv20_new/relu" type: "ReLU" bottom: "conv20_new" top: "conv20_new" } layer { name: "conv21" type: "Convolution" bottom: "conv18" top: "conv21" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 75 kernel_size: 1 pad: 0 stride: 1 weight_filler { type: "msra" } bias_filler { value: 0 } } } layer { name: "conv22/dw" type: "DepthwiseConvolution" bottom: "conv20_new" top: "conv22/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 1024 bias_term: true pad: 1 kernel_size: 3 stride: 2 group: 1024 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv22/dw/bn" type: "BatchNorm" bottom: "conv22/dw" top: "conv22/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv22/dw/scale" type: "Scale" bottom: "conv22/dw" top: "conv22/dw" param { lr_mult: 1 decay_mult: 0.0 } param { lr_mult: 2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv22/dw/relu" type: "ReLU" bottom: "conv22/dw" top: "conv22/dw" } layer { name: "conv22" type: "Convolution" bottom: "conv22/dw" top: "conv22" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 1024 bias_term: true kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv22/bn" type: "BatchNorm" bottom: "conv22" top: "conv22" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv22/scale" type: "Scale" bottom: "conv22" top: "conv22" param { lr_mult: 1 decay_mult: 0.0 } param { lr_mult: 2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv22/relu" type: "ReLU" bottom: "conv22" top: "conv22" } layer { name: "conv23/dw" type: "DepthwiseConvolution" bottom: "conv22" top: "conv23/dw" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 1024 bias_term: true pad: 1 kernel_size: 3 group: 1024 engine: CAFFE weight_filler { type: "msra" } } } layer { name: "conv23/dw/bn" type: "BatchNorm" bottom: "conv23/dw" top: "conv23/dw" param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } param { lr_mult: 0 decay_mult: 0 } } layer { name: "conv23/dw/scale" type: "Scale" bottom: "conv23/dw" top: "conv23/dw" param { lr_mult: 1 decay_mult: 0.0 } param { lr_mult: 2 decay_mult: 0.0 } scale_param { filler { value: 1 } bias_term: true bias_filler { value: 0 } } } layer { name: "conv23/dw/relu" type: "ReLU" bottom: "conv23/dw" top: "conv23/dw" } layer { name: "conv23" type: "Convolution" bottom: "conv23/dw" top: "conv23" param { lr_mult: 0.1 decay_mult: 0.1 } convolution_param { num_output: 75 bias_term: true kernel_size: 1 weight_filler { type: "msra" } } } layer { name: "conv20_old" type: "Convolution" bottom: "conv20_new" top: "conv20_old" param { lr_mult: 1 decay_mult: 1 } param { lr_mult: 2 decay_mult: 0 } convolution_param { num_output: 75 kernel_size: 1 pad: 0 stride: 1 weight_filler { type: "msra" } bias_filler { value: 0 } } } layer { name: "Yolov3Loss1" type: "Yolov3" bottom: "conv23" bottom: "label" top: "det_loss1" loss_weight: 1 yolov3_param { side: 13 num_class: 20 num: 3 object_scale: 5.0 noobject_scale: 1.0 class_scale: 1.0 coord_scale: 1.0 thresh: 0.6 anchors_scale : 64 use_logic_gradient : false #10,14, 23,27, 37,58, 81,82, 135,169, 344,319 biases: 34 biases: 43 biases: 66 biases: 51 biases: 54 biases: 76 biases: 183 biases: 84 biases: 128 biases: 142 biases: 317 biases: 270 biases: 77 biases: 85 biases: 85 biases: 104 biases: 100 biases: 116 mask:3 mask:4 mask:5 } } layer { name: "Yolov3Loss2" type: "Yolov3" bottom: "conv21" bottom: "label" top: "det_loss2" loss_weight: 1 yolov3_param { side: 26 num_class: 20 num: 3 object_scale: 5.0 noobject_scale: 1.0 class_scale: 1.0 coord_scale: 1.0 thresh: 0.6 anchors_scale : 16 use_logic_gradient : false #10,14, 23,27, 37,58, 81,82, 135,169, 344,319 biases: 34 biases: 43 biases: 66 biases: 51 biases: 54 biases: 76 biases: 183 biases: 84 biases: 128 biases: 142 biases: 317 biases: 270 biases: 77 biases: 85 biases: 85 biases: 104 biases: 100 biases: 116 mask:0 mask:1 mask:2 } } layer { name: "Yolov3Loss3" type: "Yolov3" bottom: "conv20_old" bottom: "label" top: "det_loss3" loss_weight: 1 yolov3_param { side: 13 num_class: 20 num: 3 object_scale: 5.0 noobject_scale: 1.0 class_scale: 1.0 coord_scale: 1.0 thresh: 0.6 anchors_scale : 32 use_logic_gradient : false #10,14, 23,27, 37,58, 81,82, 135,169, 344,319 biases: 34 biases: 43 biases: 66 biases: 51 biases: 54 biases: 76 biases: 183 biases: 84 biases: 128 biases: 142 biases: 317 biases: 270 biases: 77 biases: 85 biases: 85 biases: 104 biases: 100 biases: 116 mask:6 mask:7 mask:8 } }

请问下,为什么会出现这种情况? 如果我想要在1280*1280分辨率下正确检测出该目标,应该怎么做?

yiran-THU commented 4 years ago

@eric612

Anchor box是按照1280的分辨率计算的,大佬能否指点一二,谢谢!

eric612 commented 4 years ago

不太理解,方便上傳log 嗎

yiran-THU commented 4 years ago

@eric612

我今天做了测试,构建了一个训练集,里面只有上述测试中漏检的目标,然后在1280*1280的分辨率下训练,结果能检测出之前漏检的那类目标。

今天我打算在之前的训练集内大量加入漏检目标数据(相同图像复制的方式),然后训练,log明天白天上传。

我比较奇怪的是,相同数量和比例数据的训练集,为什么在832832的分辨率下一切正常,而在12801280的分辨率下却一个都没检测出来!


我今天做了測試,構建了壹個訓練集,裏面只有上述測試中漏檢的目標,然後在1280*1280的分辨率下訓練,結果能檢測出之前漏檢的那類目標。

今天我打算在之前的訓練集內大量加入漏檢目標數據(相同圖像復制的方式),然後訓練,log明天白天上傳。

我比較奇怪的是,相同數量和比例數據的訓練集,為什麽在832832的分辨率下壹切正常,而在12801280的分辨率下卻壹個都沒檢測出來!

yiran-THU commented 4 years ago

train.log

初步训练了下,多加数据后,能框出来,但是置信度特别低,而且框得不准。 为什么在832832下一切正常,而12801280下对该目标就不行呢。

eric612 commented 4 years ago

log 看起來沒什麼異常,但裡面沒有anchor的數值和test的結果,方便上傳嗎

yiran-THU commented 4 years ago

@eric612

我的显存不够,没有在训练的时候做过test。 目前用的anchor数值如下: biases: 120 biases: 90 biases: 120 biases: 170 biases: 140 biases: 160 biases: 200 biases: 200 biases: 440 biases: 160 biases: 480 biases: 400 biases: 230 biases: 230 biases: 230 biases: 213 biases: 213 biases: 213

mask:3
mask:4
mask:5
mask:0
mask:1
mask:2
mask:6
mask:7
mask:8

anchors_scale:64
anchors_scale:16
anchors_scale:32
mask_group_num:3
yyqgood commented 4 years ago

楼主,你这个问题最终怎么解决的呢?