Skip to content

RicardoMFu/Ricardo-Deeplabv3-Resnet50-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

21 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿšง ๅŸบไบŽ DeepLabV3 + ResNet50 ็š„้šง้“็—…ๅฎณ่ฏญไน‰ๅˆ†ๅ‰ฒ

๏ผˆ่ฃ‚็ผ / ๆธ—ๆฐด / ๅ‰ฅ่ฝ๏ผ‰ๅƒ็ด ็บงๅˆ†ๅ‰ฒ็ณป็ปŸ

ๆœฌ้กน็›ฎๅฎž็Žฐไบ†ไธ€ไธช ้šง้“็ป“ๆž„็—…ๅฎณ็š„่ฏญไน‰ๅˆ†ๅ‰ฒๆจกๅž‹๏ผŒๆ”ฏๆŒ่ฎญ็ปƒใ€ๆŽจ็†ใ€่ฏ„ไผฐใ€ๅฏ่ง†ๅŒ–็ญ‰ๅŠŸ่ƒฝใ€‚
ๆจกๅž‹ๅŸบไบŽ 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๏ผ‰           โ”‚
           โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ฆ ็Žฏๅขƒ้…็ฝฎ

1๏ธโƒฃ ๅˆ›ๅปบ Conda ็Žฏๅขƒ

conda create -n pytorch python=3.11
conda activate pytorch

2๏ธโƒฃ ๅฎ‰่ฃ… PyTorch๏ผˆ้€‚้… RTX 3050๏ผŒCUDA 11.8๏ผ‰

pip install torch==2.5.1+cu118 torchvision==0.20.1 --index-url https://download.pytorch.org/whl/cu118

3๏ธโƒฃ ๅฎ‰่ฃ…้กน็›ฎไพ่ต–

pip install numpy pillow matplotlib scikit-learn opencv-python tqdm seaborn

๐Ÿ“‚ ้กน็›ฎ็ป“ๆž„

project_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

๐Ÿ“Š ่ฏ„ไผฐๆŒ‡ๆ ‡๏ผˆmIoU / mPA / ๆททๆท†็Ÿฉ้˜ต๏ผ‰

่ฟ่กŒ๏ผš

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%
ๆจกๅž‹ๆณ›ๅŒ–ๆ€ง ่‰ฏๅฅฝ๏ผˆ่ƒŒๆ™ฏ้ซ˜ใ€็—…ๅฎณ่พƒไธบๅ‡†็กฎ๏ผ‰

ๆจกๅž‹ๅทฒ็ป่พพๅˆฐๅฎž้™…ๅบ”็”จ็š„ๅทฅ็จ‹็บง็ฒพๅบฆใ€‚


๐Ÿ’ก ๅธธ่ง้—ฎ้ข˜ (FAQ)

1. ไธบไป€ไนˆ่ƒŒๆ™ฏ็ฒพๅบฆๆœ€้ซ˜๏ผŸ

ๅ› ไธบ่ƒŒๆ™ฏๅƒ็ด ่ฟœๅคšไบŽ็—…ๅฎณๅƒ็ด  โ†’ ็ฑปๅˆซไธๅนณ่กกใ€‚

2. ๅฐ็›ฎๆ ‡ IoU ่พƒไฝŽๆญฃๅธธๅ—๏ผŸ

ๆญฃๅธธใ€‚่ฃ‚็ผใ€ๆธ—ๆฐดใ€ๅ‰ฅ่ฝๅฑžไบŽ็ป†็ฒ’ๅบฆใ€ๅฐๅŒบๅŸŸ็›ฎๆ ‡๏ผŒIoU ้€šๅธธๆ˜Žๆ˜พไฝŽไบŽ่ƒŒๆ™ฏใ€‚

3. ๆˆ‘่ƒฝ็”จ่‡ชๅทฑ็š„ๅ›พ็‰‡ๅ—๏ผŸ

ๅฏไปฅ๏ผŒๆŠŠๅ›พ็‰‡่ทฏๅพ„ๆขๆˆไฝ ่‡ชๅทฑ็š„ๅณๅฏใ€‚


๐Ÿ“ License

ๆœฌ้กน็›ฎๅŸบไบŽ MIT ๅผ€ๆบๅ่ฎฎ๏ผŒๅฏ่‡ช็”ฑไฝฟ็”จใ€ไฟฎๆ”นใ€ๅˆ†ๅ‘ใ€‚


๐Ÿค ่”็ณปๆ–นๅผ

ๆฌข่ฟŽๆๅ‡บ Issue ๆˆ– PR๏ผš

๐Ÿ”— GitHub: https://github.com/RicardoMFu