Рейтинг по обнаружению объектов

Обнаружение объектов' - рейтинг

Добро пожаловать в наше последнее погружение в мир рейтинговых таблиц и оценки моделей. В предыдущей статье мы исследовали оценку больших языковых моделей. Сегодня мы отправляемся в другую, но не менее сложную область – обнаружение объектов.

Недавно мы выпустили нашу рейтинговую таблицу обнаружения объектов, ранжируя модели обнаружения объектов, доступные в Hub, по некоторым метрикам. В этом блоге мы продемонстрируем, как модели были оценены и разъясним популярные метрики, используемые в обнаружении объектов, от пересечения по объединению (IoU) до средней точности (AP) и средней полноты (AR). Более важно, мы обратим внимание на внутренние расхождения и проблемы, которые могут возникнуть во время оценки, чтобы вы были оснащены знаниями не только для понимания, но и для критической оценки производительности моделей.

Каждый разработчик и исследователь стремится создать модель, которая может точно обнаруживать и обозначать объекты. Наша рейтинговая таблица обнаружения объектов – это правильное место, чтобы найти модель с открытым исходным кодом, которая наилучшим образом соответствует их потребностям в приложении. Но что на самом деле означает “точность” в этом контексте? Каким метрикам можно доверять? Как они вычисляются? И, что еще важнее, почему некоторые модели могут давать разные результаты в разных отчетах? На все эти вопросы будет дан ответ в этом блоге.

Итак, давайте отправимся вместе в это исследование и раскроем секреты рейтинговой таблицы обнаружения объектов! Если вы предпочитаете пропустить введение и узнать, как вычисляются метрики обнаружения объектов, перейдите к разделу “Метрики”. Если вы хотите узнать, как выбрать лучшие модели на основе рейтинговой таблицы обнаружения объектов, вы можете проверить раздел “Рейтинговая таблица обнаружения объектов”.

Содержание

  • Введение
  • Что такое обнаружение объектов
  • Метрики
    • Что такое средняя точность и как ее вычислить?
    • Что такое средняя полнота и как ее вычислить?
    • Какие существуют варианты средней точности и средней полноты?
  • Рейтинговая таблица обнаружения объектов
    • Как выбрать лучшую модель на основе метрик?
    • Какие параметры могут влиять на результаты средней точности?
  • Выводы
  • Дополнительные ресурсы

Что такое обнаружение объектов?

В области компьютерного зрения обнаружение объектов относится к задаче идентификации и локализации отдельных объектов на изображении. В отличие от классификации изображений, где задача состоит в определении преобладающего объекта или сцены на изображении, обнаружение объектов не только классифицирует присутствующие объекты, но также предоставляет пространственную информацию, обрамляя каждый обнаруженный объект прямоугольными рамками. Детектор объектов также может выдавать “оценку” (или “уверенность”) для каждого обнаружения. Она представляет вероятность того, согласно модели, что обнаруженный объект принадлежит предсказанному классу для каждой ограничивающей рамки.

Например, на следующем изображении показаны пять обнаружений: один “мяч” с уверенностью в 98% и четыре “человека” с уверенностями в 98%, 95%, 97% и 97%.

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

Hugging Face Hub содержит сотни моделей обнаружения объектов, предварительно обученных на разных наборах данных, способных идентифицировать и локализовать различные классы объектов.

Одна конкретная категория моделей обнаружения объектов, называемая “нулевым снимком”, может принимать дополнительные текстовые запросы для поиска целевых объектов, описанных в тексте. Эти модели могут обнаруживать объекты, которые они не видели во время обучения, вместо того, чтобы быть ограниченными набором классов, использованных во время обучения.

Разнообразие детекторов выходит за рамки диапазона классов объектов, которые они могут распознавать. Они отличаются по архитектуре, размеру модели, скорости обработки и точности предсказаний.

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

Оценка модели обнаружения объектов включает несколько компонентов, таких как набор данных с аннотациями ограничивающих рамок, обнаружения (предсказания вывода) и метрики. Этот процесс изображен на схеме, представленной на рисунке 2:

