Augmented Reality 101
The development of areas such as computer vision, image processing, and computer graphics, allow the introduction of technologies such as Augmented Reality.
Azuma defines Augmented Reality as "a technology that adds computer-generated virtual content to real-world views through devices".
Introduction
The purpose of these map is to give you an idea about Augmented Reality and to guide you through the main features that surround this technology.
Read complete post in AR 101 — Augmented Reality.
Definition and basic features
Read complete post in AR 101 — A brief summary (Part 1).
Horizontal and vertical trends
Read complete post in AR 101 — Augmented Reality Trends (Part 2).
Basic process and main components
Read complete post in AR 101 — Components of the Augmented Reality System (Part 3).
Augmented Reality Application
In this repository, I want to present a basic implementation that projects on the screen a 3D model aligned (orientation and translation) to a predefined flat surface.
However, currently the industry is investing in different frameworks as ARCore, ARKit, and Vuforia, among others, which provide the community more accessible technologies with more realistic results and experiences.
The repository has two parts:
- Image is the implementation, step by step, with some basic definitions, to add a 3D model to a flat image.
- Video is the implementation to have the experience in real-time through a camera.
Instalation
git clone [email protected]:mafda/augmented_reality_101.git
Environment
The tools we will use are Python 3 and OpenCV 4.2.
- Create virtual environment:
python -m venv /path/to/new/virtual/environment
- Activate environment:
source /path/to/new/virtual/environment/bin/activate
- Install requirements.txt file:
pip install -r requirements.txt
- For Image
python -m jupyter notebook
- For Video
python ar_python3_opencv4.py
Model 3D
Results
Repository References
- JE Solem, Programming Computer Vision with Python: Tools and algorithms for analyzing images. O'Reilly Media, Inc.
- Programming Computer Vision with Python
- Open source Python module for computer vision
- Augmented reality with Python and OpenCV
- augmented-reality
- OBJFileLoader
Map References
-
Azuma, R. T. (1997). A survey of augmented reality. Presence: Teleoper. Virtual Environ., 6(4):355–385. Paper
-
Chatzopoulos, D., Bermejo, C., Huang, Z., and Hui, P. (2017). Mobile augmented reality survey: From where we are to where we go. IEEE Access, 5:6917–6950. Paper
-
Craig, A. (2013). Understanding Augmented Reality: Concepts and Applications. Elsevier Science, 1 edition. Book
-
Fleck, P., Arth, C., Pirchheim, C., and Schmalstieg, D. (2015). Tracking and mapping with a swarm of heterogeneous clients. In 2015 IEEE International Symposium on Mixed and Augmented Reality, pages 136–139. Paper
-
Huang, Z., Hui, P., Peylo, C., and Chatzopoulos, D. (2013). Mobile augmented reality survey: a bottom-up approach. CoRR. Paper
-
Lehiani, Y., Maidi, M., Preda, M., and Ghorbel, F. (2015). Object identification and tracking for steady registration in mobile augmented reality. In 2015 IEEE International Conference on Signal and Image Processing Applications (ICSIPA), pages 54–59. Paper
-
Ling, H. (2017). Augmented reality in reality. IEEE MultiMedia, 24(3):10–15. Paper
-
Papagiannis, H. (2017). Augmented Human: How Technology Is Shaping the New Reality. O’Reilly Media. Book
-
Peddie, J. (2017). Augmented Reality: Where We Will All Live. Springer International Publishing. Book
-
Roberto, R., Lima, J. P., and Teichrieb, V. (2016). Tracking for mobile devices: A systematic mapping study. Computers & Graphics, 56:20 – 30. Paper
made with