$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
В этом исследовании использовались исключительно общедоступные, обезличенные наборы данных КТ и МРТ. Ни живые, ни люди, ни животные не были задействованы. Таким образом, не требовалось одобрения институционального наблюдательного совета (IRB) или комитета по этике.
Обзор метода
Этот протокол представляет собой воспроизводимый конвейер для энергоэффективного шумоподавления медицинских изображений. Он сочетает в себе методы предварительной обработки, включая фильтры повышения резкости и кластеризацию K-средних, с автоэнкодером на основе сверточной нейронной сети (CNN) для удаления шумов на изображениях. Этот интегрированный метод повышает качество изображения, сокращая время обучения и энергопотребление оборудования, поддерживая устойчивую медицинскую диагностику 19,20,21,22,23. На рисунке 5 обобщена комплексная структура.

Рисунок 5: Предлагаемая архитектура фреймворка с шумоподавлением. На этом рисунке показан полный конвейер: сбор данных, предварительная обработка (повышение резкости + сегментация K-средних), а затем шумоподавление автоэнкодера на основе CNN. В нем подчеркивается гибридный подход, направленный на сокращение энергопотребления при сохранении верности конструкции. Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этой цифры.
Полный рабочий процесс обобщен на рисунке 5, где показана последовательность от настройки набора данных до предварительной обработки (повышение резкости и K-средние) и от автоматического шумоподавления от CNN до тестирования.
Настройка программного обеспечения и среды
Вариант А - Google Colab (рекомендуется для воспроизводимости): Перейдите в colab.research.google.com, нажмите «Новая записная книжка». Выберите Среда выполнения > Изменить тип среды выполнения > Аппаратный ускоритель: GPU > Сохранить. Нажмите Файл > Загрузить , чтобы загрузить предоставленную записную книжку и .zip набора данных (или подключите Google Диск, нажав Файлы > Подключить диск). В первую ячейку кода устанавливаем зависимости (уже в блокноте): pip install opencv-python scikit-image scikit-learn tensorflow matplotlib numpy pandas. Нажмите Runtime > Run all. Убедитесь, что вы видите: (i) сводку среды с версиями пакетов, (ii) имя графического процессора (в выводе ячейки) и (iii) создание папки для эксперимента runs/YYYY-MM-DD/.
Вариант Б - Локальный (conda): Откройте Anaconda Prompt/Terminal и выполните:

Поместите свой набор данных в data/raw/, а скрипты в code/. Выполните: python code/train_autoencoder.py --data_root data --img_size 256 --k_values 3 5 --epochs 100 --batch 32 --lr 0.001. Подтвердите, чтобы увидеть: распечатку среды, обнаруженный графический процессор и запуск каталога журнала/YYYY-MM-DD/.
Подготовка набора данных
Общедоступные наборы данных КТ и МРТ были получены из репозиториев медицинской визуализации. Эти наборы данных содержали шум, типичный для реальных клинических сканирований, и были обезличены в соответствии с институциональными и этическими стандартами 8,9. Размер каждого изображения был изменен до 256 x 256 пикселей и сохранен в формате PNG или DICOM для совместимости. Наборы данных были случайным образом разделены следующим образом: 70% для обучения, 15% для валидации и 15% для тестирования, что обеспечило стратифицированное распределение модальностей визуализации и уровней шума. Статистика шума измерялась с использованием средней дисперсии пикселей до шумоподавления.
Организация папок: Создайте папку, как описано ниже:

Чтобы добавить изображения, скопируйте обезличенные изображения КТ/МРТ в data/raw/CT и data/raw/MRI (PNG, JPG или DICOM). Стандартизация размера изображения с помощью Python (рекомендуется): Запустите ячейку блокнота Изменить размер и конвертировать. Он загружает каждое изображение, при необходимости преобразует оттенки серого и изменяет размер до 256 x 256.

