Segmentasi Semantik Citra Rontgen Skoliosis Menggunakan ResNet-18
Skoliosis adalah kelainan pada tulang belakang yang menyebabkan tulang melengkung ke samping. Pemeriksaan skoliosis biasanya dilakukan menggunakan citra rontgen. Namun, menganalisis citra secara manual membutuhkan waktu, tenaga, dan bisa berbeda antara satu dokter dengan yang lain.
Untuk membantu proses analisis, salah satu pendekatan modern adalah segmentasi semantik berbasis deep learning. Dengan teknik ini, komputer dapat menandai bagian tulang belakang secara otomatis sehingga dokter bisa fokus pada interpretasi hasilnya.
Dataset dan Persiapan
Dalam percobaan ini digunakan 15 citra rontgen berformat grayscale, masing-masing memiliki citra ground truth biner yang menandai area tulang belakang. Semua citra diubah ukurannya menjadi 450×300 piksel agar konsisten untuk pelatihan.
Arsitektur dan Pelatihan Model
Model yang digunakan adalah DeepLabv3+ dengan backbone ResNet-18, yang terkenal ringan dan cepat dilatih.
Pelatihan dilakukan selama 20 epoch menggunakan optimisasi Stochastic Gradient Descent with Momentum (SGDM). Selama proses pelatihan, akurasi model terus meningkat hingga mencapai lebih dari 99% pada epoch terakhir.
Hasil Pelatihan
Proses pelatihan menghasilkan model yang mampu mengenali tulang belakang dengan sangat baik meskipun jumlah data latih relatif kecil.
- Akurasi pelatihan: 99.41%
- Loss akhir: 0.0162
Hasil ini menunjukkan bahwa model belajar dengan baik dan tidak mengalami underfitting.
Hasil Pengujian
Model diuji menggunakan salah satu citra uji dan dibandingkan dengan citra ground truth. Hasil evaluasi menunjukkan:
- Akurasi: 98.97%
- Presisi: 96.76%
- Recall: 98.51%
- F1-Score: 97.63%
Nilai-nilai ini mengindikasikan bahwa model dapat mendeteksi tulang belakang secara konsisten dan mendekati hasil manual yang dibuat ahli radiologi.
Visualisasi
Hasil segmentasi divisualisasikan dengan menumpuk label prediksi di atas citra rontgen. Terlihat bahwa area tulang belakang yang terdeteksi mengikuti bentuk tulang dengan sangat baik dan hampir identik dengan ground truth.
Gambar di atas memperlihatkan:
- Kiri: Citra rontgen asli
- Tengah: Hasil segmentasi biner
- Kanan: Citra ground truth
Penggunaan DeepLabv3+ dengan ResNet-18 di MATLAB terbukti efektif untuk segmentasi semantik citra rontgen skoliosis.
- Model bekerja dengan baik meskipun dataset hanya berisi 15 citra.
- Akurasi dan F1-Score di atas 97% menunjukkan model siap digunakan untuk membantu analisis awal skoliosis.
Source Code MATLAB:
% Membersihkan command window, variabel, menutup semua figure, dan mematikan semua peringatan.
clc; clear; close all; warning off all;
% Menentukan folder yang berisi data citra latih.
imageFolderTrain = fullfile('Data Latih/Citra Resized');
% Menentukan folder yang berisi label ground truth untuk data latih.
labelFolderTrain = fullfile('Data Latih/Ground Truth Resized');
% Membuat image datastore untuk mengelola dan membaca data citra latih.
imdsTrain = imageDatastore(imageFolderTrain);
% Mendefinisikan nama kelas untuk segmentasi; "backbone" dan "background".
classNames = ["backbone" "background"];
% Mendefinisikan nilai piksel untuk setiap kelas; 255 untuk "backbone" dan 0 untuk "background".
labels = [255 0];
% Membuat pixel label datastore untuk membaca label ground truth yang sesuai dengan data citra.
pxds = pixelLabelDatastore(labelFolderTrain, classNames, labels);
% Menggabungkan image datastore dan pixel label datastore untuk membuat pixel label image datastore, yang akan digunakan untuk pelatihan.
ds = pixelLabelImageDatastore(imdsTrain,pxds);
% Mendefinisikan ukuran gambar input untuk model CNN; 450x300 piksel dengan 3 channel warna (RGB).
imagesize = [450,300,3];
% Menentukan jumlah kelas yang akan diprediksi oleh model (2 kelas: backbone dan background).
numclass = 2;
% Menggunakan arsitektur DeepLabv3+ dengan backbone ResNet-18 untuk membuat layer jaringan saraf dalam.
Igraps = deeplabv3plusLayers(imagesize,numclass,'resnet18');
% Menentukan opsi pelatihan menggunakan algoritma Stochastic Gradient Descent with Momentum (SGDM).
options = trainingOptions('sgdm', …
'InitialLearnRate',1e-2, … % Menentukan laju pembelajaran awal sebesar 0,01.
'MiniBatch',8,… % Menentukan ukuran mini-batch sebanyak 32 gambar.
'MaxEpochs',20, … % Menentukan jumlah epoch maksimum sebanyak 20.
'Plots','training-progress'); % Menampilkan grafik kemajuan pelatihan selama proses pelatihan berlangsung.
% Melatih jaringan saraf dalam (CNN) menggunakan dataset dan opsi pelatihan yang telah ditentukan.
net = trainNetwork(ds,Igraps,options);
% Menyimpan jaringan saraf yang telah dilatih ke dalam file bernama 'net'.
save net net
Posted on September 13, 2025, in Pengenalan Pola, Pengolahan Citra and tagged arsitektur CNN, arsitektur deep learning, deep convolutional neural network, Deep Learning, resnet. Bookmark the permalink. Leave a comment.





















































Leave a comment
Comments 0