ubantu中对blenderproc的研究系列(三)———相机采样
前期的准备工作做完了,相信对于一个简单的.obj的处理和可视化都已经不成问题。下面问题来了,我们的目标远远不是将一个.obj文件可视化出来这么简单。我们期待对他进行进一步的渲染和加工,这样最终形成的结果才可以被我们应用在构建数据集的情况中。
本着这样的目的,我们不需要对每一条代码进行很系列的研读,我们只需要知道他们都是什么大概含义,在未来构建我们的模型中,该如何去使用就ok了。
这里是blenderproc项目的全貌,我们主要关注examples里的例子,通过对例子的配置文件的阅读,我们来学习这个项目的使用,这样是很快的学习方式。其他文件夹中包括提前写好的模块,源码和数据集的一些说明,后边我们实际工作中用到了再作详细的阅读。
相机采样
因为我们想利用blenderproc建立一个自己的数据集,对数据的全方面采样就必不可少。一个训练集照片成千上万张,我们不肯能对一个图像设置成千上万个相机参数,在proc中有特定的模块已经帮我们想到解决问题的办法。
{
"module": "camera.CameraSampler",
"config": {
"cam_poses": [
{
"number_of_samples": 10,
"location": {
"provider":"sampler.Uniform3d",
"max":[10, 10, 8],
"min":[-10, -10, -12]
},
"rotation": {
"format": "look_at",
"value": {
"provider": "getter.POI"
},
"inplane_rot": {
"provider": "sampler.Value",
"type": "float",
"min": -0.7854,
"max": 0.7854
}
}
}
]
}
}
这个就是相机采样的参数配置,其中number_of_samples是采集样本数量(这里采集10张),随后利用到sampler.Uniform3d函数。“max”和“min”是固定相机中心坐标的空间位置,相机坐标(x,y,z)位于max(x,y,z)和min (x,y,z)之间的一个随机值。
利用“look_at”和“getter.POI”将相机始终朝向目标区域。
利用函数“sampler.Value”可以设置每次采样后相机旋转过的角度,其中“min”和“max”为偏转角度范围(弧度制)。
最后这里推荐一篇论文,可以帮助大家更好理解
https://download.csdn.net/download/weixin_42376961/18161809
下一节,给大家将将如何给自己的三维模型加上一个好看的背景!