njanirudh / Augmented-Reality

Augmented reallity application in python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Augmented-Reality

This repository contains a prototype Augmented reality application using OpenCV and OpenGL python. Aim of this project is to make a modular AR framework using python which works on wide variety of markers and on which we can place wide variety of graphical elements. The application takes a .json file as an input and uses that to find apropriate type of marker.

Installation / Usage

  • Clone the git repo
  • Install the modules
    pip install -r requirements.txt
  • Run main.py (Default values)

Architecture

  • Basic application process blocks

Depending on the JSON parameters the application will be able to detect 'Aruco' or 'NFT' markers.

  • Marker detection process

Input JSON

There are two seperate types of JSON depending on the type of marker tracked. The default parameter JSON files are placed in the data folder.

The paths to the calibration file and marker can be changed

  • NFT marker (nft_params.json)

      {    
        "calibration_path" : "data/calibration.yaml",
        
        "marker_type" : "nft",    
        "marker_params" :{      
          "marker_path" : "assets/stones.jpg",    
          "feature_type" : "ORB",                  // ORB , AKAZE
          "matcher_type" : "flann",                // flann , bfm
          "debug_draw" : true    
        },
      
        "3d_object" : {    
          "obj_path" : ""    
        }
      
      }
    
  • Aruco marker (aruco_params.json)

      {   
        "calibration_path" : "data/calibration.yaml",    
        
        "marker_type" : "aruco",    
        "marker_params" :{   
          "debug_draw" : true   
        },
      
        "3d_object" : {   
          "obj_path" : ""   
        }   
    
      }
    

Authors

License

This project is licensed under the MIT License - see the LICENSE.md file for details

About

Augmented reallity application in python

License:MIT License


Languages

Language:Python 100.0%