Bộ dữ liệu xạ hình tuyến giáp mới: xây dựng benchmark phát hiện mô giáp còn sót
Tóm tắt và giải thích bài báo của nhóm: hai bộ dữ liệu xạ hình tuyến giáp chuẩn hoá từ 559 bệnh nhân Việt Nam và benchmark 8 mô hình CNN bằng transfer learning để phát hiện mô giáp còn sót sau phẫu thuật.
Bài này tóm tắt và giải thích bài báo "New thyroid scintigraphy datasets: Construction and benchmark assessment in diagnosis of residual thyroid tissue", đăng trên Tạp chí Nghiên cứu KH&CN quân sự, số 88 (2023), tr. 131–138. DOI: 10.54939/1859-1043.j.mst.88.2023.131-138. Ngoài nội dung bài báo, mình thêm phần giải thích nền tảng và vài nhận xét riêng để người không làm trong y học hạt nhân cũng đọc được.
TL;DR
- Bài toán: sau khi cắt toàn bộ tuyến giáp vì ung thư, bác sĩ cần biết bệnh nhân còn sót mô giáp hay không để quyết định điều trị tiếp bằng iốt phóng xạ (I-131). Câu trả lời nằm trên ảnh xạ hình tuyến giáp.
- Vấn đề: gần như không có bộ dữ liệu xạ hình tuyến giáp nào được chia sẻ công khai. Nghiên cứu duy nhất có quy mô đáng kể (446 bệnh nhân, Guo et al., 2021) dùng dữ liệu riêng.
- Đóng góp: chúng tôi xây dựng hai bộ dữ liệu chuẩn hoá từ 559 ca tại Khoa Y học Hạt nhân, Bệnh viện Trung ương Quân đội 108: một bộ ảnh toàn thân và một bộ ảnh vùng cổ, có nhãn do hội đồng bác sĩ xác nhận.
- Benchmark: fine-tune 8 mạng CNN phổ biến (VGG16, InceptionV3, ResNet152V2, Xception, MobileNetV2, NASNetMobile, EfficientNetB0/B7). Kết quả tốt nhất:
- ảnh vùng cổ: Accuracy 0.955, Recall 0.984, F1 0.961 (Xception, VGG16)
- ảnh toàn thân: Accuracy 0.893, F1 0.908 (Xception)
- Bài học chính: cắt đúng vùng quan tâm (vùng cổ) quan trọng hơn chọn kiến trúc mạng.
1. Bối cảnh: xạ hình tuyến giáp là gì, vì sao cần "tìm mô giáp còn sót"?
Phác đồ điều trị ung thư tuyến giáp thể biệt hoá
Với ung thư tuyến giáp thể biệt hoá (chủ yếu là thể nhú), phác đồ chuẩn thường gồm ba bước:
- Phẫu thuật cắt toàn bộ tuyến giáp.
- Điều trị bằng I-131 để "đốt" phần mô giáp còn sót lại (và các ổ di căn nếu có).
- Điều trị ức chế TSH bằng hormone giáp lâu dài.
Phẫu thuật dù kỹ đến đâu cũng hiếm khi lấy được 100% mô giáp. Phần còn sót lại, dù rất nhỏ, vẫn hấp thu iốt, và đây chính là điểm mà y học hạt nhân khai thác.
Xạ hình hoạt động thế nào?
Tế bào tuyến giáp (kể cả phần lớn tế bào ung thư thể biệt hoá) có cơ chế bơm iốt vào trong tế bào. Nếu cho bệnh nhân uống một liều nhỏ iốt phóng xạ, chất này sẽ tập trung ở những nơi còn mô giáp. Một gamma camera đặt bên ngoài cơ thể thu tia gamma phát ra và tạo thành ảnh: vùng nào sáng/đậm là vùng hấp thu phóng xạ (radioiodine uptake).
Khác với CT hay MRI vốn cho ảnh giải phẫu (cơ quan trông như thế nào), xạ hình cho ảnh chức năng/chuyển hoá (cơ quan đang làm gì). Ảnh thường có độ phân giải thấp và rất nhiễu (nhiễu Poisson do đếm photon), nhưng lại cực kỳ nhạy với mô giáp còn hoạt động.
Trong nghiên cứu này, bệnh nhân uống liều chẩn đoán 5 mCi và được chụp sau 36–48 giờ. Câu hỏi lâm sàng rất rõ ràng:
Trên ảnh này, có vùng hấp thu iốt phóng xạ ở giường tuyến giáp hay không?
Đây là một bài toán phân loại nhị phân: Uptake hoặc Non-uptake.

