Artoucher | Try-On in Augmented RealityMaxim ShchennikovПриложение ARTOUCHER дает уникальные возможности для пользователей мобильных устройств - каждый может по-новому изучить и примерить товар интернет-магазина, воспользоваться интерактивными трехмерными иллюстрациями, удивиться уникальным форматам рекламы, познакомиться с редкими экспонатами.
ARTOUCHER - это возможность изучать с помощью мобильного устройства любой объект так, словно он находится рядом, даже когда его нет в действительности.
Для работы в дополненной реальности вам необходимо:
1) запустить приложение на своем устройстве,
2) выбрать понравившийся объект,
3) дождаться загрузки модели и наслаждаться результатом.
В дополненной реальности приложение поддерживает два режима работы:
1) Маркерный - предполагает использование специального изображения-маркера, поверх которого будет размещаться модель. По мере движения устройства в пространстве объект также будет менять своё положение, за счёт чего достигается эффект присутствия модели. В качестве маркера вы можете использовать встроенное изображение (его можно скачать через приложение в фотогалерею устройства), или создать с помощью приложения свой собственный маркер из подручного изображения.
2) Безмаркерный - после загрузки выбранная модель будет отображена на экране устройства поверх видеопотока. Вы можете перемещать её в пространстве посредством касаний, вращать и изменять масштаб. Однако объект не будет менять своё местоположение по мере движения устройства. Данный режим удобно использовать в тех случая�
A Survey of Augmented RealityMark BillinghurstA presentation given by Mark Billinghurst on April 21st 2015 at the CHI 2015 conference. This talk presents highlights from the journal paper:
M. Billinghurst, A. Clark, and G. Lee. A Survey
of Augmented Reality, Foundations and
Trends in Human-Computer Interaction.
Vol. 8, No. 1 (2015) 1–202, 2015
Available at :http://www.nowpublishers.com/article/Details/HCI-049
VRability - презентация проекта в VR360Moscow IFFПрезентация проекта VR360
VRability - Первый российский VR 360 проект, использующий виртуальную реальность для мотивации людей с инвалидностью к большей активности в реальной жизни. Подробнее о проекте - www.vrability.ru
Sql server 2019 New Features by Yevhen NedaskivskyiAlex TumanoffSQL Server 2019 introduces several new high availability and disaster recovery features such as support for up to 5 synchronous replicas in an Always On availability group and improved connection redirection capabilities. It also enhances PolyBase integration and provides new options for certificate management across instances. Additional new features include support for persistent memory, columnstore index improvements, and resumable online index operations.
Odessa .net-user-group-sql-server-2019-hidden-gems by Denis ReznikAlex TumanoffThis document discusses hidden gems in SQL Server 2019, including lightweight query profiling, DBCC PAGE, dm_os_host_info, dm_os_schedulers, and QUERY OPTIMIZER COMPATIBILITY LEVEL. It provides demos of these lesser known features and notes that the string truncation error message is one of the most well-known hidden features. The author concludes that more hidden features will continue to be added to SQL Server.
Azure data bricks by Eugene PolonichkoAlex TumanoffThis document provides an overview of Azure Databricks, including:
- Azure Databricks is an Apache Spark-based analytics platform optimized for Microsoft Azure cloud services. It includes Spark SQL, streaming, machine learning libraries, and integrates fully with Azure services.
- Clusters in Azure Databricks provide a unified platform for various analytics use cases. The workspace stores notebooks, libraries, dashboards, and folders. Notebooks provide a code environment with visualizations. Jobs and alerts can run and notify on notebooks.
- The Databricks File System (DBFS) stores files in Azure Blob storage in a distributed file system accessible from notebooks. Business intelligence tools can connect to Databricks clusters via JDBC
Java 8 in action.jinq.v.1.3Alex TumanoffThis document provides an overview and agenda for a presentation on Java 8 features and the Jinq library. It discusses Java 8 language features like lambda expressions and default methods. It then describes Jinq, an open-source library that allows functional-style database queries in Java by translating Java code into SQL. The document outlines how Jinq works, its configuration, supported query operations like filtering, sorting and joins, and limitations. It also briefly mentions alternative libraries like JOOQ.
"Drools: декларативная бизнес-логика в Java-приложениях" by Дмитрий Контрерас...Alex Tumanoff"Drools: декларативная бизнес-логика в Java-приложениях" by
Дмитрий Контрерас, Senior Java Developer, Luxoft
Spring.new hope.1.3Alex TumanoffThis document discusses Spring Boot, a framework for creating stand-alone, production-grade Spring based applications that can be "just run". Spring Boot focuses on using sensible default configurations and automatic configuration so that developers can focus on the business problem rather than infrastructure. It provides features like embedded Tomcat/Jetty servers, auto configuration of Spring and third party libraries, actuator endpoints for monitoring apps, and works with properties files, environment variables and JNDI. The document also covers Spring configuration, annotations, issues, Groovy, environment configuration, initialization, auto-configuration classes, properties, and the health and metrics endpoints of Spring Boot Actuator.
Sql saturday azure storage by Anton VidishchevAlex TumanoffThis document provides an overview of Windows Azure Storage, including its internals and best practices. It describes the key abstractions in Azure Storage like blobs, disks, tables, and queues. It then discusses the internal architecture and design goals around high availability, durability, and scalability. Specific topics covered include storage stamps, the partition layer, dynamic load balancing, and availability with consistency for writing and reading. The document concludes with best practices for .NET, blobs, tables, queues, and general usage of Azure Storage.
Serialization and performance by Sergey MorenetsAlex TumanoffThe document discusses serialization frameworks in Java and compares their performance. It provides an overview of popular serialization frameworks like Java serialization, Kryo, Protocol Buffers, Jackson, Google GSON, and others. Benchmark tests were conducted to compare the frameworks' speed of serialization and deserialization, as well as the size of serialized objects. Kryo with optimizations was generally the fastest, while Protocol Buffers was very fast for simple objects. The document concludes with recommendations on when to use different frameworks.
Игры для мобильных платформ by Алексей РыбаковAlex TumanoffUnity is a game engine that was first released in 2005 and now has over 2 million registered developers. It supports development for platforms like Windows, Mac, Linux, iOS, Android, PlayStation, and Xbox. The free version of Unity has limitations like revenue caps, while the Pro version costs $1,500 per year. Installation involves downloading a 1-3GB package that expands to 3-4GB on disk. Unity uses C# and JavaScript for scripting and supports 3D formats from applications like 3DS Max and Photoshop. The engine includes tools for building applications targeting different platforms like iOS. Popular games built with Unity include Angry Bots and Epic Citadel.
Android sync adapterAlex TumanoffThis document provides an overview of developing Android client apps using SyncAdapter. It discusses the key components involved - Account, ContentProvider, and SyncAdapter. It outlines the basic workflow and issues to consider with sync caching. Puzzles involved with implementing each component are described, along with code samples and documentation resources. Pros and cons of the SyncAdapter framework are presented.
VRability - презентация проекта в VR360Moscow IFFПрезентация проекта VR360
VRability - Первый российский VR 360 проект, использующий виртуальную реальность для мотивации людей с инвалидностью к большей активности в реальной жизни. Подробнее о проекте - www.vrability.ru
Sql server 2019 New Features by Yevhen NedaskivskyiAlex TumanoffSQL Server 2019 introduces several new high availability and disaster recovery features such as support for up to 5 synchronous replicas in an Always On availability group and improved connection redirection capabilities. It also enhances PolyBase integration and provides new options for certificate management across instances. Additional new features include support for persistent memory, columnstore index improvements, and resumable online index operations.
Odessa .net-user-group-sql-server-2019-hidden-gems by Denis ReznikAlex TumanoffThis document discusses hidden gems in SQL Server 2019, including lightweight query profiling, DBCC PAGE, dm_os_host_info, dm_os_schedulers, and QUERY OPTIMIZER COMPATIBILITY LEVEL. It provides demos of these lesser known features and notes that the string truncation error message is one of the most well-known hidden features. The author concludes that more hidden features will continue to be added to SQL Server.
Azure data bricks by Eugene PolonichkoAlex TumanoffThis document provides an overview of Azure Databricks, including:
- Azure Databricks is an Apache Spark-based analytics platform optimized for Microsoft Azure cloud services. It includes Spark SQL, streaming, machine learning libraries, and integrates fully with Azure services.
- Clusters in Azure Databricks provide a unified platform for various analytics use cases. The workspace stores notebooks, libraries, dashboards, and folders. Notebooks provide a code environment with visualizations. Jobs and alerts can run and notify on notebooks.
- The Databricks File System (DBFS) stores files in Azure Blob storage in a distributed file system accessible from notebooks. Business intelligence tools can connect to Databricks clusters via JDBC
Java 8 in action.jinq.v.1.3Alex TumanoffThis document provides an overview and agenda for a presentation on Java 8 features and the Jinq library. It discusses Java 8 language features like lambda expressions and default methods. It then describes Jinq, an open-source library that allows functional-style database queries in Java by translating Java code into SQL. The document outlines how Jinq works, its configuration, supported query operations like filtering, sorting and joins, and limitations. It also briefly mentions alternative libraries like JOOQ.
"Drools: декларативная бизнес-логика в Java-приложениях" by Дмитрий Контрерас...Alex Tumanoff"Drools: декларативная бизнес-логика в Java-приложениях" by
Дмитрий Контрерас, Senior Java Developer, Luxoft
Spring.new hope.1.3Alex TumanoffThis document discusses Spring Boot, a framework for creating stand-alone, production-grade Spring based applications that can be "just run". Spring Boot focuses on using sensible default configurations and automatic configuration so that developers can focus on the business problem rather than infrastructure. It provides features like embedded Tomcat/Jetty servers, auto configuration of Spring and third party libraries, actuator endpoints for monitoring apps, and works with properties files, environment variables and JNDI. The document also covers Spring configuration, annotations, issues, Groovy, environment configuration, initialization, auto-configuration classes, properties, and the health and metrics endpoints of Spring Boot Actuator.
Sql saturday azure storage by Anton VidishchevAlex TumanoffThis document provides an overview of Windows Azure Storage, including its internals and best practices. It describes the key abstractions in Azure Storage like blobs, disks, tables, and queues. It then discusses the internal architecture and design goals around high availability, durability, and scalability. Specific topics covered include storage stamps, the partition layer, dynamic load balancing, and availability with consistency for writing and reading. The document concludes with best practices for .NET, blobs, tables, queues, and general usage of Azure Storage.
Serialization and performance by Sergey MorenetsAlex TumanoffThe document discusses serialization frameworks in Java and compares their performance. It provides an overview of popular serialization frameworks like Java serialization, Kryo, Protocol Buffers, Jackson, Google GSON, and others. Benchmark tests were conducted to compare the frameworks' speed of serialization and deserialization, as well as the size of serialized objects. Kryo with optimizations was generally the fastest, while Protocol Buffers was very fast for simple objects. The document concludes with recommendations on when to use different frameworks.
Игры для мобильных платформ by Алексей РыбаковAlex TumanoffUnity is a game engine that was first released in 2005 and now has over 2 million registered developers. It supports development for platforms like Windows, Mac, Linux, iOS, Android, PlayStation, and Xbox. The free version of Unity has limitations like revenue caps, while the Pro version costs $1,500 per year. Installation involves downloading a 1-3GB package that expands to 3-4GB on disk. Unity uses C# and JavaScript for scripting and supports 3D formats from applications like 3DS Max and Photoshop. The engine includes tools for building applications targeting different platforms like iOS. Popular games built with Unity include Angry Bots and Epic Citadel.
Android sync adapterAlex TumanoffThis document provides an overview of developing Android client apps using SyncAdapter. It discusses the key components involved - Account, ContentProvider, and SyncAdapter. It outlines the basic workflow and issues to consider with sync caching. Puzzles involved with implementing each component are described, along with code samples and documentation resources. Pros and cons of the SyncAdapter framework are presented.
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior So...Alex Tumanoff"AnnotatedSQL - провайдер с плюшками за 5 минут"
Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
Patterns of parallel programmingAlex TumanoffThis document discusses patterns of parallel programming. It begins by explaining why parallel programming is necessary due to limitations of Moore's Law like power consumption and wire delays. It then covers key terms and measures for parallel programming like work, span, speedup and parallelism. Common patterns are overviewed like pipeline, producer-consumer, and Map-Reduce. It warns of dangers like race conditions, deadlocks and starvation. Finally, it provides references for further reading on parallel programming patterns and approaches.
Использование Qualcomm Augmented Reality в приложениях для Android
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