RefineDet训练自己的数据

https://github.com/sfzhang15/RefineDet

1、编译安装

cp Makefile.config.example Makefile.config

make all -j4

make pycaffe

2、训练

    (1)原作只提供了resnet101,vgg16两种网络,因项目需要,我替换为了小网络。

    (2)替换类别,将21替换为自己的类别+1,另外将63(21*3)替换为(cls+1)*3

      (3) 修改 test/lib/datasets/pascal_voc.py 

      (4) 由 自己的数据集创建lmdb

            创建VOC格式的数据;

            修改create_list.sh;    

root_dir=$HOME/RefineDet/data/VOCdevkit
sub_dir=ImageSets/Main
bash_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
for dataset in trainval test
do
  dst_file=$bash_dir/$dataset.txt
  if [ -f $dst_file ]
  then
    rm -f $dst_file
  fi
  for name in VOC0712
  do
    #if [[ $dataset == "test" && $name == "VOC2012" ]]
    #then
    #  continue
    #fi

       create_data.sh(主要是文件路径) ;     

redo=1
data_root_dir="$HOME/RefineDet/data/VOCdevkit"
dataset_name="VOC0712"
mapfile="$root_dir/data/$dataset_name/labelmap_huogui.prototxt"
anno_type="detection"

   labelmap_voc替换为自己的类别;

   (5) 将生成的相关文件拷贝到examples/VOC0712下面

目测训练很慢。。。

3万多次, loss还是比较大

    

原文地址:https://www.cnblogs.com/573177885qq/p/9550082.html