$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
In dieser Studie wurden ausschließlich öffentlich zugängliche, anonymisierte CT- und MRT-Bildgebungsdatensätze verwendet. Es waren keine lebenden Menschen oder Tiere beteiligt. Daher war keine Genehmigung durch das Institutional Review Board (IRB) oder die Ethikkommission erforderlich.
Methodenübersicht
Dieses Protokoll stellt eine reproduzierbare Pipeline für die energieeffiziente Entrauschung medizinischer Bilder dar. Es kombiniert Vorverarbeitungstechniken, einschließlich Schärfefilter und K-Means-Clustering, mit einem auf CNN (Convolutional Neural Network) basierenden Autoencoder zur Entrauschung von Bildern. Diese integrierte Methode verbessert die Bildqualität bei gleichzeitiger Reduzierung der Schulungszeit und des Energieverbrauchs der Hardware und unterstützt eine nachhaltige medizinische Diagnostik 19,20,21,22,23. Abbildung 5 fasst das End-to-End-Framework zusammen.

Abbildung 5: Vorgeschlagene Rauschunterdrückungs-Framework-Architektur. Diese Abbildung skizziert die gesamte Pipeline: Datenerfassung, Vorverarbeitung (Sharpening + K-Means-Segmentierung), gefolgt von CNN-basierter Autoencoder-Rauschunterdrückung. Er betont den hybriden Ansatz, der darauf abzielt, den Energieverbrauch zu senken und gleichzeitig die strukturelle Treue zu erhalten. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.
Der vollständige Arbeitsablauf ist in Abbildung 5 zusammengefasst, die die Sequenz von der Einrichtung des Datensatzes über die Vorverarbeitung (Sharpening und K-Means) und die Rauschunterdrückung des CNN-Autoencoders bis hin zum Testen zeigt.
Einrichtung von Software und Umgebung
Option A - Google Colab (empfohlen für die Reproduzierbarkeit): Wechseln Sie zu colab.research.google.com, und klicken Sie auf Neues Notizbuch. Wählen Sie Runtime > Laufzeittyp ändern > Hardwarebeschleuniger: GPU > Speichern aus. Klicken Sie auf Datei > Hochladen , um das bereitgestellte Notizbuch und den Datensatz .zip hochzuladen (oder verbinden Sie Google Drive, indem Sie auf Dateien > Laufwerk mounten) klicken. Installieren Sie in der ersten Codezelle Abhängigkeiten (bereits im Notebook): pip install opencv-python scikit-image scikit-learn tensorflow matplotlib numpy pandas. Klicken Sie auf Runtime > Run all. Bestätigen Sie, dass Folgendes angezeigt wird: (i) eine Umgebungszusammenfassung mit Paketversionen, (ii) GPU-Name (in der Zellenausgabe) und (iii) die Erstellung eines Experimentordners wird ausgeführt/JJJJ-MM-TT/.
Option B - Lokal (Conda): Öffnen Sie Anaconda Prompt/Terminal und führen Sie Folgendes aus:

Platzieren Sie Ihren Datensatz unter data/raw/ und Skripte unter code/. Ausführen: python code/train_autoencoder.py --data_root data --img_size 256 --k_values 3 5 --epochs 100 --batch 32 --lr 0.001. Bestätigen Sie, um Folgendes zu sehen: Umgebungsausdruck, erkannte GPU und ein Protokollverzeichnis wird ausgeführt/YYYY-MM-DD/.
Vorbereitung des Datensatzes
Öffentlich zugängliche Datensätze von CT- und MRT-Scans stammen aus Repositorien für medizinische Bildgebung. Diese Datensätze enthielten Rauschen, das für reale klinische Scans typisch ist, und wurden nach institutionellen und ethischen Standards anonymisiert 8,9. Jedes Bild wurde auf 256 x 256 Pixel verkleinert und aus Kompatibilitätsgründen im PNG- oder DICOM-Format gespeichert. Die Datensätze wurden nach dem Zufallsprinzip wie folgt aufgeteilt: 70 % für das Training, 15 % für die Validierung und 15 % für die Tests, um eine geschichtete Verteilung der Bildgebungsmodalitäten und des Rauschpegels zu gewährleisten. Die Rauschstatistik wurde anhand der mittleren Pixelvarianz vor der Rauschunterdrückung gemessen.
Ordner organisieren: Erstellen Sie einen Ordner wie unten beschrieben:

