正在上传图片(0/1)

【建模】使用无人机扫描建筑建模(摄影测量)

 15
手机看帖 14 3037

题图

题图
屏幕截图 2022-08-28 153027.png renderout1.2.png

作为一个游戏开发者,很多时候自己雕刻建筑模型是很浪费时间的,乱下第三方素材又容易遇到版权问题,那么有一种很投机的方法,就是直接在现实中找一个建筑把模型扫描下来,然后再在模型里面作修改,然后你就可以在半个小时到三四个小时内得到一个“原创”高精度模型,你就可以,把它扔到你的渲染软件里面,或者扔到你的游戏引擎里面,做影视特下或者当游戏场景。

那么大疆就派上用场了。拿无人机围着建筑物突突突一顿拍,模型就搞完了,运算的事情扔给你的电脑,于是我就可以懒狗狂喜。

今天散步路过一个还愿塔,那正好就用这个举例做个教程嘿嘿。

我使用的设备是:
无人机:DJI MINI 2
软件:3DF Zephyr 6.5、Blender Octane Edition 2.93、Unreal 5.03
电脑:微星GE64、 RTX3060、 I5 11th


现在的时间是2022、08、28;15:19
刚刚拍完回来开电脑,所以算直播教程。

因为大疆论坛每小时只让发五个回复,所以我尽量把内容按章节压缩成一个一个回复,故而直播速度会有点慢。我不是大佬,纯小白,仅供帮其他同学科普一起学习,案例质量不会太高,大佬们轻拍。

目录导引:

1.无人机拍摄逻辑:题材选择,无人机具体操作设置
2.素材整理与处理:我用无人机的工作流
3.开始计算处理模型
4.用建模软件优化模型
5.将结果导入实际渲染场景
6.交流
评论
上传
你需要登录之后才能回帖    登录 | 注册
楼主  DJI Mini 2认证用户 8-28 18:43 2#
本帖最后由 djiuser_BD8Uw513zKje 于 2022-8-30 03:28 编辑



1.拍摄逻辑


目标:见到有趣的建筑物时给扫描下来,这样万一遇到要搭建对应风格的场景的时候就可以用上


我带着无人机转了一圈,然后看到了还愿塔,这个塔是古代本地地主修的,据说是女儿生重病,于是向神仙许愿健康,结果很幸运,病好了,所以就修了个塔还愿。

并不是什么历史古迹,但也没谁特意去拆,因此一直留着。

那么好处就是我如果把这个放到模型库里面肯定是不用担心有什么版权问题的。因此直接开搞。

附近的地形长成这个样子,周边有高楼,塔在一个小土坡上面,植被丰富,附近有高树枝



而我在视距外玩小飞机,不愿意冒风险侧飞的时候炸鸡,因此一直在比塔高的位置进行环绕拍摄,机位参考如下



那么这样子的机位就会有一个很大的硬伤,那就是扫描完模型以后,模型上方Z轴的贴图会很丰富,细节很多,但是真正重要的正视图侧视图却会很粗糙,所以同类型题材的模型,大家要认真扫描的时候,一定记得环绕的时候要在不同高度多环绕几圈,不能像我这样高高地转一圈了事。当然,如果仅仅为了做个教程的话,我们也就这样草率拍一圈,是那个意思就差不多了哈哈。


(真正规范的轨迹)


在具体拍摄的时候,打开dji fly里面的摄影模式,再往里面子项有一个定时,选5s,开始拍摄,然后你就只需要管飞,无人机会自动开始每隔五秒拍一张图。


我的速度模式选择的是Normal,个人感觉这个速度和定时拍出来的照片重合率刚刚好,当然这个是看个人偏好的,你可以根据自己的情况调整,想要照片之间重合度高一些,就飞慢点,把定时缩短一点。反之亦然。按照百度某些所谓专家的说法,摄影测量要确保照片重合度在70%以上,夹角不能超过15,这个算法是很没道理的,因为不同设备焦段不一样,而且不同人操作环境不同,虽然说你一次拍个一千张一万张重合度是高了,但是后期你要是显卡不行又算不出来,没啥意义。

像这种十多米规格的建筑,我个人认为做示例的时候100张照片足以,自己采集素材的话600张照片也够了,所以就不会按照所谓专家的重合度之类的东西严格执行。




2.工作流程

现在我们已经获得了目标建筑物的一大堆素材,为了尽可能快速地传完10G素材,我会用usb直接把无人机连到电脑上,本模块详见我主页的前一个帖子,这是我目前会用的方法,很别扭,但似乎论坛的同学暂时也没有其他更优方案。




