{"id":31786493,"url":"https://github.com/varun0157/semantic-segmentation","last_synced_at":"2025-10-10T12:59:18.511Z","repository":{"id":317863609,"uuid":"974368793","full_name":"Varun0157/semantic-segmentation","owner":"Varun0157","description":"Semantic Segmentation using FCN and UNet models [Assignment 4 of Computer Vision, IIIT-Hyderabad, Spring '25].","archived":false,"fork":false,"pushed_at":"2025-10-03T13:32:31.000Z","size":23152,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-03T15:29:44.275Z","etag":null,"topics":["fcn","semantic-segmentation","unet"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Varun0157.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-28T17:07:49.000Z","updated_at":"2025-10-03T13:36:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"52564732-4e79-4430-a31a-4f332843e525","html_url":"https://github.com/Varun0157/semantic-segmentation","commit_stats":null,"previous_names":["varun0157/semantic-segmentation"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/Varun0157/semantic-segmentation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Varun0157%2Fsemantic-segmentation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Varun0157%2Fsemantic-segmentation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Varun0157%2Fsemantic-segmentation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Varun0157%2Fsemantic-segmentation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Varun0157","download_url":"https://codeload.github.com/Varun0157/semantic-segmentation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Varun0157%2Fsemantic-segmentation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279003900,"owners_count":26083642,"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","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["fcn","semantic-segmentation","unet"],"created_at":"2025-10-10T12:59:17.595Z","updated_at":"2025-10-10T12:59:18.506Z","avatar_url":"https://github.com/Varun0157.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Semantic Segmentation using FCN and UNet models, done as a part of Assignment 4 of the Computer Vision course (IIIT-Hyderabad, Spring '25). The assignment details can be found in the [assignment document](./docs/CV_S25_A4.pdf).\n\n## Results\n\n### FCN\n\nFor ablations and visualisations, see [the report](./FCN/report.pdf).\n\n#### Visualisations\n\n_Each image has three columns, representing input image, ground truth, followed by prediction (each image is a collage of these three in that order)._\n\n| Backbone type | 32s                                                       | 16s                                                       | 8s                                                       |\n| ------------- | --------------------------------------------------------- | --------------------------------------------------------- | -------------------------------------------------------- |\n| Frozen        | \u003cimg src=\"./images/fcn/frozen/32s_pred0.png\" width=256\u003e   | \u003cimg src=\"./images/fcn/frozen/16s_pred0.png\" width=256\u003e   | \u003cimg src=\"./images/fcn/frozen/8s_pred0.png\" width=256\u003e   |\n| Unfrozen      | \u003cimg src=\"./images/fcn/unfrozen/32s_pred0.png\" width=256\u003e | \u003cimg src=\"./images/fcn/unfrozen/16s_pred0.png\" width=256\u003e | \u003cimg src=\"./images/fcn/unfrozen/8s_pred0.png\" width=256\u003e |\n\nTo train and test the model, run:\n\n```bash\ncd FCN\npython -m src.main \u003coptions\u003e\n```\n\nThe options include the data directory, batch size, model variant, frozen vs unfrozen backbone, the number of epochs, and the learning rate. See the [`main.py`](./FCN/src/main.py) file for more details.\n\nTo visualise some test results on a checkpoint, run:\n\n```bash\ncd FCN\n./visualise.sh\n```\n\n### UNet\n\nFor ablations and visualisations, see [the report](./UNet/report.pdf).\n\n#### Visualisations\n\n_Each image has three columns, representing input image, ground truth, followed by prediction (each image is a collage of these three in that order)._\n\n| Variant         | Prediction 1                                            | Prediction 2                                            |\n| --------------- | ------------------------------------------------------- | ------------------------------------------------------- |\n| Vanilla         | \u003cimg src=\"./images/unet/vanilla/pred_0.png\" width=256\u003e  | \u003cimg src=\"./images/unet/vanilla/pred_7.png\" width=256\u003e  |\n| Residual        | \u003cimg src=\"./images/unet/residual/pred_0.png\" width=256\u003e | \u003cimg src=\"./images/unet/residual/pred_7.png\" width=256\u003e |\n| No-Skip         | \u003cimg src=\"./images/unet/noskip/pred_0.png\" width=256\u003e   | \u003cimg src=\"./images/unet/noskip/pred_7.png\" width=256\u003e   |\n| Gated Attention | \u003cimg src=\"./images/unet/ga/pred_0.png\" width=256\u003e       | \u003cimg src=\"./images/unet/ga/pred_7.png\" width=256\u003e       |\n\nTo train and test the model, run:\n\n```bash\ncd UNet\npython -m src.main \u003coptions\u003e\n```\n\nThe options include the data directory, batch size, model variant, the number of epochs, and the learning rate. See the [`main.py`](./UNet/src/main.py) file for more details.\n\nTo visualise some test results on a checkpoint, run:\n\n```bash\ncd UNet\n./visualise.sh\n```\n\n## Setup\n\nDownload the data from [the following link](https://drive.google.com/drive/folders/1s2ZgwawnZyZXc5eei5cWmgV2A7UXOrMV?usp=sharing).\n\nThe environment can be set up with the conda env file:\n\n```bash\ncd docs\nconda env create -f env.yml\n```\n\nor\n\n```bash\npip install -r requirements.txt\n```\n\nAlternatively, install the dependencies as in [the conda history](./docs/env-hist.yml).\n\n### Scripts\n\nHelper utilities are available to split the train data [into train and validation](./FCN/scripts/split.py) for the FCN, and [for the UNet](./UNet/scripts/split.py), as well as to perform some [exploratory data analysis](./FCN/scripts/eda.py) for the FCN.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvarun0157%2Fsemantic-segmentation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvarun0157%2Fsemantic-segmentation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvarun0157%2Fsemantic-segmentation/lists"}