Faster R-CNN——ROIDB和Minibatch函数调用分析

本文详细分析了Faster R-CNN中ROI数据库(ROIDB)的构造过程,包括`combined_roidb()`、`get_imdb()`、`set_proposal_method()`和`prepare_roidb()`函数。同时,阐述了minibatch的生成流程,从`layer.py`的高层函数到`minibatch.py`的中间层,再到`/lib/utils/blob.py`的底层实现。内容基于TensorFlow实现,可在github上找到相关代码。
摘要由CSDN通过智能技术生成

简介和说明:

1.本文包含两个部分,一个是关于ROIdatabase的函数分析,一个是关于minibatch生成的函数分析;

2.由于直接用文字表述函数之间的调用关系很麻烦,因此我使用标题的等级来表示。标题等级高一级的函数调用下面标题等级低一级的函数,因此目录可以一定程度上体现出函数调用关系

3.为了突出主要部分,文章中列出的函数的有些部分做了些简化和省略,有些地方的函数调用也直接简化为function(...)的形式;

4.本文分析的代码基于tensorflow,代码可从github上下载,网址为https://github.com/endernewton/tf-faster-rcnn

ROIDB

最顶层文件:trainval_net.py

def parse_args():                               #解析参数

def combined_roidb(imdb_names):

if __name__ == '__main__':

(1)combined_roidb()

def combined_roidb(imdb_names):

  def get_roidb(imdb_name):                                      #内部函数
    imdb = get_imdb(imdb_name)                                  (1)/lib/tools/factory.py
    imdb.set_proposal_method(cfg.TRAIN.PROPOSAL_METHOD)         (2)/lib/dataset/imdb.py


    roidb = get_training_roidb(imdb)                            (3)/lib/model/train_val.py
    return roidb

  roidbs = [get_roidb(s) for s in imdb_names.split('+')]        #the function above
  roidb = roidbs[0]
  if len(roidbs) > 1:
    for r in roidbs[1:]:
      roidb.extend(r)
    tmp = get_imdb(imdb_names.split('+')[1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值