Introduction to Augmented Reality (AR) with Python 3 and OpenCV 4.2.

Overview

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.

augmented reality by mafda

Read complete post in AR 101 — Augmented Reality.

Definition and basic features

augmented reality by mafda

Read complete post in AR 101 — A brief summary (Part 1).

Horizontal and vertical trends

augmented reality by mafda

Read complete post in AR 101 — Augmented Reality Trends (Part 2).

Basic process and main components

augmented reality by mafda

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:

  1. Image is the implementation, step by step, with some basic definitions, to add a 3D model to a flat image.
  2. 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.

  1. Create virtual environment:
python -m venv /path/to/new/virtual/environment
  1. Activate environment:
source /path/to/new/virtual/environment/bin/activate
  1. Install requirements.txt file:
pip install -r requirements.txt
  1. For Image
python -m jupyter notebook
  1. For Video
python ar_python3_opencv4.py

Model 3D

Results

augmented reality python3 opencv2

Repository References

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 💙 by mafda

Owner
fernanda rodríguez
multimedia engineer. data scientist. front-end dev. phd candidate: augmented reality + machine learning.
fernanda rodríguez
A pkg stiching around view images(4-6cameras) to generate bird's eye view.

AVP-BEV-OPEN Please check our new work AVP_SLAM_SIM A pkg stiching around view images(4-6cameras) to generate bird's eye view! View Demo · Report Bug

Xinliang Zhong 37 Dec 01, 2022
Go package for OCR (Optical Character Recognition), by using Tesseract C++ library

gosseract OCR Golang OCR package, by using Tesseract C++ library. OCR Server Do you just want OCR server, or see the working example of this package?

Hiromu OCHIAI 1.9k Dec 28, 2022
Neural search engine for AI papers

Papers search Neural search engine for ML papers. Demo Usage is simple: input an abstract, get the matching papers. The following demo also showcases

Giancarlo Fissore 44 Dec 24, 2022
text detection mainly based on ctpn model in tensorflow, id card detect, connectionist text proposal network

text-detection-ctpn Scene text detection based on ctpn (connectionist text proposal network). It is implemented in tensorflow. The origin paper can be

Shaohui Ruan 3.3k Dec 30, 2022
Localization of thoracic abnormalities model based on VinBigData (top 1%)

Repository contains the code for 2nd place solution of VinBigData Chest X-ray Abnormalities Detection competition. The goal of competition was to auto

33 May 24, 2022
📷 Face Recognition using Haar-Cascade Classifier, OpenCV, and Python

Face-Recognition-System Face Recognition using Haar-Cascade Classifier, OpenCV and Python. This project is based on face detection and face recognitio

1 Jan 10, 2022
This repo contains several opencv projects done while learning opencv in python.

opencv-projects-python This repo contains both several opencv projects done while learning opencv by python and opencv learning resources [Basic conce

Fatin Shadab 2 Nov 03, 2022
Creating of virtual elements of the graphical interface using opencv and mediapipe.

Virtual GUI Creating of virtual elements of the graphical interface using opencv and mediapipe. Element GUI Output Description Button By default the b

Aleksei 4 Jun 16, 2022
ERQA - Edge Restoration Quality Assessment

ERQA - a full-reference quality metric designed to analyze how good image and video restoration methods (SR, deblurring, denoising, etc) are restoring real details.

MSU Video Group 27 Dec 17, 2022
A Tensorflow model for text recognition (CNN + seq2seq with visual attention) available as a Python package and compatible with Google Cloud ML Engine.

Attention-based OCR Visual attention-based OCR model for image recognition with additional tools for creating TFRecords datasets and exporting the tra

Ed Medvedev 933 Dec 29, 2022
When Age-Invariant Face Recognition Meets Face Age Synthesis: A Multi-Task Learning Framework (CVPR 2021 oral)

MTLFace This repository contains the PyTorch implementation and the dataset of the paper: When Age-Invariant Face Recognition Meets Face Age Synthesis

Hzzone 120 Jan 05, 2023
kaldi-asr/kaldi is the official location of the Kaldi project.

Kaldi Speech Recognition Toolkit To build the toolkit: see ./INSTALL. These instructions are valid for UNIX systems including various flavors of Linux

Kaldi 12.3k Jan 05, 2023
Tool which allow you to detect and translate text.

Text detection and recognition This repository contains tool which allow to detect region with text and translate it one by one. Description Two pretr

Damian Panek 176 Nov 28, 2022
Handwritten Text Recognition (HTR) system implemented with TensorFlow (TF) and trained on the IAM off-line HTR dataset. This Neural Network (NN) model recognizes the text contained in the images of segmented words.

Handwritten-Text-Recognition Handwritten Text Recognition (HTR) system implemented with TensorFlow (TF) and trained on the IAM off-line HTR dataset. T

27 Jan 08, 2023
This is a passport scanning web service to help you scan, identify and validate your passport created with a simple and flexible design and ready to be integrated right into your system!

Passport-Recogniton-System This is a passport scanning web service to help you scan, identify and validate your passport created with a simple and fle

Mo'men Ashraf Muhamed 7 Jan 04, 2023
This is a Computer vision package that makes its easy to run Image processing and AI functions. At the core it uses OpenCV and Mediapipe libraries.

CVZone This is a Computer vision package that makes its easy to run Image processing and AI functions. At the core it uses OpenCV and Mediapipe librar

CVZone 648 Dec 30, 2022
Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)

English | 简体中文 Introduction PaddleOCR aims to create multilingual, awesome, leading, and practical OCR tools that help users train better models and a

27.5k Jan 08, 2023
⛓ marc is a small, but flexible Markov chain generator

About marc (markov chain) is a small, but flexible Markov chain generator. Usage marc is easy to use. To build a MarkovChain pass the object a sequenc

Max Humber 65 Oct 27, 2022
Can We Find Neurons that Cause Unrealistic Images in Deep Generative Networks?

Can We Find Neurons that Cause Unrealistic Images in Deep Generative Networks? Artifact Detection/Correction - Offcial PyTorch Implementation This rep

CHOI HWAN IL 23 Dec 20, 2022