8000 GitHub - supreethub/AR-Plane-Detection: Python and JS pipeline to detect planes (surfaces) to anchor 3D Augmented Reality objects and render to a browser.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Python and JS pipeline to detect planes (surfaces) to anchor 3D Augmented Reality objects and render to a browser.

Notifications You must be signed in to change notification settings

supreethub/AR-Plane-Detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AR-Plane-Detection

Problem: To detect a flat plane in 3D space and placing a 3D object on its surface

Relavent Research:

  1) SIFT vs ORB vs SURF Feature Detectors: Paper

  • Both SIFT and ORB are available on opencv and are open-source
  • We found SIFT was better able to keep points after image transformations than ORB
  • However, SIFT was unable to attain realtime performance, so the ORB feature detector was used
  1. PlaneRCNN: 3D Plane Detection and Reconstruction from a Single Image Paper
  • Relavent and cool paper about plane detection from a single RGB image w/o depth data using neural networks
  1. Capabilities of ARCore and ARKit Platforms for AR/VR Applications: Pa 74F9 per
  • Performance stats of Apple and Google's implementations for AR programs

Walkthrough of Solution:

  1. CLAHE: Apply Contrast equalization to image's to extract more features. This is useful for getting features from flat & smooth surfaces.
  2. Use ORB feature/descriptor detector to detect and compute feature points from CLAHE'd image
  3. Compare descriptors from current and following image using matcher + lowe's ratio test to match keypoints
  4. Apply RANSAC to throw out outliers and clean up motion flow
  5. Find the Homogrophy; which gets the transformation/orientation data of a surface
  6. Draw 3D object on detected surface

Demo:

  1. Plane Detection without CLAHE Equalization
    data/Demo.gif data/Orientation_Demo.gif
  2. Plane Detection with CLAHE Equalization:
    data/cactus_plane.gif

Issues:

  1. The 2nd demo is able to detect flat surfaces but is slow (i.e. non-realtime) and could be improved upon

Future Improvements:

  1. Integrate fully with web browser via Javascript
  2. Improve the js pipeline to increase fps streaming. Capped at 1-12 fps currently
  3. Implement CLAHE in some regions only to improve speed and fix glare issues

About

Python and JS pipeline to detect planes (surfaces) to anchor 3D Augmented Reality objects and render to a browser.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  
0