Как правильно подписаться на две темы в ROS (изображение и ограничивающие рамки публикуются отдельно) - PullRequest
0 голосов
/ 28 апреля 2019

В настоящее время я создаю узел ROS для обнаружения объектов. Следует следующий конвейер:

  1. Изображение опубликовано
  2. Опубликованное изображение подписывается узлом нейронной сети, который запускает обнаружение объектов на нем и затем публикует список ограничивающих рамок.
  3. Теперь я хотел бы подписаться на обе темы и выполнить сопоставление с шаблоном для обнаруженных ограничивающих рамок. Затем результат публикуется.

Проблема в том, что изображение публикуется перед ограничительной рамкой, и мне нужно собрать их обратно.

Моей первой идеей было бы что-то вроде this , но изображения публикуются гораздо чаще, чем NN выводит ограничивающую рамку, поэтому они не сочетаются друг с другом. Кроме того, у меня есть четыре камеры, публикующие одну и ту же тему, поэтому мне нужно будет также включить идентификатор кадра.

Вторая идея - опубликовать одно сообщение с изображением и рамкой. Вероятно, это будет самая чистая версия, но я не уверен, как это сделать с помощью метода image_transport.

Я использую эту реализацию darknet для ROS: https://github.com/leggedrobotics/darknet_ros

Может ли кто-нибудь помочь мне, как правильно реализовать безопасный и надежный способ публикации изображений с ограничивающими рамками в одном сообщении?

Спасибо!

1 Ответ

0 голосов
/ 09 мая 2019

message_filter пакет в ROS может достичь того, что вы хотите.

Аналогично инициализации подписчика, вы создаете подписчика фильтра сообщений, который может принимать несколько сообщений из разных тем. Функция обратного вызова фильтра сообщений предоставляет вам наиболее подходящие сообщения из каждой темы вместе. Вы можете выбрать политику ExactTime для сопоставления сообщений с одинаковыми временными метками или политику ApproximateTime, где используется адаптивный алгоритм для сопоставления сообщений с ближайшими временными метками.

В вашем случае я бы использовал политику ApproximateTime, чтобы сопоставить низкочастотное обнаружение с высокочастотным изображением с меткой ближайшего времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...