system: [SYSTEM]

user: 2. 室内空间平面图感知 2.1. 移动用户众包数据获取 获取用户签到、打卡或交易快照等在室内场所活动的数据记录。我们只需要获取一次用户在室内某空间签到或交易快照信息，获取当前用户智能手机的环境RSSI信息作为输入，如表1所示。 Table 1 Environment information of indoor mobile user 序号 标签 用户ID RSSI信息 1 R 1 01 b_63964380|-67|false; b_13784698|-75|false; …… 2 R 2 02 b_41424524|-86|false; b_10120963|-76|false; …… 3 R 3 02 b_37749132|-77|false; b_28723327|-90|false; …… 表1. 室内移动用户环境信息 在本文中，将地理标签视为室内空间对象，其在二维平面下的几何度量看作子空间区域。通过Wifi室内定位算法计算得到用户的室内位置，得到形如 L = 〈 U i ， R i ， P 〉 的三元组，用来表示用户在室内的一条位置记录。其中 U i 为用户ID， R i 为空间对象，P为当前记录在室内的相对位置坐标。 2.2. 室内空间的拓扑关系 Voronoi图是用于空间分割的几何结构，能描述平面空间内实体的临近关系，Voronoi图由离散点(空间对象)和对应的Voronoi区域组成 [ 18 ]。使用空间对象作为Voronoi区域的生成点，由于同一个用户在不同子空间区域中可以进行多次签到等数据收集操作，因此把同一子空间对象下所有记录中用户位置的均值作为Voronoi区域的生成点。生成的Voronoi图将室内空间划分为与室内空间对象数目相等的子区域。Voronoi区域生成点 R i 的计算如公式(1)所示。 R i = 1 n ∑ j = 1 n U i j ( j = 1 ， 2 ， 3 ， … ， n ) (1) 其中， R i 表示第i个voronoi区域的生成点(室内空间对象)， U i j 表示第i个空间对象下的第 j ( j = 1 ， 2 ， 3 ， … ， n ) 条记录。 使用D-三角网生成Voronoi图的步骤如下： Step1 数据预处理，应用公式(1)计算Voronoi区域生成点 R i ，建立索引； Step2 使用内插法建立Delaunay三角网； Step3计算目标三角形的外接圆心； Step4 遍历生成点的索引，重复step3，step4； Step5连接外接圆心，生成Voronoi图。 图1是商场某层空间例子。室内空间由若干个店铺组成， R i 表示店铺的标识，不同店铺之间由墙体隔开。图2给出了图1对应的Voronoi图，其中虚线所围成的区域是各子区域初步的边界。每个子区域内仅有一个生成点，子区域之间互不相交。 图1. 室内空间例子 图2. 室内空间Voronoi图 使用Voronoi图将室内空划分为多个子区域，可由Voronoi图直接找出与目标区域相邻的其他区域，且当Voronoi区域是n边形时，目标区域与n个区域相邻。下面结合Voronoi图给出室内环境下常用的相邻、相离空间关系的定义。 定义1 (相邻关系)两空间对象之间直接连通，可由空间1直接到达空间2的两空间对象被定义为相邻关系。 定义2 (相离关系)两空间对象不直接连通，需经过中间节点才能到达。如空间1需要通过途经空间2才能到达空间3，则空间1和空间3被定义为相离关系。 通过解读Voronoi图结合给出的室内空间关系定义得到空间拓扑关系。为方便存储和表达，两空间关系映射为图的边，相邻关系在图模型中用连通顶点的边表示，无直接连通的顶点即为相离关系。以图2为例，用图模型存储并表达室内空间拓扑关系如下： G = 〈 V ， E 〉 V ( G ) = { R 1 ， R 2 ， R 3 ， R 4 ， R 5 } E ( G ) = { ( R 1 ， R 2 ) ， ( R 1 ， R 5 ) ， ( R 2 ， R 3 ) ， ( R 2 ， R 4 ) ， ( R 3 ， R 4 ) ， ( R 4 ， R 5 ) ， ( R 5 ， R 2 ) } 其中， V ( G ) 是图的顶点集，由室内子区域对象组成； E ( G ) 是图的边集，用来存储室内环境空间拓扑关系。 2.3. 室内空间平面图的生成 现实室内环境中的房间分隔会使用一面公共墙壁作为分离相邻空间的界线，且一个房间拥有墙壁的数目由其相邻的空间数目决定，使用SVM分类器训练两个相邻空间的位置数据得到的分离超平面作为相邻空间的间隔边界，使用这些边界组成室内空间的平面图。使用SVM分类器训练数据生成室内空间平面图，这种方法依据拓扑关系保留了空间对象的几何形态，还可以还原客观世界存在的墙壁隔断。 用户的签到数据映射在二维平面上是具有明显类别界限的散点，随着用户数据的不断丰富，这些用户的散点位置所形成的形状会逐渐接近真实世界的轮廓。对室内空间平面图的感知关键是依托空间拓扑关系计算子空间的几何属性，进而感知室内空间的布局。 空间的几何形态采用由SVM分类器训练生成的分离超平面表达。在求解目标空间的几何形态的过程中，只考虑与邻接的空间分离超平面，因为具有相离空间关系的空间与目标空间是不存在公共墙等隔断的。基于空间拓扑关系感知室内空间平面图的计算框图如图3所示。 图3. 室内空间平面图计算框图 使用DAG-SVM方法进行目标空间几何形态的求解，计算过程中加入空间拓扑关系 G = 〈 V ， E 〉 这个限制条件，确保在正确分类时构造节点路径只与相邻空间有关，而不会经过相离空间，使得分类节点可以代表室内环境下的隔断。 使用空间拓扑关系做约束条件构造DAG-SVM的节点数小于传统方法，数目小于 N * ( N − 1 ) 个。室内空间平面图感知过程如下： 输入：空间对象索引列表Object_index，室内位置记录三元组 L = 〈 U i ， R i ， P 〉 ，室内空间拓扑关系 G = 〈 V ， E 〉 ， 输出： 室内空间平面图， Step1：选取目标空间对象， Step2：广度优先遍历图 G = 〈 V ， E 〉 ，找出目标空间的相邻空间， Step3：以step2的输出作为DAG-SVM方法组织分类节点的限制条件， Stpe3：训练目标节点的SVM分类器， Step4：遍历整个空间对象索引列表，重复step1，step2，step3， Step5：分类节点可视化，得到室内空间布局地图。 下面给出了基于空间拓扑关系的DAG-SVM方法组织分类节点的关键函数的伪代码如下： 1) Object_Space #目标空间 2) Object_list #候选空间列表 3) Neighbor_list #目标相邻空间合集 4) DefNeighborSpace (目标空间)： 5) BFS ( G = 〈 V ， E 〉 ) 6) ReturnNeighbor_list #广度优先的方法遍历图 G = 〈 V ， E 〉 ，返回目标空间的相邻空间集合 7) DefIs_NeighborSpace (候选空间，相邻空间) 8) If 候选空间isin(Neighbor_list)： 9) Return true #若候选空间在相邻空间列表，返回true 10) Else： 11) Return false #若候选空间不在相邻空间列表，返回false 12) DefCreate_Node (目标空间，候选空间) 13) IfIs_NeighborSpce： #对候选节点进行空间关系判定 14) 构造SVM分类节点 #若判定结果为true，则构造二分类节点 15) Else： 16) Create_Node (目标空间，更换候选空间) #判定结果为false，则更换候选空间重新执行。