这个时候我们得到了一大堆素材,如下图:



现在的时间是2022.08.30,前两天拖延症犯了,写了一半搞忘了,现在继续。但是大疆论坛此时正在维护,不让发新回复,所以我得暂时先在旧回复上编辑内容,等之后开放回复以后再重新分P。




得到了这些素材以后,我大致的工作流如下:

首先,将素材批量导入LR,调整白平衡和曝光。本教程省略此流程节约时间。

之后我会在摄影测量软件3DF Zenphyr中提取素材的密度云生成模型。

然后把得到的模型以oBJ格式导入Blender,接上数位板重新简单雕刻一些失真的细节。

最后把处理完善的模型导入环境中制作场景渲染。

下一个小节中分步骤解释具体操作。




3.模型提取生成

第一步,打开3df zenphyr,新建工程,导入刚才所有的照片,软件会自动提取GPS数据辅助位置生成,会自动提取镜头焦段方便矫正透视关系。点击RUN,程序就会自己开始跑密度云了。




这个软件原理的话大致是这样,ai根据算法提取每张图片的特征点,然后把每两张图片之间的特征关系判断前后顺序。得到了前后顺序,ai就可以根据每个特征点之间位移的大小来区分前后距离。简单画个图举例吧。



这是一个正方体,当视角从上往下移动,拍到的图形就从左图变为右图,此时原本的特征点之间的距离,L1S1,就会变成L2S2,那么电脑就会算出,L的变化是S的多少多少倍,那么他就会得出结论,a点的距离远,b、c在同一距离。

如此计算无数次,软件就会提取出一个点云,在建模中我们称为密度云。长成这个样子:




这个很类似于初中物理里面大家学的电子云,我们只知道电子分布的概率,不知道具体的位置。

具体的算法我就不展开了,会用就行。

之后根据密度云的位置作范围限制减小运算量。

然后将密度点连线成面



最后根据生成的面的法线,把拍的照片剪切成贴图投射到这些面上,也就得到了模型



4.blender优化模型

现在我们得到了初始的模型素材,以及一个已经映射好了贴图的UV信息,我们把它导入Blender



此时模型还是不可用的,有两个原因,

第一是面数过多,一般用摄影测量学得到的模型,面数会达到40万面,这样的超大模型,我的RTX3060一般需要运算数十分钟才能渲染出一张图,哪怕3090也要好几分钟,这样的效率在正经的影视或者游戏项目中是不可用的。


第二个原因是模型凹凸不平。在我们的现实世界中,平面就是平面,然而因为前面我讲解的原理,ai是根据图像视角差运算出的密度点,这意味着什么?意味着图像变化对比度越大的地方,运算越准确,对比度越小的地方,运算误差越大。

那么什么地方图像的对比度最小?当然是光滑的平面。因此用摄影测量学得到的模型,基本上平面都是坑洼不平的,反而有转角的复杂区域会扫描的比较精准。

为了解决这两个问题,就对应两种思路,这是具体建模领域的内容,展开又是无数个帖子,所以我大致说一下感兴趣的朋友自己去了解。分别是:一、面数精简,根据各个面之间的夹角,自动剔除夹角小于特定度数的面,将两个面合称为一个面;二、手工雕刻处理模型,用建模软件里的笔刷工具,自己手工把凹凸不平的地方给雕刻成光滑的。

具体的内容你们自己再去找资源学,本教程所有内容都是大体概括工作流,否则详细展开的话内容就无边无尽了。

经过了上述两个步骤优化过的模型,才是真正可用的,假如没有经过上面两个环节,你会发现自己的模型在摄影测量软件里面看起来很漂亮,一导入真正的游戏引擎或者渲染软件就突然变得坑坑洼洼,乱七八糟,又丑又难看。当然本教程为了节省时间,也在这个环节偷懒随便搞了一下哈哈。


以上是最基础的优化内容。

假如你需要了解更进阶的模型优化思路,我也再大致提一下,经过了删减面数,手工平滑平面两个步骤以后,你还可以做的更多的事情是进一步调教贴图。

因为一般民用无人机是只有摄像头作图像传感器的,无法记录扫描物体的反射、粗糙度、材料材质等等信息,

所以你愿意的话,还可以给模型自己添加粗糙度贴图,添加金属度贴图,具体展开内容的关键词是PBR渲染,大家自己去学吧。

但是假装我们 现在已经得到了一个完美的模型了,那么我们开始制作场景吧。



5.实际场景渲染