Альтернативой является использование графического интерфейса пользователя (альтернатива ImageJ/Fiji), как описано. Нажмите « Файл» > «Импортировать > последовательность изображений (или отдельные изображения»), затем «Тип изображения > > 8 бит», «Изображение > настроить > размер...» > 256 x 256, а затем File > Save As > PNG в data/preproc/.
Создание сплитов: Запустите ячейку блокнота Train/Val/Test split (70/15/15); Он перемешивает имена файлов и копирует их в data/splits/train|val|test/. Консоль выводит количество (например, Поезд: 700, Вал: 150, Тест: 150). Контрольная точка (наблюдение): Откройте данные/разделите/обучите/ и проверьте изображения в формате 256 x 256 и в оттенках серого (1 канал). Сохраните небольшой манифест CSV (splits.csv), в котором перечислены путь к файлу, модальность и разделенная метка.
Предварительная обработка изображений
Используйте ядро для заточки 3 x 3. Выполните улучшение изображения с помощью ядра повышения резкости. Для усиления анатомических границ перед сегментацией использовалось заостренное ядро свертки:

Этот фильтр акцентирует внимание на важных структурах за счет усиления высокочастотных составляющих 4,5. Каждое изображение было свергнуто с помощью библиотеки OpenCV Python (cv2.filter2D()) для создания улучшенного изображения. На рисунке 6 показано сравнение до и после.

Рисунок 6: График точности валидации для различных значений k. Линейчатая диаграмма, иллюстрирующая точность валидации, достигнутую для различных значений K, используемых на этапе кластеризации K-средних (K=2, 3, 4, 5). Точность достигает пика при K=3, что указывает на оптимальное разделение между анатомическими структурами и шумовыми областями. Масштаб: нормализованные значения точности (0-1). Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этой цифры.
Подайте заявку (Python/OpenCV), используя код ниже.

Или используйте альтернативный графический интерфейс пользователя (ImageJ/Fiji), нажав «Обработать» > «Фильтры» > «Свертка». Вставьте матрицу 3 x 3 выше и нажмите OK > Файл > Сохранить как > PNG в data/preproc/enhanced/. Обратите внимание на контрольную точку, поскольку края и границы органов кажутся более четкими; Если видны чрезмерно заточенные ореолы, уменьшите центральный вес ядра с 5 до 4,5 и повторите запуск. На рисунке 7 показаны результаты шумоподавления до и после. На изображениях до отчетливо видны шумы и размытость, в то время как на изображениях после видна повышенная четкость, более четкие анатомические границы и улучшенный контраст, что демонстрирует эффективность предлагаемого конвейера шумоподавления.

Рисунок 7: Архитектура сети Convolution NAutoencoder. Иллюстрирует архитектуру автоэнкодера: входной слой, энкодер (слои Conv + Pool), узкое место, декодер (слои Upsampling + Transposed Conv). Каждый слой помечен по размеру и функции. Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этой цифры.
Кластеризация K-средних для сегментации
Улучшенные изображения были изменены с помощью NumPy (image.reshape(-1, 1)) и кластеризованы с помощью sklearn.cluster.KMeans(n_clusters=3 или 5). Сегментированный вывод был преобразован обратно в 2D (np.reshape(clustered_array, image.shape)) для визуализации анатомических областей в сравнении с зонами шума14. В таблице 1 перечислены настройки сегментации.
| Ср Нет | Значение k | Точность |
| 1 | 3 | 0.761 |
| 2 | 5 | 0.869 |
| 3 | 7 | 0.75 |
Таблица 1: Значения k с соответствующими погрешностями проверки. В этой таблице представлены точности проверки, полученные для различных значений параметра кластеризации k, используемого на этапе сегментации K-средних конвейера шумоподавления. Результаты показывают, что k = 5 дает наивысшую точность, определяющую выбор оптимальных параметров кластеризации.
Сегментация K-средних: Изменение формы и кластеризация (Python/scikit-learn) с использованием приведенного ниже кода.

