Проект стереозрения на Raspberry Pi: очки расширенного зрения с синхронизированными камерами
Идея очков расширенного зрения
«Видим ли мы мир таким, какой он есть на самом деле?» — спросил наш класс учитель физики мистер Хант. А потом предложил придумать пример того, как можно увидеть то, что обычно скрыто от глаз. Кто-то сказал: «А как насчёт ночного видения?» — и завязалось обсуждение, как нашему классу сделать собственные очки ночного видения.
Затем мистер Хант показал нам снимки Солнца в разных диапазонах длин волн, сделанные солнечной обсерваторией NASA (Solar Dynamics Observatory). Мы заговорили о множестве явлений, которые постоянно происходят вокруг, но остаются незамеченными, потому что наши глаза не воспринимают эту информацию.
Идея простых очков ночного видения быстро выросла в мысль о расширении зрения в целом. Так родился проект очков, которые позволяют видеть в недоступных обычному глазу участках электромагнитного спектра.

Возможности человеческого глаза ограничены, но камера может уловить информацию, которую мы иначе не замечаем. Сначала мистер Хант предложил назвать проект «Очки Джорди», но большинство в классе не знакомы со вселенной «Звёздного пути», поэтому мы назвали наш проект «Очки расширенного зрения».
Выбор модулей камер
Когда идея очков расширенного зрения оформилась, нужно было выбрать компоненты, и прежде всего модули камер. Цель проекта — «расширить зрение» в разных диапазонах длин волн, как на снимках NASA выше, поэтому нужны камеры, которые снимают в нескольких диапазонах.
Большинство светочувствительных сенсоров, на которых построены современные цифровые камеры, кроме видимого спектра чувствительны и к ближнему УФ, и к ближнему ИК. Чтобы снимки не выглядели странно, в цифровых камерах стоят фильтры, отсекающие невидимые глазу ИК и УФ. Когда мы думали только о ночном видении, мы собирались взять камеры Arducam NoIR с ИК-фильтром, который автоматически убирается, чтобы камера видела ИК-излучение. Мы решили, что для видимого и ИК-диапазонов это, вероятно, самое простое решение.
С ИК и видимым светом так справиться относительно легко, но нужно было ещё найти недорогой способ снимать в УФ. «Голые» сенсоры большинства потребительских камер воспринимают и УФ, и ИК. Если график ниже отражает реальность, то стандартная КМОП-камера без системы УФ-фильтрации должна захватывать пригодную для работы часть УФ-диапазона.

В некоторых камерах УФ-фильтрация встроена прямо в слой цветоделения (как на рисунке ниже), и тогда, скорее всего, пришлось бы серьёзно менять обработку сигнала.

Мистер Хант показал классу статью о группе, которая превратила стандартную камеру Raspberry Pi в работоспособную УФ-камеру. Но из-за обработки, нужной для интерпретации монохромного сигнала, её, похоже, удалось использовать только для фотосъёмки. Тем не менее успех авторов статьи говорит о том, что недорогую видеокамеру, чувствительную к УФ, сделать можно — возможно, достаточно убрать УФ-фильтры, где бы они ни стояли, и сообщить сигнальному процессору, что он обрабатывает монохромное изображение.
Сложности с адаптером для нескольких камер
С одной камерой проект был бы гораздо проще, но стереозрение даёт куда более сильный эффект погружения. Адаптер для нескольких камер упростил бы задачу и позволил бы использовать два комплекта камер — например, один для видимого и ИК-диапазонов, другой для УФ.
Мистер Хант поставил перед нами ещё одну задачу: дать почувствовать эффект погружения зрителям — в учебных целях и чтобы показывать этот и другие школьные исследовательские проекты, которые, надеемся, станут возможны благодаря этой технологии. Для этого нужно уметь записывать видео.
Чтобы проект получился интересным, полезным и при этом недорогим, обрабатывать стереовидео будет Raspberry Pi. Поэтому один из вопросов, который мы изучали, — как подключить несколько камер к Raspberry Pi. Мы нашли несколько мультиплексоров для камер, в том числе от Arducam, которые, по описанию, поддерживают до четырёх камер. Но они выводят только одно изображение за раз, и мы поняли, что частота кадров, скорее всего, будет слишком низкой для плавного видео. К тому же с таким решением было бы очень сложно синхронизировать камеры и записывать видео.
Решение: синхронизированная двойная камера (Arducam SDC)
Когда Arducam объявила о выпуске платы HAT для синхронизированной стереокамеры, мистер Хант связался с компанией, чтобы узнать о наличии. Новинка — плата в формате HAT, к которой подключаются две камеры Pi, а сигнал передаётся в разъём камеры Raspberry Pi. Это настоящий стереоадаптер с двумя полностью синхронизированными камерами. Интересно, что в модуле стоит собственное решение Arducam — ArduChip: оно «убеждает» Raspberry Pi, что к порту камеры подключена всего одна камера, и вы действительно видите видеопотоки двух камер одновременно.
Наш класс решил, что плата SDC — перспективный способ решить ожидаемые проблемы со стереоизображением. С ней Raspberry Pi сможет захватывать и обрабатывать стереоизображение, и останется только понять, как встроить в очки съёмку в УФ… Возможно, проще поставить на переднюю часть очков отдельную пару УФ-камер. Плюс такого подхода в том, что, скорее всего, не придётся конструировать отдельный механизм смены фильтров: можно использовать встроенное переключение фильтра в немодифицированных камерах NoIR, а УФ-камеры просто оптимизировать под выбранные диапазоны. Останется лишь одна задача — переключаться между режимами УФ и ИК, желательно не отсоединяя один комплект камер и не подключая другой.
Сборка очков расширенного зрения
Основой прототипа наш класс планирует сделать недорогую VR-гарнитуру (вроде показанной ниже — она рассчитана на смартфон). Спереди (левое фото) мы установим две камеры, расположив центры объективов примерно на межзрачковом расстоянии. Шлейфы камер пройдут через переднюю крышку к сборке SDC и Raspberry Pi, закреплённой с внутренней стороны крышки. Сразу за этой сборкой будет ЖК-монитор: он встанет по центру, вплотную к перегородке между зонами обзора левого и правого глаза (тонкая пластиковая стенка, делящая объём пополам, видна на правом фото).


Кроме того, на передней крышке разместим несколько ИК- и УФ-светодиодов для подсветки. Если для режима УФ понадобятся отдельные камеры, места на передней крышке хватит, чтобы поставить ещё две камеры одну над другой.
Питание будет идти от перезаряжаемого LiPo-аккумулятора на поясе, чтобы гарнитура была как можно легче.
Когда начнём работать со всеми компонентами, наш класс продолжит разбираться, как переключать режимы, передавать команды управления и дорабатывать программу.
Об авторе — Джеффе Ханте. Статья подготовлена командой Джеффа Ханта. В школе мистер Хант совмещает две роли: преподаёт физику и работает заместителем директора программы i2 (Inquiry and Innovation — «исследование и новаторство»), ориентированной на STEM программы для лучших учеников каждого класса. Он помогает одному из учеников с его проектом для мейкеров. Цель — сделать очки расширенного зрения (как у Джорди Ла Форжа из «Звёздного пути»), чтобы видеть в ИК- и УФ-диапазонах.


