Code Monkey home page Code Monkey logo

darknet_ros's Introduction

YOLO ROS: Real-Time Object Detection for ROS

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.

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, [email protected]

Affiliation: Robotic Systems Lab, ETH Zurich

Darknet Ros example: Detection image Darknet Ros example: Detection image

Based on the Pascal VOC 2012 dataset, YOLO can detect the 20 Pascal object classes:

  • person
  • bird, cat, cow, dog, horse, sheep
  • aeroplane, bicycle, boat, bus, car, motorbike, train
  • bottle, chair, dining table, potted plant, sofa, tv/monitor

Based on the COCO dataset, YOLO can detect the 80 COCO object classes:

  • person
  • bicycle, car, motorbike, aeroplane, bus, train, truck, boat
  • traffic light, fire hydrant, stop sign, parking meter, bench
  • cat, dog, horse, sheep, cow, elephant, bear, zebra, giraffe
  • backpack, umbrella, handbag, tie, suitcase, frisbee, skis, snowboard, sports ball, kite, baseball bat, baseball glove, skateboard, surfboard, tennis racket
  • bottle, wine glass, cup, fork, knife, spoon, bowl
  • banana, apple, sandwich, orange, broccoli, carrot, hot dog, pizza, donut, cake
  • chair, sofa, pottedplant, bed, diningtable, toilet, tvmonitor, laptop, mouse, remote, keyboard, cell phone, microwave, oven, toaster, sink, refrigerator, book, clock, vase, scissors, teddy bear, hair drier, toothbrush

Citing

The YOLO methods used in this software are described in the paper: You Only Look Once: Unified, Real-Time Object Detection.

If you are using YOLO V3 for ROS, please add the following citation to your publication:

M. Bjelonic "YOLO ROS: Real-Time Object Detection for ROS", URL: https://github.com/leggedrobotics/darknet_ros, 2018.

