一、出现原因:
指针读取越界,导致框的坐标值出现了极大值或极小值。
二、修改方法:
examples/detect.c中validate_detector_recall函数中:
for(k = 0; k < l.w*l.h*l.n; ++k){
float iou = box_iou(dets[k].bbox, t);
if(dets[k].objectness > thresh && iou > best_iou){
best_iou = iou;
}
}
修改为:
for(k = 0; k < nboxes; ++k){
float iou = box_iou(dets[k].bbox, t);
if(dets[k].objectness > thresh && iou > best_iou){
best_iou = iou;
}
}
问题解决。
本文介绍了一种常见的目标检测算法中检测框坐标越界的问题及其解决方案。通过修改遍历检测框数量的方式,避免了指针读取越界的情况,有效解决了坐标出现极大值或极小值的问题。
3379

被折叠的 条评论
为什么被折叠?



