Nguyên tắc cốt lõi: ML định vị vùng (ROI), phép tính HU deterministic ra con số.
Model chỉ khoanh vùng màng ngoài tim (pericardium); giá trị EAT là phép đếm voxel mỡ trong vùng đó — hoàn toàn audit được, model không "đoán" ra số.
1 · Data
DICOM/CT → HU
verify HU đúng
→
2 · Label
Silver ROI
TotalSegmentator + hull
→
3 · Train
nnU-Net
Dice 0.96–0.97
→
4 · Optimize
TensorRT FP16
parity 0.9997
→
5 · Inference
EAT (mL)
deterministic HU
1Data & HU verification
Đọc chuỗi CT, dựng volume 3D với giá trị Hounsfield Unit (HU) đúng. HU đúng là điều kiện sống còn — mỡ nằm trong dải HU
−190…−30, nên sai HU là sai toàn bộ downstream. Ta cross-check độc lập (SimpleITK vs pydicom) để đảm bảo.
Kết quả: 200/200 volume ImageCAS đạt HU chuẩn (air = −1024 đồng nhất, có xương/cản quang), 0 bất thường.
2Silver labeling — tạo nhãn pericardium
Chưa có nhãn pericardium do người vẽ, nên ta bootstrap nhãn "silver":
TotalSegmentator khoanh vùng tim (whole-heart) → dựng ROI khoang màng ngoài tim xấp xỉ = convex-hull theo lát cắt + nới 3mm.
Bước
Công cụ
Đầu ra
Localize tim
TotalSegmentator (GPU)
heart mask
Dựng ROI pericardium
convex-hull + dilation EDT
silver mask (200 ca)
Đo EAT (baseline)
đếm HU −190…−30
EAT median 98 mL
Minh bạch: ROI silver hơi rộng hơn màng ngoài tim thật (over-inclusive) → EAT ở giai đoạn này là proxy tham chiếu,
dùng để huấn luyện model và phát triển pipeline, chưa dùng cho chẩn đoán lâm sàng.
3Training — nnU-Net segmenter pericardium
Huấn luyện model học khoanh pericardium từ 200 nhãn silver, thay cho chuỗi heuristic. Đánh giá trên 40 ca held-out (không dùng khi train).
Model
Held-out Dice
Inference/ca
Ghi chú
3d_fullres (250 epoch)
0.9596
~100 s
độ phân giải gốc
3d_lowres (100 epoch)
0.9716
~32 s
ROI thô, ~3× nhanh hơn
Dice = độ trùng khớp vùng (1.0 là hoàn hảo). Lowres đạt Dice cao hơn vì pericardium là vùng lớn/mượt, model coarse ít overfit chi tiết biên.
4Optimize — TensorRT FP16 (edge)
Chuyển model sang engine TensorRT FP16 để chạy nhanh, self-contained trên Jetson. Kiểm chứng độ chính xác không đổi:
Parity FP16 vs FP32 (ca thật): Dice 0.9997, sai lệch EAT < 0.11 mL → FP16 an toàn cho production.
Engine 63 MB, chạy ~123 ms/patch.
ONNX export → onnx.checker OK, argmax vs torch 99.996%
TensorRT → trtexec --fp16 → pericardium_fp16.plan
Verify → Dice(TRT, torch) = 0.9997 trên ca held-out
5Inference & đo EAT — ảnh tham khảo
Trên ca mới: CT → model khoanh pericardium (cyan) → đếm voxel mỡ (đỏ, HU −190…−30) trong vùng → EAT (mL).
Con số hoàn toàn deterministic từ HU.
Pericardium ROI (model dự đoán) Epicardial fat (voxel HU −190…−30)
Ca 154 — EAT 63.6 mL, mean HU −77.4 · Dice 0.978 (ca khớp tốt nhất). Ít mỡ quanh tim.Ca 114 — EAT 125.9 mL, mean HU −77.8. Mỡ vừa phải, phân bố quanh vành & rãnh.Ca 76 — EAT 194.2 mL, mean HU −84.0. Nhiều mỡ thượng tâm mạc (nhìn rõ vùng đỏ trong rãnh & quanh buồng tim).Ca 33 — EAT 92.7 mL, mean HU −83.9 · Dice 0.896 (ca khó nhất trong held-out). ROI vẫn bám sát tim.
Mỗi ảnh gồm 4 khung: CT gốc · CT + đường viền pericardium · CT + mỡ EAT (đỏ) · lát cắt coronal.
Đây là đầu ra thật của model trên các ca held-out (không dùng khi huấn luyện).
6Hình 3D — phân bố mỡ trong không gian
Dựng lại 3D từ mask: vỏ pericardium (cyan, trong suốt) bao ngoài, mỡ EAT (đám mây điểm đỏ) bên trong,
nhìn từ 3 góc. Thấy rõ mỡ tập trung ở rãnh vành & quanh buồng tim, và so sánh trực quan lượng mỡ giữa các ca.
Vỏ pericardium (model) Mỡ EAT (voxel HU −190…−30)
Ca 76 — EAT 194.2 mL: mỡ dày, phủ gần kín (nhiều mỡ thượng tâm mạc).Ca 114 — EAT 125.9 mL: mỡ mức trung bình.Ca 154 — EAT 63.6 mL: mỡ thưa (đỏ ít hơn hẳn) — đối lập trực quan với ca 76.Ca 33 — EAT 92.7 mL.
3D dựng bằng marching-cubes trên mask đã làm mượt (Gaussian): mỡ EAT = mặt vàng có đổ bóng, màng pericardium = vỏ trong suốt.
👉 Xem Gallery 10 ca kiểm chứng (kèm phân tích over-inclusion).
✓Tóm tắt cho báo cáo
Hạng mục
Trạng thái
Pipeline end-to-end (data → EAT)
Chạy được
Model pericardium (nnU-Net)
Dice held-out 0.96–0.97
Tối ưu edge (TensorRT FP16)
parity 0.9997, ~32 s/ca (lowres)
Chạy on-device (Jetson AGX Orin)
không gửi dữ liệu ra ngoài
Giới hạn & hướng nâng cấp: EAT hiện là proxy (nhãn silver hơi rộng). Để đạt độ chính xác lâm sàng cần
nhãn gold do bác sĩ vẽ để tinh chỉnh & kiểm định. Đây là bước tiếp theo được khuyến nghị.