• Вам нужен срез (плиточный) вывод для обнаружения небольших объектов на спутниковых изображениях или изображениях с высоким разрешением?
  • Нужны ли вам объяснимые метрики для вашей модели обнаружения (анализ возможных улучшений)?
  • Вам нужен интерактивный пользовательский интерфейс для визуализации ошибочных прогнозов?
  • Вы полагаетесь на модели Detectron2?

Все это возможно с новой интеграцией SAHI в Detectron2 🚀
(Большое спасибо Кадиру Нару за его вклад в PR Detectron2 🔥)



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

Установка

✔️ Установите Pytorch:

conda install pytorch=1.10.0 torchvision=0.11.1 cudatoolkit=11.3 -c pytorch

✔️ Установите САХИ:

conda install sahi -c conda-forge
or
pip install -U sahi

✔️ Установите Detectron2:

pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu113/torch1.10/index.html

Подготовка

✔️ Экспортируйте конфигурацию Detectron2:

# create desired Detectron2 config
from detectron2.config import get_cfg
cfg = get_cfg()
cfg.MODEL.ROI_HEADS.NUM_CLASSES = 445 cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5
# export config as yaml
from sahi.utils.detectron2 import export_cfg_as_yaml export_cfg_as_yaml(cfg, export_path='config.yaml')

Нарезанный прогноз

✔️ Используйте свой путь веса и экспортированный путь конфигурации для выполнения логического вывода:

sahi predict --source image_dir/ --model_type detectron2 --model_path weight.pt --config_path config.yaml --slice_height 512 --slice_width 512

Графики/метрики анализа ошибок

✔️ Создайте результаты прогнозирования в формате COCO, используя набор данных в формате COCO:

sahi predict --source image_dir/ --dataset_json_path dataset.json --model_type detectron2 --model_path weight.pt --config_path config.yaml --no_sliced_prediction

✔️ Создайте графики анализа ошибок, используя созданный файл result.json:

sahi coco analyse --dataset_json_path dataset.json --result_json_path result.json

🎯 Значение показателей:

C75: результаты при пороге 0,75 IOU
C50: результаты при пороге 0,75 IOU
Loc: результаты после игнорирования ошибок локализации
Sim:Результаты после игнорирования ложных срабатываний суперкатегории
Другое: Результаты после игнорирования всех путаниц с категориями
BG: Результаты после игнорирования всех ложноположительных результатов
FN: Результаты после игнорирования всех ложноотрицательных результатов

📈 Возможные улучшения модели:

C75-C50 и C50-Loc=Потенциальный выигрыш за счет более точного прогнозирования ограничивающей рамки
Loc-Sim=Потенциальный выигрыш после устранения путаницы в надкатегориях
>Loc-Oth=Потенциальный выигрыш после исправления путаницы в категориях
Oth-BG=Потенциальный выигрыш после исправления всех ложных срабатываний
BG-FN=Потенциальный выигрыш после исправления всех ложноотрицательных результатов

Интерактивная визуализация

✔️ Установите пятьдесят один:

pip install -U fiftyone

✔️ Запустите пятьдесят одно веб-приложение с результатами ваших прогнозов:

sahi coco fiftyone --dataset_json_path dataset.json --image_dir image_dir/ result.json