В разработке и применении системы трекинга Insight инженеры компании Oculus столкнулись с проблемой. Система основана на обнаружении и геометрическом сопоставлении источников инфракрасного света в небольших кластерах. В праздничный сезон в домах некоторых пользователей появляется пара десятков или даже сотен новых огней — на гирляндах. Они создают световые пятна, которые очень мешают очкам следить за контроллерами. Таким образом, ваша ёлка — настоящий вызов для виртуальной реальности.
На изображении ниже вы видите мир глазами Insight. На заднем плане стоит рождественская ёлка. Желтые точки справа показывают все потенциальные обнаруженные системой светодиоды на контроллерах. Появление посторонних источников света делает проблему поиска нужных светодиодов сложной даже для человека.
Проблем несколько:
- Чем больше источников света, тем больше ресурсов и времени нужно для их сегментации и сопоставления.
- Если нет информации о том, где контроллер находился в предыдущем кадре, вычислить позицию в скоплении источников света практически невозможно. И даже при наличии информации о предыдущих кадрах сохраняется возможность некорректного сопоставления какого-либо источника, что может привести к сбою.
- Из-за ограничений вычислительной мощности Quest любое увеличение времени расчёта может привести к выпадению нескольких кадров.
В поисках решения инженеры сосредоточились на оптимизации. Команда Oculus разработала новый алгоритм, который обнаруживает стационарные источники света в окружении и использует их трёхмерные координаты, чтобы выделить на их фоне подвижные диоды на контроллерах.
Разработка точной карты стационарных огней требует, чтобы система вычисляла базовую геометрию этих точек и триангулировала их положение в трёхмерном пространстве. Она разрабатывает список ориентиров, которые отслеживает во время сеанса. Записи о них хранят не только местоположение мигающих огней, но и значение неопределённости, известное как ковариация. Эта неопределенность позволяет системе знать, насколько уверенной она может быть в том, что ориентир неподвижен. После того, как один и тот же ориентир был замечен в одном и том же месте достаточно много раз, его можно игнорировать в трекинге.
После сопоставления стационарных ориентиров система проецирует их на видео с камер, чтобы получить их позиции на пикселях в каждом кадре. В результате компьютер получает список нестационарных ориентиров, которые, предположительно, являются контроллерами. Но в идеальных условиях система должна отклонять явно неверные источники света ПЕРЕД их обработкой.
Внутренние тесты показали, что ненужные ориентиры часто имеют неправильные размеры, учитывая, что их позиция совпадает в предполагаемой позицией контроллера. Например, слишком малы, когда их предполагаемая позиция рядом с камерами. Таким образом, видимый размер диода можно предсказать на основе следующих показателей:
- расстояние светодиода от камеры;
- угол зрения относительно светодиода;
- расстояние от ориентира до центра изображения;
- ориентация эллипса ориентира в пространстве.
Эксперименты с различными методами показали, что геометрическое моделирование обладает недостаточной точностью из-за эффектов преломления света, а вот небольшая свёрточная нейросеть со средой обучения Caffe2 даёт куда лучшие результаты. Это эффективный способ значительно сократить количество ошибок при использовании в сочетании с сопоставлением ориентиров.
С помощью нейросети Oculus улучшила трекинг в сложных условиях и обеспечила поклонникам ВР комфорт в новогодние праздники. Подробности решения и другие материалы по системе Insight вы найдёте в блоге компании.
Не пропускайте важнейшие новости о дополненной, смешанной и виртуальной реальности — подписывайтесь на Голографику в Telegram, ВК, Twitter и Facebook!
Далее: Трекинг рук обкатывают на Quest, чтобы добавить на Rift S