Выполните предварительный просмотр цвета (необязательно) и сопоставьте надписи с цветами для визуального контроля качества и наложения краев изображения с повышенным резкостью. Выберите K, бегая с K=3 и K=5; точность проверки вычислений на последующих этапах (в таблице 1 перечислены настройки; На рисунке 6 показана точность в зависимости от K). Это контрольно-пропускной пункт; наблюдайте за пикселями с преобладанием шума, образующими отдельные кластеры; Анатомические области должны оставаться смежными. Если появились небольшие пятнышки, нанесите анатомические границы.
Шумоподавление на основе нейронных сетей
Описание архитектуры: На рисунке 8 приведена схема encoder-bottleneck-decoder. Автоэнкодер на основе CNN был разработан с использованием TensorFlow/Keras. Архитектура включала в себя: входной слой: изображение в оттенках серого 256 x 256, кодировщик с тремя сверточными слоями (ядро: 3 x 3, stride: 1, активация ReLU), за каждым из которых следует max-pooling; узкое место в виде плотного латентного представления, декодер с тремя слоями восходящей дискретизации с транспонированными свертками, выводится в виде слоя, активируемого сигмоидой, с получением шумоподавленного изображения. В таблице 2 приведены полные послойные архитектурные параметры.

Рисунок 8: Визуальные результаты процесса шумоподавления. Представляет исходное зашумленное изображение, предварительно обработанное изображение и окончательный шумоподавленный вывод бок о бок для качественной оценки. Демонстрирует сохранение краев и уменьшение артефактов. Пожалуйста, нажмите здесь, чтобы просмотреть увеличенную версию этой цифры.
| Ср Нет | Атрибуты компиляции | Значения атрибутов компиляции |
| 1 | Оптимизатор | Адам |
| 2 | Потеря | Категориальная перекрестная энтропия |
| 3 | Метрика | Точность |
Таблица 2: Компиляция атрибутов нейронной сети. В этой таблице подробно описаны ключевые параметры компиляции, используемые для обучения модели сверточного автоэнкодера. Эти настройки были реализованы в TensorFlow и включают в себя оптимизатор, функцию потерь, метрику оценки, количество эпох и размер пакета.
Конфигурация обучения: Параметры обучения включали: функцию потерь в виде среднеквадратичной ошибки (MSE), оптимизатор в виде Адама (коэффициент обучения = 0,001), размер партии 32 и эпохи в виде 100 с ранней остановкой (терпение = 10).
Краткий обзор тренинга выглядит следующим образом. Запустите обучение, перейдя в Colab и нажав Runtime > Run all; подтвердите, что в списке указан графический процессор (например, Tesla T4). Используйте python code/train_autoencoder.py --data_root data --epochs 100 --batch 32 --lr 0.001 --early_stop 10. Мониторинг с помощью консоли печатает эпоху, train_loss, val_loss и время/эпоху. Ранняя остановка срабатывает после терпения = 10 эпох без улучшения. Лучшая модель сохраняется в runs/.../checkpoints/best.h5. Это контрольная точка, наблюдайте с помощью model.summary(), который показывает стек слоев; Количество параметров должно совпадать с таблицей 2. Если вы получаете ошибки OOM, уменьшите пакет до 16 или установите размер входных данных на 224 x 224.
Промежуточные контрольные точки и устранение неполадок
После повышения резкости и сегментации просмотрите три изображения для каждого разделения и убедитесь, что (i) края усилены, (ii) маски кластера совпадают с анатомией. Во время обучения убедитесь, что потери при валидации уменьшаются и не расходятся. Если шумоподавленный вывод выглядит чрезмерно сглаженным, уменьшите центр ядра (4,5) или увеличьте периоды обучения на 10 с более низкой скоростью обучения (например, 5e-4).
Оценка производительности: Использовались следующие количественные метрики: пиковое отношение сигнал/шум (PSNR), индекс структурного сходства (SSIM) и точность проверки классификации шумоизолированных изображений.
Предложенный метод улучшил PSNR с 21,52 до 28,14 дБ и SSIM с 0,76 до 0,86 по сравнению с базовыми моделями, представленными в 7,16. Энергоэффективность регистрировалась путем мониторинга использования графического процессора (журналы NVIDIA-SMI) и времени обучения. В таблице 3 приведены результаты шумоподавления.
| Ср Нет | Метрический | Базовая модель |
| 1 | Среднее время эпохи (сек) | 25.8 |
| 2 | Общая учебная энергия (кВтч) | 0.52 |
| 3 | Загрузка графического процессора (%) | 85% |
| 4 | Время вывода на изображение (мс) | 18.7 |
| 5 | Точность валидации (%) | 76.19% |
| 6 | PSNR (дБ) | 21.52 |
| 7 | ССИМ | 0.7619 |
Таблица 3: Показатели оценки эффективности базового уровня в сравнении с предложенным методом. В этой таблице сравнивается предлагаемый конвейер шумоподавления с базовой моделью по нескольким показателям производительности, включая время обучения, использование графического процессора и показатели качества (PSNR, SSIM и точность проверки). Полученные результаты свидетельствуют об улучшении энергоэффективности и качества изображения с помощью предложенного метода.
Вычисление PSNR/SSIM и энергопотребление. Для PSNR/SSIM (scikit-image) используйте код ниже.

