Skip to content

extended_object_detection_node

Moscowsky Anton edited this page Nov 19, 2020 · 16 revisions

extended_object_detection_node

Основной узел пакета, предоставляющий ROS интерфейс.

1. ROS-интерфейс

1.1. Подписки (топики)

  • camera/image_raw (sensor_msgs/Image) Входное RGB-изображение.
  • camera/info (sensor_msgs/CameraInfo) Параметры RGB-камеры.
  • depth/image_raw (sensor_msgs/Image) Входная карта глубины, подписка создается только если параметр subscribeDepth выставлен в true.
  • depth/info (sensor_msgs/CameraInfo) Параметры камеры глубины, подписка создается только если параметр subscribeDepth выставлен в true.

1.2. Публикации (топики)

  • ~simple_objects (object_and_scene_detection/SimpleObjectArray) Информация о распознанных простых объектах.
  • ~complex_objects (object_and_scene_detection/ComplexObjectArray) Информация о распознанных сложных объектах.
  • ~detected_image (sensor_msgs/Image) Изображение с результатами распознавания. Публикуется только если параметр publishImage выставлен в true.
  • ~simple_objects_markers (visualization_msgs/MarkerArray) Маркеры распознанных объектов для визуализации в rviz. Публикуются только если параметр publishMarkers выставлен в true.

1.3. Сервисы

  • ~set_simple_objects (extended_object_detection/SetSimpleObjects) Позволяет по ходу работы узла убирать\добавлять простые объекты из списка распознаваемых.
  • ~set_complex_objects (extended_object_detection/SetSimpleObjects) Позволяет по ходу работы узла убирать\добавлять сложные объекты из списка распознаваемых.

1.4. Параметры

  • ~objectBasePath (string, default: none) Обязан быть указан. Путь к XML-файлу базы объектов (конфигурационный файл).
  • ~screenOutput (bool, default: true) Если выставлен в true, то изображение с результатами распознавания будет демонстрироваться в отдельном окне.
  • ~publishImage (bool, default: true) Если выставлен в true, то изображение с результами распознавания будет публиковаться в топик ~detected_image.
  • ~videoProcessUpdateRate (double, default: 10) Желаемая скорость обработки поступающих изображений в герцах.
  • ~subscribeDepth (bool, default: false) Если выставлен в true, то узел осуществит подписку на топики камеры глубины, изображения с которых можно передавать в признаки.
  • ~publishMarkers (bool, default: false) Если выставлен а true, то узел будет публиковать MarkerArray для визуализации в rviz.
  • ~visualizationTypes (list of strings, default: ["arrows", "rects", "axis", "main_text", "extracted_info", "contour"]) Типы маркеров, для добавления в топик ~simple_objects_markers. Подробнее о типах читайте ниже.
  • ~maxContourPoints (int, defualt: 10) Если не равен -1, то контуры, с количеством точек, первышающим данный параметр не будут добавляться в сообщения, публикуемые узлом.
  • ~selectedOnStartSimple (list of ints, default: empty) Если пуст, то все простые объекты, указанные в базе, будут распознаваться. Если первый элемент -1, то ни один не будет распознаваться, иначе только простые объекты с указанными идентификаторами будут распознаваться.
  • ~selectedOnStartComplex (list of ints, default: empty) Если пуст, то все сложные объекты, указанные в базе, будут распознаваться. Если первый элемент -1, то ни один не будет распознаваться, иначе только сложные объекты с указанными идентификаторами будут распознаваться.

2. Визуализация

2.1. Изображение

Распознавание простых объектов: detection image example Для распознаных простых объектов на изображении доступна следующая информация:

  1. Обрамляющий прямоугольник
  2. Текстовая информация (сверху вниз)
  • ID объекта в базе, имя объекта в базе и суммарный коэффициент уверенности, указанный в квадратных скобках
  • Список признаков, данного объекта, включающий: режим признака ("+" - распознавание, "-" - проверка - см. раздел Распознавание простых объектов), имя признака, коэффициент уверенности признака в квадратных скобках, численная дополнительно извлекаемая информация в фигурных скобках*, текстовая дополнительно извлекаемая информация в круглых скобках*.
  1. Контур объекта, если хоть один из признаков поддерживает его извлечение.

Все элементы при этом зеленого цвета.

* - только для тех признаков, что предоставляют такую информацию.

Распознавание простых объектов с включенным трекингом: detection image example tracking

Доступна следующая информация:

  • При использовании трекинга в текст объекта после коэффициента уверенности добавляется в круглых скобках идентификатор трека.
  • Когда объект распознается при помощи трекера, а не детектора, то цвет всех элементов меняется с зеленого на желтый. В момент потери объекта становится красным.
  • Добавляется линия, указывающая историю перемещения данного объекта.
  • В случае распознавания трекером не указываются признаки в режиме детектирования. Вместо них указан тип трекера и его коэффициент уверенности.

При распознавании сложных объектов:

2.2. Маркеры rviz

Типы маркеров для отрисовки можно настроить параметром visualization_types.

  • arrows - отрисовывает перенос в виде стрелки из фрейма камеры в центр обрамляющего прямоугольника объекта.
  • rects - отрисовывает обрамляющий прямоугольник в трехмерных координатах.
  • axis - в центре обрамляющего прямоугольника отрисовывает оси, указывающие поворот объекта.
  • main_text - помещает основую информацию об объекте над обрамляющим прямоугольником. Содержит идентификатор, имя и коэффициент уверенности.
  • extracted_info - Между основным текстом и обрамляющим прямоугольником помещает дополнительную информацию, например идентификаторы ArUco маркеров, лейблы нейронных сетей, информацию из QR кодов.
  • contour - Рисует контур объекта, если таковой имеется и не превышает по количеству точек maxContourPoints.

rviz markers with point cloud rviz markers with point cloud

Clone this wiki locally