Underwater 3D mapping (原创)
先介绍下dataset, 名叫TourEiffel09, 627张图片,来自campaign Bathyluck 2009 对 Mid-Atlantic ridge的海洋考察,考察项目主页在这里,法语主页请用google translate翻译。TourEiffel09是所有图片数据中一个很小的dataset,主要反应的是一座小型的海底活跃火山。先上图片:

这几张图就选自TourEffiel09 dataset。。。
目标:用这627张图片完成对火山的3D重建。
方法:structure from motion。
难点:数据库图片无序,图片间关系未知;图片就像上面的那样,有大量海洋生物,有因火山活动造成的海底温泉,大量热水涌出。。。
具体实施:1.image registration。主要寻找图片间的correspondences和transformations。2.structure from motion。先生成图片间关系的骨骼,然后SFM算法根据骨骼生成sparse 3D model。最后把骨骼未包含的图片尽可能register到sparse 3D model上面。下面这张图,每个节点代表一张图片,红色节点和连线就是骨骼了,绿色的就是最后拓展的图片。很可惜的是右下方有大约100多张的图片,死活是连不上骨骼啊。。。

结果:627张图片中444张完成registration,生成110592个3D points,Bundle adjustment back-projection error为0.076
将这个sparse 3D model生成3D mesh,见图:

最后生成ortho-mosaic,贴到3D mesh上面生成textured 3D model, 见图:
前视图

左视图
右视图
总结:就技术而言,跟“罗马一日建成”相差应该不大吧。。。自我感觉良好,我要是像他一样有微软的支持就好了。。。但是跟此帖的技术还有差距。。。争取早日超越。。。。哈哈。。。
enjoy…..!
(声明: copyright归作者本人所有)
这是你的毕业论文?
你说的有差距是指哪方面?计算规模还是重建精度?
你应该是有运算集群可以用的吧。。。不知道家用电脑能搞个多大规模的SFM,我也想玩啊。
有个不太理解的地方啊,明明是卫星图片怎么进行3D重建呢?
基本算是毕业论文的主要内容了,差距还是在规模上,如果规模太大了,精度自然就下降了。。。我只有一台16核,128G内存的服务器可用。。。@cvchina
图片是用的最开始的那3张图片类似的图,这些图片都是由海底机器人采集的。。。你是说哪个是卫星图片?@danceyoung
家用电脑也可以做很大的。。。只要不把所有数据存在内存里就好了,效率稍微低点。。。@cvchina
貌似我的确应该解释下图片尺度。。。不熟悉的话,看起来可能不晓得图片有多大,看第二张图,里面有一条我也不晓得的生物,你就拿它当尺度,他最长也就5米吧。。。所有图片基本上都是类似的尺度。。。而且你要知道,海底机器人采集图片的时候一般都只能距离海底5到10米左右,再远就很难看清了。。。@danceyoung
炫耀的明显啊。
有时间自己拍点数据玩玩。
你是在说服务器?。。。这回真不是在炫耀。。。我平时吹牛炫耀的时候还是会比较害羞的,往往想要先自嘲一番。。。呵呵。。。我在学术上还是比较认真的,既然是服务器,所以就不止我一个人在用:假设有20个人在这台服务器工作,CPU的计算能力就很弱了,实际上我在实测过,在我自己的机子上运行程序要比在这台服务器上快;之所以要用这台服务器是因为即使20个人在用,就内存而言,每个人分享到的还是比较大。。。真正如果有微软或者google的并行计算能力的话,这些小破玩意就不在话下了。。。@cvchina
自己做建议用video,而且要保证不要在同一位置停留太久,移动一定要smooth。。。@cvchina
做一个玩具直升机,航拍,然后重建。
哇哈哈。
也许以后的视频监控,就不是用静止的摄像头,而是用一坨飞来分去的摄像头加上vSLAM,有么有这种可能性?
如果是机器人采集的话我大概有点感觉知道怎么个步骤的了,至于那么多图的匹配关系不知道在一个比较粗的层面用匹配点建立起来的graph关系,mapping到一个manifold上是不是直接就可以估计出最原始的图片的采集位置。
@danceyoung
没明白你的问题,不懂什么是manifold。。。但是我新上了张图片,不晓得能不能帮你解释点什么。。。
想法很好。。。但是好遥远呃。。。@cvchina