Um Bilder hinzuzufügen, kopieren Sie anonymisierte CT/MRT-Bilder in data/raw/CT und data/raw/MRT (PNG, JPG oder DICOM). Standardisieren der Bildgröße mit Python (empfohlen): Führen Sie die Notebook-Zelle Resize & convert aus. Es lädt jedes Bild, konvertiert bei Bedarf Graustufen und passt die Größe auf 256 x 256 an.

Eine Alternative ist die Verwendung der GUI (ImageJ/Fiji-Alternative) wie beschrieben. Klicken Sie auf Datei > Importieren > Bildsequenz (oder einzelne Bilder), dann Bild-> Geben Sie > 8-Bit, Bild > > Größe anpassen... > 256 x 256 und dann Datei > Speichern als > PNG in data/preproc/.
Splits erstellen: Führen Sie die Notebook-Zelle Train/Val/Test split (70/15/15) aus; Es mischt Dateinamen und kopiert sie in data/splits/train|val|test/. Die Konsole druckt die Zählungen aus (z. B. Zug: 700, Val: 150, Test: 150). Checkpoint (beobachten): Öffnen Sie Daten/splits/train/ und überprüfen Sie, ob die Bilder 256 x 256 und Graustufen (1 Kanal) sind. Bewahren Sie ein kleines CSV-Manifest (splits.csv) auf, in dem der Dateipfad, die Modalität und die geteilte Bezeichnung aufgeführt sind.
Bildvorverarbeitung
Verwenden Sie den 3 x 3 Schärfkern. Führen Sie die Bildverbesserung mit einem Scharfzeichnungskern durch. Ein schärfender Faltungskern wurde verwendet, um die anatomischen Grenzen vor der Segmentierung zu verbessern:

Dieser Filter akzentuiert wichtige Strukturen, indem er hochfrequente Anteileanhebt 4,5. Jedes Bild wurde mit der OpenCV-Bibliothek von Python (cv2.filter2D()) gefaltet, um das erweiterte Bild zu erzeugen. Abbildung 6 veranschaulicht Vorher-Nachher-Vergleiche.

Abbildung 6: Diagramm der Validierungsgenauigkeit für verschiedene Werte von k. Das Balkendiagramm veranschaulicht die Validierungsgenauigkeit, die für verschiedene Werte von K erreicht wurde, die im K-Means-Clustering-Schritt verwendet wurden (K=2, 3, 4, 5). Die Genauigkeit erreicht einen Spitzenwert von K=3, was auf eine optimale Trennung zwischen anatomischen Strukturen und Geräuschbereichen hinweist. Skala: Normalisierte Genauigkeitswerte (0-1). Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.
Wenden Sie (Python/OpenCV) mit dem folgenden Code an.

Oder verwenden Sie die GUI-Alternative (ImageJ/Fiji), indem Sie auf Process > Filters > Convolve klicken. Fügen Sie die obige 3 x 3-Matrix ein und klicken Sie auf OK > Datei >> Speichern als PNG in data/preproc/enhanced/. Beobachten Sie den Kontrollpunkt, wie Kanten und Organgrenzen schärfer erscheinen; Wenn überschärfte Halos angezeigt werden, reduzieren Sie die zentrale Gewichtung des Kernels von 5 auf 4,5 und führen Sie den Vorgang erneut aus. Abbildung 7 zeigt die Vorher-Nachher-Ergebnisse der Rauschunterdrückung. Die Vorher-Bilder zeigen deutlich Rauschen und Unschärfe, während die Nachher-Bilder eine verbesserte Klarheit, schärfere anatomische Grenzen und einen verbesserten Kontrast aufweisen, was die Wirksamkeit der vorgeschlagenen Rauschunterdrückungspipeline demonstriert.

