An Augmented Reality Mobile System for Products Display

Digital Marketing, Augmented Reality, and Mobile Computing are three technology trends dominating the commerce world. The work presented in this paper is the design and development of an augmented reality mobile system for point-of-sale products display/presentation, a system that provides information beyond what could be elaborated on the product package in an innovative way, beneficially bringing together the three dominating trends. Our mobile system consists of an Android application and a web service providing product information. The augmented reality technology employed is marker-based using QR codes as fiducial markers. After a marker is read, it is identified from the marker database by the marker detection algorithm. The 3D pose estimation is performed, and product information, in the form of a virtual image retrieved from the content database, is rendered live over the product in the device’s camera view. The application sends requests to the designated websites or to the developed web service to retrieve more details of the product. The system prototype for food is implemented, and food recipes along with manufacturing information of the products are offered.


Introduction
There is a certain amount of truth in the saying that Information Technology has become an integral part of our lives. Three technological trends currently dominate and bring on success to the commercial world -Digital Marketing, Augmented Reality, and Mobile Computing. Digital marketing is becoming a major key component in driving sales of products and services. For two decades, the concept of Augmented Reality (AR), which combines real-world environment to the virtual objects, has been evolving impressively. We have seen ever-growing use of AR as major parts of many commercial products, for example, the famous Google Glass (1) . At the same time, smartphones and tablets fast-paced adoption has brought more entertaining and more convenient new experiences to consumers.
In this paper, we bring the three dominating trends together. Instead of a point-of-sale physical product display, we propose a digitized product display in the form of a native Android application by simulating virtual images, in our case, product information, and overlaying the images on the real-world view, the view of the product on the shelf. What we developed is a mobile product advertising and presentation system that is believed to add values to products and to offer insights to potential customers. In our paper, mobile devices usually refer to smartphones and tablets alike, which are more mass-market and extremely out-number the wearable computers. Subsequent sections of the paper are presented as followed. Section 2 discusses the technology and related work. Section 3 describes the system design and architecture of our mobile system, while Section 4 describes the implementation and the prototype. We conclude and outline future work in Section 5.

Related Work
In recent work, Geroimenko (2) defined that Augmented Reality is a real-time device-mediated perception of a real-world environment that is closely or seamlessly integrated with computer-generated sensory objects. In our system, the real world environment is the presence of physical products, and the computer-generated objects are images or texts, rendered through mobile devices' video camera display. AR applications can be classified as marker or marker-less systems with prolific examples of the former such as ours and the latter emerging.
AR is being used in a great range of application areas, from serious fields as in medical or scientific computing to sport and entertainment systems as in games, many of which are promising or already commercial successes. For mobile applications, we have seen numerous examples as well. Ubi-REHAB (3) , an Android-based portable AR, uses motion data from a specialized glove (eGlove) to enhance the recovery of patients with stroke. Doctors can look though patients' bodies in operation incredibly on an iPad with MITK pille (4) , a mobile medical image AR application. ViewAR (5) is a suite of iOS applications that allows users to lay out customized or pre-built objects in the current scene, mostly used in interior or exterior designs. Some applications focus on translating text live in natural scenes, e.g.
TranslatAR (6) , CamDictionary (7) , and the most-talked-about Word Lens (8) in both iOS and Android. ARAPPLI (9) is a social application in which friends can send 3D gifts to friends to be played in a camera-viewed real environment. Moreover, ARkanoid (10) handheld game brings unique 3D game ambient of the classic virtual game objects immersing in real world.
Above examples are task-specific AR applications for task-specific users. Our AR work is based on the Android platform and is for users who buy productsour target users, and that is almost everyone, although our current design is only for products packaged with specific fiducial markers. In some applications discussed earlier, specific environment has to be set up, e.g. creating and posting markers at designated places. For our application, the environment is already present in the current world, i.e. the product on the shelf and the marker on the product package.
In the business of selling, there are also rising flows of companies using AR to show off their products. IKEA (11) adds an AR experience to its new edition catalog with new features that let consumers access films, interactive experiences and photo galleries with their smartphones. LEGO (12) stores run preview kiosks for customers showing what are inside their model boxes in 3D. blippAR (13) partners with famous retail brands to augment ads, articles, logos, and labels to products images without the need of markers. Reviews for blippAR are rather mixed; with good reviews from its excellent 3D user experience, but bad reviews from its error-proning nature. Our AR system is more generic and aims toward the large-scale consumers of any products in any retail stores.

