Зачем добавлять небольшое число на ограничительной рамке? - PullRequest
0 голосов
/ 28 декабря 2018

Я обнаружил, что при реализации Fast (er) RCNN всегда есть небольшое значение, добавляемое к ширине и высоте ограничительной рамки.Зачем добавлять небольшое число к ширине и высоте?

Например, в Fast RCNN , cfg.EPS ( по умолчанию равно 1e-14):

ex_widths = ex_rois[:, 2] - ex_rois[:, 0] + cfg.EPS
ex_heights = ex_rois[:, 3] - ex_rois[:, 1] + cfg.EPS
ex_ctr_x = ex_rois[:, 0] + 0.5 * ex_widths
ex_ctr_y = ex_rois[:, 1] + 0.5 * ex_heights

gt_widths = gt_rois[:, 2] - gt_rois[:, 0] + cfg.EPS
gt_heights = gt_rois[:, 3] - gt_rois[:, 1] + cfg.EPS
gt_ctr_x = gt_rois[:, 0] + 0.5 * gt_widths
gt_ctr_y = gt_rois[:, 1] + 0.5 * gt_heights

In Faster-RCNN , 1.0 добавлено к widths и heights.

ex_widths = ex_rois[:, 2] - ex_rois[:, 0] + 1.0
ex_heights = ex_rois[:, 3] - ex_rois[:, 1] + 1.0
ex_ctr_x = ex_rois[:, 0] + 0.5 * ex_widths
ex_ctr_y = ex_rois[:, 1] + 0.5 * ex_heights

gt_widths = gt_rois[:, 2] - gt_rois[:, 0] + 1.0
gt_heights = gt_rois[:, 3] - gt_rois[:, 1] + 1.0
gt_ctr_x = gt_rois[:, 0] + 0.5 * gt_widths
gt_ctr_y = gt_rois[:, 1] + 0.5 * gt_heights

Ответы [ 3 ]

0 голосов
/ 03 января 2019

У меня сильное чувство, что код будет продолжать с областями блоков и использовать их для расчета IoU.Если это так, вы должны быть уверены, что ограничивающая рамка на самом деле имеет ненулевую область.

0 голосов
/ 06 января 2019

Мое мнение. На самом деле необходимо рассчитать пиксели на "границе рамки". Так что их нужно исключить (добавив 1).

0 голосов
/ 28 декабря 2018

Я не знаю, что происходит в первом случае, но во втором случае выглядит так, что левые и правые места находятся внутри ограничительной рамки.Поэтому количество пикселей должно включать как левые, так и правые местоположения.Вот почему 1 добавляется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...