Skip to content

Commit 5af56d9

Browse files
committed
update prostate config
1 parent 81a4aa4 commit 5af56d9

File tree

7 files changed

+44
-86
lines changed

7 files changed

+44
-86
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
ground_truth,segmentation
2+
label/promise_40.nii.gz,promise_40.nii.gz
3+
label/promise_20.nii.gz,promise_20.nii.gz
4+
label/promise_44.nii.gz,promise_44.nii.gz
5+
label/promise_45.nii.gz,promise_45.nii.gz
6+
label/promise_41.nii.gz,promise_41.nii.gz
7+
label/promise_48.nii.gz,promise_48.nii.gz
8+
label/promise_10.nii.gz,promise_10.nii.gz
9+
label/promise_31.nii.gz,promise_31.nii.gz
10+
label/promise_15.nii.gz,promise_15.nii.gz
11+
label/promise_09.nii.gz,promise_09.nii.gz

examples/prostate/config/data/image_test_names.txt

Lines changed: 0 additions & 10 deletions
This file was deleted.

examples/prostate/config/data/image_train_names.txt

Lines changed: 0 additions & 35 deletions
This file was deleted.

examples/prostate/config/data/image_valid_names.txt

Lines changed: 0 additions & 5 deletions
This file was deleted.

examples/prostate/config/evaluation.cfg

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@ metric = dice
33
label_list = [1]
44
organ_name = prostate
55

6-
segmentation_folder_list = [result]
7-
segmentation_postfix =
8-
segmentation_format = nii.gz
9-
10-
ground_truth_folder_list = [/home/disk2t/data/prostate/promise12/preprocess/train/label]
11-
ground_truth_postfix =
12-
ground_truth_format = nii.gz
13-
14-
patient_file_names = config/data/image_test_names.txt
15-
6+
ground_truth_folder_root = /home/disk2t/data/prostate/promise12/preprocess/train
7+
segmentation_folder_root = result
8+
evaluation_image_pair = ./config/data/image_test_gt_seg.csv
9+
10+
ground_truth_label_convert_source = None
11+
ground_truth_label_convert_target = None
12+
segmentation_label_convert_source = None
13+
segmentation_label_convert_target = None

examples/prostate/config/train_test.cfg

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ train_csv = config/data/image_train.csv
77
valid_csv = config/data/image_valid.csv
88
test_csv = config/data/image_test.csv
99

10+
load_pixelwise_weight = False
1011
# modality number
1112
modal_num = 1
1213

@@ -59,6 +60,7 @@ device_name = cuda:0
5960

6061
batch_size = 4
6162
loss_function = dice_loss
63+
class_weight = [0.5, 1.0]
6264

6365
# for optimizers
6466
optimizer = Adam

examples/prostate/write_csv_files.py

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -59,38 +59,35 @@ def random_split_dataset():
5959
with open(test_names_file, 'w') as f:
6060
f.writelines(lines[:1] + test_lines)
6161

62-
def obtain_patient_names():
63-
"""
64-
extract the patient names from csv files
65-
"""
66-
split_names = ['train', 'valid', 'test']
67-
for split_name in split_names:
68-
csv_file = 'config/data/image_{0:}.csv'.format(split_name)
69-
if(not os.path.isfile(csv_file)):
70-
continue
71-
with open(csv_file, 'r') as f:
72-
lines = f.readlines()
73-
data_lines = lines[1:]
74-
patient_names = []
75-
for data_line in data_lines:
76-
patient_name = data_line.split('/')[-1]
77-
patient_name = patient_name.split('.')[0]
78-
print(patient_name)
79-
patient_names.append(patient_name)
80-
output_filename = 'config/data/image_{0:}_names.txt'.format(split_name)
81-
with open(output_filename, 'w') as f:
82-
for patient_name in patient_names:
83-
f.write('{0:}\n'.format(patient_name))
84-
62+
def get_evaluation_image_pairs(test_csv, gt_seg_csv):
63+
with open(test_csv, 'r') as f:
64+
input_lines = f.readlines()[1:]
65+
output_lines = []
66+
for item in input_lines:
67+
gt_name = item.split(',')[1]
68+
gt_name = gt_name.rstrip()
69+
seg_name = gt_name.split('/')[-1]
70+
output_lines.append([gt_name, seg_name])
71+
with open(gt_seg_csv, mode='w') as csv_file:
72+
csv_writer = csv.writer(csv_file, delimiter=',',
73+
quotechar='"',quoting=csv.QUOTE_MINIMAL)
74+
csv_writer.writerow(["ground_truth", "segmentation"])
75+
for item in output_lines:
76+
csv_writer.writerow(item)
77+
78+
8579
if __name__ == "__main__":
8680
# create cvs file for promise 2012
8781
fields = ['image', 'label']
88-
data_dir = 'data/promise12/preprocess'
82+
data_dir = '/home/disk2t/data/prostate/promise12/preprocess/train'
8983
output_file = 'config/data/image_all.csv'
9084
create_csv_file(data_dir, output_file, fields)
9185

9286
# split the data into training, validation and testing
9387
random_split_dataset()
9488

95-
#obtain image names the splitted dataset
96-
obtain_patient_names()
89+
# obtain ground truth and segmentation pairs for evaluation
90+
test_csv = "./config/data/image_test.csv"
91+
gt_seg_csv = "./config/data/image_test_gt_seg.csv"
92+
get_evaluation_image_pairs(test_csv, gt_seg_csv)
93+

0 commit comments

Comments
 (0)