点击数量: 580
(2020-01-03 14:44:05) 日常场景,基于多视角Multi-view重建,不使用RGBD方式的话,就选SfM(StructurefromMotion)+MVS(MultiViewStereo)+SR(SurfaceReconstruction)+TM(TextureMapping)套路啦,这是传统基于多视几何的路子,原理就是利用多张图像间的特征点匹配求解相机内外参数和三维空间点的位置,也就是稀疏点云(一堆点),之后再让它浓一点,变成连续的,再加点颜色和纹理,dataflow大致是:images——sparsepointcloud——densepointcloud——mesh——meshwithtextureSfMMVSSRTM当然做到dense点云的话看起来就比较逼真了,想把点连起来变成连续多边形网格(也就是表面)再加上纹理信息,就是可以各种玩的3D模型了。商业软件很多了,上面已经有一些不错的例子,Pix4Dmapper是一款专门用于无人机航拍图像重建的产品,效率质量惊人,当然用于地面场景应用也是可以的。如果不怕麻烦的话,这里主要介绍一些research的例子:SfM:大家比较熟悉的就是ChangchangWu的VisualSFM啦,这是个写的比较溜的非开源福利,Changchang大神一致不公开源码,是他一行行累出来的作品,其中的SiftGPU和PBA也是大神的作品。我也算用过一些不同的SfM代码,各路大神写的,包括一些大牛组的,讲良心VSFM算是我见过鲁棒性最好的之一(严谨脸),极少出现数据量太大、数据质量(各种因素blabla)差造成的崩、卡、完、“就是没结果”之类,虽说已有岁月包浆,但其精度和稳定性值得信赖的。非说槽点的话,也就是图像匹配和BA的效率不高,各种改进此处略去,如果只是用一下的话还是包您满意的。还有MVE、OpenMVG(openMVG/openMVG)和COLMAP(COLMAP-Structure-From-MotionandMulti-ViewStereo),现在的框架都必须追求全面,所以稍微看下主页就会发现MVS等功能都是打包的。(bundler还是要说的,但是用起来稍微麻烦,不推荐上手玩)MVS:PMVS、CMVS,CMPMVS,以及OpenMVS,各种dense层出不穷,本人代码能力有限,对于这块还是望而生畏的(顺吐一下,还是不要去自己编译OpenMVS了。。可能新版本已改观,未求证)。OpenMVS效果还是很赞的,虽说时常出现莫名的罢工,自带了VSFM和OpenMVG的接口,贴心。SR和TM:CV,CG,CCTV,好吧,其实OpenMVS都有啦,请自行观看cdcseacave/openMVS。另外,想自己翻来覆去把玩结果的话,Meshlab是很好的。VisualSfM——OpenMVS,是一套比较简洁的方案,也可以把OpenMVS替换成CMPMVS。另外做重建数据是非常重要的,自己拍的话请尽量量大出奇迹,多一点视角,保证每次拍照位置的距离合适(基线),实在懒的话就上视频了,找个软件或者自己opencv弄成帧再喂进去(感兴趣的话opencv和matlab也可以自己写重建算法,有高质量库和工程,例如普林的SfM相关课程)。一次拍的不好,可以多拍几次,看下哪里空洞补哪里,新数据加进去再跑一次就好(特征点检测匹配等中间结果慎删)。想更多了解原理,推荐一本经典教材,《计算机视觉中的多视图几何》(MultipleViewGeometryinComputerVision),超级经典,反正我是没好好读完过。自己从图片一步步重建出逼真的model是一件很爽的事情,像创世一般,比如几天重建个罗马,几天重建个世界啥的。。,如果之前没接触过一定会被算法的能力震撼,那么,欢迎入坑。如果想用深度相机来做,那就是另一套路子,Kinect和Realsense都有相关的SDK可以用,还有PCLetc.了解粗浅这里就不说了。
哪款软件可以实现基于多张二维图像的三维重建
上一篇:绘本浏览:让孩子用耳朵读书 下一篇:张艺谋文学谋划师出书曝内幕 斥张伟平“十宗罪”

 

网站地图