Мобильные роботы накладывают множество ограничений на системный уровень. Каждая унция эффективности оборудования имеет значение, поскольку единственным источником энергии является аккумулятор. Если мы стремимся создать ИИ на мобильных роботах, нам также нужны энергоэффективные графические процессоры и компактные сетевые архитектуры.

Например, в своей работе по оценке глубины на основе зрения я обнаружил, что современные методы (SOTA) используют методы глубокого обучения, но требуют параметров не менее 3,5 млн. Я считаю, что для суженного приложения 3,5 млн или более - это перебор. Я всегда напоминаю себе, что муравьи могут организовываться, совместно нести тяжелые грузы, строить мосты из тела и выполнять другие полезные задачи, используя только от 10 до 20 различных сигналов.

Используя два принципа проектирования, я построил эквивалентную сеть, названную DenseMapNet, только с 290k параметрами. В отличие от методов SOTA, сеть использует стерео RGB с полным разрешением. Производительность сопоставима с SOTA. На самом деле, для некоторых наборов данных это намного лучше. Благодаря своему компактному размеру DenseMapNet может работать в реальном времени со скоростью 30 Гц или более даже с входами стерео RGB с полным разрешением и выходом карты глубины с полным разрешением.

Два принципа дизайна, которые я использовал:

  1. Используйте как можно больше предварительных знаний при проектировании сети.
  2. Используйте уровень сжатия и остаточное / пропущенное соединение в сети.

Включение предшествующих знаний означает, что, если у нас уже есть интуиция относительно того, как должно работать решение, позвольте этой интуиции влиять на архитектуру сети. Например, при оценке глубины первым шагом является решение проблемы соответствия. Если мы сможем решить проблему соответствия, у нас будут оценки несоответствия. Обратите внимание, что глубина обратно пропорциональна диспропорции. Итак, я построил сеть корреспонденции, задача которой - найти соответствие между пикселем левого изображения и пикселем правого изображения. Поскольку роль этой сети заключается в поиске закономерностей между левым и правым изображениями, она должна быть широкой, а не глубокой. Широкая сеть необходима для реализации стека свертки с увеличением скорости расширения или покрытия ядра. Следующим шагом будет построение карты глубины обратно пропорциональной диспаратности. По сути, применение вывода сети корреспонденции к эталонному изображению. Я назвал это сетью несоответствия. Напротив, эта сеть должна быть глубокой, чтобы изучать различные уровни представления пространственных объектов для эффективного создания карты глубины. Две сети показаны на рисунке 1.

Второй принцип проектирования основан на идеях DenseNet и других подобных сетей, согласно которым для уменьшения количества параметров в глубоких сетях мы должны сжимать карты характеристик после каждого сверточного слоя. CNN с ядром 1x1 эффективно выполняет задачу сжатия функциональных карт. Кроме того, для того, чтобы градиенты легко проходили вниз к мелким слоям, сеть должна быть плотно соединена. На рисунке 2 показана сетевая архитектура.

DenseMapNet можно обучать от начала до конца под контролем. На 1080Ti скорость оценки глубины составляет более 30 Гц, как показано на этом видео:

DenseMapNet превосходит даже по тесту 3 из 5 наборов данных.

Если вам интересно, код этого проекта находится на github. Кроме того, если вы хотите узнать больше о деталях сети, мою статью ICRA2018 также можно найти на arxiv.

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

PS. Я безуспешно пытался заполучить NVIDIA Jetson TX2 для тестирования DenseMapNet. Надеюсь, я также смогу задокументировать производительность этого графического процессора для мобильных роботов.