Реализация мультимаркера ARToolkit на андроиде

Проект Android, который может считывать разные маркеры (несколько) и предоставлять разные выходные данные (видео) для каждого отслеживаемого маркера.

Чего мы достигли на данный момент: 1) Мы использовали пример проекта, представленный в ARToolkit (ARMultiProj), для отслеживания нескольких маркеров, он отслеживает только один маркер.

Что нам осталось сделать:

1) мы пытаемся реализовать концепцию отслеживания нескольких маркеров для воспроизведения разных видео при отслеживании разных маркеров с использованием NFT.

2) Я использовал ARMultiProj прямо из коробки из примеров проектов студии Android, поставляемых с ARToolkit 5.3.2, и именно здесь ARMultiProj не смог обнаружить несколько трекеров, вместо этого он все время отслеживал только один.

В данном случае это кубики для 6 маркеров в следующем;

Marker.dat

количество распознаваемых шаблонов

6

маркер 1

а.патт

40.0

1.0000 0.0000 0.0000 0.0000

0.0000 1.0000 0.0000 0.0000

0.0000 0.0000 1.0000 0.0000

маркер 2

б.патт

40.0

1.0000 0.0000 0.0000 100.0000

0.0000 1.0000 0.0000 0.0000

0.0000 0.0000 1.0000 0.0000

маркер 3

с.патт

40.0

1.0000 0.0000 0.0000 200.0000

0.0000 1.0000 0.0000 0.0000

0.0000 0.0000 1.0000 0.0000

маркер 4

д.патт

40.0

1.0000 0.0000 0.0000 0.0000

0.0000 1.0000 0.0000 -100.0000

0.0000 0.0000 1.0000 0.0000

маркер 5

ф.патт

40.0

1.0000 0.0000 0.0000 100.0000

0.0000 1.0000 0.0000 -100.0000

0.0000 0.0000 1.0000 0.0000

маркер 6

г.патт

40.0

1.0000 0.0000 0.0000 200.0000

0.0000 1.0000 0.0000 -100.0000

0.0000 0.0000 1.0000 0.0000

Для понимания и удобства я поместил ниже конкретный лог из проекта.

Журналы:

E/ARToolKit: маркер config():multi;Data/multi/marker.dat

E/libARWrapper: ARController (нативный): [info] Добавлен маркер (UID=0), всего загружено маркеров: 1.

E/libARWrapper: ARController (нативный): [info]Маркер 0 теперь виден

E/libARWrapper: ARController (нативный): [info]Маркер 0 больше не виден

Как вы можете видеть выше, проект может отслеживать и создавать активы из папок assets/data/multi различных файлов patt вместе с camera_para.dat и marker.dat, но не отслеживает другие маркеры.

Пожалуйста, предоставьте мне некоторые рекомендации по возможной реализации для достижения вышеуказанного сценария с фрагментами кода и точными изменениями в файлах ARToolkit (если требуется). Заранее спасибо!

С уважением и благодарностью,

Ганешан П.


person Ganeshan palanichamy    schedule 01.11.2016    source источник
comment
Не могли бы вы предоставить файл marker.dat, чтобы мы могли увидеть, как вы настроили отслеживание нескольких маркеров? Также я не понимаю часть 2) и SimpleRenderer. Что не загружается? Чего вы пытаетесь достичь?   -  person Thor_Bux    schedule 02.11.2016
comment
@Thor_Bux Спасибо за попытку помочь мне. Я обновил свой вопрос на основе вашего комментария. Пожалуйста, проверьте это и предоставьте свой вклад. Спасибо.   -  person Ganeshan palanichamy    schedule 02.11.2016
comment
Просто для моего окончательного понимания, вы используете ARMultiProj с указанным выше marker.dat. Никаких других изменений? Вы пробовали ARMultiProj без каких-либо изменений? Это работает для вас? Спасибо   -  person Thor_Bux    schedule 03.11.2016
comment
@Thor_Bux Да .. Я пытался запустить проект как в примере с Android .. но все, что произошло, это то, что он просто отследил один файл patt и нарисовал куб только поверх .patt .. Как вы можете видеть выше в журналах вопросов , общее количество загруженных маркеров: 1. Не могли бы вы дать некоторое представление об этом?   -  person Ganeshan palanichamy    schedule 04.11.2016
comment
Кроме того, из любопытства можно ли изменить элемент рендеринга куба на изображение или видео..? Если да, можете ли вы пролить свет на это.   -  person Ganeshan palanichamy    schedule 04.11.2016


Ответы (1)


Из того, что я понял, у вас есть небольшое неправильное представление об этом примере проекта. Это демонстрирует использование «мультимаркеров». Смотрите этот сайт для краткого объяснения маркеров.

Обзор маркеров дополненной реальности см. здесь

Мультимаркер отображает только 1 объект, но только один из маркеров должен быть полностью видимым.

В вашем случае вам может быть лучше взять ARNativeOSG или nftBookProj в качестве основы. Оба примера имеют как минимум два маркера примера.

ARNativeOSG предназначен для отображения моделей OSG на маркерах кадров, но его действительно легко модифицировать. Просто посмотрите в assets/Data/marker.dat и assets/Data/objects.dat. Это оба текстовых файла. Просто поместите свои маркеры в marker.dat и соедините их в objects.dat.

Если вы настаиваете на использовании NFT, взгляните на nftBookProj. У него почти такой же макияж. Найдите эти файлы в src/main/assets/Data. Каждый из них содержит примеры того, как их использовать. Будьте в курсе. Хотя ARToolkit поддерживает NFT, я не считаю его таким надежным, как маркеры кадров.

Пример NFT markers.dat

# Number of markers
1  // <--- Amount of markers. Important to change if you add more

# Entries for each marker. Format is:
#
# Name of pattern file (relative to this file)
# Marker type (SINGLE)
# Marker width in millimetres (floating point number)
# Optional tokens:
#     FILTER [x]   Enable pose estimate filtering for the preceding marker
#                  x (optional) specifies the cutoff frequency. Default
#                  value is AR_FILTER_TRANS_MAT_CUTOFF_FREQ_DEFAULT, which
#                  at time of writing, equals 5.0.
# A blank line

../DataNFT/pinball // <-- Position of marker relativ to this file
NFT                // <-- Type
FILTER 15.0        // <-- Extra option. I think it reduce jittering

Пример object.dat:

2 // <-- amount of objects. Important to change

../OSG/axes.osg  //position relativ to file
0.0 0.0 0.0      //Translation in regards to the marker
0.0 1.0 0.0 0.0  //Rotation in regards to the marker
40.0 40.0 40.0   //Zoom
MARKER 1         //This refers to the Position in marker.dat
LIGHTING 0       //Some added options. Actually no idea what this does

../OSG/p51d-jw-animated.osg
4.5 118.25 30.0
90.0 1.0 0.0 0.0
25.0 25.0 25.0
MARKER 1         //This object appears together with the first on on the same marker

Я надеюсь, что это полезно.

person Senador    schedule 15.11.2016
comment
Предположим, у меня есть 3 маркера и моя анимированная позиция osg, и все должно быть таким же, как у маркера 1, поэтому мне нужно снова и снова дублировать эти факторы для каждого отдельного маркера? - person Vikrant_Dev; 21.11.2017