CN101344970A - 一种基于卡尔曼滤波的群组动态跟踪特效设计方法 - Google Patents

一种基于卡尔曼滤波的群组动态跟踪特效设计方法 Download PDF

Info

Publication number
CN101344970A
CN101344970A CNA2008101202626A CN200810120262A CN101344970A CN 101344970 A CN101344970 A CN 101344970A CN A2008101202626 A CNA2008101202626 A CN A2008101202626A CN 200810120262 A CN200810120262 A CN 200810120262A CN 101344970 A CN101344970 A CN 101344970A
Authority
CN
China
Prior art keywords
individual
group
motion
time
constantly
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
Application number
CNA2008101202626A
Other languages
English (en)
Other versions
CN101344970B (zh
Inventor
许佳奕
金小刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN2008101202626A priority Critical patent/CN101344970B/zh
Publication of CN101344970A publication Critical patent/CN101344970A/zh
Application granted granted Critical
Publication of CN101344970B publication Critical patent/CN101344970B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于卡尔曼滤波的群组动态跟踪特效设计方法,包括以下步骤:(1)用户输入群组的个体数量、个体属性和群组的全局控制参数,实时地生成用户所要求的群组动画;(2)为群组的每个个体指定虚拟的引导点,将群组运动模拟的过程按照时间离散化,每个时间步长为δt,运动初始时刻为t0,使用卡尔曼滤波方法计算个体在第任意步n步时刻t0+δt×n的最优化的引导力Fh,重新调整每个个体的运动参数,实现引导点对个体的引导作用,引导个体向下一个时间步长的目标位置运动,过程中群组整体的阵形向用户设定的终止阵形前进,保证群体动态变化的大致阵形和移动过程平稳自然。该方法是一种生成优美的三维变形群组动画效果的经济有效的方法。

Description

一种基于卡尔曼滤波的群组动态跟踪特效设计方法
技术领域
本发明涉及基于个体的群组运动引导和卡尔曼滤波动态跟踪技术,特别是涉及一种基于卡尔曼滤波的群组动态跟踪特效设计方法。
背景技术
随着三维软件技术的发展及硬件运算能力的提高,群组动画作为一个新兴的技术领域,越来越多的被人们所关注。在娱乐产业中,群组动画技术可以模拟成千上万的角色,在降低拍摄成本的同时真实的再现了壮观的场面。
大规模群组的模拟中,最自然的方法是基于个体的方法。每个个体独立的决定自己的行动。整个群组以一个粒子系统的形式进行模拟,每个粒子模拟一个个体。每个独立的个体通过对周围的动态环境的感知,在综合外力的趋势下进行运动,同时满足与群组速度匹配以及与其他个体和环境的碰撞避免的移动趋势等群组特有的性质,参见Hartman C andBeness B.“Autonomous boids.”Computer Animation and Virtual Worlds,2006,17:286-297。但是,现有的算法在模拟成千上万的个体时,往往达不到实时处理的效率。特别是关于群组在运动过程中,保持有趣的动态阵形这类特效,也是前人所没有模拟过的。
发明内容
本发明提供了一种基于卡尔曼滤波的群组动态跟踪特效设计方法,该方法包括:
(1)用户输入群组的个体数量、个体属性和群组的全局控制参数,实时地生成用户所要求的群组动画,群组的全局控制参数包括群组动画模拟开始时刻的起始位置、终止时刻的目标位置,整体保持的起始阵形、终止阵形和群组运动过程中要遵循的外形序列;
所述的群组由大量的个体组成,整个群组宏观上呈现的运动趋势和整体阵形通过所有个体微观行为的集合表现出来。同一群组的每个个体成员具有相似的属性,包括个体的质量M,个体在运动时能达到的最大速度Vmax、最大加速度amax、、个体避免碰撞的半径r。
由于每个个体有一定的可视范围,因而指定个体的视域范围表示可视区域;
在拥挤的环境下,成员之间自然的保持一定的间距,那么,我们定义一个避免碰撞的半径r。
观察群组宏观上的行为,主要是指所有成员保持的动态阵形在运动过程中的变化。
出于效率和效果上的考虑,在群组动画模拟的起始位置和目标位置,群组的整体外形大体满足用户设定的参数即可。在群组运动的路途中,不必严格的遵循固定的整体外形。
(2)为群组的每个个体指定虚拟的引导点,将群组运动模拟的过程按照时间离散化,每个时间步长为δt,运动初始时刻为t0,使用卡尔曼滤波方法计算个体在第n步时刻t0+δt×n的最优化的引导力Fh,n为第任意步,重新调整每个个体的运动参数,实现引导点对个体的引导作用,引导个体向下一个时间步长的目标位置运动,过程中群组整体的阵形向用户设定的终止阵形前进,保证群体动态变化的大致阵形和移动过程平稳自然。
引导点类似于个体在下一时刻的目标,其自身的参数也是随着时间和空间变化的;
引导点对个体产生的吸引力决定了个体的速率和运动方向;
个体的自主漫游行为,由其初始速度,质量和随机驱动外力决定。在任一时刻,个体都试图跟踪引导点,但是由于个体特性的差异,跟踪的紧密程度各有不同;个体运动受虚拟的引导点的约束,在保留一定自主运动的条件下,向目标点移动,达到自主运动和受控运动的平衡。
使用卡尔曼滤波来预测和调整每个个体的运动参数,实现虚拟的引导点引导个体运动的方法步骤如下:
I.将群组的每个运动的个体定义成一个运动的粒子,粒子的运动完全由力来驱动,作用力被截取在用户定义的大小内,限制作用力在合理的范围内;
II.将群组运动模拟的过程按照时间离散化,每个时间步长为δt,n为第任意步,n-1为n步的上一步,任意一个粒子经过一个时间步长后由局部规测重新计算更新得到该粒子在第n步的速度、加速度、位置等状态;
更新后粒子在第n步的加速度为an,an等于随机驱动外力F除以质量M,其中F∈[0,Fmax],也就是说,F的取值要小于用户定义的常数Fmax,trancate函数将an截取在0到amax之间的符合物理规律的合适大小范围内,计算如(1)式所示:
an=trancate(F)/M    (1)
更新后粒子在第n步的速度为Vn,trancate函数将Vn截取在0到Vmax之间的符合物理规律的合适大小范围内,计算如(2)式所示:
Vn=trancate(Vn-1+an×δt)    (2)
更新后粒子在第n步的位置为Pn,计算如(3)式所示:
Pn=Pn-1+Vn×δt    (3)
更新后粒子在第n步的引导力为Fn,计算如(4)式所示:
Fn=normalize(Pleader-Pn-1)×MaxSpeed-Vn-1    (4)
III.使用卡尔曼滤波方法计算最优化的引导力Fh,调整所有个体的运动参数,引导个体向目标位置运动;
步骤如下:
1).列出时间更新方程,通过时间更新方程从n-1时刻推算到n时刻的状态估计Xn|n-1和协方差估计Cn|n-1:,得到n时刻状态的预测结果;
2).列出测量更新方程,收集n时刻状态的测量值,结合n时刻状态的预测结果,通过测量更新方程,得到n时刻状态的最优化估计值Xn|n
3).保存群组中的每个个体的两个位置相关值:一个是由局部规测计算得到的n时刻的真实位置,另一个是引导点在n时刻的目标位置,将n时刻的真实位置视作n时刻的状态的预测结果Xn|n-1,将n时刻的目标位置视作n时刻状态的测量值Zn,将运动个体的Xn|n-1和Zn代入时间更新方程和测量更新方程,计算得到运动个体在n时刻状态的最优化估计值Xn|n,用Xn|n代替预测结果Xn|n-1,通过公式 F h = 2 M ( P n - P n - 1 - V n - 1 × δt ) δt 2 反求施加于个体的新作用力Fh
4).在新作用力Fh的作用下重新求得an’,Vn’,Pn’,最终得到任意一个体第n步的真实状态,引导个体运动。
本发明能模拟真实群组的运动特征,又能实时满足群组运动过程中的外形约束和动态变形的要求,是一种生成优美的三维变形群组动画效果的经济有效的方法。
附图说明
图1是本发明方法的流程图;
图2是本发明中使用卡尔曼滤波方法调整每个个体的运动参数实现虚拟的引导点引导个体运动的方法的流程图。
具体实施方式
下面结合附图对本发明的一种适用于群组动画的全局路径控制方法的实施例进行详细说明。
如图1所示一种基于卡尔曼滤波的群组动态跟踪特效设计方法,该方法包括以下步骤:
(1)用户输入群组的个体数量、个体属性和群组的全局控制参数,实时地生成用户所要求的群组动画,群组的全局控制参数包括群组动画模拟开始时刻的起始位置、终止时刻的目标位置,整体保持的起始阵形、终止阵形和群组运动过程中要遵循的外形序列;
所述的群组由大量的个体组成,整个群组宏观上呈现的运动趋势和整体阵形通过所有个体微观行为的集合表现出来。同一群组的每个个体成员具有相似的属性,包括个体的质量M,个体在运动时能达到的最大速度Vmax、最大加速度amax、个体的视域范围、个体避免碰撞的半径r。
由于每个个体有一定的可视范围,因而指定个体的视域范围、来表示可视区域;
在拥挤的环境下,成员之间自然的保持一定的间距,那么,我们定义一个避免碰撞的半径r。
观察群组宏观上的行为,主要是指所有成员保持的动态阵形在运动过程中的变化。
出于效率和效果上的考虑,在群组动画模拟的起始位置和目标位置,群组的整体外形大体满足用户设定的参数即可。在群组运动的路途中,不必严格的遵循固定的整体外形。
(2)为群组的每个个体指定虚拟的引导点,将群组运动模拟的过程按照时间离散化,每个时间步长为δt,运动初始时刻为t0,使用卡尔曼滤波方法计算个体在第n步时刻t0+δt×n的最优化的引导力Fh,n为第任意步,重新调整每个个体的运动参数,实现引导点对个体的引导作用,引导个体向下一个时间步长的目标位置运动,过程中群组整体的阵形向用户设定的终止阵形前进,保证群体动态变化的大致阵形和移动过程平稳自然。
引导点类似于个体在下一时刻的目标,其自身的参数也是随着时间和空间变化的;
引导点对个体产生的吸引力决定了个体的速率和运动方向;
个体的自主漫游行为,由其初始速度,质量和随机驱动外力决定。在任一时刻,个体都试图跟踪引导点,但是由于个体特性的差异,跟踪的紧密程度各有不同;个体运动受虚拟的引导点的约束,在保留一定自主运动的条件下,向目标点移动,达到自主运动和受控运动的平衡。
如图2所示,使用卡尔曼滤波来预测和调整每个个体的运动参数,实现虚拟的引导点引导个体运动的步骤如下:
I.将群组的每个运动的个体定义成一个运动的粒子,粒子的运动完全由力来驱动,作用力被截取在用户定义的大小内,限制作用力在合理的范围内;
II.将群组运动模拟的过程按照时间离散化,每个时间步长为δt,n为第任意步,n-1为n步的上一步,任意一个粒子经过一个时间步长后由局部规测重新计算更新得到该粒子在第n步的速度、加速度、位置等状态;
更新后粒子在第n步的加速度为an,an等于随机驱动外力F除以质量M,其中F∈[0,Fmax],也就是说,F的取值要小于用户定义的常数Fmax,trancate函数将an截取在0到amax之间的符合物理规律的合适大小范围内,计算如(1)式所示:
an=trancate(F)/M    (1)
更新后粒子在第n步的速度为Vn,trancate函数将Vn截取在0到Vmax之间的符合物理规律的合适大小范围内,计算如(2)式所示:
Vn=trancate(Vn-1+an×δt)    (2)
更新后粒子在第n步的位置为Pn,计算如(3)式所示:
Pn=Pn-1+Vn×δt    (3)
更新后粒子在第n步的引导力为Fn,计算如(4)式所示:
Fn=normalize(Pleader-Pn-1)×MaxSpeed-Vn-1    (4)
III.使用卡尔曼滤波方法计算最优化的引导力Fh,调整所有个体的运动参数,引导个体向目标位置运动;
步骤如下:
1).列出时间更新方程,得到n时刻状态的预测结果,时间更新方程从n-1时刻推算到n时刻的状态估计Xn|n-1和协方差估计Cn|n-1
Xn|n-1=AXn-1|n-1+BUn-1    (5)
Cn|n-1=ACn-1|n-1AT+Q    (6)
其中,Xn|n-1是上一个状态的最优结果,Un-1是现在状态的控制量。Q是误差协方差;
2).列出测量更新方程,收集n时刻状态的测量值,结合n时刻状态的预测结果,通过测量更新方程,得到n时刻状态的最优化估计值Xn|n
Kgn=Cn|n-1HT(HPn|n-1HT+R)-1    (7)
Xn|n=Xn|n-1+Kgn(Zn-HXn|n-1)    (8)
Cn|n=(I-KgnH)Pn|n-1    (9)
其中,Kg是卡尔曼增益,Zn是n时刻系统的测量值,H是测量系统的参数,对于多测量系统,H为矩阵,R是误差协方差;
3).保存群组中的每个个体的两个位置相关值:一个是由局部规测计算得到的n时刻的真实位置,另一个是引导点在n时刻的目标位置,将n时刻的真实位置视作n时刻的状态的预测结果Xn|n-1,将n时刻的目标位置视作n时刻状态的测量值Zn
X n | n - 1 = P n - 1 V n - 1 , A = Iδt 0 I , B = 00 0 δt , Un-1=an
将上述参数代入时间更新方程和测量更新方程,计算得到n时刻状态的最优化估计值Xn|n,用Xn|n代替预测结果Xn|n-1,反求施加于个体的新作用力Fh
F h = 2 M ( P n - P n - 1 - V n - 1 × δt ) δt 2
4).将Fh重新代入式(1)、式(2)、式(3),求得an’,Vn’,Pn’,最终得到任意一个体第n步的真实状态,引导个体运动。
误差协方差系数Q和R分别表示对预测结果和测量结果的可信度,Q越小表示预测可信度越高,反之亦然。也就是说,R越小则个体向目标位置靠近的趋势更明显,物体紧紧跟着引导点。

