GithubHelp home page GithubHelp logo

ljthink / 3dscan Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kshi219/3dscan

0.0 2.0 0.0 32.13 MB

Structured light decoder and re-constructor in python without the use of any vision libraries

Python 100.00%

3dscan's Introduction

3dScan

Structured light decoder and re-constructor. "From Images to 3D Model"

From Images of the Scene:

We Construct a Point Cloud of the Scene, Recovering Depth Information (on the right is actual output from this implementation, on the left is the object we "scanned"):

Given a series of structured light images (images with special light projected on them, like the one below) and projector-camera calibration, this module will produce a 3D model of the scene. Purely academic motivations/goals, implemented as to exercise computer vision and geometry concepts for machine perception after groking through some online course materials and scientific papers. Using python and numpy the code was able to express concisely the mathematics of point-cloud reconstruction from structured light images. No computer vision libraries (openCV, PIL, VTK etc) were used. Input structured-light images and calibration software were found here.

This code is only concerned with reconstruction. The 2 gifs above display the resulting pointcloud next to a rotation of the scanned object. We can see a good representation of the relative depth and form of the firgure's arms, head, torso and bottom platform. Note that we only are able to discern accurate depth information for frontal regions of the figure which were consistently illuminated by the structured light. A side-on view of the point cloud's profile matches that of the actual figure.

Further Work:

Speed:

this runs painfully slow, I tried not to think about speed the first time around and focus on understanding the math as I implemented, this should be improved.

Surface Reconstruction with color:

given the point cloud we should be able to reconstruct a 3d surface model with colors from the input images that forms a more complete representation of the scanned scene.

Draws heavily upon the following resources:

https://fling.seas.upenn.edu/~cis580/wiki/index.php?title=Machine_Perception_CIS_580_Spring_2015

http://www.cs.cornell.edu/courses/cs5670/2017sp/

http://mesh.brown.edu/scanning/

http://mesh.brown.edu/desktop3dscan/

*skimage use restricted to image i/o

3dscan's People

Contributors

kshi219 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.