Detection ouput
SSD
输入输出
-
inputs[0]: location map, {N, boxes * 4}
-
inputs[1]: confidence map, ssd: {N, classes, boxes}, yolov3: {N, boxes, classes}
-
inputs[2]: priorbox prior boxes, dims = 4 {1, 2, boxes * 4(xmin, ymin, xmax, ymax)}
-
output0: shape_out = Shape({1, 1, param.keep_top_k * input[0]->num(), 7}, Layout_NCHW);
-
输出大小为[1, 1, x, 7],其中x是最后保留的框的个数,最后一维存放的数据为:
[image_id, label, confidence, xmin, ymin, xmax, ymax] -
mbox_priorbox, 仅仅是计算norm_mbox_loc对应于原图的大小,有了mbox_priorbox层来获取原图的比例,norm_mbox_loc就能够通过比例来计算出所处于原图具体的什么位置了。
参数 Z
-
code_type_类型默认为 CENTER_SIZE
-
variance_encoded_in_target_ 默认为false,表示不使用variance带入到位置预测的结果计算结果
-
num_priors_ 表示所有候选框的数目 = N*boxes
-
share_location 默认为true,表示位置预测默认将所有类的位置归为一种类别进行位置预测
-
num_loc_classes share_location ? 1 : num_classes
-
background_label_id 背景标签的id
-
clip_bbox: 是否将位置预测值限定在0到1中,图片大小内
-
priors.size() = n
-
priors.push_back(_num_priors / num); // boxes
-
int num_priors = _num_priors / num; // boxes
算法
DecodeBBoxes // 通过预测的位置结果以及先验框计算预测结果并储存到bbox_data中
PermuteData // 将输出通道从num_batch d classes 1 转换成 num_batch classes d 1
NMS // 非极大抑制算法
DecodeBBoxes
通过预测的位置结果以及先验框计算预测结果并储存到bbox_data中
- 三种方式见 3
DecodeBBoxes
NMS
参考
- [1]. https://blog.csdn.net/qq_31261509/article/details/83376668
- [2]. https://zhuanlan.zhihu.com/p/33544892
- [3]. https://blog.csdn.net/dan_teng/article/details/81561783
1800045650