1. 说好的虚实结合,为什么一到现场就露怯
1.1 游客看到的第一眼,决定整个项目的生死
我这几年一直在做文旅数字化相关的东西,HarmonyOS 6.0 出来之后,我明显感觉这个生态对 AR 类应用友好了一大截,于是拉了一个小团队,把一套 AR 文旅导览系统从零到一做了出来。核心功能不复杂:游客打开 APP,举起手机对着某个景点或文物,屏幕上就能出现叠加在真实画面上的三维模型、文字说明和交互按钮。听起来很美好,对吧?但真正到了景区现场跑测试的时候,问题一个接一个冒出来。
最先翻车的就是空间定位。你站在一个几百年的古建筑前面,手机陀螺仪和 GPS 告诉你"你的位置正对着大殿正门",但实际上你站在偏了五六米的侧廊,AR 模型自然就悬在了半空中,跟实景对不上。这还不是最夸张的,在室内展馆里,GPS 信号基本报废,定位误差直接奔着二三十米去了,模型要么消失要么飘到墙外边。游客第一次打开 APP,看到这种画面,大概率直接卸载走人。所以我才说,AR 文旅导览这个项目,看着是 APP 开发,本质上是定位工程。
这篇内容,我想围绕空间定位和文物交互这两条主线,把我在 HarmonyOS 6.0 上做这套系统的完整过程、踩过的坑、取舍方案都记录下来。适合已经在做移动端开发、想进 AR 文旅领域的团队参考,也适合那些在景区/博物馆做数字化规划的同学,希望大家少走我走过的弯路。
1.2 GPS 在景区里的真实表现:误差不是米级是十米级
先给没去过现场的朋友泼盆冷水。室外空旷地区,手机 GPS 的精度理论上能达到 3 到 5 米,但景区是什么环境?高墙、古树、大型金属雕塑、密集人流,这些都是 GPS 信号的多路径效应制造机。信号从卫星发下来,在建筑外墙弹一下,再反射到手机接收器上,你看到的定位结果就不是真实位置,而是"带偏差的位置"。我实测过在一个寺庙建筑群里做测试,同一部手机同一时刻,GPS 给出的位置和真实位置差了将近 12 米。
这个误差对导航类 APP 来说可能还能容忍,毕竟地图上有个蓝点,误差十几米也能看个大概方向。但对 AR 来说完全不行。AR 需要的是"厘米级到分米级"的相对位姿——你手机朝哪个方向、在哪个高度、镜头朝向哪,每一样都必须精确,否则虚拟模型就叠不到真实画面上。GPS 只能告诉你"你在这座院子里",但告诉不了你"你正站在石碑正前方 1.2 米处"。所以,户外也不能只靠 GPS,必须有别的补位方案。
1.3 光线、人流、展柜反光:AR 导览真正的工作环境
除了定位,AR 导览还要面对一个特别现实的问题:现场环境太不可控了。室内博物馆里,为了文物保护,灯光普遍偏暗,而且都是从顶部下来的射灯,明暗对比极强。手机摄像头在这种光线下做图像特征提取,经常出现画面过暗或过曝,导致视觉定位失效。
室外更麻烦。夏天正午的太阳直射屏幕,手机根本看不清画面;下午三四点光线斜射,文物表面阴影变化很大,AR 模型叠上去以后,光照方向和真实环境不一致,看起来就特别假。还有人流,节假日博物馆里人挤人,游客手里的手机会不断被遮挡、晃动,追踪的稳定性直接断崖式下跌。
这些东西在开发环境里永远模拟不出来。我第一次带着测试机去现场跑的时候,心里想的还是"引擎能力行不行",到了现场才发现,最核心的问题是"我怎么让用户在这么恶劣的条件下,还能稳定看到正确的 AR 画面"。这才是文旅 AR 项目的本质挑战。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 空间定位别指望单一方案:我给几个定位技术做了分工
2.1 先做定位需求分级:园区里、展馆内、展柜前
被现场教育过之后,我做了一张很简单的定位需求表,把游客的使用场景分成三档。
第一档是园区级,人在户外大院、街道、广场上移动,精度要求不高,能大致知道在哪个区域就行,误差 5 到 10 米可以接受。第二档是室内级,游客走进展馆,需要知道自己在哪个展厅、朝着哪个展柜,这时候误差得控制在 2 到 3 米以内。第三档是展柜前,游客举起手机正对着某件文物,模型要精确叠加在文物本体上,这时候要求的是厘米级的相对位姿,得靠视觉追踪,而不是任何标签定位。
不同档位用不同技术栈,千万不能指望一套方案通吃。我最终定的组合是:室外用 GPS 加航向修正,室内靠视觉重定位做兜底,蓝牙信标只用来判断"你在哪个展厅",展柜前的精密叠加交给 AR Engine 的视觉追踪。每套方案负责自己的精度层级,互不干扰,稳定性才有保障。
2.2 视觉重定位(VPS):给每个展柜建一张"特征地图"
视觉重定位是目前做室内 AR 最靠谱的路子,思路特别朴素:在游客举起手机之前,我先派人在展馆里把每个展柜、每面墙、每根柱子拍一圈,提取图像特征点,做成一张"视觉特征地图"存到服务端。游客上线后,手机摄像头实时采集画面,提取特征,和地图里的特征做匹配,一旦匹配上,就能反推出手机
