1050
Journal of Software 软件学报 Vol.26, No.5, May 2015
延迟,不能应用于交通流的实时监控.Zhou 等人[11]提出了一种称为“semi-lazy”的预测方法,利用动态选取的参考
轨迹构建预测模型,优点是可以基于少量的参考轨迹构建精准的模型.近期,针对受限路网中轨迹预测精度不高
的问题,Qiao 等人[3]提出了一种基于隐马尔卡夫模型的轨迹预测算法 HMTP,从海量轨迹数据中提取隐状态和
观察状态,根据不同类型的轨迹,自适应地预测最佳轨迹.与本文的工作不同点在于:本文提出了一种通用的轨
迹预测算法,不仅仅适用于受限路网中移动对象的轨迹预测问题.
大多数轨迹预测问题针对的都是受限路网中移动对象的位置查询和预测[12].Tao 等人[13]提出一种基于未
知模型的预测方法,弥补了线性预测的缺陷,将轨迹数据存储在 TPR*树中,使用递归函数进行预测.然而,这一方
法忽略了主、客观不确定性因素的影响.Qiao 等人[14]充分考虑了影响移动对象位置变化的运动速度、方向和
路况信息,设计了一种基于时间连续贝叶斯网络的连续轨迹序列预测算法.实验证明,这一方法在轨迹预测的准
确性和时效性上均优于朴素预测算法.为了进一步提高预测结果的准确性和时效性,文献[12]提出了一种基于
轨迹时间连续贝叶斯网络的轨迹预测算法 TPMO,考虑了移动速度和方向对移动对象动态运动行为的影响.与
本文工作的不同点在于:本文所提出的预测算法可以解决轨迹离散状态预测准确性较差的问题,并且对于移动
对象轨迹的预测,可以依据概率模型精确度量其预测误差.
从时空轨迹数据中挖掘运动模式的多样性,对移动对象位置预测也是至关重要的.轨迹运动模式建模需要
对状态空间进行离散化分析,Hu 等人[15]将轨迹模型视为离散状态点之间转变的过渡,离散状态分析方法的不足
在于:需要对大量时空数据进行离散化处理,并且需要分析离散数据点之间的关联.Feng 等人[16]基于隐马尔可
夫模型重现移动对象轨迹序列,这一方法无需考虑对象缺失的观察状态信息,但是预测准确率不高.Gaffney 和
Smyth 提出对原始连续轨迹基于原型的聚类方法[17],通过增加高斯噪声,将具有相似轨迹部分的移动对象聚合
在一起,使用最大似然原理实现无监督学习.这是一种比较新颖和实用的轨迹数据分析方法,在本文的后续工作
中,借鉴其利用 EM 算法来确定轨迹聚类的簇个数,并考虑了聚类簇中轨迹点离散空间和时间偏移.轨迹位置预
测中,稳定线性回归如卡尔曼滤波对短时间内(1 步或 2 步)的预测有比较稳定准确的判断[18],而对于长时间(未
来 5 步以上)的预测,仅当处理的轨迹数据是无噪声点的情况才比较有效.高斯过程回归方法对于处理具有噪声
点的数据有着比较好的预测效果,是一种基于非参数的概率性方法,而且所使用的训练数据集规模比较小[19].
Qiao 等人[20]对轨迹数据构建双层索引,利用 RoI(region-of-interest)检查算法对轨迹进行划分,构建频繁轨迹模
式树预测移动对象最可能运动模式.针对上述研究的不足,本文提出了基于高斯混合模型(Gaussian mixture
model,简称 GMM)的轨迹建模方法,利用概率模型刻画运动轨迹.其优势在于:可以摆脱轨迹离散状态分析方法
的弊端,并且对于移动对象轨迹的预测,可以依据概率模型精确度量其预测误差.
2 基本概念及模型框架
本节首先给出几个主要概念,然后介绍本文所提出模型的框架及工作原理.
已知移动对象数据库 D,其中存储大量运动对象在不同时间采样点的位置信息,位置点在时间上的有序集
合称为轨迹,用 D={Trj1,Trj2,...,Trjn}表示,轨迹的数量定义为|D|.本文对轨迹作如下定义:
定义 1(轨迹序列). 移动对象原始轨迹序列 Trj={s1,s2,...,sd}表示有序的离散轨迹点{si=(xi,yi,ti)|1≤i≤d}所
构成的序列,其中,ti 表示时间戳,i[1,d),ti
乔少杰 等:一种基于高斯混合模型的轨迹预测算法
和协方差函数 k(x,x)确定,即
其中,m(x)=E[f(x)],k(x,x)=E[(f(x)m(x))(f(x)m(x))].本文采用的核函数为标准指数协方差函数,即
f(x)~GP(m(x),k(x,x))
Cov f x f x
))
(
( ),
(
2
k x x
( ,
0
)
exp
(
x
2
x
)
2
2
1
2
ij
1051
(1)
(2)
其中,0 为指数权重,θ1 表示长度规模,ij 是狄拉克函数.当 i=j 时,函数ij=1,否则为 0.
定义 4(轨迹高斯混合模型). 轨迹高斯混合模型中,每个状态用一个高斯过程函数表示,即,数据是由多个高
斯过程模型线性组合产生的,用公式(3)、公式(4)来表示轨迹点在二维坐标系下的 GMM 模型.假设数据点(x,y)
是多维运动矢量,其随机生成来自 M 个相互独立的高斯过程线性组合的总体 G={GP1,GP2,...,GPM},且每个高斯
过程对应的权重分为为1,2,...,M,混合而成的总体分布为 G,于是,x 的概率密度函数为
GP x
(
p x
(
)
(3)
)
|
|
j
j
,
M
j
j
1
M
j
j
1
(4)
M
j
j
1
1.
表
p y
(
|
)
GP y
(
|
i
i
,
)
其中,GP()表示高斯过程的概率密度函数,M 表示高斯过程数量,j 为第 j 个高斯过程的权重,且
示此密度函数中心点,表示协方差矩阵.参数用集合表示为={i,i,i},i=1,…,M.
定义 5(预测误差). 轨迹预测时,将测试轨迹数据集输入预测模型得到预测输出轨迹,其中,输入测试轨迹为
部分轨迹点的集合,预测输出点由图 1 中虚线表示.
预测轨迹路线
(
x y
,
2
2
)
(
x y
,
1
1
)
(x3,y3)
(
x y
,
3
3
)
(x2,y2)
(x1,y1)
实际轨迹路线
Y
v
v
输入历史轨迹点
X
Fig.1 An example of predicted trajectories
图 1 预测轨迹示例
采用公式(5)所示的均方根误差 RMSE 来计算预测轨迹点与实际轨迹点的几何空间误差:
RMSE
k
i
1
(
x
i
x
i
2
)
(
y
i
y
i
2
)
k
其中,(xi,yi)表示真实位置, (
表示预测位置,k 为预测轨迹点的数量.
x y
)
,
i
i
(5)
本文所提出模型的系统框架如图 2 所示,其工作原理分为 3 个步骤:
(1) 利用 ETL 技术将历史轨迹预处理后转化为轨迹矢量存储于数据库中;
(2) 对不同运动模式轨迹数据进行 GMM 聚类分析,利用最大似然估计 EM 算法求得聚类模型参数,使其
基于历史数据模型概率达到最大化,获得 M个聚簇;
(3) 利用最小二乘法和高斯混合回归模型训练得到预测模型 GMTP,根据输入的新轨迹数据预测移动对
象未来最可能的运动轨迹.
本文第 3 节形式化给出移动对象简单和复杂轨迹运动概率模型.第 4 节给出高斯混合模型回归预测理论基
础.第 5 节详细阐述 GMM 轨迹预测模型训练和学习原理.第 6 节介绍基于 GMM 的轨迹预测算法.第 7 节通过
1052
Journal of Software 软件学报 Vol.26, No.5, May 2015
对比实验检验所提算法的性能优势.第 8 节总结全文并对未来工作进行展望.
步骤(2)
P x k
(
|
t
)
p c k p x c k
(
, )
)
(
|
|
t
Trajectory clustering
步骤(1)
Trajectory DB
Predict future paths (GMTP)
New trajectories
步骤(3)
Model training
Prediction model (GMM)
Fig.2 Trajectory prediction schema for moving objects based on GMM
图 2 基于 GMM 的移动对象轨迹预测框架
3 运动模式概率模型
本文将单一运动模式利用高斯过程 GP 表示,而复杂场景中多种运动模式利用高斯混合模型 GMM 建模.
3.1 简单轨迹运动模式
在简单轨迹运动模式场景中,许多轨迹具有相同运动模式,可以用一个高斯过程 GP 表示.可以认为移动物
体在 x 和 y 方向上变化是相互独立的,一条轨迹需要两个高斯过程(x 和 y 方向)来表示.图 3(a)中点连接的虚线
表示利用高斯过程均值表示的典型运动模式,宽虚线内部分为用协方差刻画的不确定性运动波动范围.如图
3(b)所示,不同种类实线代表不同轨迹,这些轨迹运动模式比较相近,可由单一高斯过程来表达.
Single
Gaussian
process
15
10
5
0
5
10
15
20
10
5
0
5
10
15
20
(a) 单一轨迹运动模式 (b) 单一运动模式 GP 刻画
Fig.3 Pattern modeling for single motion patterns based on GP
图 3 单一运动模式 GP 建模
P X
(
P Y
( )
n
|
,
(
N
GP x
x
n
1
N
GP y
y
n
1
x
乔少杰 等:一种基于高斯混合模型的轨迹预测算法
1053
本文将定义 1 中的一条轨迹划分为两个方向上的 d 维矢量 X=(x1,x2,...,xd)T 和 Y=(y1,y2,...,yd)T,d 表示轨迹观
测点个数.对于 N 条具有相同运动模式的轨迹,利用高斯过程建模,典型运动模式的轨迹概率模型为
)
)
(6)
(7)
D={X,Y},表示训练轨迹集.GP(xi|x,x)表示 X 方向轨迹特征矢量 xi 符合高斯过程的轨迹模式概率函数;Y 方
(
)
,
|
n
y
向上的高斯概率函数类似,定义如下:
GP x
(
i
|
)
,
1
d
(2 )
exp
1
2
|
|
(
x
i
1
T
)
(
x
i
)
(8)
其中,(xi,yi)为轨迹矢量集合;,表示轨迹高斯过程的典型运动模式在 X 方向上的均值和协方差矩阵,其中,均值
=[E(x1),E(x2),...,E(xd)]T,协方差矩阵=(Cij)dxd,Cij=Cov(xi,xj).
3.2 复杂轨迹运动模式
在包含较为复杂的运动模式场景下,典型运动模式不止一个,如图 4(a)所示,很难用一个高斯过程来刻画,两
条宽虚线之间部分代表一个高斯过程.图 4(b)中,不同粗细的线条表示不同类型轨迹,需要利用多个高斯过程,
即,高斯混合模型表示.注意,图 4(a)中有一条指向上方的点划线代表一条异常轨迹.
Gaussian
mixture
model
Noisy trajectory
15
10
5
0
5
10
15
20
10
5
0
5
10
15
20
(a) 复杂轨迹运动模式 (b) 复杂轨迹运动模式 GMM 刻画
Fig.4 Pattern modeling for complex motion patterns based on GMM
图 4 复杂运动模式 GMM 建模
在具有多种轨迹模式的场景中,一条轨迹可能隶属于多个轨迹模式,准确地刻画一条轨迹需要采用混合模
型.例如,对于轨迹 Trjn=(xn,yn),X 和 Y 方向上矢量在所有 M 个轨迹模式中出现的总概率是由不同运动模式的高
斯概率混合而成:
)
(9)
)
,
|
|
(10)
其中,GP(Xn|x,i,x,i)表示轨迹矢量 Xn 相对第 i 个运动模式状态的高斯概率函数;M 表示混合轨迹模式的状态数
M
量;i 表示第 i 个轨迹模式的权重且 1
;x,i,x,i 和y,i,y,i 分别表示第 i 个轨迹模式状态在 X 和 Y 方向上
i
i
的均值和协方差,参数={i,i,i},i=1,…,M.
)
1
)
|
|
n
n
于是,对于轨迹训练集 D={X,Y},整个轨迹训练集高斯混合模型似然函数为
p x
(
n
p y
(
M
i
i
1
M
i
i
1
GP x
(
n
GP y
(
x i
,
x i
,
y i
,
y i
,
,
(12)
模型中如何计算复杂运动模式中的参数是一个关键步骤,本文通过使轨迹训练模型(公式(11)、公式(12))
)
)
|
|
n
P X
(
P Y
(
|
)
N
n
1
N
n
1
p x
(
n
p y
(
|
)
(11)
1054
Journal of Software 软件学报 Vol.26, No.5, May 2015
概率达到最大,从已知的训练轨迹矢量集 D={X,Y}中学习训练出最佳参数,即,利用概率最大的方式选出构成
运动模型的概率密度最大的那一组参数,为轨迹回归分析预测时所用.的求取方法将在第 5 节详细介绍.
4 高斯混合模型回归预测理论
模型预测原理为:根据轨迹数据推出 GMM 的概率分布;应用高斯混合概率模型聚类获得 M个 Component (对
应了M个 cluster);最后,应用回归模型进行预测.聚类过程中数据点的生成需要满足以下条件:
(1) 个数据点都是在所有类别区域中随机生成的.
(2) 每个数据点属于类别 i 的概率 wi 满足 1
i w
M
,M 为聚簇的个数,wi 为每个类的先验概率(权重).模
型中,M 值的设定不是人工设定的经验值,而是利用 k-means 算法初始化,通过训练集数据进行模型学
习确定(如图 5 所示),因此,聚类的结果将更加客观地反映数据的本质特性.
1
i
(3) 如果一个随机生成数据点 x 可能属于类 I,那么,类 I 关于该观测数据点 x 的概率密度函数为 f(x|i).
20
15
10
5
0
5
10
20 15
10 5
0
5
10
15
Mixture model
20
15
10
5
0
5
10
20
15
10
5
0
5
10
15
(a) k-means 对数据初始化聚类 (b) 利用 GMM 重新聚类结果
Fig.5 An example of trajectory clustering via GMM
图 5 基于 GMM 的轨迹聚类结果示例
通过图 5(b)可以看出:与图 5(a)相比,GMM 模型对轨迹点聚类的经过更加精细,可以将重叠区域的轨迹点进
一步区分,划分到正确的簇中,保证下一步轨迹预测的精度.此外,轨迹聚类的另一个作用是去除噪声数据,作用
是提高算法的准确性,而且可以提高时间性能.对历史轨迹数据点聚类分析(即,模型训练学习过程,参见第 5 节),
然后利用高斯混合回归模型(Gaussian mixture regression,简称 GMR)进行预测分析,具体步骤如下:
假设训练数据集为 Dtrain=(x,y),其中,输入数据为 x,输出数据为 y.测试数据集 Dtest=(x*,y*),输入测试数据为
x*,预测输出 y*,那么[y,y*]T 的联合概率密度函数遵从如下的 GMM 模型:
)
GP y y
( ,
)
,
|
*
i
i
M
i
i
1
*
*
*
iy
y y
( ,
yyp
iyy
iy
yyp
y
(
*
iy y
y y
( ,
),
)
,
*
*
*
M
i
i
1
Var y
[
(13)
(14)
(15)
其中,i=[iy,iy*]T,
i
T
] ,
[
iy
,
*
i
iy
M
i
并且满足 1
i
1.
联合概率密度函数表示为
GP y
(
*
|
y f
,
2
y
( ),
i
i
)
其中,
i
*
|
y
y
( )
E y
[
f
边缘密度 py 和条件密度 *|y yp 可分别利用公式(13)和公式(14)求得,y 的边缘密度函数为
iyy
1
iyy
2
i
1
iyy
*
iy y
*
iy y
y
]
]
iy
iy
iy
.
|
*
*
*
*
p y
( )
y
p
*
yy
y y
( ,
*
y
)d
M
GP y
( ,
i
1
i
iy
iy
,
)
乔少杰 等:一种基于高斯混合模型的轨迹预测算法
条件密度函数为
y yp
| (
*
*
y
|
y
)
M
i
i
1
y GP y f
( )
( ,
2
y
( ),
i
i
)
其中,混合权重计算公式如下:
i
y
( )
GP y
( ,
iy
iy
,
)
i
GP y
( ,
iy
iy
,
i
M
i
1
)
因此,y*关于 y 的回归函数,即,y*的预测值为
y
( )
对应的方差为
Var y
[
v y
( )
y
]
f
|
*
*
E y
[
|
x y x
,
,
*
]
M
i
i
1
y f
( )
y
( )
i
1055
(16)
(17)
(18)
*
(19)
公式(18)称为轨迹高斯混合回归模型,其基本思想是:首先,利用公式(16)对轨迹数据利用概率密度函数建
模,通过 GMM 对训练轨迹数据进行聚类分析;然后,利用 EM 算法估计相应参数,依据符合正态分布数据的条件
分布得到 M 个高斯分量的回归函数;最后,利用公式(18)将回归函数加权混合完成轨迹回归预测.
y
2
( )]
y f
( )
y
( )[
2
i
y
( )
y
]
[
f
2
i
i
M
i
i
1
M
i
i
1
5 模型训练学习原理
使用 GMM 对复杂运动模式建模就是要准确估计模型的参数,GMM 参数估计最常用的一种方式是最大
似然估计(expectation-maximization,简称 EM).EM 算法在迭代中改善模型参数估计,在每次迭代中不断地增加
模型估计参数与观测训练轨迹 X 方向矢量 xi(由若干轨迹点构成)的匹配概率.这里讨论 X 方向,Y 方向情况类
似.即,每次迭代使公式(11)达到 P(X|k+1)>P(X|k),其中,k 表示迭代的次数.通过不断地学习,获得最佳匹配训练
轨迹矢量集 X={x1,x2,...,xn}.迭代训练的目的即为找到一组,使得 P(X|)最大,如公式(20)所示:
argmax (
P X
ˆ
)
(20)
|
求解使 P(X|)达到最大的参数值的过程如下:
为了便于求解,通常利用 logP(X|)代替 P(X|)求取最大值.文中 GMM 模型可以解释为对具有不同典型运
动模式的轨迹建模,单个高斯过程 GP()分量表示某一种简单运动模式出现的概率.
P(X|)是参数的非线性函数,直接求其最大值非常困难,可以将公式(11)转化为下式进行间接求取:
其中,
方向上的特征矢量 x 属于第 i 种运动模式的概率密度.于是,对公式(21)进行运算,得到:
(21)
为模型的另一组参数,i=1,2,...,M 为混合分量序号,p(x,i|)表示在参数条件下,一条轨迹在 X
}
i
p x i
)log ( ,
)
( ,
p x i
( ,
{ ,
i
)
,
i
J
|
|
M
i
1
J
)
( ,
J
( ,
)
M
i
1
p x i
( ,
|
p x i
){log ( ,
|
)
p x i
log ( ,
|
)}
M
i
1
p x i
( ,
|
)log
p x i
( ,
p x i
( ,
|
|
)
)
(22)
对于函数 f(x)=logx,具有性质:该函数在点(x,f(x))|x=1 处切线方程为(x)=x1.于是,f(x)≤(x),且当 x=1 时等号
成立.对于公式(22),有:
J
)
( ,
J
( ,
)
≤
M
i
1
p x i
( ,
|
)
p x i
( ,
p x i
( ,
|
|
)
)
1
M
p x i
{ ( ,
i
1
|
)
p x i
( ,
|
)}
(23)
记为
(24)
当且仅当=时等号成立.显然,只要 p(x,)