Сначала выбирается набор данных для тестирования, содержащий изображения с аннотациями ограничивающих рамок. Этот набор данных подается на вход модели обнаружения объектов. Модель делает предсказания ограничивающих рамок для каждого изображения, присваивая классы и оценки уверенности каждой рамке. Во время оценки эти предсказанные ограничивающие рамки сравниваются с ограничивающими рамками из набора данных. Оценка дает набор метрик, каждая из которых находится в диапазоне от 0 до 1 и отражает определенные критерии оценки. В следующем разделе мы подробно рассмотрим вычисление метрик.

Метрики

В данном разделе мы рассмотрим определение средней точности и средней полноты, их вариации и методы вычисления.

Что такое средняя точность и как ее вычислить?

Средняя точность (Average Precision, AP) – это число, которое описывает кривую точность-полнота. Прежде чем объяснить, как ее вычислить, нам сначала нужно понять понятие пересечения по объединению (Intersection over Union, IoU) и то, как классифицировать обнаружение как истинно положительное или ложно положительное.

IoU – это метрика, которая представляет число от 0 до 1 и измеряет перекрытие между предсказанной ограничивающей рамкой и фактической (истинной) ограничивающей рамкой. Она вычисляется путем деления площади пересечения двух рамок на площадь, занимаемую обеими рамками вместе. Рисунок 3 наглядно демонстрирует IoU на примере предсказанной рамки и соответствующей ей истинной рамки.

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

В случаях, когда ожидается высокая точность обнаружений (например, в автономном автомобиле), предсказанные ограничивающие рамки должны тесно соответствовать истинным ограничивающим рамкам. Для этого предпочтителен порог IoU (TIOU), стремящийся к 1. С другой стороны, для приложений, где точное положение обнаруженных ограничивающих рамок относительно целевого объекта не является критическим, порог можно увеличить, устанавливая близкий к 0 порог IoU.

Каждая рамка, предсказанная моделью, считается “положительным” обнаружением. Критерий пересечения по объединению (IoU) классифицирует каждое предсказание как истинно положительное (TP) или ложно положительное (FP) в соответствии с определенным порогом уверенности.

На основе заранее определенного порога IoU (TIOU) мы можем определить истинно положительные и истинно отрицательные результаты:

  • Истинно положительные (TP): Верное обнаружение, где IoU ≥ TIOU.
  • Ложно положительные (FP): Неверное обнаружение (пропущенный объект), где IoU < TIOU.

Соответственно, ложные отрицательные и истинно отрицательные результаты оцениваются на основе истинной ограничивающей рамки:

  • Ложно отрицательные (FN): Относится к истинному объекту, который модель не смогла обнаружить.
  • Истинно отрицательные (TN): Обозначает правильное отсутствие обнаружения. В области обнаружения объектов внутри изображения следует не идентифицировать бесчисленное количество ограничивающих рамок, так как они не представляют целевой объект. Подумайте о всех возможных рамках в изображении, которые не представляют целевой объект – весьма большое число, не так ли? 🙂 Поэтому мы не учитываем TN при вычислении метрик обнаружения объектов.

Теперь, когда мы можем определить наши TP, FP и FN, мы можем определить точность и полноту:

  • Точность – это способность модели определять только соответствующие объекты. Она представляет собой процент правильных положительных предсказаний и вычисляется по формуле:

Точность=TP(TP+FP)=TPвсе обнаружения

что означает отношение истинно положительных к общему числу обнаруженных рамок.

  • Полнота оценивает способность модели находить все соответствующие случаи (все истинные ограничивающие рамки). Она показывает долю истинно положительных, обнаруженных среди всех истинных ограничивающих рамок и вычисляется по формуле:

Полнота=TP(TP+FN)=TPвсе истинные рамки

Обратите внимание, что TP, FP и FN зависят от заранее определенного порога IoU, как и точность и полнота.