Для использования вычислительной энергии/графического процессора запустите ячейку, которая регистрирует nvidia-smi --query-gpu=power.draw,utilization.gpu --format=csv -l 1 для запусков/.../gpu_log.csv во время тренировки (предоставляется в блокноте). Во втором терминале выполните следующий код:

Выполните синтаксический анализ CSV для вычисления средней мощности (Вт) и интегрирования за время обучения для расчетной энергии (Втч = кВтч). Записная книжка объединяет PSNR, SSIM, точность проверки, время эпохи и энергию в results_table3.csv для прямого включения.
Оценка устойчивости и моделирование телемедицины
Чтобы оценить устойчивость аппаратного обеспечения устройства, мы применили гауссов и пуассоновский шум для моделирования ухудшения качества изображения из-за старения устройств. Модель восстановила эти ухудшенные входные данные до качества, близкого к диагностическому, подтвердив ее надежность 27,28,29. В телемедицинском моделировании шумоподавленные изображения передавались с помощью моделируемой полосы пропускания 256 Кбит/с с использованием сокетов Python. Четкость зрения была сохранена, что позволило обеспечить дистанционную диагностику 30,31,32.
Для моделирования старения устройства примените гауссов шум (σ=10-30) и шум Пуассона к чистым изображениям (моделирование старения ячейки) и сохраните их в data/simulated/aged/. Запустите обученную модель на входных данных aged/; Сохранение выходных данных в результатах /aged_denoised/. Обратите внимание, что качество зрения должно приближаться к диагностической точности; сравните PSNR/SSIM с базовым уровнем.
Для тестирования пропускной способности телемедицины сожмите шумоподавленные изображения в PNG/JPEG со скоростью 85–95% и отправьте их по смоделированному каналу со скоростью 256 кбит/с, используя предоставленный тест сокета Python (telemed_sim.py). Измерять время кругового пути и хэш целостности файла; Убедитесь, что не введены диагностические артефакты. Обратите внимание на то, что визуальная четкость сохранена, а размеры файлов подходят для рабочих процессов с низкой пропускной способностью.
Конечная точка протокола
По завершении у вас должны быть: (i) изображения с повышенным уровнем резкости в preproc/enhanced/, (ii) сегментированные изображения в preproc/segmented/, (iii) обученный автоэнкодер с best.h5 in runs///checkpoints/, (iv) шумоподавленные выходные данные для тестовых и старых изображений в results/, (v) скомпилированный файл метрик (results_table3.csv), обобщающий PSNR, SSIM, точность проверки, время эпохи и расчетную энергию.