Какова политика ImageNet Vid по оценке кадров с нулевым объектом внутри - PullRequest
0 голосов
/ 25 апреля 2019

trying я пытаюсь оценить мой модуль обнаружения видеообъектов , и для этого я использую набор данных InageNet VID.В какой-то момент я сталкиваюсь со случаем, чтобы оценить кадр, содержащий ноль объектов.Это означает, что в этом кадре нет наземных bbox-блоков с правдой (это хорошо, так как мы говорим об обнаружении видеообъектов).

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

Метрика оценки такая же, как и для задачи обнаружения объекта, то есть объекты, которыене будут аннотированы, будут оштрафованы, как и дубликаты обнаружений (две аннотации для одного и того же экземпляра объекта).

(sic; опечатка из оригинального текста)

Что не упоминаетсяприведенный выше сценарий.Поскольку это простое описание, я не уверен, что оно охватывает каждый крайний случай.Обычно при обнаружении объекта с одним изображением это не является проблемой, поскольку образцы оценки всегда содержат какой-либо объект.Но в этом случае означает ли это, что я должен вообще игнорировать эти кадры, например?

Кроме того, проверяя этот репозиторий на предмет метрики обнаружения объекта (которая, кстати, является супер-аналитической), в случае отсутствия gtПохоже, что он входит в общий сценарий о False Positive (FP) .В этом случае пересечение будет равно 0 (поскольку gt bbox не существует), а Union будет просто ненулевым числом, равным FP bbox, и поэтому IoU = 0.

Итак, как официальный ImageNet справляется с этими случаями?Меня не интересует разумный выбор, просто официальная версия.

1 Ответ

1 голос
/ 03 июня 2019

Я только что просмотрел код оценки ImageNet VID 2015, который я получил из набора для оценки от UNC .

Оценка имеет дело с точностью и отзывом, и поэтому необходимо рассчитать TP, FP и FN для каждой пары GT Box / обнаружения или экземпляра. Расчет IoU используется исключительно для определения того, имело ли место действительное обнаружение.

Для кадров без блоков GT и без обнаружений: поскольку мы не записываем истинные негативы, это не имеет значения для расчета.

Для кадров без блоков GT, но с некоторыми обнаружениями: эти ложные срабатывания фиксируются для каждого кадра в строке 231 eval_vid_detections.m:

    if kmax > 0
        tp(j) = 1;
        gt_detected(kmax) = 1;
    else
        fp(j) = 1;
    end

Для кадров с блоками GT, но без обнаружений: эти блоки GT подсчитываются при первой загрузке данных GT в строке 79: num_pos_per_class(c) = num_pos_per_class(c) + 1;. Это позже используется при вычислении отзыва в строке 266: recall{c}=(tp/num_pos_per_class(c))';

Итак, если ваш фрейм не содержит обнаружений и блоков GT, вы можете спокойно его игнорировать.

Кроме того, обратите внимание, что порог обнаружения для каждого экземпляра установлен следующим образом:

    thr = (gt_w.*gt_h)./((gt_w+pixelTolerance).*(gt_h+pixelTolerance));
    gt_obj_thr{i} = min(defaultIOUthr,thr);

, где pixelTolerance = 10. Это дает небольшой толчок для небольших объектов.

...