正在上传图片(0/1)

使用大疆御3E采集制作百亿像素全景图的实践报告

 35
手机看帖 53 3317
自从入手了大疆御3E,接了一个27平方公里的正射影像图制作项目后,无人机回本了,也闲置下来了。半年没接到新项目,也舍不得便宜处理机器,考虑着如何利用手里的设备干点有意思的事。
无意间接触了无人机采集制作全景图的相关内容,看到有很多御3P的玩家改装遥控器,利用长焦镜头自动采集照片,拼接处理成百亿像素的全景图后,感觉这个有点意思,于是想折腾一下。
看了大量案例,无人机百亿像素全景图一般都是改装御3P的遥控器,加装单片机控制遥控器调整飞机的航向和云台俯仰进行照片采集。改装遥控器的费用通常要2000多,而且属于私自改装,后期有问题只能自己承担了。
对比了一下御3P和御3E的长焦镜头,发展参数基本一致,那么御3P能干的事,御3E应该也没问题。
既然大疆的MSDK支持御3E,我又稍微懂一点软件开发,那么完全可以不改装遥控器,自己开发个APP进行照片的自动采集了。
说干就干,但我平时常用PHP、JS等语言做点小型web项目,安卓开发是一点没尝试过。但既然知道了原理,剩下就是熟悉程序流程和简单的安卓开发知识了。
说简单其实一点都不难,通读了两遍大疆的MSDK,花两天时间学了点kotlin的语法,再大致了解一下android的开发流程,于是就开始上手了。
断断续续经过了半个月的折腾,一个简约风格(简陋)的app做成了,接下来就是要不断调试了。

第一次做的app
由于不懂如何将大疆usdk提供的界面组件整个到app中,只能每次飞起来,到达指定位置后切换到app界面开始采集照片,期间不能退出界面,必须等所有照片全部采集完成才能切换回Pilot2。
第一次试飞,由于把虚拟摇杆高级控制中一个参数写错了位置,飞机高度在不断降低,感觉不对劲,切换到Pilot2一看,飞机已经边下降边远离,高度不到100米了,离原位置偏移了2公里多了,再晚几秒就要撞上建筑物了。(开启虚拟摇杆高级模式后,避障失效)
赶紧拉回来,回去继续改代码。期间经历了无数坑,总结一下大致如下:
1、MSDK的文档描述不够细致,很多接口的实现原理靠猜,执行结果靠试;
2、自己对安卓开发了解不多,因为用到协程等相关技术,摸索了一定时间;
3、采集照片的数量一开始是不明确的,按照我自己的理解计算,实际采集到的图片无法进行拼接;
4、采集过程中无人机航向的精确控制只能维持在±1°以内,导致后期拼接有缺漏;
5、每次拍照所需时长不固定,线程挂起太长会浪费时间,太短又会导致镜头晃动、虚焦等问题。
下午有事要出门,还没写完,顺手点击保存草稿,可能不小心点了发布,居然有同道中人回复了,感谢。还要继续交代下面的事。
经过反复尝试和思考,与其费心费力考虑如何精简照片数量,提高拍摄效率,不如按照最大覆盖率的方法把所有应该拍摄的照片都拍了。
按照御3E的长焦镜头FOV约等于15°,那么水平视角大概是12°,垂直视角大概是9°。(勾三股四弦五)
然后PTGUI拼接图片需要至少15%的重叠率,所以把无人机每次水平偏航位移设置为9°,云台垂直俯仰设置为7°。用excel画了一下,大概下图这样,共需要拍摄416张照片。
按照下面这位机友回复的方案是384张,我最开始计算的方案也是384张,但有些点位的照片偏航角度不是9°的倍数,考虑到拍摄效率,就是调整云台俯仰的速度远大于调整飞机偏航角度的速度,因此上述方案虽然多采集了一些照片,但是采集效率高了一些。不过这不是最终方案,应该还有优化的空间。
还有这位机友使用航点编辑的方案,我看了一下航点编辑文件,好像也挺复杂的。
经过测试,416张照片的方案不再有漏片导致无法完美拼接的问题了。
并根据前期总结出来的问题,采用了嵌套回调函数的方案,降低了不必要的线程挂起时间,提高拍摄效率。动态计算飞机偏航,微调云台偏航补偿飞机偏航的方案,使每张照片的偏航误差控制在±0.5°之内,云台俯仰误差控制在±0.2°以内,确保了照片的重叠率。
照片采集没有问题了,剩下就是后期处理了。
416张照片使用ptgui一键拼接没什么大问题,拼接完的全景图只有下半部分。每次拍完长焦的照片后,我会切回Pilot2使用大疆的自动全景图的在原位置拍摄一张,大疆自带的广角全景图拍摄方案共拍摄25张照片,放弃自动合成的14400*7200像素的自动全景图,使用ptgui将上述25张照片重新生成全景图,并在ps中使用极坐标滤镜扭曲后,再使用内容识别填充顶部空白,然后拖到大像素的全景图中,放大到和大像素全景图大小一致,再使用渐变工具在天际线附近融合2个图层,使两个图层连接更自然。
处理完的全景图大概134898*67449像素,约等于91亿像素,拼合图像后大概15G左右,可以购买720云的大像素切片服务上传到素材库了。

下面链接一个我的作品,供大家参考。有问题的话在下面留言,共同交流提升。