Ảnh mẫu từ bộ dữ liệu toàn thân (Whole Body, WB), gồm mặt trước và mặt sau. Vùng đậm phía trên là vùng cổ; các vùng đậm ở bụng là hấp thu sinh lý (dạ dày, ruột), không phải mô giáp.
2. Vấn đề: thiếu dữ liệu chuẩn
Các hệ thống CADx (Computer-Aided Diagnosis, chẩn đoán hỗ trợ bằng máy tính) đã có nhiều kết quả hứa hẹn, nhưng rất ít hệ thống được phép dùng lâm sàng. Một lý do lớn: không có bộ dữ liệu chuẩn để đánh giá và so sánh. Một mô hình đạt độ chính xác cao trên tập dữ liệu nhỏ, riêng tư thì chưa đủ để tin rằng nó an toàn ngoài thực tế.
Khi khảo sát tài liệu, chúng tôi thấy:
| Tác giả | Số mẫu | Công khai? | Phương thức |
|---|---|---|---|
| Karssemeijer et al. | 50 | Có (MIAS) | CT/X-quang |
| Mudigonda et al. | 56 | Có (MIAS) | CT/X-quang |
| Liu et al. | 38 | Có (MIAS) | CT/X-quang |
| Li et al. | 94 | Không | CT/X-quang |
| Kim et al. | 83 | Không | CT/X-quang |
| Yang et al. | 203 | Không | CT/X-quang |
| Guo et al. (2021) | 446 | Không | SPECT tuyến giáp |
Dữ liệu ảnh giải phẫu (DDSM, MIAS, IRMA…) tương đối phong phú. Nhưng với ảnh SPECT tuyến giáp, chỉ có đúng một bộ dữ liệu được nhắc đến trong tài liệu khoa học, và bộ đó không được chia sẻ. Hệ quả là nhóm nào muốn vào lĩnh vực này đều phải tự thu thập dữ liệu từ đầu hoặc tự đi tìm bệnh viện hợp tác, rất tốn thời gian.
Ngoài ra, các nghiên cứu y học hạt nhân cho thấy mỗi quần thể có đặc điểm bệnh lý riêng trên ảnh SPECT. Vì vậy một bộ dữ liệu của người Việt Nam là cần thiết cho nghiên cứu trong nước.
3. Xây dựng bộ dữ liệu
Thu thập
- Nguồn: Khoa Y học Hạt nhân, Bệnh viện Trung ương Quân đội 108.
- Thời gian: 01/2020 – 12/2021, tổng cộng 1.777 lượt chụp. Bài báo dùng 559 ảnh cho thí nghiệm.
- Bệnh nhân: tuổi từ 21 đến 59 (trung bình 39), đều là bệnh nhân điều trị lần đầu để huỷ mô giáp sau phẫu thuật. Phần lớn (~97%) là ung thư biểu mô tuyến giáp thể nhú.
- Nghiên cứu được Khoa Y học Hạt nhân, Bệnh viện 108 phê duyệt.
Gán nhãn
Mỗi ảnh được gán một trong hai nhãn: có hấp thu (uptake) hoặc không hấp thu (non-uptake) iốt phóng xạ. Nhãn dựa trên kết luận chẩn đoán của bác sĩ cho từng ca, và được kiểm tra lại trong hội chẩn theo từng trường hợp. Với dữ liệu y tế, đây là phần tốn công nhất và cũng là phần quyết định chất lượng bộ dữ liệu.
Hai bộ dữ liệu
Từ cùng một tập ca bệnh, chúng tôi tạo ra hai bộ:
- Full Body (WB): ghép ảnh xạ hình toàn thân mặt trước và mặt sau.
- Head & Neck (HN): cắt riêng vùng cổ từ ảnh mặt trước.

Ảnh mẫu từ bộ dữ liệu vùng đầu-cổ (Head & Neck, HN), cắt từ ảnh mặt trước. Vùng hấp thu ở giường tuyến giáp hiện rõ hơn nhiều so với ảnh toàn thân.
flowchart LR A[1.777 lượt chụp<br/>BV TƯQĐ 108<br/>2020–2021] --> B[559 ca<br/>được chọn] B --> C[Gán nhãn<br/>Uptake / Non-uptake<br/>+ hội chẩn] C --> D[WB: ghép mặt trước + sau] C --> E[HN: cắt vùng cổ<br/>từ ảnh mặt trước] D --> F[Train / Val / Test] E --> F F --> G[Fine-tune 8 CNN<br/>pretrained ImageNet]
Cả hai bộ được chia giống nhau:
| Tập | Số mẫu | Uptake | Non-uptake |
|---|---|---|---|
| Train | 359 (64,2%) | 199 | 160 |
| Validation | 88 (15,7%) | 49 | 39 |
| Test | 112 (20,1%) | 62 | 50 |
| Tổng | 559 | 310 | 249 |
Tỉ lệ hai lớp khoảng 1,24 : 1, hơi lệch về phía uptake nhưng chưa đến mức mất cân bằng nặng. Phần kết quả sẽ cho thấy độ lệch nhỏ này vẫn có ảnh hưởng.
4. Benchmark: thử 8 mạng CNN bằng transfer learning
Vì sao dùng transfer learning?
559 ảnh là con số rất nhỏ so với nhu cầu của deep learning. Huấn luyện một CNN hàng chục triệu tham số từ đầu trên chừng đó dữ liệu gần như chắc chắn sẽ overfit.
Transfer learning giải quyết bằng cách lấy một mạng đã được huấn luyện trên ImageNet (hơn 1 triệu ảnh tự nhiên), giữ lại phần trích xuất đặc trưng, rồi fine-tune trên dữ liệu y tế. Các lớp đầu của CNN học những đặc trưng chung (cạnh, đốm sáng, kết cấu), nên vẫn hữu ích dù ảnh xạ hình trông rất khác ảnh con mèo. Kỹ thuật này đã thành công trên X-quang xương, X-quang ngực, SPECT tưới máu cơ tim và MRI não. Ưu điểm: độ chính xác ban đầu cao hơn, hội tụ nhanh hơn và kết quả cuối tốt hơn so với huấn luyện từ đầu.
Các mô hình được thử
| Mô hình | Năm | Ý tưởng chính |
|---|---|---|
| VGG16 | 2014 | Xếp chồng nhiều lớp conv 3×3 nhỏ; đơn giản, dễ hiểu, nhưng nặng |
| InceptionV3 | 2015 | Nhiều nhánh conv kích thước khác nhau song song; tối ưu chi phí tính toán |
| ResNet152V2 | 2015 | Kết nối tắt (skip connection) giúp huấn luyện mạng rất sâu, tránh vanishing gradient |
| Xception | 2016 | Thay module Inception bằng depthwise separable convolution; ít tham số hơn mà vẫn chính xác |
| MobileNetV2 | 2018 | Inverted residual + linear bottleneck; thiết kế cho thiết bị di động |
| NASNetMobile | 2018 | Kiến trúc do Neural Architecture Search tự tìm ra; nhỏ gọn |
| EfficientNetB0/B7 | 2019 | Scale đồng thời độ sâu, độ rộng và độ phân giải theo một hệ số chung |
Các chỉ số đánh giá
Coi uptake (còn mô giáp) là lớp dương tính:
- Accuracy = (TP + TN) / tổng số: tỉ lệ đoán đúng nói chung.
- Recall (Sensitivity) = TP / (TP + FN): trong số ca thật sự còn mô giáp, mô hình bắt được bao nhiêu. Recall cao = ít bỏ sót.
- TNR (Specificity) = TN / (TN + FP): trong số ca thật sự không còn mô giáp, mô hình nhận đúng bao nhiêu. TNR cao = ít báo động giả.
- F1-score = 2TP / (2TP + FP + FN): cân bằng giữa bỏ sót và báo nhầm.
Trong bối cảnh lâm sàng này, bỏ sót mô giáp còn sót (FN) thường nguy hiểm hơn báo nhầm, vì bệnh nhân có thể không được điều trị bổ sung kịp thời. Vì vậy Recall là chỉ số đáng chú ý nhất.
5. Kết quả
Bộ dữ liệu toàn thân (WB)
| Mô hình | Accuracy | Recall | TNR | F1 |
|---|---|---|---|---|
| VGG16 | 0.884 | 0.919 | 0.840 | 0.898 |
| InceptionV3 | 0.893 | 0.919 | 0.860 | 0.905 |
| ResNet152V2 | 0.893 | 0.935 | 0.840 | 0.906 |
| Xception | 0.893 | 0.952 | 0.820 | 0.908 |
| MobileNetV2 | 0.893 | 0.935 | 0.840 | 0.906 |
| NASNetMobile | 0.875 | 0.887 | 0.860 | 0.887 |
| EfficientNetB0 | 0.866 | 0.903 | 0.820 | 0.882 |
| EfficientNetB7 | 0.893 | 0.871 | 0.920 | 0.900 |
Bộ dữ liệu vùng cổ (HN)
| Mô hình | Accuracy | Recall | TNR | F1 |
|---|---|---|---|---|
| VGG16 | 0.955 | 0.984 | 0.920 | 0.961 |
| InceptionV3 | 0.911 | 0.887 | 0.940 | 0.917 |
| ResNet152V2 | 0.911 | 0.903 | 0.920 | 0.918 |
| Xception | 0.955 | 0.984 | 0.920 | 0.961 |
| MobileNetV2 | 0.920 | 0.919 | 0.920 | 0.927 |
| NASNetMobile | 0.946 | 0.984 | 0.900 | 0.953 |
| EfficientNetB0 | 0.911 | 0.952 | 0.860 | 0.922 |
| EfficientNetB7 | 0.884 | 0.903 | 0.860 | 0.896 |
Đọc kết quả thế nào?
1. Ảnh vùng cổ tốt hơn hẳn ảnh toàn thân. Hầu hết mô hình cải thiện ở mọi chỉ số khi chuyển từ WB sang HN. Lý do là ở ảnh toàn thân, nhiều cơ quan khác cũng hấp thu iốt một cách sinh lý: tuyến nước bọt, dạ dày, ruột, bàng quang. Trên ảnh, những vùng này trông giống vùng hấp thu ở cổ, làm mô hình bị nhiễu. Khi cắt riêng vùng cổ, ta loại bỏ phần thông tin gây nhầm và để mô hình tập trung vào đúng chỗ cần nhìn.
Đây là bài học quen thuộc trong xử lý ảnh y tế: đưa kiến thức chuyên môn vào bước tiền xử lý (chọn ROI) thường hiệu quả hơn tăng độ phức tạp của mô hình. Với dữ liệu ít, việc này còn quan trọng hơn nữa.
2. Xception ổn định nhất. Mô hình này đứng đầu ở cả hai bộ dữ liệu. Trên ảnh vùng cổ, Recall 0.984 nghĩa là trong 62 ca có hấp thu ở tập test, mô hình chỉ bỏ sót 1 ca.
3. Mô hình nhỏ không thua. NASNetMobile (khoảng 5 triệu tham số) đạt Recall 0.984 trên ảnh vùng cổ, ngang với Xception và VGG16, trong khi VGG16 có khoảng 138 triệu tham số. EfficientNetB7, mô hình lớn nhất, lại xếp cuối trên bộ HN. Với tập dữ liệu nhỏ, mô hình to hơn không có nghĩa là tốt hơn.
4. Độ lệch nhãn để lại dấu vết. Trên ảnh toàn thân, hầu hết mô hình có Recall > TNR, tức là có xu hướng đoán "có hấp thu" nhiều hơn. Điều này khớp với việc tập train có nhiều nhãn uptake hơn khoảng 1,24 lần. Riêng EfficientNetB7 có TNR (0.92) cao hơn Recall (0.871), cho thấy mô hình này ít bị ảnh hưởng bởi độ lệch nhãn hơn.
6. Góc nhìn thêm: những điều cần lưu ý khi đọc kết quả
Phần này là nhận xét riêng của mình, không có trong bài báo.
Tập test nhỏ nên khoảng tin cậy rộng. Với 112 ảnh test, mỗi ảnh đoán sai làm accuracy giảm khoảng 0,9 điểm phần trăm. Khoảng tin cậy 95% cho accuracy 0.955 ước tính vào khoảng 0.90–0.98. Vì vậy chênh lệch 1–3 điểm giữa các mô hình (ví dụ 0.911 so với 0.920) chưa đủ để kết luận mô hình nào tốt hơn. Muốn so sánh chặt chẽ hơn có thể dùng k-fold cross-validation, bootstrap, hoặc kiểm định McNemar trên cùng tập test.
Dữ liệu từ một trung tâm. Toàn bộ ảnh đến từ một bệnh viện và một quy trình chụp. Mô hình có thể học cả những đặc điểm riêng của máy chụp hoặc quy trình, nên cần kiểm định ngoài (external validation) với dữ liệu từ bệnh viện khác trước khi nói đến ứng dụng lâm sàng.
Ảnh xạ hình khác ảnh tự nhiên. Ảnh xạ hình là ảnh xám, nhiễu Poisson cao và độ tương phản thấp, khác xa ImageNet. Một số hướng có thể giúp: tiền xử lý giảm nhiễu, chuẩn hoá cường độ theo số đếm, augmentation phù hợp với vật lý của ảnh (lật trái-phải, thay đổi nhẹ cường độ), hoặc tiền huấn luyện trên chính dữ liệu y học hạt nhân chưa gán nhãn (self-supervised).
Giải thích được thì bác sĩ mới tin. Kỹ thuật như Grad-CAM cho phép kiểm tra mô hình có đang "nhìn" vào giường tuyến giáp hay đang dựa vào thứ khác. Với dữ liệu toàn thân, đây cũng là cách để xác nhận giả thuyết rằng hấp thu sinh lý ở bụng gây nhiễu.
Từ phân loại sang định vị và định lượng. Phân loại có/không mới là bước đầu. Lâm sàng còn cần biết mô giáp ở đâu, bao nhiêu, và có di căn xa hay không. Các bài toán này là detection và segmentation, cần nhãn ở mức vùng chứ không chỉ mức ảnh.
7. Kết luận và hướng tiếp theo
Bài báo đóng góp hai điều:
- Hai bộ dữ liệu xạ hình tuyến giáp chuẩn hoá (toàn thân và vùng cổ) từ bệnh nhân Việt Nam, có nhãn do hội đồng bác sĩ xác nhận. Đây là nguồn dữ liệu đáng tin cậy cho các nhóm nghiên cứu CADx trong và ngoài nước.
- Kết quả benchmark của 8 mô hình CNN hiện đại, làm mốc so sánh cho các nghiên cứu sau. Với ảnh vùng cổ, mô hình tốt nhất đạt 95,5% accuracy và 98,4% recall.
Hướng tiếp theo của nhóm:
- Thu thập thêm dữ liệu để tăng cỡ mẫu (đã có 1.777 lượt chụp, bài báo mới dùng 559).
- Xử lý vấn đề mất cân bằng nhãn và cải thiện mô hình (Xception, EfficientNetB7 cho ảnh toàn thân; Xception, VGG16, NASNetMobile cho ảnh vùng cổ).
- Mở rộng sang xác định vùng phóng xạ và phát hiện di căn ở các vùng khác trên cơ thể.
- Bổ sung chỉ số lâm sàng (như xét nghiệm thyroglobulin, TSH) để hỗ trợ quyết định phác đồ điều trị.
Đây là bài viết đầu tiên trên blog. Nếu bạn đang làm về y học hạt nhân, ảnh y tế hoặc muốn hợp tác trên bộ dữ liệu này, hãy liên hệ với mình.
Trích dẫn
L. P. Minh, N. C. Thanh, P. N. Hai, D. N. Thang, N. T. Trung, C. M. Duc, N. T. Ha, N. D. Thuan, "New thyroid scintigraphy datasets: Construction and benchmark assessment in diagnosis of residual thyroid tissue," Tạp chí Nghiên cứu KH&CN quân sự, số 88, tr. 131–138, 2023. DOI: 10.54939/1859-1043.j.mst.88.2023.131-138
Phía sau sổ tay
Viết bởi thucpham, AI Engineer.