Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

YOLO v4 + ROS2 Humble (Foxy) + CUDA11 + cuDNN (FP16) #319

Open
wants to merge 83 commits into
base: foxy
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 70 commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
207a5c8
Add install targets for configuration files
tomasgareau Jan 31, 2020
b2530bf
fix typo
tony2guo Feb 13, 2020
f4b29f2
Merge pull request #207 from umdlife/install_weights
mbjelonic Feb 13, 2020
8d25848
Merge pull request #211 from tony2guo/patch-1
mbjelonic Feb 13, 2020
f52eb7d
Added clang tooling.
mbjelonic Apr 12, 2020
f6309fc
Update package.xml dependencies
tomlankhorst Apr 14, 2020
8041acd
Don't require cmake-clang-tools
tomlankhorst Apr 14, 2020
d0d0e17
Merge pull request #232 from leggedrobotics/add-required-deps
tomlankhorst Apr 14, 2020
0e4bf3e
Retrieve binaries from Github releases
tomlankhorst Apr 14, 2020
2c281b5
Add libxt-dev
tomlankhorst Apr 14, 2020
f4c96de
Add libxext
tomlankhorst Apr 14, 2020
0f70267
Adding option to use nodelet
Dec 23, 2020
2cd3056
Minor formatting
Dec 23, 2020
9e3f705
Added pointer deletion in destructor and minor formatting
Jan 4, 2021
90bbe04
Small adjustments
Jan 19, 2021
dd119bc
Merge pull request #287 from leggedrobotics/feature/nodeletize
mbjelonic Jan 19, 2021
c629f01
Use GitHub actions (#300)
tomlankhorst Feb 13, 2021
b9d9a7d
catkin_test_results (#302)
tomlankhorst Feb 13, 2021
0f1328b
First changes in CMakeLists.
mbjelonic Apr 8, 2021
078cdfd
Updated to newest darknet and fixed opencv on Ubuntu 20.04.
mbjelonic Apr 8, 2021
2049ed6
Changed submodule url.
mbjelonic Apr 8, 2021
535ab15
Updated commit destination.
mbjelonic Apr 8, 2021
e4693eb
Updated readme.
mbjelonic Apr 8, 2021
973f668
Minor fix in test.
mbjelonic Apr 8, 2021
6f53ddc
Minor change in Readme.
mbjelonic Apr 8, 2021
d8514fb
Minor fix in CMake.
mbjelonic Apr 8, 2021
895a0fb
Merge pull request #308 from leggedrobotics/noetic
mbjelonic Apr 8, 2021
0da88d5
Changelog 1.1.5
mbjelonic Apr 8, 2021
51aa338
1.1.5
mbjelonic Apr 8, 2021
9bed958
Update catkin-build.yml
tomlankhorst Apr 8, 2021
409c01d
Quote container names
tomlankhorst Apr 8, 2021
d28f10a
Merge pull request #309 from leggedrobotics/feature/ci-melodic-and-no…
mbjelonic Apr 8, 2021
2996594
One line of code fixes everything!
mbjelonic May 3, 2021
36a4c9c
Merge pull request #318 from leggedrobotics/fix/memory_leak
mbjelonic May 3, 2021
43ce723
April8
Ar-Ray-code May 8, 2021
d58a2ac
ipl to cv
Ar-Ray-code May 9, 2021
88cc055
add YOLOv4.md
Ar-Ray-code May 9, 2021
dd4f7c5
fix confrict
Ar-Ray-code May 9, 2021
5a4a377
Merge pull request #1 from Ar-Ray-code/foxy-v4
Ar-Ray-code May 9, 2021
a6cbcee
fix confrict 2
Ar-Ray-code May 9, 2021
2c601f7
Merge pull request #2 from Ar-Ray-code/foxy-v4
Ar-Ray-code May 9, 2021
9813245
add rm_darknet_CMakeLists
Ar-Ray-code May 10, 2021
76596f7
update rm_darknet_CMakeLists
Ar-Ray-code May 10, 2021
00af537
update Link
Ar-Ray-code May 10, 2021
ae23d0f
Use encoding reported by camera
May 20, 2021
f9c2ad4
Update issue templates (#325)
tomlankhorst May 28, 2021
5b494af
Cutify
tomlankhorst May 28, 2021
e1b9cd2
Remove issue title template
tomlankhorst May 28, 2021
913383f
Merge pull request #321 from kdhansen/master
mbjelonic May 31, 2021
94826f5
add yolov4-csp
Ar-Ray-code May 31, 2021
f4fedfb
Delete .github/workflows directory
Ar-Ray-code Jun 1, 2021
22c51ea
add cudnn module
Ar-Ray-code Jun 20, 2021
0b68adc
rm cmake_modules
Ar-Ray-code Jun 20, 2021
8335e9c
change CMakeLists
Ar-Ray-code Jun 20, 2021
ab48c52
change cmakelists
Ar-Ray-code Jun 21, 2021
e7522c0
Merge branch 'master' into darknet-fp16
Ar-Ray-code Jun 21, 2021
8a56a9d
Merge pull request #3 from Ar-Ray-code/darknet-fp16
Ar-Ray-code Jun 21, 2021
68b1e86
fix bugs
Ar-Ray-code Jun 21, 2021
514b660
Merge pull request #4 from Ar-Ray-code/darknet-fp16-dev
Ar-Ray-code Jun 21, 2021
c76774b
for benchmark
Ar-Ray-code Jun 26, 2021
c62d8dd
Merge pull request #5 from Ar-Ray-code/darknet-fp16-benchmark
Ar-Ray-code Jun 27, 2021
bb77da8
CUDA REQUIRED
Ar-Ray-code Jun 27, 2021
5de05fa
CUDA REQUIRED
Ar-Ray-code Jun 27, 2021
6e04200
launch concisely
Ar-Ray-code Aug 12, 2021
fd6ff4a
fix launch
Ar-Ray-code Aug 12, 2021
8e361d2
update some files
Ar-Ray-code Aug 12, 2021
58e62a5
Merge pull request #6 from Ar-Ray-code/foxy
Ar-Ray-code Aug 12, 2021
3c40818
delete some config
Ar-Ray-code Aug 12, 2021
62197c1
cpu is ok
Ar-Ray-code Aug 13, 2021
706dce0
cpu-openmp
Ar-Ray-code Aug 13, 2021
b2f7e9e
CUDA = ON
Ar-Ray-code Sep 29, 2021
da4c16f
cudnn + fp16 -> on
Ar-Ray-code Dec 4, 2021
43b74a7
add download option
Ar-Ray-code Dec 5, 2021
af2f22e
fix conflict
Ar-Ray-code Dec 5, 2021
9f5d20b
add yolov4-csp
Ar-Ray-code Dec 5, 2021
094a73b
update CMakeLists
Ar-Ray-code Dec 5, 2021
e610076
cuda11-galactic
Ar-Ray-code Apr 26, 2022
f53a5e9
yolov2-tiny off
Ar-Ray-code Apr 26, 2022
211bd02
Merge pull request #7 from Ar-Ray-code/galactic-devel
Ar-Ray-code May 1, 2022
73a2fd3
update submodule
Ar-Ray-code Jul 23, 2022
57cfad4
add yolov7-tiny
Ar-Ray-code Jul 23, 2022
6680608
Merge pull request #8 from Ar-Ray-code/features/yolov7
Ar-Ray-code Jul 23, 2022
df79053
Update yolov7-tiny.launch.py
Ar-Ray-code Jul 23, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,33 @@
---
name: 🐛 Bug report
about: Create a report to help us improve
title: ""
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**System specs (please complete the following information):**
- OS
- ROS version
- Library versions when non-standard
- GPU / CUDA version when relevant

**Additional context**
Add any other context about the problem here.
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/compilation-and-runtime-issue.md
@@ -0,0 +1,32 @@
---
name: ⁉️ Compilation and runtime issue
about: Use this template if you're facing issues running or compiling darknet_ros.
title: ""
labels: question
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**System (please complete the following information):**
- OS: [e.g. Ubuntu 20.04]
- ROS version: [e.g., Noetic, Foxy]
- GPU when relevant: [e.g., Intel UHD, NVidia GTX 3090]

**Additional context**
Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,20 @@
---
name: ✨ Feature request
about: Suggest an idea for this project
title: ""
labels: enhancement
assignees: mbjelonic

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
2 changes: 2 additions & 0 deletions .gitignore
@@ -0,0 +1,2 @@
.vscode/
build/
4 changes: 2 additions & 2 deletions .gitmodules
@@ -1,3 +1,3 @@
[submodule "darknet"]
path = darknet
url = https://github.com/pjreddie/darknet
path = darknet
url = https://github.com/AlexeyAB/darknet
18 changes: 10 additions & 8 deletions README.md
Expand Up @@ -2,9 +2,11 @@

## Overview

This is a ROS package developed for object detection in camera images. You only look once (YOLO) is a state-of-the-art, real-time object detection system. In the following ROS package you are able to use YOLO (V3) on GPU and CPU. The pre-trained model of the convolutional neural network is able to detect pre-trained classes including the data set from VOC and COCO, or you can also create a network with your own detection objects. For more information about YOLO, Darknet, available training data and training YOLO see the following link: [YOLO: Real-Time Object Detection](http://pjreddie.com/darknet/yolo/).
This is a ROS package developed for **object detection in camera images**. You only look once (YOLO) is a state-of-the-art, real-time object detection system. In the following ROS package you are able to use **YOLO (V3) on GPU and CPU**. The pre-trained model of the convolutional neural network is able to detect pre-trained classes including the data set from VOC and COCO, or you can also create a network with your own detection objects. For more information about YOLO, Darknet, available training data and training YOLO see the following link: [YOLO: Real-Time Object Detection](http://pjreddie.com/darknet/yolo/).

The YOLO packages have been tested under ROS Foxy, Ubuntu 20.04 and OpenCV 4.2.0. This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
The YOLO packages have been tested under **ROS Noetic** and **Ubuntu 20.04**. Note: We also provide branches that work under **ROS Melodic**, **ROS Foxy** and **ROS2**.

This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.

**Author: [Marko Bjelonic](https://www.markobjelonic.com), marko.bjelonic@mavt.ethz.ch**

Expand Down Expand Up @@ -113,7 +115,7 @@ In order to use your own detection objects you need to provide your weights and

## Basic Usage

In order to get YOLO ROS: Real-Time Object Detection for ROS to run with your robot, you will need to adapt a few parameters. It is the easiest if duplicate and adapt all the parameter files that you need to change from the `darkned_ros` package. These are specifically the parameter files in `config` and the launch file from the `launch` folder.
In order to get YOLO ROS: Real-Time Object Detection for ROS to run with your robot, you will need to adapt a few parameters. It is the easiest if duplicate and adapt all the parameter files that you need to change from the `darknet_ros` package. These are specifically the parameter files in `config` and the launch file from the `launch` folder.

## Nodes

Expand All @@ -123,7 +125,7 @@ This is the main YOLO ROS: Real-Time Object Detection for ROS node. It uses the

### ROS related parameters

You can change the names and other parameters of the publishers, subscribers and actions inside `darkned_ros/config/ros.yaml`.
You can change the names and other parameters of the publishers, subscribers and actions inside `darknet_ros/config/ros.yaml`.

#### Subscribed Topics

Expand Down Expand Up @@ -153,7 +155,7 @@ You can change the names and other parameters of the publishers, subscribers and

### Detection related parameters

You can change the parameters that are related to the detection by adding a new config file that looks similar to `darkned_ros/config/yolo.yaml`.
You can change the parameters that are related to the detection by adding a new config file that looks similar to `darknet_ros/config/yolo.yaml`.

* **`image_view/enable_opencv`** (bool)

Expand All @@ -165,16 +167,16 @@ You can change the parameters that are related to the detection by adding a new

* **`yolo_model/config_file/name`** (string)

Name of the cfg file of the network that is used for detection. The code searches for this name inside `darkned_ros/yolo_network_config/cfg/`.
Name of the cfg file of the network that is used for detection. The code searches for this name inside `darknet_ros/yolo_network_config/cfg/`.

* **`yolo_model/weight_file/name`** (string)

Name of the weights file of the network that is used for detection. The code searches for this name inside `darkned_ros/yolo_network_config/weights/`.
Name of the weights file of the network that is used for detection. The code searches for this name inside `darknet_ros/yolo_network_config/weights/`.

* **`yolo_model/threshold/value`** (float)

Threshold of the detection algorithm. It is defined between 0 and 1.

* **`yolo_model/detection_classes/names`** (array of strings)

Detection names of the network used by the cfg and weights file inside `darkned_ros/yolo_network_config/`.
Detection names of the network used by the cfg and weights file inside `darknet_ros/yolo_network_config/`.
2 changes: 1 addition & 1 deletion darknet
Submodule darknet updated 1245 files
48 changes: 48 additions & 0 deletions darknet_ros/CHANGELOG.rst
Expand Up @@ -2,6 +2,54 @@
Changelog for package darknet_ros
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

1.1.5 (2021-04-08)
------------------
* Merge pull request `#308 <https://github.com/leggedrobotics/darknet_ros/issues/308>`_ from leggedrobotics/noetic
Noetic
* Minor fix in CMake.
* Minor fix in test.
* Updated readme.
* Updated to newest darknet and fixed opencv on Ubuntu 20.04.
* First changes in CMakeLists.
* Merge pull request `#287 <https://github.com/leggedrobotics/darknet_ros/issues/287>`_ from leggedrobotics/feature/nodeletize
Feature/nodeletize
* Small adjustments
* Added pointer deletion in destructor and minor formatting
* Minor formatting
* Adding option to use nodelet
* Add libxext
* Add libxt-dev
* Retrieve binaries from Github releases
* Merge pull request `#232 <https://github.com/leggedrobotics/darknet_ros/issues/232>`_ from leggedrobotics/add-required-deps
Update package.xml dependencies
* Don't require cmake-clang-tools
* Update package.xml dependencies
* Added clang tooling.
* Merge pull request `#207 <https://github.com/leggedrobotics/darknet_ros/issues/207>`_ from umdlife/install_weights
Add install targets for configuration files
* Add install targets for configuration files
Adds the `launch`, `config`, and `yolo_network_config` folders to the
install target for `darknet_ros` so they are available in the catkin
install directory.
* Fixed linking of cuda libraries.
* Merge branch 'kunaltyagi-cleanup'
* Cleaned up CMakeLists.txt, used OpenCV C++ API for cpp file
* Merge pull request `#189 <https://github.com/leggedrobotics/darknet_ros/issues/189>`_ from martinspedro/master
/darknet_ros/found_object uses custom msg with Header for improving synchronization
* YOLO publishes Object Count with Time stamp using custom msg with Header
* Merge pull request `#183 <https://github.com/leggedrobotics/darknet_ros/issues/183>`_ from kunaltyagi/id_num
Add numerical ID and launch param for image
* Adding numerical ID and launch param for image
* Merge pull request `#182 <https://github.com/leggedrobotics/darknet_ros/issues/182>`_ from leggedrobotics/fix/image_publisher
Fixed copy of image publisher.
* Fixed copy of image publisher.
* Merge branch 'kjbilton-master'
* Increased scope of image acquisition mutex to prevent image overwriting
* Merge branch 'utra-robosoccer-master'
* Removed warnings caused by catkin builds
* Added test_depend of wget to accomodate Jenkins.
* Contributors: Jason Wang, Kunal Tyagi, Kyle Bilton, Marko Bjelonic, Pedro Martins, Tom Lankhorst, Tomas Gareau, timonh

1.1.4 (2019-03-03)
------------------
* Merge pull request `#141 <https://github.com/leggedrobotics/darknet_ros/issues/141>`_ from lorenwel/feature/launch_file_arg
Expand Down