【说明】:欢迎加入:faster-rcnn 交流群 238138700,这个函数,输入是roidb,根据roidb中给出的图片的信息,读取图片的源文件,然后整理成blobs,供给网络训练使用;
def get_minibatch(roidb, num_classes):
这个函数会根据roidb中的信息,调用opencv读取图片,整理成blobs返回,所以这个函数是faster-rcnn实际的数据准备操作,我们来分析minibatch.py这个文件;
【输入】:roidb是一个list,list中的每个元素是一个字典,每个字典对应一张图片的信息,其中的主要信息有:
boxes:该图片所有的box的4个坐标位置
gt_class:每个boxes对应的类别
gt_overlaps
height:图片原始的高
width:图片原始的宽
image:图片的路径
seg_areas
【函数解析】:
def get_minibatch(roidb, num_classes):
"""Given a roidb, construct a minibatch sampled from it."""
num_images = len(roidb)#roidb中元素的个数,就是要处理的图片的个数
# Sample random scales to use for each image in this batch
random_scale_inds = npr.randint(0, high=len(cfg.TRAIN.SCALES),
size=num_images)#根据scales的数量,为每张图片生成一个scales的索引
assert(cfg.TRAIN.BATCH_SIZE % num_images == 0), \
'num_im