Organ-aware 3D lesion segmentation dataset and pipeline for abdominal CT analysis (ACM Multimedia 2025 candidate)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

inference.json 4.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. {
  2. "displayable_configs": {
  3. "highres": false,
  4. "sw_overlap": 0.25,
  5. "sw_batch_size": 1
  6. },
  7. "imports": [
  8. "$import glob",
  9. "$import os"
  10. ],
  11. "bundle_root": ".",
  12. "output_dir": "$@bundle_root + '/NIFTI'",
  13. "dataset_dir": "DICOM",
  14. "datalist": "$list(sorted(glob.glob(@dataset_dir + '/DLCSI033.nii.gz')))",
  15. "device": "$torch.device('cuda' if torch.cuda.is_available() else 'cpu')",
  16. "pixdim": "$[1.5, 1.5, 1.5] if @displayable_configs#highres else [3.0, 3.0, 3.0]",
  17. "modelname": "$'model.pt' if @displayable_configs#highres else 'model_lowres.pt'",
  18. "network_def": {
  19. "_target_": "SegResNet",
  20. "spatial_dims": 3,
  21. "in_channels": 1,
  22. "out_channels": 105,
  23. "init_filters": 32,
  24. "blocks_down": [
  25. 1,
  26. 2,
  27. 2,
  28. 4
  29. ],
  30. "blocks_up": [
  31. 1,
  32. 1,
  33. 1
  34. ],
  35. "dropout_prob": 0.2
  36. },
  37. "network": "$@network_def.to(@device)",
  38. "preprocessing": {
  39. "_target_": "Compose",
  40. "transforms": [
  41. {
  42. "_target_": "LoadImaged",
  43. "keys": "image"
  44. },
  45. {
  46. "_target_": "EnsureTyped",
  47. "keys": "image"
  48. },
  49. {
  50. "_target_": "EnsureChannelFirstd",
  51. "keys": "image"
  52. },
  53. {
  54. "_target_": "Orientationd",
  55. "keys": "image",
  56. "axcodes": "RAS"
  57. },
  58. {
  59. "_target_": "Spacingd",
  60. "keys": "image",
  61. "pixdim": "@pixdim",
  62. "mode": "bilinear"
  63. },
  64. {
  65. "_target_": "NormalizeIntensityd",
  66. "keys": "image",
  67. "nonzero": true
  68. },
  69. {
  70. "_target_": "ScaleIntensityd",
  71. "keys": "image",
  72. "minv": -1.0,
  73. "maxv": 1.0
  74. }
  75. ]
  76. },
  77. "dataset": {
  78. "_target_": "Dataset",
  79. "data": "$[{'image': i} for i in @datalist]",
  80. "transform": "@preprocessing"
  81. },
  82. "dataloader": {
  83. "_target_": "DataLoader",
  84. "dataset": "@dataset",
  85. "batch_size": 1,
  86. "shuffle": false,
  87. "num_workers": 1
  88. },
  89. "inferer": {
  90. "_target_": "SlidingWindowInferer",
  91. "roi_size": [
  92. 96,
  93. 96,
  94. 96
  95. ],
  96. "sw_batch_size": "@displayable_configs#sw_batch_size",
  97. "overlap": "@displayable_configs#sw_overlap",
  98. "padding_mode": "replicate",
  99. "mode": "gaussian",
  100. "device": "$torch.device('cpu' if torch.cuda.is_available() else 'cpu')"
  101. },
  102. "postprocessing": {
  103. "_target_": "Compose",
  104. "transforms": [
  105. {
  106. "_target_": "Activationsd",
  107. "keys": "pred",
  108. "softmax": true
  109. },
  110. {
  111. "_target_": "AsDiscreted",
  112. "keys": "pred",
  113. "argmax": true
  114. },
  115. {
  116. "_target_": "Invertd",
  117. "keys": "pred",
  118. "transform": "@preprocessing",
  119. "orig_keys": "image",
  120. "meta_key_postfix": "meta_dict",
  121. "nearest_interp": true,
  122. "to_tensor": true
  123. },
  124. {
  125. "_target_": "SaveImaged",
  126. "keys": "pred",
  127. "meta_keys": "pred_meta_dict",
  128. "output_dir": "@output_dir"
  129. }
  130. ]
  131. },
  132. "handlers": [
  133. {
  134. "_target_": "CheckpointLoader",
  135. "load_path": "$@bundle_root + '/models/' + @modelname",
  136. "load_dict": {
  137. "model": "@network"
  138. }
  139. },
  140. {
  141. "_target_": "StatsHandler",
  142. "iteration_log": false
  143. }
  144. ],
  145. "evaluator": {
  146. "_target_": "SupervisedEvaluator",
  147. "device": "@device",
  148. "val_data_loader": "@dataloader",
  149. "network": "@network",
  150. "inferer": "@inferer",
  151. "postprocessing": "@postprocessing",
  152. "val_handlers": "@handlers",
  153. "amp": true
  154. },
  155. "initialize": [
  156. "$setattr(torch.backends.cudnn, 'benchmark', True)"
  157. ],
  158. "run": [
  159. "[email protected]()"
  160. ]
  161. }