Средняя точность отображает способность модели правильно классифицировать и локализовать объекты, учитывая различные значения точности и полноты. Для этого мы будем иллюстрировать связь между точностью и полнотой, строя их соответствующие кривые для определенного целевого класса, скажем, “собака”. Мы примем умеренный порог IoU = 75% для определения наших TP, FP и FN. Затем мы можем вычислить значения точности и полноты, изменяя оценки уверенности наших обнаружений.

На рисунке 4 показан пример кривой точность-полнота. Для более глубокого изучения вычисления этой кривой статьи “Сравнительный анализ метрик обнаружения объектов с сопровождающим компаньоном по открытому исходному коду” (Падилья и др.) и “Обзор метрик производительности для алгоритмов обнаружения объектов” (Падилья и др.) предлагают более подробные примеры, демонстрирующие, как вычислить эту кривую.

Кривая точность-полнота демонстрирует баланс между точностью и полнотой на основе различных уровней уверенности ограничителей детектора. Каждая точка графика вычисляется с использованием разного значения уверенности.

Чтобы показать, как вычислить график средней точности, мы используем практический пример из одной из ранее упомянутых статей. Предположим, у нас есть набор данных из 7 изображений с 15 объектами истинного значения одного класса, как показано на рисунке 5. Предположим, что все ограничителя принадлежат одному классу “собака” для упрощения.

Наш гипотетический детектор объектов обнаружил 24 объекта в нашем наборе данных, которые показаны красными ограничителями. Чтобы вычислить точность и полноту, мы используем уравнения точности и полноты на всех уровнях уверенности, чтобы оценить, насколько хорошо детектор выполнил свою задачу для этого конкретного класса нашего бенчмарка. Для этого нам нужно установить некоторые правила:

  • Правило 1: Для упрощения, давайте считать наши обнаружения Истинно Положительными (TP), если IOU ≥ 30%; в противном случае, это Ложно Положительное (FP).
  • Правило 2: В случаях, когда обнаружение перекрывается с более чем одним истинным значением (как на изображениях с 2 по 7), предсказанная ограничителя с наибольшим значением IoU считается TP, а остальные – FP.

Исходя из этих правил, мы можем классифицировать каждое обнаружение как TP или FP, как показано в таблице 1:

Обратите внимание, что согласно правилу 2, на изображении 1 “E” является TP, тогда как “D” – FP, потому что IoU между “E” и истинным значением больше, чем IoU между “D” и истинным значением.

Теперь нам нужно вычислить точность и полноту, учитывая значение уверенности каждого обнаружения. Хорошим способом сделать это является сортировка обнаружений по их значениям уверенности, как показано в таблице 2. Затем для каждого значения уверенности в каждой строке мы вычисляем точность и полноту, учитывая накопленные TP (acc TP) и накопленные FP (acc FP). Значение “acc TP” в каждой строке увеличивается на 1 каждый раз, когда замечается TP, а “acc FP” увеличивается на 1, когда замечается FP. Столбцы “acc TP” и “acc FP” в основном говорят нам значения TP и FP при определенном уровне уверенности. Вычисление каждого значения таблицы 2 можно увидеть в этой электронной таблице.

Например, рассмотрим 12-ю строку (обнаружение “P”) таблицы 2. Значение “acc TP = 4” означает, что если мы произведем бенчмарк нашей модели на этом конкретном наборе данных с уверенностью 0,62, мы правильно обнаружим четыре целевых объекта и неправильно обнаружим восемь целевых объектов. Это приведет к:

Точность=acc TP(acc TP+acc FP)=4(4+8)=0.3333 и Полнота=acc TPall ground truths=415=0.2667.

Теперь мы можем построить график точность-полнота с этими значениями, как показано на рисунке 6:

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