System Design and Architecture
In this section, we explicate how our system is designed and why it is so. The objective of our system is to utilize the AR technology on a mobile platform to present/advertise products, to provide comprehensive product information to potential customers (Note: products include services). We chose Android, with its large market share, as the mobile platform for our system because Android applications can be developed in either PC, Mac or Linux and developer tools can be acquired easily. On the other hand, QR (or Quick Response) codes are rapidly going mainstream and increasingly gaining acceptance among consumers, especially and powerfully, among mobile consumers. We can see a large number of products and services coming up with marketing campaigns that directly exploit QR codes as communicating media. Hence, QR codes are used as the fiducial markers for our AR application. Most mobile applications are able to detect and decode data from QR codes. These applications later direct the user to another page or call another application to further process the data. In contrast, our application places product information on-the-fly right over the QR code in real time, thanks to the AR technology.
To provide detailed information of a product, it is inevitable for "More…" menu because one monitor screen is inadequate. Since World Wide Web is the biggest source of information, our system is developed to retrieve and present related information of the product from the internet through several websites. Those retrieved information could be the manufacturing companies and processes, ingredients, instructions, benefits, and reviews, just to name a few. Nevertheless, keeping fault tolerant in mind, the designated websites may not be available from time to time. Our solution is to develop a backend web service that provides an alternative source of information. Figure 1 shows the entire system architecture. The system consists of a native Android application and a product information web service. The Android application reads a QR code on a product package via the device's video camera, processes the QR code and renders product information onto the product. If the user selects a menu, the Android application tries to get more information from the internet according to the product category. In case of a failure, the Android application connects to the product information web service to retrieve and display information related to the product.

System Development
In this section, system implementation and prototype development are presented. Details are divided into the following subsections: the front-end native Android application, the backend product information web service, and the prototype.

Android Application
The basis of the marker-based AR technology on a mobile platform composes of a video camera, a marker, a screen display, and an image processor. The Android application is basically the image processor and renderer. Our mobile AR system is marker-based, utilizing the popular QR codes.
The essential processing steps are separated into three phases depicted in Figure 2. Firstly, once the QR code is positioned in the camera by the user, the application captures the QR code image and tries to search for the equivalence in the marker database. This is called the image analysis phase or the marker detection phase, i.e., to recognize the image, and determine which product the QR code belongs to. Next, the position of the marker is calculated corresponding to the position of the camera in the 3D space. The coordination system used is in the matrix system. This is to determine the pose, i.e., the position and the orientation of the marker, in the camera frame, the so-called pose estimation phase. Lastly, the virtual object(s), mostly 3D model(s), from the content database that matches with the QR code is overlaid above the QR code in the camera perspective, again using the computed position in the second phase. This third phase is called the image rendering phase. These three phases are done simultaneously in real time because the user can move his/her camera (the mobile device) such that the image is distorted, or the size and the position are changed, and therefore, the computation is to be redone.
Fortunately, we do not need to implement the whole processes described above from the ground. There are a number of open-source AR frameworks that we can use. We selected Vuforia™ SDK (14) , which supports Android, as our AR development engine and platform. Vuforia provides tools for developers to upload a QR code and annotate the QR code as an image target. The image target will be integrated and stored in the Android application's internal database, the marker database, waiting to be detected. An example of an image target annotated by Vuforia is shown in Figure 3(a). (a) A QR code as an image target.
(b) A 3D model as product information. Fig. 3. An example of a QR code as an image target generated by Vuforia and a 3D object as an image to be overlaid created using Google SketchUp.
The 3D virtual objects to be overlaid are created using Google SketchUp (15) (not currently pertains to Google as of this writing), a powerful 3D modeling software. However, the main reason we chose SketchUp is because its exported object can be transformed into a suitable OpenGL format that the Vuforia engine can incorporate into the application's content database. An example of a 3D product information object is shown in Figure 3 It is known that the programming language for Android is Java. However, the AR component is partly developed using C++ (via Cygwin) and it is necessary to call the C++ API. Therefore, we need to utilize Java Native Interface (JNI) to enable Java to call the C++ code using the Android Native Development Kit (Android NDK). Overall, the application implementation environment comprises of JDK, Android SDK, Android Developer Tools (ADT), Dalvik Virtual Machine, Vuforia SDK, Android NDK, Eclipse, Cygwin and SketchUp.
The AR component of the application is not a mere part in our mobile system. After the Android application identifies the product from the QR code, the AR component sends requests to designated websites for that product's related information, only when the user activates. The webpage view is subsequently displayed in the application.

