Tensorflow目标检测API中提取的框特征是否与检测结果按分数降序排序?
关于Faster R-CNN边界框特征排序的确认
没错,你观察到的排序规则是完全一致的!SecondStageBoxPredictor/AvgPool:0返回的边界框特征,和detection_boxes:0、detection_scores:0的索引是严格对应的——也就是说,第i个位置的特征,正好对应第i个检测框和第i个检测分数。
背后的逻辑:
Faster R-CNN的推理流程里,第二阶段(也就是你提到的SecondStageBoxPredictor相关模块)处理的是经过非极大值抑制(NMS)+ 分数降序筛选后的Top 100个候选框(这也是为什么特征张量的第一维度是100)。整个流程的顺序是:
- 第一阶段(RPN)生成大量候选框
- 对这些候选框提取初步特征后,进行分类和回归,得到每个框的分数和修正后的坐标
- 按照分数从高到低排序,再经过NMS去除重叠框,最终保留Top 100个结果
- 这Top 100个框会被送入第二阶段的AvgPool层提取最终的2048维特征
所以这三个张量的排序完全同步:
detection_scores:0是降序排列的detection_boxes:0按照对应分数的顺序排列SecondStageBoxPredictor/AvgPool:0的每个特征向量,也对应着相同位置的高到低排序的检测框
如果你要提取Top-K个特征,直接取这个特征张量的前K个元素(比如features[:K])就可以,完全匹配Top-K高分的检测框。
内容的提问来源于stack exchange,提问作者Erica H
相关产品推荐
相关产品推荐