Если уверенность детектора приводит к небольшому количеству ложных положительных результатов (FP), вероятно, у него будет высокая точность. Однако это может привести к пропуску многих истинных положительных результатов (TP), вызывая высокую частоту ложных отрицательных результатов (FN) и, соответственно, низкую полноту. С другой стороны, принятие большего количества положительных обнаружений может увеличить полноту, но может также увеличить количество FP, что снизит точность.

Площадь под кривой точность-полнота (AUC), вычисленная для целевого класса, представляет значение средней точности для этого конкретного класса. Подход оценки COCO относится к “AP” как среднему значению AUC среди всех целевых классов в наборе изображений, также известному как Mean Average Precision (mAP) в других подходах.

Для большого набора данных детектор, скорее всего, выдаст прямоугольники с различными уровнями уверенности, что приведет к неоднородной линии Precision x Recall и затруднит расчет ее AUC (среднего значения Precision). Разные методы приближают площадь кривой с помощью разных подходов. Популярным подходом является N-интерполяция, где N представляет собой количество точек, отобранных из синей линии Precision x Recall.

Например, подход COCO использует 101-интерполяцию, которая вычисляет 101 точку для равномерно распределенных значений Recall (0, 0.01, 0.02, … 1.00), в то время как другие подходы используют 11 точек (11-интерполяцию). Фигура 7 иллюстрирует кривую Precision x Recall (синий цвет) с 11 равномерно распределенными точками Recall.

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

ρinterp(R)=max⁡r~:r~≥rρ(r~)

где ρ(r~) – измеренная Precision при значении Recall r~.

В этом определении вместо значения Precision ρ(R), наблюдаемого на каждом уровне Recall R, точность ρinterp(R) получается путем рассмотрения максимальной точности, значение Recall которой больше R.

Для такого подхода AUC, представляющая среднее значение Precision, приближается средним значением всех точек и вычисляется следующим образом:

AP11=111=∑R∈{0,0.1,…,1}ρinterp(R)

Что такое средний Recall и как его вычислить?

Средний Recall (AR) – это метрика, которая часто используется вместе с AP для оценки моделей обнаружения объектов. В то время как AP оценивает как Precision, так и Recall при различных порогах уверенности, чтобы предоставить одночисленную сводку о производительности модели, AR фокусируется только на аспекте Recall, не учитывая уверенности и рассматривая все обнаружения как положительные.

Подход COCO вычисляет AR как среднее максимального полученного Recall при IOU > 0,5 и классах.

Используя IOU в диапазоне [0,5, 1] и усредняя значения Recall в этом интервале, AR оценивает предсказания модели относительно локализации объектов. Таким образом, если вашей целью является оценка модели как по высокому Recall, так и по точной локализации объектов, AR может быть ценной метрикой для оценки.

Какие варианты среднего значения Precision и среднего значения Recall существуют?

На основе предопределенных порогов IoU и площадей, связанных с исходными объектами, можно получить различные версии AP и AR:

  • AP@.5: устанавливает порог IoU = 0,5 и вычисляет AUC Precision x Recall для каждого целевого класса в наборе изображений. Затем результаты вычисления для каждого класса суммируются и делятся на количество классов.
  • AP@.75: использует ту же методологию, что и AP@.50, с порогом IoU = 0,75. С этим более высоким требованием к IoU AP@.75 считается более строгим, чем AP@.5, и должен использоваться для оценки моделей, которым необходимо достичь высокой точности локализации в их обнаружениях.
  • AP@[.5:.05:.95]: также известный как AP в инструментах cocoeval. Это расширенная версия AP@.5 и AP@.75, так как она вычисляет AP с различными порогами IoU (0,5, 0,55, 0,6,…,0,95) и усредняет вычисленные результаты, как показано в следующем уравнении. По сравнению с AP@.5 и AP@.75 эта метрика предоставляет комплексную оценку, охватывающую производительность модели в широком диапазоне точностей локализации.