摄影测量模型相比自己在建模软件里手工捏出来的模型,有哪些优缺点?优点是贴图细节丰富真实,省时间精力。缺点是误差多需要手工修正,其次光线对贴图的影响很大。太阳光照到建筑上,亮的部分很清晰,暗的部分,影子照到的部分,软件是不会自动帮你把亮度和gamma补偿上去的。

也就是说,当你扫描的那一瞬间,物体上面的光照情况,就会被跟着带到你的模型上面去,几乎不可修复,因为人力成本太高。

在这种情况下,只有两种解决方案,一是用更高级的设备捕捉数据,绕开阴影这个问题,比如用深度传感器啊,用各种乱七八糟的射线传感器啊来扫描,但很显然我的**mini2不可能加这些东西,哪怕未来mini12也大概率不会加(至于大疆的工业机型是啥情况我就不了解了),所以简言之,此路不通。

第二种解决方案,则是我不从设备开刀,我从光照开刀,那么你需要得到像手术室的无影灯一样的光源来照射被扫描物体。

这在工作室和录影棚是很容易实现的,所以扫描小物件还是很轻松的。但是扫描一栋楼,一个城市,这几乎不可能实现。

那么这个时候,你就得靠天吃饭。

哈哈,秘诀是阴天。

因为阴天没有太阳,投射到建筑上的直射光很少,大部分来自于大气中的漫反射光,阴天,是做摄影测量时,能得到的最均匀的光照。

当然本教程为了省事肯定是不会特意搞这么费劲的,所以我们得到的就是一个带阴影的模型。上面的原理只是给大家一个,更有选项的可能性。



但是是不是说我这个模型有阴影了就完蛋了呢,不是的,有瑕疵的素材只是给了你更多使用限制,并不是说不可用。

此时还有两种方案,就是在模型的渲染场景中讨巧。第一种方法,是在模型里面还原拍摄时候的太阳位置。现在很多建模软件都有这个功能了,比如twinmotion,你只要输入拍摄时候的经纬度,日期时间,它会自动算出太阳的夹角,在渲染引擎中复现,我案例中用的blender没这个功能,但是octane渲染器里面的环境设置可以大致还原这个流程。

当然为了省事,我也不会用方案一,

还有方案二,暗光。


哈哈哈,直接不要太阳了,只要环境乌漆嘛黑,大家就看不出来有bug!!!

你就会发现这十几年,好莱坞的电影越来越喜欢拍夜景了。我最讨厌的就是夜景,乌漆嘛黑的看着头疼。

但是好处是制作的时候省事,反正有bug大家也看不清。

那么本案例咱们也用这个方案。



先把太阳去掉,灯光我打了三个,一个大的黄色球光假装是月亮,一个小的橙色球光放在塔底下假装是建筑附近的火把,一个大的蓝色区域光假装是夜色。



然后hdri随便找个星空图当作背景




放一个摄像机把光圈开大遮丑



点击渲染,搞定




6.交流答疑

PS:我的公号叫“形态学”,年底开始更新,想关注我的内容的朋友可以在wx上搜一下。

无人机扫描模型的教程大致内容应该差不多就这些了,没什么复杂的东西。为了方便大家查不清楚的东西,我再把可能涉及到的信息点关键词列出来吧:

航拍绕飞(刷锅)、
摄影测量、
法线贴图、
建模、
PBR材质、
场景渲染。

基本这些自己再去扩展简单学一下,应该上面的教程流程就可以起到一个目录速览的作用。

然后还有啥想问的或者拍砖的可以在评论区留言。

大疆论坛限制挺多的,我感觉用起来手感怪怪的,所以应该差不多一个星期才会看一次评论,但是每条都会看到。然后因为每小时只能发五个回复,所以如果回复没什么实质内容,我就不回了只点个赞。哦这个论坛没有点赞功能,那没啥事了。
不咲的熊67   8-30 00:06 3#
哦!!!很有用,收藏了
djiuser_BD8Uw51DJI Mini 28-28 18:43
1.拍摄逻辑


目标:见到有趣的建筑物时给扫描下来,这样万一遇到要搭建对应风格的场景的时候就可以用上


我带着无人机转了一圈,然后看到了还愿塔,这个塔是古代本地地主修的,据说是女儿生重病,于是向神仙许愿健康,结果很幸运,病好了,所以就修了个塔还愿。

并不是什么历史古迹,但也没谁特意去拆,因此一直留着。

那么好处就是我如果把这个放到模型库里面肯定是不用担心有什么版权问题的。因此直接开搞。

附近的地形长成这个样子,周边有高楼,塔在一个小土坡上面,植被丰富,附近有高树枝

[图片]

而我在视距外玩小飞机,不愿意冒风险侧飞的时候炸鸡,因此一直在比塔高的位置进行环绕拍摄,机位参考如下

[图片]

那么这样子的机位就会有一个很大的硬伤,那就是扫描完模型以后,模型上方Z轴的贴图会很丰富,细节很多,但是真正重要的正视图侧视图却会很粗糙,所以同类型题材的模型,大家要认真扫描的时候,一定记得环绕的时候要在不同高度多环绕几圈,不能像我这样高高地转一圈了事。当然,如果仅仅为了做个教程的话,我们也就这样草率拍一圈,是那个意思就差不多了哈哈。

[图片]
(真正规范的轨迹)


在具体拍摄的时候,打开dji fly里面的摄影模式,再往里面子项有一个定时,选5s,开始拍摄,然后你就只需要管飞,无人机会自动开始每隔五秒拍一张图。


我的速度模式选择的是Normal,个人感觉这个速度和定时拍出来的照片重合率刚刚好,当然这个是看个人偏好的,你可以根据自己的情况调整,想要照片之间重合度高一些,就飞慢点,把定时缩短一点。反之亦然。按照百度某些所谓专家的说法,摄影测量要确保照片重合度在70%以上,夹角不能超过15,这个算法是很没道理的,因为不同设备焦段不一样,而且不同人操作环境不同,虽然说你一次拍个一千张一万张重合度是高了,但是后期你要是显卡不行又算不出来,没啥意义。

像这种十多米规格的建筑,我个人认为做示例的时候100张照片足以,自己采集素材的话600张照片也够了,所以就不会按照所谓专家的重合度之类的东西严格执行。




2.工作流程

现在我们已经获得了目标建筑物的一大堆素材,为了尽可能快速地传完10G素材,我会用usb直接把无人机连到电脑上,本模块详见我主页的前一个帖子,这是我目前会用的方法,很别扭,但似乎论坛的同学暂时也没有其他更优方案。

[图片]


这个时候我们得到了一大堆素材,如下图:

[图片]

现在的时间是2022.08.30,前两天拖延症犯了,写了一半搞忘了,现在继续。但是大疆论坛此时正在维护,不让发新回复,所以我得暂时先在旧回复上编辑内容,等之后开放回复以后再重新分P。

[图片]


得到了这些素材以后,我大致的工作流如下:

首先,将素材批量导入LR,调整白平衡和曝光。本教程省略此流程节约时间。

之后我会在摄影测量软件3DF Zenphyr中提取素材的密度云生成模型。

然后把得到的模型以oBJ格式导入Blender,接上数位板重新简单雕刻一些失真的细节。

最后把处理完善的模型导入环境中制作场景渲染。

下一个小节中分步骤解释具体操作。




3.模型提取生成

第一步,打开3df zenphyr,新建工程,导入刚才所有的照片,软件会自动提取GPS数据辅助位置生成,会自动提取镜头焦段方便矫正透视关系。点击RUN,程序就会自己开始跑密度云了。

[图片]
[图片]

这个软件原理的话大致是这样,ai根据算法提取每张图片的特征点,然后把每两张图片之间的特征关系判断前后顺序。得到了前后顺序,ai就可以根据每个特征点之间位移的大小来区分前后距离。简单画个图举例吧。

[图片]

这是一个正方体,当视角从上往下移动,拍到的图形就从左图变为右图,此时原本的特征点之间的距离,L1S1,就会变成L2S2,那么电脑就会算出,L的变化是S的多少多少倍,那么他就会得出结论,a点的距离远,b、c在同一距离。

如此计算无数次,软件就会提取出一个点云,在建模中我们称为密度云。长成这个样子:

[图片]


这个很类似于初中物理里面大家学的电子云,我们只知道电子分布的概率,不知道具体的位置。

具体的算法我就不展开了,会用就行。

之后根据密度云的位置作范围限制减小运算量。

然后将密度点连线成面

[图片]

最后根据生成的面的法线,把拍的照片剪切成贴图投射到这些面上,也就得到了模型

[图片]

4.blender优化模型

现在我们得到了初始的模型素材,以及一个已经映射好了贴图的UV信息,我们把它导入Blender

[图片]

此时模型还是不可用的,有两个原因,

第一是面数过多,一般用摄影测量学得到的模型,面数会达到40万面,这样的超大模型,我的RTX3060一般需要运算数十分钟才能渲染出一张图,哪怕3090也要好几分钟,这样的效率在正经的影视或者游戏项目中是不可用的。


第二个原因是模型凹凸不平。在我们的现实世界中,平面就是平面,然而因为前面我讲解的原理,ai是根据图像视角差运算出的密度点,这意味着什么?意味着图像变化对比度越大的地方,运算越准确,对比度越小的地方,运算误差越大。

