Exploring Diagnostic Methodology for Pulmonary Edema Diagnosis in Patients with Congestive Heart Failure Using U-Net Based Architecture
๐ Doby's Lab (Blog Description)
- MIMIC-CXR-JPG - chest radiographs with structured labels
- Chest X-ray Dataset with Lung Segmentation v1.0.0
- Pulmonary Edema Severity Grades Based on MIMIC-CXR v1.0.1
- ๋ณธ ์ฐ๊ตฌ์ ์์ด๋์ด ๊ธฐ๋ฐ์ด ๋์๋ ๋์ข ์์ Segmentationํ๋ ์ฐ๊ตฌ, TSTBS์์๋ ์๋ฃ์ง์ ์ง๋จ ๊ณผ์ ์ ์ฐฉ์ํ์ฌ ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ฑํ์์ต๋๋ค. ์ด์ ๋ฐ๋ผ Chest X-ray๋ฅผ ํตํด Congestive Heart Failure(์ธํ์ฑ ์ฌ๋ถ์ ) ํ์๋ค์ Pulmonary Edema(ํ๋ถ์ข ) ์ง๋จ์ ํ ๋, ์๋ฃ์ง์ ์ง๋จ ๊ณผ์ ์ ์ฐฉ์ํ์ฌ ํ ์์ญ์ ๋ํ ์ง์ค๋๋ฅผ ๋์ด๊ณ ์ Semantic Segmentation์ ์ฌ์ฉํฉ๋๋ค.
- ๋ถํ ๋ ํ ์์ญ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ ๋ถ๋ฅ ์คํ 3๊ฐ์ง์ ๊ทธ๋ ์ง ์์ ๋ถ๋ฅ ์คํ 2๊ฐ์ง๋ฅผ ์งํํ์ฌ ์ฑ๋ฅ์ ๋น๊ตํ ๊ฒฐ๊ณผ, ํ ์์ญ์ ๋ํด ๊ณ ๋ คํ ์คํ์ด ์ฑ๋ฅ์ด ๋ ์ฐ์ํ๋ค๋ ์ฌ์ค์ ์๊ฒ ๋์์ต๋๋ค.
streamlit
์ ํตํด ๊ตฌํํ ์น์ผ๋ก ํ๋ก์ ํธ์ ์ ๋ฐ์ ์ธ ํ๋ก์ธ์ค๋ฅผ ์์ฝํฉ๋๋ค.
- Lung Segementation์ ์ํํ๋ ๊ฐ์ฅ ์ ํฉํ ๋ชจ๋ธ์ ์ฐพ๊ธฐ ์ํด U-Net, SA U-Net, U-Net++ ์ํคํ ์ฒ๋ฅผ ํ์ตํ์ฌ ์ฑ๋ฅ์ ๋น๊ตํ์์ต๋๋ค.
- Segmentation Task์ ๊ฒฝ์ฐ์๋ PyTorch์ ํ์ฉ๋๋ฅผ ๋์ด๊ธฐ ์ํด์ ์ธ ์ํคํ ์ฒ ๋ชจ๋ ์ง์ ๊ตฌํํ์ฌ ์ฌ์ฉํ์ต๋๋ค.
- U-Net Implementation Repository
- SA U-Net Implementation Repository
- U-Net++ Implementation Repositiory
- Loss function์ Semantic segmentation์์ ๋ณดํธ์ ์ผ๋ก ์ฐ์ด๋ Dice Loss๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
$$DiceLoss = \frac{2\times(|A|\cap|B|)}{|A|+|B|}$$ - ์ข ํฉ์ ์ธ ํ์ต ์คํ์ ๋ชจ๋ ๋์ผํ๊ฒ ์๋์ ๊ฐ์ต๋๋ค.
Loss function | Opimizer | Learning rate | Decay step | Decay rate | Activation | Epochs |
---|---|---|---|---|---|---|
Dice Loss | Adam | 1e-4 | 5 | 0.1 | Sigmoid | 50 |
- ์์ ๊ฐ์ ์ธํ ์ ํตํด ํ์ต์ ์งํํ์์ต๋๋ค.
- SA U-Net์ DropBlock์ ์ฌ์ด์ฆ์ ๋ฐ๋ผ 2๊ฐ์ ํ์ต์ ์งํํ์ต๋๋ค.
- DropBlock 10% - ์ ์ฒด ์ด๋ฏธ์ง์ 10%๋ฅผ Drop
- DropBlock 10% - ์ ์ฒด ์ด๋ฏธ์ง์ 10%๋ฅผ Drop
- U-Net++๋ 2๊ฐ์ง Mode์ ๋ฐ๋ผ ํ์ต์ ์งํํ์ต๋๋ค.
- Fast mode
- Accurate mode
Model | Accuracy | F1-Score | AUC | MCC |
---|---|---|---|---|
U-Net | 94.67% | 0.9808 | 0.9749 | 0.9729 |
SA U-Net (10%) | 93.98% | 0.9684 | 0.9695 | 0.9554 |
SA U-Net (20%) | 93.85% | 0.9660 | 0.9613 | 0.9521 |
U-Net++ (fast) | 94.60% | 0.9795 | 0.9720 | 0.9711 |
U-Net++ (accurate) | 94.59% | 0.9793 | 0.9722 | 0.9708 |
- ํ์ต ๊ฒฐ๊ณผ Segmentation Task์์๋ U-Net์ ์ฌ์ฉํ๊ฒ ๋์์ต๋๋ค.
๋ณธ ๋จ๋ฝ์์๋ Segmentation Task ์ดํ์ ์ป์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ 3๊ฐ์ง Method์ ๊ทธ๋ ์ง ์์ 2๊ฐ์ง Method๋ฅผ ๋ค๋ฃน๋๋ค.
- ์๋ณธ ์ด๋ฏธ์ง์ ๋ํด์๋ ๊ฐ์ฐ์์ ํํฐ๋ง(Gaussian Filtering)์ ์ ์ฉํ๊ณ , ํ ์์ญ ์ด๋ฏธ์ง์ ๋ธ๋๋ฉ์ ํ๋ Method์ ๋๋ค.
- ๊ฐ์ฐ์์ ํํฐ๋ง์ ๋น์ ๋ถ์ผ์์ ๋
ธ์ด์ฆ ์ ๊ฑฐ ํจ๊ณผ๋ฅผ ํ๊ณ ์์ผ๋ฉฐ, ๊ฐ์ฐ์์ ๋ถํฌ์ ๋ฐ๋ผ ์ค์ฌ ํฝ์
๋ก๋ถํฐ ๋ฉ์ด์ง์๋ก ๊ฐ์ค์น๋ฅผ ์ ๊ฒ์ฃผ๋ ์ญํ ์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
$$G(x,y)=\frac{1}{2\pi\sigma}e^{-\frac{x^2+y^2}{2\sigma^2}}$$ -
์ด๋ฏธ์ง ๋ธ๋๋ฉ(Image Blending)์ ๋ ์ด๋ฏธ์ง๋ฅผ ์๋ก ํฉ์น ๋, ๊ฐ์ค์น๋ฅผ ํตํด ํฉ์น๋ ๋ฐฉ๋ฒ์
๋๋ค.
$$g(x)=(1-\alpha)f_1(x)+\alpha f_2(x)$$ - ํด๋น Method๋ฅผ ์ ์ฉํ figure๋ 1๋ฒ์งธ์ ๊ฐ์ต๋๋ค.
- Experiment 1๊ณผ ๊ฐ์ด ์๋ณธ ์ด๋ฏธ์ง์ ๋ํด์ ๊ฐ์ฐ์์ ํํฐ๋ง์ ์ ์ฉํฉ๋๋ค. ํ์ง๋ง, ์ฌ๊ธฐ์ ํ ์์ญ ์ด๋ฏธ์ง์ ๋ํด์ ์ ๊ฑฐํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ , ํ ์์ญ ์ด๋ฏธ์ง๋ฅผ ํฉ์ณ์ ๊ฒฐ๊ณผ์ ์ผ๋ก ํ ์์ญ์ ์ ์ธํ ์๋ณธ ์ด๋ฏธ์ง์ ๋ํด์๋ง ๊ฐ์ฐ์์ ํํฐ๋ง์ด ์ ์ฉ๋ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
- ํด๋น Method๋ฅผ ์ ์ฉํ figure๋ 2๋ฒ์งธ์ ๊ฐ์ต๋๋ค.
- ํด๋น ์คํ์์๋ ํ ์์ญ ์ด๋ฏธ์ง๋ง์ ์ฌ์ฉํฉ๋๋ค.
- ํด๋น Method๋ฅผ ์ ์ฉํ figure๋ 3๋ฒ์งธ์ ๊ฐ์ต๋๋ค.
- ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๋ฉฐ, figure๋ 4๋ฒ์งธ์ ๊ฐ์ต๋๋ค.
- ์๋ณธ ์ด๋ฏธ์ง์ ๊ฐ์ฐ์์ ํํฐ๋ง์ ์ ์ฉํ๋ฉฐ, figure๋ 5๋ฒ์งธ์ ๊ฐ์ต๋๋ค.
- Classification Task๋ฅผ ์ํด์๋ ๋ ๊ฐ์ง ๋ชจ๋ธ์ ํตํด 5๊ฐ์ง์ ์คํ์ ์งํํ์ต๋๋ค.
- ์ฌ์ฉ๋ ๋ ๋ชจ๋ธ์ ๊ฐ DenseNet121, VGG16์ ๋๋ค.
- DenseNet121์ ๋ ๊น์ ๋ชจ๋ธ์ ์ญํ ์ ํ๊ธฐ ์ํด ImageNet-1K๋ฅผ pre-trainํ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉฐ, ๋ชจ๋ ๋ ์ด์ด์ ๋ํด์ ํ์ต์ด ๊ฐ๋ฅํ๋๋ก ํ์ต๋๋ค.
- VGG16์ ๋ ์์ ๋ชจ๋ธ์ ์ญํ ์ ํ๊ธฐ ์ํด ImageNet-1K๋ฅผ pre-trainํ ๋ชจ๋ธ์ ์ฌ์ฉํ์์ผ๋ pre-train๋ ๋ ์ด์ด์ ๋ํด์๋ Model freezing์ ์ํจ ์ํ๋ก ์งํํ์ต๋๋ค.
- ์ด๋ฌํ 2๊ฐ์ง ๋ฒ์ ์ ๋ชจ๋ธ์ ํตํด Method์ ์ผ๋ฐํ๋ฅผ ๋์ถํ์์ต๋๋ค.
- ํ๋ก์ ํธ๋ฅผ ์ํด ์ถ์ถํ ๋ฐ์ดํฐ์ ์๋ ์ ์๊ณผ ํ๋ถ์ข ์ ๋ํ ๋น์จ์ด ๋ถ๊ท ํํฉ๋๋ค.
- ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ํด๋น ์คํ์๋ Weighted binary cross-entropy function์ Loss function์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
$$L(y,\hat y)=-\frac{1}{N}\sum_{i=1}^{N}w_i[y_i\log(\hat y_i) + (1-y_i)\log(1-\hat y_i)]$$
- DenseNet121๊ณผ VGG16์ ์๋ก ๋ค๋ฅธ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์ ํ์ต์ ์งํํ๋ ๊ณผ์ ์์๋ ํน์ ๋ถ๋ถ๋ค์ด ๋ค๋ฆ ๋๋ค.
- ํ์ต ์คํ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Model | Image size | Loss function | Opimizer | Learning rate | Decay step | Decay rate | Activation | Epochs |
---|---|---|---|---|---|---|---|---|
DenseNet121 | 224x224 | Weighted binary cross-entropy | Adam | 1e-4 | 5 | 0.1 | Sigmoid | 100 |
VGG16 | 64x64 | Weighted binary cross-entropy | Adam | 1e-4 | 5 | 0.1 | Sigmoid | 30 |
Model | Experiment | Accuracy | F1-Score | AUC | Sensitivity | Specificity |
---|---|---|---|---|---|---|
DenseNet121 | 1 | 75.00% | 0.7965 | 0.8090 | 0.8204 | 0.6460 |
DenseNet121 | 2 | 73.93% | 0.7932 | 0.7951 | 0.8383 | 0.5929 |
DenseNet121 | 3 | 73.45% | 0.7890 | 0.7936 | 0.8323 | 0.5900 |
DenseNet121 | 4 | 73.57% | 0.7815 | 0.7901 | 0.7924 | 0.6519 |
DenseNet121 | 5 | 74.05% | 0.7846 | 0.7948 | 0.7924 | 0.6637 |
VGG16 | 1 | 63.81% | 0.7164 | 0.6628 | 0.7665 | 0.4484 |
VGG16 | 2 | 63.45% | 0.7369 | 0.6570 | 0.8583 | 0.3038 |
VGG16 | 3 | 64.52% | 0.7545 | 0.6659 | 0.8483 | 0.3451 |
VGG16 | 4 | 62.38% | 0.6715 | 0.6681 | 0.6657 | 0.5929 |
VGG16 | 5 | 61.90% | 0.7320 | 0.6501 | 0.8723 | 0.2448 |
- ์ ๋ฐ์ ์ผ๋ก Experiment 1์ด ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ํ์ฉํ Experiment 4, 5๋ณด๋ค ์ฑ๋ฅ์ ์ฐ์ํจ์ ๋ํ๋ ๋๋ค.
- ๋ณธ ์ฐ๊ตฌ์์ ์ ์ํ๋ ๋ฐฉ๋ฒ(Experiment 1)์ด ํจ๊ณผ์ ์ด์์์ ์ ์ฆํ์๊ณ , ์ด๋ฅผ ํ ๋๋ก Gaussian Filtering๊ณผ Blending์ ๊ฐ์ ์กฐ์ ํ์ฌ ํ ์์ญ์ ๋ํ ๊ธฐ์ฌ๋๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
- ๊ธฐ์กด Experiment 1 ๋๋น ๊ธฐ์ฌ๋๋ฅผ '์ฝํ๊ฒ ์ฃผ์์ ๋', '๊ฐํ๊ฒ ์ฃผ์์ ๋'๋ก ๋๋์ด ์คํ์ ์งํํ์์ต๋๋ค.
- ์คํ ๊ฒฐ๊ณผ, ํ ์์ญ์ ๋ํ ๊ธฐ์ฌ๋๊ฐ ๋ฎ์์๋ก ์ฑ๋ฅ์ด ์ฌ๋ผ๊ฐ๋ ๊ฒ์ ์ ์ฆํ์ต๋๋ค.
Experiment 1 | Gaussian Filtering - |
Blending - |
Accuracy | F1-Score | AUC |
---|---|---|---|---|---|
Weak | 0.5 | 0.1 | 75.12% | 0.7969 | 0.8058 |
Default | 1.0 | 0.2 | 75.00% | 0.7965 | 0.8090 |
Strong | 1.5 | 0.3 | 74.05% | 0.7776 | 0.8001 |
- ํด๋น ํ๋ก์ ํธ์์๋ U-Net ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ฅผ ํตํด ํ ์์ญ์ ์ถ์ถํ ์ด๋ฏธ์ง๋ฅผ ์๋ณธ ์ด๋ฏธ์ง์ ๊ฒฐํฉํ๋ method๋ค์ ๊ณ ์ํ์ต๋๋ค.
- ์ ์ํ method๋ค์ ์ฌ์ฉํ์ฌ ์ ์๊ณผ ํ๋ถ์ข ์ ๋ถ๋ฅํ๊ธฐ ์ํด DenseNet121๊ณผ VGG16 ์ฌ์ฉํด ๋น๊ต๋ฅผ ์งํํ์ต๋๋ค.
- Experiment 1์์ 75.00%, 63.81%์ Accuracy๋ก Experiment 5์์ 74.05%, 61.90%์ Accuarcy๋ณด๋ค ์ฑ๋ฅ์ด ์ฐ์ํจ์ ๋ณด์์ต๋๋ค.
- ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Experiment 1์ ๋ํ ํ๋ผ๋ฏธํฐ๋ฅผ ์ต์ ํํ์ฌ, ํ ์์ญ์ ๋ํ ๊ธฐ์ฌ๋๊ฐ ๋ฎ์ ์๋ก ์ฑ๋ฅ์ด ์ฌ๋ผ๊ฐ๋ ๊ฒ์ ์ ์ฆํ์ต๋๋ค.
- ๋ณธ ์ฐ๊ตฌ๋ฅผ ํตํด์ ํ๋ถ์ข ์ ์ง๋จํ๋ ๊ฒ์ ์์ด ํ ์์ญ์ ๋ํ ์ง์ค๋๋ฅผ ๋์ด๋ ๋ฐฉ๋ฒ์ด ๋ ์ข์ ๊ฒ์ ์ ์ ์์๊ณ , ์ด์ ๋ฐ๋ผ ํ๋ถ์ข ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ํ ์งํ์ ๋ถ๋ฅํ๋ ๋ชจ๋ธ์ ๊ตฌ์ถํ ๋, ๋ณธ ์ฐ๊ตฌ์์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ด ํ์ฉ๋์ด ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ฌ์ค ๊ฒ์ผ๋ก ๊ธฐ๋ํ ์ ์์ต๋๋ค.
- Repository์๋ ๋๋ ํ ๋ฆฌ์ ์ฉ๋์ด ํฌ๊ธฐ ๋๋ฌธ์ ์ฌ๋ผ๊ฐ์ง ๋ชป ํ ํ์ผ๋ค์ด ์์ต๋๋ค.
- ์๋๋ ํด๋น ๋๋ ํ ๋ฆฌ์ ๋ฆฌ์คํธ์ ๋๋ค.
- ํด๋น ๋๋ ํ ๋ฆฌ๋ค์ ์ ๋ถ ๋ก์ปฌ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ด๋ฆฌ๋ฅผ ํ๊ณ ์์ต๋๋ค.
- ๋ํ, ์ด ๋๋ ํ ๋ฆฌ๋ค์ด ์๋ ๊ฒฝ์ฐ์๋
streamlit
์ ์ฌ์ฉ์ด ๋ถ๊ฐํฉ๋๋ค.
Type | File Name | Size | Description |
---|---|---|---|
Directory | classification/densenet_parameters |
620MB | DenseNet121 ํ์ต ํ๋ผ๋ฏธํฐ |
Directory | classification2/vgg_parameters |
19.2GB | VGG16 ํ์ต ํ๋ผ๋ฏธํฐ |
Directory | segmentation/parameters |
766MB | U-Net ๊ธฐ๋ฐ ๋ชจ๋ธ ํ์ต ํ๋ผ๋ฏธํฐ |
Directory | segmentation inference/target_and_predict |
1.96GB | U-Net ๊ธฐ๋ฐ ๋ชจ๋ธ ์ถ๋ก ๋ฐ์ดํฐ |
๋ณธ ์ฐ๊ตฌ๋ฅผ ์ด๋์ด๊ฐ๋ฉด์ ๋ถ์กฑํ๋ ์ ์ ๊ธฐ๋กํ์ฌ, ์์ผ๋ก ๋ ๋์ ์ฐ๊ตฌ๋ฅผ ํ๊ณ ์ ํฉ๋๋ค.
- ํ๋ก์ ํธ๋ฅผ ์์ํ ๋, ๋จ์ํ ์์ด๋์ด์์ ์์ํ์ฌ ๋ชจ๋ ๊ฑธ ์ด๋์ด ๊ฐ๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ๋ฅผ ํจ์ ์์ด์ ์ถฉ๋ถํ ๋ ผ๋ฆฌ์ ์ธ ๊ทผ๊ฑฐ๊ฐ ๋ถ์กฑํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
- ์์ผ๋ก ์์ ์ ์๋ ๊ด๋ จ ์ฐ๊ตฌ ์ต์ 7ํธ ์ด์์ ์ฐพ์๋ณผ ๊ฒ!
- ํด๋น ํ๋ก์ ํธ์์๋ DenseNet121, VGG16์ ์ฌ์ฉํ์ต๋๋ค. ์ถฉ๋ถํ ๋ค์์ฑ์ ์ ๊ณตํ๋ค๊ณ ์๊ฐํ์ง๋ง, ์ฌ๊ธฐ์ VGG16์์ Input Size๊น์ง ์ค์ฌ '๋ค์์ฑ์ ๊ณผํ๊ฒ ์ค ๊ฑด ์๋๊น'๋ผ๊ณ ๋๋ ๋ถ๋ถ์ด์์ต๋๋ค.
- ์ต๊ทผ ์ด ํ๋ก์ ํธ ์ดํ, ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ์คํ ์์ค๋ฅผ ๋ฆฌ๋ทฐํ ์ผ์ด ๋ง์์ก์ต๋๋ค.
- ์ด๋ฅผ ํตํด ์ด๋ฒ ํ๋ก์ ํธ์ ํ์ผ ์์คํ ๊ตฌ์ฑ์ ์์ฌ์ด ๋ถ๋ถ๋ค์ด ๋ง๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค. (์ค๋ณต์ ์ธ ๋ถ๋ถ, ์ด๋ก ์ธํ ๋ ธํธ๋ถ ํ์ผ ๊ฐ์ ๋ฌด๊ฒฐ์ฑ ์ ํ)
- ์์ผ๋ก ์คํ ์์ค์ ๊ฐ์ ํจํค์ง, ๋ชจ๋ ๊ตฌ์กฐ๋ฅผ ์ ๊ทน์ ์ผ๋ก ์ฐจ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํด์ผ ํฉ๋๋ค.