@misc{bjelonicYolo2018,
  author = {Marko Bjelonic},
  title = {{YOLO ROS}: Real-Time Object Detection for {ROS}},
  howpublished = {\url{https://github.com/leggedrobotics/darknet_ros}},
  year = {2016--2018},
}

Installation

Dependencies

This software is built on the Robotic Operating System ([ROS]), which needs to be installed first. Additionally, YOLO for ROS depends on following software:

  • OpenCV (computer vision library),
  • boost (c++ library),

Building

Build Status

In order to install darknet_ros, clone the latest version using SSH (see how to set up an SSH key) from this repository into your catkin workspace and compile the package using ROS.

cd catkin_workspace/src
git clone --recursive [email protected]:leggedrobotics/darknet_ros.git
cd ../

To maximize performance, make sure to build in Release mode. You can specify the build type by setting

catkin_make -DCMAKE_BUILD_TYPE=Release

or using the Catkin Command Line Tools

catkin build darknet_ros -DCMAKE_BUILD_TYPE=Release

Darknet on the CPU is fast (approximately 1.5 seconds on an Intel Core i7-6700HQ CPU @ 2.60GHz × 8) but it's like 500 times faster on GPU! You'll have to have an Nvidia GPU and you'll have to install CUDA. The CMakeLists.txt file automatically detects if you have CUDA installed or not. CUDA is a parallel computing platform and application programming interface (API) model created by Nvidia. If you do not have CUDA on your System the build process will switch to the CPU version of YOLO. If you are compiling with CUDA, you might receive the following build error:

nvcc fatal : Unsupported gpu architecture 'compute_61'.

This means that you need to check the compute capability (version) of your GPU. You can find a list of supported GPUs in CUDA here: CUDA - WIKIPEDIA. Simply find the compute capability of your GPU and add it into darknet_ros/CMakeLists.txt. Simply add a similar line like

-O3 -gencode arch=compute_62,code=sm_62

Download weights

The yolo-voc.weights and tiny-yolo-voc.weights are downloaded automatically in the CMakeLists.txt file. If you need to download them again, go into the weights folder and download the two pre-trained weights from the COCO data set:

cd catkin_workspace/src/darknet_ros/darknet_ros/yolo_network_config/weights/
wget http://pjreddie.com/media/files/yolov2.weights
wget http://pjreddie.com/media/files/yolov2-tiny.weights

And weights from the VOC data set can be found here:

wget http://pjreddie.com/media/files/yolov2-voc.weights
wget http://pjreddie.com/media/files/yolov2-tiny-voc.weights

And the pre-trained weight from YOLO v3 can be found here:

wget http://pjreddie.com/media/files/yolov3-tiny.weights
wget http://pjreddie.com/media/files/yolov3.weights

There are more pre-trained weights from different data sets reported here.

Use your own detection objects

In order to use your own detection objects you need to provide your weights and your cfg file inside the directories:

catkin_workspace/src/darknet_ros/darknet_ros/yolo_network_config/weights/
catkin_workspace/src/darknet_ros/darknet_ros/yolo_network_config/cfg/

In addition, you need to create your config file for ROS where you define the names of the detection objects. You need to include it inside:

catkin_workspace/src/darknet_ros/darknet_ros/config/

Then in the launch file you have to point to your new config file in the line:

<rosparam command="load" ns="darknet_ros" file="$(find darknet_ros)/config/your_config_file.yaml"/>

Unit Tests

Run the unit tests using the Catkin Command Line Tools

catkin build darknet_ros --no-deps --verbose --catkin-make-args run_tests

You will see the image above popping up.

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 darknet_ros package. These are specifically the parameter files in config and the launch file from the launch folder.

Nodes

Node: darknet_ros

This is the main YOLO ROS: Real-Time Object Detection for ROS node. It uses the camera measurements to detect pre-learned objects in the frames.

ROS related parameters

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

Subscribed Topics

  • /camera_reading ([sensor_msgs/Image])

    The camera measurements.

Published Topics

  • object_detector ([std_msgs::Int8])

    Publishes the number of detected objects.

  • bounding_boxes ([darknet_ros_msgs::BoundingBoxes])

    Publishes an array of bounding boxes that gives information of the position and size of the bounding box in pixel coordinates.

  • detection_image ([sensor_msgs::Image])

    Publishes an image of the detection image including the bounding boxes.

Actions

  • camera_reading ([sensor_msgs::Image])

    Sends an action with an image and the result is an array of bounding boxes.

Detection related parameters

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)

    Enable or disable the open cv view of the detection image including the bounding boxes.

  • image_view/wait_key_delay (int)

    Wait key delay in ms of the open cv window.

  • 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 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 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 darknet_ros/yolo_network_config/.

darknet_ros's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

darknet_ros's Issues

How to use the batch in the process of forward

hi, i want to doing the process of forward whit 3 images same time, it is using the images as a batch ,and input to the network will be better than input single image at 3 times? if so, how can i change the code to doing this?

Opencv lib core

Hello

I have following issue after running

roslaunch darknet_ros darknet_ros.launch

error while loading shared libraries: libopencv_core3.so.3.2: cannot open shared object file: No such file or directory

I cannot find this library.

Opencv 3.4 is installed.
Here is the summary of the parameters
PARAMETERS

  • /darknet_ros/actions/camera_reading/name: /darknet_ros/chec...
  • /darknet_ros/config_path: /home/eca/catkin_...
  • /darknet_ros/image_view/enable_console_output: False
  • /darknet_ros/image_view/enable_opencv: True
  • /darknet_ros/image_view/use_darknet: True
  • /darknet_ros/image_view/wait_key_delay: 2
  • /darknet_ros/publishers/bounding_boxes/latch: False
  • /darknet_ros/publishers/bounding_boxes/queue_size: 1
  • /darknet_ros/publishers/bounding_boxes/topic: /darknet_ros/boun...
  • /darknet_ros/publishers/detection_image/latch: True
  • /darknet_ros/publishers/detection_image/queue_size: 1
  • /darknet_ros/publishers/detection_image/topic: /darknet_ros/dete...
  • /darknet_ros/publishers/object_detector/latch: False
  • /darknet_ros/publishers/object_detector/queue_size: 1
  • /darknet_ros/publishers/object_detector/topic: /darknet_ros/foun...
  • /darknet_ros/subscribers/camera_reading/queue_size: 1
  • /darknet_ros/subscribers/camera_reading/topic: /camera/color/ima...
  • /darknet_ros/weights_path: /home/eca/catkin_...
  • /darknet_ros/yolo_model/config_file/name: yolo-voc.cfg
  • /darknet_ros/yolo_model/detection_classes/names: ['aeroplane', 'bi...
  • /darknet_ros/yolo_model/threshold/value: 0.5
  • /darknet_ros/yolo_model/weight_file/name: yolo-voc.weights
  • /rosdistro: kinetic
  • /rosversion: 1.12.12

NODES
/
darknet_ros (darknet_ros/darknet_ros)

Thanks.

Undefined reference probelm

Hello, I got a little problem with catkin_make.
image
The result shows that undefined reference to YoloObjectDetector class constructor function.
May I ask you how to fix this problem?
Thank you
image

Error at launch

Hi! After a successful build, I have this error, when I try roslaunch:

core service [/rosout] found
ERROR: cannot launch node of type [darknet_ros/darknet_ros]: can't locate node [darknet_ros] in package [darknet_ros]
No processes to monitor
shutting down processing monitor...
... shutting down processing monitor complete

Ubuntu 14.04
ROS Indigo
I'm trying to use it without Cuda.
Any help would be appreciated.

Cannot use other weight, cfg files.

This ros wrapper is great.

This wrapper cannot load other weight, cfg files?
I generate a weight and cfg files using other training data (not VOC).
In original darknet, yolo detect a object using the files.

But this node cannot detect using the files.

Undefined references while compiling

Hey, I'm getting this error while compiling ;

[ 26%] Built target darknet_ros_msgs_generate_messages_py
[ 38%] Built target darknet_ros_msgs_generate_messages_cpp
[ 56%] Built target darknet_ros_msgs_generate_messages_nodejs
[ 74%] Built target darknet_ros_msgs_generate_messages_lisp
[ 94%] Built target darknet_ros_msgs_generate_messages_eus
[ 96%] Built target darknet_ros_lib
[ 96%] Built target darknet_ros_msgs_generate_messages
[ 98%] Linking CXX executable /home/nvidia/ip_ws/devel/lib/darknet_ros/darknet_ros
CMakeFiles/darknet_ros.dir/src/yolo_object_detector_node.cpp.o: In function main': /home/nvidia/ip_ws/src/darknet_ros/darknet_ros/src/yolo_object_detector_node.cpp:15: undefined reference to darknet_ros::YoloObjectDetector::YoloObjectDetector(ros::NodeHandle)'
/home/nvidia/ip_ws/src/darknet_ros/darknet_ros/src/yolo_object_detector_node.cpp:15: undefined reference to darknet_ros::YoloObjectDetector::~YoloObjectDetector()' /home/nvidia/ip_ws/src/darknet_ros/darknet_ros/src/yolo_object_detector_node.cpp:15: undefined reference to darknet_ros::YoloObjectDetector::~YoloObjectDetector()'
collect2: error: ld returned 1 exit status
darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/build.make:197: recipe for target '/home/nvidia/ip_ws/devel/lib/darknet_ros/darknet_ros' failed
make[2]: *** [/home/nvidia/ip_ws/devel/lib/darknet_ros/darknet_ros] Error 1
CMakeFiles/Makefile2:2375: recipe for target 'darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/all' failed
make[1]: *** [darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

Can you help please ?
Thanks

warning: implicit declaration of function ‘cvRound’

I am getting this warning
warning: implicit declaration of function ‘cvRound’ [-Wimplicit-function-declaration]
I don't know if it is normal.
Using ubuntu 16.04, 64 bit, opencv 3.2.0, ros kinetic.

edit: algo got the following

warning: implicit declaration of function ‘cvLoadImage’ [-Wimplicit-function-declaration]

warning: implicit declaration of function ‘cvSaveImage’ [-Wimplicit-function-declaration]

No cudnn in CMakeLists.txt ?

Hi threre.
Thank you for your code. It is good.
I have one question in 'CMakeLists.txt'.
In Makefile of original darknet, I can choose using opencv, cudnn and etc.
So I check the 'CMakeLists.txt' in darknet_ros/darknet_ros, if i can choose this option like original darknet.
And I found that CUDNN is not including in here.
Is it right? If yes, can you help me compiling with CUDNN?

catkin_make network.h not found

Hi,

catkin_make -DCMAKE_BUILD_TYPE=Release


[ 98%] Built target darknet_ros_msgs_generate_messages
In file included from /home/ics_vr/softwares/darknetROS/src/darknet_ros/darknet_ros/src/yolo_object_detector_node.cpp:9:0:
/home/ics_vr/softwares/darknetROS/src/darknet_ros/darknet_ros/include/darknet_ros/YoloObjectDetector.hpp:48:21: fatal error: network.h: No such file or directory
compilation terminated.
darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/build.make:62: recipe for target 'darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/src/yolo_object_detector_node.cpp.o' failed
make[2]: *** [darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/src/yolo_object_detector_node.cpp.o] Error 1
CMakeFiles/Makefile2:2484: recipe for target 'darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/all' failed
make[1]: *** [darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j16 -l16" failed

How to solve this problem? Thank you.

Can I use other yaml settings?

Hi.
I hope you guys doing well.

I am using this ROS package on Jetson TX1 with Jetpack 2.3.1.
The version is ubuntu 16.04 and ROS kinetic.
I hope to use yolo detection with yolo9000.

Thanks to your great work, I am able to work this package without big troubles.
But when I switch a yaml file from yolot_voc.yaml to others like yolo9000.yaml, I get this error.

Loading weights from /home/apsync/catkin_ws/src/darknet_ros/darknet_ros/yolo_network_config/weights/yolo.weights...Done!
terminate called after throwing an instance of 'image_transport::TransportLoadException'
  what():  Unable to load plugin for transport 'raw', error string:
Could not find library corresponding to plugin image_transport/raw_sub. Make sure the plugin description XML file has the correct name of the library and that the library actually exists.
[darknet_ros-1] process has died [pid 18209, exit code -6, cmd /home/apsync/catkin_ws/devel/lib/darknet_ros/darknet_ros __name:=darknet_ros `__log:=/home/apsync/.ros/log/0d394292-b005-11e7-a848-00044b7976f5/darknet_ros-1.log].`
log file: /home/apsync/.ros/log/0d394292-b005-11e7-a848-00044b7976f5/darknet_ros-1*.log
``

This seems to be caused around image_transport.
Does anyone know how to fix it?
I retreived some ways for it but I could not find any solution.

I would appreciate if someone gives help for this problem.
Thanks.

fatal error: darknet_ros_msgs/BoundingBoxes.h: No such file or directory

  1. The error like this below:
    In file included from /home/pl/catkin_ws/src/darknet_ros/darknet_ros/src/object_detector_demo.cpp:15:0:
    /home/pl/catkin_ws/src/darknet_ros/darknet_ros/include/darknet_ros/YoloObjectDetector.h:34:44: fatal error: darknet_ros_msgs/BoundingBoxes.h: No such file or directory
    compilation terminated.
    darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/build.make:1776: recipe for target 'darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/src/object_detector_demo.cpp.o' failed
    make[2]: *** [darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/src/object_detector_demo.cpp.o] Error 1
    make[2]: *** Waiting for unfinished jobs....
    In file included from /home/pl/catkin_ws/src/darknet_ros/darknet_ros/src/YoloObjectDetector.cpp:10:0:
    /home/pl/catkin_ws/src/darknet_ros/darknet_ros/include/darknet_ros/YoloObjectDetector.h:34:44: fatal error: darknet_ros_msgs/BoundingBoxes.h: No such file or directory
    compilation terminated.
    darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/build.make:1752: recipe for target 'darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/src/YoloObjectDetector.cpp.o' failed
    make[2]: *** [darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/src/YoloObjectDetector.cpp.o] Error 1
    CMakeFiles/Makefile2:2338: recipe for target 'darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/all' failed
    make[1]: *** [darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/all] Error 2
    Makefile:138: recipe for target 'all' failed
    make: *** [all] Error 2
    Invoking "make -j8 -l8" failed
  2. If someone can help me solve this question, I will be very appreciate for it.
    Thank you !

catkin build problem (possibly CUDA)

Hey there,

I'm getting some weird errors when building. I'm assuming it is a CUDA problem since when I comment out the CUDA stuff in the CMakeList.txt in the darknet_ros folder (src/darknet_ros/darknet_ros) the package builds only with some warnings.
It even shows the first figure when I put the yolo.weight in the right folder and run:
catkin build darknet_ros --no-deps --verbose --catkin-make-args run_tests

So, I'm able to make and run darknet yolov2 and yolov3 alone (able to run webcam detector realtime), I do have to include:
/usr/local/cuda/lib64/stubs
as an extra LDFLAGS apart from only:
/usr/local/cuda/lib64
in the original darknet Makefile.
I have also tried adding that extra directory in the darknet_ros CMakeList.txt in the link_directories function, but no luck.

I'm running Ubuntu 14.04 LTS (can't upgrade unfortunately), CUDA 8.0.61 and cuDNN 7.1 on a GTX 1060 3GB.

I've included the build.make, build.cmake logs, and my modified CMakeLists beneath.
If anyone would like to help me I would greatly appreciate it.

Daan v O

CMakeLists.txt

build.cmake.log

build.make.log

ROS deb packages not building

Hi @mbjelonic,

Cool package 👍

I saw this was released on the ROS buildfarm but never succeeded to build due to the missing darknet submodule.
This can be solved in various ways (from the nicest to the riskiest):

  1. release darknet as a standalone ros package, that allows to get rid of the submodule issue and also to remove the darknet package completely the day it gets packaged as an official deb
  2. Use CMake external project feature. This is known to work with bloom. An example can be found at: https://github.com/esteve/LMS1xx/blob/619ff1ff42124cc9628f9c8e244aad79b0c0763d/CMakeLists.txt#L10-L18
    con: This means downloading and compiling 3rd party code at build time
  3. Clone and init the submodule in CMake. Still unclear to me if this works well with bloom or not: ros-infrastructure/bloom#217
    con: This means downloading and compiling 3rd party code at build time

Is it for yolov1?

How could I modify the CMakeLists.txt to implement yolov2 for ROS version?
Could you tell me some hints?

catkin_make error (about opencv)

Hello, I got a little problem with catkin_make.
I use ubuntu 14.04 , ROS:indigo , gcc version 4.8.4
When running 'catkin_make -DCMAKE_BUILD_TYPE=Release',I encounter a problem:
catkin_make error
The result shows that undefined reference to several opencv functions.
May I ask you how to fix this problem?
Thank you

cameraCallback not getting called

Hi,

I have a node publishing at chameleon3/image_raw/compressed but despite setting my launch file properly, I am not getting a callback. I have modified my launch file as such:

<arg name="camera_topic_name" default="/chameleon3/image_raw"/>
<arg name="image_transport" default="compressed"/>

But all I get when I run the node (via roslaunch src/darknet_ros/darknet_ros/launch/darknet_ros.launch since I don't have catkin installed) I get a black screen, and the ROS_INFO message for the callback method being called never prints. Do I have a configuration issue?

Error happens when running darknet_ros.launch

[ INFO] [1523455341.787053476]: [YoloObjectDetector] Node started.
[ INFO] [1523455341.800678251]: [YoloObjectDetector] Xserver is running.
[ INFO] [1523455341.805442181]: [YoloObjectDetector] init().
YOLO_V2
layer filters size input output
0 [darknet_ros-2] process has died [pid 16370, exit code -11, cmd /media/nvidia/Data/Joy/darknet_ws/devel/lib/darknet_ros/darknet_ros __name:=darknet_ros __log:=/home/nvidia/.ros/log/f3718ee0-3d90-11e8-8863-00044b8c5c2d/darknet_ros-2.log].
log file: /home/nvidia/.ros/log/f3718ee0-3d90-11e8-8863-00044b8c5c2d/darknet_ros-2*.log

Memory leak issue

Hi, again.
Thank you for make yolo&ros bridge code available.
I encounter the issue about memory that continue rising without bound.
But when i using darknet alone it not happen.
How to avoid this? and any idea would be appreciate.
Thank you advance.

No output for 1 class detection

Hi

I used this blog post to train a 1 class yolo network.
All is ok and I can run the network with ./darknet detector demo command and it works fine, the network outputs some bounding boxes.
When I make the changes to darknet_ros(created new yaml file, copied cfg and weights files to appropriate folders), the program compiles ok, runs ok, but I have no output. I tried changing the detection threshold to minimum and nothing, the number of detected bboxes is always 0. On the other hand, darknet_ros works fine with the standard yolo-voc.cfg and weights.
I attached the yaml and cfg files.
cfg-yaml.zip

fatal: Could not read from remote repository.

When i run the command $ git clone --recursive [email protected]:leggedrobotics/darknet_ros.git

I get the following error

Cloning into 'darknet_ros'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Data format is being processed wrong (BGR instead of RGB)

It took me some hours to figure out why my trained network for custom object detection were not showing any bounding boxes when using in this particular implementation of darknet bridge...

Well, it turns out that most neural networks are trained using the RGB color format (including mine), and in this line the image is being converted to BGR format. Changing it to:

cam_image = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::RGB8);

may give more accurate results - while making you look like an avatar if you're using OpenCV display, because opencv uses BGR formatting, because the alphabet..)

Most of this big networks out there are so well trained that they are robust to color channel swaps anyway, but if you're training against your own objects it might be an issue.

darknet path not found

Hi,

I'm getting an error that my the darknet path cannot be found:

CMake Error at /usr/share/cmake-3.5/Modules/FindCUDA.cmake:1693 (add_executable):
  Cannot find source file:

    DARKNET_PATH-NOTFOUND/src/gemm.c

  Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
  .hxx .in .txx
Call Stack (most recent call first):
  darknet_ros/darknet_ros/CMakeLists.txt:83 (cuda_add_executable)


-- Generating done
-- Build files have been written to: /home/user/catkin_ws/build
Invoking "cmake" failed

Is there a fix for this? Or can I supply the darknet path myself somehow?

Thanks in advance!

Fixed way: Compile error : error: ‘memcpy’ was not declared in this scope

i compile darknet_ros with darknet@ 59ed171

in darknet Makefile i set this:
GPU=1
CUDNN=1
OPENCV=1
DEBUG=1

then i get some errors as follow:

[ 70%] Building NVCC (Device) object darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/__/darknet/src/darknet_ros_lib_generated_col2im_kernels.cu.o
/usr/include/string.h: In function ‘void* __mempcpy_inline(void*, const void*, size_t)’:
/usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope
   return (char *) memcpy (__dest, __src, __n) + __n;

solve it by this:
change darnet_ros/CMakeList.txt line 23, below it add a new line:
-D_FORCE_INLINES

works for me fine!

when i run the (roslaunch darknet_ros darknet_ros.launch) this error shown please give me advise!!!

Loading weights from /home/hp-robo/catkin_ws/src/darknet_ros/darknet_ros/yolo_network_config/weights/yolo-voc.weights...Done!
[ INFO] [1517904602.426531622]: [YoloObjectDetector] USB image received.
OpenCV Error: The function/feature is not implemented (Unknown/unsupported array type) in type, file /home/hp-robo/opencv/modules/core/src/matrix.cpp, line 2034
terminate called after throwing an instance of 'cv::Exception'
what(): /home/hp-robo/opencv/modules/core/src/matrix.cpp:2034: error: (-213) Unknown/unsupported array type in function type

[darknet_ros-1] process has died [pid 8529, exit code -6, cmd /home/hp-robo/catkin_ws/devel/lib/darknet_ros/darknet_ros __name:=darknet_ros __log:=/home/hp-robo/.ros/log/e2e45d24-0b12-11e8-a520-40b03449060a/darknet_ros-1.log].
log file: /home/hp-robo/.ros/log/e2e45d24-0b12-11e8-a520-40b03449060a/darknet_ros-1*.log
all processes on machine have died, roslaunch will exit
shutting down processing monitor...
... shutting down processing monitor complete
done

Cannot catkin_make

Hi~ I have a little problem
I use ubuntu 14.04 , ROS:indigo
When i catkin_make, i encounter a problem:
image
image

How to fix this problem?
Thanks you!

detection in low fps, screen goes dark

Hi, the package is arranged in neat and elegant way. Thanks!
But, the frame rate is too low and sometimes screen goes dark.
I'm using PS3 eye webcam and i5 lenovo x220 , is it normal?
also change ros.yaml here to my /usb_cam/image_raw topic. (ROS usb_cam)
Did i mess up something?
thank you.
yoloerror

Error while running darknet ros

@mbjelonic Has anyone encountered this error? Is there a solution?
[darknet_ros-2] process has died [pid 1733, exit code -11, cmd /home/nvidia/catkin_ws/devel/lib/darknet_ros/darknet_ros __name:=darknet_ros __log:=/home/nvidia/.ros/log/b9b03498-0cdc-11e8-9325-2816adcdeb8c/darknet_ros-2.log].
log file: /home/nvidia/.ros/log/b9b03498-0cdc-11e8-9325-2816adcdeb8c/darknet_ros-2*.log

Floating point exception(core dumped) when run dartknet_ros

Hey,
I got the package compiled but when I run the darknet_ros node, I got this:

[ INFO] [1502249531.341824814]: [YoloObjectDetector] Node started.
[ INFO] [1502249531.343953332]: [YoloObjectDetector] Xserver is running.
[ INFO] [1502249531.344425343]: [YoloObjectDetector] init().
Floating point exception (core dumped)

I have CUDA 8, ubuntu 14.04 and indigo.

Do you have any clue how to solve this problem? Thank!

Catkin build test error

when i try to run catkin build i get a error message saying this that bulid/devel file is used by catkin_make and asks to use different folder. I changed the folder to build2/devel2 but i did not work

catkin build darknet_ros --no-deps --verbose --catkin-make-args run_tests 
--------------------------------------------------------------------------
Profile:                     default
Extending:          [cached] /home/wavesha/catkin_ws/devel:/opt/ros/indigo
Workspace:                   /home/wavesha/catkin_ws 
--------------------------------------------------------------------------
Source Space:       [exists] /home/wavesha/catkin_ws/src
Log Space:          [exists] /home/wavesha/catkin_ws/logs
Build Space:        [exists] /home/wavesha/catkin_ws/./build2
Devel Space:        [exists] /home/wavesha/catkin_ws/./devel2
Install Space:      [unused] /home/wavesha/catkin_ws/install
DESTDIR:            [unused] None
--------------------------------------------------------------------------
Devel Space Layout:          linked
Install Space Layout:        None
--------------------------------------------------------------------------
Additional CMake Args:       None
Additional Make Args:        None
Additional catkin Make Args: run_tests
Internal Make Job Server:    True
Cache Job Environments:      False
--------------------------------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
--------------------------------------------------------------------------
Workspace configuration appears valid.
--------------------------------------------------------------------------
[build] Found '2' packages in 0.0 seconds.                                     
[build] Package table is up to date.                                           
Starting  >>> darknet_ros                                                      
Starting   >> darknet_ros:loadenv                                              
Output     << darknet_ros:loadenv /home/wavesha/catkin_ws/logs/darknet_ros/build.loadenv.004.log
Loading environment from: /home/wavesha/catkin_ws/./devel2/env.sh
Finished   << darknet_ros:loadenv                                              
Starting   >> darknet_ros:mkdir                                                
Starting   >> darknet_ros:mkdir                                                
Starting   >> darknet_ros:cache-manifest                                       
Starting   >> darknet_ros:check                                                
Subprocess  > darknet_ros:check `cd /home/wavesha/catkin_ws/./build2/darknet_ros; catkin build --get-env darknet_ros | catkin env -si  /usr/bin/make cmake_check_build_system; cd -`
Output     << darknet_ros:check /home/wavesha/catkin_ws/logs/darknet_ros/build.check.003.log
/usr/bin/cmake -H/home/wavesha/catkin_ws/src/darknet_ros/darknet_ros -B/home/wavesha/catkin_ws/build2/darknet_ros --check-build-system CMakeFiles/Makefile.cmake 0
cd /home/wavesha/catkin_ws/./build2/darknet_ros; catkin build --get-env darknet_ros | catkin env -si  /usr/bin/make cmake_check_build_system; cd -
Finished   << darknet_ros:check                                                
Starting   >> darknet_ros:make                                                 
Subprocess  > darknet_ros:make `cd /home/wavesha/catkin_ws/./build2/darknet_ros; catkin build --get-env darknet_ros | catkin env -si  /usr/bin/make run_tests --jobserver-fds=6,7 -j; cd -`
Output     << darknet_ros:make /home/wavesha/catkin_ws/logs/darknet_ros/build.make.004.log
/usr/bin/cmake -H/home/wavesha/catkin_ws/src/darknet_ros/darknet_ros -B/home/wavesha/catkin_ws/build2/darknet_ros --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/make -f CMakeFiles/Makefile2 run_tests
make[1]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/cmake -H/home/wavesha/catkin_ws/src/darknet_ros/darknet_ros -B/home/wavesha/catkin_ws/build2/darknet_ros --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles 3
/usr/bin/make -f CMakeFiles/Makefile2 CMakeFiles/run_tests.dir/all
make[2]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/make -f CMakeFiles/clean_test_results_darknet_ros.dir/build.make CMakeFiles/clean_test_results_darknet_ros.dir/depend
/usr/bin/make -f gtest/CMakeFiles/gtest.dir/build.make gtest/CMakeFiles/gtest.dir/depend
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
cd /home/wavesha/catkin_ws/build2/darknet_ros && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles/clean_test_results_darknet_ros.dir/DependInfo.cmake --color=
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
cd /home/wavesha/catkin_ws/build2/darknet_ros && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /usr/src/gtest /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros/gtest /home/wavesha/catkin_ws/build2/darknet_ros/gtest/CMakeFiles/gtest.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/make -f CMakeFiles/clean_test_results_darknet_ros.dir/build.make CMakeFiles/clean_test_results_darknet_ros.dir/build
/usr/bin/make -f gtest/CMakeFiles/gtest.dir/build.make gtest/CMakeFiles/gtest.dir/build
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/python /opt/ros/indigo/share/catkin/cmake/test/remove_test_results.py /home/wavesha/catkin_ws/build2/darknet_ros/test_results/darknet_ros
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
make[3]: Nothing to be done for `gtest/CMakeFiles/gtest.dir/build'.
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/cmake -E cmake_progress_report /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles  79
[ 33%] Built target gtest
/usr/bin/make -f CMakeFiles/darknet_ros_object_detection-test.dir/build.make CMakeFiles/darknet_ros_object_detection-test.dir/depend
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
cd /home/wavesha/catkin_ws/build2/darknet_ros && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles/darknet_ros_object_detection-test.dir/DependInfo.cmake --color=
Removing test result files from '/home/wavesha/catkin_ws/build2/darknet_ros/test_results/darknet_ros'
- removing '/home/wavesha/catkin_ws/build2/darknet_ros/test_results/darknet_ros/rostest-test_object_detection.xml'
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/make -f CMakeFiles/darknet_ros_object_detection-test.dir/build.make CMakeFiles/darknet_ros_object_detection-test.dir/build
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/cmake -E cmake_progress_report /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles 
[ 33%] Built target clean_test_results_darknet_ros
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
make[3]: Nothing to be done for `CMakeFiles/darknet_ros_object_detection-test.dir/build'.
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/cmake -E cmake_progress_report /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles  77 78
[100%] Built target darknet_ros_object_detection-test
/usr/bin/make -f CMakeFiles/tests.dir/build.make CMakeFiles/tests.dir/depend
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
cd /home/wavesha/catkin_ws/build2/darknet_ros && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles/tests.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/make -f CMakeFiles/tests.dir/build.make CMakeFiles/tests.dir/build
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
make[3]: Nothing to be done for `CMakeFiles/tests.dir/build'.
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/cmake -E cmake_progress_report /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles 
[100%] Built target tests
/usr/bin/make -f CMakeFiles/_run_tests_darknet_ros_rostest_test_object_detection.test.dir/build.make CMakeFiles/_run_tests_darknet_ros_rostest_test_object_detection.test.dir/depend
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
cd /home/wavesha/catkin_ws/build2/darknet_ros && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles/_run_tests_darknet_ros_rostest_test_object_detection.test.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/make -f CMakeFiles/_run_tests_darknet_ros_rostest_test_object_detection.test.dir/build.make CMakeFiles/_run_tests_darknet_ros_rostest_test_object_detection.test.dir/build
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
catkin_generated/env_cached.sh /usr/bin/python /opt/ros/indigo/share/catkin/cmake/test/run_tests.py /home/wavesha/catkin_ws/build2/darknet_ros/test_results/darknet_ros/rostest-test_object_detection.xml /opt/ros/indigo/share/rostest/cmake/../../../bin/rostest\ --pkgdir=/home/wavesha/catkin_ws/src/darknet_ros/darknet_ros\ --package=darknet_ros\ --results-filename\ test_object_detection.xml\ --results-base-dir\ "/home/wavesha/catkin_ws/build2/darknet_ros/test_results"\ /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros/test/object_detection.test\ 
-- run_tests.py: execute commands
  /opt/ros/indigo/share/rostest/cmake/../../../bin/rostest --pkgdir=/home/wavesha/catkin_ws/src/darknet_ros/darknet_ros --package=darknet_ros --results-filename test_object_detection.xml --results-base-dir /home/wavesha/catkin_ws/build2/darknet_ros/test_results /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros/test/object_detection.test 
... logging to /home/wavesha/.ros/log/rostest-wavesha-OptiPlex-9020-9125.log
[ROSUNIT] Outputting test results to /home/wavesha/catkin_ws/build2/darknet_ros/test_results/darknet_ros/rostest-test_object_detection.xml
testdarknet_ros_object_detection ... FAILURE!
FAILURE: Test Fixture Nodes ['darknet_ros'] failed to launch
  File "/usr/lib/python2.7/unittest/case.py", line 331, in run
    testMethod()
  File "/opt/ros/indigo/lib/python2.7/dist-packages/rostest/runner.py", line 121, in fn
    self.assert_(not failed, "Test Fixture Nodes %s failed to launch"%failed)
  File "/usr/lib/python2.7/unittest/case.py", line 424, in assertTrue
    raise self.failureException(msg)
--------------------------------------------------------------------------------

[ROSTEST]-----------------------------------------------------------------------

[testdarknet_ros_object_detection][failed]

SUMMARY
 * RESULT: FAIL
 * TESTS: 0
 * ERRORS: 0
 * FAILURES: 1

ERROR: The following tests failed to run:
 * testdarknet_ros_object_detection

rostest log file is in /home/wavesha/.ros/log/rostest-wavesha-OptiPlex-9020-9125.log
-- run_tests.py: verify result "/home/wavesha/catkin_ws/build2/darknet_ros/test_results/darknet_ros/rostest-test_object_detection.xml"
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/cmake -E cmake_progress_report /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles 
[100%] Built target _run_tests_darknet_ros_rostest_test_object_detection.test
/usr/bin/make -f CMakeFiles/_run_tests_darknet_ros_rostest.dir/build.make CMakeFiles/_run_tests_darknet_ros_rostest.dir/depend
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
cd /home/wavesha/catkin_ws/build2/darknet_ros && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles/_run_tests_darknet_ros_rostest.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/make -f CMakeFiles/_run_tests_darknet_ros_rostest.dir/build.make CMakeFiles/_run_tests_darknet_ros_rostest.dir/build
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
make[3]: Nothing to be done for `CMakeFiles/_run_tests_darknet_ros_rostest.dir/build'.
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/cmake -E cmake_progress_report /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles 
[100%] Built target _run_tests_darknet_ros_rostest
/usr/bin/make -f CMakeFiles/_run_tests_darknet_ros.dir/build.make CMakeFiles/_run_tests_darknet_ros.dir/depend
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
cd /home/wavesha/catkin_ws/build2/darknet_ros && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles/_run_tests_darknet_ros.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/make -f CMakeFiles/_run_tests_darknet_ros.dir/build.make CMakeFiles/_run_tests_darknet_ros.dir/build
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
make[3]: Nothing to be done for `CMakeFiles/_run_tests_darknet_ros.dir/build'.
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/cmake -E cmake_progress_report /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles 
[100%] Built target _run_tests_darknet_ros
/usr/bin/make -f CMakeFiles/run_tests.dir/build.make CMakeFiles/run_tests.dir/depend
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
cd /home/wavesha/catkin_ws/build2/darknet_ros && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/src/darknet_ros/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles/run_tests.dir/DependInfo.cmake --color=
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/make -f CMakeFiles/run_tests.dir/build.make CMakeFiles/run_tests.dir/build
make[3]: Entering directory `/home/wavesha/catkin_ws/build2/darknet_ros'
make[3]: Nothing to be done for `CMakeFiles/run_tests.dir/build'.
make[3]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/cmake -E cmake_progress_report /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles 
[100%] Built target run_tests
make[2]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
/usr/bin/cmake -E cmake_progress_start /home/wavesha/catkin_ws/build2/darknet_ros/CMakeFiles 0
make[1]: Leaving directory `/home/wavesha/catkin_ws/build2/darknet_ros'
cd /home/wavesha/catkin_ws/./build2/darknet_ros; catkin build --get-env darknet_ros | catkin env -si  /usr/bin/make run_tests --jobserver-fds=6,7 -j; cd -
Finished   << darknet_ros:make                                                 
Starting   >> darknet_ros:symlink                                              
Output     << darknet_ros:symlink /home/wavesha/catkin_ws/logs/darknet_ros/build.symlink.004.log
Linked: (/home/wavesha/catkin_ws/./devel2/.private/darknet_ros/share/darknet_ros/cmake/darknet_rosConfig.cmake, /home/wavesha/catkin_ws/./devel2/share/darknet_ros/cmake/darknet_rosConfig.cmake)
Linked: (/home/wavesha/catkin_ws/./devel2/.private/darknet_ros/share/darknet_ros/cmake/darknet_rosConfig-version.cmake, /home/wavesha/catkin_ws/./devel2/share/darknet_ros/cmake/darknet_rosConfig-version.cmake)
Linked: (/home/wavesha/catkin_ws/./devel2/.private/darknet_ros/lib/darknet_ros/darknet_ros_object_detection-test, /home/wavesha/catkin_ws/./devel2/lib/darknet_ros/darknet_ros_object_detection-test)
Linked: (/home/wavesha/catkin_ws/./devel2/.private/darknet_ros/lib/pkgconfig/darknet_ros.pc, /home/wavesha/catkin_ws/./devel2/lib/pkgconfig/darknet_ros.pc)
Finished   << darknet_ros:symlink                                              
Finished  <<< darknet_ros                [ 0.8 seconds ]                       
[build] Summary: All 1 packages succeeded!                                     
[build]   Ignored:   1 packages were skipped or are blacklisted.               
[build]   Warnings:  None.                                                     
[build]   Abandoned: None.                                                     
[build]   Failed:    None.                                                     
[build] Runtime: 0.8 seconds total.                                            
wavesha@wavesha-OptiPlex-9020:~/catkin_ws$ 

Undefined Reference to cvRound when compiling with OpenCV 3

I am trying to build darknet_ros under Ubuntu16.06 with OpenCV 3.2 and I met this error::

[ 49%] Building CXX object darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/src/object_detector_demo.cpp.o
[ 49%] Building C object darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/src/image_interface.c.o
[ 50%] Linking CXX executable /media/sdcard/catkin_ws/devel/lib/darknet_ros/darknet_ros
CMakeFiles/darknet_ros.dir//darknet/src/convolutional_layer.c.o: In function cvPointFrom32f': convolutional_layer.c:(.text+0x660): undefined reference to cvRound'
convolutional_layer.c:(.text+0x670): undefined reference to cvRound' CMakeFiles/darknet_ros.dir/__/darknet/src/convolutional_layer.c.o: In function cvReadInt':
convolutional_layer.c:(.text+0x1214): undefined reference to cvRound' CMakeFiles/darknet_ros.dir/__/darknet/src/convolutional_layer.c.o: In function cvEllipseBox':
convolutional_layer.c:(.text+0x14b8): undefined reference to cvRound' convolutional_layer.c:(.text+0x14d0): undefined reference to cvRound'
CMakeFiles/darknet_ros.dir/
/darknet/src/deconvolutional_layer.c.o:deconvolutional_layer.c:(.text+0x660): more undefined references to cvRound' follow CMakeFiles/darknet_ros.dir/__/darknet/src/deconvolutional_layer.c.o: In function make_deconvolutional_layer':
deconvolutional_layer.c:(.text+0x1b18): undefined reference to forward_deconvolutional_layer_gpu' deconvolutional_layer.c:(.text+0x1b1c): undefined reference to forward_deconvolutional_layer_gpu'
deconvolutional_layer.c:(.text+0x1b24): undefined reference to backward_deconvolutional_layer_gpu' deconvolutional_layer.c:(.text+0x1b28): undefined reference to backward_deconvolutional_layer_gpu'
deconvolutional_layer.c:(.text+0x1b30): undefined reference to update_deconvolutional_layer_gpu' deconvolutional_layer.c:(.text+0x1b34): undefined reference to update_deconvolutional_layer_gpu'
CMakeFiles/darknet_ros.dir//darknet/src/lsd.c.o: In function cvPointFrom32f': lsd.c:(.text+0x660): undefined reference to cvRound'
lsd.c:(.text+0x670): undefined reference to cvRound' CMakeFiles/darknet_ros.dir/__/darknet/src/lsd.c.o: In function cvReadInt':
lsd.c:(.text+0x1214): undefined reference to cvRound' CMakeFiles/darknet_ros.dir/__/darknet/src/lsd.c.o: In function cvEllipseBox':
lsd.c:(.text+0x14b8): undefined reference to cvRound' lsd.c:(.text+0x14d0): undefined reference to cvRound'
CMakeFiles/darknet_ros.dir/
/darknet/src/image.c.o:image.c:(.text+0x660): more undefined references to `cvRound' follow
collect2: error: ld returned 1 exit status
darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/build.make:3384: recipe for target '/media/sdcard/catkin_ws/devel/lib/darknet_ros/darknet_ros' failed
make[2]: *** [/media/sdcard/catkin_ws/devel/lib/darknet_ros/darknet_ros] Error 1
CMakeFiles/Makefile2:2796: recipe for target 'darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/all' failed
make[1]: *** [darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2

Any idea how to solve it?

Change wait_key_delay back to 2 in yaml files

Just a heads up that the wait_key_delay in most of the yaml files is at 1000 instead of 2.

I was wondering why I was only getting 0.9 fps on my system.

Thanks for cleaning everything up.

undefined reference to `load_network_demo'

Hello,

I am trying to run catkin_make on a machine running Ubuntu 16.04, ROS Kinetic and CUDA-8. I get the following error:

[ 51%] Linking CXX executable /home/patrick/catkin_ws/devel/lib/darknet_ros/darknet_ros
CMakeFiles/darknet_ros.dir/src/YoloObjectDetector.cpp.o: In function `darknet_ros::YoloObjectDetector::init()':
YoloObjectDetector.cpp:(.text+0x11fd): undefined reference to `load_network_demo'
collect2: error: ld returned 1 exit status
darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/build.make:1856: recipe for target '/home/patrick/catkin_ws/devel/lib/darknet_ros/darknet_ros' failed
make[2]: *** [/home/patrick/catkin_ws/devel/lib/darknet_ros/darknet_ros] Error 1
CMakeFiles/Makefile2:3666: recipe for target 'darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/all' failed
make[1]: *** [darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j1 -l1" failed

FPS issue

Hi,
I'm sure that I've catkin_make with the following
catkin_make -DCMAKE_BUILD_TYPE=Release
I've tried original darknet on TX1 for tiny-yolo model for 12FPS
but this source only 6FPS
Is there any optimization option that I miss?
thanks

gitignore weight

Will it be possible to add the two weight downloaded by the code to the gitignore? Otherwise git will think that there are changes that need to be tracked.

Compilation error nvcc fatal

Can anyone help me with this compilation error?

nvcc fatal : Stray '"' character
CMake Error at darknet_ros_lib_generated_deconvolutional_kernels.cu.o.Release.cmake:222 (message):
Error generating

Thank you.

License

Under which license is this package available?

Time published

I just noticed the detection system marks the bounding boxes as having been detected at boundingBoxesResults_.header.stamp = ros::Time::now();
Wouldn't it make more sense to publish the time from the ROS image coming in. That way the detection is accurate to the correct TF. I would expect on slow machines this to be a huge issue.

msg.header.stamp

https://github.com/leggedrobotics/darknet_ros/blob/master/darknet_ros/src/YoloObjectDetector.cpp#L604

ROS Image documentation
Header header # Header timestamp should be acquisition time of image

yaml documentation?

What is the purpose of some of the flags in the yaml file? For example what is the purpose of use_darknet?

Multiple camera sources?

I am looking to run darknet_ros using multiple camera topic sources as inputs to yolo, with the outputs being distinguishable based on the specific camera source. For example, I would hope to have the message (BoundingBox.msg) format include something like "string CameraSource" so that I can tell which camera the detection is coming from.

One way I've thought of is to have two camera inputs in the subscriber section of ros.yaml. But I'm not really sure how I would go about modifying the message publication to include the camera source string

Another idea I've had is to just create two launch files under different namespaces, so that there are two darknets instances running simultaneously, publishing seperately to /darknet_ros_1/ and /darknet_ros_2/. This seems feasible but undesirably bulky, considering I have to run two darknets at the same time.

Any thoughts on how I would go about doing this?

Frame rate

Did anyone try using the devel branch on TX2. What is the frame rate you are getting for yolo and tiny_yolo model?

How to get image coordinates for located objects?

Hi! I'm wondering how I get the image coordinates of the classified objects (e.g. that box drawn around the object found).

See the attached log for the information available to me,

If I can get those image coordinates, I could find the distance to said object using a Kinect, and move further from there. It's the last piece I need.

I'm thankful for any ideas you might have because the documentation says nothing about this... :(

darknet_ros_output.txt

The first image is treated differently than the following

hi,
I trained yolo with a custom dataset. When I tried to use this package, only the first image after startup was correctly classified. This image was also displayed smaller. All following pictures were enlarged and no longer correctly classified.

Compile error on 16.04 ubuntu

I clone the latest darknet with working well alone with GPU=1 and CV=1.
Then i download this repository and linked the darknet path that is on my home directory.
Below is reported error. There are also have some warning cvround but i skip it all for clear vision.

/home/fx/catkin_ws/src/darknet_ros/darknet_ros/src/object_detector_demo.cpp: In function ‘void* detect_in_thread(void*)’:
/home/fx/catkin_ws/src/darknet_ros/darknet_ros/src/object_detector_demo.cpp:99:48: error: invalid conversion from ‘int’ to ‘float**’ [-fpermissive]
     get_region_boxes(l, in.w, in.h, net.w, net.h, demo_thresh, probs, boxes, 0, 0, demo_hier, 1);
                                                ^
/home/fx/catkin_ws/src/darknet_ros/darknet_ros/src/object_detector_demo.cpp:99:96: error: cannot convert ‘float’ to ‘box*’ for argument ‘6’ to ‘void get_region_boxes(layer, int, int, float, float**, box*, int, int*, float, int)’
     get_region_boxes(l, in.w, in.h, net.w, net.h, demo_thresh, probs, boxes, 0, 0, demo_hier, 1);

It would be appriciate for any suggestion.
Thank you advance.

Error generating cuda files?

Hi I'm running into an issue when building using

catkin build darknet_ros -DCMAKE_BUILD_TYPE=Release

darknet_ros_msgs builds just fine but when it gets to darknet_ros I get this error
image

any help would be appreciated :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.