Какова политика ImageNet Vid в отношении оценки кадров с нулевым объектом внутри

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

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

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

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

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

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

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


person Eypros    schedule 25.04.2019    source источник


Ответы (2)


Я только что просмотрел оценочный код 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. Это дает небольшой импульс маленьким объектам.

person jmsinusa    schedule 03.06.2019

Как насчет случая, когда отсутствует аннотация для объекта, который должен был иметь аннотацию GT?

Например, ILSVRC2015_val_00000001/000266.JPEG явно имеет черепаху (фактически до 000265.JPEG все кадры имеют соответствующую аннотацию черепахи), но соответствующий файл аннотаций ILSVRC2015_val_00000001/000266.xml не имеет аннотаций.

В моем анализе есть 4046 кадра из 176126 в наборе данных проверки, в которых отсутствует аннотация GT. Большинство этих кадров не имеют аннотации GT, несмотря на то, что содержат объект, принадлежащий к одной из 30 категорий ImageNetVID.

person Umar    schedule 29.05.2020