{"id":21417723,"url":"https://github.com/paulchen2713/yolo-cfar","last_synced_at":"2026-05-19T11:04:44.635Z","repository":{"id":48664070,"uuid":"515662641","full_name":"paulchen2713/YOLO-CFAR","owner":"paulchen2713","description":"\"YOLO-CFAR: a Novel CFAR Target Detection Method Based on YOLO\"","archived":false,"fork":false,"pushed_at":"2023-03-22T08:04:33.000Z","size":21471,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T05:46:04.588Z","etag":null,"topics":["cfar","object-detection","python","pytorch","yolo"],"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/paulchen2713.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}},"created_at":"2022-07-19T16:31:02.000Z","updated_at":"2025-01-06T14:29:02.000Z","dependencies_parsed_at":"2023-07-29T07:56:55.321Z","dependency_job_id":null,"html_url":"https://github.com/paulchen2713/YOLO-CFAR","commit_stats":null,"previous_names":["paulchen2713/yolo-cfar"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulchen2713%2FYOLO-CFAR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulchen2713%2FYOLO-CFAR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulchen2713%2FYOLO-CFAR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paulchen2713%2FYOLO-CFAR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paulchen2713","download_url":"https://codeload.github.com/paulchen2713/YOLO-CFAR/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243918629,"owners_count":20368745,"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":["cfar","object-detection","python","pytorch","yolo"],"created_at":"2024-11-22T19:17:08.829Z","updated_at":"2026-05-19T11:04:44.552Z","avatar_url":"https://github.com/paulchen2713.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## YOLO_project\nReplication of the master thesis \"YOLO-CFAR: a Novel CFAR Target Detection Method Based on YOLO\" by Lin, Yu-Ting.\n\n## YOLO-CFAR paper\nThis implementation is trying to replicate some of the results of the following master thesis:   \\\n林郁庭(2021)。基於YOLO之雷達目標偵測演算法。國立清華大學通訊工程研究所碩士論文，新竹市。取自 https://hdl.handle.net/11296/7n49t5 \n\n### Abstract\nConstant False Alarm Rate (CFAR) detection is a common target detection algorithm in radar systems. However, non-homogeneous scanerios, such as \nmulti-target and clutter scanerios, can dramatically affect the CFAR target detection performance because of the erroneous noise level estimation. \n\nIn order to imporve the CFAR detection performance in non-homogeneous scanerios, we propose a novel CFAR detection method, based on a deep learning \nmodel: You Only Look Once (YOLO), called YOLO-CFAR. The proposed CFAR scheme does not require to estimate the noise level and use deep learning model \nfor object detection to detect targets in RD map. The possibility of error propagation caused by inaccurate noise level estimation decreased, thus \ngetting better CFAR target detection performance.\n\nIn this paper, we not only introduce YOLO in CFAR target detection, but also use Dynamic Range Compression (DRC) to pre-precoess the input data and add\na Deep Neural Network (DNN) classifier to further improve the performance of YOLO-CFAR. Simulation results demonstrate that YOLO-CFAR outperforms other \nconventional CFAR schemes especially in non-homogeneous scanerios, furthermore, YOLO-CFAR can achieve real-time detection with 71 FPS.\n\n## YOLOv3 references\nI just copy and paste the code from the Internet and watch youtube tutorials to built the project.\n- Redmon, Joseph and Farhadi, Ali, [YOLOv3: An Incremental Improvement](https://doi.org/10.48550/arXiv.1804.02767), April 8, 2018. \n- Ayoosh Kathuria, [Whats new in YOLO v3?](https://towardsdatascience.com/yolo-v3-object-detection-53fb7d3bfe6b), April, 23, 2018. \n- Aladdin Persson, [YOLOv3 from Scratch](https://www.youtube.com/watch?v=Grir6TZbc1M), Feb 23, 2021. \n- Sanna Persson, [YOLOv3 from Scratch](https://sannaperzon.medium.com/yolov3-implementation-with-training-setup-from-scratch-30ecb9751cb0), Mar 21, 2021. \n\n## Issues\n- Dependency-related error\n  - The virtual envs are summarized below:\n  - My PC ```(Intel i7-8700 + Nvidia Geforce RTX 2060)```: \n    - env ```pt3.7``` with CUDA \n        ```python\n        python==3.7.13\n        numpy==1.19.2\n        pytorch==1.7.1\n        torchaudio==0.7.2\n        torchvision==0.8.2\n        pandas==1.2.1\n        pillow==8.1.0 \n        tqdm==4.56.0\n        matplotlib==3.3.4\n        albumentations==0.5.2\n        ```\n  - Lab PC ```(Intel i7-12700 + Nvidia Geforce RTX 3060 Ti)```: \n    - env ```pt3.7``` without CUDA\n        ```python\n        python==3.7.13\n        numpy==1.21.6\n        torch==1.13.1\n        torchvision==0.14.1\n        pandas==1.3.5\n        pillow==9.4.0\n        tqdm==4.64.1\n        matplotlib==3.5.3\n        albumentations==1.3.0\n        ```\n    - env ```pt3.8``` with CUDA\n        ```python\n        python==3.8.16\n        numpy==1.23.5\n        pytorch==1.13.1\n        pytorch-cuda==11.7\n        torchaudio==0.13.1             \n        torchvision==0.14.1\n        pandas==1.5.2\n        pillow==9.3.0\n        tqdm==4.64.1\n        matplotlib==3.6.2\n        albumentations==1.3.0\n        ```\n  - An annoying bug in ```dataset.py``` due to pytorch version\n    - The code segment that contains potential bug (on line ```149``` and ```155```)\n    ![](https://i.imgur.com/w5hUN05.png)\n    ![](https://i.imgur.com/R7TKmAo.png)\n    - ```scale_idx = anchor_idx // self.num_anchors_per_scale``` works fine on my PC, but on lab PC will get the following warning, so I naturally followed the suggestions and changed the syntax to ([```torch.div()```](https://pytorch.org/docs/stable/generated/torch.div.html))\n        ```clike!\n        UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch.\n        ```\n    - After following the suggestion and chage  the deprecated usage ```//``` we have: ```scale_idx = torch.div(anchor_idx, self.num_anchors_per_scale, rounding_mode='floor')```. This piece of code works fine on lab PC, under both env ```pt3.7``` and ```pt3.8```, but failed on my PC.\n    - The error only occur on my PC, under env ```pt3.7```, but this env is the initial and stable one.\n        ```clike\n        Original Traceback (most recent call last):\n          File \"C:\\Users\\paulc\\.conda\\envs\\pt3.7\\lib\\site-packages\\torch\\utils\\data\\_utils\\worker.py\", line 198, in _worker_loop\n            data = fetcher.fetch(index)\n          File \"C:\\Users\\paulc\\.conda\\envs\\pt3.7\\lib\\site-packages\\torch\\utils\\data\\_utils\\fetch.py\", line 44, in fetch\n            data = [self.dataset[idx] for idx in possibly_batched_index]\n          File \"C:\\Users\\paulc\\.conda\\envs\\pt3.7\\lib\\site-packages\\torch\\utils\\data\\_utils\\fetch.py\", line 44, in \u003clistcomp\u003e\n            data = [self.dataset[idx] for idx in possibly_batched_index]\n          File \"d:\\Datasets\\YOLOv3-PyTorch\\dataset.py\", line 153, in __getitem__\n            scale_idx = torch.div(anchor_idx, self.num_anchors_per_scale, rounding_mode='floor')\n        TypeError: div() got an unexpected keyword argument 'rounding_mode'\n        ```\n  - Way to solve it:\n    - First, try using ```torch.div()```. If it doesn't work, then change it back to ```//```.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulchen2713%2Fyolo-cfar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaulchen2713%2Fyolo-cfar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaulchen2713%2Fyolo-cfar/lists"}