Недавно разработанный DEtection TRansformer (DETR) устанавливает новую парадигму обнаружения объектов. Однако DETR страдает чрезвычайно медленной сходимостью, что значительно увеличивает время и потребление ресурсов для обучения. Медленная сходимость в значительной степени связана со сложностью сопоставления запросов с целевыми функциями в разных пространствах встраивания функций.
В этой статье представлен SAM-DETR, DETR с семантическим выравниванием, который значительно ускоряет сходимость DETR без ущерба для его точности. SAM-DETR решает проблему конвергенции с двух точек зрения.
Алгоритм явно ищет характерные точки с наиболее отличительными признаками для семантического сопоставления, что еще больше ускоряет сходимость и повышает точность распознавания. Работая по принципу plug and play, SAM-DETR хорошо дополняет существующие решения по обнаружению объектов, но в отличие от других алгоритмов, требует незначительных вычислительных затрат. Обширные эксперименты показывают, что предложенный алгоритм SAM-DETR обеспечивает превосходную сходимость, а также конкурентоспособную точность обнаружения.
Алгоритм работает и тестируются со следующими настройками среды:
linux
8 графических процессоров NVIDIA V100 (32 ГБ)
cuda 10.1
python == 3.8
PyTorch == 1.8.1+cu101, TorchVision == 0.9.1+cu101
ССЗ == 7.5.0
cython, pycocotools, tqdm, scipy
Мы рекомендуем использовать точные настройки выше. Однако другие среды (Linux, Python>=3.7, CUDA>=9.2, GCC>=5.4, PyTorch>=1.5.1, TorchVision>=0.6.1) также должны работать.
Установка кода
Сначала клонируйте репозиторий локально:
git clone https://github.com/ZhangGongjie/SAM-DETR.git
Мы рекомендуем вам использовать Anaconda для создания среды conda:
conda create -n sam_detr python=3.8 pip
Затем активируйте среду:
conda activate sam_detr
Затем установите PyTorch и TorchVision:
(желательно использовать наши рекомендуемые настройки; версия CUDA должна соответствовать вашей локальной среде)
conda install pytorch=1.8.1 torchvision=0.9.1 cudatoolkit=10.1 -c pytorch
После этого установите другие требования:
conda install cython scipy tqdm
pip install -U 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
[Необязательно] Если вы хотите запустить многомасштабную версию SAM-DETR), вам необходимо скомпилировать Deformable Attention, который используется в кодировщике DETR для эффективного создания пирамиды признаков. Если вам не нужна многомасштабная версия SAM-DETR, вы можете пропустить этот шаг.
Код реализации доступны : https://github.com/ZhangGongjie/SAM-DETR.
Полная статья: https://arxiv.org/abs/2203.06883v1
Dataset: https://cocodataset.org/