A Markerless Augmented Reality Platform for User Support: 'ARabeitak' Car Maintenance App as a Case Study
1
Table Of Contents
1.
Introduction
& Problem Definition
2.
Objectives
3.
System Overview
4.
Features &
Methodology
5.
Diagrams
6.
Dataset
7.
UI Prototype
8.
Demo
2
Table Of Contents
1.
Introduction
& Problem Definition
2.
Objectives
3.
System Overview
4.
Features &
Methodology
5.
Diagrams
6.
Dataset
7.
UI Prototype
8.
Demo
3
1.1 Introduction
4
1.2 Problem Definition
5
2. Objectives
To develop a user-friendly application that is accessible through mobile devices and tablets to assist average-skilled car owners to easily follow the instructions for their vehicle maintenance.
To allow the detection and recognition of the different car parts, whether under-hood components or car dashboard triggers.
To overlay detailed instructions over the car parts, in the real scene, to perform a task. Instructions can be textual, pictorial, or animated 3D models.
To offer a tele-assistance feature for the car owners to seek assistance from a remote expert.
To detect dynamic gestures and trigger a warning if an incorrect gesture was detected.
To automate maintenance instructions retrieval.
6
3. System Overview
7
4.
Features &
Methodology
8
3.
Features &
Methodology
AR Remote Assistance
9
3.
Features &
Methodology
Hand Tracking & Error Detection
AR Remote Assistance
10
3.
Features &
Methodology
AR Remote Assistance
Hand Tracking & Error Detection
Instructions
Authoring
Automation
With GPT
11
3.
Features &
Methodology
AR Remote Assistance
12
4.1 Remote Assistance - Overview
Video Streaming
Adding AR elements
Rendering AR elements
Car owner
Technical expert
13
4.1 Remote Assistance - Overview
Car owner
Technical expert
Video Streaming
Adding AR elements
Rendering AR elements
14
4.1 Remote Assistance - Overview
Video Streaming
Adding AR elements
Rendering AR elements
Car owner
Technical expert
WebRTC Experiments
+
+
15
4.1 Remote Assistance - Overview
Video Streaming
Adding AR elements
Rendering AR elements
Car owner
Technical expert
WebRTC Experiments
+
16
4.1 Remote Assistance - Overview
Video Streaming
Adding AR elements
Rendering AR elements
Car owner
Technical expert
WebRTC Experiments
+
Agora Choice
17
Video Streaming
Adding AR elements
Rendering AR elements
Car owner
Technical expert
Challenges:
4.1 Remote Assistance - Overview
18
Video Streaming
Rendering AR elements
Car owner
Technical expert
Adding AR elements
Challenges:
4.1 Remote Assistance - Overview
19
Video Streaming
Rendering AR elements
Car owner
Technical expert
Adding AR elements
Challenges:
4.1 Remote Assistance - Overview
20
4.1 Remote Assistance
Stream audio and video
Channel setting
ARCore integration
Add advanced drawings
Deploy a token generating server
Integrate with app + user authentication
Done
To do
21
3.
Features &
Methodology
AR Remote Assistance
Hand Tracking & Error Detection
Instructions
Authoring
Automation
22
Hand Tracking & Error Detection
23
4.2 Hand Tracking –
Extending Wikitude via C++ Plugins
Native Java
Wikitude SDK
JS WebView
Start Architect Plugin
Default Wikitude Camera
24
Native Java
Wikitude SDK
4.2 Hand Tracking –
Extending Wikitude via C++ Plugins
JS WebView
Start Architect Plugin
Default Wikitude Camera
To extend Wikitude functionality…
25
JNI Bridge
OpenGL Texture Buffer
YUV420_888 Image
JNI Bridge
WebView JavaScript, JNI Bridge
YUV420_888 Image
Native Java Camera2 API
Processing, and rendering
Wikitude SDK
C++ Plugins
4.2 Hand Tracking –
Extending Wikitude via C++ Plugins
26
JNI Bridge
OpenGL Texture Buffer
1- A JNI Bridge is used to call a C++ function from Java that sets up a buffer.
2- When the camera frame is captured by Camera2 API, it is passed to the buffer.
3- Processing and Rendering done by Wikitude core and can be customized as we wish in C++.
YUV420_888 Image
JNI Bridge
WebView JavaScript, JNI Bridge
YUV420_888 Image
Native Java Camera2 API
Processing, and rendering
Wikitude SDK
C++ Plugins
4.2 Hand Tracking –
Extending Wikitude via C++ Plugins
27
JNI Bridge
OpenGL Texture Buffer
YUV420_888 Image
JNI Bridge
WebView JavaScript, JNI Bridge
YUV420_888 Image
Native Java Camera2 API
4.2 Hand Tracking –
Extending Wikitude via C++ Plugins
Processing, and rendering
Wikitude SDK
Now to integrate Hand Tracking in this workflow…
C++ Plugins
28
4.2 Hand Tracking -
Extending Wikitude &
Integrating MediaPipe
TextureView
OpenGL ES
TensorFlow Lite Models
Bitmap
YUV420_888 image
Native Java Code
OpenGL Texture Buffer
JNI Bridge
Processing through graphs and calculators.
CameraX API
Rendered
FrameTexture
custom camera
triggered
.SO built Library
Wikitude SDK
Processing, and rendering
JS WebView
Start
Wikitude
C++ Plugins
29
TextureView
OpenGL ES
TensorFlow Lite Models
Bitmap
YUV420_888 image
Native Java Code
OpenGL Texture Buffer
JNI Bridge
Processing through graphs and calculators.
CameraX API
Rendered
FrameTexture
custom camera
triggered
.SO built Library
Wikitude SDK
Processing, and rendering
JS WebView
Start
Wikitude
Remarks:
4.2 Hand Tracking -
Extending Wikitude &
Integrating MediaPipe
30
4.2 Hand Tracking
Extending Wikitude via C++ Plugins
Wrapping MediaPipe Library in an Android App with TFLite Models.
Having Wikitude and MediaPipe under the same package.
Get the connection between MediaPipe and Wikitude working.
Train TFLite Model on certain gestures.
Possibly expand to dynamic gestures.
Done
To do
31
3.
Features &
Methodology
AR Remote Assistance
Hand Tracking & Error Detection
Instructions
Authoring
Automation
32
3.
Features &
Methodology
Instructions
Authoring
Automation
33
4.3 Instructions Automation – �Approaches Considered
34
Ada
(fastest)
Babbage
Curie
Davinci
(most powerful)
4.3 Instructions Automation – OpenAI's Language Base Models
35
4.3 Instructions Automation – �Approaches Comparison
User Manual | GPT-3 (text-davinci-003) |
| |
36
4.3 Instructions Automation �
Compare gpt-3 responses with the manual instructions
Decide on approach
Integrate API into code
Process & structure responses
Done
To do
Find approach for generating visual aids
37
4.3 Instructions Automation – �Sequence Diagram
38
5. Diagrams –
Architectural Diagram
(Layered Architecture)
39
5. Diagrams – Class Diagram
40
5. Diagrams –
Design Patterns – Chain of Responsibility
41
5. Diagrams – Class Diagram
42
5. Diagrams –
Design Patterns – Decorator
43
5. Diagrams – Class Diagram
44
5. Diagrams –
Sequence Diagram
45
5. Diagrams –
Database Design
46
6. Dataset
47
7. UI Prototype
48
7. UI Prototype
49
7. UI Prototype
50
7. UI Prototype
51
7. UI Prototype
52
8. Demo