RemoteSensingFrank / UAVProduct

处理无人机影像的代码,使用了OpenMVG,openMVS以及GDAL库等,实现影像几何校正,影像拼接,点云生成等功能
245 stars 131 forks source link

利用空三点云生成正射影像 #8

Closed zzxp closed 5 years ago

zzxp commented 5 years ago

我想问一下,如果只对无人机影像做sfm后,可以利用稀疏点云生成正射影像吗?

RemoteSensingFrank commented 5 years ago

可以,生成的不是真正射,这个我在代码里完成了

zzxp commented 5 years ago

请问不是真正射是什么意思?还有就是如果只想通过已有的稀疏点云生成正射影像,需要哪些库?因为我看你添加了很多的库,配置起来有些复杂

learnccode commented 5 years ago

你可以先去查一下正射影像和真正射影像的区别,概念性的问题不多做解释。另外,我们很多库都是交叉使用的,建议你可以先按照我们提供的配置先弄好,再根据你的情况自行配置。我们已经提供了详细的配置说明,请仔细阅读,如有算法方面的改进建议,十分欢迎一起探讨,谢谢!

---原始邮件--- 发件人: "zzxp"notifications@github.com 发送时间: 2019年6月19日(星期三) 下午3:22 收件人: "RemoteSensingFrank/UAVProduct"UAVProduct@noreply.github.com; 抄送: "Subscribed"subscribed@noreply.github.com; 主题: Re: [RemoteSensingFrank/UAVProduct] 利用空三点云生成正射影像 (#8)

请问不是真正射是什么意思?还有就是如果只想通过已有的稀疏点云生成正射影像,需要哪些库?因为我看你添加了很多的库,配置起来有些复杂

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

RemoteSensingFrank commented 5 years ago

请问不是真正射是什么意思?还有就是如果只想通过已有的稀疏点云生成正射影像,需要哪些库?因为我看你添加了很多的库,配置起来有些复杂

如果只是稀疏点云校正的话需要的库包括只需要 GDAL,openMVG及其依赖

dannove commented 5 years ago

请问DEM如何生成呢?您代码里UAVGeoDenseToDEM()方法没有实现。我自己用稀疏点云和gdal里插值的方法得到的dem效果很差,不知道您有没有好的办法。

RemoteSensingFrank commented 5 years ago

一般做DSM还要经过一个密集匹配的流程,直接通过稀疏匹配得到的点不够密集,做完密集匹配得到密集点云,然后通过一个算法将密集点云滤波得到DEM,算法可以参考我们LidarProc这个项目发自我的华为手机-------- 原始邮件 --------主题:Re: [RemoteSensingFrank/UAVProduct] 利用空三点云生成正射影像 (#8)发件人:dannove 收件人:RemoteSensingFrank/UAVProduct 抄送:Frank Wu ,Comment 请问DEM如何生成呢?您代码里UAVGeoDenseToDEM()方法没有实现。我自己用稀疏点云和gdal里插值的方法得到的dem效果很差,不知道您有没有好的办法。

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or mute the thread.

dannove commented 5 years ago

谢谢!pix4dmap和photoscan可以用稀疏点云出dsm和正射,肯定没有用密集匹配因为会非常慢,不知您有没有研究过他们如何实现的?

RemoteSensingFrank commented 5 years ago

稀疏点云生成DSM和正正射?理论上是无法实现的

在 2019-07-17 11:45:07,"dannove" notifications@github.com 写道:

谢谢!pix4dmap和photoscan可以用稀疏点云出dsm和正射,肯定没有用密集匹配因为会非常慢,不知您有没有研究过他们如何实现的?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

dannove commented 5 years ago

大佬请问,sfm之后的稀疏点云怎么纠到gps坐标系下?没有控制点。我之前用过icp的方法,就是拿相机位置和gps坐标做icp,但这样感觉精度不会太好。有没有办法能够带pos做ba呢?

RemoteSensingFrank commented 5 years ago

BA本身就可以带POS做呀!直接用XYZ的坐标就可以发自我的华为手机-------- 原始邮件 --------主题:Re: [RemoteSensingFrank/UAVProduct] 利用空三点云生成正射影像 (#8)发件人:dannove 收件人:RemoteSensingFrank/UAVProduct 抄送:Frank Wu ,Comment 大佬请问,sfm之后的稀疏点云怎么纠到gps坐标系下?没有控制点。我之前用过icp的方法,就是拿相机位置和gps坐标做icp,但这样感觉精度不会太好。有没有办法能够带pos做ba呢?

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or mute the thread.

dannove commented 5 years ago

啊找到了,openMVG里是可以直接做,谢谢!

RemoteSensingFrank commented 5 years ago

不客气,建议你转成投影坐标做,自己写一个投影转换函数,可以参考我的代码发自我的华为手机-------- 原始邮件 --------主题:Re: [RemoteSensingFrank/UAVProduct] 利用空三点云生成正射影像 (#8)发件人:dannove 收件人:RemoteSensingFrank/UAVProduct 抄送:Frank Wu ,Comment 啊找到了,openMVG里是可以直接做,谢谢!

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or mute the thread.

dannove commented 5 years ago

大佬您好,我有几个问题跟您请教一下。

  1. 在摄影测量书里生成正射影像的方法是用数字微分纠正,将影像根据共线方程逐像素的投影到DEM上。这个方法您实现过吗?我觉得难度很大,而且没有考虑最佳视角选择的问题。
  2. 您的方法是通过先几何校正再图像拼接,这个方法现在是主流吗,这样理论上用单应矩阵是不是也能做?
  3. OpenDroneMap您了解过吗? 他的方法好像是先走三维重建的路线, 做完纹理图重建后再做投影得到正射影像, 缺点是最后正射影像上三角面片的形状非常明显。
RemoteSensingFrank commented 5 years ago

回去详细给你说发自我的华为手机-------- 原始邮件 --------主题:Re: [RemoteSensingFrank/UAVProduct] 利用空三点云生成正射影像 (#8)发件人:dannove 收件人:RemoteSensingFrank/UAVProduct 抄送:Frank Wu ,Comment 大佬您好,我有几个问题跟您请教一下。 在摄影测量书里生成正射影像的方法是用数字微分纠正,将影像根据共线方程逐像素的投影到DEM上。这个方法您实现过吗?我觉得难度很大,而且没有考虑最佳视角选择的问题。您的方法是通过先几何校正再图像拼接,这个方法现在是主流吗,这样理论上用单应矩阵是不是也能做?OpenDroneMap您了解过吗? 他的方法好像是先走三维重建的路线, 做完纹理图重建后再做投影得到正射影像, 缺点是最后正射影像上三角面片的形状非常明显。

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or mute the thread.

RemoteSensingFrank commented 5 years ago

首先,你说的数字微分纠正严格意义上来说并不是直接根据影像生成真正射的方法,数字微分纠正是在有DEM和内外参条件下的迭代方法这个理解原理以后实现其实不难,第二单应也可以做,而且理论也很严密,但是怎么做拼接其实不是重点,我这么做应该是快速拼接的主流做法只不过细节有差异,关于三维重建之后再做真正射的问题,这个实际上应该这么做,但是耗时长发自我的华为手机-------- 原始邮件 --------主题:Re: [RemoteSensingFrank/UAVProduct] 利用空三点云生成正射影像 (#8)发件人:dannove 收件人:RemoteSensingFrank/UAVProduct 抄送:Frank Wu ,Comment 大佬您好,我有几个问题跟您请教一下。 在摄影测量书里生成正射影像的方法是用数字微分纠正,将影像根据共线方程逐像素的投影到DEM上。这个方法您实现过吗?我觉得难度很大,而且没有考虑最佳视角选择的问题。您的方法是通过先几何校正再图像拼接,这个方法现在是主流吗,这样理论上用单应矩阵是不是也能做?OpenDroneMap您了解过吗? 他的方法好像是先走三维重建的路线, 做完纹理图重建后再做投影得到正射影像, 缺点是最后正射影像上三角面片的形状非常明显。

—You are receiving this because you commented.Reply to this email directly, view it on GitHub, or mute the thread.

dannove commented 5 years ago

不好意思又打扰您了。 我阅读了您的使用平均高程和外参做几何校正的代码, 发现我之前也尝试过类似的方法。 就是基于共线方程将照片的四个角点投射到地面上。 我直接用的opencv的warpPerspective方法, 就用了四角坐标。 最后我的效果挺差的, 照片错位很明显。 您的测区平均高程是怎么得到的, 最后效果好吗?

RemoteSensingFrank commented 5 years ago

不好,通过测区平均高程效果不太好,但是也不至于特别差,如果效果特别差估计是你的外方位元素精度有问题。

Jiatutu commented 4 years ago

UAVGeoDenseToDEM()这个方法没有实现,能提供一下吗? 还有就是我现在求的稀疏点云是以第一个相机坐标系为基准的,怎么转换成经纬度的呢?是利用无人机的航向角、俯仰角等吗