← Вернуться к списку

В Faster R-CNN, как получить предсказанную рамку (bounding box) на основе выхода нейронной сети?

Краткое содержание

Потеря RPN в статье Faster R-CNN: $$L({p_i}, {t_i}) = \frac{1}{N_{cls}} \sum_{i} L_{cls}(p_i,p_i^*) + \lambda \frac{1}{N_{reg}} \sum_i p_i^* L_{reg}(t_i, t_i^*)$$ Для задач регрессии используется следующая параметризация: $$t_x=\frac{x - x_a}{w_a}, \\ t_y=\frac{y−y_a}{h_a}, \\ t_w= \log \left( \frac{w}{w_a} \right),\\ t_h= \log \left(\frac{h}{h_a} \right)$$ а метки истины: $$t_x^*=\frac{x^* - x_a}{w_a},\\ t_y^*=\frac{y^*−y_a}{h_a}, \\ t_w^*= \log \left( \frac{w^*}{w_a} \right), \\ t_h^*= \log \left(\frac{h^*}{h_a} \right)$$ где $x$ и $y$ — координаты центра, $w$ — ширина, а $h$ — высота предсказанного бокса. $x$ и $y$ — координаты центра, $w$ — ширина, а $h$ — высота якоря (anchor box). $L_{reg}(t_i, t_i^*) = R(t_i − t_i^*)$, где $R$ — функция потерь robust (smooth $L_1$). Эти уравнения мне непонятны, поэтому у меня два вопроса. Как получить предсказанный bounding box по выходу нейронной сети? Что именно такое smooth $L_1$?

Полный текст

В Faster R-CNN, как получить предсказанную ограничивающую рамку, учитывая выход нейронной сети? Задать вопрос

Спрошено 6 лет, 1 месяц назад Изменено сегодня Просмотрено 1k раз

Спрошено 6 лет, 1 месяц назад

1 $\begingroup$ Потеря RPN в статье Faster RCNN равна $$ L({p_i}, {t_i}) = \frac{1}{N_{cls}} \sum_{i} L_{cls}(p_i,p_i^*) + \lambda \frac{1}{N_{reg}} \sum_i p_i^* L_{reg}(t_i, t_i^*) $$ Для задач регрессии у нас есть следующая параметризация $$t_x=\frac{x - x_a}{w_a}, \\ t_y=\frac{y−y_a}{h_a}, \\ t_w= \log \left( \frac{w}{w_a} \right),\\ t_h= \log \left(\frac{h}{h_a} \right)$$ и метки ground-truth $$t_x^*=\frac{x^* - x_a}{w_a},\\ t_y^*=\frac{y^*−y_a}{h_a}, \\ t_w^*= \log \left( \frac{w^*}{w_a} \right), \\ t_h^*= \log \left(\frac{h^*}{h_a} \right)$$ где $x$ и $y$ — это две координаты центра, $w$ — ширина, и $h$ — высота предсказанной рамки . $x$ и $y$ — это две координаты центра, $w$ — ширина, и $h$ — высота якорной рамки . $L_{reg}(t_i, t_i^*) = R(t_i − t_i^*)$ , где $R$ — это надежная функция потерь (smooth $L_1$ ) Эти уравнения мне непонятны, поэтому у меня два вопроса. Как получить предсказанную ограничивающую рамку, учитывая выход нейронной сети? Что именно здесь представляет собой smooth $L_1$? Как она определена? convolutional-neural-networks papers object-detection r-cnn faster-r-cnn Share Improve this question Follow edited Dec 28, 2020 at 15:31 nbro 43.2k 14 14 gold badges 121 121 silver badges 222 222 bronze badges asked Dec 4, 2019 at 6:38 user31844 11 2 2 bronze badges $\endgroup$ 0 Add a comment | 1 Answer 1 Sorted by: Reset to default Highest score (default) Date modified (newest first) Date created (oldest first) 0 $\begingroup$ Если я правильно понял, у вас 2 вопроса. Как получить ограничивающую рамку, учитывая выход сети. Что такое loss Smooth L1. Ответ на ваш первый вопрос содержится в уравнении (2) в разделе 3.2.1 статьи Faster R-CNN . Как и все детекторы объектов на основе якорей (Faster RCNN, YOLOv3, EfficientNets, FPN...), выход регрессии сети — это не координаты ограничивающей рамки. Выход регрессии предсказывает сдвиг предсказанной ограничивающей рамки относительно выбранного якоря (все эти сети используют более 1 якоря на локацию, см. раздел 3.1.1 статьи). Так что, по сути, ваша сеть предсказывает $t_x, t_y, t_w, t_h$ : А координаты ограничивающей рамки — это $x, y, w, h$ , а координаты якоря — $x_a, y_a, w_a, h_a$ . Поэтому, чтобы вычислить $x, y, w, h$ из $t_x, t_y, t_w, t_h$ , вам нужно просто инвертировать приведенные выше уравнения. Однако я думаю, что вы сможете получить больше интуиции по этому поводу, если потратите время и прочитаете весь раздел 3.1 из статьи. Я знаю, что иногда это боль, но вы уловите высокоуровневую концепцию. Что касается вашего второго вопроса. Да, loss вычисляется с выхода сети и «закодированного» ground truth, то есть вы вычисляете loss с параметрами $t$ (предсказанными) по сравнению с $t^*$ (закодированным ground truth) вместо вычисления loss с реальными координатами ограничивающих рамок (декодированный выход из сети). Для уравнения по Smooth L1 проверьте эту замечательную документацию . Share Improve this answer Follow edited Aug 3, 2020 at 10:53 answered Aug 3, 2020 at 10:48 JVGD 1,218 1 1 gold badge 9 9 silver badges 15 15 bronze badges $\endgroup$ Add a comment | Вы должны войти в систему, чтобы ответить на этот вопрос. Начните задавать вопросы, чтобы получить ответы. Найдите ответ на свой вопрос, задав его. Задать вопрос Изучите связанные вопросы convolutional-neural-networks papers object-detection r-cnn faster-r-cnn Посмотрите похожие вопросы с этими тегами.