写点什么

百度贾海禄为你揭秘室内定位技术的神秘面纱

  • 2016-04-14
  • 本文字数:2466 字

    阅读完需:约 8 分钟

地图软件已经成为我们日常出行必不可少的工具之一,在导航和搜索上带来了很多便捷的帮助。而定位技术在地图软件里的应用可谓无法替代,尤其是在小范围的室内定位环境下,如何帮助用户高精度搜索导航,是百度定位技术的研究重点。

在 3 月 26 号由百度开发者中心百度地图开放平台百度车联网联合举办的第 62 期“基于地图开放技术的车联网实践”技术沙龙上,来自百度定位组的资深软件工程师贾海禄,分享了《室内定位技术揭秘》的主题演讲,介绍了在使用地图导航和搜索过程中都用到了哪些不为人知的定位技术,以及如何克服定位技术本身的技术缺陷。

演讲者介绍:

贾海禄,百度资深软件工程师,目前负责室内高精度定位技术方向的研发工作,专注于利用机器学习技术持续优化室内定位服务,对惯性传感器、WIFI 定位、蓝牙定位、地磁定位等相关技术有深刻研究,快速推动了室内高精度定位技术在百度地图产品上的应用。

首先,贾老师举了一个例子,通过百度地图的室内导航技术帮助用户定位导航到位于购物商城五层的商店。由于该商城使用的是地磁定位,效果比 Wi-Fi 好,定位精度在 3 米以下,所以根据地图给出的导航路径很快乘坐电梯到达了目的地。

在这一过程当中用到的室内定位技术在哪些领域还有用武之地?其实在其他场景的应用很多,像商场、机场定位、交通枢纽定位导航、停车寻车、店铺查找、团购活动推送、用户画像挖掘等领域都很有价值。

关于室内定位估计很多人会存在一个误区,那就是认为手机上的 GPS 能实现一切定位技术。答案是否定的。虽然 GPS 精确度比较高,也支持连续定位技术,但是缺点是功耗太高,且初次打开 GPS 时所用的定位时长较长。而对于室内定位来说,GPS 最大的不足就是室内不可用,因为信号覆盖不到室内,地下停车场更不用说了。

室内定位常用的这些方法是什么呢?

基于 LED 灯具和手机的搭配可以进行定位。经过编码的特殊 LED 灯具通过电路控制设备,能够被手机前置摄象头感知 LED 灯本身的阴暗变化,从而定位具体位置。(如下图)比较常用的定位技术主要还是基于 Wi-Fi 和蓝牙,原因之一就是成本较低,部署简单,便于维护。

那么在没有 GPS 同时要减少部署的情况下,如何实现室内定位呢?当然是靠手机获取基站信号,能够正常通话的手机都能检测到基站信号。其次就是通过 Wi-Fi、蓝牙和地磁,基本上每个建筑都会有地磁信号,并不需要特殊的发射源。

信号与位置之间的相关性:

  • 离无线设备越远,信号越弱。
  • 不同位置扫描到不同的 Wi-Fi、蓝牙等信号。
  • 设备固定、各处信号强度相对稳定。

通过以上三个因素,就可以制定出可行的技术方向,那就是基于室内无线电信号构建出一套由无线电信号到 XYZ 映射的技术,即室内定位技术。基于这样的思路制定出最简单的一种定位方法——三角定位法。当空间有三个真实的位置 AP(X1Y1,X2Y2,X3Y3),处于其中的手机就能检测出 AP 信号强度,最终得到一个几何位置。这种方法的优点是模型简单,容易实现;缺点是 AP 信号辐射分布刻画不足,精度不高。

但即使是在这样一个简单的定位模型下,还是会存在很多需要解决的技术问题。比如,随着和 AP 位置的距离远近导致信号强度逐渐递减。当然,因为手机不同的制造工艺,不同的芯片,不同的机壳材质,都会导致无线电信号 RSSI 感知的差异,呈现出非线性的规律。(如下图)

如果说三角定位法的模型效果不好,那如何去解决这些问题呢?下面来介绍几种使用场景较多的定位方法。

指纹法

指纹即对空间中各个点的各种信号采集数据,数据代表了复杂模型。通过合适的指纹相似度计算公式,即各种距离计算公式来计算实质是 KNN,求得 TopN 相似指纹的加权中心点。

对真实的 AP 空间每个点的信号强度进行采集,检测每个点上 AP 辐射的强度,在服务器当中对噪音做一些校正处理,最终把这些数据输入指纹库,而这个指纹库就是根据真实空间分布的一些数据组成的。AP 室内辐射分布图如下:

指纹法的特点是实现简单,精度尚可,但是要将所有数据和样本进行比对计算,消耗存储空间,计算量非常大。

局部模型法

局部模型法的原理就是对室内空间进行小网格划分。针对每个 AP 在网格空间进行最小数量 + 最小误差的模型训练,得到 AP 多个覆盖区域的简单模型。计算时先识别定位网格区域,再利用该区域 AP 的精细模型实行进一步位置推算。

这种模型的典型特点就是,训练过程相对复杂,定位精度逼近于指纹法,具备一定的鲁棒性,而且存储需求较小。

地磁定位法

地磁信号来源于地球本身,因为地心引力,地磁场本身存在。钢筋结构和地板等物体都会对地磁产生影响。地磁强度由于建筑结构不发生变化,基本上还是比较稳定的。在一段时间内磁场强度变化本身就是一种指纹。通过计算定位地磁序列指纹与指纹库中的子序列相似度来得到匹配位置。相当于一个模糊子序列查找,实际上因为搜索空间巨大,会结合粒子滤波提供匹配性能,最终定位效果达到 3 米以下,这是专业测试达到的效果。

地磁定位法的特点是实现相对复杂,需要做地磁校正,但是精度效果优秀。

连续定位法

室内定位应用场景还有连续使用的情况,地图 App 在打开的时候是持续收集信号的,持续的感知 Wi-Fi 和电磁信号的变化,以及各种传感器的变化。这就需要利用多种传感器在较短时间段内的感知变化,并识别出模式的改变,提高连续定位的体验。

这里不得不谈到传感器技术,而这些传感技术主要有两个途径:

  1. 状态识别。智能计步是通过手机对加速度传感器的处理,根据人行走的快慢来感知加速度数据,判断用户是在移步,还是在快速前行。
  2. 楼层检测。根据加速度传感器收集数据,来判断用户是在一层里面走,是不是上下梯,扶梯或者升降梯。

实践操作

在百度地图的移动端 App 上,通过室内定位技术来实现精准定位的几个简单操作如下:

写在最后

在介绍了众多室内定位技术之后,技术交流又回到了车联网领域应用这个问题上。对于现实中驾车用户来说,尤其是在陌生城市或者商场车库里,定位导航的功能尤为重要,未来的车联网导航应用中,会直接展示地下车库车位分布图,然后给出高精度的定位点,用户下车后随身携带的百度地图将会自动检测记录停车点,等用户逛完商场后可直接发起到停车点的导航,帮助用户快捷的实现停车找车目的。

2016-04-14 19:406336
用户头像

发布了 130 篇内容, 共 50.6 次阅读, 收获喜欢 169 次。

关注

评论

发布
暂无评论
发现更多内容

docker部署redis记录,楼主亲测无异常

小鲍侃java

8月日更

Java开发热门前沿知识,架构师必备技能

Geek_f90455

Java 程序员 后端

如何使用 DDD 指导微服务拆分?

架构精进之路

微服务 DDD 8月日更

架构实战营-毕业设计

En wei

架构实战营

Rust从0到1-模式-使用场景

rust 模式 Patterns Matching

Java开发岗还不会这些问题,一文轻松搞定

Geek_f90455

Java 程序员 后端

Seldon 使用 (五): engine & graph

托内多

tensorflow kubeflow seldon

MySQL触发器介绍

Simon

MySQL

分布式存储系统可靠性:系统量化估算

vivo互联网技术

分布式存储

波宝TronLink钱包APP系统开发介绍

Geek_23f0c3

钱包系统开发 DAPP智能合约交易系统开发 波宝钱包

☕️【系统设计】如何设计出优雅且实用的API接口

码农架构

Java 架构设计 架构设计实战

用5W1H告诉你如何规划合理的测试策略

华为云开发者联盟

敏捷 敏捷开发 测试 测试策略 缺陷

十大排序算法--选择排序

Ayue、

排序算法 8月日更

Java大厂74道高级面试合集,附面试题

Geek_f90455

Java 程序员 后端

招商银行信用卡卡号识别项目(第一篇),Python OpenCV 图像处理取经之旅第 53 篇

梦想橡皮擦

8月日更

几百行代码写个Mybatis,原理搞的透透的!

小傅哥

Java spring 源码 mybatis 代理

FastApi-01-初识

Python研究所

FastApi 8月日更

Java多线程从基础到并发模型统统帮你搞定!面试总结

Geek_f90455

Java 程序员 后端

Java开发究竟该如何学习,一文轻松搞定

Geek_f90455

Java 程序员 后端

【Flutter 专题】79 图解 Android Native 集成 FlutterBoost 小尝试 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

Java开发者值得深入思考的几个问题,建议收藏

Geek_f90455

Java 程序员 后端

Java多线程实现方式及并发与同步,写的太详细了

Geek_f90455

Java 程序员 后端

手撸二叉树之最小高度树

HelloWorld杰少

数据结构与算法 8月日更

FILECOIN矿池挖矿APP系统开发案例

获客I3O6O643Z97

挖矿矿池系统开发案例 fil挖矿

外包学生管理系统架构设计文档

君子意如何

架构师训练营第 1 期 「架构师训练营第 1 期」

从 Druid 控制台(Druid console)中进行查询

HoneyMoose

ECMAScript 2020(ES11)新特性简介

程序那些事

JavaScript ecmascript nodejs ES11 程序那些事

Java工程师跳槽经验分享,看完跪了

Geek_f90455

Java 程序员 后端

Java开发者必须收藏的8个开源库,吊打面试官系列!

Geek_f90455

Java 程序员 后端

MediaMuxer实用封装

Changing Lin

8月日更

架构实战营毕业总结

En wei

架构实战营

百度贾海禄为你揭秘室内定位技术的神秘面纱_语言 & 开发_薛梁Lucien_InfoQ精选文章