Skip to content

extended_object_detection_node

Moscowsky Anton edited this page Dec 2, 2020 · 26 revisions

extended_object_detection_node

Package main node provides ROS-interface.

1. ROS-interface

1.1. Subscribed topics

1.2. Published topics

1.3. Services

1.4. Parameters

  • ~objectBasePath (string, default: none) Must be provided. Path to XML-file of object base (also know as config file).
  • ~screenOutput (bool, default: true) If true, then the image with the recognition results will be displayed in a separate window.
  • ~publishImage (bool, default: true) If true, then the image with the recognition results will be published in the ~detected_image topic.
  • ~videoProcessUpdateRate (double, default: 10) Desired processing speed of incoming images in hertz.
  • ~subscribeDepth (bool, default: false) If true,then the node will subscribe to depth camera topics, images from which can be transferred to Attributes.
  • ~publishMarkers (bool, default: false) If true, then the node will publish MarkerArray for rviz.
  • ~visualizationTypes (list of strings, default: ["arrows", "rects", "axis", "main_text", "extracted_info", "contour"]) Types of markers to add to the topic ~simple_objects_markers. Read more about types below.
  • ~maxContourPoints (int, defualt: 10) If it is not equal to -1, then contours with the number of points exceeding this parameter will not be added to messages published by the node.
  • ~selectedOnStartSimple (list of ints, default: empty) If empty, then all Simple Objects specified in the database will be recognized. If the first element is -1, then none will be recognized, otherwise only Simple Objects with the specified identifiers will be recognized.
  • ~selectedOnStartComplex (list of ints, default: empty) If empty, then all Complex Objects specified in the database will be recognized. If the first element is -1, then none will be recognized, otherwise only Complex Objects with the specified identifiers will be recognized.

2. Visualization

2.1. Image

Simple objects detection: detection Simple Objects The following information is available for recognized Simple Objects in the image:

  1. Bounding rect
  2. Text info (from up to bottom)
  • ID of the object in the object base, the name of the object in the object base and the total confidence coefficient, indicated in square brackets
  • The list of Attributes of this object, including: attribute mode ("+" - recognition, "-" - check - [see the section Recognizing Simple Objects] (simpleobject_detection)), attribute name, attribute confidence factor in square brackets, numerical extra extracted information in curly brackets*, text extra extracted information in round brackets*.
  1. Object contour, if at least one of the features supports its extraction.

All elements drawn with green color.

* - only for those indications that provide such information.

Recognition of simple objects with tracking enabled: detection Simple Objects tracking

The following information is available:

  • When using tracking, the track identifier is added to the object text after the confidence factor in round brackets.
  • When an object is recognized using a tracker, not a detector, then the color of all elements changes from green to yellow. When the object is lost, it turns red.
  • A curve is added indicating the movement history of this object.
  • In case of recognition by the tracker, no attributes in detection mode are indicated. Instead, the type of tracker and its confidence factor are indicated.

When recognizing Complex Objects: detection complex objects

The following information is available:

  1. The bounding rectangle of a Complex Object (can match one of the Simple Objects)
  2. The main text of a Complex Object, its ID and name, placed above the frame of a Complex Object
  3. For each Simple Object:
    • Its bounding rectangle
    • Inner name of Simple Object in Complex (see section Complex Objects) and own name of Simple Object

All elements are colored cyan. All elements of Complex Objects are drawn on top of Simple Objects

2.2. Rviz markers

Marker types for drawing can be configured with the parameter visualization_types.

  • arrows - draws an translation from the camera frame to the center of the object's bounding rectangle.
  • rects - draws a bounding rectangle in 3D coordinates.
  • axis - in the center of the bounding rectangle, draws the axes that indicate the rotation of the object.
  • main_text - places basic information about the object above the bounding box. Contains ID, name and confidence factor.
  • extracted_info - places additional information between the main text and the framing rectangle, for example, ArUco marker identifiers, neural network labels, information from QR codes.
  • contour - Draws the outline of the object, if any and does not exceed the number of points, defined by maxContourPoints param.

rviz markers with point cloud rviz markers with point cloud

Simple Objects are also drawn with green, when the tracker is running, the color changes to yellow and red, respectively. Complex Objects are also drawn with cyan.

rviz markers with point cloud

Also for Complex Objects, the general frame is drawn with a thicker line. For Simple Objects that are part of a Complex, all visualization_types settings apply. For the Complex Objects only main_text and rects make sense.

Clone this wiki locally