CN117649537B - 监控视频对象识别跟踪方法、系统、电子设备及存储介质 - Google Patents
监控视频对象识别跟踪方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117649537B CN117649537B CN202410126423.1A CN202410126423A CN117649537B CN 117649537 B CN117649537 B CN 117649537B CN 202410126423 A CN202410126423 A CN 202410126423A CN 117649537 B CN117649537 B CN 117649537B
- Authority
- CN
- China
- Prior art keywords
- frame
- target
- video
- tracker
- picture
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 238000012544 monitoring process Methods 0.000 title claims abstract description 15
- 238000007781 pre-processing Methods 0.000 claims abstract description 19
- 238000001514 detection method Methods 0.000 claims abstract description 17
- 230000033001 locomotion Effects 0.000 claims description 25
- 239000002131 composite material Substances 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000000007 visual effect Effects 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种监控视频对象识别跟踪方法、系统、电子设备及存储介质,涉及视觉图像处理技术领域,包括步骤S1:接收视频数据流,经过解复用和解码,输出原始视频的画面并记录帧类型,其中帧类型包括I帧和P帧;S2:对I帧所解码的画面进行预处理,通过SDD目标检测算法模型在画面的图像中进行定位和对象识别,识别画面中的目标以及目标的位置信息,并将位置信息按照边界框的方式表示;S3:将步骤S2中的识别结果在原始I帧的画面上进行标记和绘制;S4:将获取的位置信息传递至跟踪器进行初始化,得到以I帧为初始帧的初始化目标跟踪器。本方法能够降低视频对象识别跟踪过程中所消耗的硬件计算资源。
Description
技术领域
本发明涉及视觉图像处理技术领域,提供了一种监控视频对象识别跟踪方法、系统、电子设备及存储介质。
背景技术
监控视频经过解复用以后获得原始ES流,经过解码以及颜色空间转换,使用AI引擎去识别每一帧的对象,输出识别结果,根据结识别结果在相应得视频帧上叠加合成识别结果,生成包含AI识别的结果视频帧,送至视频编码器。编码器重新编码重新生成新的视频流,播放器播放新生成的视频,展示出AI输出的画面。
现有的监控视频对象识别跟踪需要每帧送入神经网络去识别,这个过程非常消耗性能,耗时很长无法在普通高配PC上都无法实时运行,因此都使用服务器进行处理。在服务器上需要同时运行AI框架,视频解码,视频编码等过程,二次编码解码产生的延迟,影响视频的时效性,无论对带宽还是服务器本身的硬件资源消耗都是很大的。
发明内容
为了解决背景技术中提到的至少一个技术问题,本发明的目的在于提供一种监控视频对象识别跟踪方法、系统、电子设备及存储介质,以降低视频对象识别跟踪过程中所消耗的硬件计算资源。
为实现上述目的,本发明提供如下技术方案:
一种监控视频对象识别跟踪方法,包括步骤:
S1:接收视频数据流,经过解复用和解码,输出原始视频的画面并记录帧类型,其中帧类型包括I帧和P帧;
S2:对I帧所解码的画面进行预处理,通过SDD目标检测算法模型在画面的图像中进行定位和对象识别,识别画面中的目标以及目标的位置信息,并将位置信息按照边界框的方式进行表示;
S3:将步骤S2中的识别结果在原始I帧的画面上进行标记和绘制;
S4:将获取的位置信息传递至跟踪器进行初始化,得到以I帧为初始帧的初始化目标跟踪器,根据初始化目标跟踪器学习的目标特征对视频的画面中移动目标进行持续跟踪;
S5:在出现P帧时,将P帧输入到步骤S4的初始化目标跟踪器中,根据当前P帧和学习的目标特征来更新边界框内的坐标信息,并在P帧上绘制反映目标新位置的标识框,将带有更新边界框的P帧在视频播放中进行展示。
进一步地,所述步骤S1包括:
S11:从服务器或本地文件中接收视频数据流,将复合的视频数据流分解为原始的NAL单元;
S12:通过解码器接收NAL码流,并进行解码;通过解码器分析Slice层得出每一帧的类型;
S13:在解码器完成解码流程后输出原始画面并记录原有的帧类型。
进一步地,所述步骤S2包括:
S21:调整I帧所解码的画面图像大小并转换图像的颜色空间以适应模型输入;
S22:通过SDD目标检测算法模型在图像中定位和识别对象,在多个尺度和不同的预设位置进行特征提取和预测,识别出目标物体并通过边界框的方式给出每个目标在图像中的位置。
进一步地,所述步骤S4包括:
S41:调用Tracker的create方法创建跟踪器,以I帧作为初始帧来初始化跟踪器,将获取的边界框传递给跟踪器进行初始化;
S42:调用init方法并传递I帧图像和初始边界框位置来初始化跟踪器;
S43:在初始化跟踪器后,学习所跟踪物体的目标特征信息,其中目标特征包括颜色、形状、纹理或运动模式中的任意一种;
S44:通过初始化目标跟踪器在后续帧中持续跟踪该目标;在每一帧中根据目标特征来定位目标,并更新边界框的位置;通过连续的帧得到目标在整个视频序列中的运动轨迹信息。
进一步地,所述步骤S5包括:
S51:通过跟踪器的Update方法根据P帧中目标新位置调整边界框的坐标信息,并将坐标信息存储至队列中;
S52:在队列中获取边界框对象,由边界框内获取坐标信息,根据坐标信息绘制目标新位置的标识框。
进一步地,还包括步骤:
S6:根据目标出现的时间戳计算绘制画面的时机,在视频播放与音频播放不同步时,动态调整视频的播放速度。
进一步地,所述步骤S6包括:
S61:通过比较音频和视频的时间戳来同步视频与音频的播放时间;
S62:在视频播放落后于音频时,则加快播放速度;在视频播放超前于音频播放时,则减缓播放速度。
进一步地,还包括步骤:
S7:在出现新的I帧时,清空初始化目标跟踪器中的跟踪信息,并按照步骤S2至步骤S4进行操作,重新更新被跟踪的目标。
进一步地,所述步骤S7中的跟踪信息包括目标位置信息、目标特征信息、目标的运动轨迹信息和时间戳信息。
一种电子设备,所述电子设备包括:
存储器:用于存储可执行指令;
处理器:用于运行所述存储器存储的可执行指令时,实现上述方案中任一项所述的监控视频对象识别跟踪方法。
一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时实现上述方案中任一项所述的监控视频对象识别跟踪方法。
一种监控视频对象识别跟踪系统,包括:
接收模块:用于接收视频数据流,经过解复用和解码,输出原始视频的画面并记录帧类型,其中帧类型包括I帧和P帧;
预处理模块:用于对I帧所解码的画面进行预处理,通过SDD目标检测算法模型在画面的图像中进行定位和对象识别,识别画面中的目标以及目标的位置信息,并将位置信息按照边界框的方式进行表示;
标记模块:用于将预处理模块中的识别结果在原始I帧的画面上进行标记和绘制;
目标跟踪模块:用于将获取的位置信息传递至跟踪器进行初始化,得到以I帧为初始帧的初始化目标跟踪器,根据初始化目标跟踪器学习的目标特征对视频的画面中移动目标进行持续跟踪;
目标新位置标识模块:用于在出现P帧时,将P帧输入到步骤S4的初始化目标跟踪器中,根据当前P帧和学习的目标特征来更新边界框内的坐标信息,并在P帧上绘制反映目标新位置的标识框,将带有更新边界框的P帧在视频播放中进行展示。
进一步地,所述接收模块包括:
解复用单元:用于从服务器或本地文件中接收视频数据流,将复合的视频数据流分解为原始的NAL单元;
解码单元:用于通过解码器接收NAL码流,并进行解码;通过解码器分析Slice层得出每一帧的类型;
画面还原单元:用于在解码器完成解码流程后输出原始画面并记录原有的帧类型;
所述预处理模块包括:
图像调整单元:用于调整I帧所解码的画面图像大小并转换图像的颜色空间以适应模型输入;
识别单元:用于通过SDD目标检测算法模型在图像中定位和识别对象,在多个尺度和不同的预设位置进行特征提取和预测,识别出目标物体并通过边界框的方式给出每个目标在图像中的位置;
所述目标跟踪模块包括:
跟踪器初始化单元:用于调用Tracker的create方法创建跟踪器,以I帧作为初始帧来初始化跟踪器,将获取的边界框传递给跟踪器进行初始化;
传递单元:用于调用init方法传递I帧图像和初始边界框位置来初始化跟踪器;
目标特征学习单元:用于在初始化跟踪器后,学习所跟踪物体的目标特征信息,其中目标特征包括颜色、形状、纹理或运动模式中的任意一种;
跟踪目标定位单元:用于通过初始化目标跟踪器在后续帧中持续跟踪该目标;在每一帧中根据目标特征来定位目标,并更新边界框的位置;通过连续的帧得到目标在整个视频序列中的运动轨迹信息;
所述目标新位置标识模块包括:
坐标信息存储单元:用于通过跟踪器的Update方法根据P帧中目标新位置调整边界框的坐标信息,并将坐标信息存储至队列中;
绘制单元:用于在队列中获取边界框对象,由边界框内获取坐标信息,根据坐标信息绘制目标新位置的标识框;
还包括:
音视频同步模块:用于根据目标出现的时间戳计算绘制画面的时机,在视频播放与音频播放不同步时,动态调整视频的播放速度;
所述音视频同步模块包括:
时间戳比较单元:用于通过比较音频和视频的时间戳来同步视频与音频的播放时间;
播放速度调节单元:用于在视频播放落后于音频时,则加快播放速度;在视频播放超前于音频播放时,则减缓播放速度;
目标跟踪刷新模块:用于在出现新的I帧时,清空初始化目标跟踪器中的跟踪信息,并由预处理模块、标记模块和目标跟踪模块进行操作,重新更新被跟踪的目标。
与现有技术相比,本发明的有益效果是:
本发明通过使用视频编码特性,只需识别I帧,对P帧使用对象跟踪技术,跟踪视频画面中的对象,将识别结果绘制到原I帧画面上,当后续视频帧遇到P帧时,使用之前在I帧定位的边界框,使用AI引擎推理的结果以I帧为初始帧初始化目标跟踪器。通过SDD目标跟踪算法更新该目标在P帧的位置,绘制新位置的标识框,将带有更新边界框的P帧在视频播放时进行展示。从而实现减少AI模型的调用次数,节约了大量的硬件计算资源。
附图说明
图1为本发明实施例一提供的监控视频对象识别跟踪方法流程图;
图2为本发明实施例一提供的监控视频对象识别跟踪方法中步骤S1的流程图;
图3为本发明实施例一提供的监控视频对象识别跟踪方法中步骤S2的流程图;
图4为本发明实施例一提供的监控视频对象识别跟踪方法中步骤S3的流程图;
图5为本发明实施例一提供的监控视频对象识别跟踪方法中步骤S4的流程图;
图6为本发明实施例一提供的监控视频对象识别跟踪方法中步骤S5的流程图;
图7为本发明实施例一提供的监控视频对象识别跟踪方法中步骤S6和步骤S7的流程图;
图8为本发明实施例二提供的监控视频对象识别跟踪系统结构框图一;
图9为本发明实施例二提供的监控视频对象识别跟踪系统结构框图二。
具体实施方式
下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
请参阅图1,本实施例提供一种监控视频对象识别跟踪方法,包括步骤:
S1:接收视频数据流,经过解复用和解码,输出原始视频的画面并记录帧类型,其中帧类型包括I帧和P帧;
S2:对I帧所解码的画面进行预处理,通过SDD目标检测算法模型在画面的图像中进行定位和对象识别,识别画面中的目标以及目标的位置信息,并将位置信息按照边界框的方式进行表示;
S3:将步骤S2中的识别结果在原始I帧的画面上进行标记和绘制;
S4:将获取的位置信息传递至跟踪器进行初始化,得到以I帧为初始帧的初始化目标跟踪器,根据初始化目标跟踪器学习的目标特征对视频的画面中移动目标进行持续跟踪;
S5:在出现P帧时,将P帧输入到步骤S4的初始化目标跟踪器中,根据当前P帧和学习的目标特征来更新边界框内的坐标信息,并在P帧上绘制反映目标新位置的标识框,将带有更新边界框的P帧在视频播放中进行展示。
参阅图2,其中,步骤S1包括:
S11:从服务器或本地文件中接收视频数据流,将复合的视频数据流分解为原始的NAL单元;
S12:通过解码器接收NAL码流,并进行解码;通过解码器分析Slice层得出每一帧的类型;
S13:在解码器完成解码流程后输出原始画面并记录原有的帧类型。
具体的,播放器播放视频流:这一步涉及从某种来源,例如服务器、本地文件等接收视频数据流。解复用获得视频NAL码流:解复用是将复合的视频数据流分解为原始的NAL单元。NAL是H.264/AVC编码标准的基本组成单元,包含了视频编码的各种信息。NAL码流送入解码器:解码器接收到NAL码流后,开始进行解码工作。解码器分析Slice层得出确切的帧类型:H.264中的Slice层包含图像的宏块信息,通过分析Slice层,解码器可以确定每一帧的类型包括I帧、P帧、B帧。解码器完成所有解码流程输出原始画面并记录原有的帧类型:解码器按照视频数据的编码格式,还原出原始的视频画面。同时,它还会记录下原始数据中的帧类型信息。
参阅图3,其中,步骤S2包括:
S21:调整I帧所解码的画面图像大小并转换图像的颜色空间以适应模型输入;
S22:通过SDD目标检测算法模型在图像中定位和识别对象,在多个尺度和不同的预设位置进行特征提取和预测,识别出目标物体并通过边界框的方式给出每个目标在图像中的位置。
具体的,预处理是图像处理中的重要步骤,它包括调整图像大小以适应模型输入,以及转换图像的颜色空间,例如从RGB转换为灰度或特定的颜色空间格式。预处理的目的是确保图像质量、降低计算复杂度并优化模型的输入。使用AI模型进行识别:这一步使用预先训练好的AI模型,如SSD,或单次多框检测器来识别图像中的目标。SSD是一种目标检测算法,用于在图像中定位和识别对象。它通过在多个尺度上和不同的预设位置进行特征提取和预测来工作,以实现更高的检测精度和速度。
具体的,视频是由不同的帧画面连续播放形成的,视频的帧主要分为三类,分别是I帧、B帧和P帧。一般监控场景为了保证实时性不使用B帧,因此只针对I帧(关键帧)与P帧(预测帧)进行分析。
具体的,识别目标及位置信息:模型会对图像进行分析,识别出其中的目标物体,并给出它们的位置信息。这些位置信息通常表示为边界框(bbox),即围绕目标物体的矩形框。每个边界框都会提供物体的位置坐标、宽度和高度等信息。位置信息表示为bbox:在目标检测任务中,bbox是关键的输出信息。通过bbox,可以知道每个检测到的目标在图像中的位置,进而进行后续的处理或分析。
参阅图5,其中,步骤S4包括:
S41:调用Tracker的create方法创建跟踪器,以I帧作为初始帧来初始化跟踪器,将获取的边界框传递给跟踪器进行初始化;
S42:调用init方法并传递I帧图像和初始边界框位置来初始化跟踪器;
S43:在初始化跟踪器后,学习所跟踪物体的目标特征信息,其中目标特征包括颜色、形状、纹理或运动模式中的任意一种;
S44:通过初始化目标跟踪器在后续帧中持续跟踪该目标;在每一帧中根据目标特征来定位目标,并更新边界框的位置;通过连续的帧得到目标在整个视频序列中的运动轨迹信息。
具体的,目标跟踪是计算机视觉中的一个重要应用,用于持续跟踪视频中的移动对象。为了跟踪之前检测到的目标。初始化一个目标跟踪器,使用I帧作为初始帧来初始化跟踪器。将之前步骤中获取的位置信息传递给跟踪器进行初始化。调用Tracker的create方法创建一个新的跟踪器。然后,调用init方法并传递I帧图像和初始bbox位置来初始化跟踪器。自动学习物体的特征:初始化跟踪器后,它会开始自动学习所跟踪物体的特征。这是跟踪器能够持续、准确地跟踪目标的关键步骤。这些特征可以是颜色、形状、纹理或运动模式等。通过持续学习和适应,跟踪器能够更好地识别目标,即使在场景中存在遮挡、光照变化或摄像机移动等挑战时也能保持稳定。
具体的,视频通常由多个帧组成,其中I帧是关键帧,包含了完整的图像信息。选择I帧作为初始帧来初始化跟踪器是因为它包含了完整和准确的数据,有助于跟踪器更准确地定位和跟踪目标。将获取的边界框传递给跟踪器进行初始化:边界框是一个矩形框,用于标示视频中目标对象的位置。在获取到目标对象的初始位置后,将这个边界框的位置信息传递给跟踪器,以便跟踪器知道从哪里开始跟踪目标。调用init方法并传递I帧图像和初始边界框位置来初始化跟踪器:在创建了跟踪器并选择了I帧和初始边界框之后,需要调用跟踪器的init方法来真正地初始化它。这个方法需要接收两个参数:I帧图像和初始边界框的位置信息。传递这些参数给init方法是为了确保跟踪器能够准确地开始工作。
具体的,持续跟踪目标:一旦初始化并学习了目标的特征,跟踪器将能够在后续帧中持续跟踪该目标。在每一帧中跟踪器都会使用其学习到的特征来定位目标,并在必要时更新边界框的位置。通过连续的帧,可以观察到目标在整个视频序列中的运动轨迹和行为模式。
参阅图6,其中,步骤S5包括:
S51:通过跟踪器的Update方法根据P帧中目标新位置调整边界框的坐标信息,并将坐标信息存储至队列中;
S52:在队列中获取边界框对象,由边界框内获取坐标信息,根据坐标信息绘制目标新位置的标识框。
具体的,将P帧输入到Tracker中:当遇到P帧即预测帧时,将该帧输入到之前初始化的跟踪器中。P帧通常包含关于目标物体的运动信息,因此是更新跟踪位置的关键帧。调用Update方法:跟踪器通常有一个Update方法,用于根据当前帧和之前学习的目标特征来更新目标的位置。调用Update方法时,传递当前的P帧和任何可用的运动信息或相邻帧之间的差异信息。
具体的,更新bbox内的坐标信息:跟踪器的Update方法将使用P帧中的信息来更新bbox内的坐标信息。这通常涉及到估计物体在新的位置,并根据这个新的位置调整边界框的坐标。存储到队列中:更新的坐标信息,存储在新的或更新的边界框中被存储到一个队列中,等待进一步的处理。队列通常是一个先进先出的数据结构,用于按顺序处理或显示更新的目标位置。
具体的,从队列中获取bbox对象:当准备好绘制更新后的目标位置时,从队列中获取相应的边界框对象。这确保使用的是最新的、经过跟踪器更新的坐标信息。获取坐标信息并绘制新位置的标识框:一旦获得更新的边界框,就可以从中获取坐标信息,并在相应的P帧上绘制新的标识框。这个框现在将反映跟踪器通过分析和更新在P帧上找到的目标的新位置。绘制结果展示:最终的结果是在视频播放时,用户可以看到带有更新边界框的P帧,这些框指示了目标物体的新位置。这种实时更新和绘制的过程有助于可视化目标物体的运动轨迹和行为模式。
参阅图4,其中,步骤S3包括:
S31:将目标的边界框在原始I帧画面上进行标记和绘制,通过在定位到的目标周围绘制边界框来区分识别到的物体。
具体的,在I帧画面上绘制识别结果:一旦通过AI模型识别出图像中的目标,使用这些信息在原始I帧画面上进行标记或绘制。在检测到的目标周围绘制bbox,以突出显示识别到的物体。这些绘制或标记可以使用不同的颜色或样式,以便在显示时清楚地指示出检测到的目标。
参阅图7,其中,还包括步骤:
S6:根据目标出现的时间戳计算绘制画面的时机,在视频播放与音频播放不同步时,动态调整视频的播放速度。
其中,步骤S6包括:
S61:通过比较音频和视频的时间戳来同步视频与音频的播放时间;
S62:在视频播放落后于音频时,则加快播放速度;在视频播放超前于音频播放时,则减缓播放速度。
具体的,由于人的视觉和听觉感知是相关的,所以音频和视频需要同步以提供最佳的用户体验。当处理连续的视频流时,即使是微小的不同步也可能导致观众感到不适。选择音频作为基准意味着视频将根据音频的时间戳进行调整,以确保两者之间的同步。根据时间戳计算绘制画面的时机:时间戳是每个音视频帧的准确时间标记。这允许程序确定每个帧或数据包的确切时间,从而决定何时播放或处理特定的帧。通过比较音频和视频的时间戳,程序可以计算出何时应该播放特定的视频帧,以便与音频同步。
具体的,动态调整视频播放速度:如果发现视频与音频不同步,程序可以动态调整视频的播放速度。例如,如果视频落后于音频,程序可以加快播放速度;反之,如果视频超前,则减缓播放速度。在屏幕上完成显示带有标签的画面:在完成上述同步步骤后,带有时刻更新标签的视频帧将在屏幕上正确显示。这意味着目标物体上的边界框将与音频同步,提供流畅且一致的用户体验。
其中,还包括步骤:
S7:在出现新的I帧时,清空初始化目标跟踪器中的跟踪信息,并按照步骤S2至步骤S4进行操作,重新更新被跟踪的目标。
其中,步骤S7中的跟踪信息包括目标位置信息、目标特征信息、目标的运动轨迹信息和时间戳信息。
具体的,处理新的I帧:当遇到新的I帧时,清空Tracker即跟踪器中的跟踪信息。这是为了确保从新的起始点重新开始跟踪目标,并避免累积误差或旧的跟踪数据影响新的帧。之后,按照之前描述的步骤重复操作,包括预处理、使用AI模型识别、初始化跟踪器,以更新被跟踪的目标。
具体的,目标位置信息:Tracker会记录每个目标在视频帧中的位置信息。清空这些位置信息意味着需要重新定位目标的起始位置。运动轨迹:Tracker会跟踪目标的运动轨迹,记录其在视频帧之间的位置变化。清空运动轨迹意味着需要重新计算目标的运动路径。特征点信息:Tracker会提取视频帧中的特征点,并记录这些特征点的位置和属性。清空特征点信息意味着需要重新检测和记录视频中的特征点。时间戳记录:Tracker会记录每个目标出现的时间戳,以便于与音频时间进行同步。清空时间戳记录意味着需要重新开始记录目标出现的时间。
具体的,视频帧的类型由编码器决定,编码器输出的NAL类型中含有帧类型信息:在播放器播放视频流,视频流经过解复用以后,获得视频NAL码流,NAL起始编码(00 00 0001)后一个字节表示,视频帧分为I帧,P帧。可以初步判断。NAL码流送入解码器,解码器分析Slice层可以得出确切的帧类型,同时解码器走完所有解码流程,输出原始画面,并记录原有的帧类型。根据视频编码器上一步的操作得到相应画面的原先的帧类型,帧I帧为参考帧,P帧提取了运动信息,进行帧间压缩。因此,只需要对I帧所解码的画面,首先先进行对画面进行预处理,使图像大小,颜色空间格式符合模型输入,进行使用相应的AI模型,比如SSD目标检测算法进行识别。识别出画面的目标以及位置信息。位置信息记为bbox,将识别结果绘制到该标记为I帧的画面上。
具体的,开始播放,首先通过stream open创建音视频解码后的数据缓存队列,创建音视频解码前的数据缓存队列,初始化时钟,创建数据读取线程read thread,其中readthread是读取线程,主要作用是从MP4文件缓存队列中读取AV Packet。分别从audiothread和video thread进行音频解码和视频解码,音频解码通过缓存队列中读取AVFrame,视频解码通过目标跟踪算法对视频流中的I帧和P帧进行处理视频,将视频输出与声音输出进行同步后输出声音并显示图像。
具体的,使用I帧标记的图像初始化目标跟踪器。因此调用Tracker的create方法创建跟踪器,然后调用Traceker的init方法设置bbox到Tracker中,tracker会自动学习该物体的特征。当后续视频帧遇到标记为P帧的视频帧,将该帧输入到Tracker内部,调用Update方法,更新bbox内的坐标信息,从而目标跟踪算法更新该目标在该P帧上的位置。并存储到一个队列(queue)中。从获取队列(queue)获取bbox对象。从bbox内获取坐标信息,根据坐标信息绘制新位置的标识框。假如遇到新的I帧时,则清空Tracker跟踪信息,并按上述步骤进行重复操作,从而更新被跟踪的目标。
具体的,由于视频的处理步骤比较长,需要做音视频同步操作,根据人眼对视频帧数不敏感特性,选择以音频为基准,视频的时间戳,去同步音频的时间。根据时间戳计算出,绘制画面的时机,实现了通过动态调整视频的播放速度来追赶或等待音频,从而绘制带有标签的画面,在屏幕上完成显示。基于视频I帧,P帧的目标跟踪,准确度与性能比较平衡。集成播放器,获得跟踪信息以后,直接绘制画面。在客户端实现无需二次编码,解码,节约性能与网络资源,保证了视频的时效性。客户端无需使用服务器资源,也可以节约服务器资源。
提供一种电子设备,电子设备包括:存储器:用于存储可执行指令;处理器:用于运行存储器存储的可执行指令时,实现上述方案中任一项的监控视频对象识别跟踪方法。
提供一种计算机可读存储介质,存储有可执行指令,可执行指令被处理器执行时实现上述方案中任一项的监控视频对象识别跟踪方法。
本方法通过使用视频编码特性,只需识别I帧,对P帧使用对象跟踪技术,跟踪视频画面中的对象,将识别结果绘制到原I帧画面上,当后续视频帧遇到P帧时,使用之前在I帧定位的边界框,使用AI引擎推理的结果以I帧为初始帧初始化目标跟踪器。通过SDD目标跟踪算法更新该目标在P帧的位置,绘制新位置的标识框,将带有更新边界框的P帧在视频播放时进行展示。从而实现减少AI模型的调用次数,节约了大量的硬件计算资源。
实施例二
请参阅图8,本实施例提供一种监控视频对象识别跟踪系统,包括:
接收模块:用于接收视频数据流,经过解复用和解码,输出原始视频的画面并记录帧类型,其中帧类型包括I帧和P帧;
预处理模块:用于对I帧所解码的画面进行预处理,通过SDD目标检测算法模型在画面的图像中进行定位和对象识别,识别画面中的目标以及目标的位置信息,并将位置信息按照边界框的方式进行表示;
标记模块:用于将预处理模块中的识别结果在原始I帧的画面上进行标记和绘制;
目标跟踪模块:用于将获取的位置信息传递至跟踪器进行初始化,得到以I帧为初始帧的初始化目标跟踪器,根据初始化目标跟踪器学习的目标特征对视频的画面中移动目标进行持续跟踪;
目标新位置标识模块:用于在出现P帧时,将P帧输入到步骤S4的初始化目标跟踪器中,根据当前P帧和学习的目标特征来更新边界框内的坐标信息,并在P帧上绘制反映目标新位置的标识框,将带有更新边界框的P帧在视频播放中进行展示。
参阅图9,其中,接收模块包括:
解复用单元:用于从服务器或本地文件中接收视频数据流,将复合的视频数据流分解为原始的NAL单元;
解码单元:用于通过解码器接收NAL码流,并进行解码;通过解码器分析Slice层得出每一帧的类型;
画面还原单元:用于在解码器完成解码流程后输出原始画面并记录原有的帧类型;
预处理模块包括:
图像调整单元:用于调整I帧所解码的画面图像大小并转换图像的颜色空间以适应模型输入;
识别单元:用于通过SDD目标检测算法模型在图像中定位和识别对象,在多个尺度和不同的预设位置进行特征提取和预测,识别出目标物体并通过边界框的方式给出每个目标在图像中的位置;
目标跟踪模块包括:
跟踪器初始化单元:用于调用Tracker的create方法创建跟踪器,以I帧作为初始帧来初始化跟踪器,将获取的边界框传递给跟踪器进行初始化;
传递单元:用于调用init方法传递I帧图像和初始边界框位置来初始化跟踪器;
目标特征学习单元:用于在初始化跟踪器后,学习所跟踪物体的目标特征信息,其中目标特征包括颜色、形状、纹理或运动模式中的任意一种;
跟踪目标定位单元:用于通过初始化目标跟踪器在后续帧中持续跟踪该目标;在每一帧中根据目标特征来定位目标,并更新边界框的位置;通过连续的帧得到目标在整个视频序列中的运动轨迹信息;
目标新位置标识模块包括:
坐标信息存储单元:用于通过跟踪器的Update方法根据P帧中目标新位置调整边界框的坐标信息,并将坐标信息存储至队列中;
绘制单元:用于在队列中获取边界框对象,由边界框内获取坐标信息,根据坐标信息绘制目标新位置的标识框;
还包括:
音视频同步模块:用于根据目标出现的时间戳计算绘制画面的时机,在视频播放与音频播放不同步时,动态调整视频的播放速度;
音视频同步模块包括:
时间戳比较单元:用于通过比较音频和视频的时间戳来同步视频与音频的播放时间;
播放速度调节单元:用于在视频播放落后于音频时,则加快播放速度;在视频播放超前于音频播放时,则减缓播放速度;
目标跟踪刷新模块:用于在出现新的I帧时,清空初始化目标跟踪器中的跟踪信息,并由预处理模块、标记模块和目标跟踪模块进行操作,重新更新被跟踪的目标。
本系统通过使用视频编码特性,只需识别I帧,对P帧使用对象跟踪技术,跟踪视频画面中的对象,将识别结果绘制到原I帧画面上,当后续视频帧遇到P帧时,使用之前在I帧定位的边界框,使用AI引擎推理的结果以I帧为初始帧初始化目标跟踪器。通过SDD目标跟踪算法更新该目标在P帧的位置,绘制新位置的标识框,将带有更新边界框的P帧在视频播放时进行展示。从而实现减少AI模型的调用次数,节约了大量的硬件计算资源。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
Claims (9)
1.一种监控视频对象识别跟踪方法,其特征在于,包括步骤:
S1:接收视频数据流,经过解复用和解码,输出原始视频的画面并记录帧类型,其中帧类型包括I帧和P帧;
S2:对I帧所解码的画面进行预处理,通过SDD目标检测算法模型在画面的图像中进行定位和对象识别,识别画面中的目标以及目标的位置信息,并将位置信息按照边界框的方式进行表示;
S3:将步骤S2中的识别结果在原始I帧的画面上进行标记和绘制;
S4:将获取的位置信息传递至跟踪器进行初始化,得到以I帧为初始帧的初始化目标跟踪器,根据初始化目标跟踪器学习的目标特征对视频的画面中移动目标进行持续跟踪;
S5:在出现P帧时,将P帧输入到步骤S4的初始化目标跟踪器中,根据当前P帧和学习的目标特征来更新边界框内的坐标信息,并在P帧上绘制反映目标新位置的标识框,将带有更新边界框的P帧在视频播放中进行展示;
所述步骤S4包括:
S41:调用Tracker的create方法创建跟踪器,以I帧作为初始帧来初始化跟踪器,将获取的边界框传递给跟踪器进行初始化;
S42:调用init方法并传递I帧图像和初始边界框位置来初始化跟踪器;
S43:在初始化跟踪器后,学习所跟踪物体的目标特征信息,其中目标特征包括颜色、形状、纹理或运动模式中的任意一种;
S44:通过初始化目标跟踪器在后续帧中持续跟踪该目标;在每一帧中根据目标特征来定位目标,并更新边界框的位置;通过连续的帧得到目标在整个视频序列中的运动轨迹信息。
2.根据权利要求1所述的监控视频对象识别跟踪方法,其特征在于,所述步骤S1包括:
S11:从服务器或本地文件中接收视频数据流,将复合的视频数据流分解为原始的NAL单元;
S12:通过解码器接收NAL码流,并进行解码;通过解码器分析Slice层得出每一帧的类型;
S13:在解码器完成解码流程后输出原始画面并记录原有的帧类型。
3.根据权利要求1所述的监控视频对象识别跟踪方法,其特征在于,所述步骤S2包括:
S21:调整I帧所解码的画面图像大小并转换图像的颜色空间以适应模型输入;
S22:通过SDD目标检测算法模型在图像中定位和识别对象,在多个尺度和不同的预设位置进行特征提取和预测,识别出目标物体并通过边界框的方式给出每个目标在图像中的位置。
4.根据权利要求1所述的监控视频对象识别跟踪方法,其特征在于,所述步骤S5包括:
S51:通过跟踪器的Update方法根据P帧中目标新位置调整边界框的坐标信息,并将坐标信息存储至队列中;
S52:在队列中获取边界框对象,由边界框内获取坐标信息,根据坐标信息绘制目标新位置的标识框。
5.根据权利要求1所述的监控视频对象识别跟踪方法,其特征在于,还包括步骤:
S6:根据目标出现的时间戳计算绘制画面的时机,在视频播放与音频播放不同步时,动态调整视频的播放速度;
所述步骤S6包括:
S61:通过比较音频和视频的时间戳来同步视频与音频的播放时间;
S62:在视频播放落后于音频时,则加快播放速度;在视频播放超前于音频播放时,则减缓播放速度;
S7:在出现新的I帧时,清空初始化目标跟踪器中的跟踪信息,并按照步骤S2至步骤S4进行操作,重新更新被跟踪的目标。
6.一种监控视频对象识别跟踪系统,其特征在于,包括:
接收模块:用于接收视频数据流,经过解复用和解码,输出原始视频的画面并记录帧类型,其中帧类型包括I帧和P帧;
预处理模块:用于对I帧所解码的画面进行预处理,通过SDD目标检测算法模型在画面的图像中进行定位和对象识别,识别画面中的目标以及目标的位置信息,并将位置信息按照边界框的方式进行表示;
标记模块:用于将预处理模块中的识别结果在原始I帧的画面上进行标记和绘制;
目标跟踪模块:用于将获取的位置信息传递至跟踪器进行初始化,得到以I帧为初始帧的初始化目标跟踪器,根据初始化目标跟踪器学习的目标特征对视频的画面中移动目标进行持续跟踪;
目标新位置标识模块:用于在出现P帧时,将P帧输入到步骤S4的初始化目标跟踪器中,根据当前P帧和学习的目标特征来更新边界框内的坐标信息,并在P帧上绘制反映目标新位置的标识框,将带有更新边界框的P帧在视频播放中进行展示;
所述目标跟踪模块包括:
跟踪器初始化单元:用于调用Tracker的create方法创建跟踪器,以I帧作为初始帧来初始化跟踪器,将获取的边界框传递给跟踪器进行初始化;
传递单元:用于调用init方法传递I帧图像和初始边界框位置来初始化跟踪器;
目标特征学习单元:用于在初始化跟踪器后,学习所跟踪物体的目标特征信息,其中目标特征包括颜色、形状、纹理或运动模式中的任意一种;
跟踪目标定位单元:用于通过初始化目标跟踪器在后续帧中持续跟踪该目标;在每一帧中根据目标特征来定位目标,并更新边界框的位置;通过连续的帧得到目标在整个视频序列中的运动轨迹信息。
7.根据权利要求6所述的监控视频对象识别跟踪系统,其特征在于,所述接收模块包括:
解复用单元:用于从服务器或本地文件中接收视频数据流,将复合的视频数据流分解为原始的NAL单元;
解码单元:用于通过解码器接收NAL码流,并进行解码;通过解码器分析Slice层得出每一帧的类型;
画面还原单元:用于在解码器完成解码流程后输出原始画面并记录原有的帧类型;
所述预处理模块包括:
图像调整单元:用于调整I帧所解码的画面图像大小并转换图像的颜色空间以适应模型输入;
识别单元:用于通过SDD目标检测算法模型在图像中定位和识别对象,在多个尺度和不同的预设位置进行特征提取和预测,识别出目标物体并通过边界框的方式给出每个目标在图像中的位置;
所述目标新位置标识模块包括:
坐标信息存储单元:用于通过跟踪器的Update方法根据P帧中目标新位置调整边界框的坐标信息,并将坐标信息存储至队列中;
绘制单元:用于在队列中获取边界框对象,由边界框内获取坐标信息,根据坐标信息绘制目标新位置的标识框;
还包括:
音视频同步模块:用于根据目标出现的时间戳计算绘制画面的时机,在视频播放与音频播放不同步时,动态调整视频的播放速度;
所述音视频同步模块包括:
时间戳比较单元:用于通过比较音频和视频的时间戳来同步视频与音频的播放时间;
播放速度调节单元:用于在视频播放落后于音频时,则加快播放速度;在视频播放超前于音频播放时,则减缓播放速度;
目标跟踪刷新模块:用于在出现新的I帧时,清空初始化目标跟踪器中的跟踪信息,并由预处理模块、标记模块和目标跟踪模块进行操作,重新更新被跟踪的目标。
8.一种电子设备,其特征在于,所述电子设备包括:
存储器:用于存储可执行指令;
处理器:用于运行所述存储器存储的可执行指令时,实现权利要求1至5任一项所述的监控视频对象识别跟踪方法。
9.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至5任一项所述的监控视频对象识别跟踪方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410126423.1A CN117649537B (zh) | 2024-01-30 | 2024-01-30 | 监控视频对象识别跟踪方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410126423.1A CN117649537B (zh) | 2024-01-30 | 2024-01-30 | 监控视频对象识别跟踪方法、系统、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117649537A CN117649537A (zh) | 2024-03-05 |
CN117649537B true CN117649537B (zh) | 2024-04-26 |
Family
ID=90048189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410126423.1A Active CN117649537B (zh) | 2024-01-30 | 2024-01-30 | 监控视频对象识别跟踪方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117649537B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719315A (zh) * | 2016-01-29 | 2016-06-29 | 深圳先进技术研究院 | 用于在移动终端中跟踪视频图像中的物体的方法 |
CN108055501A (zh) * | 2017-11-22 | 2018-05-18 | 天津市亚安科技有限公司 | 一种目标检测及跟踪的视频监控系统及方法 |
WO2021043295A1 (zh) * | 2019-09-07 | 2021-03-11 | 影石创新科技股份有限公司 | 一种全景视频的目标追踪方法、装置及便携式终端 |
CN112699839A (zh) * | 2021-01-13 | 2021-04-23 | 安徽水天信息科技有限公司 | 一种动态背景下视频目标自动锁定及跟踪方法 |
CN113297905A (zh) * | 2021-04-19 | 2021-08-24 | 北京迈格威科技有限公司 | 一种目标跟踪方法、装置和电子系统 |
CN113450362A (zh) * | 2021-06-02 | 2021-09-28 | 北京迈格威科技有限公司 | 一种视频目标分割方法、装置和电子系统 |
CN113920168A (zh) * | 2021-11-02 | 2022-01-11 | 中音讯谷科技有限公司 | 一种音视频控制设备中图像跟踪方法 |
CN114694078A (zh) * | 2022-04-08 | 2022-07-01 | 浙江大学 | 一种基于多目标跟踪的交通行为判定方法 |
CN115620212A (zh) * | 2022-12-14 | 2023-01-17 | 南京迈能能源科技有限公司 | 一种基于监控视频的行为识别方法及系统 |
CN115690163A (zh) * | 2023-01-04 | 2023-02-03 | 中译文娱科技(青岛)有限公司 | 基于影像内容的目标跟踪方法、系统及存储介质 |
WO2023125119A1 (zh) * | 2021-12-30 | 2023-07-06 | 中兴通讯股份有限公司 | 时空动作检测方法、装置、电子设备及存储介质 |
CN116778748A (zh) * | 2023-05-18 | 2023-09-19 | 华南师大(清远)科技创新研究院有限公司 | 基于深度学习的车辆转弯盲区智能预警方法 |
CN117456204A (zh) * | 2023-09-25 | 2024-01-26 | 珠海视熙科技有限公司 | 目标跟踪方法、装置、视频处理系统、存储介质和终端 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10909424B2 (en) * | 2018-10-13 | 2021-02-02 | Applied Research, LLC | Method and system for object tracking and recognition using low power compressive sensing camera in real-time applications |
CN113706576A (zh) * | 2021-03-17 | 2021-11-26 | 腾讯科技(深圳)有限公司 | 检测跟踪方法、装置、设备及介质 |
US20230252649A1 (en) * | 2022-02-04 | 2023-08-10 | Nokia Technologies Oy | Apparatus, method, and system for a visual object tracker |
-
2024
- 2024-01-30 CN CN202410126423.1A patent/CN117649537B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105719315A (zh) * | 2016-01-29 | 2016-06-29 | 深圳先进技术研究院 | 用于在移动终端中跟踪视频图像中的物体的方法 |
CN108055501A (zh) * | 2017-11-22 | 2018-05-18 | 天津市亚安科技有限公司 | 一种目标检测及跟踪的视频监控系统及方法 |
WO2021043295A1 (zh) * | 2019-09-07 | 2021-03-11 | 影石创新科技股份有限公司 | 一种全景视频的目标追踪方法、装置及便携式终端 |
CN112699839A (zh) * | 2021-01-13 | 2021-04-23 | 安徽水天信息科技有限公司 | 一种动态背景下视频目标自动锁定及跟踪方法 |
CN113297905A (zh) * | 2021-04-19 | 2021-08-24 | 北京迈格威科技有限公司 | 一种目标跟踪方法、装置和电子系统 |
CN113450362A (zh) * | 2021-06-02 | 2021-09-28 | 北京迈格威科技有限公司 | 一种视频目标分割方法、装置和电子系统 |
CN113920168A (zh) * | 2021-11-02 | 2022-01-11 | 中音讯谷科技有限公司 | 一种音视频控制设备中图像跟踪方法 |
WO2023125119A1 (zh) * | 2021-12-30 | 2023-07-06 | 中兴通讯股份有限公司 | 时空动作检测方法、装置、电子设备及存储介质 |
CN114694078A (zh) * | 2022-04-08 | 2022-07-01 | 浙江大学 | 一种基于多目标跟踪的交通行为判定方法 |
CN115620212A (zh) * | 2022-12-14 | 2023-01-17 | 南京迈能能源科技有限公司 | 一种基于监控视频的行为识别方法及系统 |
CN115690163A (zh) * | 2023-01-04 | 2023-02-03 | 中译文娱科技(青岛)有限公司 | 基于影像内容的目标跟踪方法、系统及存储介质 |
CN116778748A (zh) * | 2023-05-18 | 2023-09-19 | 华南师大(清远)科技创新研究院有限公司 | 基于深度学习的车辆转弯盲区智能预警方法 |
CN117456204A (zh) * | 2023-09-25 | 2024-01-26 | 珠海视熙科技有限公司 | 目标跟踪方法、装置、视频处理系统、存储介质和终端 |
Non-Patent Citations (5)
Title |
---|
Target Tracking Algorithm Based on Density Clustering;Jinlong Chen 等;Advances in Swarm Intelligence. 11th International Conference, ICSI 2020. Proceedings. Lecture Notes in Computer Science (LNCS 12145);20201231;第556-563页 * |
一种新的基于颜色统计特征的判别跟踪方法;胡昭华;鞠蓉;欧阳雯;金蓉;;高技术通讯;20160315(03);第246-254页 * |
基于YOLOv3与卡尔曼滤波的多目标跟踪算法;任珈民;宫宁生;韩镇阳;;计算机应用与软件;20200512(05);第169-176页 * |
基于深度学习的视觉目标跟踪算法;周洁;;内蒙古师范大学学报(自然科学汉文版);20180315(02);第121-126页 * |
自适应多滤波器的高效卷积算子目标跟踪算法;李国友;张凤煦;纪执安;;光电工程;20200715(07);第50-62页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117649537A (zh) | 2024-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104137146B (zh) | 用于利用前景对象分割的噪声过滤的视频编码的方法和系统 | |
CN107707931B (zh) | 根据视频数据生成解释数据、数据合成方法及装置、电子设备 | |
CN103797783B (zh) | 评论信息生成装置及评论信息生成方法 | |
US10491961B2 (en) | System for annotating media content for automatic content understanding | |
CN111540055B (zh) | 三维模型驱动方法、装置、电子设备及存储介质 | |
CN102047288B (zh) | 利用正向和反向深度预测进行图像的深度提取的系统和方法 | |
US20110122315A1 (en) | Method and apparatus for synchronizing video data | |
US20060214934A1 (en) | Method for correlating animation and video in a computer system | |
CN108769733A (zh) | 视频剪辑方法和视频剪辑装置 | |
KR100560464B1 (ko) | 관찰자의 시점에 적응적인 다시점 영상 디스플레이 시스템을 구성하는 방법 | |
EP2816564A1 (en) | Method and apparatus for smart video rendering | |
CN112887510A (zh) | 基于视频检测的视频播放方法及系统 | |
CN111263183A (zh) | 唱歌状态识别方法及装置 | |
KR101396838B1 (ko) | 다수의 모션 모델을 선택적으로 이용하는 영상 안정화 방법 및 시스템 | |
CN117649537B (zh) | 监控视频对象识别跟踪方法、系统、电子设备及存储介质 | |
TWI721766B (zh) | 影音同步判斷方法、系統與電腦儲存媒體 | |
CN115174941B (zh) | 基于多路视频流的实时运动表现分析及实时数据共享方法 | |
CN112287771A (zh) | 用于检测视频事件的方法、装置、服务器和介质 | |
CN108881119A (zh) | 一种视频浓缩的方法、装置和系统 | |
CN113014953A (zh) | 视频防篡改检测方法及视频防篡改检测系统 | |
US9092874B2 (en) | Method for determining the movements of an object from a stream of images | |
CN115811585A (zh) | 场景切换的识别方法、装置、设备、介质及计算机产品 | |
CN116527956B (zh) | 基于目标事件触发的虚拟对象直播方法、装置及系统 | |
CN116506674B (zh) | 基于虚拟对象的目标事件触发方法及装置 | |
CN117176979B (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 |