{"id":19431047,"url":"https://github.com/zqpei/dssd","last_synced_at":"2025-06-25T18:10:04.090Z","repository":{"id":45247273,"uuid":"231211424","full_name":"ZQPei/DSSD","owner":"ZQPei","description":"Pytorch implementation of DSSD (Deconvolutional Single Shot Detector)","archived":false,"fork":false,"pushed_at":"2024-07-25T10:16:23.000Z","size":1255,"stargazers_count":56,"open_issues_count":8,"forks_count":20,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-18T15:09:49.310Z","etag":null,"topics":["dssd","object-detection","one-shot-object-detection","one-stage"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"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/ZQPei.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-01T12:05:43.000Z","updated_at":"2024-04-12T06:30:34.000Z","dependencies_parsed_at":"2025-01-02T01:12:06.086Z","dependency_job_id":"bb572143-36bb-479b-af76-a3ab83df906d","html_url":"https://github.com/ZQPei/DSSD","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ZQPei/DSSD","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZQPei%2FDSSD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZQPei%2FDSSD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZQPei%2FDSSD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZQPei%2FDSSD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZQPei","download_url":"https://codeload.github.com/ZQPei/DSSD/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZQPei%2FDSSD/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261927623,"owners_count":23231380,"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":["dssd","object-detection","one-shot-object-detection","one-stage"],"created_at":"2024-11-10T14:28:04.083Z","updated_at":"2025-06-25T18:10:04.037Z","avatar_url":"https://github.com/ZQPei.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DSSD in pytorch\n\n\nThis repository implements [DSSD : Deconvolutional Single Shot Detector](https://arxiv.org/abs/1512.02325). The code were borrowed heavily from [SSD](https://github.com/lufficc/SSD). The things I did was the DSSD network definition, including the **backbone of resnet101, deconvolutional module, and the prediction modules**. Code for training, distributed training, dataset loading and data augmention is the same as [lufficc's SSD](https://github.com/lufficc/SSD). Thanks [@lufficc](https://github.com/lufficc) for his great job.\n\nIt is worth mentioning that I changed the `DSSD321` to `DSSD320` and `DSSD513` to `DSSD512` to fit pytorch convolution and deconvolution modules. The mAP will not be affected at all. In fact, I get a higher mAP than paper!\n\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"demo/result/001357.jpg\" width=\"500px\" /\u003e\n  \u003cp\u003eExample DSSD output (resnet101_dssd320_voc0712).\u003c/p\u003e\n\u003c/div\u003e\n\n\n## Installation\n### Requirements\n\n1. Python3\n1. PyTorch 1.0 or higher\n1. yacs\n1. [Vizer](https://github.com/lufficc/Vizer)\n1. GCC \u003e= 4.9\n1. OpenCV\n\n\n### Step-by-step installation\n\n```bash\ngit clone https://github.com/ZQPei/DSSD.git\ncd DSSD\n#Required packages\npip install -r requirements.txt\n\n```\n\n### Build\nIf your torchvision \u003e= 0.3.0, nms build is not needed! We also provide a python-like nms, but is very slower than build-version.\n```bash\n# For faster inference you need to build nms, this is needed when evaluating. Only training doesn't need this.\ncd ext\npython build.py build_ext develop\n```\n\n## Train\n\n### Setting Up Datasets\n#### Pascal VOC\n\nFor Pascal VOC dataset, make the folder structure like this:\n```\nVOC_ROOT\n|__ VOC2007\n    |_ JPEGImages\n    |_ Annotations\n    |_ ImageSets\n    |_ SegmentationClass\n|__ VOC2012\n    |_ JPEGImages\n    |_ Annotations\n    |_ ImageSets\n    |_ SegmentationClass\n|__ ...\n```\nWhere `VOC_ROOT` default is `datasets` folder in current project, you can create symlinks to `datasets` or `export VOC_ROOT=\"/path/to/voc_root\"`.\n\n#### COCO\n\nFor COCO dataset, make the folder structure like this:\n```\nCOCO_ROOT\n|__ annotations\n    |_ instances_valminusminival2014.json\n    |_ instances_minival2014.json\n    |_ instances_train2014.json\n    |_ instances_val2014.json\n    |_ ...\n|__ train2014\n    |_ \u003cim-1-name\u003e.jpg\n    |_ ...\n    |_ \u003cim-N-name\u003e.jpg\n|__ val2014\n    |_ \u003cim-1-name\u003e.jpg\n    |_ ...\n    |_ \u003cim-N-name\u003e.jpg\n|__ ...\n```\nWhere `COCO_ROOT` default is `datasets` folder in current project, you can create symlinks to `datasets` or `export COCO_ROOT=\"/path/to/coco_root\"`.\n\n### Single GPU training\n\n```bash\n# edit script file\nvi scripts/resnet101_dssd320_voc0712_single_gpu.sh\n\n# change line 2 export VOC_ROOT=\"/data/pzq/voc/VOCdevkit\" to your path of VOC dataset.\n# do the same change to the rest scripts file.\n\n# for example, train DSSD320 on VOC:\nsh scripts/resnet101_dssd320_voc0712_single_gpu.sh\n```\n### Multi-GPU training\n\n```bash\n# for example, train DSSD320 with 4 GPUs:\nsh scripts/resnet101_dssd320_voc0712_multi_gpu.sh\n```\n\n## Evaluate\n\n### Single GPU evaluating\n\n```bash\n# for example, evaluate DSSD320:\npython test.py --config-file configs/resnet101_dssd320_voc0712.yaml\n```\n\n### Multi-GPU evaluating\n\n```bash\n# for example, evaluate DSSD320 with 4 GPUs:\nexport NGPUS=4\npython -m torch.distributed.launch --nproc_per_node=$NGPUS test.py --config-file configs/resnet101_dssd320_voc0712.yaml\n```\n\n## Demo\n\nPredicting image in a folder is simple:\n```bash\npython demo.py --config-file configs/resnet101_dssd320_voc0712.yaml --images_dir demo --ckpt [ckpt_path]\n```\n\n\n## Develop Guide\n\nIf you want to add your custom components, please see [DEVELOP_GUIDE.md](DEVELOP_GUIDE.md) for more details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzqpei%2Fdssd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzqpei%2Fdssd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzqpei%2Fdssd/lists"}