{"id":20041738,"url":"https://github.com/ajithvcoder/circle-u-net","last_synced_at":"2026-06-20T20:31:42.482Z","repository":{"id":111986516,"uuid":"382440406","full_name":"ajithvcoder/Circle-U-Net","owner":"ajithvcoder","description":"Implementation of Circle U-Net , https://www.mdpi.com/1999-4893/14/6/159/htm","archived":false,"fork":false,"pushed_at":"2021-07-03T06:58:02.000Z","size":150,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T07:14:32.446Z","etag":null,"topics":["circleunet","deep-learning","segmentation","unet"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ajithvcoder.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-07-02T19:10:48.000Z","updated_at":"2021-09-07T03:22:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"de3d4503-97eb-4827-a441-15d40c0f6586","html_url":"https://github.com/ajithvcoder/Circle-U-Net","commit_stats":null,"previous_names":["ajithvcoder/circle-u-net"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ajithvcoder/Circle-U-Net","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajithvcoder%2FCircle-U-Net","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajithvcoder%2FCircle-U-Net/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajithvcoder%2FCircle-U-Net/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajithvcoder%2FCircle-U-Net/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ajithvcoder","download_url":"https://codeload.github.com/ajithvcoder/Circle-U-Net/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajithvcoder%2FCircle-U-Net/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34585195,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"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":["circleunet","deep-learning","segmentation","unet"],"created_at":"2024-11-13T10:47:40.598Z","updated_at":"2026-06-20T20:31:42.463Z","avatar_url":"https://github.com/ajithvcoder.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Circle-U-Net \n\nThis is implementation of Circle U Net for image segmentation\n\n[Circle-U-Net: An Efficient Architecture for Semantic Segmentation](https://www.mdpi.com/1999-4893/14/6/159/htm) , published in Algorithms Journal 2021\n\n**Dataset** : [ICG - TUGRAZ dataset](http://dronedataset.icg.tugraz.at)\n\n**Installations**\n\n    tensorflow-gpu==2.1.4\n\n### Schematic Diagram\n\n![Schema](assets/schematic_diagram.JPG)\n\n### Architecture\n\n![Architecture](assets/architecture.JPG)\n\n\n### Dataset Tree\n\n```\n---dataset\n          |\n          |---data--\n                    |\n                    |\n                    |\n                    |------icg_drone\n                    |               |\n                    |               |-----train_frames--\n                    |               |                   |-----train------\n                    |               |                   |                |001.jpg\n                    |               |                   |                |002.jpg\n                    |               |                   |                |003.jpg\n                    |               |-----train_masks---\n                    |               |                   |-----train------\n                    |               |                   |                |001.jpg\n                    |               |                   |                |002.jpg\n                    |               |                   |                |003.jpg\n                    |               |\n                    |               |-----val_frames----\n                    |               |                   |-----val--------\n                    |               |                   |                |055.jpg\n                    |               |                   |                |056.jpg\n                    |               |                   |                |057.jpg\n                    |               |-----val_masks-----\n                    |               |                   |-----val--------\n                    |               |                   |                |055.jpg\n                    |               |                   |                |056.jpg\n                    |               |                   |                |057.jpg\n                    |\n                    |---label_color.txt\n\n```\n\nIn ICG semantic drone dataset ,\n\n- \"train_frames\" could be taken from - semantic_drone_dataset_semantics_v1.1\\semantic_drone_dataset\\training_set\\images\n\n- \"train_masks\" could be taken from - \nsemantic_drone_dataset_semantics_v1.1\\semantic_drone_dataset\\training_set\\gt\\semantic\\label_images\n\nPlease randomly seperate train and val set as you like make sure there are 360 for training and 40 for testing\n\n**Train frames**\n\nall other images except in val set\n\n**Train masks**\n\nall other images except in val set\n\n**Val frames** \n\n3,19,53,71,89,104,122,139,182,177,216,225,244,263,290,304,320,332,367,386\n412,421,438,476,489,507,524,545,567,583,584,585,586,587,588,590,591,592,593,593,594\n\n\n**Val masks** \n\n3,19,53,71,89,104,122,139,182,177,216,225,244,263,290,304,320,332,367,386\n412,421,438,476,489,507,524,545,567,583,584,585,586,587,588,590,591,592,593,593,594\n\n\n### Training\n\n**Attenation Unet**\n\n\n``` python drone_main.py -d \"camvid_small\" -idir \"dataset/icg_drone/data/\" -m \"att_unet\" -ht 256 -w 256 -bs 5 --loss tversky --num_epochs 60 ```\n\n\n**Resnet101 Unet**\n\n```python drone_main.py -d \"camvid_small\" -idir \"dataset/icg_drone/data/\" -m \"res_unet\" -ht 256 -w 256 -bs 5 --loss tversky --num_epochs 60 ```\n\n**Unet**\n\n```python drone_main.py -d \"camvid_small\" -idir \"dataset/icg_drone/data/\" -m \"tiny_unet\" -ht 256 -w 256 -bs 5 --loss tversky --num_epochs 60```\n\n**Circlenet** - Tversky loss\n\n```python drone_main.py -d \"camvid_small\" -idir \"dataset/icg_drone/data/\" -m \"circlenet\" -ht 256 -w 256 -bs 5 --loss tversky --num_epochs 60```\n\n**Circlenet** - Categorical cross entropy\n\n```python drone_main.py -d \"camvid_small\" -idir \"dataset/icg_drone/data/\" -m \"circlenet\" -ht 256 -w 256 -bs 5 --loss CCE --num_epochs 60```\n\n**Circlenet with attention**  - Tversky loss\n\n```python drone_main.py -d \"camvid_small\" -idir \"dataset/icg_drone/data/\" -m \"circle_att_101\" -ht 256 -w 256 -bs 5 --loss tversky --num_epochs 60 ```\n\n**Circlenet with attention**  - Categorical cross entropy\n\n```python drone_main.py -d \"camvid_small\" -idir \"dataset/icg_drone/data/\" -m \"circle_att_101\" -ht 256 -w 256 -bs 5 --loss CCE --num_epochs 60 ```\n\n**Attention unet** - Categorical cross entropy\n\n```python drone_main.py -d \"camvid_small\" -idir \"dataset/icg_drone/data/\" -m att_unet -ht 256 -w 256 -bs 5 --loss CCE --num_epochs 60 ```\n\n**Resunet** - Categorical cross entropy\n\n``` python drone_main.py -d \"camvid_small\" -idir \"dataset/icg_drone/data/\" -m \"res_unet\" -ht 256 -w 256 -bs 5 --loss CCE --num_epochs 60 ```\n\n**Squeezeunet** -CCE \n\n``` python drone_main.py -d \"camvid_small\" -idir \"dataset/icg_drone/data/\" -m new_squeezenet  -ht 256 -w 256 -bs 5 --loss CCE --num_epochs 60 ```\n\n**Evaluating model and predicting images**\n    \n    python evaluate.py -d \"camvid\" -idir \"dataset/camvid/data/\" -mt \"squeeze_unet_keras\" -m \"camvid_model_5_epochs.h5\" -ht 256 -w 256\n\n    \n\n### Related papers :\n\n- [Growth of Unet](https://paperswithcode.com/method/u-net)\n- [Unet - root](https://arxiv.org/pdf/1505.04597.pdf)\n\nLast two years SOTA papers\n- [UNet](https://arxiv.org/pdf/1505.04597.pdf)\n- [UNet++](https://arxiv.org/pdf/1807.10165.pdf)\n- [Att_UNet](https://arxiv.org/pdf/1804.03999.pdf)\n- [ResUNet](https://arxiv.org/pdf/1512.03385.pdf)\n- [RexUnet](https://arxiv.org/pdf/1611.05431.pdf)\n- [Adversarial Learning](https://arxiv.org/pdf/1802.07934.pdf) \n- [NAS-Unet](https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8681706)\n\n\nCVPR \n- [Eff-UNet](https://openaccess.thecvf.com/content_CVPRW_2020/papers/w22/Baheti_Eff-UNet_A_Novel_Architecture_for_Semantic_Segmentation_in_Unstructured_Environment_CVPRW_2020_paper.pdf)\n- [Feedback U-net](https://openaccess.thecvf.com/content_CVPRW_2020/papers/w57/Shibuya_Feedback_U-Net_for_Cell_Image_Segmentation_CVPRW_2020_paper.pdf)\n- [Enhanced rotation equivariant Unet](https://openaccess.thecvf.com/content_CVPRW_2019/papers/CVMI/Chidester_Enhanced_Rotation-Equivariant_U-Net_for_Nuclear_Segmentation_CVPRW_2019_paper.pdf)\n\nICCV \n- [Reccurent Unets](https://openaccess.thecvf.com/content_ICCV_2019/html/Wang_Recurrent_U-Net_for_Resource-Constrained_Segmentation_ICCV_2019_paper.html)\n- [BCDU-Net](http://openaccess.thecvf.com/content_ICCVW_2019/papers/VRMI/Azad_Bi-Directional_ConvLSTM_U-Net_with_Densley_Connected_Convolutions_ICCVW_2019_paper.pdf) - https://github.com/rezazad68/BCDU-Net\n\n- [GAN based_on UNet](https://openaccess.thecvf.com/content_CVPR_2020/papers/Schonfeld_A_U-Net_Based_Discriminator_for_Generative_Adversarial_Networks_CVPR_2020_paper.pdf)\n- [RUNet for super resolution](https://openaccess.thecvf.com/content_CVPRW_2019/papers/WiCV/Hu_RUNet_A_Robust_UNet_Architecture_for_Image_Super-Resolution_CVPRW_2019_paper.pdf)\n\n\n\n### Cite\n\nPlease site our paper if you use this code in your own work:\n\n```\n@inproceedings{fengsun2021circleunet,\n  title={Circle-U-Net: An Efficient Architecture for Semantic Segmentation},\n  author={Feng Sun, Ajith Kumar V, Guanci Yang, Ansi Zhang, Yiyun Zhang},\n  booktitle={Algorithms},\n  year={2021}\n}\n```\n\n```\nSun F, Yang G, Zhang A, et al. Circle-U-Net: An Efficient Architecture for Semantic Segmentation[J]. Algorithms, 2021, 14(6): 159.\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajithvcoder%2Fcircle-u-net","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fajithvcoder%2Fcircle-u-net","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajithvcoder%2Fcircle-u-net/lists"}