AP@[.5:.05:0.95=AP0.5+AP0.55+…+AP0.9510 \text{AP@[.5:.05:0.95} = \frac{\text{AP}_{0.5} + \text{AP}_{0.55} + … + \text{AP}_{0.95}}{10} AP@[.5:.05:0.95=10AP0.5​+AP0.55​+…+AP0.95​​

  • AP-S: Он применяет AP@[.5:.05:.95] с учетом (малых) объектов истинного значения с площадью <322 \text{area} < 32^2 пикселей.
  • AP-M: Он применяет AP@[.5:.05:.95] с учетом объектов истинного значения (размером VoAGI) с 322<площадь<962 32^2 < \text{area} < 96^2 322<площадь<962 пикселей.
  • AP-L: Он применяет AP@[.5:.05:.95] с учетом (больших) объектов истинного значения с площадью 322<площадь<962 32^2 < \text{area} < 96^2322<площадь<962 пикселей.

Для среднего значения Recall (AR) используются 10 порогов IoU (0.5, 0.55, 0.6,…,0.95) для вычисления значений Recall. AR вычисляется путем ограничения количества обнаружений на изображение или путем ограничения обнаружений на основе площади объекта.

  • AR-1: рассматривает до 1 обнаружения на изображение.
  • AR-10: рассматривает до 10 обнаружений на изображение.
  • AR-100: рассматривает до 100 обнаружений на изображение.
  • AR-S: рассматривает (малые) объекты с площадью <322 \text{area} < 32^2 пикселей.
  • AR-M: рассматривает (размер VoAGI) объекты с 322<площадь<962 32^2 < \text{area} < 96^2 322<площадь<962 пикселей.
  • AR-L: рассматривает (большие) объекты с площадью >962 \text{area} > 96^2 пикселей.

Таблица лидеров по обнаружению объектов

Недавно мы выпустили таблицу лидеров по обнаружению объектов для сравнения точности и эффективности моделей с открытым исходным кодом из нашей платформы.

Для измерения точности мы использовали 12 метрик, включающих среднюю точность и средний отзыв с использованием стиля COCO, сравнивая их с набором данных COCO val 2017.

Как уже обсуждалось ранее, разные инструменты могут применять различные особенности во время оценки. Чтобы избежать несоответствий результатов, мы предпочли не реализовывать нашу версию метрик. Вместо этого мы выбрали официальный код оценки COCO, также известный как PyCOCOtools, код доступен здесь.

В терминах эффективности мы вычисляем количество кадров в секунду (FPS) для каждой модели, используя среднее время оценки по всему набору данных, учитывая предварительную и постобработку. Из-за изменчивости требований к памяти GPU для каждой модели мы выбрали оценку с размером пакета 1 (этот выбор также влияет на нашу предварительную обработку, о которой мы подробнее расскажем позже). Однако стоит отметить, что такой подход может не идеально соответствовать реальной производительности, поскольку для повышения эффективности обычно используются большие размеры пакетов (часто содержащие несколько изображений).

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

Как выбрать лучшую модель на основе метрик?

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

Для общей производительности AP (AP@[.5:.05:.95]) является хорошим выбором, если вам нужна всесторонняя производительность модели при разных порогах IoU, без жесткого требования к локализации обнаруженных объектов.

Если вам нужна модель с хорошим распознаванием объектов и объекты в целом находятся в правильных местах, вы можете обратить внимание на AP@.5. Если вы предпочитаете более точную модель для размещения ограничивающих рамок, более подходящим является AP@.75.

Если у вас есть ограничения на размеры объектов, вступают в игру AP-S, AP-M и AP-L. Например, если ваш набор данных или приложение преимущественно содержит маленькие объекты, AP-S дает представление о эффективности детектора при распознавании таких маленьких целей. Это становится важным в сценариях, таких как обнаружение удаленных транспортных средств или маленьких артефактов в медицинском изображении.

Какие параметры могут влиять на результаты средней точности?

Выбрав модель обнаружения объектов из Hub, мы можем изменять выходные рамки, если мы используем различные параметры в предварительной обработке и последующих шагах модели. Это может повлиять на метрики оценки. Мы выявили некоторые из наиболее распространенных факторов, которые могут привести к вариациям результатов:

  • Игнорирование обнаружений, имеющих оценку ниже определенного порога.
  • Использование batch_sizes > 1 для вывода.
  • Перенесенные модели не выдают те же логиты, что и оригинальные модели.
  • Некоторые объекты истинных значений могут быть проигнорированы оценщиком.
  • Вычисление IoU может быть сложным.
  • Модели, зависящие от текста, требуют точных подсказок.

Давайте возьмем модель DEtection TRansformer (DETR) (facebook/detr-resnet-50) в качестве примера. Мы покажем, как эти факторы могут повлиять на результаты вывода.

Пороговая фильтрация обнаружений перед оценкой

Наша образцовая модель использует класс DetrImageProcessor для обработки ограничивающих рамок и логитов, как показано в следующем фрагменте:

from transformers import DetrImageProcessor, DetrForObjectDetection
import torch
from PIL import Image
import requests

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)

processor = DetrImageProcessor.from_pretrained("facebook/detr-resnet-50")
model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50")

inputs = processor(images=image, return_tensors="pt")
outputs = model(**inputs)

# PIL-изображения имеют размеры в формате (w, h)
target_sizes = torch.tensor([image.size[::-1]])
results = processor.post_process_object_detection(outputs, target_sizes=target_sizes, threshold=0.5)

Параметр threshold в функции post_process_object_detection используется для фильтрации обнаруженных ограничивающих рамок на основе их оценок надежности.

Как уже обсуждалось, кривая Precision x Recall строится путем измерения Precision и Recall во всем диапазоне значений надежности [0,1]. Таким образом, ограничение обнаружений перед оценкой приведет к смещенным результатам, так как мы исключим некоторые обнаружения.

Изменение размера пакета

Размер пакета не только влияет на время обработки, но также может привести к обнаружению разных рамок. Этап предварительной обработки изображений может изменять разрешение входных изображений в зависимости от их размеров.

Как упоминается в документации DETR, по умолчанию DetrImageProcessor изменяет размеры входных изображений так, чтобы самая короткая сторона была равна 800 пикселей, а затем изменяет размеры так, чтобы самая длинная сторона была не более 1333 пикселей. Из-за этого изображения в пакете могут иметь разные размеры. DETR решает эту проблему, заполняя изображения до наибольшего размера в пакете и создавая маску пикселей, которая указывает, какие пиксели являются реальными/какие являются заполнением.

Чтобы проиллюстрировать этот процесс, рассмотрим примеры на рисунке 9 и рисунке 10. На рисунке 9 мы рассматриваем размер пакета = 1, поэтому оба изображения обрабатываются независимо с помощью DetrImageProcessor. Первое изображение изменяется на размер (800, 1201), в результате чего детектор предсказывает 28 рамок с классом vase, 22 рамки с классом chair, десять рамок с классом bottle и т. д.

На рисунке 10 показан процесс с размером пакета = 2, где эти же два изображения обрабатываются с помощью DetrImageProcessor в одном пакете. Оба изображения изменяются таким образом, чтобы иметь одинаковую форму (873, 1201), и применяется заполнение, так что часть изображений с содержимым сохраняется с их изначальными пропорциями. Однако, для первого изображения, например, количество объектов, обнаруженных моделью, отличается: 31 рамка с классом vase, 20 рамок с классом chair, восемь рамок с классом bottle и т. д. Обратите внимание, что для второго изображения, с размером пакета = 2, обнаруживается новый класс dog. Это происходит из-за способности модели обнаруживать объекты разных размеров в зависимости от разрешения изображения.

Портированные модели должны выводить те же логиты, что и оригинальные модели

В Hugging Face мы очень внимательны при портировании моделей в нашу кодовую базу. Мы не только обращаем внимание на архитектуру, четкую документацию и структуру кода, но также гарантируем, что портированные модели могут производить те же логиты, что и оригинальные модели при одинаковых входных данных.

Логиты, выводимые моделью, подвергаются постобработке для получения уверенностных оценок, идентификаторов меток и координат ограничивающих рамок. Таким образом, незначительные изменения в логитах могут влиять на результаты метрик. Вы можете вспомнить приведенный выше пример, где мы обсуждали процесс вычисления средней точности. Мы показали, что уровни уверенности сортируют обнаружения, и небольшие вариации могут привести к изменению порядка и, следовательно, к различным результатам.

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

  • (x, y, ширина, высота): это представляет собой координаты верхнего левого угла, за которыми следуют абсолютные размеры (ширина и высота).
  • (x, y, x2, y2): этот формат указывает координаты верхнего левого угла и нижнего правого угла.
  • (отн_х_центр, отн_у_центр, отн_ширина, отн_высота): значения представляют собой относительные координаты центра и относительные размеры рамки.

Некоторые истинные значения игнорируются в некоторых наборах данных для тестирования

Некоторые наборы данных иногда используют специальные метки, которые игнорируются во время процесса оценки.

Например, COCO использует тег iscrowd для обозначения больших групп объектов (например, много яблок в корзине). Во время оценки объекты с меткой iscrowd=1 игнорируются. Если это не будет учтено, можно получить различные результаты.

Вычисление IoU требует тщательного рассмотрения

На первый взгляд, вычисление IoU может показаться простым на основе его определения. Однако есть важный момент, о котором следует знать: если истинное значение и обнаружение не пересекаются вообще, даже не пересекаются ни одним пикселем, IoU должен быть равен 0. Чтобы избежать деления на ноль при вычислении объединения, можно добавить небольшое значение (называемое эпсилон) в знаменатель. Однако важно тщательно выбирать эпсилон: значение больше 1e-4 может быть недостаточно нейтральным для получения точного результата.

Моделям, условием которых является текст, требуются правильные подсказки

Могут возникать случаи, когда мы хотим оценить модели, условием которых является текст, такие как OWL-ViT, которые могут получать текстовую подсказку и предоставлять местоположение нужного объекта.

Для таких моделей различные подсказки (например, “Найди собаку” и “Где бульдог?”) могут привести к одинаковым результатам. Однако мы решили следовать процедуре, описанной в каждой статье. Например, для OWL-ViT мы предсказываем объекты, используя подсказку “изображение {}” где {} заменяется классами набора данных для тестирования.

Выводы

В этом посте мы представили проблему обнаружения объектов и описали основные метрики, используемые для их оценки.

Как отмечено, оценка моделей обнаружения объектов может потребовать больше работы, чем кажется на первый взгляд. Особенности каждой модели должны быть тщательно учтены, чтобы избежать предвзятых результатов. Кроме того, каждая метрика представляет различную точку зрения на одну и ту же модель, и выбор “лучшей” метрики зависит от применения модели и характеристик выбранного набора данных для тестирования.

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

Результаты, показанные в нашей таблице лидеров 🤗 Обнаружения объектов, вычисляются с использованием независимого инструмента PyCOCOtools, широко используемого сообществом для сравнения моделей. Мы стремимся собрать наборы данных различных областей (например, медицинские изображения, спорт, автономные транспортные средства и т. д.). Вы можете использовать страницу обсуждения, чтобы просить наборы данных, модели и функции. Не теряйте время! Хотите увидеть вашу модель или набор данных в нашей таблице лидеров? Представьте свою модель и набор данных, настройте и дайте ему рейтинг! 🥇

Дополнительные ресурсы

  • Руководство по обнаружению объектов
  • Задача обнаружения объектов
  • Статья “Что делает предложения обнаружения эффективными”
  • Статья “Сравнительный анализ метрик обнаружения объектов с сопроводительным набором инструментов с открытым исходным кодом”
  • Статья “Обзор метрик производительности для алгоритмов обнаружения объектов”

Особая благодарность 🙌 @merve, @osanseviero и @pcuenq за их отзывы и отличные комментарии. 🤗