Product Information Web Service
We have also implemented a web service that provides product information in the case that the designated websites that provide product information are not available. In this sense, the application directs the request to the backend web service. The web service is RESTful and is developed using PHP. The database is MySQL. The product information database is built in advanced for each of the products. Creating a REST web service is straightforward. The web service waits for a request with a product identification number from the Android application, searches from the database and returns the request in the form of JavaScript Object Notation (JSON). The data in JSON format is understood by the Android application, and is transformed into Android application views.

The Prototype for Food Products
We have developed the prototype of the system for the food product category on Android  (a) A recipe for the example product from a well-known site.
(b) A list of recipes from the product information web service. products that are packaged with a QR code, e.g., condiments like sugar, meats like canned tuna, and instant foods like instant noodles. Given that they are food products, we chose to display content about the recipes and manufacturing sources of the product. The application starts at the video camera screen allowing the user to project his/her mobile device to a QR code. If the image is not recognized as a known QR code, possibly because the image is not in the marker database or the image is not clear enough, the application displays a warning message. Once the QR code is recognized, the 3D product information box is overlaid above the product's QR code in real time. The AR technology is put into highlight at this step. As the user camera is moved, the 3D product information box moves along in the same direction and orientation in the 3D space. Showing as an example in Figure 4(a) is a granulated sugar product.
When the user double clicks the screen, menus are presented with more options as in Figure 4(b), still as an overlaying graphic. The options are the "Food Menu" which directs the user to a well-known food recipe website presenting which food can be done using the product, shown in Figure 5(a), and the "Source Menu" which directs the user to a manufacturing site (not shown here). However, if the sites are not available, the "Food Menu" directs the user to a list of recipes originating from the product information web service managed by us in Figure 5(b). Each item in the list can be drilled down to get more information of that recipe. By the same token, the "Source Menu" directs the user to the manufacturing information stored in the product information web service. The same concept can be done for other product categories as well. Overall, the system performance is limited by two factors: the mobile device's hardware capability (both the camera capability and the processing capability) and the internet connection.

Conclusion and Future Work
In this paper, we present the design and development of an augmented reality mobile system for point-of-sale products display/presentation. Our system consists of a native Android application that interacts with users in real time and a web information service that provides detailed information of the product to support the Android application. By and large, we are all by no means reinventing-the-wheel, but applying the AR concept on a mobile platform to push forward an innovative way to present products digitally, delivering new user experiences to the e-marketing world. Our requirement for the mobile device is that it has to have a video camera, and that is usually the case for most devices nowadays.
Our work can be extended into many ways. It is possible to programmatically create virtual objects for particular products on-the-fly from an information database. The concept can be extended to use the barcode as the marker in addition to the QR code, and so can support a broader range of products. As the product list grows, storing marker and content database in the application is space inefficient. A cloud service can be employed, however with a performance tradeoff due in part to the internet connection speed. Slight modification can bring location-based service to the system, for example, to compare the current store price with other stores in the vicinity. Undoubtedly, AR mobile applications in business are going with great potentials in the years to come.