Giter Site home page Giter Site logo

bracoe / openrobotics_darknet_ros Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ros2/openrobotics_darknet_ros

0.0 0.0 0.0 779 KB

ROS 2 interface to darknet, an open source neural network library.

License: Apache License 2.0

C++ 79.14% Python 4.73% CMake 16.13%

openrobotics_darknet_ros's Introduction

Open Robotics Darknet ROS

This is a ROS 2 wrapper around darknet, an open source neural network framework.

Example image with bounding boxes created using darknet and the yolov3-tiny network

DetectorNode

This node can run object detectors like YOLO v3 or YOLO v7 on images and video streams.

Subscribers

  • ~/images (type sensor_msgs/msg/Image) - Input mages to feed to the detector

Publishers

  • ~/detections (type vision_msgs/msg/Detection2DArray) - Objects detected in an image (if any)

Parameters

  • network.config - a path to a file describing a darknet detector network
  • network.weights - a path to a file with weights for the given network
  • network.class_names - a path to a file with names of classes the network can detect (1 per line)
  • detection.threshold - Minimum probability of a detection to be published
  • detection.nms_threshold - Non-maximal Suppression threshold - controls filtering of overlapping boxes

Dependencies

This package depends on darknet. If you can't use CUDA but want to use your CPU instead make sure to build it with the flag -DENABLE_CUDA=OFF and potentially also disabling multi-threading with -DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=TRUE.

Launching

Compiling this package with

$ colcon build --cmake-args -DDOWNLOAD_YOLO_CONFIG=ON

will automatically download the pretrained YOLO v3, v4 and v7 configuration files.

You can then launch the detector node with

$ ros2 launch openrobotics_darknet_ros detector_launch.py rgb_image:=/topic

optionally supplying a desired parameter file detector_parameters:=path/to/detector_node_params.yaml.

You can also train YOLO to detect custom objects like described here and create the following as detector_node_params.yaml:

/**:
  ros__parameters:
    network:
      config: "./your-yolo-config.cfg"
      weights: "./your-yolo-weights.weights"
      class_names: "./your-cocos.names"
    detection:
      threshold: 0.25
      nms_threshold: 0.45

Finally you can run the detector node with

$ ros2 run openrobotics_darknet_ros detector_node --ros-args --params-file path/to/detector_node_params.yaml

and publish images on ~/images to get the node to detect objects. You can also manually remap an external topic to the ~/images topic with:

$ ros2 run openrobotics_darknet_ros detector_node --ros-args --params-file path/to/detector_node_params.yaml -r '~/images:=/your/camera/topic'

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.