一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于DeepSORT的多目标连续跟踪方法与流程

2022-08-13 02:27:55 来源:中国专利 TAG:

一种基于deepsort的多目标连续跟踪方法
技术领域
1.本发明属于多目标连续跟踪技术领域,具体涉及一种基于deepsort的多目标连续跟踪方法。


背景技术:

2.视频跟踪领域,目前多采用基于检测的跟踪方法进行多目标跟踪,其中以各种不同的目标检测算法配合deepsort跟踪算法为主流。基于检测的多目标跟踪方法为:首先需要使用目标检测算法对视频中的每一帧图像进行目标检测,再使用deepsort跟踪算法对检测出的目标进行持续的跟踪。此种方法具有以下问题:(一)此种方法需要分析处理每一帧图像中的所有目标,跟踪效率较低。对于存在静止目标的场景,如停车场或路边有车辆停放的马路,对每一帧图片检测到的所有目标都进行检测和跟踪,会使得跟踪速度过慢,造成系统资源的浪费。(二)如果采用只跟踪运动目标、完全忽略静止目标的跟踪方法,则对于红绿灯路口场景,从运动进入静止状态再进入运动状态的目标都不能实现连续的跟踪,造成id切换。
3.因此,如何提高目标跟踪效率,同时保持跟踪轨迹连续不中断是本领域亟待解决的问题。


技术实现要素:

