๏ผ่ฃ็ผ / ๆธๆฐด / ๅฅ่ฝ๏ผๅ็ด ็บงๅๅฒ็ณป็ป
ๆฌ้กน็ฎๅฎ็ฐไบไธไธช ้ง้็ปๆ็
ๅฎณ็่ฏญไนๅๅฒๆจกๅ๏ผๆฏๆ่ฎญ็ปใๆจ็ใ่ฏไผฐใๅฏ่งๅ็ญๅ่ฝใ
ๆจกๅๅบไบ DeepLabV3 + ResNet50๏ผๅนถๅฏนๆฐๆฎ้่ฟ่กไบๅฎ้
ๅทฅ็จๅบๆฏ้้
ใ
โ ่ฎญ็ป DeepLabV3-ResNet50
โ ่ชๅจๅป็ป / ่งฃๅป Backbone
โ ่ชๅจไฟๅญๆไฝณๆจกๅ
โ ้ขๆต็ปๆๅฏ่งๅ๏ผๆฉ่ๅพ + ๅ ๅ ๅพ๏ผ
โ ๆฏๆ mIoU / mPA / ๆททๆท็ฉ้ต็ญๅฎๆด่ฏไผฐ
โ ่ชๅจ็ปๅถ่ฎญ็ปๆฒ็บฟ
โ ๆฏๆ็ดๆฅ้จ็ฝฒๆจ็
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ่พๅ
ฅๅพๅ (3ร512ร512) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ResNet-50 ไธปๅนฒ็ฝ็ป โ
โ Conv1 โ Layer1-4 โ
โ ่พๅบ 2048 ้้็นๅพ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ASPP โ
โ ๅคๅฐบๅบฆ็ฉบๆดๅท็งฏ๏ผ1,6,12,18๏ผ โ
โ ๅ
จๅฑๆฑ ๅๅๆฏ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 1ร1 ๅท็งฏ๏ผ4 ็ฑป๏ผ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ไธ้ๆ ท๏ผๅ็บฟๆงๆๅผ ร4๏ผ โ
โ ่พๅบๅๅฒๅพ๏ผ4ร512ร512๏ผ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
conda create -n pytorch python=3.11
conda activate pytorchpip install torch==2.5.1+cu118 torchvision==0.20.1 --index-url https://download.pytorch.org/whl/cu118pip install numpy pillow matplotlib scikit-learn opencv-python tqdm seabornproject_deeplab/
โ
โโโ checkpoints/ # ๆจกๅๆ้๏ผ่ชๅจไฟๅญ๏ผ
โ โโโ best_deeplabv3_resnet50.pth
โ
โโโ data/
โ โโโ train/ # ่ฎญ็ปๆฐๆฎ้๏ผ็จๆท้ๆๅจๆพ็ฝฎ๏ผ
โ โโโ images/ # ๅๅงๅพๅ๏ผ*.jpg / *.png๏ผ
โ โโโ masks/ # ๆฉ็ ๆ ็ญพ๏ผ0/1/2/3 ๅ้้๏ผ
โ โโโ masks_visualizations/ # ๆฉ็ ๅฏ่งๅ๏ผๅฏ้๏ผ
โ
โโโ dataloader/
โ โโโ dataset_tunnel.py # ่ชๅฎไน้ง้็
ๅฎณๆฐๆฎ้
โ
โโโ Evaluation_plot/ # ่ฎญ็ปๆฒ็บฟ & ่ฏไผฐๅพ๏ผ่ชๅจ็ๆ๏ผ
โ
โโโ logs/
โ โโโ train_log.csv # ่ฎญ็ปๆฅๅฟ๏ผ่ชๅจ็ๆ๏ผ
โ
โโโ models/
โ โโโ deeplab_model.py # DeepLabV3 + ResNet50 ๅฎไน
โ โโโ utils.py # ๆจกๅ่พ
ๅฉๅฝๆฐ
โ
โโโ results_example/ # ้ขๆต็ปๆ็คบไพ๏ผ้ฎ็ฝฉ & ๅ ๅ ๏ผ
โ
โโโ test/ # ๅ็ฑปๆต่ฏ่ๆฌ
โ โโโ data_checkpoint.py # ๆต่ฏๆฐๆฎ็ปๆๆฏๅฆๅฎๆด
โ โโโ mask_checkpoint.py # ๆต่ฏ mask ๆฏๅฆ่ง่
โ โโโ test_import.py # ๅฏผๅ
ฅๆจกๅๆต่ฏ
โ โโโ test_scan.py # ๅบ็กๆซๆๆฃๆฅ
โ
โโโ .gitignore # Git ๅฟฝ็ฅๆไปถ
โ
โโโ convert_mask.py # ๅฐ RGB mask ่ฝฌๅ้้ๆ ็ญพ
โโโ evaluate_metrics.py # mIoU / mPA / ๆททๆท็ฉ้ต่ฏไผฐ
โโโ plog_log.py # ็ปๅถ่ฎญ็ปๆฒ็บฟ
โโโ predict.py # ๆจ็่ๆฌ๏ผๅๅผ ๅพ็้ขๆต๏ผ
โโโ train.py # ่ฎญ็ปไธป็จๅบ
โ
โโโ README.md
็ดๆฅ่ฟ่ก๏ผ
python train.py่ฎญ็ป่ฟ็จๅ ๆฌ๏ผ
- ๅ 10 ่ฝฎๅป็ป backbone
- ๅ็ปญ ๅ จ้จ่งฃๅป fine-tune
- ่ชๅจไฟๅญๆไผๆจกๅๅฐ๏ผ
checkpoints/best_deeplabv3_resnet50.pth
- ่ชๅจ็ๆ่ฎญ็ปๆฅๅฟ๏ผ
logs/train_log.csv
ไฟฎๆน predict.py ๆซๅฐพ็ๅพ็ๅฐๅ๏ผ
predict("data/train/images/0004.jpg")่ฟ่ก๏ผ
python predict.py็ๆ๏ผ
results/xxx_mask.png
results/xxx_overlay.png
่ฟ่ก๏ผ
python evaluate_metrics.py่ฏไผฐๅ ๅซ๏ผ
- mIoU๏ผๅนณๅไบคๅนถๆฏ๏ผ
- mPA๏ผๅนณๅๅ็ด ็ฒพๅบฆ๏ผ
- ๆททๆท็ฉ้ต
- ๆฏ็ฑป PA / IoU ๆฑ็ถๅพ
ๆๆๅพ่กจ่ชๅจไฟๅญ่ณ๏ผ
Evaluation_plot/
็คบไพ๏ผ
่ฎญ็ป็ปๆๅ่ชๅจ็ปๅถ 4 ๆกๆฒ็บฟ๏ผ
- Train Loss
- Validation Loss
- Pixel Accuracy
- Freeze / Unfreeze ็ถๆ
ไฟๅญไบ๏ผ
Evaluation_plot/
ไฝ ็ๅฎ้ ่ฎญ็ป็ปๆ๏ผ็คบไพ๏ผ๏ผ
| ๆๆ | ๅพๅ |
|---|---|
| mPA | ~92.7% |
| mIoU | ~83.8% |
| ้ช่ฏ้ Pixel Accuracy | ~94% |
| ๆจกๅๆณๅๆง | ่ฏๅฅฝ๏ผ่ๆฏ้ซใ็ ๅฎณ่พไธบๅ็กฎ๏ผ |
ๆจกๅๅทฒ็ป่พพๅฐๅฎ้ ๅบ็จ็ๅทฅ็จ็บง็ฒพๅบฆใ
ๅ ไธบ่ๆฏๅ็ด ่ฟๅคไบ็ ๅฎณๅ็ด โ ็ฑปๅซไธๅนณ่กกใ
ๆญฃๅธธใ่ฃ็ผใๆธๆฐดใๅฅ่ฝๅฑไบ็ป็ฒๅบฆใๅฐๅบๅ็ฎๆ ๏ผIoU ้ๅธธๆๆพไฝไบ่ๆฏใ
ๅฏไปฅ๏ผๆๅพ็่ทฏๅพๆขๆไฝ ่ชๅทฑ็ๅณๅฏใ
ๆฌ้กน็ฎๅบไบ MIT ๅผๆบๅ่ฎฎ๏ผๅฏ่ช็ฑไฝฟ็จใไฟฎๆนใๅๅใ
ๆฌข่ฟๆๅบ Issue ๆ PR๏ผ
๐ GitHub: https://github.com/RicardoMFu
