{"id":13442555,"url":"https://github.com/LSH9832/edgeyolo","last_synced_at":"2025-03-20T14:31:29.002Z","repository":{"id":65960256,"uuid":"577769919","full_name":"LSH9832/edgeyolo","owner":"LSH9832","description":"an edge-real-time anchor-free object detector with decent performance","archived":false,"fork":false,"pushed_at":"2024-03-18T12:22:14.000Z","size":8621,"stargazers_count":421,"open_issues_count":39,"forks_count":55,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-08-01T03:41:15.081Z","etag":null,"topics":["anchor-free","ascend","computer-vision","deep-learning","edge-computing","mnn","object-detection","object-detector","onnx","pytorch","rk3588","rk3588s","rknn","tensorrt","yolo"],"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/LSH9832.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":"2022-12-13T13:39:51.000Z","updated_at":"2024-08-01T02:11:24.000Z","dependencies_parsed_at":"2023-11-27T05:24:27.177Z","dependency_job_id":"9aa48d94-eafd-4820-834a-e29e6d5d648d","html_url":"https://github.com/LSH9832/edgeyolo","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LSH9832%2Fedgeyolo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LSH9832%2Fedgeyolo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LSH9832%2Fedgeyolo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LSH9832%2Fedgeyolo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LSH9832","download_url":"https://codeload.github.com/LSH9832/edgeyolo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244630164,"owners_count":20484327,"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":["anchor-free","ascend","computer-vision","deep-learning","edge-computing","mnn","object-detection","object-detector","onnx","pytorch","rk3588","rk3588s","rknn","tensorrt","yolo"],"created_at":"2024-07-31T03:01:47.212Z","updated_at":"2025-03-20T14:31:23.991Z","avatar_url":"https://github.com/LSH9832.png","language":"Python","funding_links":[],"categories":["Python","Uncategorized","Lighter and Deployment Frameworks"],"sub_categories":["Uncategorized"],"readme":"\r\n\r\n![](assets/visdrone.jpg)\r\n\r\n# \u003ca href=\"https://www.bit.edu.cn\"\u003e\u003cimg src=\"assets/bit.png\" align=\"left\" height=\"60\" width=\"60\" \u003e\u003c/a\u003e EdgeYOLO: anchor-free, edge-friendly\r\n\r\n\u003cdiv align=\"center\"\u003e\r\n\r\n[简体中文](README_CN.md)\r\n\r\n\u003c/div\u003e\r\n\r\n\r\n#### Tool Recommendation: SAM([Segment Anything Model](https://github.com/facebookresearch/segment-anything)) assisted labeling tools: [SAMLabeler Pro](https://github.com/LSH9832/SAMLabelerPro)，multi-person remote labeling is supported.\r\n#### 工具推荐: 使用SAM([Segment Anything Model](https://github.com/facebookresearch/segment-anything)) 辅助的图像标注工具: [SAMLabeler Pro](https://github.com/LSH9832/SAMLabelerPro)，支持多人同时远程标注\r\n\r\n\r\n## Intro\r\n- In embeded device such as Nvidia Jetson AGX Xavier, EdgeYOLO reaches 34FPS with **50.6**% AP in COCO2017 dataset and **25.9**% AP in VisDrone2019 **(image input size is 640x640, batch=16, post-process included)**. And for smaller model EdgeYOLO-S, it reaches 53FPS with **44.1**% AP and **63.3**% AP\u003csup\u003e0.5\u003c/sup\u003e(**SOTA** in P5 small models) in COCO2017.\r\n- we provide a more effective data augmentation during training.\r\n- small object and medium object detect performace is imporved by using RH loss during the last few training epochs.\r\n- Our pre-print paper is released on [**arxiv**](https://arxiv.org/abs/2302.07483).\r\n\r\n## Updates\r\n**[2024/3/16]**\r\n1. upload [demo/amct_onnx2om.py](https://github.com/LSH9832/edgeyolo/blob/main/demo/amct_onnx2om.py) that exports onnx to om models for Huawei Ascend devices(such as Ascend310) and [cpp deployment code](https://github.com/LSH9832/edgeyolo/blob/main/cpp/ascend).(Please note that you must have the corresponding libraries and tools provided on the Huawei official website, part of which only clients who purchase the corresponding hardware have download permissions)\r\n\r\n**[2024/3/6]**\r\n1. [docker enviroment](#if-you-want-to-use-docker-then) for training and exporting models for edge device. (RKNN, Horizon J5, Jetson...)\r\n\r\n**[2023/12/6]**\r\n1. [RKNN(for rk3588) deployment code](https://github.com/LSH9832/edgeyolo/tree/main/cpp/rknn) is released. \u003cbr\u003e\r\n\r\n**[2023/11/23]** \r\n1. [MNN deployment code](https://github.com/LSH9832/edgeyolo/tree/main/cpp/mnn) is released. \u003cbr\u003e\r\n\r\n**[2023/2/28]** \r\n1. Evaluation for TensorRT model is supported now. \u003cbr\u003e\r\n\r\n**[2023/2/24]** \r\n1. EdgeYOLO supports [dataset with yolo format](https://github.com/LSH9832/edgeyolo/blob/main/params/dataset/yolo.yaml) now. \u003cbr\u003e\r\n2. Fix some errors and bugs(which happened when using \"--loop\" in linux cpp, and caching labels in distributed training).\r\n\r\n**[2023/2/20]** \u003cbr\u003e\r\n1. [TensorRT cpp inference console demo](https://github.com/LSH9832/edgeyolo/tree/main/cpp/console) (lib **opencv** and **qt5** required) \u003cbr\u003e\r\n2. Fix bugs when exporting models using Version 7.X TensorRT\u003cbr\u003e\r\n\r\n**[2023/2/19]** \r\n1. Publish TensorRT int8 export code with **Calibration** (**torch2trt** is required)\r\n\r\n## Coming Soon\r\n- Rebuild TensorRT deployment c++ code for easy to use.\r\n- More different models\r\n- C++ code for TensorRT inference with UI\r\n- EdgeYOLO-mask for segmentation task\r\n- Simple but effective pretrain method\r\n\r\n## Models\r\n\r\n- models trained on COCO2017-train\r\n\r\n| Model | Size | mAP\u003csup\u003eval\u003cbr/\u003e0.5:0.95 | mAP\u003csup\u003eval\u003cbr/\u003e0.5 | FPS\u003csup\u003eAGX Xavier\u003cbr/\u003etrt fp16 batch=16 \u003cbr/\u003einclude NMS | Params\u003cbr/\u003etrain / infer\u003c/br\u003e\u003csup\u003e(M) |Download|\r\n|:------|:----:|:------------------------:|:-------------------:|:---------------------------------------------------------:|:-------------------------------------:|:------:|\r\n|**EdgeYOLO-Tiny-LRELU**|416\u003c/br\u003e640|33.1\u003c/br\u003e37.8|50.5\u003c/br\u003e56.7|**206**\u003c/br\u003e109|7.6 / 7.0  |[**github**](https://github.com/LSH9832/edgeyolo/releases/download/v0.0.0/edgeyolo_tiny_lrelu_coco.pth)|\r\n|**EdgeYOLO-Tiny**      |416\u003c/br\u003e640|37.2\u003c/br\u003e41.4|55.4\u003c/br\u003e60.4|136\u003c/br\u003e67     |5.8 / 5.5  |[**github**](https://github.com/LSH9832/edgeyolo/releases/download/v0.0.0/edgeyolo_tiny_coco.pth)|\r\n|**EdgeYOLO-S**         |640        |44.1         |**63.3**     |53             |9.9 / 9.3  |[**github**](https://github.com/LSH9832/edgeyolo/releases/download/v0.0.0/edgeyolo_s_coco.pth)|\r\n|**EdgeYOLO-M**         |640        |47.5         |66.6         |46             |19.0 / 17.8|[**github**](https://github.com/LSH9832/edgeyolo/releases/download/v0.0.0/edgeyolo_m_coco.pth)|\r\n|**EdgeYOLO**           |640        |50.6         |69.8         |34             |41.2 / 40.5|[**github**](https://github.com/LSH9832/edgeyolo/releases/download/v0.0.0/edgeyolo_coco.pth)|\r\n\r\n- models trained on VisDrone2019 (pretrained backbone on COCO2017-train)\r\n\r\n1. We use [ VisDrone2019-DET dataset with COCO format ](https://github.com/LSH9832/edgeyolo/releases/download/v1.0.0/visdrone_coco.zip) in our training.\r\n2. Here's the results without removing detect boxes in **ignored region**\r\n\r\n| Model | Size | mAP\u003csup\u003eval\u003cbr/\u003e0.5:0.95 | mAP\u003csup\u003eval\u003cbr/\u003e0.5 |Download|\r\n|:------|:----:|:------------------------:|:-------------------:|:------:|\r\n|**EdgeYOLO-Tiny-LRELU**|416\u003c/br\u003e640|12.1\u003c/br\u003e18.5|22.8\u003c/br\u003e33.6|[**github**](https://github.com/LSH9832/edgeyolo/releases/download/v0.0.0/edgeyolo_tiny_lrelu_visdrone.pth)|\r\n|**EdgeYOLO-Tiny**      |416\u003c/br\u003e640|14.9\u003c/br\u003e21.8|27.3\u003c/br\u003e38.5|[**github**](https://github.com/LSH9832/edgeyolo/releases/download/v0.0.0/edgeyolo_tiny_visdrone.pth)|\r\n|**EdgeYOLO-S**         |640        |23.6         |40.8         |[**github**](https://github.com/LSH9832/edgeyolo/releases/download/v0.0.0/edgeyolo_s_visdrone.pth)|\r\n|**EdgeYOLO-M**         |640        |25.0         |42.9         |[**github**](https://github.com/LSH9832/edgeyolo/releases/download/v0.0.0/edgeyolo_m_visdrone.pth)|\r\n|**EdgeYOLO**           |640        |25.9\u003c/br\u003e26.9|43.9\u003c/br\u003e45.4|[**github(legacy)**](https://github.com/LSH9832/edgeyolo/releases/download/v0.0.0/edgeyolo_visdrone.pth)\u003c/br\u003e[**github(new)**](https://github.com/LSH9832/edgeyolo/releases/download/v1.0.0/edgeyolo_visdrone.pth)|\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003eSome of our detect results in COCO2017\u003c/summary\u003e\r\n\r\nCOCO2017\r\n![](assets/coco.jpg)\r\n\r\n\u003c/details\u003e\r\n\r\n## Quick Start\r\n### setup\r\n\r\n```shell\r\ngit clone https://github.com/LSH9832/edgeyolo.git\r\ncd edgeyolo\r\npip install -r requirements.txt\r\n```\r\n\r\nif you use tensorrt, please make sure torch2trt and TensorRT Development Toolkit(version\u003e7.1.3.0) are installed.\r\n\r\n```shell\r\ngit clone https://github.com/NVIDIA-AI-IOT/torch2trt.git\r\ncd torch2trt\r\npython setup.py install\r\n```\r\nor to make sure you use the same version of torch2trt as ours, [download here](https://github.com/LSH9832/edgeyolo/releases/download/v1.0.0/torch2trt.zip)\r\n\r\n#### if you want to use docker, then\r\n- download docker image from [Baiduyun, 14.3G](https://pan.baidu.com/s/1D9ReGtI-iM79RoEGat1eAw?pwd=ujar), pwd: ujar\r\n```shell\r\ndocker import edgeyolo_deploy.tar.gz edgeyolo:latest\r\n```\r\n\r\n- run docker\r\n```shell\r\ndocker run -it \\\r\n           --runtime=nvidia \\\r\n           -e NVIDIA_DRIVER_CAPABILITIES=compute,utility \\\r\n           -e NVIDIA_VISIBLE_DEVICES=all \\\r\n           --shm-size 15g \\\r\n           -w /code \\\r\n           -v \"/path/to/your/edgeyolo/parent_dir\":/code \\\r\n           -v \"/path/to/your/dataset/parent_dir\":/dataset \\\r\n           edgeyolo:latest\r\n```\r\nthen you can use \"[docker_export.py](https://github.com/LSH9832/edgeyolo/blob/main/docker_export.py)\" instead of \"[export.py](https://github.com/LSH9832/edgeyolo/blob/main/export.py)\"\r\n\r\n### inference\r\n\r\n**First [download weights here](https://github.com/LSH9832/edgeyolo/releases/tag/v0.0.0)**\r\n\r\n```shell\r\npython detect.py --weights edgeyolo_coco.pth --source XXX.mp4 --fp16\r\n\r\n# all options\r\npython detect.py --weights edgeyolo_coco.pth \r\n                 --source /XX/XXX.mp4     # or dir with images, such as /dataset/coco2017/val2017    (jpg/jpeg, png, bmp, webp is available)\r\n                 --conf-thres 0.25 \r\n                 --nms-thres 0.5 \r\n                 --input-size 640 640 \r\n                 --batch 1 \r\n                 --save-dir ./output/detect/imgs    # if you press \"s\", the current frame will be saved in this dir\r\n                 --fp16 \r\n                 --no-fuse                # do not reparameterize model\r\n                 --no-label               # do not draw label with class name and confidence\r\n                 --mp                     # use multi-process to show images more smoothly when batch \u003e 1\r\n                 --fps 30                 # max fps limitation, valid only when option --mp is used\r\n```\r\n\r\n### train\r\n- first prepare your dataset and create dataset config file(./params/dataset/XXX.yaml), make sure your dataset config file contains:\r\n\r\n(COCO, YOLO, VOC, VisDrone DOTA and [SAMLabel](https://github.com/LSH9832/SAMLabelerPro) formats are supported)\r\n```yaml\r\ntype: \"coco\"                        # dataset format(lowercase)，COCO, YOLO, VOC, VisDrone DOTA and SAMLabel formats are supported currently\r\ndataset_path: \"/dataset/coco2017\"   # root dir of your dataset\r\n\r\nkwargs:\r\n  suffix: \"jpg\"        # suffix of your dataset's images\r\n  use_cache: true      # test on i5-12490f: Total loading time: 52s -\u003e 10s(seg enabled) and 39s -\u003e 4s(seg disabled)\r\n\r\ntrain:\r\n  image_dir: \"images/train2017\"                   # train set image dir\r\n  label: \"annotations/instances_train2017.json\"   # train set label file(format with single label file) or directory(multi label files)\r\n\r\nval:\r\n  image_dir: \"images/val2017\"                     # evaluate set image dir\r\n  label: \"annotations/instances_val2017.json\"     # evaluate set label file or directory\r\n\r\ntest:\r\n  test_dir: \"test2017\"     # test set image dir (not used in code now, but will)\r\n\r\nsegmentaion_enabled: true  # whether this dataset has segmentation labels and you are going to use them instead of bbox labels\r\n\r\nnames: ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',\r\n        'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',\r\n        'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',\r\n        'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',\r\n        'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',\r\n        'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',\r\n        'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',\r\n        'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear',\r\n        'hair drier', 'toothbrush']    # category names\r\n```\r\n- then edit file ./params/train/train_XXX.yaml\r\n- finally\r\n```shell\r\npython train.py --cfg ./params/train/train_XXX.yaml\r\n```\r\n\r\nyou can plot figures about loss, learning rate and precision(AP50 and AP50:95) curve using \"plot.py\"\r\n```shell\r\npython plot.py --all \\                                   # plot all figures or (--lr, --ap, --loss)\r\n               -f ./output/train/edgeyolo_tiny_lrelu \\   # train ouput path or (output_path/eval.yaml for --ap and output_path/log.txt for --lr and --loss)\r\n               --no-show \\                               # do not show by plt.show(), (for device without desktop env, or you just want to save the figs)\r\n               --save    \\                               # save figures\r\n               --format pdf png svg jpg eps              # save format\r\n```\r\n\r\n\u003cdetails\u003e\r\n\u003csummary\u003efigs will be like the following\u003c/summary\u003e\r\n\r\nap\r\n![ap](https://github.com/LSH9832/edgeyolo/assets/69880398/091cddab-c79e-44ae-bead-43391c7d8916)\r\n\r\nloss\r\n![loss](https://github.com/LSH9832/edgeyolo/assets/69880398/51de4116-2c4a-4a35-ab95-62a41f791749)\r\n\r\n\r\nlearning rate\r\n![lr](https://github.com/LSH9832/edgeyolo/assets/69880398/1be1d98d-5440-4e2d-8f8c-89aa9f07bd42)\r\n\r\n\r\n\u003c/details\u003e\r\n\r\n### evaluate\r\n```shell\r\npython evaluate.py --weights edgeyolo_coco.pth --dataset params/dataset/XXX.yaml --batch 16 --device 0\r\n\r\n# all options\r\npython evaluate.py --weights edgeyolo_coco.pth        # or tensorrt model: output/export/edgeyolo_coco/model.pt\r\n                   --dataset params/dataset/XXX.yaml \r\n                   --batch 16                         # batch size for each gpu, not valid if it's tensorrt model\r\n                   --device 0\r\n                   --input-size 640 640               # height, width\r\n                   --trt                              # if you use tensorrt model add this option\r\n                   --save                             # save weights without optimizer params and set epoch to -1\r\n```\r\n\r\n### export onnx \u0026 tensorrt\r\n- ONNX\r\n```shell\r\npython export.py --onnx --weights edgeyolo_coco.pth --batch 1\r\n\r\n# all options\r\npython export.py --onnx   # or --onnx-only if tensorrt and torch2trt are not installed\r\n                 --weights edgeyolo_coco.pth \r\n                 --input-size 640 640   # height, width\r\n                 --batch 1\r\n                 --opset 11\r\n                 --no-simplify    # do not simplify this model\r\n```\r\nit generates\r\n```\r\noutput/export/edgeyolo_coco/640x640_batch1.onnx\r\n```\r\n- TensorRT\r\n```shell\r\n# fp16\r\npython export.py --trt --weights edgeyolo_coco.pth --batch 1 --workspace 8\r\n\r\n# int8\r\npython export.py --trt --weights edgeyolo_coco.pth --batch 1 --workspace 8 --int8 --dataset params/dataset/coco.yaml --num-imgs 1024\r\n\r\n# all options\r\npython export.py --trt                       # you can add --onnx and relative options to export both models\r\n                 --weights edgeyolo_coco.pth\r\n                 --input-size 640 640        # height, width\r\n                 --batch 1\r\n                 --workspace 10              # (GB)\r\n                 --no-fp16        # fp16 mode in default, use this option to disable it(fp32)\r\n                 --int8           # int8 mode, the following options are needed for calibration\r\n                 --dataset params/dataset/coco.yaml   # generates calibration images from its val images(upper limit：5120)\r\n                 --train          # use train images instead of val images(upper limit：5120)\r\n                 --all            # use all images(upper limit：5120)\r\n                 --num-imgs 512   # (upper limit：5120)\r\n```\r\nit generates\r\n```\r\n(optional) output/export/edgeyolo_coco/640x640_batch1.onnx\r\noutput/export/edgeyolo_coco/640x640_batch1_fp16(int8).pt       # for python inference\r\noutput/export/edgeyolo_coco/640x640_batch1_fp16(int8).engine   # for c++ inference\r\noutput/export/edgeyolo_coco/640x640_batch1_fp16(int8).json     # for c++ inference\r\n```\r\n\r\n#### Benchmark of TensorRT Int8 Model \r\n- enviroment: TensorRT Version 8.2.5.1, Windows, i5-12490F, RTX 3060 12GB\r\n- For TensorRT, **diffirent calib dataset can cause appearent difference in both precision and speed. I think that's why most of official project didn't give int8 quantization results.** The table below is of little reference significance, I think.\r\n\r\n\r\nCOCO2017-TensorRT-int8\r\n\r\n| Int8 Model  | Size |Calibration \u003c/br\u003eImage number|Workspace\u003c/br\u003e\u003csup\u003e(GB)| mAP\u003csup\u003eval\u003cbr/\u003e0.5:0.95 | mAP\u003csup\u003eval\u003cbr/\u003e0.5 |FPS\u003csup\u003eRTX 3060\u003cbr/\u003etrt int8 batch=16 \u003cbr/\u003einclude NMS|\r\n|:-------|:----:|:---:|:---:|:---:|:---:|:---:|\r\n|**Tiny-LRELU**|416\u003cbr\u003e640|512|8   |31.5\u003cbr\u003e36.4 |48.7\u003cbr\u003e55.5 |730\u003cbr\u003e360 |\r\n|**Tiny**|416\u003cbr\u003e640|512  |8    |34.9\u003cbr\u003e39.8|53.1\u003cbr\u003e59.5|549\u003cbr\u003e288|\r\n|**S**   |640   |512  |8    |42.4 |61.8 | 233 |\r\n|**M**   |640   |512  |8    |45.2 |64.2 | 211 |\r\n|**L**   |640   |512  |8    |49.1 |68.0 | 176 |\r\n\r\n#### for python inference\r\n```shell\r\npython detect.py --trt --weights output/export/edgeyolo_coco/640x640_batch1_int8.pt --source XXX.mp4\r\n\r\n# all options\r\npython detect.py --trt \r\n                 --weights output/export/edgeyolo_coco/640x640_batch1_int8.pt \r\n                 --source XXX.mp4\r\n                 --legacy         # if \"img = img / 255\" when you train your train model\r\n                 --use-decoder    # if use original yolox tensorrt model before version 0.3.0\r\n                 --mp             # use multi-process to show images more smoothly when batch \u003e 1\r\n                 --fps 30         # max fps limitation, valid only when option --mp is used\r\n```\r\n\r\n#### for c++ inference\r\n```shell\r\n# build\r\ncd cpp/tensorrt\r\nmkdir build \u0026\u0026 cd build\r\ncmake ..\r\nmake\r\n\r\n# help\r\n./yolo -?\r\n./yolo --help\r\n\r\n# run\r\n# ./yolo [engine file] [source] [--conf] [--nms] [--loop] [--no-label]\r\n# make sure your engine file and your yaml file are both in a same path\r\n./yolo ../../../output/export/edgeyolo_coco/640x640_batch1_int8.engine ~/Videos/test.avi --conf 0.25 --nms 0.5 --loop --no-label\r\n```\r\n\r\n## Cite EdgeYOLO\r\n```\r\n@article{edgeyolo2023,\r\n  title={EdgeYOLO: An Edge-Real-Time Object Detector},\r\n  author={Shihan Liu, Junlin Zha, Jian Sun, Zhuo Li, and Gang Wang},\r\n  journal={arXiv preprint arXiv:2302.07483},\r\n  year={2023}\r\n}\r\n```\r\n[![Star History Chart](https://api.star-history.com/svg?repos=LSH9832/edgeyolo\u0026type=Timeline)](https://star-history.com/#LSH9832/edgeyolo\u0026Timeline)\r\n\r\n## Bugs found currently\r\n- Sometimes it raises error as follows during training. Reduce pytorch version to 1.8.0 might solve this problem.\r\n```\r\nFile \"XXX/edgeyolo/edgeyolo/train/loss.py\", line 667, in dynamic_k_matching\r\n_, pos_idx = torch.topk(cost[gt_idx], k=dynamic_ks[gt_idx].item(), largest=False)\r\nRuntimeError: CUDA error: device-side assert triggered\r\nCUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect.\r\nFor debugging consider passing CUDA_LAUNCH_BLOCKING=1.\r\n```\r\n- For DOTA dataset, we only support single GPU training mode now, please do not train DOTA dataset with distributed mode or model can not be trained correctly.\r\n- Sometimes converting to TensorRT fp16 model with 8.4.X.X or higher version might lose a lot of precision, please use TensorRT Verson 7.X.X.X or 8.2.X.X\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLSH9832%2Fedgeyolo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLSH9832%2Fedgeyolo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLSH9832%2Fedgeyolo/lists"}