那么什么地方图像的对比度最小?当然是光滑的平面。因此用摄影测量学得到的模型,基本上平面都是坑洼不平的,反而有转角的复杂区域会扫描的比较精准。

为了解决这两个问题,就对应两种思路,这是具体建模领域的内容,展开又是无数个帖子,所以我大致说一下感兴趣的朋友自己去了解。分别是:一、面数精简,根据各个面之间的夹角,自动剔除夹角小于特定度数的面,将两个面合称为一个面;二、手工雕刻处理模型,用建模软件里的笔刷工具,自己手工把凹凸不平的地方给雕刻成光滑的。

具体的内容你们自己再去找资源学,本教程所有内容都是大体概括工作流,否则详细展开的话内容就无边无尽了。

经过了上述两个步骤优化过的模型,才是真正可用的,假如没有经过上面两个环节,你会发现自己的模型在摄影测量软件里面看起来很漂亮,一导入真正的游戏引擎或者渲染软件就突然变得坑坑洼洼,乱七八糟,又丑又难看。当然本教程为了节省时间,也在这个环节偷懒随便搞了一下哈哈。


以上是最基础的优化内容。

假如你需要了解更进阶的模型优化思路,我也再大致提一下,经过了删减面数,手工平滑平面两个步骤以后,你还可以做的更多的事情是进一步调教贴图。

因为一般民用无人机是只有摄像头作图像传感器的,无法记录扫描物体的反射、粗糙度、材料材质等等信息,

所以你愿意的话,还可以给模型自己添加粗糙度贴图,添加金属度贴图,具体展开内容的关键词是PBR渲染,大家自己去学吧。

但是假装我们 现在已经得到了一个完美的模型了,那么我们开始制作场景吧。



5.实际场景渲染


摄影测量模型相比自己在建模软件里手工捏出来的模型,有哪些优缺点?优点是贴图细节丰富真实,省时间精力。缺点是误差多需要手工修正,其次光线对贴图的影响很大。太阳光照到建筑上,亮的部分很清晰,暗的部分,影子照到的部分,软件是不会自动帮你把亮度和gamma补偿上去的。

也就是说,当你扫描的那一瞬间,物体上面的光照情况,就会被跟着带到你的模型上面去,几乎不可修复,因为人力成本太高。

在这种情况下,只有两种解决方案,一是用更高级的设备捕捉数据,绕开阴影这个问题,比如用深度传感器啊,用各种乱七八糟的射线传感器啊来扫描,但很显然我的**mini2不可能加这些东西,哪怕未来mini12也大概率不会加(至于大疆的工业机型是啥情况我就不了解了),所以简言之,此路不通。

第二种解决方案,则是我不从设备开刀,我从光照开刀,那么你需要得到像手术室的无影灯一样的光源来照射被扫描物体。

这在工作室和录影棚是很容易实现的,所以扫描小物件还是很轻松的。但是扫描一栋楼,一个城市,这几乎不可能实现。

那么这个时候,你就得靠天吃饭。

哈哈,秘诀是阴天。

因为阴天没有太阳,投射到建筑上的直射光很少,大部分来自于大气中的漫反射光,阴天,是做摄影测量时,能得到的最均匀的光照。

当然本教程为了省事肯定是不会特意搞这么费劲的,所以我们得到的就是一个带阴影的模型。上面的原理只是给大家一个,更有选项的可能性。



但是是不是说我这个模型有阴影了就完蛋了呢,不是的,有瑕疵的素材只是给了你更多使用限制,并不是说不可用。

此时还有两种方案,就是在模型的渲染场景中讨巧。第一种方法,是在模型里面还原拍摄时候的太阳位置。现在很多建模软件都有这个功能了,比如twinmotion,你只要输入拍摄时候的经纬度,日期时间,它会自动算出太阳的夹角,在渲染引擎中复现,我案例中用的blender没这个功能,但是octane渲染器里面的环境设置可以大致还原这个流程。

当然为了省事,我也不会用方案一,

还有方案二,暗光。


哈哈哈,直接不要太阳了,只要环境乌漆嘛黑,大家就看不出来有bug!!!

你就会发现这十几年,好莱坞的电影越来越喜欢拍夜景了。我最讨厌的就是夜景,乌漆嘛黑的看着头疼。

但是好处是制作的时候省事,反正有bug大家也看不清。

那么本案例咱们也用这个方案。

[图片]

