Второе нововведение было сделано на основе PConv. Инновационная модель не только имеет качественное улучшение точности и скорости, но и поддерживает понижающую дискретизацию со Stride of 2. Метод улучшения прост и эффективен. Студенты, которым необходимо опубликовать статьи, не должны его пропустить!
Связь:
https://jingjing.blog.csdn.net/article/details/141876973?spm=1001.2014.3001.5502
Статья: Ниже мы покажем, что стоимость можно дополнительно оптимизировать, используя избыточность карт объектов. Как показано на рисунке 3, карты функций между разными каналами очень похожи. Эта избыточность также рассматривалась во многих других работах [17, 82], но немногие из них полностью использовали ее простым и эффективным способом.
В частности, мы предлагаем простой PConv для одновременного уменьшения вычислительной избыточности и доступа к памяти. Левый нижний угол рисунка 4 иллюстрирует, как работает наш PConv. Он просто применяет обычные преобразования к части входных каналов для извлечения пространственных признаков и оставляет остальные каналы неизменными. Для последовательного или регулярного доступа к памяти мы считаем, что первый или последний последовательный канал cp представляет всю карту объектов для вычислений. Не теряя общности, мы считаем, что карты входных и выходных признаков имеют одинаковое количество каналов. Таким образом, FLOP PConv — это просто
При типичном соотношении частей FLOP PConv такие же, как у обычного Conv, а PConv имеет меньший доступ к памяти, то есть:
Это просто регулярное выражение.
Поскольку для извлечения пространственных признаков используются только каналы, можно спросить, можем ли мы просто удалить оставшиеся каналы. Если да, то PConv будет понижен до обычного Conv с меньшим количеством каналов, что противоречит нашей цели по уменьшению избыточности. Обратите внимание, что мы оставляем остальные каналы без изменений, а не удаляем их из карты объектов. Это связано с тем, что они полезны для последующего слоя PWConv, который позволяет информации об объектах проходить по всем каналам.
Чтобы полностью и эффективно использовать информацию со всех каналов, в PConv дополнительно добавлена поточечная свертка (PWConv). Их эффективные рецептивные поля на входной карте объектов вместе выглядят как Т-образный Conv, который больше фокусируется на центральном положении по сравнению с обычным Conv, который обрабатывает патчи равномерно, как показано на рисунке 5. Чтобы обосновать наличие Т-образного рецептивного поля, важность каждой позиции сначала оценивается путем расчета нормы Фробениуса для этой позиции. Мы предполагаем, что позиция имеет тенденцию быть более важной, если ее норма Фробениуса больше, чем у других позиций. Для обычного фильтра Conv норма Фробениуса в позиции i вычисляется по формуле, для . Мы считаем, что выступающим местом является место с наибольшей нормой Фробениуса. Затем каждый фильтр коллективно проверяется в предварительно обученном ResNet18, чтобы определить их важные позиции и построить гистограмму важных позиций. Из результатов на рисунке 6 видно, что центральное положение является наиболее частым заметным положением в фильтре. Другими словами, центральное расположение важнее окружающих соседей. Это согласуется с Т-образными расчетами с центром в центре.
Хотя свертку t-типа можно использовать непосредственно для эффективных вычислений, лучше разложить свертку t-типа на PConv и PWConv, поскольку при разложении используется избыточность между фильтрами и дополнительно экономятся вычислительные усилия. Для одних и тех же входных и выходных данных результат расчета Conv t-типа можно рассчитать следующим образом:
Это выше, чем FLOP PConv и PWConv, то есть:
и (например, когда. Более того, мы можем легко использовать обычные преобразования для двухэтапной реализации.
В этой статье мы предлагаем новый метод улучшения модуля «Узкое место» в сетевой структуре YoloV9. Чтобы еще больше улучшить возможности представления функций и эффективность сети, мы объединяем частичную свертку (PConv) с перетасовкой каналов (ShuffleChannel) и поточечную свертку (Pointwise Convolution), чтобы сформировать новый тип модуля свертки, и он заменяет обычную свертку. в модуле.
В частности, наш улучшенный метод сначала использует PConv для извлечения пространственных объектов из некоторых каналов входной карты объектов, чтобы получить важную локальную информацию и уменьшить избыточность вычислений. Затем, чтобы разорвать фиксированную связь между каналами и повысить нелинейность функций, мы ввели операцию ShuffleChannel, позволяющую изменить порядок каналов выходной карты функций PConv. Этот шаг помогает облегчить поток информации между различными каналами, тем самым расширяя возможности представления функций сети.
После ShuffleChannel мы применяем сверточный слой 1×1 (точечная свертка). Этот сверточный слой не только позволяет нам гибко регулировать количество каналов по мере необходимости для адаптации к входным требованиям последующих сетевых уровней, но также может независимо комбинировать информацию из разных каналов в каждой пространственной позиции, еще больше повышая нелинейность сети. Кроме того, в соответствии с потребностями проектирования сети мы также можем добавить нелинейную функцию активации (например, ReLU) после свертки 1 × 1, чтобы ввести больше нелинейности и повысить сложность модели.
Применяя этот улучшенный модуль свертки к модулю «Узкое место» в сетевой структуре YoloV10, мы ожидаем дальнейшего повышения производительности сети, сохраняя при этом компактность сетевой структуры. Этот улучшенный метод не только уменьшает объем вычислений и потребление памяти, но также помогает расширить возможности представления функций модели, тем самым повышая точность и эффективность обнаружения целей. В последующих экспериментах мы проверим эффективность этого улучшенного метода и изучим его производительность и возможности обобщения в различных сценариях применения.
YOLOv10l summary (fused): 497 layers, 17534672 parameters, 0 gradients, 70.4 GFLOPs
Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 15/15 [00:02<00:00, 5.20it/s]
all 230 1412 0.913 0.907 0.979 0.717
c17 230 131 0.966 0.954 0.989 0.793
c5 230 68 0.923 0.886 0.978 0.806
helicopter 230 43 0.927 0.93 0.945 0.569
c130 230 85 0.959 0.953 0.985 0.638
f16 230 57 1 0.918 0.969 0.643
b2 230 2 0.726 1 0.995 0.714
other 230 86 0.908 0.942 0.965 0.499
b52 230 70 0.842 0.886 0.939 0.771
kc10 230 62 0.934 0.916 0.977 0.812
command 230 40 0.925 0.925 0.983 0.747
f15 230 123 0.959 0.953 0.991 0.665
kc135 230 91 0.94 0.978 0.983 0.675
a10 230 27 0.903 0.815 0.91 0.502
b1 230 20 0.951 0.976 0.99 0.736
aew 230 25 0.924 0.977 0.986 0.783
f22 230 17 0.879 1 0.995 0.769
p3 230 105 0.952 0.962 0.992 0.792
p8 230 1 0.691 1 0.995 0.697
f35 230 32 0.96 0.744 0.945 0.537
f18 230 125 0.946 0.992 0.986 0.798
v22 230 41 0.976 0.979 0.994 0.7
su-27 230 31 0.961 1 0.995 0.833
il-38 230 27 0.839 0.963 0.968 0.739
tu-134 230 1 0.709 1 0.995 0.895
su-33 230 2 1 0 0.995 0.697
an-70 230 2 1 0.883 0.995 0.746
tu-22 230 98 0.948 0.949 0.989 0.789
Полный код связи: