{"id":13525824,"url":"https://github.com/Tramac/awesome-semantic-segmentation-pytorch","last_synced_at":"2025-04-01T05:32:27.289Z","repository":{"id":37432288,"uuid":"174904616","full_name":"Tramac/awesome-semantic-segmentation-pytorch","owner":"Tramac","description":"Semantic Segmentation on PyTorch (include FCN, PSPNet, Deeplabv3, Deeplabv3+, DANet, DenseASPP, BiSeNet, EncNet, DUNet, ICNet, ENet, OCNet, CCNet, PSANet, CGNet, ESPNet, LEDNet, DFANet)","archived":false,"fork":false,"pushed_at":"2023-01-04T08:24:27.000Z","size":1788,"stargazers_count":2757,"open_issues_count":119,"forks_count":578,"subscribers_count":43,"default_branch":"master","last_synced_at":"2024-05-19T22:00:00.746Z","etag":null,"topics":["pytorch","semantic-segmentation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tramac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-03-11T01:33:25.000Z","updated_at":"2024-05-18T10:24:00.000Z","dependencies_parsed_at":"2023-02-02T05:01:13.325Z","dependency_job_id":null,"html_url":"https://github.com/Tramac/awesome-semantic-segmentation-pytorch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tramac%2Fawesome-semantic-segmentation-pytorch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tramac%2Fawesome-semantic-segmentation-pytorch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tramac%2Fawesome-semantic-segmentation-pytorch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tramac%2Fawesome-semantic-segmentation-pytorch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tramac","download_url":"https://codeload.github.com/Tramac/awesome-semantic-segmentation-pytorch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246372526,"owners_count":20766633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pytorch","semantic-segmentation"],"created_at":"2024-08-01T06:01:22.577Z","updated_at":"2025-04-01T05:32:27.261Z","avatar_url":"https://github.com/Tramac.png","language":"Python","funding_links":[],"categories":["Python","Other Lists","Uncategorized","Frameworks for segmentation"],"sub_categories":["TeX Lists","Uncategorized","Variants"],"readme":"# Semantic Segmentation on PyTorch\n\nEnglish | [简体中文](/README_zh-CN.md)\n\n[![python-image]][python-url]\n[![pytorch-image]][pytorch-url]\n[![lic-image]][lic-url]\n\nThis project aims at providing a concise, easy-to-use, modifiable reference implementation for semantic segmentation models using PyTorch.\n\n\u003cp align=\"center\"\u003e\u003cimg width=\"100%\" src=\"docs/weimar_000091_000019_gtFine_color.png\" /\u003e\u003c/p\u003e\n\n## Installation\n\n```\n# semantic-segmentation-pytorch dependencies\npip install ninja tqdm\n\n# follow PyTorch installation in https://pytorch.org/get-started/locally/\nconda install pytorch torchvision -c pytorch\n\n# install PyTorch Segmentation\ngit clone https://github.com/Tramac/awesome-semantic-segmentation-pytorch.git\n```\n\n## Usage\n### Train\n-----------------\n- **Single GPU training**\n```\n# for example, train fcn32_vgg16_pascal_voc:\npython train.py --model fcn32s --backbone vgg16 --dataset pascal_voc --lr 0.0001 --epochs 50\n```\n- **Multi-GPU training**\n\n```\n# for example, train fcn32_vgg16_pascal_voc with 4 GPUs:\nexport NGPUS=4\npython -m torch.distributed.launch --nproc_per_node=$NGPUS train.py --model fcn32s --backbone vgg16 --dataset pascal_voc --lr 0.0001 --epochs 50\n```\n\n### Evaluation\n-----------------\n- **Single GPU evaluating**\n```\n# for example, evaluate fcn32_vgg16_pascal_voc\npython eval.py --model fcn32s --backbone vgg16 --dataset pascal_voc\n```\n- **Multi-GPU evaluating**\n```\n# for example, evaluate fcn32_vgg16_pascal_voc with 4 GPUs:\nexport NGPUS=4\npython -m torch.distributed.launch --nproc_per_node=$NGPUS eval.py --model fcn32s --backbone vgg16 --dataset pascal_voc\n```\n### Demo\n```\ncd ./scripts\n#for new users:\npython demo.py --model fcn32s_vgg16_voc --input-pic ../tests/test_img.jpg\n#you should add 'test.jpg' by yourself\npython demo.py --model fcn32s_vgg16_voc --input-pic ../datasets/test.jpg\n```\n\n```\n.{SEG_ROOT}\n├── scripts\n│   ├── demo.py\n│   ├── eval.py\n│   └── train.py\n```\n\n## Support\n\n#### Model\n\n- [FCN](https://arxiv.org/abs/1411.4038)\n- [ENet](https://arxiv.org/pdf/1606.02147)\n- [PSPNet](https://arxiv.org/pdf/1612.01105)\n- [ICNet](https://arxiv.org/pdf/1704.08545)\n- [DeepLabv3](https://arxiv.org/abs/1706.05587)\n- [DeepLabv3+](https://arxiv.org/pdf/1802.02611)\n- [DenseASPP](http://openaccess.thecvf.com/content_cvpr_2018/papers/Yang_DenseASPP_for_Semantic_CVPR_2018_paper.pdf)\n- [EncNet](https://arxiv.org/abs/1803.08904v1)\n- [BiSeNet](https://arxiv.org/abs/1808.00897)\n- [PSANet](https://hszhao.github.io/papers/eccv18_psanet.pdf)\n- [DANet](https://arxiv.org/pdf/1809.02983)\n- [OCNet](https://arxiv.org/pdf/1809.00916)\n- [CGNet](https://arxiv.org/pdf/1811.08201)\n- [ESPNetv2](https://arxiv.org/abs/1811.11431)\n- [DUNet(DUpsampling)](https://arxiv.org/abs/1903.02120)\n- [FastFCN(JPU)](https://arxiv.org/abs/1903.11816)\n- [LEDNet](https://arxiv.org/abs/1905.02423)\n- [Fast-SCNN](https://github.com/Tramac/Fast-SCNN-pytorch)\n- [LightSeg](https://github.com/Tramac/Lightweight-Segmentation)\n- [DFANet](https://arxiv.org/abs/1904.02216)\n\n[DETAILS](https://github.com/Tramac/awesome-semantic-segmentation-pytorch/blob/master/docs/DETAILS.md) for model \u0026 backbone.\n```\n.{SEG_ROOT}\n├── core\n│   ├── models\n│   │   ├── bisenet.py\n│   │   ├── danet.py\n│   │   ├── deeplabv3.py\n│   │   ├── deeplabv3+.py\n│   │   ├── denseaspp.py\n│   │   ├── dunet.py\n│   │   ├── encnet.py\n│   │   ├── fcn.py\n│   │   ├── pspnet.py\n│   │   ├── icnet.py\n│   │   ├── enet.py\n│   │   ├── ocnet.py\n│   │   ├── psanet.py\n│   │   ├── cgnet.py\n│   │   ├── espnet.py\n│   │   ├── lednet.py\n│   │   ├── dfanet.py\n│   │   ├── ......\n```\n\n#### Dataset\n\nYou can run script to download dataset, such as:\n\n```\ncd ./core/data/downloader\npython ade20k.py --download-dir ../datasets/ade\n```\n\n|                           Dataset                            | training set | validation set | testing set |\n| :----------------------------------------------------------: | :----------: | :------------: | :---------: |\n| [VOC2012](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar) |     1464     |      1449      |      ✘      |\n| [VOCAug](http://www.eecs.berkeley.edu/Research/Projects/CS/vision/grouping/semantic_contours/benchmark.tgz) |    11355     |      2857      |      ✘      |\n| [ADK20K](http://groups.csail.mit.edu/vision/datasets/ADE20K/) |    20210     |      2000      |      ✘      |\n| [Cityscapes](https://www.cityscapes-dataset.com/downloads/)  |     2975     |      500       |      ✘      |\n| [COCO](http://cocodataset.org/#download)           |              |                |             |\n| [SBU-shadow](http://www3.cs.stonybrook.edu/~cvl/content/datasets/shadow_db/SBU-shadow.zip) |     4085     |      638       |      ✘      |\n| [LIP(Look into Person)](http://sysu-hcp.net/lip/)       |    30462     |     10000      |    10000    |\n\n```\n.{SEG_ROOT}\n├── core\n│   ├── data\n│   │   ├── dataloader\n│   │   │   ├── ade.py\n│   │   │   ├── cityscapes.py\n│   │   │   ├── mscoco.py\n│   │   │   ├── pascal_aug.py\n│   │   │   ├── pascal_voc.py\n│   │   │   ├── sbu_shadow.py\n│   │   └── downloader\n│   │       ├── ade20k.py\n│   │       ├── cityscapes.py\n│   │       ├── mscoco.py\n│   │       ├── pascal_voc.py\n│   │       └── sbu_shadow.py\n```\n\n## Result\n- **PASCAL VOC 2012**\n\n|Methods|Backbone|TrainSet|EvalSet|crops_size|epochs|JPU|Mean IoU|pixAcc|\n|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|\n|FCN32s|vgg16|train|val|480|60|✘|47.50|85.39|\n|FCN16s|vgg16|train|val|480|60|✘|49.16|85.98|\n|FCN8s|vgg16|train|val|480|60|✘|48.87|85.02|\n|FCN32s|resnet50|train|val|480|50|✘|54.60|88.57|\n|PSPNet|resnet50|train|val|480|60|✘|63.44|89.78|\n|DeepLabv3|resnet50|train|val|480|60|✘|60.15|88.36|\n\nNote: `lr=1e-4, batch_size=4, epochs=80`.\n\n## Overfitting Test\nSee [TEST](https://github.com/Tramac/Awesome-semantic-segmentation-pytorch/tree/master/tests) for details.\n\n```\n.{SEG_ROOT}\n├── tests\n│   └── test_model.py\n```\n\n## To Do\n- [x] add train script\n- [ ] remove syncbn\n- [ ] train \u0026 evaluate\n- [x] test distributed training\n- [x] fix syncbn ([Why SyncBN?](https://tramac.github.io/2019/02/25/%E8%B7%A8%E5%8D%A1%E5%90%8C%E6%AD%A5%20Batch%20Normalization[%E8%BD%AC]/))\n- [x] add distributed ([How DIST?](\"https://tramac.github.io/2019/03/06/%E5%88%86%E5%B8%83%E5%BC%8F%E8%AE%AD%E7%BB%83-PyTorch/\"))\n\u003c!--\n- [x] fix syncbn ([Why SyncBN?](https://tramac.github.io/2019/04/08/SyncBN/))\n- [x] add distributed ([How DIST?](https://tramac.github.io/2019/04/22/%E5%88%86%E5%B8%83%E5%BC%8F%E8%AE%AD%E7%BB%83-PyTorch/))\n--\u003e\n## References\n- [PyTorch-Encoding](https://github.com/zhanghang1989/PyTorch-Encoding)\n- [maskrcnn-benchmark](https://github.com/facebookresearch/maskrcnn-benchmark)\n- [gloun-cv](https://github.com/dmlc/gluon-cv)\n- [imagenet](https://github.com/pytorch/examples/tree/master/imagenet)\n\n\n\n\u003c!--\n[![python-image]][python-url]\n[![pytorch-image]][pytorch-url]\n[![lic-image]][lic-url]\n--\u003e\n\n[python-image]: https://img.shields.io/badge/Python-2.x|3.x-ff69b4.svg\n[python-url]: https://www.python.org/\n[pytorch-image]: https://img.shields.io/badge/PyTorch-1.1-2BAF2B.svg\n[pytorch-url]: https://pytorch.org/\n[lic-image]: https://img.shields.io/badge/Apache-2.0-blue.svg\n[lic-url]: https://github.com/Tramac/Awesome-semantic-segmentation-pytorch/blob/master/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTramac%2Fawesome-semantic-segmentation-pytorch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTramac%2Fawesome-semantic-segmentation-pytorch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTramac%2Fawesome-semantic-segmentation-pytorch/lists"}