💡💡💡Эта статья является первой, опубликованной во всей сети и доработанной исключительно.:Многомасштабное сверточное внимание (MSCA) эффективно извлекает контекстную информацию, является весьма новым и инновационным.
1) Используется в качестве внимания MSCA;
Индекс рекомендации: пять звезд
MSCA | Персональное тестирование позволяет достичь точек роста в нескольких наборах данных, а многомасштабные функции также очень хорошо работают при обнаружении небольших целей.
бумага:https://arxiv.org/pdf/2209.08575.pdf
Аннотация: Представляем SegNeXt, простую архитектуру сверточной сети для семантической сегментации. За счет эффективности самовнимания при кодировании пространственной информации,В последнее время модели на основе Transformer доминируют в области семантической сегментации. в этой статье,Мы демонстрируем, что сверточное внимание кодирует контекстную информацию более эффективно, чем механизм самообслуживания в Transformer.。В этой статье повторно рассматриваются существующие успешные схемы сегментации и обнаруживаются несколько ключевых ингредиентов, которые помогают улучшить производительность.,тем самым побуждая насРазработана новая сверточная архитектура внимания.планSegNeXt。Без каких-либо необычных ингредиентов,Наш SegNeXt значительно улучшает предыдущую производительность в популярных тестах (Включая ADE20K, Городские пейзажи, COCO-Stuff, Pascal VOC).,Pascal Контекст и iSAID) работа по новейшим методикам. Стоит отметить, что SegNeXt работает лучше, чем EfficientNet-L2. w/ NAS-FPN и использует только 1/10 своих параметров в Паскале. VOC В тесте 2012 года он достиг 90,6% в рейтинговом списке. млн. SegNeXt достигает в среднем ~2,0% по сравнению с современными методами с такими же или меньшими вычислениями в наборе данных ad20k. млн улучшений.
РазработанныйНовый модуль многомасштабного сверточного внимания (MSCA). Как показано на рисунке 2 Как показано на (a), MSCA состоит из трех частей: свертка глубины объединяет локальную информацию, свертка полосы глубины с несколькими ветвями фиксирует многомасштабный контекст, а свертка 1 × 1 моделирует взаимосвязь между различными каналами.
Основной код:
class MSCAAttention(nn.Module):
# SegNext NeurIPS 2022
# https://github.com/Visual-Attention-Network/SegNeXt/tree/main
def __init__(self, dim):
super().__init__()
self.conv0 = nn.Conv2d(dim, dim, 5, padding=2, groups=dim)
self.conv0_1 = nn.Conv2d(dim, dim, (1, 7), padding=(0, 3), groups=dim)
self.conv0_2 = nn.Conv2d(dim, dim, (7, 1), padding=(3, 0), groups=dim)
self.conv1_1 = nn.Conv2d(dim, dim, (1, 11), padding=(0, 5), groups=dim)
self.conv1_2 = nn.Conv2d(dim, dim, (11, 1), padding=(5, 0), groups=dim)
self.conv2_1 = nn.Conv2d(dim, dim, (1, 21), padding=(0, 10), groups=dim)
self.conv2_2 = nn.Conv2d(dim, dim, (21, 1), padding=(10, 0), groups=dim)
self.conv3 = nn.Conv2d(dim, dim, 1)
def forward(self, x):
u = x.clone()
attn = self.conv0(x)
attn_0 = self.conv0_1(attn)
attn_0 = self.conv0_2(attn_0)
attn_1 = self.conv1_1(attn)
attn_1 = self.conv1_2(attn_1)
attn_2 = self.conv2_1(attn)
attn_2 = self.conv2_2(attn_2)
attn = attn + attn_0 + attn_1 + attn_2
attn = self.conv3(attn)
return attn * u
Подробности см.:
https://cv2023.blog.csdn.net/article/details/134032386