-
Notifications
You must be signed in to change notification settings - Fork 6
extended_object_detection_node
Основной узел пакета, предоставляющий ROS интерфейс.
- 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.
- ~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.
- ~set_simple_objects (extended_object_detection/SetSimpleObjects) Позволяет по ходу работы узла убирать\добавлять простые объекты из списка распознаваемых.
- ~set_complex_objects (extended_object_detection/SetSimpleObjects) Позволяет по ходу работы узла убирать\добавлять сложные объекты из списка распознаваемых.
- ~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, то ни один не будет распознаваться, иначе только сложные объекты с указанными идентификаторами будут распознаваться.
Распознавание простых объектов:
Для распознаных простых объектов на изображении доступна следующая информация:
- Обрамляющий прямоугольник
- Текстовая информация (сверху вниз)
- ID объекта в базе, имя объекта в базе и суммарный коэффициент уверенности, указанный в квадратных скобках
- Список признаков, данного объекта, включающий: режим признака ("+" - распознавание, "-" - проверка, ">" - извлечение - см. раздел Распознавание простых объектов), имя признака, коэффициент уверенности признака в квадратных скобках, численная дополнительно извлекаемая информация в фигурных скобках*, текстовая дополнительно извлекаемая информация в круглых скобках*.
- Контур объекта, если хоть один из признаков поддерживает его извлечение.
Все элементы при этом зеленого цвета.
* - только для тех признаков, что предоставляют такую информацию.
Распознавание простых объектов с включенным трекингом:
Доступна следующая информация:
- При использовании трекинга в текст объекта после коэффициента уверенности добавляется в круглых скобках идентификатор трека.
- Когда объект распознается при помощи трекера, а не детектора, то цвет всех элементов меняется с зеленого на желтый. В момент потери объекта становится красным.
- Добавляется линия, указывающая историю перемещения данного объекта.
- В случае распознавания трекером не указываются признаки в режиме детектирования. Вместо них указан тип трекера и его коэффициент уверенности.
При распознавании сложных объектов:
Доступна следующая информация:
- Обрамляющий прямоугольник сложного объекта (может совпадать с одним из простых объектов)
- Основной текст сложного объекта, его ID и имя, помещенные над рамкой сложного объекта
- Для каждого простого объекта:
- Его обрамляющий прямоугольник
- Внутреннее имя простого объекта в сложном (см. раздел сложные объекты) и собственное имя простого объекта
Все элементы при этом имеют цвет циан (cyan). Все элементы сложных объектов рисуются поверх простых.
Типы маркеров для отрисовки можно настроить параметром visualization_types.
- arrows - отрисовывает перенос в виде стрелки из фрейма камеры в центр обрамляющего прямоугольника объекта.
- rects - отрисовывает обрамляющий прямоугольник в трехмерных координатах.
- axis - в центре обрамляющего прямоугольника отрисовывает оси, указывающие поворот объекта.
- main_text - помещает основую информацию об объекте над обрамляющим прямоугольником. Содержит идентификатор, имя и коэффициент уверенности.
- extracted_info - Между основным текстом и обрамляющим прямоугольником помещает дополнительную информацию, например идентификаторы ArUco маркеров, лейблы нейронных сетей, информацию из QR кодов.
- contour - Рисует контур объекта, если таковой имеется и не превышает по количеству точек maxContourPoints.
Простые объекты также отрисовываются зеленым цветом, когда работает трекер то цвет меняется на желтый и красный соотвественно. Сложные объекты также рисуются цианом (cyan).
При этом, для сложных объектов общая рамка рисуется более толстой линией. Для простых объектов, которые являются частью сложного, справедливы все настройки visualization_types. Для самого сложного объекта имеют смысл только main_text и rects.
- ROS-интерфейс
- Взаимодействие посредством конфигурационного файла
- Установка
- Руководства
- Проблемы
- Разработка