💡💡💡Эксклюзивные улучшения этой статьи:Пирамидальная сеть с функциями фильтрации высокого уровня(HS-FPN),Способен уничтожать как крупные, так и мелкие цели.,Расширьте возможности модели выражать функции в разных масштабах.,Помощь в обнаружении небольших целей
💡💡💡существоватьBCCDНаборы медицинских данных демонстрируют бурный рост。
бумага: https://arxiv.org/pdf/2401.00926.pdf
Аннотация: Традиционный процесс стандартного больничного анализа крови требует, чтобы врачи вручную отделяли лейкоциты. Используйте микроскоп, чтобы наблюдать микроскопическое изображение крови пациента. Эти изолированные лейкоциты затем сортируются с помощью автоматических сортировщиков лейкоцитов для определения типов лейкоцитов, присутствующих в различных соотношениях и объемах образцов крови, что помогает в диагностике заболеваний. Этот метод не таков, но он также имеет высокую склонность к ошибкам из-за таких факторов, как качество изображения и условия окружающей среды, которые потенциально могут привести к неправильной последующей классификации с ошибочным диагнозом. Современные методы обнаружения лейкоцитов имеют ограничения. При обработке изображений с меньшим количеством признаков WBC и различиями между разными масштабами WBC в большинстве случаев приводит к неудовлетворительным результатам. Для решения этих проблем в данной статье предлагается инновационный метод обнаружения лейкоцитов: многоуровневое слияние и деформация признаков. Обнаружение внимания (MFDS-DETR). Чтобы решить проблему разницы в размерах лейкоцитов, мы разработали пирамиду слияния функций скрининга высокого уровня (HS-FPN) для достижения многоуровневого слияния. Эта модель использует функции высокого уровня в качестве весов для фильтрации информации о функциях низкого уровня через модуль внимания канала, а затем объединяет отфильтрованную информацию с функциями высокого уровня, тем самым улучшая способность модели выражать функции. Кроме того, мы решили проблему отсутствия сигнатур лейкоцитов, включив A. Использование многомасштабного деформируемого модуля самообслуживания в кодере, а также использование механизмов самообслуживания и перекрестно-деформируемого внимания в декодере может помочь извлечь глобальные функции. Характеристическая карта лейкоцитов. Эффективность, превосходство и обобщаемость предлагаемого метода MFDSDETR подтверждены путем сравнения с другими передовыми моделями обнаружения лейкоцитов с использованием частных наборов данных WBCDD, общедоступных LISC и BCCD.
Архитектура, получившая название MFDS-DETR (Multi-Level Feature Fusion with Deformable Self-Attention DETR), предназначена для решения проблемы обнаружения лейкоцитов, которые различаются по масштабу и могут иметь ограниченные функции на изображениях.
Вот разбивка четырех частей архитектуры MFDS-DETR:
Магистральная сеть: это базовая сеть, которая извлекает функции из входного изображения. Обычно в качестве магистральной сети используются предварительно обученные сверточные нейронные сети (CNN), такие как ResNet или VGG.
Сеть пирамидальных функций с фильтрацией высокого уровня (HS-FPN). Этот компонент предназначен для решения проблемы масштабных различий между различными лейкоцитами. Скорее всего, это сеть пирамидных объектов (FPN), которая создает многомасштабную иерархию функций, которая позволяет модели обнаруживать лейкоциты разных размеров. Функции высокого уровня используются для фильтрации (или взвешивания) функций низкого уровня, а затем объединяются с функциями высокого уровня, чтобы улучшить способность модели выражать функции в разных масштабах.
Кодировщик: Кодер отвечает за кодирование функций, извлекаемых магистральной сетью и HS-FPN. Его можно комбинировать с многомасштабным деформируемым модулем самообслуживания для дальнейшего улучшения процесса извлечения признаков. Деформируемые сверточные сети могут адаптивно настраивать свои рецептивные поля, чтобы сосредоточиться на более насыщенных информацией областях изображения, что особенно полезно для обнаружения объектов, которые меняют форму и размер.
Декодер: Декодер принимает закодированные функции и использует их для прогнозирования местоположения и категории лейкоцитов на изображении. Он может использовать механизмы само-внимания и перекрестно-деформируемого внимания для уточнения обнаружения путем рассмотрения глобального контекста в картах объектов.
Структура HS-FPN показана на рисунке 2 и включает два основных компонента:
Чтобы решить присущие многомасштабные проблемы, связанные с наборами данных по лейкоцитам, мы разработали сеть пирамидальных пирамид на основе иерархической шкалы (HS-FPN) для завершения многомасштабного объединения функций. Это позволяет модели собирать более полную информацию о характеристиках лейкоцитов. Структура HS-FPN показана на рисунке 2. HS-FPN в основном состоит из двух частей: (1) Модуль выбора функций. (2) Функциональный модуль Fusion. Первоначально карты объектов в разных масштабах проходят процесс проверки в модуле выбора объектов. Впоследствии информация высокого и низкого уровня в этих картах функций совместно интегрируется с помощью механизма Selective Feature Fusion (SFF). Характеристики, полученные в результате этого слияния, имеют богатое семантическое содержание, что помогает обнаруживать тонкие особенности на микроскопических изображениях лейкоцитов, тем самым расширяя возможности обнаружения модели. Дальнейшая разработка этого механизма SFF и его влияния на производительность модели будет представлена в последующем разделе исследований абляции.
Основной код:
import torch
import torch.nn as nn
class HSFPN(nn.Module):
def __init__(self, in_planes, ratio = 4, flag=True):
super(HSFPN, self).__init__()
self.avg_pool = nn.AdaptiveAvgPool2d(1)
self.max_pool = nn.AdaptiveMaxPool2d(1)
self.conv1 = nn.Conv2d(in_planes, in_planes // ratio, 1, bias=False)
self.relu = nn.ReLU()
self.conv2 = nn.Conv2d(in_planes // ratio, in_planes, 1, bias=False)
self.flag = flag
self.sigmoid = nn.Sigmoid()
nn.init.xavier_uniform_(self.conv1.weight)
nn.init.xavier_uniform_(self.conv2.weight)
def forward(self, x):
avg_out = self.conv2(self.relu(self.conv1(self.avg_pool(x))))
max_out = self.conv2(self.relu(self.conv1(self.max_pool(x))))
out = avg_out + max_out
return self.sigmoid(out) * x if self.flag else self.sigmoid(out)
от искусственного интеллекта, маленький монстр