{"id":13439583,"url":"https://github.com/Ar-Ray-code/darknet_ros_fp16","last_synced_at":"2025-03-20T08:31:36.410Z","repository":{"id":39664975,"uuid":"365828475","full_name":"Ar-Ray-code/darknet_ros_fp16","owner":"Ar-Ray-code","description":"darknet + ROS2 Humble + OpenCV4 + CUDA 11（cuDNN, Jetson Orin）","archived":false,"fork":false,"pushed_at":"2022-09-30T08:02:48.000Z","size":668,"stargazers_count":70,"open_issues_count":4,"forks_count":28,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-19T16:39:20.984Z","etag":null,"topics":["cuda","cudnn","darknet","object-detection","opencv4","ros","ros2-foxy","yolo","yolo-tiny","yolov3","yolov7"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","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/Ar-Ray-code.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"Ar-Ray-code","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2021-05-09T19:07:59.000Z","updated_at":"2025-03-05T01:18:36.000Z","dependencies_parsed_at":"2023-01-17T18:15:33.781Z","dependency_job_id":null,"html_url":"https://github.com/Ar-Ray-code/darknet_ros_fp16","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar-Ray-code%2Fdarknet_ros_fp16","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar-Ray-code%2Fdarknet_ros_fp16/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar-Ray-code%2Fdarknet_ros_fp16/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ar-Ray-code%2Fdarknet_ros_fp16/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ar-Ray-code","download_url":"https://codeload.github.com/Ar-Ray-code/darknet_ros_fp16/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244577849,"owners_count":20475372,"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":["cuda","cudnn","darknet","object-detection","opencv4","ros","ros2-foxy","yolo","yolo-tiny","yolov3","yolov7"],"created_at":"2024-07-31T03:01:15.324Z","updated_at":"2025-03-20T08:31:35.962Z","avatar_url":"https://github.com/Ar-Ray-code.png","language":"Dockerfile","funding_links":["https://github.com/sponsors/Ar-Ray-code"],"categories":["Dockerfile","Other Versions of YOLO"],"sub_categories":[],"readme":"# darknet-ros-fp16\n\ndarknet_ros + ROS2 Humble + OpenCV4 + CUDA 11 + __CUDNN (FP16)__ :fire::fire::fire:\n\n- [English (GitHub Wiki)](https://github.com/Ar-Ray-code/darknet_ros_fp16/wiki/Darknet_ros_FP16-Report-(1.3x-faster)-%F0%9F%94%A5)\n- [Japanese (zenn)](https://zenn.dev/array/articles/4c82fc8382e62d)\n\n\u003cbr\u003e\n\n## Update\n\n- May 1st 2022 Update\n  - Support Ampere arch (including Jetson Orin)\n- July 23th 2022 Update\n  - Support YOLOv7-tiny\n\n\u003cbr\u003e\n\n## Main changes\n\n- __Support for YOLO v7__ : Switched the submodule to the master branch of [AlexeyAB/darknet.](https://github.com/AlexeyAB/darknet)\n- __Removed IPL__ : Switched from IPL to CV::Mat for OpenCV4 support.\n- __Support cuDNN + FP16__\n\n\u003c!-- ## Try on Docker :whale:\n\n[DockerHub](https://hub.docker.com/r/ray255ar/darknet-ros-fp16) --\u003e\n\n\u003cbr\u003e\n\n## Requirements\n\n- ROS2 (tested on Humble)\n- CUDA10 or later\n  - If not, it will automatically turn off\n- OpenCV\n- v4l2-camera (Connect to `/dev/video*`)\n- NVIDIA Graphics Card (Volta , Turing , Ampere)\n\u003c!-- - Docker + [NVIDIA-Docker](https://github.com/NVIDIA/nvidia-docker)\n  - This docker image is using `cuda:11.7` . --\u003e\n- xhost (To install xhost , run `$ sudo apt install xorg` .)\n- cuDNN (Ubuntu 20.04)\n\n\u003cbr\u003e\n\n\n## Installation 🐢\n\n### Installation\n\n```bash\n$ sudo apt install ros-humble-desktop ros-humble-v4l2-camera\n$ source /opt/ros/humble/setup.bash\n$ mkdir -p ~/ros2_ws/src\n$ cd ~/ros2_ws/src\n$ git clone --recursive https://github.com/Ar-Ray-code/darknet_ros_yolov4.git\n$ darknet_ros_yolov4/darknet_ros/rm_darknet_CMakeLists.sh\n$ cd ~/ros2_ws\n$ colcon build --symlink-install\n```\n\n### NVIDIA-Docker\n\n- Driver version : 515.65.01\n- NVIDIA Docker2\n- NVIDIA Graphics card (Tested : RTX3060Ti)\n\n```bash\ngit clone https://github.com/Ar-Ray-code/darknet_ros_fp16.git\ndocker build -t darknet_ros_fp16 ./darknet_ros_fp16/.\n\n# connect webcamera\ndocker run --rm -it --device /dev/video0:/dev/video0:mwr -e DISPLAY=$DISPLAY --gpus all -v /tmp/.X11-unix:/tmp/.X11-unix darknet_ros_fp16 /bin/bash\n```\n\n### Edit CMakeLists.txt\n\n#### Options\n\nWhen each option is turned off, the respective compile option will be disabled. This item is for benchmarking purposes, as it will be automatically disabled if the required libraries are not installed.\n\n```cmake\nset(CUDA_ENABLE ON)\nset(CUDNN_ENABLE ON)\nset(FP16_ENABLE ON)\n```\n\n#### cuDNN (FP16)\n\nDarknet can be made even faster by enabling CUDNN_HALF(FP16), but you need to specify the appropriate architecture.\n\nFP16 is automatically enabled for GPUs of the Turing or Ampere architecture if the appropriate cuDNN is installed. To disable it, change line 12 to `set(FP16_ENABLE OFF)`.\n\nThe Jetson AGX Xavier and TITAN V support FP16, but due to their Volta architecture, auto-detection is not possible. (Sorry... :( )\n\nIn that case, please comment out line 17 `set(CMAKE_CUDA_ARCHITECTURES 72)`\n\n#### Download darknet weights\n\nSince the weights to be downloaded are large, you can select the weights to be downloaded by the options.\n\n```cmake\nset(DOWNLOAD_YOLOV2_TINY ON)　 # default : on\nset(DOWNLOAD_YOLOV3 OFF)       # default : off\nset(DOWNLOAD_YOLOV4 ON)      　# default : on\nset(DOWNLOAD_YOLOV4_CSP OFF) 　# default : off\nset(DOWNLOAD_YOLOV4_TINY OFF)  # default : on\nset(DOWNLOAD_YOLOV4_MISH OFF)　# default : off\nset(DOWNLOAD_YOLOV7_TINY ON)　 # default : on\n```\n\n\n\n### Demo\n\nConnect your webcam to your PC.\n\n```bash\n$ source /opt/ros/humble/setup.bash\n$ source ~/ros2_ws/install/local_setup.bash\n$ ros2 launch darknet_ros demo-v4-tiny.launch.py\n```\n\n![example](https://user-images.githubusercontent.com/67567093/117596596-a2c8db00-b17e-11eb-90f9-146212e64567.png)\n\n\n\n## Performance\n\nUsing YOLO v4 consumes a lot of GPU memory and lowers the frame rate, so you need to pay attention to your PC specs.\n\n### Test Machine\n\n| Topics | Spec                                    |\n| ------ | --------------------------------------- |\n| CPU    | Intel Core i9 12900KF                   |\n| RAM    | 64GB DDR4                               |\n| GPU    | NVIDIA GeForce RTX 2080 Ti (GDDR6 11GB) |\n| Driver | 495.29.05                               |\n\n### Performance (using cuDNN FP16)\n\nYOLO v4 : 48fps\n\nScaled YOLO v4 : 80fps\n\nYOLO v4-tiny : 215fps\n\nYOLO v4x-mish : 32fps\n\nYOLO v2-tiny : 205fps (Min : 24fps)\n\nYOLOv7-tiny : 160fps (cudnn_half = 0)\n\n\u003e Note : YOLOv2-tiny is deprecated.\n\n![E2tRQvnUcAQqn8O](https://user-images.githubusercontent.com/67567093/121984014-35d3e100-cdcd-11eb-9959-b1063a9a0b2b.jpeg)\n\n\n## YOLOv7 🚀\n\n```bash\ngit clone https://github.com/Ar-Ray-code/darknet_ros_fp16 --recursive ~/darknet_ws/src/darknet_ros_fp16\ndarknet_ws/src/darknet_ros_fp16/darknet_ros/rm_darknet_CMakeLists.sh\n\nsource /opt/ros/humble/setup.bash\ncd ~/darknet_ws/\ncolcon build --symlink-install\nsource install/setup.bash\n\nros2 launch darknet_ros yolov7.launch.py\n```\n\n\n## Acknowledgment\n I am not a good programmer, but I was able to implement it with the help of many repositories. Thank you to [AlexeyAB](https://github.com/AlexeyAB)'s [darknet](https://github.com/AlexeyAB/darknet) , [legged robotics](https://github.com/leggedrobotics)'s [darknet_ros](https://github.com/leggedrobotics/darknet_ros), and [Tossy0423](https://github.com/Tossy0423/)'s [darknet_ros](https://github.com/Tossy0423/yolov4-for-darknet_ros/) !\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAr-Ray-code%2Fdarknet_ros_fp16","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAr-Ray-code%2Fdarknet_ros_fp16","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAr-Ray-code%2Fdarknet_ros_fp16/lists"}