Abbildung 7: Convolution NAutoencoder-Netzwerkarchitektur. Veranschaulicht die Architektur des Autoencoders: Eingabeschicht, Encoder (Conv + Pool-Schichten), Engpass, Decoder (Upsampling + Transposed Conv-Schichten). Jede Schicht ist mit Größe und Funktion beschriftet. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.
K-Means-Clustering für die Segmentierung
Erweiterte Bilder wurden mit NumPy (image.reshape(-1, 1)) umgeformt und mit sklearn.cluster.KMeans(n_clusters=3 oder 5) gruppiert. Die segmentierte Ausgabe wurde wieder in 2D umgeformt (np.reshape(clustered_array, image.shape)), um anatomische Regionen im Vergleich zu den Rauschzonen14 zu visualisieren. Tabelle 1 listet die Segmentierungseinstellungen auf.
| Sr Nein | Wert von k | Genauigkeit |
| 1 | 3 | 0.761 |
| 2 | 5 | 0.869 |
| 3 | 7 | 0.75 |
Tabelle 1: Werte von k mit entsprechenden Validierungsgenauigkeiten. In dieser Tabelle sind die Validierungsgenauigkeiten aufgeführt, die für verschiedene Werte des Clustering-Parameters k ermittelt wurden, der im Schritt der K-Means-Segmentierung der Rauschunterdrückungspipeline verwendet wird. Die Ergebnisse zeigen, dass k = 5 die höchste Genauigkeit ergibt und eine optimale Auswahl der Clustering-Parameter ermöglicht.
K-Means-Segmentierung: Umformen und Clustern (Python/scikit-learn) mithilfe des folgenden Codes.

Führen Sie eine Farbvorschau durch (optional) und ordnen Sie Beschriftungen Farben zu, um die visuelle Qualitätskontrolle zu gewährleisten und Kanten aus dem scharfgezeichneten Bild zu überlagern. Wähle K aus, indem du mit K=3 und K=5 läufst; Validierungsgenauigkeit nachgelagert berechnen (Tabelle 1 listet Einstellungen auf; Abbildung 6 zeigt die Genauigkeit im Vergleich zu K). Dies ist ein Checkpoint; Beobachten Sie auf rauschdominante Pixel, die unterschiedliche Cluster bilden; anatomische Regionen sollten zusammenhängend bleiben. Wenn kleine Flecken auftreten, wenden Sie anatomische Grenzen an.
Auf neuronalen Netzen basierende Rauschunterdrückung
Beschreibung der Architektur: In Abbildung 8 finden Sie den Schaltplan für den Encoder-Bottleneck-Decoder. Ein CNN-basierter Autoencoder wurde unter Verwendung von TensorFlow/Keras entwickelt. Die Architektur umfasste: Eingabeschicht: 256 x 256 Graustufenbild, Encoder mit drei Faltungsschichten (Kernel: 3 x 3, Stride: 1, ReLU-Aktivierung), jeweils gefolgt von Max-Pooling; Flaschenhals als dichte latente Darstellung, Decoder mit drei Up-Sampling-Schichten mit transponierten Faltungen, Ausgabe als Sigmoid-aktivierte Schicht, die ein entrauschtes Bild erzeugt. Tabelle 2 enthält die vollständigen Architekturparameter für die einzelnen Schichten.

Abbildung 8: Visuelle Ergebnisse des Entrauschungsprozesses. Präsentiert das ursprüngliche verrauschte Bild, das vorverarbeitete Bild und die entrauschte Endausgabe nebeneinander für die qualitative Bewertung. Veranschaulicht die Kantenerhaltung und die Reduzierung von Artefakten. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzuzeigen.
| Sr Nein | Kompilierungs-Attribute | Werte von Kompilierungsattributen |
| 1 | Optimierer | Adam |
| 2 | Verlust | Kategoriale Kreuzentropie |
| 3 | Metrik | Genauigkeit |
Tabelle 2: Kompilierungsattribute des neuronalen Netzwerks. In dieser Tabelle sind die wichtigsten Kompilierungsparameter aufgeführt, die zum Trainieren des Convolutional Autoencoder-Modells verwendet werden. Diese Einstellungen wurden in TensorFlow implementiert und umfassen den Optimierer, die Verlustfunktion, die Bewertungsmetrik, die Anzahl der Epochen und die Batchgröße.
Trainingskonfiguration: Zu den Trainingsparametern gehörten: Verlustfunktion als Mean Squared Error (), Optimierer als Adam (Lernrate = 0,001), Batchgröße von 32 und Epochen als 100 mit frühem Stopp (Geduld = 10).
Im Folgenden finden Sie einen kurzen Überblick über die Schulung. Starten Sie das Training, indem Sie zu Colab gehen und auf Runtime > Run all klicken. Vergewissern Sie sich, dass die GPU aufgeführt ist (z. B. Tesla T4). Verwenden Sie Python-Code/train_autoencoder.py --data_root data --epochs 100 --batch 32 --lr 0.001 --early_stop 10. Die Überwachung mithilfe der Konsole druckt Epoche, train_loss, val_loss und Zeit/Epoche. Ein vorzeitiger Stopp löst nach Geduld = 10 Epochen ohne Verbesserung aus. Das beste Modell wird in der Datei runs/.../checkpoints/best.h5 gespeichert. Dies ist ein Checkpoint, beobachten Sie mit model.summary(), das den Layer-Stack anzeigt; Die Parameteranzahl sollte mit Tabelle 2 übereinstimmen. Wenn Sie OOM-Fehler erhalten, reduzieren Sie den Batch auf 16, oder legen Sie die Eingabegröße auf 224 x 224 fest.
Zwischenprüfpunkte und Fehlerbehebung
Zeigen Sie nach dem Schärfen und Segmentieren eine Vorschau von drei Bildern pro Teilung an und bestätigen Sie, dass (i) die Kanten verbessert wurden und (ii) die Cluster-Masken an der Anatomie ausgerichtet sind. Stellen Sie während des Trainings sicher, dass der Validierungsverlust abnimmt und nicht divergiert. Wenn die entrauschte Ausgabe überglättet erscheint, reduzieren Sie die Kernelmitte (4.5) oder erhöhen Sie die Trainingsepochen um 10 mit einer niedrigeren Lernrate (z. B. 5e-4).
Leistungsbewertung: Die folgenden quantitativen Metriken wurden verwendet: Peak Signal-to-Noise Ratio (PSNR), Structural Similarity Index Measure (SSIM) und Validierungsgenauigkeit der Klassifizierung von entrauschten Bildern.
Die vorgeschlagene Methode verbesserte den PSNR von 21,52 auf 28,14 dB und den SSIM von 0,76 auf 0,86 im Vergleich zu den in 7,16 vorgestellten Basismodellen. Die Energieeffizienz wurde durch die Überwachung der GPU-Auslastung (NVIDIA-SMI-Protokolle) und der Trainingszeit erfasst. Tabelle 3 fasst die Ergebnisse der Rauschunterdrückung zusammen.
| Sr Nein | Metrik | Basismodell |
| 1 | Durchschnittliche Epochenzeit (sec) | 25.8 |
| 2 | Gesamte Trainingsenergie (kWh) | 0.52 |
| 3 | GPU-Auslastung (%) | 85% |
| 4 | Inferenzzeit pro Bild (ms) | 18.7 |
| 5 | Genauigkeit der Validierung (%) | 76.19% |
| 6 | PSNR (dB) | 21.52 |
| 7 | SSIM | 0.7619 |
Tabelle 3: Leistungsbewertungsmetriken der Baseline im Vergleich zur vorgeschlagenen Methode. In dieser Tabelle wird die vorgeschlagene Rauschunterdrückungspipeline mit einem Basismodell für mehrere Leistungsmetriken verglichen, einschließlich Trainingszeit, GPU-Auslastung und Qualitätsmaßstäbe (PSNR, SSIM und Validierungsgenauigkeit). Die Ergebnisse deuten auf eine verbesserte Energieeffizienz und Bildqualität mit der vorgeschlagenen Methode hin.
Berechnen Sie PSNR/SSIM und den Energieverbrauch. Verwenden Sie für PSNR/SSIM (scikit-image) den folgenden Code.

Für die Nutzung von Rechenenergie/GPU führen Sie die Zelle aus, die nvidia-smi --query-gpu=power.draw,utilization.gpu --format=csv -l 1 protokolliert, um während des Trainings auszuführen/.../gpu_log.csv (im Notebook bereitgestellt). Führen Sie in einem zweiten Terminal den folgenden Code aus:

Analysieren Sie CSV, um die durchschnittliche Leistung (W) zu berechnen und über die Trainingszeit für die geschätzte Energie (Wh = kWh) zu integrieren. Das Notebook aggregiert PSNR, SSIM, Validierungsgenauigkeit, Epochenzeit und Energie in results_table3.csv für die direkte Einbeziehung.
Nachhaltigkeitsbewertung und telemedizinische Simulation
Um die Nachhaltigkeit der Gerätehardware zu bewerten, haben wir Gauß- und Poisson-Rauschen angewendet, um die Bildverschlechterung durch alternde Geräte zu simulieren. Das Modell stellte diese verschlechterten Eingaben in nahezu diagnostischer Qualität wieder her und bestätigte seine Robustheit 27,28,29. In telemedizinischen Simulationen wurden entrauschte Bilder mit einer simulierten Bandbreite von 256 Kbit/s unter Verwendung von Python-Sockets übertragen. Die visuelle Klarheit wurde beibehalten und unterstützt die Ferndiagnose 30,31,32.
Wenden Sie für die Simulation der Gerätealterung Gaußsches Rauschen (σ=10-30) und Poisson-Rauschen auf bereinigte Bilder an (Zellenalterungssimulation) und speichern Sie sie in data/simulated/aged/. Führen Sie das trainierte Modell auf aged/-Eingaben aus. Speichern Sie die Ausgaben in results/aged_denoised/. Beachten Sie, dass die visuelle Qualität nahezu diagnostische Genauigkeit erreichen sollte. Vergleichen Sie PSNR/SSIM mit dem Ausgangswert.
Komprimieren Sie für den Telemedizin-Bandbreitentest entrauschte Bilder mit 85 % bis 95 % in PNG/JPEG und senden Sie eine simulierte 256-kbit/s-Verbindung mit dem bereitgestellten Python-Socket-Test (telemed_sim.py). Messen Sie die Roundtrip-Zeit und den Dateiintegritäts-Hash; Stellen Sie sicher, dass keine diagnostischen Artefakte eingeführt werden. Beachten Sie, dass die visuelle Klarheit erhalten bleibt und die Dateigrößen für Workflows mit geringer Bandbreite geeignet sind.
Protokoll-Endpunkt
Nach Abschluss des Vorgangs sollten Sie über Folgendes verfügen: (i) geschärfte Bilder in preproc/enhanced/, (ii) segmentierte Bilder in preproc/segmented/, (iii) einen trainierten Autoencoder mit best.h5 in runs/.../checkpoints/, (iv) rauschfreie Ausgaben für Test- und gealterte Bilder in results/, (v) eine kompilierte Metrikdatei (results_table3.csv), in der PSNR, SSIM, Validierungsgenauigkeit, Epochenzeit und geschätzte Energie zusammengefasst sind.