Augmented reality (AR) is the environment with direct or indirect digital data amplification to the physical world in real time, done with the help of computers, tablets, smartphones, and wearables, powered by the specific software.
The technologies of a simultaneous user interaction with real and virtual worlds, only rely on the hearing and eyesight. But with the future AR systems being able to transmit the tactile feel, the application field of those might reach beyond just the information and entertainment industries. The potential of these technologies is enormous.
Augmented Reality in Mobility
There are multiple software solutions for mobile devices, allowing to get the necessary information about the surroundings by means of augmented reality. Also, there are AR browsers and special services and companies, as well as unique models.
The sheer growth of the technology and the increasing popularity among users is associated with the fact that computations capacity and augmented reality sensors of the hardware platforms for smartphones and tablets, can overlap any digital data on the real-time image from the device cameras. Some of the solutions in the AR industry are externalized by the so-called wearables, or smart clothes, providing the continuous contact with the augmented environment.
Where To Apply Augmented Reality
There already are video games capable of processing a visual signal from the cameras and overlapping the real world projection with augmentation elements. For example, in 2014, the mobile video game, called Mosquitos was released to become one of the first AR games. The picture from the phone camera was overlapped with a scope and huge mosquitos that a player had to shoot.
Today augmented reality video games for mobile devices and gaming consoles are bigger than ever. By the middle of 2016, the mass hysteria bought the Pokémon Go game to the public attention worldwide. The multiplayer global mobile video game where you catch the pokemons in the augmented reality on the real locations everywhere on the planet.
With the use of virtual and augmented reality in college and university education, students can interact with the entities they study in the virtual space.
The modern laparoscopic surgeries have the picture of endoscope augmented with the image, received during the intraoperative angiography. This allows a surgeon to know exactly where the tumor is inside the organ, which minimizes the loss of a healthy organ tissue during the surgery.
Modern military equipment is often supplied with indicators on displays and helmets. The indication enables an operator to receive important information overlapped with the current setting without the distraction to any type of dashboard. This saves valuable seconds during variously engaged maneuvers.
Augmented reality has been actively used in printing due to the popularity of the so-called Augmented Reality Browsers like Wikitude, Layar, blippAR, and so on. Newspapers, magazines, books, brochures, and even maps are equipped with images that work as markers for the consequent digital object rendering. Any sort of text, image, video, audio, 3D objects, or various static and dynamic digital data can be used as the augmenting information. With the help of browsers installed on tablets and phones, users scan the markers to gain access to the augmented content.
Augmented Reality Development SDKs
Augmented Reality software is very diverse. Among multiple solutions I would like to point out the following ones available today:
- Metaio SDK
Vuforia is one of the most popular AR development solutions in the world.
Supported platforms: Android, iOS, UWP, Unity.
Vuforia is capable of fulfilling the following functions: recognizing different types of visual objects (cube, cylinder, flat surface) recognizing text and environment, VuMark cultivation (a combo of an image and a QR-code). Besides just that, by using Vuforia Object Scanner, you can scan and create object markers. The recognition process can be actualized by the usage of the local or cloud database. The Unity plugin is a powerful and easily integrable tool.
Metaio SDK is a set of tools for AR element implementation for apps and programs, optimized with the help of Intel and its platform. This kit is 100% free.
With the help of the Metaio tools, the complex and resource-intensive functions of computer sight, like 3D tracking of the real objects, are performed smoothly and tense-free on the Intel-based mobile platforms. This means, first of all that the apps using the AR technologies are going to work precisely and consistently. The support of multiple wearables and better object rendering speed add to the benefits of this solution. Metaio SDK is the only kit in the mobile segment, capable of tracking marker-free three-dimensional (and two-dimensional) objects of the real world. The latest version of Metaio SDK also supports the outline tracking, which enables users to trace the real object geometry, which is a possible solution to the inconsistent lighting problem.
Supported platforms: Android, iOS, smartglasses.
Wikitude SDK 6 has the following features under its belt: excellent image recognition, the three-dimensional tracing technology, based on SLAM, GEO Data (the enhanced way to handle the geotag data), cloud recognition. The Unity plugin provides the tools for image and 3D objects database creation. Wikitude is not compatible with the Unity Editor, which slows down the development process significantly.
ARToolKit is an AR tracking library with open source code.
Supported platforms: Android, iOS, Linux, Windows, OS X, and smartglasses.
ARToolKit translates the following actions:
- Positional/orientational tracking for the devices with regular and telescopic cameras.
- Tracing simple black squares.
- Tracing flat images.
- Camera and stereoscopic optics calibration.
- Unity and OpenSceneGraph plugins.
- VR helmets and glasses support.
- Free software with open source code.
- Sustainable speed for real-time augmented reality applications.
According to the various reviews and comparisons in effectiveness, Kudan is the main competition for Vuforia and is noticeably easier in the development of AR.
Supported platforms: Android, iOS.
By using the SLAM technology, Kudan recognizes simple images and 3D objects and provides easy database generation in the Unity Editor.
Following the pros and cons of these tools, I decided to look into Vuforia SDK more closely. The reasons are:
- It supports the Unity plugin and it’s possible to integrate the project with Android Studio.
- Great technical support, a lot of tutorials and manuals.
Vuforia SDK Review
Vuforia by Qualcomm is the solution that enables the devices to “see”. It is made primarily for the developers experiencing the need to add vision abilities to their apps.
There are three basic cases to use Vuforia in – games, shopping, and additions to the non-electric commodities.
Vuforia Shopping Case
Let’s start with shopping. The apps created with the help of the Vuforia engine, enable users to see what the item is going to look like in their apartment before they even buy the item.
Moreover, you can change color, size, and placement of the items. For example, the Sony app allows users to try the TV on by putting it on the wall or the surface. What’s cool is the TV doesn’t just get stuck to the wall, but you can walk around the apartment with your phone and look at the augmented TV from different angles and distance.
Vuforia Gaming Case
Augmented reality games have established themselves as a solid part of the industry. However, the technology keeps forging ahead.
This year Vuforia mastered the camera, recognizing the depth of the spacial dimension (kind of like Kinect). The technology is called Smart Terrain and is capable of not only projecting the objects on the flat surfaces but also use the three-dimensional space by creating the virtual reality around the subjects within the range of vision.
Vuforia Non-Electric Commodity Case
The last use scenario allows connecting regular commodities and digital devices. This might be an interactive addon to the package or a printed media, additional information to which is available in a special app.
The image registration capability enables developers to place and align virtual objects like 3D models and media content in junction with the real images when viewed through the mobile device cameras. A virtual object is oriented on the real image in a way that the viewer’s standpoint is dynamic which creates the main effect – the presence of a virtual object in the real world.
Vuforia supports different two-and three-dimensional targets, including the markerless Image Target, three-dimensional targets, called Multi-Targets, as well as benchmarks detaching objects to recognize in the scene. The additional functions include obstacle detection with the use of the Virtual Buttons, detecting targets, and the ability to create and configure targets within the self-modifying code.
Vuforia provides application programmable UIs in C++, Java, Objective-C, and .NET through the Unity game engine. The core of the platform is the QCAR library, written in C++. It hides everything behind its UIs – from target definition to image rendering.
Besides the library, the platform includes iOS and Android Vuforia SDK for developers, Target Manager – the system for target creation and management, and a set of web services (Vuforia Web Services) where you can delegate the target storing and some other functionality. This platform is developing at a rapid pace and new parts are added quite often.
Augmented Reality Targets
In order to add something to the real world, you have to catch hold of some object. Targets are there for this very reason. In other words, targets are real objects, recognized by the app and with the help of which the app can put virtual objects in the appropriate places and in the correct ratio.
Vuforia offers a wide variety of targets:
The basic type of targets presented as regular images like a photo for a cover magazine. The image functions as a two-dimensional barcode but with no black & white regions.
Simple 3D targets (Cube and Cuboid)
The targets in the shape of rectangular box (3D cube). For example, a match box can work as such a target.
This type of targets is presented as a cropped cone with editable basis parameter.
Text (word targets)
The Vuforia library is capable of text recognition, so any word or phrase can be a target. At this point, only Latin characters are supported.
Depending on the amount of targets your app requires, you can either store them in the Device Database, always having access to them, and recognize them directly in the device, or delegate part of this load to Cloud Databases, the service from the Vuforia Web Services, made to keep the targets and define them based on the device input data.
Besides just that, targets can be created in the app using the picture from the camera. It’s important to say that QCAR does not require the entire target to fit into the frame. In order to recognize and use it, even part of the target is enough. This is huge, as it enables multi-angle magical operation of your app.
Vuforia suggests that we use the following instruments:
- Static and dynamic 3D models. We can add any 3D object.
- Virtual buttons. And real objects that are going to be interacting with those. For example, it can be a target button that starts some action that can only be seen through the screen of a smartphone.
- Videos and images. They allow replacing the target and making it a bit more alive.
- Background change. Besides all the rest, you can change the picture from the camera. I mean it might not only be augmenting the picture, but also operate with it.
In my Vuforia research, I created a test project using the Unity environment.
This test project presents the core capabilities of the Vuforia platform. As an image target, I used a brochure. On camera target focus, new elements are added to that target in shape of a new brochure that partially overlaps it, a 3D zombie model, a video player window, and a virtual button that starts the zombie object animation. Tapping the Play display button starts playing the test video. Hovering the finger over the “Push me” button starts the zombie model animation and resting the finger off the button stops it.
This project is available on GitHub.