{"id":13643842,"url":"https://github.com/yancie-yjr/StreamYOLO","last_synced_at":"2025-04-21T06:31:55.268Z","repository":{"id":37408817,"uuid":"473097288","full_name":"yancie-yjr/StreamYOLO","owner":"yancie-yjr","description":"Real-time Object Detection for Streaming Perception, CVPR 2022","archived":false,"fork":false,"pushed_at":"2022-09-21T07:18:17.000Z","size":2942,"stargazers_count":305,"open_issues_count":13,"forks_count":40,"subscribers_count":15,"default_branch":"main","last_synced_at":"2024-11-09T16:43:11.372Z","etag":null,"topics":["autonomous-driving","object-detection","streaming-perception"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yancie-yjr.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}},"created_at":"2022-03-23T08:25:37.000Z","updated_at":"2024-11-07T21:59:00.000Z","dependencies_parsed_at":"2022-07-11T02:51:18.151Z","dependency_job_id":null,"html_url":"https://github.com/yancie-yjr/StreamYOLO","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yancie-yjr%2FStreamYOLO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yancie-yjr%2FStreamYOLO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yancie-yjr%2FStreamYOLO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yancie-yjr%2FStreamYOLO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yancie-yjr","download_url":"https://codeload.github.com/yancie-yjr/StreamYOLO/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250008219,"owners_count":21359949,"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":["autonomous-driving","object-detection","streaming-perception"],"created_at":"2024-08-02T01:01:53.512Z","updated_at":"2025-04-21T06:31:54.430Z","avatar_url":"https://github.com/yancie-yjr.png","language":"Python","funding_links":[],"categories":["Frameworks","Object Detection Applications"],"sub_categories":[],"readme":"# StreamYOLO\n\n## Real-time Object Detection for Streaming Perception\n\u003cp align='left'\u003e\n  \u003cimg src='assets/train.png' width='721'/\u003e\n\u003c/p\u003e\n\n[Jinrong Yang](https://scholar.google.com.hk/citations?user=8Of_NYQAAAAJ\u0026hl=zh-CN), [Songtao Liu](https://scholar.google.com.hk/citations?hl=zh-CN\u0026user=xY9qK1QAAAAJ), [Zeming Li](https://www.zemingli.com/), [Xiaoping Li](http://mse.hust.edu.cn/info/1143/1374.htm), [Sun Jian](http://www.jiansun.org/) \u003cbr\u003e\nReal-time Object Detection for Streaming Perception, CVPR 2022 (Oral)\u003cbr\u003e\n**[[Paper](https://openaccess.thecvf.com/content/CVPR2022/papers/Yang_Real-Time_Object_Detection_for_Streaming_Perception_CVPR_2022_paper.pdf)]** \u003cbr /\u003e\n\n\n\n## Benchmark\n\n|Model |size |velocity | sAP\u003cbr\u003e0.5:0.95 | sAP50 |sAP75| weights | COCO pretrained weights |\n| ------        |:---: | :---:       |:---:     |:---:  | :---: | :----: | :----: |\n|[StreamYOLO-s](./cfgs/s_s50_onex_dfp_tal_flip.py)    |600×960  |1x      |29.8     |50.3 | 29.8 |[github](https://github.com/yancie-yjr/StreamYOLO/releases/download/0.1.0rc/s_s50_one_x.pth) |[github](https://github.com/yancie-yjr/StreamYOLO/releases/download/0.1.0rc/yolox_s.pth) |\n|[StreamYOLO-m](./cfgs/m_s50_onex_dfp_tal_flip.py)    |600×960  |1x      |33.7     |54.5 |34.0|[github](https://github.com/yancie-yjr/StreamYOLO/releases/download/0.1.0rc/m_s50_one_x.pth) |[github](https://github.com/yancie-yjr/StreamYOLO/releases/download/0.1.0rc/yolox_m.pth) |\n|[StreamYOLO-l](./cfgs/l_s50_onex_dfp_tal_flip.py)    |600×960  |1x  |36.9 |58.1| 37.5 |[github](https://github.com/yancie-yjr/StreamYOLO/releases/download/0.1.0rc/l_s50_one_x.pth) |[github](https://github.com/yancie-yjr/StreamYOLO/releases/download/0.1.0rc/yolox_l.pth) |\n|[StreamYOLO-l](./cfgs/l_s50_twox_dfp_tal_flip.py)   |600×960  |2x      | 34.6 |56.3|34.7 |[github](https://github.com/yancie-yjr/StreamYOLO/releases/download/0.1.0rc/l_s50_two_x.pth) |[github](https://github.com/yancie-yjr/StreamYOLO/releases/download/0.1.0rc/yolox_l.pth) |\n|[StreamYOLO-l](./cfgs/l_s50_still_dfp_flip.py)   |600×960  | still      | 39.4 |60.0 | 40.2 |[github](https://github.com/yancie-yjr/StreamYOLO/releases/download/0.1.0rc/l_s50_still.pth) |[github](https://github.com/yancie-yjr/StreamYOLO/releases/download/0.1.0rc/yolox_l.pth) |\n\n## Quick Start\n\n\u003cdetails\u003e\n\u003csummary\u003eDataset preparation\u003c/summary\u003e\n\nYou can download Argoverse-1.1 full dataset and annotation from [HERE](https://www.cs.cmu.edu/~mengtial/proj/streaming/) and unzip it.\n\nThe folder structure should be organized as follows before our processing.\n\n```shell\nStreamYOLO\n├── exps\n├── tools\n├── yolox\n├── data\n│   ├── Argoverse-1.1\n│   │   ├── annotations\n│   │       ├── tracking\n│   │           ├── train\n│   │           ├── val\n│   │           ├── test\n│   ├── Argoverse-HD\n│   │   ├── annotations\n│   │       ├── test-meta.json\n│   │       ├── train.json\n│   │       ├── val.json\n```\n\nThe hash strings represent different video sequences in Argoverse, and `ring_front_center` is one of the sensors for that sequence. Argoverse-HD annotations correspond to images from this sensor. Information from other sensors (other ring cameras or LiDAR) is not used, but our framework can be also extended to these modalities or to a multi-modality setting.\n\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eInstallation\u003c/summary\u003e\n\n```shell\n# basic python libraries\nconda create --name streamyolo python=3.7\n\npip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html\n\npip3 install yolox==0.3\ngit clone git@github.com:yancie-yjr/StreamYOLO.git\n\ncd StreamYOLO/\n\n# add StreamYOLO to PYTHONPATH and add this line to ~/.bashrc or ~/.zshrc (change the file accordingly)\nADDPATH=$(pwd)\necho export PYTHONPATH=$PYTHONPATH:$ADDPATH \u003e\u003e ~/.bashrc\nsource ~/.bashrc\n\n# Installing `mmcv` for the official sAP evaluation:\n# Please replace `{cu_version}` and ``{torch_version}`` with the versions you are currently using.\n# You will get import or runtime errors if the versions are incorrect.\npip install mmcv-full==1.1.5 -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html\n\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eReproduce our results on Argoverse-HD\u003c/summary\u003e\n\nStep1. Prepare COCO dataset\n```shell\ncd \u003cStreamYOLO_HOME\u003e\nln -s /path/to/your/Argoverse-1.1 ./data/Argoverse-1.1\nln -s /path/to/your/Argoverse-HD ./data/Argoverse-HD\n```\n\nStep2. Reproduce our results on Argoverse:\n\n```shell\npython tools/train.py -f cfgs/m_s50_onex_dfp_tal_flip.py -d 8 -b 32 -c [/path/to/your/coco_pretrained_path] -o --fp16\n```\n* -d: number of gpu devices.\n* -b: total batch size, the recommended number for -b is num-gpu * 8.\n* --fp16: mixed precision training.\n* -c: model checkpoint path.\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eOffline Evaluation\u003c/summary\u003e\n\nWe support batch testing for fast evaluation:\n\n```shell\npython tools/eval.py -f  cfgs/l_s50_onex_dfp_tal_flip.py -c [/path/to/your/model_path] -b 64 -d 8 --conf 0.01 [--fp16] [--fuse]\n```\n* --fuse: fuse conv and bn.\n* -d: number of GPUs used for evaluation. DEFAULT: All GPUs available will be used.\n* -b: total batch size across on all GPUs.\n* -c: model checkpoint path.\n* --conf: NMS threshold. If using 0.001, the performance will further improve by 0.2~0.3 sAP.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eOnline Evaluation\u003c/summary\u003e\n\nWe modify the online evaluation from [sAP](https://github.com/mtli/sAP)\n\nPlease use 1 V100 GPU to test the performance since other GPUs with low computing power will trigger non-real-time results!!!!!!!!\n\n```shell\ncd sAP/streamyolo\nbash streamyolo.sh\n```\n\n\u003c/details\u003e\n\n\n\n## Citation\nPlease cite the following paper if this repo helps your research:\n```bibtex\n@inproceedings{streamyolo,\n  title={Real-time Object Detection for Streaming Perception},\n  author={Yang, Jinrong and Liu, Songtao and Li, Zeming and Li, Xiaoping and Sun, Jian},\n  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},\n  pages={5385--5395},\n  year={2022}\n}\n@article{yang2022streamyolo,\n  title={StreamYOLO: Real-time Object Detection for Streaming Perception},\n  author={Yang, Jinrong and Liu, Songtao and Li, Zeming and Li, Xiaoping and Sun, Jian},\n  journal={arXiv preprint arXiv:2207.10433},\n  year={2022}\n}\n```\n\n## License\nThis repo is released under the Apache 2.0 license. Please see the LICENSE file for more information.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyancie-yjr%2FStreamYOLO","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyancie-yjr%2FStreamYOLO","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyancie-yjr%2FStreamYOLO/lists"}