详细的faster rcnn训练步骤,哪里出了问题?

1.下载py-faster-rcnn并解压:

001.jpg

2.cd到lib目录下,执行 make

002.jpg

3.编译caffe-fast-rcnn
1) cd到caffe-fast-rcnn目录下,将Makefile.config.example文件重命名Makefile.config,去掉WITH_PYTHON_LAYER前面的#号:

003.jpg

保存。
2) 在caffe-fast-rcnn目录下新建一个build文件夹, cd到该目录下,执行cmake ..

004.jpg


005.jpg

3) 执行make all

006.jpg

4) 执行make pycaffe

007.jpg

5) 执行sudo make install

008.jpg

4.下载faster_rcnn_models,imagenet_models和VOCdevkit2007
这一步,我是在windows上下载,然后复制到放置到py-faster-rcnn/data目录下的

009.jpg


faster_rcnn_models目录如下:

010.jpg

Imagenet_models目录如下:

011.jpg

VOCdevkit2007目录如下:

012.jpg

5.测试
这里选择zf网络进行测试,为了方便,我对tools/demo.py文件中将默认网络从vgg16改成zf,且只对一张图像进行测试

013.jpg

在tools目录下执行python demo.py

014.jpg


015.jpg

6.训练
在py-faster-rcnn目录下执行:
python tools/train_faster_rcnn_alt_opt.py --gpu 0 --net_name ZF

016.jpg


017.jpg

7.再测试
将训练结果ZF_faster_rcnn_final.caffemodel拷贝到data/faster_rcnn_models目录下,在tools目录下再次执行python demo.py:

018.jpg

结果只是显示了检测到多个候选区,并没有显示检测结果。实际上,这些候选区的检测分值太低,没达到可视化阈值条件,降低这阈值,这些候选区可以画出来,但都没有一个检测到真正的目标区域,且分类结果都显示同一类别,完全不正确。请问我的训练过程哪里出了问题,已被该问题卡了一个多星期!望前辈为我解答!谢谢!
训练过程有什么问题?
 
 
已邀请:

Felix

赞同来自: hy17003

你的训练
在py-faster-rcnn目录下执行:
python tools/train_faster_rcnn_alt_opt.py --gpu 0 --net_name ZF
其实这是错的,应该用experiments\scripts\faster_rcnn_alt_opt.sh脚本训练, 像你用的 命令都没有用 imagenet网络去 初始化,更不用说其他参数了。
下面是train_faster_rcnn_alt_opt.py参数解析部分:
    parser = argparse.ArgumentParser(description='Train a Faster R-CNN network')
    parser.add_argument('--gpu', dest='gpu_id',
                        help='GPU device id to use [0]',
                        default=0, type=int)
    parser.add_argument('--net_name', dest='net_name',
                        help='network name (e.g., "ZF")',
                        default=None, type=str)
    parser.add_argument('--weights', dest='pretrained_model',
                        help='initialize with pretrained model weights',
                        default=None, type=str)
    parser.add_argument('--cfg', dest='cfg_file',
                        help='optional config file',
                        default=None, type=str)
    parser.add_argument('--imdb', dest='imdb_name',
                        help='dataset to train on',
                        default='voc_2007_trainval', type=str)
    parser.add_argument('--set', dest='set_cfgs',
                        help='set config keys', default=None,
                        nargs=argparse.REMAINDER)
你的命令只有--gpu 0 --net_name ZF是不够的。我目前就只能想到这么多,我自己训练过自己的数据,一直都很正常。

要回复问题请先登录注册