Использование Qualcomm Augmented Reality в приложениях для Android

  • 2,723 views
Uploaded on

Использование Qualcomm Augmented Reality в приложениях для Android, …

Использование Qualcomm Augmented Reality в приложениях для Android,
Борис Трофимов

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,723
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
20
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n \n \n \n Tadaaaaaaaaa...... \n (Dalo) \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n
  • \n \n \n \n \n

Transcript

  • 1. Использование Qualcomm Augmented Reality в приложениях для Android Трофимов Борис Team Lead, SIGMA Ukraine [email_address] Одесская Java User Group http://odjug.blogspot.com/
  • 2. План доклада 1. Что такое Augmented Reality и почему это интересно? 2. Почему мобильная платформа Android? 3. Обзор Qualcomm AR API возможности и ограничения 4. Взгляд на Qualcomm AR API изнутри. 5. Интеграция QCAR с приложением пользователя. 6. Опыт использования QCAR в SIGMA Ukraine. 7. Qualcomm Challenge. 8. Увидеть своими глазами: тестовое приложение ARCheckers.
  • 3. Что такое Augmented Reality и почему это интересно и актуально? Дополненная реальность (англ. augmented reality, AR), — термин, относящийся ко всем проектам, направленным на дополнение реальности любыми виртуальными элементами. Дополненная реальность — добавление к поступающим из реального мира ощущениям мнимых объектов, обычно вспомогательно-информативного свойства.
  • 4. Фантастика, воплощающая реальность Что такое Augmented Reality и почему это интересно?
  • 5. AR. Military Что такое Augmented Reality и почему это интересно?
  • 6. AR. Social Networking Что такое Augmented Reality и почему это интересно?
  • 7. AR. Tourism Что такое Augmented Reality и почему это интересно?
  • 8. AR. Gadgets Что такое Augmented Reality и почему это интересно?
  • 9. AR. Образование и наука Что такое Augmented Reality и почему это интересно?
  • 10. AR. Games Что такое Augmented Reality и почему это интересно?
  • 11. AR. Sport Что такое Augmented Reality и почему это интересно?
  • 12. Just for fun. http://www.livingsasquatch.com/ Что такое Augmented Reality и почему это интересно?
  • 13. Основные строительные кирпичики AR в общем виде
    • Камеры, иногда много камер
    • Данные со спутников, в т.ч. GPS
    • Данные компаса
    • Алгоритмы распознования известных артефактов, такие как trackable surfaces, лица, автомобильные номера, дороги
    Что такое Augmented Reality и почему это интересно?
  • 14. Почему мобильная платформа Android?
    • Мобильный телефон всегда под рукой
    • Относительно легкий способ получить выгоду от использования AR
    • Быстрая разработка ПО, относительно простая интеграция как со сторонними Java и C++ библиотеками
    • Разработанный и простой в использовании Qualcomm AR API
    • Обстоятельные примеры использования QCAR
    Почему мобильная платформа Android?
  • 15. Обзор Qualcomm AR API. Возможности и ограничения
      Qualcomm AR (QCAR) является ярким представителем AR технологий на основе trackable surfaces и данных, снимаемых с камеры мобильного устройства.
    Обзор Qualcomm AR API возможности и ограничения
  • 16. Приблизительный стек приложения AR Обзор Qualcomm AR API возможности и ограничения
  • 17. Что может Qualcomm AR
    • Обрабатывать живой поток с видеокамеры устройства Android
    • Искать в реальном времени заранее известные trackable surfaces
    • На основе найденных trackable surfaces строится модельная система координат
    • Пользователь может в реальном времени строить в модельной системе координат свои 3D объекты с помощью Open GL ES
    • 3D обекты интегрируются в видео поток, который в конце цепочки выводится на экран устройства.
    Это все, что умеет QCAR Обзор Qualcomm AR API возможности и ограничения
  • 18. Управление trackable surfaces
    • Информация о trackable surfaces “зашивается” в приложение
    • Все используемые trackable surfaces должны быть предварительно обработаны через WEB портал Qualcomm
    • Текстуры не должны содержать регулярные элементы
    • Обработанные изображения в специальном формате возвращаются разработчику и готовы к интеграции в приложение
    Обзор Qualcomm AR API возможности и ограничения
  • 19. Виды trackable surfaces Qualcomm AR предлагает три вида поверхностей:
      • Image targets
      • Multi Image targets
      • Рамочные маркеры (Frame markers)
    Взимодействие с реальным миром:
      • подержка виртуальных кнопок
    Общие замечания:
    • Каждая поверхность имеет
    • уникальный ID, по которому можно
    • отследить ее в программе
    • Каждая поверхность имеет свою уникальную
    • систему координат, и информация о ней
    • обновляется в State Object как только изменилось ее положение в пространстве.
    Взгляд на Qualcomm AR API изнутри
  • 20.
      Image targets
    Взгляд на Qualcomm AR API изнутри В качестве Image targets могут выступать любые нерегулярные текстуры, что является преимуществом по сравнению с традиционным QR кодами. Текстурам необязательно содержать специальные черные или белые области QCAR способен одновременно обрабатывать до 5 image targets . Каждый image target имеет уникальный идентификатор.
      Центр координат находится по центру текстуры. После обработки на сервере QCAR возвращает необходимую информацию, в том числе размеры текстуры в модельной системе координат пользователя.
  • 21.
      MultiImage targets
    Взгляд на Qualcomm AR API изнутри MultiImage targets это объекты, состоящие из нескольких Image targets, закрепленных в пространстве в некотором отношении друг к другу. Multi Image Targets могут быть созданы на лету в на основе существующих Image Targets. MultiImage targets идентифицируются и отображаются хотя бы по одной их найденых MultiImage targets.
  • 22.
      Рамочные маркеры
    Взгляд на Qualcomm AR API изнутри Рамочные маркеры (Frame Markers) в отличие от Image Targets в виду простоты не требуют регистрации на TMA. Кроме того привязку к новым frame markers можно совершать в runtime. Маркеры дают прекрасную возможность получить дополнительную информацию в реальном времени. Маркер позволяет вставлять внутрь произвольную картинку. Всего может быть использовано 512 frame markers в приложении, однако одновременно определяться могут только 5. Маркеры доступны как и остальные trackable surfaces через общий список активных поверхностей.
  • 23.
      Виртуальные кнопки
    Взгляд на Qualcomm AR API изнутри Виртуальные кнопки это разработанные разработчиком прямоугольные регионы на Image Targets, которые, когда к ним прикасаются(фактически перекрывают) , генерируют событие нажатия. Виртуальные кнопки могут быть использованы для получения событий таких как нажатие кнопки или определение того что некоторые области в Image Target перекрыты другим объектом. Виртуальные кнопки могут срабатывать только находясь в прямой видимости камеры. Virtual buttons могут создаваться и удаляться в реальном времени и т.о. не требуют регистрации на сервере.
  • 24. Ключевые компоненты QCAR SDK или как происходит процесс рендеринга Взгляд на Qualcomm AR API изнутри 1. Камера 2. Пиксельный преобразователь a) YUV12 в RGB565 b) сжатие потока 3. Tracker 4. State object Объект кеширования (на этом уровне происходит доступ из приложения) 5. Video Background Renderer 6. Application Code 7. Target Resources
  • 25. Что доступно разработчику Интеграция QCAR с приложением пользователя.
    • Высокоуровневый доступ к аппаратным элементам (напр. Camera start/stop)
    • Событийные обработчики (напр. Новый кадр с камеры доступен)
    • Настройка и обработка trackable surface различных типов:
    Image Targets Multi-Image Targets Frame Markers
    • Взаимодействие с внешним миром
    • Virtual Buttons
    • Open GL ES 1.1/2.0 совместимый интерфейс
  • 26. Интеграция с QCAR на уровне приложения
    • QCAR предоставляет API доступ через Android NDK
    • Логика основного приложения должна быть разделена между Android java уровнем и С++ NDK уровнем
    • Инициализация всего приложения происходит на java уровне
    • Два способа взаимодействия логики приложения и QCAR
    Интеграция QCAR с приложением пользователя I II
  • 27. Интеграция QCAR с приложением пользователя Работа с координатами
      QCAR управляет заполнением всех матриц
    • Мировая матрица ModelView зависит от конкретной trackable surface
    • Матрица перспективной проекции зависит от настроек камеры
  • 28. Алгоритм обработки каждого кадра для типичного приложения Работа с QCAR сводится к обработке события отрисовки фрейма, достуа к state object яаляется своего рода транзакционным: JNIEXPORT void JNICALL Java_com_sigma_ukraine_ARCheckers_ImageTargetsRenderer_renderFrame(JNIEnv *, jobject,jint x, jint y) { // Clear color and depth buffer glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Render video background: QCAR::State state = QCAR::Renderer::getInstance().begin(); // Get the projection matrix: const QCAR::Tracker& tracker = QCAR::Tracker::getInstance(); const QCAR::CameraCalibration& cameraCalibration = tracker.getCameraCalibration(); projectionMatrix = QCAR::Tool::getProjectionGL(cameraCalibration, 2.0f, 2000.0f); glEnable(GL_DEPTH_TEST); glEnable(GL_CULL_FACE); for (int i =0;i<state.getNumActiveTrackables();++i) { // Get the trackable: const QCAR::Trackable* trackable = state.getActiveTrackable(i); // get modelView matrix QCAR::Matrix44F modelViewMatrix = QCAR::Tool::convertPose2GLMatrix(trackable->getPose()); Utils::multiplyMatrix(&projectionMatrix.data[0], &modelViewMatrix.data[0] , &modelViewProjection.data[0]); // Your business logic here with trackable object and modelViewMatrix } glUseProgram(shaderProgramID); glDisable(GL_DEPTH_TEST); QCAR::Renderer::getInstance().end(); } Интеграция QCAR с приложением пользователя
  • 29. Опыт использования QСAR в SIGMA Ukraine. Приложение AR-шашки Приложение является экспериментальным проектом и предлагает game play для двоих человек посредством одного устройства. Основные моменты:
    • Был выбран второй способ взаимодействия с Android NDK как наиболее производительный на момент написания приложения
    • QCAR OpenGLES поддерживает не все функции, так не работали вершинные нормали, решение – наложение карты освещенности на текстуры
    • Текущая реализация QCAR библиотеки не позволяла корректно закрывать приложение.
    • Шахматная доска имеет регулянную структуру.
  • 30. Qualcomm Challenge 2010
      Призовой фонд
    • 1st Place: $125,000, Paparazzi
    • 2nd Place: $50,000, Inch High Stunt Guy
    • 3d Place $25,000, Danger Copter
    Опыт использования QСAR в SIGMA Ukraine.
  • 31. Спасибо за внимание
      http://developer.qualcomm.com/dev/augmented-reality
    Qualcomm AR Home Page
      http://www.youtube.com/watch?v=fkIhS-zrCd4&NR=1
    Qualcomm Challenge 2010
      https://ar.qualcomm.com/qdevnet/developer_guide
    Qualcomm AR Developer Guide