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