该函数根据匹配的结果,对一批提议进行采样,并设置它们的分类标签。函数接收三个参数:matched_idxs表示N个提议中每个最佳匹配的gt索引;matched_labels表示每个提议的标签(包括IOU_LABELS中定义的值);gt_classes表示M个Groundtruth实例的类别。
首先判断是否有Groundtruth实例存在,如果存在,则根据matched_idxs得到与每个提议最佳匹配的GT实例,并将其类别保存在gt_classes变量中。对于那些未被匹配上(matched_labels为0)或者被忽略(matched_labels为-1)的提议,将它们的类别设置为背景类别(self.num_classes)或者忽略(-1),然后这些提议也会参与后续处理。
如果没有Groundtruth实例,则默认将所有提议都视为背景类别。接下来使用subsample_labels方法从所有样本中随机选出一部分正负样本用于训练模型。其中,self.batch_size_per_image代表单张图片上总共要选择多少个样本;self.positive_sample_fraction表示选择多少比例的正样本,剩余部分是负样本;self.num_classes代表类别数目。
最后,将选出来的正负样本合并成一个向量,并返回给调用者作为采样结果。同时还返回一个向量,记录了每个被采样实例的分类标签。