Claims (5)

1.一种基于卡尔曼滤波的群组动态跟踪特效设计方法,该方法包括:
(1)用户输入群组的个体数量、个体属性和群组的全局控制参数,实时地生成用户所要求的群组动画;
群组的全局控制参数包括群组动画模拟开始时刻的起始位置、终止时刻的目标位置,整体保持的起始阵形、终止阵形和群组运动过程中要遵循的外形序列;
个体属性包括个体的质量M,个体的最大速度Vmax、最大加速度amax、个体的视域范围、个体的避免碰撞半径r;
(2)为群组的每个个体指定虚拟的引导点,将群组运动模拟的过程按照时间离散化,每个时间步长为δt,运动初始时刻为t0,使用卡尔曼滤波方法计算个体在第n步时刻t0+δt×n的最优化的引导力Fh,n为第任意步,重新调整每个个体的运动参数,实现引导点对个体的引导作用,引导个体向下一个时间步长的目标位置运动,过程中群组整体的阵形向用户设定的终止阵形前进,保证群体动态变化的大致阵形和移动过程平稳自然。
2.根据权利要求1所述的基于卡尔曼滤波的群组动态跟踪特效设计方法,其特征在于:步骤(2)中的虚拟的引导点类似于个体在下一时刻的目标,其自身的参数也是随着时间和空间变化的,引导点对个体产生的吸引力决定了个体的速率和运动方向;
在任一时刻,个体都试图跟踪引导点;
个体运动受虚拟的引导点的约束,在保留一定自主运动的条件下,向目标点移动,达到自主运动和受控运动的平衡。
3.根据权利要求1所述的基于卡尔曼滤波的群组动态跟踪特效设计方法,其特征在于:
使用卡尔曼滤波方法调整每个个体的运动参数,实现虚拟的引导点引导个体运动的步骤如下:
I.将群组的每个运动的个体定义成一个运动的粒子,粒子的运动完全由力来驱动,作用力被限制在用户定义的大小内;
II.将群组运动模拟的过程按照时间离散化,每个时间步长为δt,n为第任意步,n-1为n步的上一步,任意一个粒子经过一个时间步长后由局部规测重新计算更新得到该粒子在第n步的速度、加速度、位置等状态;
III.使用卡尔曼滤波方法计算最优化的引导力Fh,调整所有个体的运动参数,引导个体向目标位置运动。
4.根据权利要求3所述的基于卡尔曼滤波的群组动态跟踪特效设计方法,其特征在于:步骤II中局部规测重新计算更新得到粒子在第n步的加速度an等于随机驱动外力F除以质量M,其中F∈[0,Fmax],trancate函数将an截取在0到amax之间的符合物理规律的合适大小范围内;
局部规测重新计算更新得到粒子在第n步的速度为Vn,trancate函数将Vn截取在0到Vmax之间的符合物理规律的合适大小范围内。
5.根据权利要求3所述的基于卡尔曼滤波的群组动态跟踪特效设计方法,其特征在于:步骤III中使用卡尔曼滤波方法计算最优化的引导力Fh,调整所有个体的运动参数的方法包括以下步骤:
1).使用卡尔曼滤波方法通过时间更新方程从n-1时刻推算到n时刻的状态估计Xn|n-1和协方差估计Cn|n-1,得到n时刻状态的预测结果;
2).收集n时刻状态的测量值,结合n时刻状态的预测结果,使用卡尔曼滤波方法通过测量更新方程,得到n时刻状态的最优化估计值Xn|n
3).保存群组中的每个个体的两个位置相关值:一个是由局部规测计算得到的n时刻的真实位置,另一个是引导点在n时刻的目标位置,将n时刻的真实位置视作n时刻的状态的预测结果Xn|n-1,将n时刻的目标位置视作n时刻状态的测量值Zn,将上Xn|n-1和Zn代入时间更新方程和测量更新方程,计算得到n时刻状态的最优化估计值Xn|n,用Xn|n代替预测结果Xn|n-1,通过公式 F h = 2 M ( P n - P n - 1 - V n - 1 × δt ) δ t 2 反求施加于个体的新作用力Fh
4).在新作用力Fh的作用下重新求得an’,Vn’,Pn’,最终得到任意一个体第n步的真实状态,引导个体运动。
CN2008101202626A 2008-08-20 2008-08-20 一种基于卡尔曼滤波的群组动态跟踪特效设计方法 Expired - Fee Related CN101344970B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101202626A CN101344970B (zh) 2008-08-20 2008-08-20 一种基于卡尔曼滤波的群组动态跟踪特效设计方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101202626A CN101344970B (zh) 2008-08-20 2008-08-20 一种基于卡尔曼滤波的群组动态跟踪特效设计方法

