{"id":13643486,"url":"https://github.com/Qengineering/YoloV10-ncnn-Raspberry-Pi-4","last_synced_at":"2025-04-21T02:30:33.565Z","repository":{"id":243851873,"uuid":"813642410","full_name":"Qengineering/YoloV10-ncnn-Raspberry-Pi-4","owner":"Qengineering","description":"YoloV10 for a bare Raspberry Pi 4 or 5","archived":false,"fork":false,"pushed_at":"2024-06-21T15:44:32.000Z","size":5080,"stargazers_count":22,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T14:37:43.800Z","etag":null,"topics":["aarch64","cpp","ncnn","ncnn-model","raspberry-pi","raspberry-pi-4","raspberry-pi-5","yolov10"],"latest_commit_sha":null,"homepage":"https://qengineering.eu/deep-learning-examples-on-raspberry-32-64-os.html","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Qengineering.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":"2024-06-11T13:16:57.000Z","updated_at":"2024-11-21T05:45:15.000Z","dependencies_parsed_at":"2024-06-19T16:58:00.379Z","dependency_job_id":"d1eadaa5-d191-4ec6-b207-dc65a8f8d81d","html_url":"https://github.com/Qengineering/YoloV10-ncnn-Raspberry-Pi-4","commit_stats":null,"previous_names":["qengineering/yolov10-ncnn-raspberry-pi-4"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qengineering%2FYoloV10-ncnn-Raspberry-Pi-4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qengineering%2FYoloV10-ncnn-Raspberry-Pi-4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qengineering%2FYoloV10-ncnn-Raspberry-Pi-4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Qengineering%2FYoloV10-ncnn-Raspberry-Pi-4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Qengineering","download_url":"https://codeload.github.com/Qengineering/YoloV10-ncnn-Raspberry-Pi-4/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249986022,"owners_count":21356310,"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":["aarch64","cpp","ncnn","ncnn-model","raspberry-pi","raspberry-pi-4","raspberry-pi-5","yolov10"],"created_at":"2024-08-02T01:01:48.216Z","updated_at":"2025-04-21T02:30:31.581Z","avatar_url":"https://github.com/Qengineering.png","language":"C++","readme":"# YoloV10 Raspberry Pi 4 or 5\n![output image]( https://qengineering.eu/github/YoloV10_parking.jpg )\n## YoloV10 with the ncnn framework. \u003cbr/\u003e\n[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)\u003cbr/\u003e\u003cbr/\u003e\nPaper: https://arxiv.org/pdf/2405.14458 \u003cbr/\u003e\u003cbr/\u003e\nSpecial made for a bare Raspberry Pi 4, see [Q-engineering deep learning examples](https://qengineering.eu/deep-learning-examples-on-raspberry-32-64-os.html)\n\n------------\n\n## Benchmark.\nNumbers in **FPS** and reflect only the inference timing. Grabbing frames, post-processing and drawing are not taken into account.\n\n| Model  | size | mAP | Jetson Nano | RPi 4 1950 | RPi 5 2900 | Rock 5 | RK3588\u003csup\u003e1\u003c/sup\u003e\u003cbr\u003eNPU | RK3566/68\u003csup\u003e2\u003c/sup\u003e\u003cbr\u003eNPU | Nano\u003cbr\u003eTensorRT | Orin\u003cbr\u003eTensorRT |\n| ------------- | :-----:  | :-----:  | :-------------:  | :-------------: | :-----: | :-----: | :-------------:  | :-------------: | :-----: | :-----: |\n| [NanoDet](https://github.com/Qengineering/NanoDet-ncnn-Raspberry-Pi-4) | 320x320 | 20.6  |  26.2 | 13.0 | 43.2  |36.0  |||||\n| [NanoDet Plus](https://github.com/Qengineering/NanoDetPlus-ncnn-Raspberry-Pi-4) | 416x416 | 30.4  |  18.5  | 5.0  | 30.0  | 24.9  |||||\n| [PP-PicoDet](https://github.com/Qengineering/PP-PicoDet-ncnn-Raspberry-Pi-4) | 320x320 | 27.0  |  24.0 | 7.5 | 53.7 | 46.7 |||||\n| [YoloFastestV2](https://github.com/Qengineering/YoloFastestV2-ncnn-Raspberry-Pi-4) | 352x352 | 24.1 |  38.4 | 18.8 | 78.5 | 65.4 | ||||\n| [YoloV2](https://github.com/Qengineering/YoloV2-ncnn-Raspberry-Pi-4) \u003csup\u003e20\u003c/sup\u003e| 416x416 | 19.2 |  10.1 | 3.0 | 24.0 | 20.0 | ||||\n| [YoloV3](https://github.com/Qengineering/YoloV3-ncnn-Raspberry-Pi-4) \u003csup\u003e20\u003c/sup\u003e| 352x352 tiny | 16.6 | 17.7 | 4.4 | 18.1 | 15.0 | ||||\n| [YoloV4](https://github.com/Qengineering/YoloV4-ncnn-Raspberry-Pi-4) | 416x416 tiny | 21.7 | 16.1 | 3.4 | 17.5 | 22.4 | ||||\n| [YoloV4](https://github.com/Qengineering/YoloV4-ncnn-Raspberry-Pi-4) | 608x608 full | 45.3 | 1.3 | 0.2 | 1.82 | 1.5 | ||||\n| [YoloV5](https://github.com/Qengineering/YoloV5-ncnn-Raspberry-Pi-4) | 640x640 nano | 22.5 | 5.0 | 1.6 | 13.6 | 12.5 | 58.8 | 14.8 | 19.0 | 100 |\n| [YoloV5](https://github.com/Qengineering/YoloV5-ncnn-Raspberry-Pi-4) | 640x640 small | 22.5 | 5.0 | 1.6 | 6.3 | 12.5 | 37.7 | 11.7 | 9.25 | 100 |\n| [YoloV6](https://github.com/Qengineering/YoloV6-ncnn-Raspberry-Pi-4) | 640x640 nano | 35.0 | 10.5 | 2.7 | 15.8 | 20.8 | 63.0 | 18.0 |||\n| [YoloV7](https://github.com/Qengineering/YoloV5-ncnn-Raspberry-Pi-4) | 640x640 tiny | 38.7 | 8.5 | 2.1 | 14.4 | 17.9 |  53.4 | 16.1 | 15.0 ||\n| [YoloV8](https://github.com/Qengineering/YoloV8-ncnn-Raspberry-Pi-4) | 640x640 nano | 37.3 | 14.5 | 3.1 | 20.0 | 16.3 | 53.1 | 18.2 |||\n| [YoloV8](https://github.com/Qengineering/YoloV8-ncnn-Raspberry-Pi-4) | 640x640 small | 44.9 | 4.5 | 1.47 | 11.0 | 9.2 | 28.5 | 8.9 |||\n| [YoloV9](https://github.com/Qengineering/YoloV9-ncnn-Raspberry-Pi-4) | 640x640 comp | 53.0 | 1.2 | 0.28 | 1.5 | 1.2 | |||| \n| [YoloV10](https://github.com/Qengineering/YoloV10-ncnn-Raspberry-Pi-4) | 640x640 nano | 38.0 | | 1.66 | | | |||| \n| [YoloX](https://github.com/Qengineering/YoloX-ncnn-Raspberry-Pi-4) | 416x416 nano | 25.8 | 22.6 | 7.0 | 38.6 | 28.5 | ||||\n| [YoloX](https://github.com/Qengineering/YoloX-ncnn-Raspberry-Pi-4) | 416x416 tiny | 32.8 | 11.35 | 2.8 | 17.2 | 18.1 | ||||\n| [YoloX](https://github.com/Qengineering/YoloX-ncnn-Raspberry-Pi-4) | 640x640 small | 40.5 | 3.65 | 0.9 | 4.5 | 7.5 | 30.0 | 10.0 |||\n\n\u003cb\u003e\u003csup\u003e1\u003c/sup\u003e\u003c/b\u003e The Rock 5 and Orange Pi5 have the RK3588 on board.\u003cbr\u003e\n\u003cb\u003e\u003csup\u003e2\u003c/sup\u003e\u003c/b\u003e The Rock 3, Radxa Zero 3 and Orange Pi3B have the RK3566 on board.\u003cbr\u003e\n\u003cb\u003e\u003csup\u003e20\u003c/sup\u003e\u003c/b\u003e Recognize 20 objects (VOC) instead of 80 (COCO)\n\n------------\n\n## Opset.\nYoloV10 use layer operations yet unknown to ncnn. To let YoloV10 run on an ncnn framework, [zhouweigogogo](https://github.com/zhouweigogogo) has modified the onnx file by replacing these layers. \nAt the same time, he expanded the original output to three. Some features, like variable input size, aren't supported now. \nUntil the ncnn framework fully supports onnx opset 13, we face these limitations.\n\n------------\n\n## Dependencies.\nTo run the application, you have to:\n- A Raspberry Pi 4 or 5 with a 32 or 64-bit operating system. It can be the Raspberry 64-bit OS, or Ubuntu 18.04 / 20.04. [Install 64-bit OS](https://qengineering.eu/install-raspberry-64-os.html) \u003cbr/\u003e\n- The Tencent ncnn framework installed. [Install ncnn](https://qengineering.eu/install-ncnn-on-raspberry-pi-4.html) \u003cbr/\u003e\n- OpenCV 64-bit installed. [Install OpenCV 4.5](https://qengineering.eu/install-opencv-4.5-on-raspberry-64-os.html) \u003cbr/\u003e\n- Code::Blocks installed (Optional). (```$ sudo apt-get install codeblocks```)\n\n------------\n\n## Installing the app.\nTo extract and run the network in Code::Blocks \u003cbr/\u003e\n$ mkdir *MyDir* \u003cbr/\u003e\n$ cd *MyDir* \u003cbr/\u003e\n$ wget https://github.com/Qengineering/YoloV10-ncnn-Raspberry-Pi-4/archive/refs/heads/main.zip \u003cbr/\u003e\n$ unzip -j master.zip \u003cbr/\u003e\nRemove master.zip, LICENSE and README.md as they are no longer needed. \u003cbr/\u003e \n$ rm master.zip \u003cbr/\u003e\n$ rm LICENSE \u003cbr/\u003e\n$ rm README.md \u003cbr/\u003e \u003cbr/\u003e\nYour *MyDir* folder must now look like this: \u003cbr/\u003e \nparking.jpg \u003cbr/\u003e\nbusstop.jpg \u003cbr/\u003e\nYoloV10.cpb \u003cbr/\u003e\nyoloV10.cpp \u003cbr/\u003e\nyolov10n.ncnn.bin \u003cbr/\u003e\nyolov10n.ncnn.param \u003cbr/\u003e\n\n------------\n\n## Running the app.\nYou can use **Code::Blocks**.\n- Load the project file *.cbp in Code::Blocks.\n- Select _Release_, not Debug.\n- Compile and run with F9.\n- You can alter command line arguments with _Project -\u003e Set programs arguments..._ \n\nOr use **Cmake**.\n```\n$ cd *MyDir*\n$ mkdir build\n$ cd build\n$ cmake ..\n$ make -j4\n```\nif you want to connect a camera to the app, follow the instructions at [Hands-On](https://qengineering.eu/deep-learning-examples-on-raspberry-32-64-os.html#HandsOn).\u003cbr/\u003e\n\n------------\n\n### Thanks.\nA more than special thanks to [***THU-MIG***](https://github.com/THU-MIG), who adapted the YoloV10 to onnx models.\u003cbr\u003e\nAnd [***zhouweigogogo***](https://github.com/zhouweigogogo), who adapted the onnx model to the ncnn framework.\u003cbr\u003e\u003cbr\u003e\n![output image]( https://qengineering.eu/github/YoloV10_busstop.jpg )\n\n------------\n\n[![paypal](https://qengineering.eu/images/TipJarSmall4.png)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=CPZTM5BB3FCYL) \n","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick\u0026hosted_button_id=CPZTM5BB3FCYL"],"categories":["Lighter and Deployment Frameworks"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FQengineering%2FYoloV10-ncnn-Raspberry-Pi-4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FQengineering%2FYoloV10-ncnn-Raspberry-Pi-4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FQengineering%2FYoloV10-ncnn-Raspberry-Pi-4/lists"}