Ранее мы рассматривали эти вопросы использования дополненной реальности для создания оригами:
- Интерфейсы → Оригами и расширенная реальность
- Алгоритмы → Оригами и расширенная реальность (продолжение)
Задача
Пусть у нас будет виртуальная модель оригами, настоящий лист бумаги и веб-камера.На изображении листа, полученном с камеры, программа должна нарисовать подсказку текущего этапа складывания модели, например, стрелку из одного угла листа в другой.
Для создания модели нужен человек, который изначально будет складывать оригами с помощью компьютера, подробнее можно прочитать здесь: все компоненты .
Ограничения
Проблема в том, чтобы правильно определить, где находятся наши объекты на листе.Лист может быть произвольно ориентирован и на каком-то шаге иметь произвольную форму.
Обычной веб-камере практически невозможно «увидеть» все детали сложенного одноцветного листа.
Использование цветного принтера для разметки участков листа доступно не каждому.
Внешний вид решения
Штрих-коды размещаются на определенных участках листа.
Программа их находит, легко идентифицирует, определяет по ним ориентацию листа и необходимое смещение к объектам, включенным в подсказку.
Как мы будем размещать штрих-коды на листе? Необходимо принять во внимание следующие факторы:
- Штрих-код не должен лежать на линиях сгиба, так как он может помяться и повредиться;
- Штрих-код должен быть виден на всех этапах складывания модели, при котором он используется для отображения всплывающей подсказки;
- Штрих-код должен располагаться на достаточно большом расстоянии от объектов всплывающей подсказки, так как пользователь, скорее всего, схватит их руками, чтобы сделать складку и закрыть ее;
- при этом штрих-код не должен находиться слишком далеко, чтобы ошибки определения ориентации не сильно повлияли на полученные после смещения точки;
- Штрих-код не должен быть слишком большим или слишком маленьким;
- Чем их меньше, тем лучше, краска стоит денег.
Поскольку складки могут проходить только по границам треугольников, то внутри них достаточно хранить штрихкоды, желательно с некоторым отступом от края.
Мы всегда можем вписать круг в треугольник, легко узнать его центр и радиус и поместить внутрь него штрих-код. Размеры треугольников, входящих в деление области, накладывают ограничение на максимальный размер штрих-кода.
Конечно, оно не должно занимать поллиста бумаги, но в то же время должно быть видно камере.
Для удовлетворения второго требования нам также необходима информация о видимости треугольников на каждом шаге.
К счастью, это тоже содержится в модели.
Для последнего пункта также потребуется частотный словарь появления треугольников в зоне видимости.
Логично разместить штрих-коды в наиболее часто встречающихся треугольниках и использовать их повторно, тогда их количество резко уменьшится.
На каждом этапе мы ставим каждому треугольнику соответствующую нашим требованиям оценку и выбираем тот, который получил лучшую.
Каждый критерий имеет регулируемую степень влияния (вес), благодаря чему систему можно оптимально настроить.
Также можно выбрать печать на одной или обеих сторонах листа; это определяет, сможем ли мы увидеть подсказку с какой-либо стороны или только с определенной.
Штрих-коды закодированы своими уникальными идентификаторами и используются как ключ для поиска информации о подсказке (тип действия, смещения объектов и т. д.).
Несмотря на все принятые меры предосторожности, штрих-код все же может быть в некоторой степени поврежден, поэтому для восстановления исходных данных в случае их частичного повреждения используется кодирование Рида-Соломона.
О метках и ориентации в пространстве (на наш взгляд, самой интересной детали) мы поговорим в следующей статье.
Теги: #оригами #расширенная реальность #oricrafter #представьте чашку 2011 #представьте чашку #МАИ #Алгоритмы
-
Моделирование Простых Утверждений
19 Oct, 24 -
Страшная Правда О Работе В Сфере It
19 Oct, 24 -
Скетч E01 – 100 Секунд О Nokia
19 Oct, 24