Publications (2)

Publication Number Publication Date
CN101344970A true CN101344970A (zh) 2009-01-14
CN101344970B CN101344970B (zh) 2011-12-14

Family

ID=40246969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101202626A Expired - Fee Related CN101344970B (zh) 2008-08-20 2008-08-20 一种基于卡尔曼滤波的群组动态跟踪特效设计方法

Country Status (1)

Country Link
CN (1) CN101344970B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102005055A (zh) * 2010-11-30 2011-04-06 北京航空航天大学 一种基于期望极大值变窗宽核粒子滤波的跟踪方法
CN102768766A (zh) * 2012-06-11 2012-11-07 天津大学 一种三维群体动画建模
CN102790829A (zh) * 2011-05-19 2012-11-21 晨星软件研发(深圳)有限公司 提供视效讯息的方法与相关通信系统及其发讯端
CN103236072A (zh) * 2013-04-10 2013-08-07 浙江大学 一种基于噪声感知的飞虫群模拟方法
CN108898625A (zh) * 2018-06-26 2018-11-27 长安大学 一种智能混合群体优化滤波跟踪方法
CN111988744A (zh) * 2020-08-31 2020-11-24 重庆邮电大学 一种基于用户移动模式的位置预测方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102005055A (zh) * 2010-11-30 2011-04-06 北京航空航天大学 一种基于期望极大值变窗宽核粒子滤波的跟踪方法
CN102790829A (zh) * 2011-05-19 2012-11-21 晨星软件研发(深圳)有限公司 提供视效讯息的方法与相关通信系统及其发讯端
CN102790829B (zh) * 2011-05-19 2015-06-24 晨星软件研发(深圳)有限公司 提供视效讯息的方法与相关通信系统及其发讯端
CN102768766A (zh) * 2012-06-11 2012-11-07 天津大学 一种三维群体动画建模
CN103236072A (zh) * 2013-04-10 2013-08-07 浙江大学 一种基于噪声感知的飞虫群模拟方法
CN103236072B (zh) * 2013-04-10 2015-11-18 浙江大学 一种基于噪声感知的飞虫群模拟方法
CN108898625A (zh) * 2018-06-26 2018-11-27 长安大学 一种智能混合群体优化滤波跟踪方法
CN108898625B (zh) * 2018-06-26 2021-01-08 长安大学 一种智能混合群体优化滤波跟踪方法
CN111988744A (zh) * 2020-08-31 2020-11-24 重庆邮电大学 一种基于用户移动模式的位置预测方法
CN111988744B (zh) * 2020-08-31 2022-04-01 重庆邮电大学 一种基于用户移动模式的位置预测方法