先把太阳去掉,灯光我打了三个,一个大的黄色球光假装是月亮,一个小的橙色球光放在塔底下假装是建筑附近的火把,一个大的蓝色区域光假装是夜色。

[图片]

然后hdri随便找个星空图当作背景

[图片]


放一个摄像机把光圈开大遮丑

[图片]

点击渲染,搞定

[图片]


6.交流答疑

PS:我的公号叫“形态学”,年底开始更新,想关注我的内容的朋友可以在wx上搜一下。

无人机扫描模型的教程大致内容应该差不多就这些了,没什么复杂的东西。为了方便大家查不清楚的东西,我再把可能涉及到的信息点关键词列出来吧:

航拍绕飞(刷锅)、
摄影测量、
法线贴图、
建模、
PBR材质、
场景渲染。

基本这些自己再去扩展简单学一下,应该上面的教程流程就可以起到一个目录速览的作用。

然后还有啥想问的或者拍砖的可以在评论区留言。

大疆论坛限制挺多的,我感觉用起来手感怪怪的,所以应该差不多一个星期才会看一次评论,但是每条都会看到。然后因为每小时只能发五个回复,所以如果回复没什么实质内容,我就不回了只点个赞。哦这个论坛没有点赞功能,那没啥事了。
画工不错,神仙画手
無形の她  Phantom 4 Pro+ V2.0认证用户 9-11 23:29 5#
不错
浙江安吉-守山航拍  Osmo+认证用户 10-16 12:14 6#
MINI2的精度是不够叫测量的。大致方案可以参照倾斜摄影。
Azure715  DJI Mini 2认证用户 10-19 13:30 7#
很有意思,过段时间就去试一试
yanran090266  Mavic 2 Pro认证用户 10-30 02:04 8#
不错不错
djiuser_9MRApDE   10-30 21:30 9#
方法太好,不忍直视
袜子后跟有个洞  Mavic 2 Zoom认证用户 11-5 19:13 10#
djiuser_BD8Uw51DJI Mini 28-28 18:43
1.拍摄逻辑


目标:见到有趣的建筑物时给扫描下来,这样万一遇到要搭建对应风格的场景的时候就可以用上


我带着无人机转了一圈,然后看到了还愿塔,这个塔是古代本地地主修的,据说是女儿生重病,于是向神仙许愿健康,结果很幸运,病好了,所以就修了个塔还愿。

并不是什么历史古迹,但也没谁特意去拆,因此一直留着。

那么好处就是我如果把这个放到模型库里面肯定是不用担心有什么版权问题的。因此直接开搞。

附近的地形长成这个样子,周边有高楼,塔在一个小土坡上面,植被丰富,附近有高树枝

[图片]

而我在视距外玩小飞机,不愿意冒风险侧飞的时候炸鸡,因此一直在比塔高的位置进行环绕拍摄,机位参考如下

[图片]

那么这样子的机位就会有一个很大的硬伤,那就是扫描完模型以后,模型上方Z轴的贴图会很丰富,细节很多,但是真正重要的正视图侧视图却会很粗糙,所以同类型题材的模型,大家要认真扫描的时候,一定记得环绕的时候要在不同高度多环绕几圈,不能像我这样高高地转一圈了事。当然,如果仅仅为了做个教程的话,我们也就这样草率拍一圈,是那个意思就差不多了哈哈。

[图片]
(真正规范的轨迹)


在具体拍摄的时候,打开dji fly里面的摄影模式,再往里面子项有一个定时,选5s,开始拍摄,然后你就只需要管飞,无人机会自动开始每隔五秒拍一张图。


我的速度模式选择的是Normal,个人感觉这个速度和定时拍出来的照片重合率刚刚好,当然这个是看个人偏好的,你可以根据自己的情况调整,想要照片之间重合度高一些,就飞慢点,把定时缩短一点。反之亦然。按照百度某些所谓专家的说法,摄影测量要确保照片重合度在70%以上,夹角不能超过15,这个算法是很没道理的,因为不同设备焦段不一样,而且不同人操作环境不同,虽然说你一次拍个一千张一万张重合度是高了,但是后期你要是显卡不行又算不出来,没啥意义。

像这种十多米规格的建筑,我个人认为做示例的时候100张照片足以,自己采集素材的话600张照片也够了,所以就不会按照所谓专家的重合度之类的东西严格执行。




2.工作流程

现在我们已经获得了目标建筑物的一大堆素材,为了尽可能快速地传完10G素材,我会用usb直接把无人机连到电脑上,本模块详见我主页的前一个帖子,这是我目前会用的方法,很别扭,但似乎论坛的同学暂时也没有其他更优方案。

[图片]


