бумага:https://arxiv.org/abs/2211.05778
Ссылка на теоретическую часть Чжиху:CVPR2023 Highlight | Модель ученого доминирует в обнаружении целей COCO, а интерпретация исследовательской группы обнародована. - Чжиху
Отличается от недавних решений CNN, ориентированных на большие ядра.,InternImage использует свертку деформации в качестве своей основной операции.(Эффективное воспринимающее поле необходимо не только для последующих задач.,Он также имеет возможности адаптивной агрегации входных данных и задач в пространственной области). Предлагаемая схема уменьшает строгое индуктивное смещение традиционных CNN.,В то же время вы можете освоить более сильные и надежные навыки выражения эмоций. Эксперименты на таких задачах, как ImageNet, COCO и ADE20K, подтвердили эффективность предложенного решения.,Стоит упомянуть, что:InternImage-H установил новый рекорд 65,4 м А на тест-деве COCO。
InternImage повышает масштабируемость сверточных моделей и устраняет индуктивное смещение за счет перепроектирования операторов и структур модели, включая (1) оператор DCNv3, который вводит общие веса проекции, многогрупповые механизмы и модуляцию точки выборки на основе операторов DCNv2.
(2) Базовый модуль, объединяющий расширенные модули в качестве базового модуля для построения модели.
(3) Правила наложения модулей стандартизируют ширину, глубину, количество групп и другие гиперпараметры модели при расширении модели.
На основе оператора DCNv2 исследователь переработал, скорректировал и предложил оператор DCNv3. Конкретные улучшения включают следующие части.
(1) Общие веса проекций.Похоже на обычную свертку,Различные точки выборки в DCNv2 имеют независимые веса проекции.,Следовательно, размер его параметра имеет линейную зависимость от общего количества точек выборки. Чтобы уменьшить сложность параметров и памяти,Опираясь на идею сепарабельной свертки,Используйте независимые от позиции веса вместо групповых весов.,Распределение весов прогнозов между различными точками выборки,Все зависимости положения выборки сохраняются.
(2) Ввести несколько групп механизмов.Многогрупповой дизайн был впервые представлен в групповой свертке.,И широко используется в многоголовочном самообслуживании Transformer.,Его можно сочетать с адаптивной пространственной агрегацией.,Эффективно улучшайте разнообразие функций. вдохновлен этим,Исследователи делят процесс пространственной агрегации на несколько групп.,Каждая группа имеет независимое смещение выборки. С того времени,Различные группы одного уровня DCNv3 имеют разные режимы пространственной агрегации.,Это приводит к богатому разнообразию функций.
(3) Скалярная нормализация модуляции точки выборки。Чтобы облегчить проблему нестабильности при расширении емкости модели,,Исследователь установил режим нормализации на нормализацию Softmax для каждой выборки.,Это не только делает процесс обучения крупномасштабных моделей более стабильным.,При этом также строится взаимосвязь всех точек отбора проб.
modules.py
серединаОсновной код:
###################### DCNV3 #### start#############################
from ultralytics.nn.ops_dcnv3.modules import DCNv3
class DCNV3_YoLo(nn.Module):
def __init__(self, inc, ouc, k=1, s=1, p=None, g=1, d=1, act=True):
super().__init__()
self.conv = Conv(inc, ouc, k=1)
self.dcnv3 = DCNv3(ouc, kernel_size=k, stride=s, group=g, dilation=d)
self.bn = nn.BatchNorm2d(ouc)
self.act = Conv.default_act
def forward(self, x):
x = self.conv(x)
x = x.permute(0, 2, 3, 1)
x = self.dcnv3(x)
x = x.permute(0, 3, 1, 2)
x = self.act(self.bn(x))
return x
###################### DCNV3 #### END#############################
Подробности см.: