$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Bu çalışmada yalnızca kamuya açık, kimliksizleştirilmiş BT ve MRI görüntüleme veri kümeleri kullanılmıştır. Hiçbir canlı insan veya hayvan denek dahil edilmedi. Bu nedenle, kurumsal inceleme kurulu (IRB) veya etik kurul onayı gerekmemiştir.
Yönteme genel bakış
Bu protokol, enerji tasarruflu tıbbi görüntü gürültü giderme için tekrarlanabilir bir boru hattı sunar. Keskinleştirme filtreleri ve K-ortalama kümeleme dahil olmak üzere ön işleme tekniklerini, görüntülerin gürültüsünü gidermek için evrişimli sinir ağı (CNN) tabanlı bir otomatik kodlayıcıyla birleştirir. Bu entegre yöntem, eğitim süresini ve donanım enerji tüketimini azaltırken görüntü kalitesini artırır ve sürdürülebilir tıbbi teşhisleridestekler 19,20,21,22,23. Şekil 5, uçtan uca çerçeveyi özetlemektedir.

Şekil 5: Önerilen gürültü giderme çerçeve mimarisi. Bu şekil tüm boru hattını özetlemektedir: veri toplama, ön işleme (keskinleştirme + K-ortalama segmentasyonu), ardından CNN tabanlı otomatik kodlayıcı gürültü giderme. Yapısal doğruluğu korurken enerji kullanımını azaltmayı amaçlayan hibrit yaklaşımı vurguluyor. Bu rakamın daha büyük bir sürümünü görüntülemek için lütfen buraya tıklayın.
İş akışının tamamı, veri kümesi kurulumundan ön işlemeye (keskinleştirme ve K-ortalamaları) CNN otomatik kodlayıcının gürültü gidermesine ve Teste kadar olan sırayı gösteren Şekil 5'te özetlenmiştir.
Yazılım ve ortam kurulumu
Seçenek A - Google Colab (tekrarlanabilirlik için önerilir): colab.research.google.com'ye gidin, Yeni Not Defteri'ne tıklayın. Çalışma Zamanı'nı seçin > Çalışma zamanı türünü değiştirin > Donanım hızlandırıcısı: GPU > Kaydet'i seçin. Sağlanan not defterini ve veri kümesini .zip yüklemek için Dosya > Karşıya Yükle'ye tıklayın (veya Dosyalar > Mount Drive'a tıklayarak Google Drive'a bağlanın). İlk kod hücresine bağımlılıkları yükleyin (zaten not defterinde): pip install opencv-python scikit-image scikit-learn tensorflow matplotlib numpy pandas. Çalışma Zamanı > Tümünü çalıştır'ı tıklatın. Şunları gördüğünüzü onaylayın: (i) paket sürümleriyle ortam özeti, (ii) GPU adı (hücre çıktısında) ve (iii) bir deneme klasörü oluşturma çalıştırmaları/YYYY-AA-GG/.
Seçenek B - Yerel (conda): Anaconda İstemi/Terminali'ni açın ve şunu çalıştırın:

Veri kümenizi data/raw/ altına ve komut dosyalarını code/ altına yerleştirin. Çalıştır: python code/train_autoencoder.py --data_root data --img_size 256 --k_values 3 5 --epochs 100 --batch 32 --lr 0.001. Şunları görmek için onaylayın: ortam çıktısı, algılanan GPU ve bir günlük dizini çalıştırılır/YYYY-AA-GG/.
Veri kümesi hazırlama
CT ve MRI taramalarının halka açık veri kümeleri, tıbbi görüntüleme havuzlarından elde edildi. Bu veri kümeleri, gerçek dünyadaki klinik taramalara özgü gürültü içeriyordu ve kurumsal ve etik standartlaragöre kimliksizleştirildi 8,9. Her görüntü 256 x 256 piksel olarak yeniden boyutlandırıldı ve uyumluluk için PNG veya DICOM formatında saklandı. Veri kümeleri şu şekilde rastgele bölündü: p'i eğitim için, 'i doğrulama için ve 'i test için, böylece görüntüleme yöntemlerinin ve gürültü seviyelerinin katmanlı bir dağılımı sağlandı⁶. Gürültü istatistikleri, gürültü giderilmeden önce ortalama piksel varyansı kullanılarak ölçüldü.
Klasörleri düzenleyin: Aşağıda açıklandığı gibi bir klasör oluşturun:

Görüntü eklemek için, kimliksizleştirilmiş CT/MRI görüntülerini data/raw/CT ve data/raw/MRI'ye (PNG, JPG veya DICOM) kopyalayın. Python kullanarak görüntü boyutunu standartlaştırın (önerilir): Not defteri hücresini çalıştırın Yeniden boyutlandır ve dönüştür. Her görüntüyü yükler, gerekirse gri tonlamayı dönüştürür ve 256 x 256 olarak yeniden boyutlandırır.

Bir alternatif, açıklandığı gibi GUI (ImageJ/Fiji alternatifi) kullanmaktır. Dosya'ya tıklayın > > Görüntü Sırasını (veya tek görüntüleri) İçe Aktarın, ardından Görüntü > Türü > 8 bit, Görüntü > > Boyutunu Ayarla... > 256 x 256 ve ardından Dosya > Farklı Kaydet > PNG'yi data/preproc/ olarak kaydedin.
Bölmeler oluşturun: Not defteri hücresini Eğit/Val/Test bölmesini çalıştırın (70/15/15); Dosya adlarını karıştırır ve bunları data/splits/train|val|test/ klasörüne kopyalar. Konsol sayıları yazdırır (örneğin, Tren: 700, Val: 150, Test: 150). Kontrol noktası (gözlemle): Verileri / bölmeleri / treni / açın ve görüntülerin 256 x 256 ve gri tonlamalı (1 kanal) olduğunu doğrulayın. Dosya yolunu, modaliteyi ve bölünmüş etiketi listeleyen küçük bir CSV bildirimi (splits.csv) tutun.
Görüntü ön işleme
3 x 3 bileme çekirdeğini kullanın. Keskinleştirme çekirdeği kullanarak görüntü iyileştirme gerçekleştirin. Segmentasyondan önce anatomik sınırları geliştirmek için keskinleştirici bir evrişim çekirdeği kullanıldı:

Bu filtre, yüksek frekanslı bileşenleri 4,5 artırarak önemli yapıları vurgular. Her görüntü, geliştirilmiş görüntüyü oluşturmak için Python'un OpenCV kitaplığı (cv2.filter2D()) kullanılarak birleştirildi. Şekil 6, öncesi ve sonrası karşılaştırmalarını göstermektedir.

Şekil 6: Farklı değerler için doğrulama doğruluğu grafiği k. K-ortalama kümeleme adımında kullanılan çeşitli K değerleri için elde edilen doğrulama doğruluğunu gösteren çubuk grafik (K=2, 3, 4, 5). Doğruluk K=3'te zirve yapar ve anatomik yapılar ile gürültü bölgeleri arasında optimum ayrımı gösterir. Ölçek: Normalleştirilmiş doğruluk değerleri (0-1). Bu rakamın daha büyük bir sürümünü görüntülemek için lütfen buraya tıklayın.
Aşağıdaki kodu kullanarak (Python/OpenCV) uygulayın.

Veya Filtrelerini İşle'> > Evrişveriş'e tıklayarak GUI alternatifini (ImageJ/Fiji) kullanın. Yukarıdaki 3 x 3 matrisi yapıştırın ve tıklayın Tamam > Dosya > Farklı Kaydet > PNG'yi data/preproc/enhanced/. Kenarlar ve organ sınırları daha net göründüğü için kontrol noktasını gözlemleyin; Aşırı keskinleşmiş haleler görülürse, çekirdek merkezi ağırlığını 5'ten 4,5'e düşürün ve yeniden çalıştırın. Şekil 7 , gürültü giderme öncesi ve sonrası sonuçlarını göstermektedir. Önceki görüntüler açıkça gürültü ve bulanıklık sergilerken, sonraki görüntüler gelişmiş netlik, daha keskin anatomik sınırlar ve iyileştirilmiş kontrast göstererek önerilen gürültü giderme hattının etkinliğini gösteriyor.

Şekil 7: Evrişim NAutoencoder ağ mimarisi. Otomatik kodlayıcı mimarisini gösterir: giriş katmanı, kodlayıcı (Conv + Havuz katmanları), darboğaz, kod çözücü (Üst Örnekleme + Transpoze Conv katmanları). Her katman boyut ve işlevle etiketlenmiştir. Bu rakamın daha büyük bir sürümünü görüntülemek için lütfen buraya tıklayın.
K-Segmentasyon için kümeleme anlamına gelir
Geliştirilmiş görüntüler NumPy (image.reshape(-1, 1)) kullanılarak yeniden şekillendirildi ve sklearn.cluster.KMeans(n_clusters=3 veya 5) kullanılarak kümelendi. Bölümlere ayrılmış çıktı, anatomik bölgeleri gürültü bölgelerine karşı görselleştirmek için 2D'ye (np.reshape(clustered_array, image.shape)) yeniden şekillendirildi14. Tablo 1'de segmentasyon ayarları listelenmektedir.
| Sr Hayır | k değeri | Doğruluk |
| 1 | 3 | 0.761 |
| 2 | 5 | 0.869 |
| 3 | 7 | 0.75 |
Tablo 1: Değerleri k ilgili doğrulama doğrulukları ile. Bu tablo, gürültü giderme ardışık düzeninin K-ortalama segmentasyon adımında kullanılan kümeleme parametresi k'nin farklı değerleri için elde edilen doğrulama doğruluklarını sunar. Sonuçlar, k = 5'in en yüksek doğruluğu sağladığını ve optimum kümeleme parametresi seçimine rehberlik ettiğini göstermektedir.
K-Means Segmentasyonu: Aşağıdaki kodu kullanarak yeniden şekillendirin ve kümeleyin (Python/scikit-learn).

Renk önizlemesi (isteğe bağlı) gerçekleştirin ve görsel kalite kontrol için etiketleri renklerle eşleştirin ve keskinleştirilmiş görüntüden kenarları bindirin. K=3 ve K=5 ile koşarak K'yi seçin; aşağı akış bilgi işlem doğrulama doğruluğu (Tablo 1'de ayarlar; Şekil 6 , K'ye karşı doğruluğu göstermektedir). Bu bir kontrol noktasıdır; farklı kümeler oluşturan gürültünün baskın olduğu pikselleri gözlemleyin; anatomik bölgeler bitişik kalmalıdır. Küçük benekler belirirse, anatomik sınırlar uygulayın.
Sinir ağı tabanlı gürültü giderme
Mimari açıklaması: Kodlayıcı-darboğaz-kod çözücü şeması için Şekil 8'e bakın. TensorFlow/Keras kullanılarak CNN tabanlı bir otomatik kodlayıcı geliştirildi. Mimari şunları içeriyordu: giriş katmanı: 256 x 256 gri tonlamalı görüntü, üç evrişimli katmana sahip kodlayıcı (çekirdek: 3 x 3, adım: 1, ReLU aktivasyonu), her biri maksimum havuzlama tarafından takip edilir; yoğun gizli temsil olarak darboğaz, devrik evrişimlere sahip üç yukarı örnekleme katmanına sahip kod çözücü, gürültüsü giderilmiş bir görüntü üreten Sigmoid ile etkinleştirilen katman olarak çıktı. Tablo 2 , tam katman bazında mimari parametreler sağlar.

Şekil 8: Gürültü giderme işleminin görsel sonuçları. Niteliksel değerlendirme için orijinal gürültülü görüntüyü, önceden işlenmiş görüntüyü ve son gürültüsü giderilmiş çıktıyı yan yana sunar. Kenar koruma ve artefakt azaltma gösterir. Bu rakamın daha büyük bir sürümünü görüntülemek için lütfen buraya tıklayın.
| Sr Hayır | Derleme öznitelikleri | Derleme özniteliklerinin değerleri |
| 1 | Iyileştiricisi | Adem |
| 2 | Kayıp | Kategorik Çapraz entropi |
| 3 | Ölçüm | Doğruluk |
Tablo 2: Sinir ağının derleme öznitelikleri. Bu tablo, evrişimli otomatik kodlayıcı modelini eğitmek için kullanılan temel derleme parametrelerini detaylandırır. Bu ayarlar TensorFlow'da uygulanmıştır ve optimize ediciyi, kayıp işlevini, değerlendirme metriğini, dönem sayısını ve parti boyutunu içerir.
Eğitim yapılandırması: Eğitim parametreleri şunları içeriyordu: Ortalama Hata Karesi (MSE) olarak kayıp fonksiyonu, Adam olarak optimize edici (öğrenme oranı = 0.001), 32 parti boyutu ve erken durdurma ile 100 olarak dönemler (sabır = 10).
Eğitime kısa bir genel bakış aşağıdaki gibidir. Colab'a gidip Çalışma Zamanı'nı > Tümünü çalıştır'ı tıklayarak eğitimi başlatın; GPU'nun listelendiğini onaylayın (örneğin, Tesla T4). Python kodu/train_autoencoder.py --data_root verilerini kullanın --epochs 100 --batch 32 --lr 0.001 --early_stop 10. Konsolu kullanarak izleyin dönem, train_loss, val_loss ve saat/dönem yazdırır. Sabırdan sonra erken durdurma tetikleyicileri=iyileşme olmadan 10 dönem. En iyi model runs/.../checkpoints/best.h5 dosyasına kaydedilir. Bu bir kontrol noktasıdır, katman yığınını gösteren model.summary() işlevini kullanarak gözlemleyin; parametre sayısı Tablo 2 ile eşleşmelidir. OOM hataları alırsanız toplu işlemi 16'ya düşürün veya giriş boyutunu 224 x 224 olarak ayarlayın.
Ara kontrol noktaları ve sorun giderme
Keskinleştirme ve segmentasyondan sonra, bölme başına üç görüntüyü önizleyin ve (i) kenarların iyileştirildiğini, (ii) küme maskelerinin anatomi ile hizalandığını onaylayın. Eğitim sırasında doğrulama kaybının azaldığından ve sapmadığından emin olun. Gürültüsü giderilmiş çıktı aşırı yumuşatılmış görünüyorsa, çekirdek merkezini azaltın (4.5) veya daha düşük bir öğrenme oranıyla (örneğin, 5e-4) eğitim dönemlerini 10 artırın.
Performans değerlendirmesi: Aşağıdaki nicel ölçümler kullanıldı: En Yüksek Sinyal-Gürültü Oranı (PSNR), Yapısal Benzerlik İndeksi Ölçüsü (SSIM) ve gürültüsü giderilmiş görüntü sınıflandırmasının Doğrulama Doğruluğu.
Önerilen yöntem, 21.52'da sunulan temel modellere kıyasla PSNR'yi 28.14'den 0.76 dB'ye ve SSIM'i 0.86'dan 7,16 dB'ye iyileştirdi. GPU kullanımı (NVIDIA-SMI günlükleri) ve eğitim süresi izlenerek enerji verimliliği kaydedildi. Tablo 3, gürültü giderme sonuçlarını özetlemektedir.
| Sr Hayır | Metrik | Temel Model |
| 1 | Ortalama Dönem Süresi (sn) | 25.8 |
| 2 | Toplam Antrenman Enerjisi (kWh) | 0.52 |
| 3 | GPU Kullanımı (%) | 85% |
| 4 | Görüntü Başına Çıkarım Süresi (ms) | 18.7 |
| 5 | Doğrulama Doğruluğu (%) | 76.19% |
| 6 | PSNR (dB) | 21.52 |
| 7 | SSIM | 0.7619 |
Tablo 3: Önerilen yönteme karşı temel performans değerlendirme ölçütleri. Bu tablo, önerilen gürültü giderme işlem hattını eğitim süresi, GPU kullanımı ve kalite ölçümleri (PSNR, SSIM ve doğrulama doğruluğu) dahil olmak üzere çeşitli performans ölçümlerinde temel modelle karşılaştırır. Sonuçlar, önerilen yöntemle enerji verimliliğinin ve görüntü kalitesinin arttığını göstermektedir.
PSNR/SSIM ve enerji kullanımını hesaplayın. PSNR/SSIM (scikit-image) için aşağıdaki kodu kullanın.

Enerji/GPU kullanımını hesaplamak için, eğitim sırasında nvidia-smi --query-gpu=power.draw,utilization.gpu --format=csv -l 1'i çalıştır gpu_log.csv an hücreyi çalıştırın (not defterinde sağlanır). İkinci bir terminalde aşağıdaki kodu çalıştırın:

Ortalama gücü (W) hesaplamak için CSV'yi ayrıştırın ve tahmini enerji (Wh = kWh) için eğitim süresi boyunca entegre edin. Dizüstü bilgisayar, doğrudan dahil edilmek üzere PSNR, SSIM, doğrulama doğruluğu, dönem süresi ve enerjiyi results_table3.csv toplar.
Sürdürülebilirlik değerlendirmesi ve teletıp simülasyonu
Cihaz donanımının sürdürülebilirliğini değerlendirmek amacıyla, eskiyen cihazlardan kaynaklanan görüntü bozulmasını simüle etmek amacıyla Gauss ve Poisson gürültüsünü uyguladık. Model, bu bozulmuş girdileri tanıya yakın kaliteye geri döndürerek sağlamlığınıdoğruladı 27,28,29. Teletıp simülasyonlarında, gürültüsü giderilmiş görüntüler Python soketleri kullanılarak simüle edilmiş 256 Kbps bant genişliği ile iletildi. Uzaktan tanılamayı 30,31,32 destekleyen görsel netlik korundu.
Cihaz yaşlandırma simülasyonu için, görüntüleri temizlemek (hücre Yaşlanma simülasyonu) için Gauss gürültüsü (σ=10-30) ve Poisson gürültüsü uygulayın ve verilere/simüle edilmiş/yaşlı/'ya kaydedin. Eğitilen modeli yaşlı/girdiler üzerinde çalıştırın; Çıktıları Results/aged_denoised/ klasörüne kaydedin. Görsel kalitenin tanıya yakın doğruluğa ulaşması gerektiğini gözlemleyin; PSNR/SSIM'i taban çizgisiyle karşılaştırın.