| { |
| "model_name": "Pulmo", |
| "architecture": "Student2p5D", |
| "description": "2.5D concept-bottleneck multi-task model for lung nodule analysis, distilled from a 3D teacher.", |
| "input": { |
| "n_slices": 7, |
| "slice_size": [64, 64], |
| "tensor_shape": "(B, 7, 64, 64)", |
| "dtype": "float32", |
| "value_range": [0.0, 1.0] |
| }, |
| "backbone": { |
| "type": "UNet2D", |
| "base_channels": 24, |
| "trunk_dim": 384 |
| }, |
| "heads": { |
| "detection": "2 (nodule vs non-nodule)", |
| "concepts": "8 (LIDC radiological concepts, regression)", |
| "malignancy": "Linear(8 -> 2), concept bottleneck", |
| "segmentation": "(B, 1, 64, 64), middle axial slice" |
| }, |
| "n_concepts": 8, |
| "concept_names": [ |
| "subtlety", "internalStructure", "calcification", "sphericity", |
| "margin", "lobulation", "spiculation", "texture" |
| ], |
| "preprocessing": { |
| "roi_size_3d": [64, 64, 64], |
| "hu_clip": [-1000, 1000], |
| "normalize": "(x - hu_min) / (hu_max - hu_min) -> [0, 1]", |
| "slice_extraction": "take the 7 central axial slices of a 64^3 patch centered on the candidate (z in [29, 36))" |
| }, |
| "test_metrics_patch_level": { |
| "detection_auc": 0.997, |
| "malignancy_auc": 0.986, |
| "segmentation_dice": 0.859, |
| "note": "Held-out internal test split (patient-level split of LUNA16). Not externally validated." |
| }, |
| "teacher_reference_3d": { |
| "detection_auc": 0.998, |
| "malignancy_auc": 0.986, |
| "segmentation_dice": 0.857 |
| }, |
| "training_data": "LUNA16 (subset of LIDC-IDRI), 888 scans, patient-level 80/10/10 split", |
| "license": "cc-by-4.0", |
| "intended_use": "research only; not a medical device" |
| } |
|
|