-
Notifications
You must be signed in to change notification settings - Fork 1
extended_object_detection_node
Package main node provides ROS-interface.
- camera/image_raw (sensor_msgs/Image) Input RGB-image.
- camera/info (sensor_msgs/CameraInfo) Camera calibration params.
- depth/image_raw (sensor_msgs/Image) Input depth map, subscribes only if param subscribeDepth is true.
- depth/info (sensor_msgs/CameraInfo) Camera calibration params of depth camera, subscribes only if subscribeDepth is true.
- ~simple_objects (object_and_scene_detection/SimpleObjectArray) detected Simple Objects info.
- ~complex_objects (object_and_scene_detection/ComplexObjectArray) detected Complex Objects info.
- ~detected_image (sensor_msgs/Image) Input image with detection result, publishes only if publishImage param is true.
- ~simple_objects_markers (visualization_msgs/MarkerArray) Markers of detected Simple Objects for rviz. Publishes only if publishMarkers parameter is true.
- ~complex_objects_markers (visualization_msgs/MarkerArray) Markers of detected Complex Objects for rviz. Publishes only if publishMarkers parameter is true.
- ~set_simple_objects (extended_object_detection/SetSimpleObjects) Allows to remove/add Simple Objects from the list of recognized objects during the node running.
- ~set_complex_objects (extended_object_detection/SetSimpleObjects) Allows to remove/add Complex Objects from the list of recognized objects during the node running.
- ~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.
- ~rotate_image_180 (bool, default: false) If true, then flips the input image 180 degrees.
Simple objects detection:
The following information is available for recognized Simple Objects in the image:
- Bounding rect
- 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, ">" - extract - [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*.
- 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:
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:
The following information is available:
- The bounding rectangle of a Complex Object (can match one of the Simple Objects)
- The main text of a Complex Object, its ID and name, placed above the frame of a Complex Object
- 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
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.
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.
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.
- Home
- ROS-interface
- Interacting with a package through a configuration file
- Common structure of the configuration file
-
Simple objects
- Clusterization
- Filtering
- Tracking
- Attributes
- HSVcolor
- HistColor
- HaarCascade
- Size
- Hough
- Dimension
- BasicMotion
- Aruco
- Feature
- Pose
- DNN
- QR
- QR_Zbar
- LogicAnd
- LogicNot
- LogicOr
- Blob
- Depth
- RoughDist
- Dist
- FaceDlib
- ExractedInfoId
- ExractedInfoString
- UnitTranslation
- SquareObjectDistance
- TorchYOLOv7Attribute
- TorchYOLOv7KeypointAttribute
- ROSSubcriberOpenPoseRaw
- DummyHumanPose
- Complex objects
- Install Guides
- Usage Guides
- Troubleshooting