sharifIslam commited on
Commit
8bbfb36
·
1 Parent(s): a0ed2db

update readme.md

Browse files
Files changed (3) hide show
  1. .DS_Store +0 -0
  2. README.md +68 -65
  3. final_report.md +0 -0
.DS_Store ADDED
Binary file (8.2 kB). View file
 
README.md CHANGED
@@ -1,90 +1,93 @@
1
- ---
2
- title: Multi-View 3D Reconstruction (MV3DR)
3
- emoji: 🎨
4
- colorFrom: gray
5
- colorTo: indigo
6
- sdk: gradio
7
- sdk_version: 4.44.0
8
- app_file: app.py
9
- pinned: false
10
- license: cc-by-nc-sa-4.0
11
- ---
12
-
13
  # Multi-View 3D Reconstruction (MV3DR)
14
 
15
- A web application for multi-view 3D object reconstruction using DUSt3R (Dense and Unconstrained Stereo 3D Reconstruction).
 
 
16
 
17
- ## Overview
 
 
 
 
 
18
 
19
- MV3DR is a production-ready system that generates 3D models from multiple 2D images through dense stereo reconstruction. The application features a dark-themed web interface built with Gradio, providing real-time visualization of depth maps, confidence heatmaps, and interactive 3D outputs.
20
 
21
  ## Features
22
 
23
- - Multi-view stereo reconstruction from 2+ images
24
- - Dual export modes: point cloud or textured mesh
25
- - Real-time depth map and confidence visualization
26
- - Advanced post-processing with background filtering
27
- - Point cloud cleaning and alignment optimization
28
- - Interactive 3D viewer with fullscreen support
29
- - Modular architecture with separated core modules
 
30
 
31
- ## Technical Stack
 
 
 
 
32
 
33
- - **Model**: DUSt3R (Dense and Unconstrained Stereo 3D Reconstruction)
34
- - **Framework**: PyTorch with mixed-precision inference
35
- - **Interface**: Gradio with custom dark theme
36
- - **3D Processing**: Trimesh for mesh/point cloud generation
37
- - **Visualization**: Matplotlib for heatmaps
38
 
39
- ## Architecture
40
 
 
 
 
 
41
  ```
42
- MV3DR/
43
- ├── main.py # Application entry point
44
- ├── config.py # Centralized configuration
45
- ├── model.py # DUSt3R model initialization
46
- ├── pipeline.py # Main reconstruction pipeline
47
- ├── gradio_ui.py # Web interface
48
- ├── core/
49
- │ ├── inference.py # Model inference with AMP
50
- │ ├── preprocessing.py # Image enhancement
51
- │ ├── postprocessing.py# 3D output generation
52
- │ └── visualization.py # Artifact generation
53
- └── assets/
54
- ├── style.css # Dark theme styling
55
- └── fullscreen.js # 3D viewer controls
56
  ```
57
 
58
- ## Pipeline
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
 
60
- 1. **Preprocessing**: Contrast and sharpness enhancement
61
- 2. **Pair Generation**: Create symmetrized image pairs
62
- 3. **Inference**: DUSt3R stereo reconstruction with mixed precision
63
- 4. **Alignment**: Multi-view point cloud optimization
64
- 5. **Post-processing**: Depth cleaning and background filtering
65
- 6. **Export**: GLB file generation (mesh or point cloud)
66
- 7. **Visualization**: Depth maps and confidence heatmaps
67
 
68
- ## Performance
 
 
 
 
 
 
69
 
70
- - RTX 4090: ~15-20 seconds (3 images)
71
- - RTX 3080: ~25-30 seconds (3 images)
72
- - T4 GPU: ~40-50 seconds (3 images)
73
- - CPU: ~5-10 minutes (3 images)
74
 
75
- ## Requirements
76
 
77
- - Python 3.10+
78
- - CUDA-capable GPU (16GB+ VRAM recommended)
79
- - 16GB+ RAM
 
80
 
81
  ## License
82
 
83
- Licensed under CC BY-NC-SA 4.0 (non-commercial use only).
84
- Built on DUSt3R by Naver Corporation.
85
 
