Fork me on GitHub

【干货篇】58 同城:视觉定位技术在室内 VR 中的应用(附视频回放 +PPT 下载)

分享嘉宾:沈俊,58同城TEG多媒体平台部算法资深工程师
整理出品:扬奇智能社区

PPT下载及视频回放:
https://www.jancsitech.net/#/community

导读: 目前室内场景VR展示在房产领域应用广泛,但VR数据的采集整体成本较高,或需要高昂的硬件成本,或需要较多人力进行后续内容制作。为了提升VR素材生产效率,同时引入自动化方案降低内容生产成本,我们引入视觉定位算法,在用户侧降低素材采集难度,提升用户体验的同时,降低后续VR内容生产成本。本次分享首先概述业界常用视觉定位算法,然后分享SLAM技术在58同城房源VR中的应用思路,详细介绍房源VR在商用过程中遇到的问题和解决方案,以及当前应用成果。

嘉宾介绍: 沈俊,58同城TEG多媒体平台部算法资深工程师 。2016年硕士毕业于西南科技大学,毕业后一直专注于计算机视觉方向算法应用与落地,曾从事机器人制造、自动驾驶等行业,负责视觉导航定位相关算法研发工作,2020年加入58同城,先后主导完成了自研移动端全景视觉定位算法及全景图像拼接算法的研发工作。

目录

  1. 视觉定位技术的基本概念及其意义
  2. 视觉定位在房产业务中的应用分析
  3. 视觉定位技术应用的思考和总结

图片

这次分享主要从三个方面,第一是视觉定位技术的基本介绍,第二是在实际房产中的应用和分析,使用原因等。第三是针对于视觉定位技术做一些拓展,思考实际应用中的问题。

01 视觉定位技术的基本概念及其意义

图片

视觉定位技术的基本概念有两个关键点,一个是视觉,一个是定位。视觉正常来说是图像,会用到包括深度、单目、双目等相机。定位即位姿的概念,如我们需要知道它的pose即它所在的位姿,这里会有各种方法得到定位,包括语义方面,检测方面等。定位不只是视觉,也可用其他传感器,如WiFi、激光等。目前房产实际产品中主要应用SLAM作为定位的方法。

上方视频主要介绍了ORB-SLAM2,这是个很好的开源项目。从视频中可看到,其实视觉可以做很多事情。在自动驾驶场景中也会有应用。它们的核心点基本都不会离开图像数据,通过图像获取的一些数据,然后对齐进行操作,计算得到pose。适用于有不同的场景,当然也可以有不同的传感器,利用这些信息计算得到特征点、关键帧等信息。

图片

视觉定位技术可用在室内外场景,也可用手持设备或自动驾驶。室内VR是我们目前做的项目,包括房产相关业务,都会使用SLAM技术。

图片

SLAM主要有两方面,定位和建图。定位是自己所处位置,建图是把环境信息表述出来。SLAM兼容了两者,把定位和建图相辅相成,得到pose的同时构建环境信息,然后再利用环境信息优化pose。

图片

SLAM有基于视觉的,也有基于激光的,具体主要依据数据源获取不同。基于视觉的有视觉SLAM,基于激光有激光SLAM。本次主要内容为视觉SLAM,视觉定位工作。当然定位不只是SLAM技术手段。而本次主要介绍基于视觉的SLAM技术。使用到的相机有很多种类,其中用单目相机的缺点是会丢失一个维度,距离信息。而距离信息可通过辅助手段得到,利用已知信息、已知高度恢复深度信息,从而恢复一个尺度。

图片

上图是SLAM大概框架。基于视觉SLAM不只有优化,还有滤波等框架。其中优化框架简单分为4部分,前端视觉里程计,后端优化模块和回环(主要用于如大场景的误差校正等),建图。整体流程为传感器数据传输后,可得到里程计信息,从而进入后端优化和建图,同时来说,会通过传感器数据检测有没有闭环,有闭环后进入优化。

图片

视觉里程计获取也很简单,直接获得两帧间或两个图像间的运动。后端优化会通过posegraph、bundleajustment手段或滤波器规划手段。

图片

回环检测在实际应用中用得很多。大场景情况下,误差绕一圈后很大,但通过一些闭环手段,应该要减少误差。建图模块可建出如2D图或激光图。建出图可方便看位置信息是否正确,其次可利用图的效果做匹配优化等,可获得更精确位置。

02 视觉定位在房产业务中的应用分析

图片

接下来是房产业务中的具体应用。在VR看房中利用了视觉SLAM技术。首先VR看房,用户需要了解整个房型,如户型或房屋内部细节等。现有方案中,会通过激光方案或深度相机建模,最早的研究基于全景相机建模。整个应用期望是实时定位,提升用户体验,如果SLAM技术很卡,耗时很高,会让用户感到不顺畅,过程卡顿等。另一个SLAM核心点在户型之间的定位,包括户型拼接等。

图片

