{"id":18585832,"url":"https://github.com/d-li14/psconv","last_synced_at":"2025-04-10T13:31:26.335Z","repository":{"id":108971513,"uuid":"277075342","full_name":"d-li14/PSConv","owner":"d-li14","description":"[ECCV 2020] PSConv: Squeezing Feature Pyramid into One Compact Poly-Scale Convolutional Layer","archived":false,"fork":false,"pushed_at":"2020-07-14T01:14:35.000Z","size":436,"stargazers_count":174,"open_issues_count":4,"forks_count":26,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-24T21:42:20.818Z","etag":null,"topics":["convolution","eccv2020","feature-pyramids","instance-segmentation","mmdetection","multi-scale","object-detection","pytorch"],"latest_commit_sha":null,"homepage":"https://arxiv.org/abs/2007.06191","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/d-li14.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}},"created_at":"2020-07-04T09:02:28.000Z","updated_at":"2025-01-24T10:19:13.000Z","dependencies_parsed_at":"2023-06-25T20:09:08.571Z","dependency_job_id":null,"html_url":"https://github.com/d-li14/PSConv","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/d-li14%2FPSConv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-li14%2FPSConv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-li14%2FPSConv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-li14%2FPSConv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d-li14","download_url":"https://codeload.github.com/d-li14/PSConv/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248225708,"owners_count":21068078,"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":["convolution","eccv2020","feature-pyramids","instance-segmentation","mmdetection","multi-scale","object-detection","pytorch"],"created_at":"2024-11-07T00:35:38.266Z","updated_at":"2025-04-10T13:31:21.327Z","avatar_url":"https://github.com/d-li14.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Poly-Scale Convolution\nOfficial implementation of our PSConv operator as described in [PSConv: Squeezing Feature Pyramid into One Compact Poly-Scale Convolutional Layer](https://arxiv.org/abs/2007.06191) (ECCV'20) by  [Duo Li](https://github.com/d-li14), [Anbang Yao](https://github.com/YaoAnbang) and [Qifeng Chen](https://github.com/CQFIO) on the [MS COCO 2017](https://cocodataset.org) benchmark.\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"fig/psconv.png\" width=\"600\" /\u003e\u003c/p\u003e\n\nWe collect multi-scale feature representations in a finer granularity, by tactfully allocating a spectrum of dilation rates in the kernel lattice.\n\n## Getting Started\n\n### Installation\n\nFollowing the instructions from [INSTALL.md](INSTALL.md) for installation. More detailed guidance can be found from [MMDetection](https://github.com/open-mmlab/mmdetection).\n\n\n### Download ImageNet pre-trained checkpoints\n\nFetch pre-trained weights of [PS-ResNet-50](https://drive.google.com/file/d/155pB1vci62zQV6AmY4MsCw5zLL0qYmG4/view?usp=sharing), [PS-ResNet-101](https://drive.google.com/file/d/15kgctzliEguQHihJoNeG65Vld9DGEITV/view?usp=sharing) and [PS-ResNeXt-101 (32x4d)](https://drive.google.com/file/d/1dbttT3PvILRQvA9f0nKCLvQNg1a2QsVD/view?usp=sharing) backbones and put them to your local path. Set the `pretrained` path of config file and launch the training of detectors.\n\n### Training\n\nThe default learning rate in config files is for 8 GPUs and 2 img/GPU (batch size = 8*2 = 16).\nAccording to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you need to set the learning rate proportional to the batch size if you use different GPUs or images per GPU, e.g., lr=0.01 for 4 GPUs * 2 img/gpu and lr=0.08 for 16 GPUs * 4 img/GPU.\n\n```shell\n# single-gpu training\npython tools/train.py ${CONFIG_FILE}\n\n# multi-gpu training\n./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]\n```\n\nOptional arguments are:\n\n- `--validate` (**strongly recommended**): Perform evaluation at every k (default value is 1) epochs during the training.\n- `--work_dir ${WORK_DIR}`: Override the working directory specified in the config file.\n- `--resume_from ${CHECKPOINT_FILE}`: Resume from a previous checkpoint file.\n\n### Test\n\n```shell\n# single-gpu testing\npython tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}] [--show]\n\n# multi-gpu testing\n./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--eval ${EVAL_METRICS}]\n```\n\nOptional arguments:\n- `RESULT_FILE`: Filename of the output results in pickle format. If not specified, the results will not be saved to a file.\n- `EVAL_METRICS`: Items to be evaluated on the results. Allowed values are: `proposal_fast`, `proposal`, `bbox`, `segm`, `keypoints`.\n- `--show`: If specified, detection results will be ploted on the images and shown in a new window. (Only applicable for single GPU testing.)\n\n\n## Model Zoo\n\n### Faster R-CNN\n\n| Backbone  |  Style  | Lr schd | box AP |                           Download                           |\n| :-------: | :-----: | :-----: | :----: | :----------------------------------------------------------: |\n| R-50-FPN  | pytorch |   1x    |  38.4  | [model](https://drive.google.com/file/d/1sXHMMCWD9PS73gBRw-C5KoorjzFCfKkA/view?usp=sharing) \u0026#124; [log](https://drive.google.com/file/d/1n1a_XB9XclQk3uoJJ2R3mojytqH3ccTx/view?usp=sharing) |\n| R-101-FPN | pytorch |   1x    |  40.9  | [model](https://drive.google.com/file/d/1NV2dPYBb8lnDS75we0u-qHnPP_pfI6DG/view?usp=sharing) \u0026#124; [log](https://drive.google.com/file/d/17yvoUtn9KqEPTwOUfT1Ucwyqt2ZraD60/view?usp=sharing) |\n| X-101-FPN | pytorch |   1x    |  41.3  | [model](https://drive.google.com/file/d/1Hct7d_OrVMP2LZmgMu0DncY1NpCpS_E2/view?usp=sharing) \u0026#124; [log](https://drive.google.com/file/d/1FKInWaI15Q-6ra_86gvNjTeIW7TjKE7b/view?usp=sharing) |\n\n### Mask R-CNN\n\n|    Backbone     |  Style  | Lr schd | box AP | mask AP | Download |\n| :-------------: | :-----: | :-----: | :----: | :-----: | :----------------: |\n|    R-50-FPN     | pytorch |   1x    |  39.4  |  35.6  | [model](https://drive.google.com/file/d/1cuXnMNQbv_B3nKEWnstbOJRPdMRu9twn/view?usp=sharing) \u0026#124; [log](https://drive.google.com/file/d/1_9Oho9eRc23eAuZ_bD_MaYhcoRtRJRjP/view?usp=sharing) |\n|    R-101-FPN    | pytorch |   1x    |  41.6  |  37.4  | [model](https://drive.google.com/file/d/1U5G4uyb5DM-1NS06qOEzCVyEAaDxcvRL/view?usp=sharing) \u0026#124; [log](https://drive.google.com/file/d/17piYzxwPmZCTiiJTLdrdd6phgA1f4X22/view?usp=sharing) |\n|    X-101-FPN    | pytorch |   1x    |  42.4  |  38.0  | [model](https://drive.google.com/file/d/1B0GV_PeXDz4_O0iM57GbWSUBXwExZdAs/view?usp=sharing) \u0026#124; [log](https://drive.google.com/file/d/1qD3yW_On8hbcnYyuzKRYTRMNe3QaonRk/view?usp=sharing) |\n\n### Cascade R-CNN\n\n| Backbone  |  Style  | Lr schd | box AP |                           Download                           |\n| :-------: | :-----: | :-----: | :----: | :----------------------------------------------------------: |\n| R-50-FPN  | pytorch |   1x    |  41.9  | [model](https://drive.google.com/file/d/13i8U-QOpFBhIUndqgYjpH6sD5ram6LFP/view?usp=sharing) \u0026#124; [log](https://drive.google.com/file/d/1q_Vk-9XJDlHAd9m8vFLa1GV8Dtc_WbPU/view?usp=sharing) |\n| R-101-FPN | pytorch |   1x    |  43.8  | [model](https://drive.google.com/file/d/1bOWvZfwttuiAjNZhOJin_afji4X1P5Vx/view?usp=sharing) \u0026#124; [log](https://drive.google.com/file/d/1fHAXuuszNsnX9yBaBXP6k_Bni8VrHNFp/view?usp=sharing) |\n| X-101-FPN | pytorch |   1x    |  44.4  | [model](https://drive.google.com/file/d/1yCWeqSEjCawlOxMWb0GQmkjPiVMDBTqL/view?usp=sharing) \u0026#124; [log](https://drive.google.com/file/d/1n2MvM_Uaz64JQJqlPVJ2CZycRzb6eYEq/view?usp=sharing) |\n\n### Cascade Mask R-CNN\n\n|    Backbone     |  Style  | Lr schd | box AP | mask AP | Download |\n| :-------------: | :-----: | :-----: | :----: | :-----: | :----------------: |\n|    R-50-FPN     | pytorch |   1x    |  42.9  |  36.9  | [model](https://drive.google.com/file/d/1L6Ai18CzQ_qcDzSUZEVnOVTQNR_wR9TL/view?usp=sharing) \u0026#124; [log](https://drive.google.com/file/d/1xoKm7Fx3wsShr_LFPNpDtxH0ajHLPyAz/view?usp=sharing) |\n|    R-101-FPN    | pytorch |   1x    |  44.6  |  38.4  | [model](https://drive.google.com/file/d/1oB0p7HkD2MjNjj75xHYbBDNg90PxG09G/view?usp=sharing) \u0026#124; [log](https://drive.google.com/file/d/1XdhV6OOVX4m2vUCKnw4heWhHwwFYGJcK/view?usp=sharing) |\n|    X-101-FPN    | pytorch |   1x    |  45.3  |  38.9  | [model](https://drive.google.com/file/d/1NDaDe2prI_K5Rvgg9g3x3DjWDG8i0N5V/view?usp=sharing) \u0026#124; [log](https://drive.google.com/file/d/1dLssd97Xv0kQIhyzC4BTmSyPKRkn0GN9/view?usp=sharing) |\n\n\n## Acknowledgement\n\nThis implementation is built upon [MMDetection](https://github.com/open-mmlab/mmdetection). Thanks [Kai Chen](https://github.com/hellock) for releasing this awesome toolbox and his helpful discussions.\n\nSince this project is finished nearly one year ago, we adapt our code from an early commit [713e98b](https://github.com/open-mmlab/mmdetection/commits/713e98bc1bfb842760df6be73b9520ee775d3c06).\n\n## Citation\n\nIf you find our work useful in your research, please consider citing:\n\n```bibtex\n@InProceedings{Li_2020_ECCV,\nauthor = {Li, Duo and Yao, Anbang and Chen, Qifeng},\ntitle = {PSConv: Squeezing Feature Pyramid into One Compact Poly-Scale Convolutional Layer},\nbooktitle = {The European Conference on Computer Vision (ECCV)},\nmonth = {August},\nyear = {2020}\n}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-li14%2Fpsconv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd-li14%2Fpsconv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-li14%2Fpsconv/lists"}