Skip to content

Latest commit

 

History

History
60 lines (40 loc) · 2.51 KB

File metadata and controls

60 lines (40 loc) · 2.51 KB

SFM-Python

增量式多视图结构重建(Structure From Motion)—— 一个用Python的简单实现

opencv-python numpy networkx tqdm matplotlib joblib scipy

本项目实现了一个简单的增量式多视图结构重建系统(SfM),主要目标是从一组二维图像中重建三维结构。该实现使用了多个库,包括 OpenCV、NumPy、Matplotlib、Joblib、tqdm、NetworkX 和用于BA优化的 SciPy。

English

Peek 2024-05-15 20-11

本项目旨在提供一个3D立体视觉的经典范例,希望有助于正在学习这部分知识的同学可以深入细节,更好地理解其中的原理。欢迎任何形式的建议以及代码贡献!

提供对于OpenCV部分关键函数的纯Python实现,以供原理展示。

依赖库

要安装所需的库:

pip install opencv-python numpy matplotlib joblib tqdm networkx scipy

克隆仓库

该仓库包含一个 ImageDataset_SceauxCastle 数据集的子模块,这是运行示例代码所必需的。在克隆仓库时,请确保也克隆子模块。

要克隆包含子模块的仓库,请使用以下命令:

git clone --recurse-submodules git@github.com:hammershock/SFM_Python.git

或者,如果您已经克隆了不包含子模块的仓库,可以使用以下命令初始化并更新子模块:

git submodule update --init --recursive

使用方法

python main.py --image_dir <图像目录路径> --calibration_file <校准文件路径> [--min_matches <最小匹配对数>] [--use_ba] [--ba_tol <束调整容差>] [--verbose <输出详细级别>]

示例

python main.py --image_dir ./ImageDataset_SceauxCastle/images --calibration_file ./ImageDataset_SceauxCastle/images/K.txt --min_matches 80
python app.py