TIDE (набор инструментов для определения ошибки обнаружения)
Хотите улучшить производительность вашей модели обнаружения объектов?
Давайте улучшим его, зная вклад различных типов ошибок, влияющих на общую ценность карты.
Обнаружение и сегментация объектов являются фундаментальной задачей компьютерного зрения с различными приложениями, начиная от самоуправляемых автомобилей и заканчивая обнаружением опухолей.
Чтобы выполнить обнаружение объектов, вам нужен только набор обучающих данных. Существуют некоторые предварительно обученные модели с открытым исходным кодом, такие как API обнаружения объектов Tensorflow,Detectron2 и т. д. Вам просто нужно загрузить эти предварительно обученные модели и переобучить их, используя свой собственный набор данных.
Теперь перейдем к оценке модели. После обучения вашей модели вам необходимо проверить производительность вашей модели. Есть некоторые показатели производительности, такие как AP, значение карты, с помощью которого вы можете получить точность своей модели.
После всего этого обучения и оценки модели вы можете разочароваться, увидев цифры AP и карты, так как они далеки от ваших ожиданий.
Существуют различные решения, с помощью которых вы можете улучшить производительность вашей модели обнаружения объектов, например, улучшить набор данных с помощью увеличения изображения, псевдомаркировки, ансамбля и т. д. Вы можете обратиться к этому блогу за решениями по улучшению вашего набора данных.
Чтобы увеличить ценность карты вашей модели, вы наверняка захотите узнать, где мы можем ее улучшить дополнительно. Вот тут-то и появляется TIDE. TIDE поможет вам точно определить тип ошибки, над устранением которой следует сосредоточиться, чтобы ваша модель работала лучше.
TIDE — это общий инструментарий для выявления ошибок обнаружения и сегментации. Это метод измерения вклада каждой ошибки таким образом, чтобы изолировать ее влияние на общую производительность модели.
- Где мы можем использовать TIDE?
Если мы возьмем в качестве примера две модели, модель 1 предназначена для самоуправляемого автомобиля, а модель 2 предназначена для обнаружения опухолевых клеток, имеющих значение карты 42 и 45 соответственно. В случае с беспилотным автомобилем классификация важнее, чем локализация. Здесь недопустима неправильная классификация объектов на дороге, так как это может привести к аварии. Таким образом, мы будем больше заботиться о том, чтобы вспомнить и исправить классификацию, чем о точной локализации. Принимая во внимание, что мы рассматриваем модель обнаружения опухолевых клеток, локализация преобладает над классификацией. TIDE внесет вклад как в ошибку классификации, так и в ошибку локализации, чтобы мы могли приступить к улучшению модели.
- Различные типы ошибок
Ошибка классификации: объект локализован правильно, но неправильно классифицирован.
Ошибка локализации: объект классифицирован правильно, но локализация объекта неверна.
Ошибка как классификации, так и локализации: объект неправильно классифицирован, а локализация объекта также неверна.
Обнаружение повторяющихся ошибок. Для одной и той же основной истины модель дает две ограничивающие рамки.
Фоновая ошибка: ограничивающая рамка обнаруживается моделью, но нет никакого истинного значения.
Пропущенная ошибка GT: есть наземная правда, но модель полностью не попала в ограничивающую рамку обнаружения.
- Внедрение TIDE для набора данных COCO
# Download the Mask R-CNN results to test on. Only for demonstration purposes. import urllib.request # For downloading the sample Mask R-CNN annotations bbox_file = 'mask_rcnn_bbox.json' mask_file = 'mask_rcnn_mask.json' # Import the TIDE evaluation toolkit from tidecv import TIDE # Import the datasets we want to use import tidecv.datasets as datasets # Load the dataset # This will automatically download COCO's 2017 annotations for you. You can specify your own COCO-style dataset too! # See datasets.py for a list of all the supported datasets. gt = datasets.COCO() # Load the results in COCO format bbox_results = datasets.COCOResult(bbox_file) # These files were downloaded above. mask_results = datasets.COCOResult(mask_file) # Replace them with your own in practice. # Create a TIDE object to use for evaluation tide = TIDE() # Run the evaluations on the standard COCO metrics tide.evaluate_range(gt, bbox_results, mode=TIDE.BOX ) tide.evaluate_range(gt, mask_results, mode=TIDE.MASK ) # Summarize the evaluations run so far in the console tide.summarize()
Вы можете обратиться к этому репозиторию github для реализации TIDE.
TIDE выдаст вывод для набора данных COCO следующим образом:
# Plot summaries for the evaluations run so far tide.plot()
tide.plot() даст визуализацию сводки ошибок.
- Применения TIDE
- Взаимное сравнение моделей: мы можем очень легко сравнивать разные модели с помощью TIDE.
- Перекрестное сравнение данных
- Сравнение по шкале
Ссылки
- Дэниел Боля, Шон Фоули, Джеймс Хейс и Джуди Хоффман; TIDE: общий набор инструментов для выявления ошибок обнаружения объектов, ECCV 2020.
- Тушар Кольхе; Как повысить точность обнаружения объектов за счет понимания данных, https://blog.gofynd.com/boost-object-detection-model-accuracy-552586d698c
- Улучшенная карта для обнаружения объектов https://towardsdatascience.com/a-better-map-for-object-detection-32662767d424
Я надеюсь, что этот контент поможет вам.
Читать мой предыдущий блог
Извлечение текста из неструктурированных данных с помощью простого оптического распознавания текста