发明名称 基于GPS信息的道路地图更新方法
摘要 本发明属于信息科学工程领域,特别是涉及一种基于GPS信息的道路预测与修正方法研究。该方法是将已有道路看做一个状态空间,利用EM算法和Kalman算法对其状态空间模型中的未知参数进行估计,最后利用估计出的状态空间模型和Kalman滤波算法对新修道路进行预测与修正。本发明首次将这一方法运用到道路预测与修正这一研究方向,解决了地图更新速度较慢的问题,该算法具有及时有效的优点。
申请公布号 CN104677366A 申请公布日期 2015.06.03
申请号 CN201510122265.3 申请日期 2015.03.19
申请人 南京宜开数据分析技术有限公司 发明人 王桥;吴晶晶
分类号 G01C21/32(2006.01)I 主分类号 G01C21/32(2006.01)I
代理机构 代理人
主权项 一种基于GPS信息的道路地图的更新方法,其特征在于它包括如下步骤:步骤1:对于地图上已标示道路的经纬度信息样本总量为T,样本(即观测变量)记为y<sub>t</sub>,t=1,2,3,…,T,设初始状态x<sub>0</sub>服从均值为x<sub>0|0</sub>、方差为P<sub>0|0</sub>的高斯分布,传递噪声η<sub>t</sub>独立同分布,服从均值为0、方差为Q的高斯分布,观测噪声ε<sub>t</sub>独立同分布,服从均值为0、方差为R的高斯分布,且初始状态x<sub>0</sub>、传递噪声η<sub>t</sub>和观测噪声ε<sub>t</sub>相互独立,F为传递矩阵,H为观测矩阵,a<sub>t</sub>,b<sub>t</sub>分别表示道路的经纬度信息,状态变量<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>x</mi><mi>t</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>a</mi><mi>t</mi></msub></mtd></mtr><mtr><mtd><msub><mi>b</mi><mi>t</mi></msub></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000684599310000011.GIF" wi="207" he="159" /></maths>其中未知参数记为θ={F,H,Q,R,x<sub>0|0</sub>,P<sub>0|0</sub>},将其初始化,记<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msup><mi>F</mi><mi>old</mi></msup><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000684599310000012.GIF" wi="317" he="157" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msup><mi>H</mi><mi>old</mi></msup><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000684599310000013.GIF" wi="344" he="159" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msup><mi>Q</mi><mi>old</mi></msup><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0.1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0.1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000684599310000014.GIF" wi="402" he="158" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msup><mi>R</mi><mi>old</mi></msup><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn><msup><mn>0</mn><mrow><mo>-</mo><mn>2</mn></mrow></msup></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>1</mn><msup><mn>0</mn><mrow><mo>-</mo><mn>5</mn></mrow></msup></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000684599310000015.GIF" wi="444" he="170" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msubsup><mi>x</mi><mrow><mn>0</mn><mo>|</mo><mn>0</mn></mrow><mi>old</mi></msubsup><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000684599310000016.GIF" wi="257" he="157" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msubsup><mi>P</mi><mrow><mn>0</mn><mo>|</mo><mn>0</mn></mrow><mi>old</mi></msubsup><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0.1</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0.1</mn></mtd></mtr></mtable></mfenced><mo>,</mo></mrow>]]></math><img file="FDA0000684599310000017.GIF" wi="405" he="155" /></maths><img file="FDA0000684599310000018.GIF" wi="768" he="98" />在以下的步骤中,涉及参数F,H,Q,R,x<sub>0|0</sub>,P<sub>0|0</sub>的计算时均使用θ<sup>old</sup>中的参数的对应值,对已知的道路信息进行状态空间建模<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>x</mi><mi>t</mi></msub><mo>=</mo><msub><mi>Fx</mi><mrow><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>+</mo><msub><mi>&eta;</mi><mi>t</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>t</mi></msub><mo>=</mo><msub><mi>Hx</mi><mi>t</mi></msub><mo>+</mo><msub><mi>&epsiv;</mi><mi>t</mi></msub></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA0000684599310000019.GIF" wi="339" he="161" /></maths>步骤2:记x<sub>0:T</sub>={x<sub>0</sub>,x<sub>1</sub>,…,x<sub>T</sub>},y<sub>1:T</sub>={y<sub>1</sub>,y<sub>2</sub>,…,y<sub>T</sub>},n=2为观测变量的维度,m=2为状态变量的维度,公式中涉及的撇号表示矩阵的装置,根据模型假设,求出完全数据(x<sub>0:T,</sub>y<sub>1:T</sub>)的对数似然函数的表达式<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><mfenced open='' close=''><mtable><mtr><mtd><mi>ln</mi><mi>p</mi><mrow><mo>(</mo><msub><mi>x</mi><mrow><mn>0</mn><mo>:</mo><mi>T</mi></mrow></msub><mo>,</mo><msub><mi>y</mi><mrow><mn>1</mn><mo>:</mo><mi>T</mi></mrow></msub><mo>|</mo><mi>&theta;</mi><mo>)</mo></mrow><mo>=</mo><mo>-</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mi>ln</mi><mo>|</mo><msub><mi>P</mi><mrow><mn>0</mn><mo>|</mo><mn>0</mn></mrow></msub><mo>|</mo><mo>-</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><msup><mrow><mo>(</mo><msub><mi>x</mi><mn>0</mn></msub><mo>-</mo><msub><mi>x</mi><mrow><mn>0</mn><mo>|</mo><mn>0</mn></mrow></msub><mo>)</mo></mrow><mo>&prime;</mo></msup><msubsup><mi>P</mi><mrow><mn>0</mn><mo>|</mo><mn>0</mn></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msubsup><mrow><mo>(</mo><msub><mi>x</mi><mn>0</mn></msub><mo>-</mo><msub><mi>x</mi><mrow><mn>0</mn><mo>|</mo><mn>0</mn></mrow></msub><mo>)</mo></mrow><mo>-</mo><mfrac><mi>T</mi><mn>2</mn></mfrac><mi>ln</mi><mo>|</mo><mi>Q</mi><mo>|</mo></mtd></mtr><mtr><mtd><mo>-</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mi>T</mi></munderover><msup><mrow><mo>(</mo><msub><mi>x</mi><mi>t</mi></msub><mo>-</mo><msub><mi>Fx</mi><mrow><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>&prime;</mo></msup><msup><mi>Q</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><msub><mi>x</mi><mi>t</mi></msub><mo>-</mo><msub><mi>Fx</mi><mrow><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>-</mo><mfrac><mi>T</mi><mn>2</mn></mfrac><mi>ln</mi><mo>|</mo><mi>R</mi><mo>|</mo></mtd></mtr><mtr><mtd><mo>-</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mi>T</mi></munderover><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>t</mi></msub><mo>-</mo><msub><mi>Hx</mi><mi>t</mi></msub><mo>)</mo></mrow><mo>&prime;</mo></msup><msup><mi>R</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mrow><mo>(</mo><msub><mi>y</mi><mi>t</mi></msub><mo>-</mo><msub><mi>H</mi><mi>xt</mi></msub><mo>)</mo></mrow><mo>-</mo><mfrac><mrow><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>m</mi><mo>)</mo></mrow><mi>T</mi><mo>+</mo><mi>m</mi></mrow><mn>2</mn></mfrac><mi>ln</mi><mrow><mo>(</mo><mn>2</mn><mi>&pi;</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FDA00006845993100000110.GIF" wi="1486" he="448" /></maths>步骤3:利用θ<sup>old</sup>中的F,Q,x<sub>0|0</sub>和P<sub>0|0</sub>的值计算状态空间中的一步预测值x<sub>1|0</sub>和P<sub>1|0</sub>,具体实施公式如下x<sub>1|0</sub>=Fx<sub>0|0</sub>P<sub>1|0</sub>=FP<sub>0|0</sub>F′+Q;步骤4:利用卡尔曼滤波算法和x<sub>1|0</sub>和P<sub>1|0</sub>求出各个时刻对应的状态滤波值x<sub>t|t</sub>、状态方差滤波值P<sub>t|t</sub>、状态的一步预测值x<sub>t+1|t</sub>和状态方差的一步预测值P<sub>t+1|t</sub>,其中t=1,2,3,…,T;步骤5:利用步骤4得到的各个时刻的预测值x<sub>t+1|t</sub>、P<sub>t+1|t</sub>和卡尔曼平滑算法求出各个时刻对应的状态平滑值x<sub>t|T</sub>和方差平滑值P<sub>t|T</sub>,其中t=0,1,2,3,…,T;步骤6:利用t时刻方差的滤波值P<sub>t|t</sub>和t+1时刻方差的预测值P<sub>t+1|t</sub>,计算P<sub>t,t‑1|T</sub>;步骤7:求出步骤2中对数似然函数lnp(x<sub>0:T</sub>,y<sub>1:T</sub>|θ)关于p(x<sub>0:T</sub>|y<sub>1:T</sub>,θ<sup>old</sup>)的期望<img file="FDA0000684599310000029.GIF" wi="1509" he="619" />其中,<maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><msub><mi>&Gamma;</mi><mi>t</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mi>T</mi></munderover><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>t</mi><mo>|</mo><mi>T</mi></mrow></msub><msup><msub><mi>x</mi><mrow><mi>t</mi><mo>|</mo><mi>T</mi></mrow></msub><mo>&prime;</mo></msup><mo>+</mo><msub><mi>P</mi><mrow><mi>t</mi><mo>|</mo><mi>T</mi></mrow></msub><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA00006845993100000211.GIF" wi="503" he="159" /></maths><img file="FDA00006845993100000210.GIF" wi="516" he="141" />步骤8:对E[lnp(x<sub>0:T</sub>,y<sub>1:T</sub>|θ)]关于参数求最大值,具体实施方式为对E[lnp(x<sub>0:T</sub>,y<sub>1:T</sub>|θ)]关于参数F,H,R<sup>‑1</sup>,Q<sup>‑1</sup>,x<sub>0|0</sub>,<img file="FDA0000684599310000025.GIF" wi="82" he="91" />求偏导并令其为0,解方程组后得到参数的更新结果如下:<img file="FDA0000684599310000024.GIF" wi="229" he="96" /><maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><mi>H</mi><mo>=</mo><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mi>T</mi></munderover><msub><mi>y</mi><mi>t</mi></msub><msup><msub><mi>x</mi><mrow><mi>t</mi><mo>|</mo><mi>T</mi></mrow></msub><mo>&prime;</mo></msup><mo>)</mo></mrow><msup><mi>&Gamma;</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>,</mo></mrow>]]></math><img file="FDA0000684599310000026.GIF" wi="447" he="174" /></maths><maths num="0012" id="cmaths0012"><math><![CDATA[<mrow><mi>R</mi><mo>=</mo><mfrac><mn>1</mn><mi>T</mi></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mi>T</mi></munderover><mrow><mo>(</mo><mrow><mo>(</mo><msub><mi>y</mi><mi>t</mi></msub><mo>-</mo><msub><mi>Hx</mi><mrow><mi>t</mi><mo>|</mo><mi>T</mi></mrow></msub><mo>)</mo></mrow><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>t</mi></msub><mo>-</mo><msub><mi>Hx</mi><mrow><mi>t</mi><mo>|</mo><mi>T</mi></mrow></msub><mo>)</mo></mrow><mo>&prime;</mo></msup><mo>+</mo><msub><mi>HP</mi><mrow><mi>t</mi><mo>|</mo><mi>T</mi></mrow></msub><msup><mi>H</mi><mo>&prime;</mo></msup><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000684599310000027.GIF" wi="918" he="177" /></maths><img file="FDA0000684599310000028.GIF" wi="437" he="175" />x<sub>0|0</sub>=x<sub>0|T</sub>,P<sub>0|0</sub>=P<sub>0|T</sub>,记更新后的参数为θ<sup>new</sup>={F,Q,R,x<sub>0|0</sub>,P<sub>0|0</sub>};步骤9:检验参数是否收敛。具体实施方式是设定一个阈值,比如10<sup>‑6</sup>,检验|θ<sup>new</sup>‑θ<sup>old</sup>|是否小于该阈值,如果小于该阈值,进入下一步骤,否则,令θ<sup>o</sup><sup>ld</sup>=θ<sup>new</sup>,返回到步骤3;步骤10:得到相应的参数估计θ<sup>new</sup>后,更新状态空间的初始值x<sub>1|0</sub>和P<sub>1|0</sub>,具体实施如下x<sub>1|0</sub>=Fx<sub>0|0</sub>P<sub>1|0</sub>=FP<sub>0|0</sub>F′+Q;步骤11:利用所得的状态空间模型和卡尔曼滤波算法对新的道路信息进行预测和修正,初始值取为原有道路信息的一步预测值。具体实施方式为利用θ<sup>new</sup>,重新计算x<sub>T+1|T</sub>和P<sub>T+1|T</sub>,利用所得的x<sub>T+1|T</sub>和P<sub>T+1|T</sub>作为新的道路的初始值,再将θ<sup>new</sup>代入建立的状态空间模型,作为与该已知道路相连接的新的道路的状态空间模型,在实际应用时按相同的时间间隔读取新的道路的经纬度信息,利用卡尔曼滤波对读取到的经纬度信息进行预测与修正。
地址 211100 江苏省南京市江宁区东山街道东麒路33号A座东山国际企业研发园5310室