Giter VIP home page Giter VIP logo

3d-vision-assignments's Introduction

CSCI 599: 3D Vision

Assignments for the course CSCI 599: 3D Vision

Repo template here

Table of Contents

How to use

git clone https://github.com/jingyangcarl/CSCI599.git
cd CSCI599
ls ./ # you should see index.html and README.md showup in the terminal
code ./ # open this folder via vscode locally
# open and right click on the index.html
# select "Open With Live Server" to run the code over localhost.

Assignment 1: Geometry Processing

Mesh Decimation

Introduction

In this assignment, you will implement surface subdivision and simplification using Loop Subdivision and Quadric Error Metrics, respectively. The task requires the construction of a data structure with adjacency, such as half-edge or incidence matrices, to facilitate quick traversal of mesh regions for computations. You can find the algorithms in the class lectures. The outcome will be an upsampled or downsampled version of a given mesh.

The following files are used:

  • assignments/assignment1.py
  • html/assignment1.html
  • js/assignment1.js

Requirements / Rubric

  • +40 pts: Implement loop subdivision.
  • +40 pts: Implement Quadratic Error based mesh decimation.
  • +20 pts: Write up your project, detials of data structure, algorithms, reporting runtime and visualizations of results with different parameters.
  • +10 pts: Extra credit (see below)
  • -5*n pts: Lose 5 points for every time (after the first) you do not follow the instructions for the hand in format

Forbidden You are not allowed to call subdivision or simplification functions directly. Reading, visualization and saving of meshes are provided in the start code.

Extract Credit You are free to complete any extra credit:

  • up to 5 pts:Analyze corner cases (failure cases) and find solutions to prevent them.
  • up to 10 pts: Using and compare two different data structures.
  • up to 10 pts: Implement another subdivision or simplification algorithm.
  • up to 10 pts: Can we preserve the original vertices after decimation (the vertices of the new meshes are a subset of the original vertices) ? Give it a try.

For all extra credit, be sure to demonstrate in your write up cases where your extra credit.

Assignment 2: Structure From Motion

Mesh Decimation

Introduction

In this assignment, you will implement structure from motion in computer vision. Structure from motion (SFM) is a technique used to reconstruct the 3D structure of a scene from a sequence of 2D images or video frames. It involves estimating the camera poses and the 3D positions of the scene points.

The goal of SFM is to recover the 3D structure of the scene and the camera motion from a set of 2D image correspondences. This can be achieved by solving a bundle adjustment problem, which involves minimizing the reprojection error between the observed 2D points and the projected 3D points.

To implement SFM, you will need to perform the following steps:

  1. Feature extraction: Extract distinctive features from the input images.
  2. Feature matching: Match the features across different images to establish correspondences.
  3. Camera pose estimation: Estimate the camera poses for each image.
  4. Triangulation: Compute the 3D positions of the scene points using the camera poses and the corresponding image points.
  5. Bundle adjustment: Refine the camera poses and the 3D points to minimize the reprojection error.

By implementing SFM, you will gain hands-on experience with fundamental computer vision techniques and learn how to reconstruct 3D scenes from 2D images. This assignment will provide you with a solid foundation for further studies in computer vision and related fields.

The following files are used:

  • assignments/assignment2/assignment2.py
  • assignments/assignment2/feat_match.py
  • assignments/assignment2/sfm.py
  • assignments/assignment2/utils.py
  • html/assignment2.html
  • js/assignment2.js

Requirements / Rubric

  • +80 pts: Implement the structure-from-motion algorithm with the start code.
  • +20 pts: Write up your project, algorithms, reporting results (reprojection error) and visualisations (point cloud and camera pose), compare your reconstruction with open source software Colmap.
  • +10 pts: Extra credit (see below)
  • -5*n pts: Lose 5 points for every time (after the first) you do not follow the instructions for the hand in format

Extract Credit You are free to complete any extra credit:

  • up to 5 pts: Present results with your own captured data.
  • up to 10 pts: Implement Bundle Adjustment in incremental SFM.
  • up to 10 pts: Implement multi-view stereo (dense reconstruction).
  • up to 20 pts: Create mobile apps to turn your SFM to a scanner.
  • up to 10 pts: Any extra efforts you build on top of basic SFM.

For all extra credit, be sure to demonstrate in your write up cases where your extra credit.

Assignment 3: NeRF / 3DGS

Introduction

A Neural Radiance Field (NeRF) is a computer vision technique for constructing highly detailed 3D scenes from sets of 2D images. It uses a deep neural network to map spatial coordinates and viewing angles to color and density, enabling the rendering of new viewpoints in complex environments. This makes NeRF valuable for applications in virtual reality and visual effects

Recent advancements in novel-view synthesis have introduced a method using 3D Gaussians to improve visual quality while maintaining real-time display rates. This technique employs sparse points from camera calibration to represent scenes with 3D Gaussians, preserving the characteristics of volumetric radiance fields. It includes an optimization and density control mechanism, along with a rapid, visibility-aware rendering algorithm that supports anisotropic splatting. This method effectively generates high-quality 3D scenes from 2D images in real-time.

In this assignment, you'll play around with these neural renderings and train your own NeRF/3DGS.

The following files are used:

  • community colabs or repos
  • html/assignment3.html
  • js/assignment3.js

Requirements / Rubric

  • +80 pts: Complete the training using your own data.
  • +20 pts: Write up your project, algorithms, reporting results (reprojection error) and visualisations, compare your reconstruction with open source software Colmap.
  • +10 pts: Extra credit (see below)
  • -5*n pts: Lose 5 points for every time (after the first) you do not follow the instructions for the hand in format

Extract Credit You are free to complete any extra credit:

  • up to 5 pts: Present results with your own captured data.
  • up to 10 pts: Train your models with both Nerf and 3DGS.
  • up to 20 pts: Train your model with language embedding (e.g., LERF).

For all extra credit, be sure to demonstrate in your write up cases where your extra credit.

3d-vision-assignments's People

Contributors

l0g1c-80m8 avatar

Watchers

 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.