Also Published As

Publication number Publication date
CN101344970B (zh) 2011-12-14

Similar Documents

Publication Publication Date Title
CN101344970B (zh) 一种基于卡尔曼滤波的群组动态跟踪特效设计方法
Liu et al. A social force evacuation model driven by video data
Sud et al. Real-time navigation of independent agents using adaptive roadmaps
EP3040807B1 (en) Virtual sensor in a virtual environment
CN100580708C (zh) 一种生成群组动画的模糊控制方法
Herman et al. Inverse reinforcement learning of behavioral models for online-adapting navigation strategies
CN101373542A (zh) 一种适用于群组动画的全局路径控制方法
Karmakharm et al. Agent-based Large Scale Simulation of Pedestrians With Adaptive Realistic Navigation Vector Fields.
US6616454B2 (en) Method of simulating nozzle spray interaction with fire, smoke and other aerosols and gases
Nasir et al. A survey on simulating real-time crowd simulation
Hou et al. Stable adaptive algorithm for Six Degrees-of-Freedom haptic rendering in a dynamic environment
Chen et al. Controlling the movement of crowds in computer graphics by using the mechanism of particle swarm optimization
CN104299265A (zh) 一种流体环境影响下的群体行为控制技术
Wang et al. Behavior-based simulation of real-time crowd evacuation
Nasir et al. Simulating large group behaviour in Tawaf crowd
Temurtas et al. Application of neural generalized predictive control to robotic manipulators with a cubic trajectory and random disturbances
CN102332175A (zh) 一种基于形状约束的Flock动画方法
Chen et al. A linear wave propagation‐based simulation model for dense and polarized crowds
Luo et al. Modeling gap seeking behaviors for agent-based crowd simulation
Sun et al. A crowd model with multiple individual parameters to represent individual behaviour in crowd simulation
Mohamad et al. Intelligent agent simulator in massive crowd
He et al. A novel method for large crowd flow
Dimitrakakis Online statistical estimation for vehicle control
Rusdi Syamsuddin et al. Controllable simulation of particle system
Dias et al. Predicting optimal trajectories for constrained pedestrian turning manoeuvres

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111214

Termination date: 20140820

EXPY Termination of patent right or utility model