{"id":13643701,"url":"https://github.com/LukiBa/zybo_yolo","last_synced_at":"2025-04-21T02:31:12.843Z","repository":{"id":129235179,"uuid":"339658659","full_name":"LukiBa/zybo_yolo","owner":"LukiBa","description":"YOLO example implementation using Intuitus CNN accelerator on ZYBO ZYNQ-7000 FPGA board ","archived":false,"fork":false,"pushed_at":"2021-07-30T09:18:19.000Z","size":144098,"stargazers_count":16,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-09T15:43:26.571Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/LukiBa.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}},"created_at":"2021-02-17T08:37:24.000Z","updated_at":"2024-07-10T12:37:36.000Z","dependencies_parsed_at":"2023-04-19T04:58:32.524Z","dependency_job_id":null,"html_url":"https://github.com/LukiBa/zybo_yolo","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/LukiBa%2Fzybo_yolo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LukiBa%2Fzybo_yolo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LukiBa%2Fzybo_yolo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LukiBa%2Fzybo_yolo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LukiBa","download_url":"https://codeload.github.com/LukiBa/zybo_yolo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249986050,"owners_count":21356314,"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":[],"created_at":"2024-08-02T01:01:51.444Z","updated_at":"2025-04-21T02:31:07.832Z","avatar_url":"https://github.com/LukiBa.png","language":"Python","funding_links":[],"categories":["Lighter and Deployment Frameworks","Applications"],"sub_categories":[],"readme":"# Zybo Yolo\n![GitHub](https://img.shields.io/github/license/LukiBa/zybo_yolo)  \nYOLOv3 tiny example implementation for Intuitus CNN accelerator using a ZYBO-Z7-20 FPGA board. \n\n## Features\n- [x] Capture image using v4l2 camera \n- [x] Plot results to framebuffer \n- [x] Run Yolov3 tiny inference on FPGA \n- [x] Inference time downto 82 ms\n- [x] Low power consumption due to FPGA implementation\n\n## Run test application:\n````sh\npython zybo_yolo/test-yolov3-tiny.py --use_cam --use_fb\n````\n\n## Hardware Requirements\n- Zybo-Z7-20 Board \n- microSD card \u003e=8GB \n- Optional:\n    - PCAM-5C \n    - HDMI Display \n\n## Setup Hardware\n1. SD card: Format first Partition (300-500MB) to FAT and the second partition to EXT4\n2. Copy BOOT.BIN and image.ub to the first partition \n3. Download linaro-developer and extract it to the second partition \n4. Copy intuitus.ko to extracted rootfs.\n5. Connect ethernet, pcam, display, keyboard and power to Zybo and insert the SD card\n6. Boot up the system\n7. Update the OS using ``sudo apt-get upgrade \u0026\u0026 apt-get update``\n8. Install v4l2, cmake, opencv and swig\n9. Install PyEnv\n10. Install python 3.6.10 and activate it\n11. Install numpy, opencv-python, elevate, pathlib, wget and argparse using pip \n12. Clone \u003chttps://github.com/LukiBa/Intuitus-intf.git\u003e\n13. Install the interface using ``pip install -e .`` \n14. Clone \u003chttps://github.com/LukiBa/zybo_yolo.git\u003e\n15. cd to intuitus.ko location and insert device driver using ``sudo insmod intuitus.ko``\n16. Run test application using ``python zybo_yolo/test-yolov3-tiny.py --use_cam --use_fb``\n\n## Results \u003cfont size=\"-1\"\u003e\u003csup\u003e[1]\u003c/sup\u003e \u003csup\u003e[2]\u003c/sup\u003e\u003c/font\u003e \n| Mem Clk [MHz] | PE Clk [MHz] | P\u003csub\u003eidle\u003c/sub\u003e [W] | P\u003csub\u003eexec\u003c/sub\u003e [W] | inference time [ms] |\n| ------ | ------ | ------ | ------ | ------ |\n| 100 | 100 | 2.73 | 3.12 | 112 |\n| 100 | 175 | 3.32 | 3.85 | 91 |\n| 100 | 200 | 3.60 | 4.10 | 89 |\n| 125 | 200 | 3.57 | 4.10 | 86 |\n| 125 | 225 | 3.83 | 4.35 | 84 |\n| 125 | 250 | 4.02 | 4.57 | 83 |\n\n[1] The average time of 1000 calls of the Network is used as a measure for inference time (input size: 384x384).  \n[2] The power is the power consumption of the board without a connected PCAM and display.\n\n![Example output](./readme_detect.png)  \n\n## Related Projects: \n| Project | link |\n| ------ | ------ |\n| Intuitus Model Converter | \u003chttps://github.com/LukiBa/Intuitus-converter.git\u003e |\n| Intuitus Interface | https://github.com/LukiBa/Intuitus-intf.git |\n| Intuitus device driver | link to kernel module comming soon (contact author for sources) |\n| Vivado Yolov3-tiny example project | https://github.com/LukiBa/zybo_yolo_vivado.git |\n| Intuitus FPGA IP | encrypted trial version comming soon (contact author) |\n\n## Author\nLukas Baischer   \nlukas_baischer@gmx.at\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLukiBa%2Fzybo_yolo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FLukiBa%2Fzybo_yolo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FLukiBa%2Fzybo_yolo/lists"}