这个时候我们得到了一大堆素材,如下图:

[图片]

现在的时间是2022.08.30,前两天拖延症犯了,写了一半搞忘了,现在继续。但是大疆论坛此时正在维护,不让发新回复,所以我得暂时先在旧回复上编辑内容,等之后开放回复以后再重新分P。

[图片]


得到了这些素材以后,我大致的工作流如下:

首先,将素材批量导入LR,调整白平衡和曝光。本教程省略此流程节约时间。

之后我会在摄影测量软件3DF Zenphyr中提取素材的密度云生成模型。

然后把得到的模型以oBJ格式导入Blender,接上数位板重新简单雕刻一些失真的细节。

最后把处理完善的模型导入环境中制作场景渲染。

下一个小节中分步骤解释具体操作。




3.模型提取生成

第一步,打开3df zenphyr,新建工程,导入刚才所有的照片,软件会自动提取GPS数据辅助位置生成,会自动提取镜头焦段方便矫正透视关系。点击RUN,程序就会自己开始跑密度云了。

[图片]
[图片]

这个软件原理的话大致是这样,ai根据算法提取每张图片的特征点,然后把每两张图片之间的特征关系判断前后顺序。得到了前后顺序,ai就可以根据每个特征点之间位移的大小来区分前后距离。简单画个图举例吧。

[图片]

这是一个正方体,当视角从上往下移动,拍到的图形就从左图变为右图,此时原本的特征点之间的距离,L1S1,就会变成L2S2,那么电脑就会算出,L的变化是S的多少多少倍,那么他就会得出结论,a点的距离远,b、c在同一距离。

如此计算无数次,软件就会提取出一个点云,在建模中我们称为密度云。长成这个样子:

[图片]


这个很类似于初中物理里面大家学的电子云,我们只知道电子分布的概率,不知道具体的位置。

具体的算法我就不展开了,会用就行。

之后根据密度云的位置作范围限制减小运算量。

然后将密度点连线成面

[图片]

最后根据生成的面的法线,把拍的照片剪切成贴图投射到这些面上,也就得到了模型

[图片]

4.blender优化模型

现在我们得到了初始的模型素材,以及一个已经映射好了贴图的UV信息,我们把它导入Blender

[图片]

此时模型还是不可用的,有两个原因,

第一是面数过多,一般用摄影测量学得到的模型,面数会达到40万面,这样的超大模型,我的RTX3060一般需要运算数十分钟才能渲染出一张图,哪怕3090也要好几分钟,这样的效率在正经的影视或者游戏项目中是不可用的。


第二个原因是模型凹凸不平。在我们的现实世界中,平面就是平面,然而因为前面我讲解的原理,ai是根据图像视角差运算出的密度点,这意味着什么?意味着图像变化对比度越大的地方,运算越准确,对比度越小的地方,运算误差越大。

那么什么地方图像的对比度最小?当然是光滑的平面。因此用摄影测量学得到的模型,基本上平面都是坑洼不平的,反而有转角的复杂区域会扫描的比较精准。

为了解决这两个问题,就对应两种思路,这是具体建模领域的内容,展开又是无数个帖子,所以我大致说一下感兴趣的朋友自己去了解。分别是:一、面数精简,根据各个面之间的夹角,自动剔除夹角小于特定度数的面,将两个面合称为一个面;二、手工雕刻处理模型,用建模软件里的笔刷工具,自己手工把凹凸不平的地方给雕刻成光滑的。

具体的内容你们自己再去找资源学,本教程所有内容都是大体概括工作流,否则详细展开的话内容就无边无尽了。

经过了上述两个步骤优化过的模型,才是真正可用的,假如没有经过上面两个环节,你会发现自己的模型在摄影测量软件里面看起来很漂亮,一导入真正的游戏引擎或者渲染软件就突然变得坑坑洼洼,乱七八糟,又丑又难看。当然本教程为了节省时间,也在这个环节偷懒随便搞了一下哈哈。


以上是最基础的优化内容。

假如你需要了解更进阶的模型优化思路,我也再大致提一下,经过了删减面数,手工平滑平面两个步骤以后,你还可以做的更多的事情是进一步调教贴图。

因为一般民用无人机是只有摄像头作图像传感器的,无法记录扫描物体的反射、粗糙度、材料材质等等信息,

所以你愿意的话,还可以给模型自己添加粗糙度贴图,添加金属度贴图,具体展开内容的关键词是PBR渲染,大家自己去学吧。

但是假装我们 现在已经得到了一个完美的模型了,那么我们开始制作场景吧。



5.实际场景渲染