86
  ## Credits
87
 
88
- - DUSt3R: Naver Corporation
89
- - Gradio: Hugging Face
90
- - Trimesh: Michael Dawson-Haggerty
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  # Multi-View 3D Reconstruction (MV3DR)
2
 
3
+ Convert multiple 2D images into 3D models using DUSt3R (Dense and Unconstrained Stereo 3D Reconstruction). Simple web interface powered by Gradio.
4
+
5
+ ## Quick Start
6
 
7
+ ```bash
8
+ git clone https://github.com/https-sharif/MV3DR.git
9
+ cd MV3DR
10
+ bash setup.sh
11
+ python main.py
12
+ ```
13
 
14
+ Open `http://0.0.0.0:7860` in your browser, upload 2+ images, and generate your 3D model.
15
 
16
  ## Features
17
 
18
+ - Multi-view 3D reconstruction from 2+ images
19
+ - Export as point cloud or mesh (GLB format)
20
+ - Real-time depth maps and confidence visualization
21
+ - Background filtering and point cloud cleaning
22
+ - Adjustable quality settings (100-1000 iterations)
23
+ - Interactive 3D viewer with fullscreen mode
24
+
25
+ ## How It Works
26
 
27
+ 1. **Preprocess**: Enhances image contrast and sharpness
28
+ 2. **Inference**: DUSt3R model predicts depth and generates 3D points
29
+ 3. **Alignment**: Merges multiple views into unified 3D space (300 iterations default)
30
+ 4. **Post-process**: Cleans point cloud and filters background
31
+ 5. **Export**: Generates GLB file for viewing/download
32
 
33
+ ## Setup
 
 
 
 
34
 
35
+ **Requirements**: Python 3.10+, 16GB RAM, ~3GB storage
36
 
37
+ Run the setup script:
38
+
39
+ ```bash
40
+ bash setup.sh
41
  ```
42
+
43
+ This installs PyTorch, Gradio, Trimesh, and downloads the DUSt3R model (~2.1GB).
44
+
45
+ Then start the app:
46
+
47
+ ```bash
48
+ python main.py
 
 
 
 
 
 
 
49
  ```
50
 
51
+ ### Manual Installation
52
+
53
+ If the setup script fails:
54
+
55
+ ```bash
56
+ python3 -m venv .venv
57
+ source .venv/bin/activate
58
+
59
+ pip install torch torchvision gradio trimesh scipy roma einops
60
+ git clone -b dev --recursive https://github.com/camenduru/dust3r
61
+ cd dust3r && pip install -e . && cd ..
62
+
63
+ mkdir -p dust3r/checkpoints
64
+ wget https://huggingface.co/camenduru/dust3r/resolve/main/DUSt3R_ViTLarge_BaseDecoder_512_dpt.pth \
65
+ -P dust3r/checkpoints/
66
+ ```
67
 
68
+ ## Usage
 
 
 
 
 
 
69
 
70
+ 1. Upload 2+ images of your object from different angles
71
+ 2. (Optional) Adjust settings:
72
+ - Iterations: 100-1000 (default: 300)
73
+ - Point cloud or mesh export
74
+ - Background filtering
75
+ 3. Click "Run Inference"
76
+ 4. Download GLB file or view in browser
77
 
78
+ **Tips**: Use 4-8 images with good overlap between views. Matte objects work better than shiny ones.
 
 
 
79
 
80
+ ## Configuration
81
 
82
+ Edit `config.py` to customize:
83
+ - Image size (default: 512px)
84
+ - Iterations (default: 300)
85
+ - Server port (default: 7860)
86
 
87
  ## License
88
 
89
+ CC BY-NC-SA 4.0 - Non-commercial use only
 
90
 
91
  ## Credits
92
 
93
+ Built with [DUSt3R](https://github.com/naver/dust3r), [Gradio](https://gradio.app/), [PyTorch](https://pytorch.org/), and [Trimesh](https://github.com/mikedh/trimesh).
 
 
final_report.md ADDED
The diff for this file is too large to render. See raw diff