Tensorflow Faster RCNN 如何增加额外输出

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yutingzhaomeng/article/details/81432495

假定我们的需求是额外的增加一个多类别信息,并且与之前已有的类别共用同一个bounding box,修改如下:

1、数据读取层:

      (1) lib/datasets/pascal_voc.py

            ① __init__函数    需要在41行之后增加需求类别及index

            ② _load_pascal_annotation函数    需要在163行之后增加类别定义并在for循环内将其转换为与原始类别相同的信息

      (2) lib/datasets/imdb.py

            create_roidb_from_box_list函数    需要在241行之后增加需求输出

2、proposal及anchor层:

      (1) proposal_target_layer.py

            ①proposal_target_layer函数    需要在44行及55行增加需求输出

            ②_sample_rois函数    需要在109行、140行及142行之后增加需求输出

      (2) anchor_target_layer.py

            _compute_targets函数    需要在161行修改assert条件

3、roi层:

      (1) minibatch.py

            get_minibatch函数    需要在46行后增加需求输出

4、训练函数:

      (1) train_val.py

            train_model函数    需要在283及293行增加需求输出

5、网络定义层:- 需要修改的最多

      (1) network.py

             ① _proposal_target_layer函数    需要在187行增加需求的输出

             ② _build_network函数    需要在257行增加需求的输出,并在return中修改

            ③ _add_losses函数    需要在309行之后增加需求输出的损失定义,可按照RCNN分类损失定义,并在315行增加相应损失。

            ④ _region_classification函数    需要在372行之后增加需求输出网络定义

            ⑤ create_architecture函数     需要在421行增加需求输出

            ⑥ train_step函数    需要在491行增加需求输出

            ⑦ train_step_with_summary函数    需要在503行增加需求输出

猜你喜欢

转载自blog.csdn.net/yutingzhaomeng/article/details/81432495
今日推荐