CN106886038A - 运动轨迹的处理方法及装置 - Google Patents
运动轨迹的处理方法及装置 Download PDFInfo
- Publication number
- CN106886038A CN106886038A CN201510936597.5A CN201510936597A CN106886038A CN 106886038 A CN106886038 A CN 106886038A CN 201510936597 A CN201510936597 A CN 201510936597A CN 106886038 A CN106886038 A CN 106886038A
- Authority
- CN
- China
- Prior art keywords
- individual
- population
- movement locus
- individuality
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S19/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/38—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
- G01S19/39—Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/42—Determining position
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Feedback Control In General (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开是关于一种运动轨迹的处理方法及装置。该方法包括:获取运动轨迹的经纬度信息;利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点;根据所述控制点模拟所述运动轨迹。该技术方案实现了用少量的控制点代替大量的经纬度信息来模拟运动轨迹的效果,从而达到对运动轨迹的压缩目的,不仅降低存储压力,且提升了数据处理速度。
Description
技术领域
本公开涉及信息处理技术领域,尤其涉及一种运动轨迹的处理方法及装置。
背景技术
骑行作为一种健康自然的运动旅游方式,受到了越来越多的用户喜爱。在骑行过程中,使用智能手机中的GPS(GlobalPositioningSystem,全球定位***)传感器对运动过程中的定位信息进行记录,是一种简单可靠的骑行运动数据的记录方式。智能手机通过记录运动过程中的定位信息,最终实现对运动轨迹的描述。
发明内容
本公开实施例提供一种运动轨迹的处理方法及装置。所述技术方案如下:
根据本公开实施例的第一方面,提供一种运动轨迹的处理方法,包括:
获取运动轨迹的经纬度信息;
利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点;
根据所述控制点模拟所述运动轨迹。
本公开的实施例提供的技术方案可以包括以下有益效果:
上述技术方案,能够使用预设算法对运动轨迹的经纬度信息进行处理确定出可描述运动轨迹的控制点,并使用控制点模拟运动轨迹,实现了用少量的控制点代替大量的经纬度信息来模拟运动轨迹的效果,从而达到对运动轨迹的压缩目的,不仅降低存储压力,且提升了数据处理速度。
在一个实施例中,所述根据所述控制点模拟所述运动轨迹,具体包括:
根据所述控制点生成用于描述所述运动轨迹的贝塞尔曲线。
该实施例中,通过用控制点生成的贝塞尔曲线描述运动轨迹,实现了用少量的控制点代替大量的经纬度信息来模拟运动轨迹的效果,不仅降低存储压力、提升数据处理速度,且使得运动轨迹更加美观、清晰。
在一个实施例中,所述预设算法包括以下算法中的至少一种:
序列二次规划算法;
遗传算法。
该实施例中,通过序列二次规划算法或遗传算法对原始的运动轨迹进行压缩,实现了用少量的控制点代替大量的经纬度信息来模拟运动轨迹的效果,不仅降低存储压力,且提升了数据处理速度。
在一个实施例中,当所述预设算法包括所述序列二次规划算法时,所述利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点,具体包括:
重复执行如下迭代过程至确定出控制点:
确定第一迭代点被新赋值时,根据所述经纬度信息和序列二次规划函数的当前第一迭代点,计算所述序列二次规划函数的解空间的可行解;
根据所述解空间的可行解确定约束一维搜索的搜索方向,并在所述搜索方向上对所述序列二次规划函数进行约束一维搜索,得到约束一维搜索后的第二迭代点;
确定所述第二迭代点满足第一预设精度条件时,确定所述第二迭代点为所述控制点,否则利用所述第二迭代点的取值更新所述第一迭代点的取值。
该实施例中,通过序列二次规划算法确定控制点,进而使用控制点生成的贝塞尔曲线来模拟原始的运动轨迹,实现了对大量的经纬度信息进行压缩的效果,从而降低存储压力。
在一个实施例中,所述第一迭代点和所述第二迭代点为包括n+1个数据的矩阵,n为所述贝塞尔曲线的阶数,在第一次迭代时,随机生成n+1个数据并赋值给第一迭代点。
在一个实施例中,当所述预设算法包括所述遗传算法时,所述利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点,具体包括:
重复执行如下迭代过程至确定出控制点:
确定当代种群被更新时,根据所述经纬度信息确定所述当代种群中每个参考个体的适应度,所述当代种群包括N个参考个体;
依据所述当代种群中每个参考个体的适应度,从所述当代种群中选择N1个参考个体,N1小于N;
从所述当代种群中选择出M个参考个体,并对选择出的每两个不同的参考个体进行预定运算,得到N2个参考个体,M小于N,且N2与N1之和不小于N;
从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群;
确定所述下一代种群满足预设条件时,从所述下一代种群中选择适应度最高的参考个体作为最优个体,根据所述最优个体确定所述控制点,否则利用所述下一代种群的参考个体更新所述当代种群。
该实施例中,通过遗传算法确定控制点,进而使用控制点生成的贝塞尔曲线来模拟原始的运动轨迹,实现了对大量的经纬度信息进行压缩的效果,从而降低存储压力。
在一个实施例中,所述对选择出的每两个不同的参考个体进行预定运算,得到N2个参考个体,具体包括:
对选择出的每两个不同的参考个体进行交叉运算,得到N2个参考个体;或者
对选择出的每两个不同的参考个体进行变异运算,得到N2个参考个体;或者
对选择出的每两个不同的参考个体进行交叉运算,得到N2a个参考个体;对选择出的每两个不同的参考个体进行变异运算,得到N2b个参考个体,N2a和N2b之和为N2。
该实施例中,通过对选择出的每两个不同的参考个体进行交叉运算或变异运算、或者交叉运算与变异运算的组合,使得下一代种群中的参考个体的确定方式更加灵活,从而提高下一代种群满足预设条件的几率,减少迭代次数。
在一个实施例中,所述从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群,具体包括:
按照所述参考个体的适应度从高到低的顺序,从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群。
该实施例中,能够按照参考个体的适应度高低来选择N个参考个体作为下一代种群,使得下一代种群中的参考个体的适应度更高,从而提高下一代种群满足预设条件的几率,减少迭代次数。
在一个实施例中,所述预设条件包括以下条件中的至少一种:
所述下一代种群中适应度最高的参考个体的适应度达到预设适应度;
迭代次数达到预设最大世代数。
该实施例中,在下一代种群中适应度最高的参考个体的适应度达到预设适应度,或者遗传算法的迭代次数达到预设最大世代数时从下一代种群中选择出最优个体作为控制点,从而尽可能地降低了用以描述运动轨迹的控制点与原始的经纬度信息之间的差异,使得控制点生成的贝塞尔曲线能够更加逼近原始运动轨迹。
根据本公开实施例的第二方面,提供一种运动轨迹的处理装置,包括:
获取模块,用于获取运动轨迹的经纬度信息;
处理模块,用于利用预设算法对所述获取模块获取的经纬度信息进行处理,得到用于描述运动轨迹的控制点;
模拟模块,用于根据所述处理模块处理得到的控制点模拟所述运动轨迹。
在一个实施例中,所述模拟模块包括:
生成子模块,用于根据所述控制点生成用于描述所述运动轨迹的贝塞尔曲线。
在一个实施例中,所述预设算法包括以下算法中的至少一种:
序列二次规划算法;
遗传算法。
在一个实施例中,所述处理模块用于当所述预设算法包括所述序列二次规划算法时,重复执行如下迭代过程至确定出控制点;所述确定模块包括:
计算子模块,用于确定第一迭代点被新赋值时,根据所述经纬度信息和序列二次规划函数的当前第一迭代点,计算所述序列二次规划函数的解空间的可行解;
搜索子模块,用于根据所述计算子模块计算出的解空间的可行解确定约束一维搜索的搜索方向,并在所述搜索方向上对所述序列二次规划函数进行约束一维搜索,得到约束一维搜索后的第二迭代点;
第一确定子模块,用于当确定所述搜索子模块搜索到的第二迭代点满足第一预设精度条件时,确定所述第二迭代点为所述控制点,否则利用所述第二迭代点的取值更新所述第一迭代点的取值。
在一个实施例中,所述第一迭代点和所述第二迭代点为包括n+1个数据的矩阵,n为所述贝塞尔曲线的阶数,在第一次迭代时,随机生成n+1个数据并赋值给第一迭代点。
在一个实施例中,所述处理模块用于当所述预设算法包括所述遗传算法时,重复执行如下迭代过程至确定出控制点;所述处理模块包括:
第二确定子模块,用于确定当代种群被更新时,根据所述经纬度信息确定所述当代种群中每个参考个体的适应度,所述当代种群包括N个参考个体;
第一选择子模块,用于依据所述第二确定子模块确定的当代种群中每个参考个体的适应度,从所述当代种群中选择N1个参考个体,N1小于N;
第二选择子模块,用于从所述当代种群中选择出M个参考个体,并对选择出的每两个不同的参考个体进行预定运算,得到N2个参考个体,M小于N,且N2与N1之和不小于N;
第三确定子模块,用于从所述第一选择子模块选择出的N1个参考个体和所述第二选择子模块计算出的N2个参考个体中,确定N个参考个体作为下一代种群;
第三选择子模块,用于当所述第三确定子模块确定所述下一代种群满足预设条件时,从所述下一代种群中选择适应度最高的参考个体作为最优个体,根据所述最优个体确定所述控制点,否则利用所述下一代种群的参考个体更新所述当代种群。
在一个实施例中,所述第二选择子模块,用于对选择出的每两个不同的参考个体进行交叉运算,得到N2个参考个体;或者,用于对选择出的每两个不同的参考个体进行变异运算,得到N2个参考个体;或者,用于对选择出的每两个不同的参考个体进行交叉运算,得到N2a个参考个体;对选择出的每两个不同的参考个体进行变异运算,得到N2b个参考个体,N2a和N2b之和为N2。
在一个实施例中,所述第三确定子模块,用于按照所述参考个体的适应度从高到低的顺序,从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群。
在一个实施例中,所述预设条件包括以下条件中的至少一种:
所述下一代种群中适应度最高的参考个体的适应度达到预设适应度;
迭代次数达到预设最大世代数。
根据本公开实施例的第三方面,提供一种运动轨迹的处理装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取运动轨迹的经纬度信息;
利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点;
根据所述控制点模拟所述运动轨迹。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种运动轨迹的处理方法的流程图。
图2是根据一示例性实施例示出的一种运动轨迹的处理方法中步骤S12的流程图。
图3是根据一示例性实施例示出的一种运动轨迹的处理方法中步骤S12的流程图。
图4是根据一示例性实施例示出的一种运动轨迹的处理装置的框图。
图5是根据一示例性实施例示出的一种运动轨迹的处理装置中模拟模块的框图。
图6是根据一示例性实施例示出的一种运动轨迹的处理装置中处理模块的框图。
图7是根据一示例性实施例示出的一种运动轨迹的处理装置中处理模块的框图。
图8是根据一示例性实施例示出的一种适用于运动轨迹的处理的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种运动轨迹的处理方法的流程图,该运动轨迹的处理方法用于终端中,其中,终端可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。如图1所示,该方法包括以下步骤S11-S13。
在步骤S11中,获取运动轨迹的经纬度信息。
该步骤中,经纬度信息可通过终端中的GPS(Global Positioning System,全球定位***)传感器采样获得,GPS传感器可按照一定的采样频率对车辆的经纬度信息进行采样,例如,每5秒进行一次采样。
在步骤S12中,利用预设算法对运动轨迹的经纬度信息进行处理,得到用于描述运动轨迹的控制点。
在步骤S13中,根据控制点模拟运动轨迹。
采用本公开实施例提供的技术方案,能够使用预设算法对运动轨迹的经纬度信息进行处理确定出可描述运动轨迹的控制点,并使用控制点模拟运动轨迹,实现了用少量的控制点代替大量的经纬度信息来模拟运动轨迹的效果,从而达到对运动轨迹的压缩目的,不仅降低存储压力,且提升了数据处理速度。
在一个实施例中,步骤S13可实施为以下步骤:根据控制点生成用于描述运动轨迹的贝塞尔曲线。
其中,n阶贝塞尔曲线由n+1个控制点P=[P0,P1,…,Pn]T生成,用B(t)表示贝塞尔曲线,则其函数表达式为其中,i为从0到n的整数,t为[0,1]之间的正数,t的取值为多个,n为贝塞尔曲线的阶数,具体数值取决于控制点的个数。
对于上述贝塞尔曲线的函数表达式,给定控制点P,将t从0遍历到1,同时将i从0遍历到n,即可生成一条贝塞尔曲线,其中,将t从0遍历到1时,每次遍历的数值之间的间隔是均等的,该间隔可由用户预先设置,例如,以0.1为间隔将t从0遍历到1,那么t的取值为0、0.1、0.2、0.3、……0.98、0.99、1。
本实施例中,通过用控制点生成的贝塞尔曲线描述运动轨迹,实现了用少量的控制点代替大量的经纬度信息来模拟运动轨迹的效果,不仅降低存储压力、提升数据处理速度,且使得运动轨迹更加美观、清晰。
由上述实施例可以看出,用贝塞尔曲线来描述运动轨迹,实际上是求解一个带约束的非线性优化问题,以使用控制点生成的贝塞尔曲线和采集到的经纬度信息所描述的运动轨迹之间的差异最小,该非线性优化问题可按如下公式表达:mint,p||B(t)P-D||F或mint||B(t)B(t)+D-D||F,其中,||·||F表示F范数,B(t)表示贝塞尔曲线,t∈[0,1],P为贝塞尔曲线的n+1个控制点的集合,P=[P0,P1,…,Pn]T,D为采集到的经纬度信息的集合,D=[(a0,b0),(a1,b1),…,(am,bm)],其中,aq为经度值,bq为纬度值,q的取值范围为0~m,m为采集的运动轨迹采样点的个数,n为贝塞尔曲线的阶数,“+”表示矩阵的伪逆。因此,只需以上述非线性优化问题为目标确定出n阶贝塞尔曲线的n+1(n为大于或等于1的正整数,且n的值远远小于经纬度信息中采样点的个数m)个控制点,即可实现对运动轨迹的压缩。
以下具体说明如何求解贝塞尔曲线的控制点。
在步骤S12中,预设算法可包括序列二次规划算法、遗传算法中的至少一种算法。以下分别通过这两种算法来说明如何确定用于描述运动轨迹的控制点。
在一个实施例中,预设算法为序列二次规划算法。如图2所示,步骤S12可实施为以下步骤S21-S25。
在步骤S21中,确定第一迭代点被新赋值时,根据经纬度信息和序列二次规划函数的当前第一迭代点,计算序列二次规划函数的解空间的可行解。
其中,预先设定贝塞尔曲线的阶数为n,由于n阶贝塞尔曲线由n+1个控制点生成,因此第一迭代点为包括n+1个数据的矩阵,在第一次迭代时,随机生成n+1个数据并赋值给第一迭代点,从而触发控制点的确定过程。
用X(k)表示第一迭代点,其中k表示迭代的次数,因此X(k)可以表示序列二次规划函数的第k+1(k为自然数)个迭代点。当当前迭代为第一次迭代时,k=0,随机生成的初始点X(0)即为第一次迭代的迭代点。
该步骤S21中,序列二次规划函数为:
其中:f(Y)为用于描述运动轨迹的贝塞尔曲线和采集到的经纬度信息之间的差异,Y为序列二次规划函数的解空间的可行解,解空间即为每次迭代后计算出的序列二次规划函数的所有可行解的集合,“s.t”为“使得”的缩写形式,即表示二次规划函数所需满足的条件;
S=Y-X(k),sj为矩阵S的第j个元素,其中,X(k)为序列二次规划函数当前的第一迭代点,实际上为第k+1(k为自然数)个迭代点;
在H和C的表达式中,▽为梯度符号,D为采集到的经纬度信息的集合,D=[(a0,b0),(a1,b1),…,(am,bm)],其中,aq为经度值,bq为纬度值,q的取值范围为0~m,m为采集的运动轨迹采样点的个数;
B(X(k))为将X(k)作为控制点生成的贝塞尔曲线的函数表达式,其中,i为从0到n的整数,t为[0,1]之间的正数,t的取值为多个,n为贝塞尔曲线的阶数,具体数值取决于控制点个数,为使达到对采集到的经纬度信息的压缩目的,n的值应远远小于经纬度信息D对应的采样点的个数m;
aij为矩阵A在第i行第j列的元素,该A为2n*2n的矩阵,E为n*n的单位矩阵,n为贝塞尔曲线的阶数;
lj为矩阵L的第j个元素,其中,L=(l1,l2…,ln,ln+1,…,l2n)T,L为1*2n的矩阵,其前n项值为X(k)-1,即l1=l2=…=ln=X(k)-1,后n项值为-X(k),即ln+1=…=l2n=-X(k),n为贝塞尔曲线的阶数;
对上述序列二次规划函数求解之后,可得到序列二次规划函数的解空间的可行解,即Y的值。
在步骤S22中,根据解空间的可行解确定约束一维搜索的搜索方向,并在该搜索方向上对序列二次规划函数进行约束一维搜索,得到约束一维搜索后的第二迭代点。
该步骤中,解空间的可行解为Y的值,约束一维搜索的搜索方向为S,即Y-X(k),对序列二次规划函数进行约束一维搜索之后,可得到第二迭代点X(k+1)的值。
第二迭代点X(k+1)为包括n+1个数据的矩阵,n为贝塞尔曲线的阶数。
对序列二次规划函数所进行的约束一维搜索方法为现有技术,例如黄金分割法、牛顿法、插值法等,在此不再赘述。
在步骤S23中,判断约束一维搜索后的第二迭代点是否满足第一预设精度条件。如果约束一维搜索后的第二迭代点不满足第一预设精度条件,则执行步骤S24;如果约束一维搜索后的第二迭代点满足第一预设精度条件,则执行步骤S25。
该步骤中,约束一维搜索后的第二迭代点即为点X(k+1)。
其中,可通过预设收敛精度来设置第一预设精度条件,当通过预设收敛精度来设置第一预设精度条件时,需要根据约束一维搜索后的第二迭代点计算出该第二迭代点对应的函数值,并判断该第二迭代点对应的函数值的收敛精度是否小于或等于预设收敛精度,当该第二迭代点对应的函数值的收敛精度小于或等于预设收敛精度时,即可确定约束一维搜索后的第二迭代点满足第一预设精度条件。
计算第二迭代点对应的函数值时,可将第二迭代点X(k+1)的值代入上述序列二次规划函数,即可求得第二迭代点X(k+1)对应的函数值f(Y)。
约束一维搜索后的第二迭代点对应的函数值的收敛精度为该函数值与上一次迭代时约束一维搜索后的第二迭代点对应的函数值之间的差值,即X(k+1)对应的f(Y)和X(k)对应的f(Y)之间的差值,假设预设收敛精度为ε,如果X(k+1)对应的f(Y)和X(k)对应的f(Y)之间的差值小于或等于ε,则说明约束一维搜索后的第二迭代点满足第一预设精度条件,否则,约束一维搜索后的第二迭代点不满足第一预设精度条件。
步骤S24,利用第二迭代点的取值更新第一迭代点的取值,返回步骤S21重新执行控制点的确定过程。
该步骤中,通过利用约束一维搜索后的第二迭代点更新第一迭代点的取值,使得步骤S23中不满足第一预设精度条件的第二迭代点得到修正,利用修正后的迭代点继续迭代上述序列二次规划函数,从而使最终确定的控制点最优,即用控制点生成的贝塞尔曲线能够最接近采集到的经纬度信息所描述的运动轨迹。
在步骤S25中,确定约束一维搜索后的第二迭代点为控制点。
其中,约束一维搜索后的第二迭代点即为点X(k+1),X(k+1)为包括n+1个数据的矩阵,这n+1个数据对应于n+1个控制点,因此矩阵X(k+1)中的每个元素分别对应一个控制点。
本实施例中,由于序列二次规划算法是利用原来非线性约束优化问题的有关信息来构造某一简单的近似优化问题,通过求解它来给出对当前迭代点的修正,主要用一系列的线性规划或二次规划来逐次逼近原非线性规划问题。因此,序列二次规划算法不仅具有全局收敛性,而且具有超线性收敛的速度。由此可见,本实施例的技术方案中,通过序列二次规划算法求解控制点,进而用控制点生成的贝塞尔曲线描述运动轨迹,实现了对大量的经纬度信息进行压缩的效果,从而降低存储压力。
在一个实施例中,预设算法为遗传算法。如图3所示,步骤S12可实施为以下步骤S31-S37。
在步骤S31中,确定当代种群被更新时,根据采集的经纬度信息确定当代种群中每个参考个体的适应度。
其中,当代种群中包括N个参考个体。参考个体的个数N可由用户预先设定,每个参考个体为包括n+1个数据的矩阵,该n为贝塞尔曲线的阶数,n+1即为用于生成贝塞尔曲线的控制点的个数,也就是说,每个参考个体表示一组贝塞尔曲线的控制点,每个参考个体的矩阵中的每一个元素都对应一个控制点。其中,n为大于或等于1的正整数,且为使达到对采集到的经纬度信息的压缩目的,n的值应远远小于采集到的经纬度信息对应的采样点的个数。
在第一次迭代时,即该遗传算法的世代数为0时,随机生成N个参考个体(每个参考个体中包括n+1个数据)作为当代种群,从而触发控制点的确定过程。
该步骤中,可通过以下公式计算每个参考个体的适应度f(x):
f(x)=||B(t)Pk-D||F
其中,D为采集到的经纬度信息的集合,D=[(a0,b0),(a1,b1),…,(am,bm)],其中,aq为经度值,bq为纬度值,q的取值范围为0~m,m为采集的运动轨迹采样点的个数;
B(t)为将当代种群中的每个参考个体分别作为控制点所生成的贝塞尔曲线的函数表达式,其中,i为从0到n的整数,t为[0,1]之间的正数,t的取值为多个,n为贝塞尔曲线的阶数;
Pk为当代种群中的参考个体,实际上为第k+1(k为自然数)代种群中的参考个体,k为遗传算法的世代数,当k=0时,P0即为初始种群中的参考个体,其中,初始种群即为第一次迭代时随机生成的N个参考个体所构成的种群,||·||F表示F范数。
在步骤S32中,依据当代种群中每个参考个体的适应度,从当代种群中选择至N1个参考个体,N1小于N。
该步骤中,由于适应度越高,表示参考个体越逼近原始运动轨迹,因此,实施该步骤时,可按照适应度从高到低的顺序从当代种群中选择N1个参考个体。
在步骤S33中,从当代种群中选择出M个参考个体,并对选择出的每两个不同的参考个体进行预定运算,得到N2个参考个体,M小于N,且N2与N1之和不小于N。
该步骤中,预定预算包括交叉运算、变异运算中的至少一种。
因此,步骤S33中,可按照以下三种方式对选择出的每两个不同的参考个体进行预定运算:
方式一、对选择出的每两个不同的参考个体进行交叉运算,得到N2个参考个体。其中,两个不同的参考个体进行交叉运算后,可得到一个参考个体,
具体的交叉运算为本领域的现有技术,在此不再赘述。
方式二、对选择出的每两个不同的参考个体进行变异运算,得到N2个参考个体。其中,两个不同的参考个体进行变异运算后,可得到一个参考个体。具体的变异运算为本领域的现有技术,在此不再赘述。
方式三、对选择出的每两个不同的参考个体进行交叉运算,得到N2a个参考个体;对选择出的每两个不同的参考个体进行变异运算,得到N2b个参考个体,N2a和N2b之和为N2。该方式三中,交叉运算和变异运算的运算顺序不受限定,即,可先对选择出的每两个不同的参考个体进行交叉运算,再进行变异运算,也可以先对选择出的每两个不同的参考个体进行变异运算,再进行交叉运算。
上述步骤S32和步骤S33的执行顺序不受限制,即,可以先执行步骤S32,再执行步骤S33,也可以先执行步骤S33,再执行步骤S32,还可以同时执行步骤S32和步骤S33。
在步骤S34中,从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群。
在一个实施例中,该步骤可实施为:按照参考个体的适应度从高到低的顺序,从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群。
在步骤S35中,判断当代种群的下一代种群是否满足预设条件。如果当代种群的下一代种群满足预设条件,则执行步骤S36;如果当代种群的下一代种群不满足预设条件,则执行步骤S37。
在步骤S36中,从下一代种群中选择适应度最高的参考个体作为最优个体,根据最优个体确定控制点。
该步骤中,由于最优个体为包括n+1个数据的矩阵,因此最优个体中的n+1个数据即对应n+1个控制点。
在步骤S37中,利用下一代种群的参考个体更新当代种群,返回步骤S31重新执行控制点的确定过程。
本实施例中,通过遗传算法对原始的运动轨迹进行压缩,实现了对大量的经纬度信息进行压缩的效果,从而降低存储压力。
上述实施例中,预设条件包括以下条件一和条件二中的至少一种:
条件一、下一代种群中适应度最高的参考个体的适应度达到预设适应度。
当预设条件包括该条件一时,上述步骤S33中,判断当代种群的下一代种群是否满足预设条件,需要首先确定当代种群的下一代种群中的所有参考个体中适应度最高的参考个体,然后判断该适应度最高的参考个体的适应度是否达到预设适应度。
条件二、迭代次数达到预设最大世代数。
其中,迭代次数即为遗传算法中的世代数,预设最大世代数可由用户预先设定。
本实施例中,在下一代种群中适应度最高的参考个体的适应度达到预设适应度,或者遗传算法的迭代次数达到预设最大世代数时从下一代种群中选择出最优个体作为控制点,从而尽可能地降低了用以描述运动轨迹的控制点与原始的经纬度信息之间的差异,使得控制点生成的贝塞尔曲线能够更加逼近原始运动轨迹。
需要说明的是,对原始的运动轨迹进行压缩的算法不限于上述序列二次规划算法和遗传算法这两种,还可利用其他优化算法来实施。例如,梯度下降法、最小二乘法、除遗传算法之外的进化算法等。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图4是根据一示例性实施例示出的一种运动轨迹的处理装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。参照图4,该运动轨迹的处理装置包括获取模块41、处理模块42和模拟模块43;其中:
获取模块41被配置为获取运动轨迹的经纬度信息。
其中,获取模块41可通过终端中的GPS(Global Positioning System,全球定位***)传感器采样获得经纬度信息,GPS传感器可按照一定的采样频率对车辆的经纬度信息进行采样,例如,每5秒进行一次采样。
处理模块42被配置为利用预设算法对获取模块41获取的经纬度信息进行处理,得到用于描述运动轨迹的控制点。
模拟模块43被配置为根据处理模块42处理得到的控制点模拟运动轨迹。
采用本公开实施例提供的装置,能够使用预设算法对运动轨迹的经纬度信息进行处理确定出可描述运动轨迹的控制点,并使用控制点模拟运动轨迹,实现了用少量的控制点代替大量的经纬度信息来模拟运动轨迹的效果,从而达到对运动轨迹的压缩目的,不仅降低存储压力,且提升了数据处理速度。
在一个实施例中,如图5所示,模拟模块43包括生成子模块431;其中:
生成子模块431被配置为根据控制点生成用于描述运动轨迹的贝塞尔曲线。
其中,n阶贝塞尔曲线由n+1个控制点P=[P0,P1,…,Pn]T组成,用B(t)表示贝塞尔曲线,则其函数表达式为B(t)=Bi n(t)P,其中,i为从0到n的整数,t为[0,1]之间的正数,t的取值为多个,n为贝塞尔曲线的阶数,具体数值取决于控制点的个数。
对于上述贝塞尔曲线的函数表达式,给定控制点P,将t从0遍历到1,同时将i从0遍历到n,即可生成一条贝塞尔曲线,其中,将t从0遍历到1时,每次遍历的数值之间的间隔是均等的,该间隔可由用户预先设置,例如,以0.1为间隔将t从0遍历到1,那么t的取值为0、0.1、0.2、0.3、……0.98、0.99、1。
本实施例中,生成子模块431通过用控制点生成的贝塞尔曲线描述运动轨迹,实现了用少量的控制点代替大量的经纬度信息来模拟运动轨迹的效果,不仅降低存储压力、提升数据处理速度,且使得运动轨迹更加美观、清晰。
由上述实施例可以看出,用贝塞尔曲线来描述运动轨迹,实际上是求解一个带约束的非线性优化问题:mint,p||B(t)P-D||F或mint||B(t)B(t)+D-D||F,其中,||·||F表示F范数,B(t)表示贝塞尔曲线,t∈[0,1],P为贝塞尔曲线的n+1个控制点的集合,P=[P0,P1,…,Pn]T,D为采集到的经纬度信息的集合,D=[(a0,b0),(a1,b1),…,(am,bn)],其中,aq为经度值,bq为纬度值,q的取值范围为0~m,m为采集的运动轨迹采样点的个数,n为贝塞尔曲线的阶数,“+”表示矩阵的伪逆。因此,只需按照上述非线性优化问题确定出n阶贝塞尔曲线的n+1(n为大于或等于1的正整数,且n的值远远小于经纬度信息中采样点的个数m)个控制点,即可实现对运动轨迹的压缩。
在一个实施例中,预设算法包括以下算法中的至少一种:
序列二次规划算法;
遗传算法。
在一个实施例中,如图6所示,处理模块42包括计算子模块4201、搜索子模块4202和第一确定子模块4203;该处理模块42用于当预设算法包括序列二次规划算法时,重复执行如下迭代过程至确定出控制点;其中:
计算子模块4201被配置为确定第一迭代点被新赋值时,根据经纬度信息和序列二次规划函数的当前第一迭代点,计算序列二次规划函数的解空间的可行解。
其中,预先设定贝塞尔曲线的阶数为n,由于n阶贝塞尔曲线由n+1个控制点生成,因此第一迭代点为包括n+1个数据的矩阵,在第一次迭代时,随机生成n+1个数据并赋值给第一迭代点,从而触发控制点的确定过程。
用X(k)表示第一迭代点,其中k表示迭代的次数,因此X(k)可以表示序列二次规划函数的第k+1(k为自然数)个迭代点。当当前迭代为第一次迭代时,k=0,随机生成的初始点X(0)即为第一次迭代的迭代点。
序列二次规划函数为:
其中:f(Y)为用于描述运动轨迹的贝塞尔曲线和采集到的经纬度信息之间的差异,Y为序列二次规划函数的解空间的可行解,解空间即为每次迭代后计算出的序列二次规划函数的所有可行解的集合,“s.t”为“使得”的缩写形式,即表示二次规划函数所需满足的条件;
S=Y-X(k),sj为矩阵S的第j个元素,其中,X(k)为序列二次规划函数当前的第一迭代点,实际上为第k+1(k为自然数)个迭代点;
在H和C的表达式中,▽为梯度符号,D为采集到的经纬度信息的集合,D=[(a0,b0),(a1,b1),…,(am,bm)],其中,aq为经度值,bq为纬度值,q的取值范围为0~m,m为采集的运动轨迹采样点的个数;
B(X(k))为将X(k)作为控制点生成的贝塞尔曲线的函数表达式,其中,i为从0到n的整数,t为[0,1]之间的正数,t的取值为多个,n为贝塞尔曲线的阶数,具体数值取决于控制点个数,为使达到对采集到的经纬度信息的压缩目的,n的值应远远小于经纬度信息D对应的采样点的个数m;
aij为矩阵A在第i行第j列的元素,A为2n*2n的矩阵,E为n*n的单位矩阵,n为贝塞尔曲线的阶数;
lj为矩阵L的第j个元素,其中,L=(l1,l2…,ln,ln+1,…,l2n)T,L为1*2n的矩阵,其前n项值为X(k)-1,即l1=l2=…=ln=X(k)-1,后n项值为-X(k),即ln+1=…=l2n=-X(k),n为贝塞尔曲线的阶数;
计算子模块4201对上述序列二次规划函数求解之后,可得到序列二次规划函数的解空间的可行解,即Y的值。
搜索子模块4202被配置为根据计算子模块4201计算出的解空间的可行解确定约束一维搜索的搜索方向,并在搜索方向上对序列二次规划函数进行约束一维搜索,得到约束一维搜索后的第二迭代点。
其中,解空间的可行解为Y的值,约束一维搜索的搜索方向为S,即Y-X(k),对序列二次规划函数进行约束一维搜索之后,可得到第二迭代点X(k+1)的值。
第二迭代点X(k+1)为包括n+1个数据的矩阵,n为贝塞尔曲线的阶数。
搜索子模块4202对序列二次规划函数所进行的约束一维搜索方法为现有技术,例如黄金分割法、牛顿法、插值法等,在此不再赘述。
第一确定子模块4203被配置为当确定搜索子模块4202搜索到的第二迭代点满足第一预设精度条件时,确定第二迭代点为控制点,否则利用第二迭代点的取值更新第一迭代点的取值。
其中,约束一维搜索后的第二迭代点即为搜索子模块4202搜索到的点X(k+1)。
可通过预设收敛精度来设置第一预设精度条件,当通过预设收敛精度来设置第一预设精度条件时,需要根据约束一维搜索后的第二迭代点计算出该第二迭代点对应的函数值,并判断该第二迭代点对应的函数值的收敛精度是否小于或等于预设收敛精度,当该第二迭代点对应的函数值的收敛精度小于或等于预设收敛精度时,即可确定约束一维搜索后的第二迭代点满足第一预设精度条件。
计算第二迭代点对应的函数值时,可将第二迭代点X(k+1)的值代入上述序列二次规划函数,即可求得第二迭代点X(k+1)对应的函数值f(Y)。
约束一维搜索后的第二迭代点对应的函数值的收敛精度为该函数值与上一次迭代时约束一维搜索后的第二迭代点对应的函数值之间的差值,即X(k+1)对应的f(Y)和X(k)对应的f(Y)之间的差值,假设预设收敛精度为ε,如果X(k+1)对应的f(Y)和X(k)对应的f(Y)之间的差值小于或等于ε,则说明约束一维搜索后的第二迭代点满足第一预设精度条件,否则,约束一维搜索后的第二迭代点不满足第一预设精度条件。
第一确定子模块4203通过利用约束一维搜索后的第二迭代点更新第一迭代点的取值,使得不满足第一预设精度条件的第二迭代点得到修正,利用修正后的点继续迭代上述二次规划函数,从而使最终确定的控制点最优,即用控制点生成的贝塞尔曲线能够最接近采集到的经纬度信息所描述的运动轨迹。
本实施例中,由于序列二次规划算法是利用原来非线性约束优化问题的有关信息来构造某一简单的近似优化问题,通过求解它来给出对当前迭代点的修真该,主要用一系列的线性规划或二次规划来逐次逼近原非线性规划问题。因此,序列二次规划算法不仅具有全局收敛性,而且具有超线性收敛的速度。由此可见,本实施例的装置中,通过序列二次规划算法求解控制点,进而用控制点生成的贝塞尔曲线描述运动轨迹,实现了对大量的经纬度信息进行压缩的效果,从而降低存储压力。
在一个实施例中,如图7所示,处理模块42包括第二确定子模块4204、第一选择子模块4205、第二选择子模块4206、第三确定子模块4207和第三选择子模块4208;该处理模块42用于当预设算法包括遗传算法时,重复执行如下迭代过程至确定出控制点;其中:
第二确定子模块4204被配置为确定当代种群被更新时,根据经纬度信息确定当代种群中每个参考个体的适应度,当代种群包括N个参考个体。
其中,当代种群中包括N个参考个体,参考个体的个数N可由用户预先设定,每个参考个体为包括n+1个数据的矩阵,该n为贝塞尔曲线的阶数,n+1即为用于生成贝塞尔曲线的控制点的个数,也就是说,每个参考个体表示一组贝塞尔曲线的控制点,每个参考个体的矩阵中的每一个数据都对应一个控制点。其中,n为大于或等于1的正整数,且为使达到对采集到的经纬度信息的压缩目的,n的值远远小于采集到的经纬度信息对应的采样点的个数。
在第一次迭代时,即该遗传算法的世代数为0时,随机生成N个参考个体(每个参考个体中包括n+1个数据)作为当代种群,从而触发控制点的确定过程。
第一选择子模块4205被配置为依据第二确定子模块4204确定的当代种群中每个参考个体的适应度,从当代种群中选择N1个参考个体,N1小于N。
由于适应度越高,表示参考个体越逼近原始运动轨迹,因此,第一选择子模块4205可按照适应度从高到低的顺序从当代种群中选择N1个参考个体。
第二选择子模块4206被配置为从当代种群中选择出M个参考个体,并对选择出的每两个不同的参考个体进行预定运算,得到N2个参考个体,M小于N,且N2与N1之和不小于N。
该第二选择子模块4206被配置为对选择出的每两个不同的参考个体进行交叉运算,得到N2个参考个体;或者,用于对选择出的每两个不同的参考个体进行变异运算,得到N2个参考个体;或者,用于对选择出的每两个不同的参考个体进行交叉运算,得到N2a个参考个体;对选择出的每两个不同的参考个体进行变异运算,得到N2b个参考个体,N2a和N2b之和为N2。其中,交叉运算和变异运算为本领域的现有技术,在此不再赘述。
第三确定子模块4207被配置为从第一选择子模块4205选择出的N1个参考个体和第二选择子模块4206计算出的N2个参考个体中,确定N个参考个体作为下一代种群。
该第三确定子模块4207还被配置为按照参考个体的适应度从高到低的顺序,从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群。
第三选择子模块4208被配置为当第三确定子模块4207确定下一代种群满足预设条件时,从下一代种群中选择适应度最高的参考个体作为最优个体,根据最优个体确定控制点,否则利用下一代种群的参考个体更新当代种群。
由于最优个体为包括n+1个数据的矩阵,因此最优个体中的n+1个数据即对应n+1个控制点。
本实施例中,通过遗传算法对原始的运动轨迹进行压缩,实现了对大量的经纬度信息进行压缩的效果,从而降低存储压力。
本实施例中,第二确定子模块4204可通过以下公式确定每个参考个体的适应度f(x):
f(x)=||B(t)Pk-D||F
其中,D为采集的经纬度信息的集合,D=[(a0,b0),(a1,b1),…,(am,bm)],其中,aq为经度值,bq为纬度值,q的取值范围为0~m,m为采集的运动轨迹采样点的个数;
B(t)为将当代种群中的每个参考个体分别作为控制点所生成的贝塞尔曲线的函数表达式,其中,i为从0到n的整数,t为[0,1]之间的正数,t的取值为多个,n为贝塞尔曲线的阶数;
Pk为当代种群中的参考个体,实际上为第k+1(k为自然数)代种群中d的参考个体,k为遗传算法中的世代数,当k=0时,P0即为初始种群中的参考个体,其中,初始种群即为第一次迭代时随机生成的N个参考个体所构成的种群,||·||F表示F范数。
在一个实施例中,预设条件包括以下条件中的至少一种:
下一代种群中适应度最高的参考个体的适应度达到预设适应度;
迭代次数达到预设最大世代数。
其中,迭代次数即为遗传算法中的世代数,预设最大世代数可由用户预先设定。
本实施例中,在下一代种群中适应度最高的参考个体的适应度达到预设适应度,或者遗传算法的迭代次数达到预设最大世代数时从下一代种群中选择出最优个体作为控制点,从而尽可能地降低了用以描述运动轨迹的控制点与原始的经纬度信息之间的差异,使得控制点生成的贝塞尔曲线能够更加逼近原始运动轨迹。
需要说明的是,上述装置对原始的运动轨迹进行压缩的算法不限于上述序列二次规划算法和遗传算法这两种,还可利用其他优化算法来实施。例如,梯度下降法、最小二乘法、除遗传算法之外的进化算法等。
在示例性实施例中,提供一种运动轨迹的处理装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为:
获取运动轨迹的经纬度信息;
利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点;
根据所述控制点模拟所述运动轨迹。
上述处理器还可被配置为:
所述根据所述控制点模拟所述运动轨迹,具体包括:
根据所述控制点生成用于描述所述运动轨迹的贝塞尔曲线。
上述处理器还可被配置为:
所述预设算法包括以下算法中的至少一种:
序列二次规划算法;
遗传算法。
上述处理器还可被配置为:
当所述预设算法包括所述序列二次规划算法时,所述利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点,具体包括:
重复执行如下迭代过程至确定出控制点:
确定第一迭代点被新赋值时,根据所述经纬度信息和序列二次规划函数的当前第一迭代点,计算所述序列二次规划函数的解空间的可行解;
根据所述解空间的可行解确定约束一维搜索的搜索方向,并在所述搜索方向上对所述序列二次规划函数进行约束一维搜索,得到约束一维搜索后的第二迭代点;
确定所述所述第二迭代点满足所述第一预设精度条件时,确定所述第二迭代点为所述控制点,否则利用所述第二迭代点的取值更新所述第一迭代点的取值。
上述处理器还可被配置为:
所述第一迭代点和所述第二迭代点为包括n+1个数据的矩阵,n为所述贝塞尔曲线的阶数,在第一次迭代时,随机生成n+1个数据并赋值给第一迭代点。
上述处理器还可被配置为:
当所述预设算法包括所述遗传算法时,所述利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点,具体包括:
重复执行如下迭代过程至确定出控制点:
确定当代种群被更新时,根据所述经纬度信息确定所述当代种群中每个参考个体的适应度,所述当代种群包括N个参考个体;
依据所述当代种群中每个参考个体的适应度,从所述当代种群中选择N1个参考个体,N1小于N;
从所述当代种群中选择出M个参考个体,并对选择出的每两个不同的参考个体进行预定运算,得到N2个参考个体,M小于N,且N2与N1之和不小于N;
从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群;
确定所述下一代种群满足所述预设条件时,从所述下一代种群中选择适应度最高的参考个体作为最优个体,根据所述最优个体确定所述控制点,否则利用所述下一代种群的参考个体更新所述当代种群。
上述处理器还可被配置为:
所述对选择出的每两个不同的参考个体进行预定运算,得到N2个参考个体,具体包括:
对选择出的每两个不同的参考个体进行交叉运算,得到N2个参考个体;或者
对选择出的每两个不同的参考个体进行变异运算,得到N2个参考个体;或者
对选择出的每两个不同的参考个体进行交叉运算,得到N2a个参考个体;对选择出的每两个不同的参考个体进行变异运算,得到N2b个参考个体,N2a和N2b之和为N2。
上述处理器还可被配置为:
所述从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群,具体包括:
按照所述参考个体的适应度从高到低的顺序,从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群。
上述处理器还可被配置为:
所述预设条件包括以下条件中的至少一种:
所述下一代种群中适应度最高的参考个体的适应度达到预设适应度;
迭代次数达到预设最大世代数。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种用于运动轨迹的处理的装置的框图。例如,装置1200可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
装置1200可以包括以下一个或多个组件:处理组件1202,存储器1204,电源组件1206,多媒体组件1208,音频组件1210,输入/输出(I/O)的接口1212,传感器组件1214,以及通信组件1216。
处理组件1202通常控制装置1200的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1202可以包括一个或多个处理器1220来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1202可以包括一个或多个模块,便于处理组件1202和其他组件之间的交互。例如,处理组件1202可以包括多媒体模块,以方便多媒体组件1208和处理组件1202之间的交互。
存储器1204被配置为存储各种类型的数据以支持在设备1200的操作。这些数据的示例包括用于在装置1200上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1204可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1206为装置1200的各种组件提供电力。电源组件1206可以包括电源管理***,一个或多个电源,及其他与为装置1200生成、管理和分配电力相关联的组件。
多媒体组件1208包括在所述装置1200和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1208包括一个前置摄像头和/或后置摄像头。当设备1200处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件1210被配置为输出和/或输入音频信号。例如,音频组件1210包括一个麦克风(MIC),当装置1200处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1204或经由通信组件1216发送。在一些实施例中,音频组件1210还包括一个扬声器,用于输出音频信号。
I/O接口1212为处理组件1202和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1214包括一个或多个传感器,用于为装置1200提供各个方面的状态评估。例如,传感器组件1214可以检测到设备1200的打开/关闭状态,组件的相对定位,例如所述组件为装置1200的显示器和小键盘,传感器组件1214还可以检测装置1200或装置1200一个组件的位置改变,用户与装置1200接触的存在或不存在,装置1200方位或加速/减速和装置1200的温度变化。传感器组件1214可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1214还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1214还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1216被配置为便于装置1200和其他设备之间有线或无线方式的通信。装置1200可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1216经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1216还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置1200可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子组件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1204,上述指令可由装置1200的处理器1220执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置1200的处理器执行时,使得装置1200能够执行上述的运动轨迹的处理方法,所述方法包括:
获取运动轨迹的经纬度信息;
利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点;
根据所述控制点模拟所述运动轨迹。
所述根据所述控制点模拟所述运动轨迹,具体包括:
根据所述控制点生成用于描述所述运动轨迹的贝塞尔曲线。
所述预设算法包括以下算法中的至少一种:
序列二次规划算法;
遗传算法。
当所述预设算法包括所述序列二次规划算法时,所述利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点,具体包括:
重复执行如下迭代过程至确定出控制点:
确定第一迭代点被新赋值时,根据所述经纬度信息和序列二次规划函数的当前第一迭代点,计算所述序列二次规划函数的解空间的可行解;
根据所述解空间的可行解确定约束一维搜索的搜索方向,并在所述搜索方向上对所述序列二次规划函数进行约束一维搜索,得到约束一维搜索后的第二迭代点;
确定所述第二迭代点满足第一预设精度条件时,确定所述第二迭代点为所述控制点,否则利用所述第二迭代点的取值更新所述第一迭代点的取值。
所述第一迭代点和所述第二迭代点为包括n+1个数据的矩阵,n为所述贝塞尔曲线的阶数,在第一次迭代时,随机生成n+1个数据并赋值给第一迭代点。
当所述预设算法包括所述遗传算法时,所述利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点,具体包括:
重复执行如下迭代过程至确定出控制点:
确定当代种群被更新时,根据所述经纬度信息确定所述当代种群中每个参考个体的适应度,所述当代种群包括N个参考个体;
依据所述当代种群中每个参考个体的适应度,从所述当代种群中选择N1个参考个体,N1小于N;
从所述当代种群中选择出M个参考个体,并对选择出的每两个不同的参考个体进行预定运算,得到N2个参考个体,M小于N,且N2与N1之和不小于N;
从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群;
确定所述下一代种群满足所述预设条件时,从所述下一代种群中选择适应度最高的参考个体作为最优个体,根据所述最优个体确定所述控制点,否则利用所述下一代种群的参考个体更新所述当代种群。
所述对选择出的每两个不同的参考个体进行预定运算,得到N2个参考个体,具体包括:
对选择出的每两个不同的参考个体进行交叉运算,得到N2个参考个体;或者
对选择出的每两个不同的参考个体进行变异运算,得到N2个参考个体;或者
对选择出的每两个不同的参考个体进行交叉运算,得到N2a个参考个体;对选择出的每两个不同的参考个体进行变异运算,得到N2b个参考个体,N2a和N2b之和为N2。
所述从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群,具体包括:
按照所述参考个体的适应度从高到低的顺序,从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群。
所述预设条件包括以下条件中的至少一种:
所述下一代种群中适应度最高的参考个体的适应度达到预设适应度;
迭代次数达到预设最大世代数。
本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (19)
1.一种运动轨迹的处理方法,其特征在于,包括:
获取运动轨迹的经纬度信息;
利用预设算法对所述运动轨迹的经纬度信息进行处理,得到用于描述运动轨迹的控制点;
根据所述控制点模拟所述运动轨迹。
2.根据权利要求1所述的方法,其特征在于,所述根据所述控制点模拟所述运动轨迹,具体包括:
根据所述控制点生成用于描述所述运动轨迹的贝塞尔曲线。
3.根据权利要求2所述的方法,其特征在于,所述预设算法包括以下算法中的至少一种:
序列二次规划算法;
遗传算法。
4.根据权利要求3所述的方法,其特征在于,当所述预设算法包括所述序列二次规划算法时,所述利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点,具体包括:
重复执行如下迭代过程至确定出控制点:
确定第一迭代点被新赋值时,根据所述经纬度信息和序列二次规划函数的当前第一迭代点,计算所述序列二次规划函数的解空间的可行解;
根据所述解空间的可行解确定约束一维搜索的搜索方向,并在所述搜索方向上对所述序列二次规划函数进行约束一维搜索,得到约束一维搜索后的第二迭代点;
确定所述第二迭代点满足第一预设精度条件时,确定所述第二迭代点为所述控制点,否则利用所述第二迭代点的取值更新所述第一迭代点的取值。
5.根据权利要求4所述的方法,其特征在于,所述第一迭代点和所述第二迭代点为包括n+1个数据的矩阵,n为所述贝塞尔曲线的阶数,在第一次迭代时,随机生成n+1个数据并赋值给第一迭代点。
6.根据权利要求3所述的方法,其特征在于,当所述预设算法包括所述遗传算法时,所述利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点,具体包括:
重复执行如下迭代过程至确定出控制点:
确定当代种群被更新时,根据所述经纬度信息确定所述当代种群中每个参考个体的适应度,所述当代种群包括N个参考个体;
依据所述当代种群中每个参考个体的适应度,从所述当代种群中选择N1个参考个体,N1小于N;
从所述当代种群中选择出M个参考个体,并对选择出的每两个不同的参考个体进行预定运算,得到N2个参考个体,M小于N,且N2与N1之和不小于N;
从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群;
确定所述下一代种群满足预设条件时,从所述下一代种群中选择适应度最高的参考个体作为最优个体,根据所述最优个体确定所述控制点,否则利用所述下一代种群的参考个体更新所述当代种群。
7.根据权利要求6所述的方法,其特征在于,所述对选择出的每两个不同的参考个体进行预定运算,得到N2个参考个体,具体包括:
对选择出的每两个不同的参考个体进行交叉运算,得到N2个参考个体;或者
对选择出的每两个不同的参考个体进行变异运算,得到N2个参考个体;或者
对选择出的每两个不同的参考个体进行交叉运算,得到N2a个参考个体;对选择出的每两个不同的参考个体进行变异运算,得到N2b个参考个体,N2a和N2b之和为N2。
8.根据权利要求6所述的方法,其特征在于,所述从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群,具体包括:
按照所述参考个体的适应度从高到低的顺序,从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群。
9.根据权利要求6-8任一项所述的方法,其特征在于,所述预设条件包括以下条件中的至少一种:
所述下一代种群中适应度最高的参考个体的适应度达到预设适应度;
迭代次数达到预设最大世代数。
10.一种运动轨迹的处理装置,其特征在于,包括:
获取模块,用于获取运动轨迹的经纬度信息;
处理模块,用于利用预设算法对所述获取模块获取的经纬度信息进行处理,得到用于描述运动轨迹的控制点;
模拟模块,用于根据所述处理模块处理得到的控制点模拟所述运动轨迹。
11.根据权利要求10所述的装置,其特征在于,所述模拟模块包括:
生成子模块,用于根据所述控制点生成用于描述所述运动轨迹的贝塞尔曲线。
12.根据权利要求11所述的装置,其特征在于,所述预设算法包括以下算法中的至少一种:
序列二次规划算法;
遗传算法。
13.根据权利要求12所述的装置,其特征在于,所述处理模块用于当所述预设算法包括所述序列二次规划算法时,重复执行如下迭代过程至确定出控制点;所述处理模块包括:
计算子模块,用于确定第一迭代点被新赋值时,根据所述经纬度信息和序列二次规划函数的当前第一迭代点,计算所述序列二次规划函数的解空间的可行解;
搜索子模块,用于根据所述计算子模块计算出的解空间的可行解确定约束一维搜索的搜索方向,并在所述搜索方向上对所述序列二次规划函数进行约束一维搜索,得到约束一维搜索后的第二迭代点;
第一确定子模块,用于当确定所述搜索子模块搜索到的第二迭代点满足第一预设精度条件时,确定所述第二迭代点为所述控制点,否则利用所述第二迭代点的取值更新所述第一迭代点的取值。
14.根据权利要求13所述的装置,其特征在于,所述第一迭代点和所述第二迭代点为包括n+1个数据的矩阵,n为所述贝塞尔曲线的阶数,在第一次迭代时,随机生成n+1个数据并赋值给第一迭代点。
15.根据权利要求12所述的装置,其特征在于,所述处理模块用于当所述预设算法包括所述遗传算法时,重复执行如下迭代过程至确定出控制点;所述处理模块包括:
第二确定子模块,用于确定当代种群被更新时,根据所述经纬度信息确定所述当代种群中每个参考个体的适应度,所述当代种群包括N个参考个体;
第一选择子模块,用于依据所述第二确定子模块确定的当代种群中每个参考个体的适应度,从所述当代种群中选择N1个参考个体,N1小于N;
第二选择子模块,用于从所述当代种群中选择出M个参考个体,并对选择出的每两个不同的参考个体进行预定运算,得到N2个参考个体,M小于N,且N2与N1之和不小于N;
第三确定子模块,用于从所述第一选择子模块选择出的N1个参考个体和所述第二选择子模块计算出的N2个参考个体中,确定N个参考个体作为下一代种群;
第三选择子模块,用于所述第三确定子模块确定下一代种群满足预设条件时,从所述下一代种群中选择适应度最高的参考个体作为最优个体,根据所述最优个体确定所述控制点,否则利用所述下一代种群的参考个体更新所述当代种群。
16.根据权利要求15所述的装置,其特征在于,所述第二选择子模块,用于对选择出的每两个不同的参考个体进行交叉运算,得到N2个参考个体;或者,用于对选择出的每两个不同的参考个体进行变异运算,得到N2个参考个体;或者,用于对选择出的每两个不同的参考个体进行交叉运算,得到N2a个参考个体;对选择出的每两个不同的参考个体进行变异运算,得到N2b个参考个体,N2a和N2b之和为N2。
17.根据权利要求15所述的装置,其特征在于,所述第三确定子模块,用于按照所述参考个体的适应度从高到低的顺序,从选择出的N1个参考个体和计算出的N2个参考个体中,确定N个参考个体作为下一代种群。
18.根据权利要求15-17任一项所述的装置,其特征在于,所述预设条件包括以下条件中的至少一种:
所述下一代种群中适应度最高的参考个体的适应度达到预设适应度;
迭代次数达到预设最大世代数。
19.一种运动轨迹的处理装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取运动轨迹的经纬度信息;
利用预设算法对所述经纬度信息进行处理,得到用于描述运动轨迹的控制点;
根据所述控制点模拟所述运动轨迹。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510936597.5A CN106886038B (zh) | 2015-12-15 | 2015-12-15 | 运动轨迹的处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510936597.5A CN106886038B (zh) | 2015-12-15 | 2015-12-15 | 运动轨迹的处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106886038A true CN106886038A (zh) | 2017-06-23 |
CN106886038B CN106886038B (zh) | 2020-11-20 |
Family
ID=59174474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510936597.5A Active CN106886038B (zh) | 2015-12-15 | 2015-12-15 | 运动轨迹的处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106886038B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108490970A (zh) * | 2018-03-19 | 2018-09-04 | 广州亿航智能技术有限公司 | 预测无人机飞行轨迹方法、装置和储存介质 |
CN109808687A (zh) * | 2019-01-17 | 2019-05-28 | 福瑞泰克智能***有限公司 | 一种驾驶辅助方法、装置及设备 |
CN110545521A (zh) * | 2018-05-29 | 2019-12-06 | 中国电信股份有限公司 | 轨迹数据的在线压缩方法、装置及计算机可读存储介质 |
CN110769361A (zh) * | 2018-07-24 | 2020-02-07 | 哈尔滨海能达科技有限公司 | 一种定位信息的压缩、解压缩方法及装置 |
CN113031592A (zh) * | 2021-02-25 | 2021-06-25 | 杭州国辰机器人科技有限公司 | 一种基于五阶贝塞尔曲线的机器人路径平滑方法及*** |
CN114564106A (zh) * | 2022-02-25 | 2022-05-31 | 北京字跳网络技术有限公司 | 交互指示线的确定方法、装置、电子设备及存储介质 |
CN114880507A (zh) * | 2022-03-31 | 2022-08-09 | 北京工业大学 | 一种基于矢量提取的轨迹数据压缩方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000137833A (ja) * | 1998-10-29 | 2000-05-16 | Mitsubishi Materials Corp | 軌跡生成装置、方法、及びその記録媒体 |
CN102207736A (zh) * | 2010-03-31 | 2011-10-05 | 中国科学院自动化研究所 | 基于贝塞尔曲线的机器人路径规划方法及装置 |
CN102750722A (zh) * | 2011-08-11 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种运动模型轨迹的生成方法及*** |
CN102880186A (zh) * | 2012-08-03 | 2013-01-16 | 北京理工大学 | 基于稀疏a*算法和遗传算法的航迹规划方法 |
CN102998684A (zh) * | 2012-11-21 | 2013-03-27 | 厦门雅迅网络股份有限公司 | 一种基于贝塞尔曲线的终端定位轨迹拟合方法 |
CN103209474A (zh) * | 2012-01-13 | 2013-07-17 | 华为技术有限公司 | 一种移动终端定位的方法、定位服务器及服务基站 |
-
2015
- 2015-12-15 CN CN201510936597.5A patent/CN106886038B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000137833A (ja) * | 1998-10-29 | 2000-05-16 | Mitsubishi Materials Corp | 軌跡生成装置、方法、及びその記録媒体 |
CN102207736A (zh) * | 2010-03-31 | 2011-10-05 | 中国科学院自动化研究所 | 基于贝塞尔曲线的机器人路径规划方法及装置 |
CN102750722A (zh) * | 2011-08-11 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种运动模型轨迹的生成方法及*** |
CN103209474A (zh) * | 2012-01-13 | 2013-07-17 | 华为技术有限公司 | 一种移动终端定位的方法、定位服务器及服务基站 |
CN102880186A (zh) * | 2012-08-03 | 2013-01-16 | 北京理工大学 | 基于稀疏a*算法和遗传算法的航迹规划方法 |
CN102998684A (zh) * | 2012-11-21 | 2013-03-27 | 厦门雅迅网络股份有限公司 | 一种基于贝塞尔曲线的终端定位轨迹拟合方法 |
Non-Patent Citations (5)
Title |
---|
CHENG CHEN等: ""Quartic Bezier curve based on trajectory generation for autonomous vehicles with curvature and velocity constraints"", 《2014 IEEE INTERNATIONAL CONFERENCE ONROBOTICSANDAUTOMATION(ICRA)》 * |
张以良等: ""一种螺旋桨参数建模方法"", 《舰船科学技术》 * |
张庆振等: ""基于SQP方法的临近空间飞行器再入轨迹优化技术研究"", 《中国航空学会控制与应用第十三届学术年会》 * |
张鼎逆等: ""基于改进遗传算法和序列二次规划的再入轨迹优化"", 《浙江大学学报(工学版)》 * |
陈成等: ""基于四阶贝塞尔曲线的无人车可行轨迹规划"", 《自动化学报》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108490970A (zh) * | 2018-03-19 | 2018-09-04 | 广州亿航智能技术有限公司 | 预测无人机飞行轨迹方法、装置和储存介质 |
CN110545521A (zh) * | 2018-05-29 | 2019-12-06 | 中国电信股份有限公司 | 轨迹数据的在线压缩方法、装置及计算机可读存储介质 |
CN110769361A (zh) * | 2018-07-24 | 2020-02-07 | 哈尔滨海能达科技有限公司 | 一种定位信息的压缩、解压缩方法及装置 |
CN110769361B (zh) * | 2018-07-24 | 2021-05-14 | 哈尔滨海能达科技有限公司 | 一种定位信息的压缩、解压缩方法及装置 |
CN109808687A (zh) * | 2019-01-17 | 2019-05-28 | 福瑞泰克智能***有限公司 | 一种驾驶辅助方法、装置及设备 |
CN113031592A (zh) * | 2021-02-25 | 2021-06-25 | 杭州国辰机器人科技有限公司 | 一种基于五阶贝塞尔曲线的机器人路径平滑方法及*** |
CN114564106A (zh) * | 2022-02-25 | 2022-05-31 | 北京字跳网络技术有限公司 | 交互指示线的确定方法、装置、电子设备及存储介质 |
CN114564106B (zh) * | 2022-02-25 | 2023-11-28 | 北京字跳网络技术有限公司 | 交互指示线的确定方法、装置、电子设备及存储介质 |
CN114880507A (zh) * | 2022-03-31 | 2022-08-09 | 北京工业大学 | 一种基于矢量提取的轨迹数据压缩方法 |
CN114880507B (zh) * | 2022-03-31 | 2024-05-28 | 北京工业大学 | 一种基于矢量提取的轨迹数据压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106886038B (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106886038A (zh) | 运动轨迹的处理方法及装置 | |
CN106446782A (zh) | 图像识别方法及装置 | |
CN110765967A (zh) | 一种基于人工智能的动作识别方法和相关装置 | |
WO2021077529A1 (zh) | 神经网络模型压缩方法、语料翻译方法及其装置 | |
CN104536473B (zh) | 净化空气的控制方法及装置 | |
CN110008409A (zh) | 基于自注意力机制的序列推荐方法、装置及设备 | |
CN109800325A (zh) | 视频推荐方法、装置和计算机可读存储介质 | |
CN108230232B (zh) | 一种图像处理的方法以及相关装置 | |
CN107798669A (zh) | 图像去雾方法、装置及计算机可读存储介质 | |
CN107291690A (zh) | 标点添加方法和装置、用于标点添加的装置 | |
CN107220667A (zh) | 图像分类方法、装置及计算机可读存储介质 | |
CN107527024A (zh) | 人脸颜值评估方法及装置 | |
CN106774970A (zh) | 对输入法的候选项进行排序的方法和装置 | |
CN106296690A (zh) | 图像素材的质量评估方法及装置 | |
CN102741840B (zh) | 用于对个性化场景建模的方法和装置 | |
CN109960761A (zh) | 信息推荐方法、装置、设备及计算机可读存储介质 | |
CN107832741A (zh) | 人脸特征点定位的方法、装置及计算机可读存储介质 | |
CN109446952A (zh) | 一种钢琴监督方法、装置、计算机设备及存储介质 | |
CN110245757A (zh) | 一种图像样本的处理方法及装置、电子设备和存储介质 | |
CN108121736A (zh) | 一种主题词确定模型的建立方法、装置及电子设备 | |
CN108182271A (zh) | 一种拍照方法、终端及计算机可读存储介质 | |
CN109819288A (zh) | 广告投放视频的确定方法、装置、电子设备及存储介质 | |
CN106648063A (zh) | 手势识别方法及装置 | |
CN109410276A (zh) | 关键点位置确定方法、装置及电子设备 | |
CN107748867A (zh) | 目标对象的检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |