制作logo免费网站,建筑企业资质公司,山西省住房和城乡建设厅官方网站,asp手机网站源码文章目录 一、最初的项目思路二、建图和定位分离的项目思路1、建图2、定位 个人见解#xff0c;如有错误#xff0c;请多包涵 一、最初的项目思路
在大创项目的开始#xff0c;将手机确定为应用设备#xff0c;传感器确定为相机。
由于知识储备的原因#xff0c;在头一次… 文章目录 一、最初的项目思路二、建图和定位分离的项目思路1、建图2、定位 个人见解如有错误请多包涵 一、最初的项目思路
在大创项目的开始将手机确定为应用设备传感器确定为相机。
由于知识储备的原因在头一次接触SLAM时我认为这会是解决这个项目的最佳方案。
注意如果你在网上搜索的搜索过程中同时带着SLAM和导航这俩关键词那么你大概会看见一系列的关于机器人导航的内容机器人导航需要使用稠密的点云地图但是就人的AR导航而言稀疏点云地图就可以做到。
从普通的SLAM中进一步选择在视觉SLAMVSLAM和激光SLAM中选择了视觉SLAM。
视觉SLAM以相机为传感器但SLAM还有更多种传感器配合的方案。
考虑到手机上配备的传感器手机上不止相机一种传感器于是选择了视觉-惯性 SLAM (VISLAM) 即视觉和惯性测量单元 (IMU)结合的SLAM方案其中较为优秀的算法就是ORB-SLAM3。
ORB-SLAM3构建的地图还正好是稀疏点云地图于是将项目最初的方案思路定为
将ORB-SLAM3做安卓端的移植既在手机端直接建图也在手机端做导航功能但是遇到了一个问题相关资源极其稀少 网络上关于ORB-SLAM3的安卓端移植的资源和博客寥寥无几能找到的就三四篇去掉没有介绍和配不成功的我只找到了一篇。
资源链接
https://nijiproject.coding.net/public/hitomi/hitomi-android/git/files作者效果视频链接
https://www.bilibili.com/video/BV1ph411x7d7/?spm_id_from333.337.search-card.all.click如果在安卓设备上在线建图会出现如下问题 1、帧率不高最高不超过20fps卡顿略微明显 2、在线建图极大程度占用了手机上的计算资源容易引起设备发热加快手机电量的消耗 3、相机视角移动快速或是存在快速移动的景物相机位姿容易丢失建图过程不是很流畅。上文开源项目的作者本人建图的演示视频中建图视频是1.5倍速的尚且有点慢一倍速的行走速度可想而知
如果不使用该开源项目仅考虑自身的编程能力我暂时还不具备自己将ORB-SLAM3完全地移植到安卓端上且不产生任何错误的能力况且在设备上切实存在的物理问题目前是无法解决的。
既然我无法在手机上完成使用ORB-SLAM3进行在线建图的功能换种角度想它是放错位置的功能建图这个部分的任务手机不是很好的载体。
在后续的思考过程中我回想起了在Ubuntu18.04上配置完ORB-SLAM3后使用数据集进行离线建图的过程我或许可以采用以下两种想法进行建图 1、在电脑端运行ORB-SLAM3实时调用手机摄像头或是其他摄像头进行在线建图 2、在电脑端运行ORB-SLAM3使用图像数据集进行离线建图。
其实我真正需要的是ORB-SLAM3其中点云地图的构建功能还有视觉重定位提供的位姿信息我大可以分开做两部分的功能
将建图和导航分为了两个部分处理在电脑上实现建图这个部分在手机上使用软件完成导航。
在思考进行到这一步的时候虽然已经浪费了一个月的时间将工作集中于SLAM的学习和项目的思路探索中但是项目进入到了新的进展中。
二、建图和定位分离的项目思路
1、建图
不知道在线建图是否有其他方法但是我只尝试过使用ORB-SLAM3进行在线建图这或许是一个可以再进行思考的要点。
不过考虑到我需要地图的目的后在线建图和离线建图的区别被模糊了我只需要一份可以用于定位导航的点云地图即可它是通过在线建图还是离线建图完成的我并不在乎。
对于我需要完成的室内导航目的来说在线建图和离线建图无甚差别。
进而在了解完R TALK | 旷视研究院SLAM组负责人刘骁三维视觉与机器人这篇文章后我了解到了一个新的名词Visual Localization即视觉定位。
在旷视的这篇文章中图片中关于构建稀疏点云地图使用的技术是SFM技术Structure from Motion而在文字描述的部分使用构建技术是SLAM技术。
这个部分让我产生了疑惑通过其他文章的了解我得知
1、SFM更适用于大规模场景下的点云地图构建ORB-SLAM3适用场景规模较小
2、SFM可以使用无序的数据集进行三维重建ORB-SLAM3需要使用有序的数据集进行点云地图构建。如果考虑到我打算做的医院室内导航毫无疑问SFM技术构建的点云地图是更合适的。
但是新的疑惑又产生了SFM三维重建的场景地图会比ORB-SLAM3的稀疏点云地图更适合导航使用吗
想请教下各位怎么理解三维重建中SFM和MVS的关系?
SFM同样也可以构建稀疏点云地图只是可以进一步构建为稠密点云地图基于视觉高精定位的“室内AR导航”技术点解析商汤科技的这篇文章介绍的导航应用的地图就是稠密点云地图而后使用几何方法直接根据相机输入的图像进行2D-3D的特征点匹配。
就我目前的想法来看我并不赞同这种使用稠密点云地图做法可能是因为我并不了解稠密电点云地图特征点匹配这一部分的内容他们或许有别的考量
首先是稠密点云地图存储时占用的存储空间就远大于稀疏点云地图
其次是要在这么大规模的点云地图内搜索当前图像所对应的特征点计算难度相当大
手机端的运算资源是有限的。
我是该布置在设备端还是云端手机端真的能使用这种方案吗我对此持疑惑质疑态度。
所以我打算将导航上使用的地图确定为稀疏点云地图毕竟在选择完目的地、确定完当前位置后总归是要根据地图使用路线规划算法生成路线的因此点云地图是必要的这是可以确定的内容。
建图部分的细节讨论这部分若是没有超链接说明还没写好
2、定位
如果要实现导航功能地图是必不可少的但是还需要知道用户当前的位置才有可能根据目的地的选择才能进一步通过路径规划算法给出可行的路线方案才能接着做导航。
阅读完基于单目相机的视觉重定位方法综述这篇文章后其将相机重定位方法分为三种
1、几何方法
2、图像检索方法
3、深度学习方法三种方法是依次发展的。
首先是第一种方法几何方法
基于视觉高精定位的“室内AR导航”技术点解析例如在这篇文章中商汤科技的方案是根据已经构建好的稀疏点云地图以相机拍摄图像为输入提取图像特征后直接进行与点云地图2D-3D的对应关系而后获得当前的位姿数据。 商汤科技的定位方案 如果只是简单地基于点云地图进行直接视觉特征点匹配也就是通过估计当前观测到的图像的二维特征点和3D 场景模型中的空间点之间的刚性几何对应关系不仅具有在不同场景下的适应性不足的还有计算量较大的问题。
但是其还有其他可以改进的方式例如地图分为三类几何建图Geometric Mapping语义建图Semantic Mapping和广义建图General Mapping
几何建图主要关注场景中物体的形状、位置和空间关系以生成精确的几何模型。
语义建图的地图不仅包含几何结构还能提供关于物体类别、属性和语义关系等信息语义地图可以通过对点云地图进行语义分割等工作得到
广义建图是一个更综合的概念它结合了几何建图和语义建图的思想并进一步考虑其他方面的信息如时间、光照、温度等。广义建图的目标是创建一个综合的地图包括几何、语义以及其他环境属性的信息以更全面地描述和理解环境。
地图方面的改进或许是一个可以探索的领域这部分若是没有超链接说明还没写好。
其次是第二种方法图像检索方法
因此可以考虑构建图像数据库通过在图像数据库之中检索当前相机拍摄图像的全局描述子来确定当前的位姿。
检索方法构建图像数据库可以通过词袋模型或是颜色直方图构建其匹配的全局特征 词袋模型通过提取局部特征构建视觉词汇表将局部特征与总体图像形成的视觉词汇表做比较得全局特征向量因此可以用作全局特征。
颜色直方图做比较的为RGB或是HSV空间本身就具有一定的全局性图像提取出来的每个颜色区间的像素数量就可以作为全局的特征。
当通过全局特征进行粗定位得到相似的关键帧后对比局部特征可以得到更精确的定位通过图像的位姿得到当前位置的位姿但是因为图像不可能覆盖每一个位置所以位姿存在误差。
目前比较倾向的方法的是将图像检索方法但在R TALK | 旷视研究院SLAM组负责人刘骁三维视觉与机器人这篇文章介绍的研究中其在粗定位后接的是2D-3D的几何定位和几何方法还有图像检索方法都有所不同但我认为这是可行的方案起码在理论层面上可行是接下去尝试的主要地方。 旷视的研究方案 最后是第三种方法深度学习方法 深度学习方法构建神经网络模型暂时还不是很了解需要对深度学习了解之后才能总结不甚了解不做讨论 未完待续。