利用全景相机实时拍的视频流构建轨迹,生成户型图,然后利用定位信息把户型图房间信息拼接起来,组成房屋户型。细节会通过最后上线的VR展示看到 ,VR展示里的漫游点等,都会利用定位信息。整个操作来说,刚开始用户进行拍摄,之后根据各种数字化手段,得到轨迹信息,有一个对房屋的展示和漫游点。而用户想移到哪个地方,就会移过去,能更清楚地了解房屋信息和细节。这里重要点是当漫游错了或漫游效果不好,根源可能来自定位不准。可以想象一个很乱的场景,给用户的体验更加不好。

图片

当时考虑自研SLAM初衷是借鉴了很多开源框架和现有框架,包括Arkit/arcore、ORBSLAM2、SFM等。从几个方面对比后为什么选择自研,考虑到720度展示要有全景相机的支持,后续扩展也会做,最后通过单个相机完成确定图。在精度方面和丢失率也有考量,还有些改进的点,如针对房产场景和应用环境优化,拍摄点优化等。可扩展性因为之前模块是可以完全随意拖动,可全部做成模块化的手段。另一个是大场景支持,因为开源方案在工程上面有很多bug,所以运行是不满足要求的,所以基于ORB SLAM2的大框架,做了深度定制化。然后把模块进行分块以实现想要的结果,可一直迭代运行,经纪人拍完一套可再拍另外一套,中间不需要停顿,也不需要重启,还有一些断点重叠,如拍的过程突然有电话,接完后是不是还继续拍,面对这种情况做了兼容和处理。

图片

上图框架涉及到当时用户的痛点和当时遇到的问题,如会从输入端确定图像,会做未知求解模块,建图模块和闭环模块,位置关联模块主要有精度和丢失率。在这方面会做深度化定制,包括测光、测速,速度提升和内存消耗缩减。在建图模块里,就断点重连,及多套续拍。其实所有都是依据当时调研及实际用户拍摄反馈的问题,从而做了深度化定制。闭环模块会解决一些大场景的拍摄,如别墅如果没有闭环模块,拍完后会发现完全和真实户型不一样。这里麻烦的点是刚开始拍摄时,频率需要很高,所以对一些帧和关键帧进行优化,然后多线程的内存做一些处理。在精度方面做了精度提高和提升,为了降低丢失率,以及提升户型定位结果,使拼接更加准确。

图片

上图是实际的用户体验过程中拍摄效果,户型生成,轨迹生成及拼接效果,可以看到相对来说比较准确的。在房产中应用提供了较实时的定位。现在也已商业化落地。这块展示的可视化界面,可认为是一个低清图,但实际房屋的展示,细节的展示,是高清可达到8k的。且这个方案可跨平台运行,支持移动端和后端,平均整个处理耗时小于50毫秒。

图片

定制化的需求包括光线强度,轨迹丢失。其中利用一些手段,如滑窗以及均值和方差让精度更高。丢失率发生在光线切换,强光线突然变化弱光线,遇到白墙。其中一个解决手段,是提示轨迹快丢,提醒用户走慢一点。第二个针对白墙问题,可利用线匹配方式,或加后端语义拼接,最终把整个户型拼好及最后漫游展示更符合用户体验。拼接的另一个问题,在做匹配点优化时,最重要的视觉里程计,在移动端用深度学习方法,或用特征点方法必然造成时间损耗很大。要达到精度高且丢失率低,我们的方法是2017年开源的文章叫GMS的匹配方案,可大幅度降低丢失率,一定地提高精度。我们也会通过筛选,而所有的方法都是为了更低的丢失率,且提高精度。

图片

正常情况,移动端是第一手拿到数据,数据源包括信息是最全的,从这方面来说,丢失率会比PC端更低,只是在丢失率方面去评价,而不在整个拼接成功率上去评价。另外一个优化在商业化落地,会考虑耗时,降低内存,对整个框架进行内存方面的优化,让整个SLAM内存降到可接受的范围。

图片

上图是前段时间在 SLAM上线前和上线后的数据对比。SLAM在整个VR房产中的应用提升比较明显,包括轨迹丢失率,轨迹丢失率和空间准确率等,虽然都未达到100%。这些通过后端会有弥补,包括通过线特征以及语义拼接等。

图片

上图是正常线上数据的汇总。

03 视觉定位技术应用的思考和总结

图片

接下来是针对于视觉定位技术应用方面的思考和总结。技术可应用在包括自动驾驶场景,当下火热的元宇宙定位,以及汽车VR中。

图片

视觉定位技术常见用途是AR地图导航,其中会用更多传感器,包括GPS定位等。

图片

SLAM后续的优化手段有很多,总的来说有几个点,第一个是多传感器的融合,加上IMU可解决白墙的一些情况。第二个是通过其他技术,包括和深度学习的结合,线特征以及真正语义的SLAM处理。"


本文地址:https://www.6aiq.com/article/1660460977544
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出