NeRF数据采集与处理
拍摄要求
- 拍摄尽可能同一时间段拍完,避免巨变的光照条件变化、曝光失常、焦点失焦等问题;
- 可以选择拍摄图片,但需保证不同图片的相机焦距一定,避免手机滤镜、美颜等磨去纹理等;建议拍摄视频,可以保证相邻图片直接连续性;
- 小物件,可以物品为球心,在半球式多视角拍摄图片;对于较大物品,无法做到半球式拍摄顶部,可以柱面或部分球面的形式拍摄,但重建效果对于未采集区域必然是不好的;
预处理
(此处我提供了一些 python
脚本处理,例如抽帧、降分辨率等,具体请见:脚本积累)
- 拍摄为视频时:保持镜头的连续性,以一定间隔进行抽帧(保证相邻图片特征匹配良好),并剔除失焦模糊、曝光失常等无效图片;
- 必要时可以将图片同比例的缩小;
- (可选)如果只想单独重建物体,可以进行图像分割,将想要重建的物品抠图出来(PS、MiVOS-STCN等方法);
相机内外参
我们利用 colmap) 图形界面获取相机内外参:
最好这里保证如下文件结构:
1
2
3
4
5
6
7+ --- scene # 待合成场景
| + --- image # 图片文件夹
| + --- mask # 如果进行了语义分割,mask文件夹
| + --- database.db # 从此开始,下述文件为位姿获取时生成
| + --- sparse # 相机位姿的二进制文件
| + --- text # 相机外参的.txt格式文件
| + --- project.ini菜单栏
File->New project
,第一栏创建database.db
二进制进程文件,第二栏添加image
图片文件夹路径;菜单栏
Processing->Feature extraction
,将camera model
调整为PINHOLE
,选中下面的Shared for all images
(这也就是为什么我们要求不要改变内参,避免不必要的麻烦)。(如果有mask
,可以导入对应文件夹路径;如果有多个 GPU,可以在下面选择gpu_index
参数)最后点击Extract
提取特征;菜单栏
Processing->Feature matching->Exhaustive->Run
;菜单栏
Reconstruction->Automatic reconstruction
,Workspace
导入scene
文件夹,Image folder
导入image
文件夹,选中Shared intrinsics
,取消Dense model
,然后Run
;直观的,你可以导出看看相机内外参,
File->Export model as text
;关闭前会让你保存一个
project.ini
文件。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.