4.针对现有技术存在的缺陷,本发明提供一种基于deepsort的多目标连续跟踪方法,可有效解决上述问题。
5.本发明采用的技术方案如下:
6.本发明提供一种基于deepsort的多目标连续跟踪方法,包括以下步骤:
7.步骤1,预设置初始参数,包括:静止间隔数i_num;
8.预设置跟踪轨迹集合tr;每当发现一条跟踪轨迹时,将所述跟踪轨迹的跟踪轨迹id加入到所述跟踪轨迹集合tr;
9.步骤2,获取视频流的当前帧图像;
10.步骤3,使用多目标检测模型对当前帧图像进行目标检测,输出检测到的每一个目标的检测目标框的特征信息;其中,所述检测目标框的特征信息包括:检测目标框的中心位置坐标、短边长度和长边长度;假设对于当前帧图像,共检测到n个目标的检测目标框,因此,n个目标形成检测目标集合q;n个检测目标框形成检测目标框集合p;
11.步骤4,读取所述跟踪轨迹集合tr,得到当前所有跟踪轨迹;跟踪轨迹集合tr中的每条跟踪轨迹,均具有以下属性:运动状态标识、寿命、连续匹配失败次数、跟踪目标框序列和卡尔曼滤波器;
12.对于每条跟踪轨迹,表示为tri,均执行以下操作:
13.步骤4.1,将跟踪轨迹tri的寿命agei加1,即:令agei=agei 1;
14.步骤4.2,读取跟踪轨迹tri的运动状态标识,如果跟踪轨迹tri为静止状态,则执行
步骤4.3;如果跟踪轨迹tri为运动状态,则执行步骤4.5;
15.步骤4.3,判断跟踪轨迹tri的寿命agei是否为静止间隔数i_num的整数倍,如果是,则执行步骤4.4;如果否,则执行步骤5;
16.步骤4.4,判断跟踪轨迹tri的连续匹配失败次数f_num_i是否大于2,如果否,则执行步骤4.5;如果是,则执行步骤4.6;
17.步骤4.5,轨迹预测:
18.对跟踪轨迹tri进行位置预测,具体方法为:
19.读取跟踪轨迹tri的属性,获取最新的跟踪目标框,将最新的跟踪目标框输入绑定的卡尔曼滤波器,卡尔曼滤波器通过跟踪目标框和变化速度,预测得到跟踪轨迹tri的跟踪目标targeti在当前帧图像中的预测目标框proi;然后执行步骤4.6;
20.步骤4.6,将跟踪轨迹tri的连续匹配失败次数f_num_i加1,即:令f_num_i=f_num_i 1;然后执行步骤5;
21.通过本步骤,输出每个跟踪轨迹tri在当前帧图像中的预测目标框proi,由此得到所有跟踪轨迹对应的预测目标框集合;
22.步骤5,轨迹匹配:
23.使用deepsort算法中的匹配方法,对预测目标框集合中的每个预测目标框i和步骤3得到的检测目标框集合p中的各个检测目标框进行匹配,输出匹配结果;
24.步骤6,对于跟踪轨迹tri,判断跟踪轨迹tri的预测目标框proi是否与检测目标框集合p中的某个检测目标框匹配成功,如果匹配成功,则执行步骤7;否则,执行步骤8;其中,将当前帧图像中,匹配成功的检测目标框表示为检测目标框p_i;
25.步骤7:
26.步骤7.1,判断跟踪轨迹tri的寿命agei是否为静止间隔数i_num的整数倍,如果是,则执行步骤7.2;如果否,则执行步骤7.3;
27.步骤7.2,轨迹状态判断:
28.采用以下方法,判断跟踪轨迹tri的运动状态,然后执行步骤7.3;
29.读取到跟踪轨迹tri绑定的静止间隔帧数前的跟踪目标框c_i;
30.计算跟踪目标框c_i与步骤6得到的检测目标框p_i的移动比例;
31.若移动比例小于设定值,则跟踪轨迹tri为静止状态,否则,跟踪轨迹tri为运动状态;
32.步骤7.3,判断是否满足以下条件:
33.跟踪轨迹tri为静止状态,并且,跟踪轨迹tri的寿命agei不是静止间隔数i_num的整数倍;
34.如果满足,则执行步骤9;
35.如果不满足,则执行步骤7.4;
36.步骤7.4,轨迹更新:
37.对跟踪轨迹tri进行轨迹更新,然后执行步骤9;
38.其中:对跟踪轨迹tri进行轨迹更新的具体方法为:
39.更新跟踪轨迹tri的运动状态标识;更新跟踪轨迹tri的跟踪目标框序列,向跟踪目标框序列中加入最新的跟踪目标框;将跟踪轨迹tri属性中的连续匹配失败次数置0;更新
轨迹绑定的卡尔曼滤波器的卡尔曼滤波器参数,更新为:使用最新的跟踪目标框对卡尔曼滤波器参数进行更新;
40.步骤8:
41.步骤8.1,对于匹配失败,区分两种情况:对于匹配失败的跟踪轨迹tri,执行步骤8.2;对于匹配失败的检测目标框,执行步骤8.7;
42.步骤8.2,读取跟踪轨迹tri的属性,判断跟踪轨迹tri的运动状态标识是否为运动状态;如果是,则执行步骤8.3;如果否,则执行步骤8.5;
43.步骤8.3,判断跟踪轨迹tri的连续匹配失败次数f_num_i是否大于预设阈值,如果是,代表跟踪轨迹tri消失,则执行步骤8.4;如果否,则执行步骤9;
44.步骤8.4,从步骤1设置的跟踪轨迹集合tr中,删除跟踪轨迹tri;然后执行步骤9;
45.步骤8.5,判断跟踪轨迹tri的连续匹配失败次数f_num_i是否大于2,如果是,则执行步骤8.6;如果否,则执行步骤9;
46.步骤8.6,将跟踪轨迹tri的运动状态标识修改为运动状态;然后执行步骤9;
47.步骤8.7,对于匹配失败的检测目标框,认为该检测目标框为新出现的检测目标对应的检测目标框,将该检测目标表示为q_new;将该检测目标框作为跟踪目标框r_new;
48.初始化生成与检测目标q_new对应的新跟踪轨迹tr_q_new,包括:新跟踪轨迹tr_q_new的运动状态标识为运动状态,寿命age_tr_q_new设置为1,连续匹配失败次数f_num_tr_q_new设置为0,跟踪目标框为跟踪目标框r_new,为该新跟踪轨迹tr_q_new分配一个卡尔曼滤波器,使用跟踪目标框r_new进行卡尔曼滤波器参数的初始化;
49.将新跟踪轨迹tr_q_new加入到步骤1的跟踪轨迹集合tr中;
50.然后执行步骤9;
51.步骤9,读取下一帧图像,并将下一帧图像作为当前帧图像,返回步骤3。
52.优选的,步骤7.2具体为:
53.步骤7.2.1,读取到跟踪轨迹tri绑定的静止间隔帧数前的跟踪目标框c_i的中心位置坐标(x_c_i,y_c_i);
54.获取步骤6得到的检测目标框p_i的中心位置坐标(x_p_i,y_p_i)以及检测目标框p_i的短边长度l_s_p_i;
55.步骤7.2.2,采用下式,计算得到移动比例r:
[0056][0057]
步骤7.2.3,设置静止阈值s_t,若比值r小于静止阈值s_t,则跟踪轨迹tri为静止状态,否则,跟踪轨迹tri为运动状态。
[0058]
本发明提供的一种基于deepsort的多目标连续跟踪方法具有以下优点:
[0059]
(1)本发明通过判断跟踪目标是否处于静止状态,从而针对静止状态的目标采取隔多帧跟踪的策略,不再进行位置预测和轨迹更新,节省了系统资源,提高了多目标跟踪的跟踪效率。
[0060]
(2)当跟踪目标状态改变时,该方法能够通过各参数的变化进行判断,即使跟踪目标从静止状态转换为运动状态,也能快速识别,从而保持持续的跟踪的状态。
附图说明
[0061]
图1为本发明提供的一种基于deepsort的多目标连续跟踪方法的流程示意图。
具体实施方式
[0062]
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0063]
本发明提供的一种基于deepsort的多目标连续跟踪方法,可有效提高多目标跟踪的跟踪效率、同时保持跟踪连续性。
[0064]
参考图1,本发明提供一种基于deepsort的多目标连续跟踪方法,包括以下步骤:
[0065]
步骤1,预设置初始参数,包括:静止间隔数i_num;
[0066]
预设置跟踪轨迹集合tr;每当发现一条跟踪轨迹时,将所述跟踪轨迹的跟踪轨迹id加入到所述跟踪轨迹集合tr;
[0067]
步骤2,获取视频流的当前帧图像;
[0068]
具体的,视频或图片流包含多帧连续图像,从初始帧开始顺序取其中的图像进行处理,取图片操作可以通过图像编解码库如opencv等完成。
[0069]
步骤3,使用多目标检测模型对当前帧图像进行目标检测,输出检测到的每一个目标的检测目标框的特征信息;其中,所述检测目标框的特征信息包括:检测目标框的中心位置坐标、短边长度和长边长度;假设对于当前帧图像,共检测到n个目标的检测目标框,因此,n个目标形成检测目标集合q;n个检测目标框形成检测目标框集合p;
[0070]
本步骤中,多目标检测模型可以使用深度模型如yolov5等,也可以使用非深度的机器学习模型,输入一帧图像,可以输出图片中感兴趣目标的特征信息。例如,当需要对行人进行目标检测时,对于一张十字道路口拍摄到的图片,可检测出所有行人目标。
[0071]
步骤4,读取所述跟踪轨迹集合tr,得到当前所有跟踪轨迹;跟踪轨迹集合tr中的每条跟踪轨迹,均具有以下属性:运动状态标识、寿命、连续匹配失败次数、跟踪目标框序列和卡尔曼滤波器;
[0072]
其中,每条跟踪轨迹均绑定一个卡尔曼滤波器,各条跟踪轨迹的卡尔曼滤波器的参数不相同。
[0073]
对于每条跟踪轨迹,表示为tri,均执行以下操作:
[0074]
步骤4.1,将跟踪轨迹tri的寿命agei加1,即:令agei=agei 1;
[0075]
步骤4.2,读取跟踪轨迹tri的运动状态标识,如果跟踪轨迹tri为静止状态,则执行步骤4.3;如果跟踪轨迹tri为运动状态,则执行步骤4.5;
[0076]
步骤4.3,判断跟踪轨迹tri的寿命agei是否为静止间隔数i_num的整数倍,如果是,则执行步骤4.4;如果否,则执行步骤5;
[0077]
步骤4.4,判断跟踪轨迹tri的连续匹配失败次数f_num_i是否大于2,如果否,则执行步骤4.5;如果是,则执行步骤4.6;
[0078]
步骤4.5,轨迹预测:
[0079]
对跟踪轨迹tri进行位置预测,具体方法为:
[0080]
读取跟踪轨迹tri的属性,获取最新的跟踪目标框,将最新的跟踪目标框输入绑定
的卡尔曼滤波器,卡尔曼滤波器通过跟踪目标框和变化速度,预测得到跟踪轨迹tri的跟踪目标targeti在当前帧图像中的预测目标框proi;然后执行步骤4.6;
[0081]
步骤4.6,将跟踪轨迹tri的连续匹配失败次数f_num_i加1,即:令f_num_i=f_num_i 1;然后执行步骤5;
[0082]
通过本步骤,输出每个跟踪轨迹tri在当前帧图像中的预测目标框proi,由此得到所有跟踪轨迹对应的预测目标框集合;
[0083]
步骤5,轨迹匹配:
[0084]
使用deepsort算法中的匹配方法,对预测目标框集合中的每个预测目标框i和步骤3得到的检测目标框集合p中的各个检测目标框进行匹配,输出匹配结果;
[0085]
deepsort算法针对行人目标使用了深度特征匹配和iou(交并比)匹配结合的方式,若需要跟踪的目标非行人,可仅使用iou匹配;匹配结果分为跟踪轨迹和检测目标框匹配成功、跟踪轨迹匹配失败、检测目标框匹配失败三种,处理方式各不相同。
[0086]
其中,假设当前为跟踪轨迹tr1,检测目标框集合p中共有10个检测目标框,分别为:p1,p2,...,p10。如果跟踪轨迹tr1和检测目标框p10匹配成功,则执行步骤7;如果跟踪轨迹tr1和10个检测目标框均不匹配,则代表跟踪轨迹tr1匹配失败,执行步骤8.2;如果检测目标框p8,和跟踪轨迹集合tr中的每个跟踪轨迹均不匹配,则代表检测目标框p8匹配失败,执行步骤8.7。
[0087]
步骤6,对于跟踪轨迹tri,判断跟踪轨迹tri的预测目标框proi是否与检测目标框集合p中的某个检测目标框匹配成功,如果匹配成功,则执行步骤7;否则,执行步骤8;其中,将当前帧图像中,匹配成功的检测目标框表示为检测目标框p_i;
[0088]
步骤7:
[0089]
步骤7.1,判断跟踪轨迹tri的寿命agei是否为静止间隔数i_num的整数倍,如果是,则执行步骤7.2;如果否,则执行步骤7.3;
[0090]
步骤7.2,轨迹状态判断:
[0091]
采用以下方法,判断跟踪轨迹tri的运动状态,然后执行步骤7.3;
[0092]
读取到跟踪轨迹tri绑定的静止间隔帧数前的跟踪目标框c_i;
[0093]
计算跟踪目标框c_i与步骤6得到的检测目标框p_i的移动比例;
[0094]
若移动比例小于设定值,则跟踪轨迹tri为静止状态,否则,跟踪轨迹tri为运动状态;
[0095]
步骤7.2具体为:
[0096]
步骤7.2.1,读取到跟踪轨迹tri绑定的静止间隔帧数前的跟踪目标框c_i的中心位置坐标(x_c_i,y_c_i);
[0097]
获取步骤6得到的检测目标框p_i的中心位置坐标(x_p_i,y_p_i)以及检测目标框p_i的短边长度l_s_p_i;
[0098]
步骤7.2.2,采用下式,计算得到移动比例r:
[0099][0100]
步骤7.2.3,设置静止阈值s_t,若比值r小于静止阈值s_t,则跟踪轨迹tri为静止状态,否则,跟踪轨迹tri为运动状态。
[0101]
在跟踪轨迹状态判断中,跟踪轨迹需要记录静止间隔帧整数倍时的跟踪目标框中心位置坐标,在下一次静止间隔帧整数倍时会使用新匹配到的检测目标框中心位置坐标和轨迹保存的跟踪目标框坐标进行移动距离的计算,得到移动距离后与跟踪目标框的短边长度做比,即得到目标在该段时间内的移动比例,比较该比例与静止阈值就可以判断轨迹状态;得到轨迹状态后,将本次匹配到的检测目标中心位置坐标作为跟踪目标框坐标,为下一次轨迹状态判断做准备。
[0102]
静止阈值的取值需要根据目标种类、目标运动速度来制定,以满足不同场景的判断需求,获得更准确的判断。
[0103]
步骤7.3,判断是否满足以下条件:
[0104]
跟踪轨迹tri为静止状态,并且,跟踪轨迹tri的寿命agei不是静止间隔数i_num的整数倍;
[0105]
如果满足,则执行步骤9;
[0106]
如果不满足,则执行步骤7.4;
[0107]
步骤7.4,轨迹更新:
[0108]
对跟踪轨迹tri进行轨迹更新,然后执行步骤9;
[0109]
其中:对跟踪轨迹tri进行轨迹更新的具体方法为:
[0110]
更新跟踪轨迹tri的运动状态标识;更新跟踪轨迹tri的跟踪目标框序列,向跟踪目标框序列中加入最新的跟踪目标框;将跟踪轨迹tri属性中的连续匹配失败次数置0;更新轨迹绑定的卡尔曼滤波器的卡尔曼滤波器参数,更新为:使用最新的跟踪目标框对卡尔曼滤波器参数进行更新;
[0111]
对步骤7.1-步骤7.4的理解为:
[0112]
对于匹配成功的检测目标和跟踪轨迹,若跟踪轨迹的寿命为静止间隔的整数倍,则进行轨迹状态的重新判断;对于当前状态为运动的轨迹,或者当前状态为静止但寿命为静止间隔的整数倍的轨迹,进行轨迹的更新;
[0113]
对于匹配成功的跟踪轨迹,需要按照静止间隔来计算更新轨迹的运动状态;而对于静止且未达到静止间隔整数倍的轨迹,跳过轨迹更新步骤,认为静止目标的位置信息不发生变化,这样可以节省系统资源,加快跟踪速度。
[0114]
步骤8:
[0115]
步骤8.1,对于匹配失败,区分两种情况:对于匹配失败的跟踪轨迹tri,执行步骤8.2;对于匹配失败的检测目标框,执行步骤8.7;
[0116]
步骤8.2,读取跟踪轨迹tri的属性,判断跟踪轨迹tri的运动状态标识是否为运动状态;如果是,则执行步骤8.3;如果否,则执行步骤8.5;
[0117]
步骤8.3,判断跟踪轨迹tri的连续匹配失败次数f_num_i是否大于预设阈值,如果是,代表跟踪轨迹tri消失,则执行步骤8.4;如果否,则执行步骤9;
[0118]
步骤8.4,从步骤1设置的跟踪轨迹集合tr中,删除跟踪轨迹tri;然后执行步骤9;
[0119]
步骤8.5,判断跟踪轨迹tri的连续匹配失败次数f_num_i是否大于2,如果是,则执行步骤8.6;如果否,则执行步骤9;
[0120]
步骤8.6,将跟踪轨迹tri的运动状态标识修改为运动状态;然后执行步骤9;
[0121]
对于步骤8.2-步骤8.6,具体解释如下:
[0122]
对于匹配失败的跟踪轨迹,若状态为运动,且连续匹配失败次数大于预设阈值,代表跟踪轨迹在本帧画面中消失,将其删除;若状态为静止,且连续匹配失败次数大于2,则将状态修改为运动;
[0123]
对于静止状态的轨迹,若连续匹配失败次数大于2,则认为该目标可能已经不在原位置,或该目标被其他目标遮挡导致无法检测到;对于目标不在原位置的情况,将轨迹状态修改为运动,能保证尽快跟踪上运动目标不至丢失,即快速响应目标从静止转换为运动状态的情况;对于目标被其他目标遮挡导致无法检测到的情况,将状态修改为运动,可以使目标在脱离遮挡状态的第一时间匹配成功,或者在目标被长时间遮挡的情况下将该轨迹删除,节省计算资源,保持跟踪准确性。
[0124]
步骤8.7,对于匹配失败的检测目标框,认为该检测目标框为新出现的检测目标对应的检测目标框,将该检测目标表示为q_new;将该检测目标框作为跟踪目标框r_new;
[0125]
初始化生成与检测目标q_new对应的新跟踪轨迹tr_q_new,包括:新跟踪轨迹tr_q_new的运动状态标识为运动状态,寿命age_tr_q_new设置为1,连续匹配失败次数f_num_tr_q_new设置为0,跟踪目标框为跟踪目标框r_new,为该新跟踪轨迹tr_q_new分配一个卡尔曼滤波器,使用跟踪目标框r_new进行卡尔曼滤波器参数的初始化;
[0126]
将新跟踪轨迹tr_q_new加入到步骤1的跟踪轨迹集合tr中;
[0127]
然后执行步骤9;
[0128]
作为一种具体实现方式,匹配失败的检测目标被认为是新进入画面的目标,因此对其进行轨迹初始化,后续作为轨迹参与匹配步骤;但这些目标也可能是误检测,deepsort针对这种情况采取的策略是,对于这些新的轨迹,只有连续多帧匹配成功才成为正式的轨迹,否则会被直接删除而不需要满足连续匹配失败次数大于预设的条件,该策略保证了偶尔的误检不会被当成轨迹跟踪,该策略并非跟踪中的关键步骤,因此不在本方法中描述。
[0129]
步骤9,读取下一帧图像,并将下一帧图像作为当前帧图像,返回步骤3。
[0130]
本发明提供一种基于deepsort的多目标连续跟踪方法,主要包括轨迹预测、轨迹匹配、轨迹状态重新判断、轨迹更新等关键步骤。
[0131]
其中,轨迹预测时,使用deepsort算法对已存跟踪轨迹进行预测;将所有已存跟踪轨迹的寿命加1;对于状态为运动的跟踪轨迹,进行轨迹预测,并将连续匹配失败次数加1;对于状态为静止的跟踪轨迹,如果其寿命为静止间隔的整数倍,并且,连续匹配失败次数大于2,则不进行轨迹预测,仅将其连续匹配失败次数加1;如果其寿命为静止间隔的整数倍,并且,连续匹配失败次数小于等于2,则进行轨迹预测,并将连续匹配失败次数加1;
[0132]
轨迹的寿命即轨迹存在的帧数,轨迹初始化时寿命为1,每多处理一帧,不论是否匹配成功,轨迹的寿命都需要加1;
[0133]
轨迹的状态分为运动状态和静止状态,对于运动轨迹,每一帧都进行完整的跟踪,对于静止轨迹,只有在特定寿命时,才进行完整的跟踪,其他时候既不进行轨迹预测也不进行轨迹更新;
[0134]
轨迹预测是使用卡尔曼滤波器,通过轨迹历史位置坐标和变化速度,预测当前帧轨迹可能出现的位置坐标,该预测位置用于后续的轨迹与检测目标的匹配;轨迹更新是在轨迹和检测框匹配成功后,利用检测框的位置坐标信息更新对应轨迹的卡尔曼滤波器中的相关参数,得到更准确的目标位置,还包括轨迹特征的更新、轨迹相关参数的更新等;
[0135]
静止间隔是针对轨迹的寿命设置,当轨迹的寿命是静止间隔的整数倍时,轨迹进行静止或运动状态的重新判断,根据判断结果修改轨迹属性中的轨迹运动状态,从而可以保持对轨迹状态变化的迅速响应;而对于状态为静止的轨迹,只有当轨迹的寿命是静止间隔的整数倍时,轨迹才进行一次完整的轨迹预测和轨迹更新,其他时候则维持原位置信息不变,不进行轨迹预测和轨迹更新,这样可以减少不必要的计算和资源占用,加快整体跟踪速度;
[0136]
连续匹配失败次数是判断轨迹是否还存在的一个参数,当轨迹初始化时,该参数为0,当轨迹预测一次,该参数加1,但如果该轨迹在后续匹配中成功匹配到检测框,该参数重置0,如果连续多帧没有匹配成功,则该参数只增不减,当达到预设值时,认为该轨迹已经从画面中消失,删除该轨迹。
[0137]
与现有技术相比,本发明的有益效果是:
[0138]
静止目标在画面中的位置坐标能够保持较长时间不变,如果视频中每一帧都对全部目标进行跟踪,则会浪费系统资源和时间来对静止目标进行不必要的轨迹预测和轨迹更新。通过判断跟踪目标是否处于静止状态,从而针对静止状态的目标采取隔多帧跟踪的策略,不再进行位置预测和轨迹更新,节省了系统资源,提高了多目标跟踪的跟踪效率。
[0139]
同时,当跟踪目标状态改变时,该方法能够通过各参数的变化进行判断,即使跟踪目标从静止状态转换为运动状态,也能快速识别,从而保持持续的跟踪的状态。
[0140]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献