https://www.720yun.com/vr/972jkr4ykv9
评论
上传
你需要登录之后才能回帖    登录 | 注册
杰伟  DJI Avata 2 畅飞套装认证用户 2023-12-8 2#
恭喜楼主也是个爱折腾的人,我也进行过这个尝试,不过不是开发APP,我的方式比较简单粗暴,也比较不是那么方便,我是直接进行航点编辑比较省事,有一点要纠正一下,7倍全景照片数量是确定的,还有就要分光照情况设置起始拍摄方式,大光比的场景比较适合竖向拍摄模式,光比不大用横向
杰伟  DJI Avata 2 畅飞套装认证用户 2023-12-8 3#
这是我当时使用拍摄角度,一共382张,您可以按这个角度测试看看
porject.d  Osmo Pocket 3认证用户 2023-12-11 4#
牛啊
飞向星辰大海!   2023-12-11 5#
问一下这个APP是用什么语言编写好啊,感觉可以一试
飞向星辰大海!   2023-12-11 6#
不整活人生就没有有意义,人生要学会不断整活
董翀  X5S认证用户 2023-12-11 7#
楼主厉害!话说御3P最新固件不是已经支持7倍的全景拍摄了吗?
T-3486784401  DJI RS 3 Pro认证用户 2023-12-11 8#
整的我都心动了,考虑要不要给 mini3p 的屏控做一个机械爪,自动俯仰偏航照片
beyondkm  DJI Avata 进阶套装认证用户 2023-12-11 9#
定义字符串变量I=“看不懂”
if(i==看得懂)
输出:“怎么可能!!??”
else
输出“你这个代码还有很多可以优化的地方,有空帮你改改”
什么是真水无香  Osmo Action 4认证用户 2023-12-11 10#
不擅长编程,敬佩
酒馆与诗i   2023-12-11 11#
大牛
老皮  Osmo Action 3 全能套装认证用户 2023-12-11 12#
楼主   2023-12-11 13#
董翀DJI Mavic 3 Pro12-11 14:16
楼主厉害!话说御3P最新固件不是已经支持7倍的全景拍摄了吗?
手上没有M3P,我又特地去看了一眼,最新版的固件好像只支持中长焦(3倍长焦)的全景图拍摄,而且据网友展示自动中长焦全景拍摄,好像只支持1200万的分辨率,白瞎了3倍中长焦4800万的分辨率。又或者说因为ccd的尺寸原因,3倍中长焦4800万像素效果一般?
楼主   2023-12-11 14#
一个小可爱鸭-12-11 13:14
问一下这个APP是用什么语言编写好啊,感觉可以一试
因为最新的msdk示例使用kotlin编写的,因此我简单学了一点kotlin语法就上手了。
楼主   2023-12-11 15#
T-3486784401Osmo Pocket 312-11 15:10
整的我都心动了,考虑要不要给 mini3p 的屏控做一个机械爪,自动俯仰偏航照片
大疆的msdk支持mini3 和mini3 pro,可以尝试一下的。
Sup drone  DJI Mini 3 Pro 带屏遥控器认证用户 2023-12-11 16#
Sup drone  DJI Mini 3 Pro 带屏遥控器认证用户 2023-12-11 17#
膜拜大佬
T-3486784401  DJI RS 3 Pro认证用户 2023-12-11 18#
潢川云12-11 20:32
大疆的msdk支持mini3 和mini3 pro,可以尝试一下的。
手头是 dji-rc 一代屏控,安卓和 app 都锁死了没法装。估计玩 msdk 得折腾下。
無形の她  DJI Avata 进阶套装认证用户 2023-12-11 19#
山村物语  DJI Mini 2认证用户 2023-12-12 20#
铭铭iF  Osmo Mobile SE认证用户 2023-12-12 21#
一个小可爱鸭-12-11 13:14
问一下这个APP是用什么语言编写好啊,感觉可以一试
看了你是会这个东西
Li2199   2023-12-12 22#
厉害
饼干  DJI Mavic 3认证用户 2023-12-12 23#
厉害,技术流,可以分享APP吗
亚博拉杆  DJI Mini 2认证用户 2023-12-12 24#
不错不错
亚博拉杆  DJI Mini 2认证用户 2023-12-12 25#
支持一下
亚博拉杆  DJI Mini 2认证用户 2023-12-12 26#
亚博拉杆  DJI Mini 2认证用户 2023-12-12 27#
学习学习
未来无所不能  X5S认证用户 2023-12-12 28#
未来无所不能  X5S认证用户 2023-12-12 29#
月辰陌  Mavic 2 Zoom认证用户 2023-12-12 30#
楼主厉害!
飞向星辰大海!   2023-12-12 31#
铭铭F12-12 01:22
看了你是会这个东西
确实,我一个编程比赛全广东省前20%我以前也尝试过写APP
飞向星辰大海!   2023-12-12 32#
T-3486784401Osmo Pocket 312-11 23:38
手头是 dji-rc 一代屏控,安卓和 app 都锁死了没法装。估计玩 msdk 得折腾下。
一样,我得找别人借RC-n1去比如干刷fcc这种事
飞向星辰大海!   2023-12-12 33#
潢川云12-11 20:30
因为最新的msdk示例使用kotlin编写的,因此我简单学了一点kotlin语法就上手了。
OK啊,我以前尝试过用C++写APP,周末有空研究一下
洪烧肉  DJI Avata 进阶套装认证用户 2023-12-12 34#
NP+puls
厉害啊大佬
Flexible航拍工作室  DJI Mavic 3认证用户 2023-12-13 36#
renjun  Osmo Pocket 2认证用户 2023-12-13 37#
renjun  Osmo Pocket 2认证用户 2023-12-13 38#
厉害啊大佬
yanran090266  Mavic 2 Pro认证用户 2023-12-13 39#
    太长。
太秀了!全是技术
12下一页
取消 点赞 评论
分享至:
回复:
上传
取消 评论
快速回复 返回顶部 返回列表