摄影测量模型相比自己在建模软件里手工捏出来的模型,有哪些优缺点?优点是贴图细节丰富真实,省时间精力。缺点是误差多需要手工修正,其次光线对贴图的影响很大。太阳光照到建筑上,亮的部分很清晰,暗的部分,影子照到的部分,软件是不会自动帮你把亮度和gamma补偿上去的。

也就是说,当你扫描的那一瞬间,物体上面的光照情况,就会被跟着带到你的模型上面去,几乎不可修复,因为人力成本太高。

在这种情况下,只有两种解决方案,一是用更高级的设备捕捉数据,绕开阴影这个问题,比如用深度传感器啊,用各种乱七八糟的射线传感器啊来扫描,但很显然我的**mini2不可能加这些东西,哪怕未来mini12也大概率不会加(至于大疆的工业机型是啥情况我就不了解了),所以简言之,此路不通。

第二种解决方案,则是我不从设备开刀,我从光照开刀,那么你需要得到像手术室的无影灯一样的光源来照射被扫描物体。

这在工作室和录影棚是很容易实现的,所以扫描小物件还是很轻松的。但是扫描一栋楼,一个城市,这几乎不可能实现。

那么这个时候,你就得靠天吃饭。

哈哈,秘诀是阴天。

因为阴天没有太阳,投射到建筑上的直射光很少,大部分来自于大气中的漫反射光,阴天,是做摄影测量时,能得到的最均匀的光照。

当然本教程为了省事肯定是不会特意搞这么费劲的,所以我们得到的就是一个带阴影的模型。上面的原理只是给大家一个,更有选项的可能性。



但是是不是说我这个模型有阴影了就完蛋了呢,不是的,有瑕疵的素材只是给了你更多使用限制,并不是说不可用。

此时还有两种方案,就是在模型的渲染场景中讨巧。第一种方法,是在模型里面还原拍摄时候的太阳位置。现在很多建模软件都有这个功能了,比如twinmotion,你只要输入拍摄时候的经纬度,日期时间,它会自动算出太阳的夹角,在渲染引擎中复现,我案例中用的blender没这个功能,但是octane渲染器里面的环境设置可以大致还原这个流程。

当然为了省事,我也不会用方案一,

还有方案二,暗光。


哈哈哈,直接不要太阳了,只要环境乌漆嘛黑,大家就看不出来有bug!!!

你就会发现这十几年,好莱坞的电影越来越喜欢拍夜景了。我最讨厌的就是夜景,乌漆嘛黑的看着头疼。

但是好处是制作的时候省事,反正有bug大家也看不清。

那么本案例咱们也用这个方案。

[图片]

先把太阳去掉,灯光我打了三个,一个大的黄色球光假装是月亮,一个小的橙色球光放在塔底下假装是建筑附近的火把,一个大的蓝色区域光假装是夜色。

[图片]

然后hdri随便找个星空图当作背景

[图片]


放一个摄像机把光圈开大遮丑

[图片]

点击渲染,搞定

[图片]


6.交流答疑

PS:我的公号叫“形态学”,年底开始更新,想关注我的内容的朋友可以在wx上搜一下。

无人机扫描模型的教程大致内容应该差不多就这些了,没什么复杂的东西。为了方便大家查不清楚的东西,我再把可能涉及到的信息点关键词列出来吧:

航拍绕飞(刷锅)、
摄影测量、
法线贴图、
建模、
PBR材质、
场景渲染。

基本这些自己再去扩展简单学一下,应该上面的教程流程就可以起到一个目录速览的作用。

然后还有啥想问的或者拍砖的可以在评论区留言。

大疆论坛限制挺多的,我感觉用起来手感怪怪的,所以应该差不多一个星期才会看一次评论,但是每条都会看到。然后因为每小时只能发五个回复,所以如果回复没什么实质内容,我就不回了只点个赞。哦这个论坛没有点赞功能,那没啥事了。
太专业了
wjslfj  DJI Mini 2认证用户 11-7 20:47 11#
你好,为什么我的3DF Zephyr 新建项目点击下一步就闪退呢?
djiuser_IoBBGse   11-11 06:36 12#
学习了,感谢楼主。
罗巴乔  Air 2s认证用户 11-12 11:17 13#
真的是要讲究精度的摄影测量,要上RTK的
Stt   11-13 09:15 14#
厉害厉害
游侠某  Air 2s认证用户 11-17 15:57 15#
建模用的都是什么软件,什么机型更好用
已累计飞行6677米
认证设备
取消 点赞 评论
分享至:
回复:
上传
取消 评论
快速回复 返回顶部 返回列表