YonghaoHe / LFFD-A-Light-and-Fast-Face-Detector-for-Edge-Devices

A light and fast one class detection framework for edge devices. We provide face detector, head detector, pedestrian detector, vehicle detector......
MIT License
1.32k stars 329 forks source link

求问坐标值的计算原理 #47

Open gneworld opened 5 years ago

gneworld commented 5 years ago

你好,我在lffd-ncnn里看到一段code

//x-left-top float mid_value = 0; for (int j = 0; j < fea_h fea_w; j++) { mid_value = RF_center_Xs_mat[j] - box_map.channel(0)[j] constant[scale_id]; x_lt_mat[j] = mid_value < 0 ? 0 : mid_value; } 不太理解这段code坐标值的计算原理( RF_center_Xs_mat[j] - box_map.channel(0)[j] * constant[scale_id];),能否讲解一下呢 不胜感激

YonghaoHe commented 5 years ago

@gneworld 首先需要搞清楚方法里面的坐标回归是怎么处理的.我们是计算感受野中心到左上角和右下角在x和y方向的偏差,直接用感受野中心的x,y去减. 然后归一化除以一个常数. 那么预测的时候相当于是知道了偏差,然后根据感受野的中心去推断左上角和右下角的具体坐标.

gneworld commented 5 years ago

非常感谢大佬的回复,坐标计算这块搞懂了,另外求教一下下面这些参数是如何计算得出的,我想这个问题应该很多开发者会遇到的,恳请大佬赐教,感谢感谢

receptive_field_list = { 20, 40, 80, 160, 320 }; receptive_field_stride = { 4, 8, 16, 32, 64 }; bbox_small_list = { 10, 20, 40, 80, 160 }; bbox_large_list = { 20, 40, 80, 160, 320 }; receptive_field_center_start = { 3, 7, 15, 31, 63 };

YonghaoHe commented 5 years ago

@gneworld 感受野相关的计算建议百度一下,很多资料. 关于每个branch检测尺度的设置,目前是根据经验设定的,在后续的版本中,我们将提供更加可靠的理论来设置这个参数

gneworld commented 5 years ago

感谢回复,谢谢