Компания
260,30
рейтинг
24 октября 2013 в 11:03

Разработка → Metaio SDK: дополненная реальность стала полнее


Вот уже течение 10 лет компания Metaio GmbH разрабатывает и совершенствует технологии дополненной реальности (ДР) для ПК и мобильных устройств. Одним из результатов этих титанических усилий стал Metaio SDK – набор инструментов для внедрения элементов ДР в приложения и программы, оптимизированный при поддержке и помощи Intel под ее платформы. Набор, между прочим, совершенно бесплатный! Предлагаем вам поближе познакомиться с этим продуктом и посмотреть, как он работает.

Итак, с помощью инструментов Metaio сложные и ресурсоемкие функции компьютерного зрения, такие, например, как трехмерный трекинг реальных объектов, выполняются на мобильных платформах Intel гладко и ненапряжно. Это означает, прежде всего, что приложения, использующие технологии ДР, будут работать точно и стабильно. Внедрена поддержка многих носимых гаджетов, улучшена визуализация и скорость обработки объектов. К слову сказать, Metaio SDK – единственный SDK в мобильном сегменте, осуществляющий надежный безмаркерный трекинг трехмерных объектов реального мира, как, впрочем, и двумерных. Последняя версия Metaio SDK поддерживает также трекинг по контурам, позволяющий пользователям отслеживать геометрию реальных объектов, что в значительной степени решает проблему непостоянства освещенности.

На сегодняшний день, на портале Metaio зарегистрировано более 60 тысяч разработчиков, использующих продукты компании.
Metaio SDK лежит в основе многих мобильных приложений, использующих ДР, таких как каталог продуктов IKEA на 2012/13 годы, McDonalds McMission и многих других. Рассмотрим в качестве примера, как используется ДР в приложении Audi eKurzinfo. Современный автомобиль чрезвычайно насыщен разнообразными функциями, и разобраться в управлении ими сразу далеко не просто. Audi eKurzinfo позволяет получить мгновенную помощь по агрегатам и органам управления автомобиля Audi; достаточно поднести камеру к интересующему вас объекту, и приложение выдаст справку о нем. Работа системы показана на этом маленьком видеоролике.



Наиболее продвинутый браузер ДР, junaio, также использует в качестве основы Metaio SDK.
Основные характеристики новой версии Metaio SDK 5.0:
  • Доступен для Android, iOS и ПК платформ, поддерживает 2D, 3D, ID и SLAM трекинг;
  • Поддерживает носимые гаджеты Google Glass, Epson Moverio BT-100 и Vuzix M-100;
  • Поддерживает 3D безмаркерный трекинг на основе CAD данных (трекинг по контурам);
  • В 2014 будет добавлен функционал трекинга по лицам;
  • Улучшенное качество визуализации посредством программируемых шейдеров;
  • Встроенный мощный 3D движок, оснащенный многопоточным трекингом и конвейерами рендеринга;
  • Поддержка сложных 3D моделей (более 32 тысячи многоугольников);
  • Простое управление 3D контентом и его отладка (BoundingBox, Normals, Wireframe).

Приведем небольшой учебный пример, показывающий возможности Metaio SDK. Этот и прочие разделы учебника можно изучить на сайте Metaio.
Посмотрим, как расположить различные трекинговые данные, чтобы получилась своя собственная дополненная реальность.
По умолчанию будем использовать безмаркерную конфигурацию. Для начала загрузим нашу 3D модель.

mMetaioMan = metaioSDK.createGeometry(metaioManModel);

Теперь добавим onTouch обработчики для кнопок. Например, для кнопки картинки-маркера обработчик под Android будет таким

public void onPictureButtonClick(View v)
	{
		trackingConfigFile = AssetsManager.getAssetPath("Assets3/TrackingData_PictureMarker.xml");
 		boolean result = metaioSDK.setTrackingConfiguration(trackingConfigFile);  
	}

Для iOS мы внедрили элемент UISegmentedControl, поэтому код будет выглядеть немного по-другому. В AREL (Augmented Reality Experience Language) мы будем использовать функцию jQuery .buttonset(), чтобы создать кнопки в HTML коде и потом навесим на него обработчики нажатий на JavaScript.
Как мы видим, просто исполняя метод setTrackingConfiguration(trackingConfigurationFile), мы получаем новую конфигурацию трекинга.
Обратите внимание, что наша конфигурация для картинки-маркера не содержит ни одного маркера; чтобы быть уверенными, что модель включает обе картинки из тестового задания, мы должны внедрить следующую функциональность, переписав метод onDrawFrame() в случае Android, drawFrame() для iOS и определяя обработчик трекинга для AREL.

@Override
	public void onDrawFrame() 
	{
		super.onDrawFrame();
 
		if (metaioSDK != null)
		{
			// get all detected poses/targets
			TrackingValuesVector poses = metaioSDK.getTrackingValues();
 
			//if we have detected one, attach our metaio man to this coordinate system Id
			if (poses.size() != 0)
				mMetaioMan.setCoordinateSystemID(poses.get(0).getCoordinateSystemID());
 
		}
	}

С помощью первого вызова мы получим все обнаруженные цели и затем, если цель обнаружена, мы соотнесем нашу модель с системой координат цели. В AREL мы пропустили первый шаг, поскольку получили колбэк с трекинговым событием.
И, напоследок, веселое видео от IKEA о дополненной домашней реальности.

Автор: @saul
Intel
рейтинг 260,30

Комментарии (8)

  • +7
    А можно более детальные туториалы?
    • +5
      Если будет интерес хабрачитателей, то сделаем обязательно.
      • 0
        На улице валяется куча готовых систем для дополненной реальности, с API то? Всяко будет интерес! :)
  • 0
    Я только не очень понимаю, как на расстоянии 2-х метров можно распознать такой маленький маркер на журнале.
    • 0
      Как я понимаю, метка на странице ведет к объекту, который будет в дополненной реальности.
      А в качестве метки для отображения — используется обложка журнала.
  • 0
    Есть несколько вопросов.
    1. Это SDK написано на C++?
    2. С какой версии Android можно использовать?*
    • +1
      Их сайт
      Additionally you need an Android device with following minimum features:

      Android 2.2 (Froyo)
      ARMv7 (Cortex) processor
      OpenGLES 2.0 support
      Camera
      GPS (Location), Accelerometer and Magnetic sensors for GPS/Compass based tracking

      Насчет того, на чем оно написано, не нашел, но судя по отсутствию директории jni и установки NDK, либо оно поставляется в виде скомпилированной библиотеки, либо написано не на С++.
  • +2
    Если будет показывать гаишников — в России обеспечен просто феерический старт =)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка