Skip to main content

Introduction

ScanMate
Developed by four talented young men as their graduation project.
NameGithubTwitter
Ziad MansourZiadMansourM@ziad_m_404
Mohamed Wael--
Maged Elosail--
Yousif adel--

ScanMate: Implementation of Close Range Photogrammetry using Classical Image Processing Techniques

📝 Pipeline - docs - videos​

*** We have the following 7 steps in our pipeline:
$ prepare_images
- Load Dataset Images
- Compute Mask
$ compute_sift_keypoints_descriptors
$ image_matching
$ data_feature_matching
- Apply crossCheck BF Matcher
- Apply Ransac on BF Matcher Output
- Loop without repetition using Itertools
$ compute_k_matrix
$ generate_point_cloud
- Recover Pose of reference camera
- Recover rest camera poses using solvePNPRansac
- Apply Triangulation
$ 3D reconstruction
- Use PointsCloud to generate a 3D Object (.stl) file

🏛️ Datasets​

StatusDataset LinkDescription
❌Gingerbread Man3D model of a gingerbread cookie. Created in RealityCapture from 158 images.
✅HammerHammer dataset with size of 750 MB.
✅Small CottageObjects Scanned from all sides using Masks.
✅Fountain3D reconstruction images from the popular Strecha dataset.

🧐 Production Folder Structure​

(venv) ziadh@Ziads-MacBook-Air production % tree 
.
├── conf
│   ├── certs
│   ├── html
│   ├── kong-config
│   │   └── kong.yaml
│   ├── logs
│   └── nginx.conf
├── data
├── docker-compose.yml
└── src
├── Dockerfile
├── main.py
├── scanmate.py
└── under_the_hood
├── __init__.py
├── compute_sift_features.py
├── data_feature_match.py
├── data_structures
│   ├── __init__.py
│   ├── feature_matches.py
│   ├── image.py
│   └── images.py
├── generate_points_cloud.py
├── image_match.py
├── prepare_images.py
└── utils
├── __init__.py
└── utils.py

10 directories, 18 files

⚖️ License​

This project is licensed under the terms of the GNU General Public License version 3.0 (GPLv3). See the LICENSE file for details.