Британские инженеры научили фотоматрицу распознавать знакомые ей места, не используя для этого отдельный компьютер. Во время первого прохождения мест она сохраняет сжатое представление кадров, а при повторном прохождении сравнивает новые кадры с ними и ищет совпадения. Тесты показали, что матрица узнает места даже в другое время года, рассказывают авторы статьи, представленной на конференции ICRA 2021.
Традиционно фотоматрица выполняет довольно простую задачу — собирает со всех пикселей значения яркости и записывает в единый кадр. Дальнейшая обработка уже происходит на стороне устройства, то есть для этого используется отдельный процессор, память и программное обеспечение. Но некоторые исследователи и компании работают над альтернативными типами матриц, которые самостоятельно способны выполнять простые операции. Например, Nikon недавно представила прототип матрицы с вычислительными элементами под пикселями, которые во время съемки подбирают для них значения экспозиции, чтобы добиться большого динамического диапазона. Также развивается направление событийных камер, в которых каждый пиксель снимает не синхронно с остальными, а только когда фиксируемая им яркость превышает заданный порог.
Инженеры из Бристольского университета под руководством Вальтерио Майол-Кэуваса (Walterio Mayol-Cuevas) воспользовались матрице SCAMP со встроенными аналогово-цифровыми вычислительными элементами и научили ее запоминать и распознавать места на аппаратном уровне, не используя какие-либо внешние вычислительные устройства. Матрица снимает в градациях серого и имеет разрешение 256 на 256 пикселей. У каждого пикселя есть набор из семи аналоговых и 13 регистров для запоминания переменных, а также схема для выполнения простых логических операций. Авторы отмечают, что их алгоритм можно легко адаптировать и для других аналогичных устройств.
Алгоритм исходит из важного допущения: во время запоминания и распознавания маршрута камера направлена преимущественно вперед и направления совпадают. Информация о маршруте в матрице представлена в виде отдельных кадров, но не в полном разрешении. По сути, массив из 256 на 256 пикселей и вычислительных элементов разбивается на блоки размером 8 на 8 или 8 на 4, в зависимости от того, как хранится информация: в виде кадра с уменьшенным разрешением (с 256 до 8 пикселей по каждой стороне) или в виде локального бинарного визуального дескриптора.
При первом прохождении и запоминании маршрута матрица записывает в блоки сжатое представление кадра и для каждого последующего кадра определяет, что камера сдвинулась вперед или назад, сравнивая их с предыдущим, исходя из заданной модели движения (поскольку камера двигается вдоль одного направления, пиксели на соседних кадрах «двигаются» между центром и краями). Постепенно блоки заполняются сжатой информацией о местах маршрута.
При последующих прохождениях в блоки записывается вес, который оценивает вероятность, что текущий кадр снят в месте, соответствующем записанному. Вес рассчитывается исходя из сравнения структурной схожести между новым и записанным кадром, а также тем, как он согласуется с предыдущими кадрами. В результате максимальный вес в массиве указывает на место, в котором в текущий момент расположена камера.
Разработчики протестировали работу алгоритма на реальной матрице и ее симуляторе с тремя датасетами: записях поездок машинистов на поездах по Норвегии, записях поездок робота по центру Оксфорда и кадрах из симулированных поездок робота по виртуальной лаборатории. Тесты подтвердили, что алгоритм позволяет устанавливать местоположение камеры, причем не только в идентичных условиях, но и при проезде одного и того же места при разных погодных условиях и временах года:
Помимо фотоматриц, которые самостоятельно проводят вычисления, есть и такие, в которых поступающий свет преобразуется в энергию и тем самым обеспечивает съемку без необходимости во внешнем питании.
Комментарии