Skip to content

extended_object_detection_node

Moscowsky Anton edited this page Dec 2, 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.
  • ~complex_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 simple objects Для распознаных простых объектов на изображении доступна следующая информация:

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

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

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

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

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

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

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

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

  1. Обрамляющий прямоугольник сложного объекта (может совпадать с одним из простых объектов)
  2. Основной текст сложного объекта, его ID и имя, помещенные над рамкой сложного объекта
  3. Для каждого простого объекта:
  • Его обрамляющий прямоугольник
  • Внутреннее имя простого объекта в сложном (см. раздел сложные объекты) и собственное имя простого объекта

Все элементы при этом имеют цвет циан (cyan). Все элементы сложных объектов рисуются поверх простых.

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

Простые объекты также отрисовываются зеленым цветом, когда работает трекер то цвет меняется на желтый и красный соотвественно. Сложные объекты также рисуются цианом (cyan).

rviz markers with point cloud

При этом, для сложных объектов общая рамка рисуется более толстой линией. Для простых объектов, которые являются частью сложного, справедливы все настройки visualization_types. Для самого сложного объекта имеют смысл только main_text и rects.

Clone this wiki locally