我们已经训练出了rpn网络,下面利用训练好的rpn网络来生成proposals。
下面来看一下rpn_generate函数:
首先设置参数:
然后得到一个pascal_voc类:imdb = get_imdb(imdb_name)
加载训练的rpn网络:rpn_net = caffe.Net(rpn_test_prototxt, rpn_model_path, caffe.TEST)
然后得到生成的proposals(候选区域,最多2000个):rpn_proposals = imdb_proposals(rpn_net, imdb),得到的rpn_proposals 是一个列表,列表中的每个元素是每个图片的rpn_proposals,,而且rpn_proposals是一个len(keep)行4列的矩阵,其中len(keep)的最大值为2000。
好了,下面看一下imdb_proposals函数的具体结构:
这里可以看到imdb_boxes是一个列表,列表中元素初始化为空。imdb_boxes也是返回值。在这个函数中,首先用cv2.imread读取图片数据,然后用im_proposals函数来得到proposals和对应的前景得分。
具体来看一下im_proposals函数:
首先获取网络的输入数据