Масштабирование видео в роботах телеприсутствия BotEyes

Опубликовано в номере:
PDF версия
У российского робота телеприсутствия BotEyes производства «НИЛ АП» есть несколько преимуществ перед зарубежными аналогами, и одним из наиболее важных является возможность увеличивать разрешение видео без расширения требуемой полосы пропускания интернет-канала связи. Рассмотрим подробнее эту и другие технические особенности данного робота.

О конструкции и назначении робота

Робот телеприсутствия представляет собой мобильную автоматизированную систему, которая управляется через Интернет и обеспечивает эффект присутствия человека в удаленном от него месте. Такой робот состоит из подвижной платформы и закрепленного на ней (примерно на уровне головы человека) компьютера, планшета или мобильного телефона для аудио- и видеообщения или наблюдения [1].

Для связи с роботом через Интернет используются STUN- и TURN-серверы (рис. 1), которые позволяют получить IP-адреса обеих сторон в типовом случае, когда робот и управляющий гаджет находятся за сетевым транслятором адресов (NAT) и поэтому их IP-адреса не видны из глобальной сети.

Архитектура системы управления роботом телеприсутствия

Рис. 1. Архитектура системы управления роботом телеприсутствия

Роботы телеприсутствия используются:

  • для инспекции удаленных объектов, например когда руководитель проекта хочет проверить, как выполняется сборка шкафов на удаленном объекте строительства (рис. 2);
  • для удаленного присутствия больных школьников на уроке в классе;
  • для осмотра больных, находящихся в других городах или странах, редким специалистом;
  • для «присутствия» на работе сотрудников, работающих дистанционно, и т. д. [1].
Удаленная инспекция сборки шкафа комплектной автоматики

Рис. 2. Удаленная инспекция сборки шкафа комплектной автоматики

Робот телеприсутствия BotEyes [2] серийно изготавливается фирмой «НИЛ АП» и поставляется в США, Канаду и Великобританию. У него есть ряд уникальных свойств, к которым относятся:

  • возможность опускания и подъема «головы» на 160°, что позволяет пользователю видеть пол и потолок или смотреть прямо в глаза собеседнику;
  • способность менять скорость движения плавно, не останавливаясь (у аналогов скорость либо вообще не меняется, либо меняется фиксированно, на странице настроек). Плавная регулировка скорости позволяет роботу ездить в тесных помещениях, с легкостью объезжая множество препятствий;
  • возможность использовать планшет как в горизонтальной, так и в вертикальной позиции (рис. 3, 4), благодаря чему можно согласовывать положение управляющего гаджета с положением камеры в роботе и получать максимальный угол обзора удаленной сцены;
  • способность переезжать пороги высотой до 1,5 см (аналоги в таких ситуациях падают на пол);
  • поддержка всех основных операционных систем (Windows, Android, iOS, MacOS);
  • возможность для клиента выбрать любой подходящий для его целей планшет с размером экрана 8–12″. Это свойство полезно в связи с большим диапазоном стоимости планшетов на рынке;
  • способность записывать (сохранять) удаленное видео или фото, демонстрировать экран удаленному клиенту;
  • возможность одним щелчком мышки выбрать заднюю или переднюю камеру.
Планшет закреплен горизонтально

Рис. 3. Планшет закреплен горизонтально

Несмотря на все эти преимущества, робот отличается низкой ценой по сравнению с конкурентами благодаря хорошо продуманной конструкции, технологиям и процессам производства, сертифицированным по ISO 9001.

Планшет закреплен вертикально

Рис. 4. Планшет закреплен вертикально

Рассмотрим подробнее одну из «фишек» робота — масштабирование удаленного видео. Это свойство полезно, если нужно рассмотреть мелкие детали или текст. Увеличения разрешающей способности камеры в таком случае недостаточно, поскольку разрешающая способность передаваемого видео зависит не только от камеры, но и от пропускной способности канала связи.

 

Три способа масштабирования

Существует три основных способа масштабирования видео при использовании робота телеприсутствия: оптическое увеличение и програм­мное, которое делится на встроенное в камеру и реализованное в отдельной программе.

Оптическое увеличение выполняется с помощью системы линз, расстояние между которыми меняется механически, с помощью микро­моторов. Оно наиболее эффективно, поскольку увеличенное изображение дискретизируется, используя полную разрешающую способность оптической матрицы датчика изображения. Недостатки данного способа — большая цена нужной камеры, отсутствие программной поддержки у многих популярных планшетов, а также необходимость использования USB-OTG, который не позволяет заряжать планшет при подключенной камере.

