- Вам нужен срез (плиточный) вывод для обнаружения небольших объектов на спутниковых изображениях или изображениях с высоким разрешением?
- Нужны ли вам объяснимые метрики для вашей модели обнаружения (анализ возможных улучшений)?
- Вам нужен интерактивный пользовательский интерфейс для визуализации ошибочных прогнозов?
- Вы полагаетесь на модели 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