This repository implements HTS-MultiResUNet, a hybrid Transformer-CNN architecture for medical image segmentation with edge-aware supervision.
| No. | Full Name | Student ID |
|---|---|---|
| 1 | Nguyễn Hữu Khánh Duy | 23520375 |
| 2 | Nguyễn Bá Long | 23520880 |
| 3 | Hồ Hoàng Quân | 23521252 |
HTS-MultiResUNet extends MultiResUNet by combining:
- SE-MultiRes Blocks for channel-wise feature recalibration.
- Transformer bottleneck with Multi-Head Self-Attention to capture long-range context.
- Edge-Aware Focal Tversky Loss (EA-FTL) for class-imbalanced medical segmentation and sharper boundary learning.
- ISBI-2012: Neuronal structure segmentation (Electron Microscopy, 256x256 grayscale).
- CVC-ClinicDB: Colonoscopy polyp segmentation (RGB, 192x256).
- ISIC-2018: Skin lesion segmentation (RGB, 192x256).
- ISBI-2009: Medical image segmentation (RGB, 256x256, small-scale).
Sắp xếp dữ liệu theo cấu trúc sau để train.py và evaluate.py hoạt động đúng:
data/isbi2012/train-volume.tifdata/isbi2012/train-labels.tif
data/cvc_clinicdb/Original/chứa ảnh gốc1.png,2.png, ...data/cvc_clinicdb/Ground Truth/chứa mask1.png,2.png, ...
data/isic2018/ISIC2018_Task1-2_Training_Input/chứa ảnh gốcISIC_0000000.jpg, ...data/isic2018/ISIC2018_Task1_Training_GroundTruth/chứa maskISIC_0000000_segmentation.png, ...
data/isbi2009/images/chứa ảnh gốcimage_0.png, ...data/isbi2009/masks/chứa maskmask_0.png, ...
HTS-MultiResUNet/
├── data/ # Dataset folders
│ ├── isbi2012/ # train-volume.tif, train-labels.tif
│ ├── cvc_clinicdb/ # Original/, Ground Truth/
│ ├── isic2018/ # ISIC2018_Task1-2_Training_Input/, ISIC2018_Task1_Training_GroundTruth/
│ └── isbi2009/ # images/, masks/
├── models/ # Model definitions
│ ├── hts_multiresunet.py # Proposed HTS-MultiResUNet architecture
│ └── baseline_multires.py # Baseline MultiResUNet architecture
├── utils/ # Dataset, loss, metrics, visualization
│ ├── dataset.py
│ ├── losses.py
│ ├── metrics.py
│ └── visualization.py
├── train.py # Training pipeline with K-Fold CV
├── evaluate.py # Evaluation and visualization pipeline
├── requirements.txt # Python dependencies
└── README.md
git clone https://github.com/NBasLongz/HTS-MultiResUNet.git
cd HTS-MultiResUNet
python -m venv venv
# Windows:
venv\Scripts\activate
# Linux/macOS:
source venv/bin/activate
pip install -r requirements.txtSử dụng train.py để huấn luyện với K-Fold cross validation.
python train.py \
--dataset isbi2009 \
--image_dir ./data/isbi2009/images \
--mask_dir ./data/isbi2009/masks \
--model_name hts_multiresunet \
--epochs 150 \
--batch_size 4 \
--lr 1e-3 \
--save_dir ./resultspython train.py \
--dataset isbi2012 \
--image_dir ./data/isbi2012/train-volume.tif \
--mask_dir ./data/isbi2012/train-labels.tif \
--model_name hts_multiresunet \
--epochs 150 \
--batch_size 4 \
--lr 1e-3 \
--save_dir ./results--dataset:[isbi2012, cvc_clinicdb, isic2018, isbi2009]--image_dir: Thư mục ảnh gốc hoặc file.tifcho ISBI-2012--mask_dir: Thư mục mask hoặc file.tifcho ISBI-2012--model_name:[hts_multiresunet, baseline_multires](mặc địnhhts_multiresunet)--epochs: Số epoch tối đa (mặc định150)--batch_size: Batch size; nếu không chỉ định, script tự chọn theo dataset--lr: Learning rate ban đầu (mặc định1e-3)--n_folds: Số fold cho K-Fold CV (mặc định5)--early_stopping: Patience cho EarlyStopping (mặc định30)--save_dir: Thư mục lưu weights và logs
Sử dụng evaluate.py để đánh giá và tạo ảnh XAI / error map.
python evaluate.py \
--dataset isbi2009 \
--image_dir ./data/isbi2009/images \
--mask_dir ./data/isbi2009/masks \
--weights_path ./results/hts_multiresunet_isbi2009_fold1.weights.h5 \
--model_name hts_multiresunet \
--visualize True \
--save_dir ./results/visualizations--weights_path: Đường dẫn tới file weights đã lưu--model_name:[hts_multiresunet, baseline_multires]--visualize:TruehoặcFalse--save_dir: Thư mục lưu kết quả trực quan
Lưu ý:
--visualize Truechỉ kích hoạt XAI chohts_multiresunet; vớibaseline_multires, chỉ sinh error map.
train.pyvàevaluate.pysử dụngutils.dataset.load_dataset()để load và chuẩn hóa ảnh/mask.isbi2012được xử lý dưới dạng ảnh đơn kênh (grayscale); các dataset khác là ảnh RGB.- Mỗi dataset có kích thước đầu vào cố định:
isbi2012(256x256),cvc_clinicdbvàisic2018(192x256),isbi2009(256x256).
@article{nguyen2026htsmultiresunet,
title={HTS-MultiResUNet: A Hybrid Transformer-CNN Architecture with Edge-Aware Focal Tversky Loss for Medical Image Segmentation},
author={Nguyễn, Bá Long and Nguyễn, Hữu Khánh Duy and Hồ, Hoàng Quân},
journal={TBD},
year={2026}
}- Baseline MultiResUNet được tham khảo từ công trình gốc của N. Ibtehaz và M. S. Rahman.
- Tài nguyên tính toán được hỗ trợ bởi môi trường Kaggle Cloud (NVIDIA Tesla P100/T4x2).
This project is licensed under the MIT License.