Перед тем как рассматривать принцип действия цифрового увеличения, вспомним, что основным ограничением разрешающей способности видео, передаваемого через Интернет, является пропускная способность интернет-канала связи. Кроме того, при использовании робота телеприсутствия запрещено применение буфера для компенсации внезапных задержек в канале связи, поскольку кадры видео должны быть синхронизированы с движением робота, т. е. видео должно передаваться в реальном времени. При наличии задержки управление роботом становится затруднительным или невозможным. Поэтому фреймворк WebRTC [3], применяемый во всех роботах телеприсутствия, автоматически снижает размер передаваемого видео, подстраивая его под реальную пропускную способность канала связи с учетом его задержек и провалов. На практике видео не передается в максимальном разрешении, поскольку это редко нужно, и в то же время требует повышенных финансовых затрат на оплату интернет-трафика. Поэтому если, например, матрица видеосенсора имеет размер 8 Мп, а пропускная способность канала связи позволяет передать видео с разрешением всего 1 Мп, то для передачи видео его размер уменьшается до 1 Мп, чтобы предотвратить появление задержек недопустимой величины. При этом мелкие детали изображения становятся неразличимы.

Цифровое масштабирование изображения в таких условиях может состоять в том, чтобы перед снижением разрешения с 8 Мп до 1 Мп вырезать из полномасштабного видео необходимый фрагмент размером в 1 Мп (который будет иметь максимальное для данной матрицы разрешение) и только после этого передать его через канал связи. Снижение разрешения при этом не требуется, поскольку вырезанный фрагмент имеет допустимый для канала связи размер в 1 Мп.

Описанную процедуру можно выполнить двумя способами. Первый — с помощью задания параметров камеры [4]:

var constraints = { advanced: [{ zoom: 1 }] }

Второй — средствами HTML5, с помощью метода CanvasRenderingContext2D.drawImage() в Canvas 2D API [5].

Первый способ подразумевает, что производители камеры для планшета (или компьютера) реализуют масштабирование микропрограм­мно (будем называть его нативным), непосредственно в процессоре камеры и предоставят операционной системе интерфейс для управления параметром zoom. К сожалению, не все планшеты выполняют масштабирование одинаково: одни увеличивают изображение с одновременным увеличением разрешения камеры, другие делают масштабирование, не меняя разрешение, третьи вообще не поддерживают эту функцию. Во втором случае масштабирование может увеличивать количество пикселей путем интерполяции, не изменяя количество информации в видео. При этом изображение увеличивается, но его четкость снижается, оно становится более размытым.

Второй способ реализуется не в камере, а в программном обеспечении (ПО), которое исполняется в процессоре планшета. Оно может быть написано, например, на Java, Javacript или Objective-C. Алгоритм масштабирования состоит из двух этапов: увеличения разрешения камеры в заданное число раз и вырезания нужного фрагмента видео (чтобы сохранить прежний размер изображения в пикселях). При этом величина видеопотока остается прежней и его можно передать без задержки через канал связи с той же пропускной способностью, что и до масштабирования.

 

Масштабирование в роботе телеприсутствия BotEyes

Нативное масштабирование поддерживается не всеми планшетами и браузерами. Например, в планшете Samsung Galaxy Tab S7+ оно предусмотрено в браузере Google Chrome, но не поддерживается в Microsoft Edge.

По указанным причинам в роботе телеприсутствия BotEyes реализованы оба вида масштабирования — нативное и программное, на языке JavaScript. В зависимости от выбранного планшета пользователь может выбрать лучший для него метод, указав его на странице настроек.

К сожалению, при использовании программного метода приходится оперировать с изображением большого размера в памяти планшета и это иногда (довольно редко) приводит к известной ошибке «Aw, Snap!» в браузере Google Chrome, если выбирается предельное разрешение. В браузере Microsoft Edge аналогичная ошибка не возникает (по крайней мере, нам не удалось обнаружить ее экспериментально).

Для уменьшения нагрузки на процессор и снижения вероятности появления ошибки «Aw, Snap!» мы предусмотрели возможность снижать частоту кадров видео после увеличения масштаба. Это не влияет на удобство использования робота, поскольку увеличение используется чаще всего для того, чтобы рассмотреть неподвижные предметы (школьная доска, лист на столе, детали оборудования) и не используется во время движения робота. В то же время частоту кадров можно увеличить, если в распоряжении пользователя имеется планшет с большой оперативной памятью и мощным процессором.

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

До увеличения

Рис. 5. До увеличения

Еще одна проблема, связанная с программным увеличением, — автоматическое наведение на фокус. Дело в том, что при программном способе масштабирования критерий наведения на фокус использует все поле матрицы, в то время как увеличивается только его часть. Поэтому может оказаться, что фокус настроен не на ту часть изображения, которую мы увеличили, и она получается размытой. В роботе Boteyes эта проблема решена: на рис. 5 и 6, а также в видео на сайте [6] можно видеть результат работы встроенного в него алгоритма при использовании недорогого планшета Huawei Mediapad T5.

После увеличения

Рис. 6. После увеличения

Литература
  1. Денисенко В. Интернет до офиса доведет: роботы телеприсутствия // Control Engineering Россия. № 2 ‘2019.
  2. https://boteyes.com.
  3. Web RTC. www.w3.org/TR/webrtc.
  4. MediaStream Image Capture. Zoom.
  5. drawImage().
  6. How to enlarge an image when using a telepresence robot?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *