一种视频流的图像处理方法、系统及电子设备与流程

    专利查询2023-09-17  110



    1.本发明涉及数据处理技术领域,具体涉及一种视频流的图像处理方法、系统及电子设备。


    背景技术:

    2.目前,边缘计算终端可以采用图1所示的分层框架,来实现视频流的处理过程。其中,边缘计算终端软件框架中可以包括应用层、插件层以及服务层。插件层在接收到应用层下发的任务后,可以按照预定顺序执行对应的多个任务模块,从而生成任务数据。多个任务模块中周期性运行的任务模块可以作为周期任务模块,这些周期任务模块的业务逻辑可以由服务层替代处理。
    3.服务层可以与硬件接口层相连,这样,周期任务模块对应的周期任务服务通过硬件接口层,可以对硬件资源进行调度,从而处理周期任务模块的业务逻辑。
    4.然而,现有的这种分层框架,通常是由插件层向服务层的程序发起请求,从而通过服务层调用硬件接口。但是,这种跨进程的调用过程非常耗费资源,导致对视频流的处理效率较低。


    技术实现要素:

    5.有鉴于此,本发明实施方式提供了一种视频流的图像处理方法、系统及电子设备,能够提高视频流的处理效率。
    6.本发明一方面提供了一种视频流的图像处理方法,所述方法包括:推理插件在接收到视频流的基础描述信息后,查询加载了所述推理插件所需的指定模型的插件实例对象,并获取所述插件实例对象的对象指针;所述推理插件在接收到传输数据的消息后,调用所述对象指针,进入到所述插件实例对象中;所述插件实例对象通过调用所述指定模型的图像提交接口,向所述指定模型传入所述推理插件的插件指针和待处理的图像数据;所述指定模型基于所述插件指针获取图像处理参数,并调用硬件接口,以通过调用的硬件对所述待处理的图像数据按照所述图像处理参数进行推理处理。
    7.本技术提供的技术方案,推理插件在对视频流的图像数据进行处理时,可以查询加载了指定模型的插件实例对象。通过指针传递的方式,推理插件可以进入插件实例对象内部。插件实例对象通过指定模型,可以调用硬件接口,从而通过调用的硬件对图像数据进行处理。在这个过程中,并不需要进行跨进程的资源调用,并且数据传输过程可以通过指针传递来实现,在避免了跨进程的资源消耗的同时,还能够减少内存占用,从而提高了图像数据的处理效率。
    8.在一个实施方式中,所述插件实例对象由单例模块创建,并且同一个模型仅对应一个插件实例对象;所述方法还包括:若查询不到加载了所述推理插件所需的指定模型的插件实例对象,通过所述单例模块新建插件实例对象,并通过新建的所述插件实例对象载入所述推理插件所需的指定模型。
    9.通过上述方式,推理插件可以快速地在系统中查询到所需的插件实例对象,从而为后续对视频流进行处理提供了基础。
    10.在一个实施方式中,获取所述插件实例对象的对象指针包括:将所述插件实例对象的对象指针赋值给所述推理插件的成员指针。
    11.为了遵循指针传递的原则,推理插件在获取插件实例对象的对象指针时,可以将插件实例对象的对象指针赋值给推理插件的成员指针,从而实现后续的指针传递,避免对内存的过多占用。
    12.在一个实施方式中,所述待处理的图像数据存储于预设缓存器中,所述预设缓存器通过指针传递的方式传输所述待处理的图像数据。
    13.预设缓存器也可以通过指针传递的方式传输图像数据,从而避免对内存过多占用。
    14.在一个实施方式中,所述推理插件、所述插件实例对象以及所述指定模型均运行于同一个进程内,所述同一个进程内的数据通过指针传递的方式进行传输。
    15.推理插件、插件实例对象以及指定模型都可以在同一个进程内运行,从而避免了跨进程的资源消耗。
    16.本发明另一方面还提供了一种视频流的图像处理系统,所述系统包括插件层、硬件接口层和硬件层,所述插件层包括推理插件、插件实例对象以及指定模型,其中:所述推理插件,用于在接收到视频流的基础描述信息后,查询加载了所述推理插件所需的指定模型的插件实例对象,并获取所述插件实例对象的对象指针;在接收到传输数据的消息后,调用所述对象指针,进入到所述插件实例对象中;所述插件实例对象,用于通过调用所述指定模型的图像提交接口,向所述指定模型传入所述推理插件的插件指针和待处理的图像数据;所述指定模型,用于基于所述插件指针获取图像处理参数,并调用所述硬件接口层中的硬件接口,以通过调用的所述硬件层内的硬件对所述待处理的图像数据按照所述图像处理参数进行推理处理。
    17.在一个实施方式中,所述插件实例对象由单例模块创建,并且同一个模型仅对应一个插件实例对象;所述推理插件还用于:若查询不到加载了所述推理插件所需的指定模型的插件实例对象,通过所述单例模块新建插件实例对象,并通过新建的所述插件实例对象载入所述推理插件所需的指定模型。
    18.在一个实施方式中,所述推理插件具体还用于:将所述插件实例对象的对象指针赋值给所述推理插件的成员指针。
    19.在一个实施方式中,所述待处理的图像数据存储于预设缓存器中,所述预设缓存器通过指针传递的方式传输所述待处理的图像数据。
    20.在一个实施方式中,所述推理插件、所述插件实例对象以及所述指定模型均运行于同一个进程内,所述同一个进程内的数据通过指针传递的方式进行传输。
    21.本发明另一方面还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的视频流的图像处理方法。
    22.本发明另一方面还提供了一种计算机存储介质,所述计算机存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的视频流的图像处理方法。
    附图说明
    23.通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
    24.图1示出了现有技术中边缘计算终端软件框架的结构示意图;
    25.图2示出了本发明一个实施方式中边缘计算终端软件框架的结构示意图;
    26.图3示出了本发明一个实施方式中视频流的图像处理方法步骤示意图;
    27.图4示出了本发明一个实施方式中插件层内各个组件的交互流程图;
    28.图5示出了本发明一个实施方式中视频流的图像处理流程图;
    29.图6示出了本发明一个实施方式中电子设备的结构示意图。
    具体实施方式
    30.为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
    31.本技术提供的视频流的图像处理方法,可以应用于边缘计算终端内。请参阅图2,该边缘计算终端内可以仅包含应用层和插件层,其中,插件层可以与硬件接口层相连,从而可以通过单个进程实现对硬件接口层中的各个硬件接口进行调用。在本技术中,省略了现有技术中的服务层,从而避免了从插件层到服务层,再从服务层到硬件接口层的跨进程调用过程,进而减少了系统的资源消耗。
    32.在实际应用中,本技术的框架可以基于gstreamer开发,在利用该框架对视频流进行处理时,可能会利用到多种不同的推理插件,其中,不同的推理插件可以实现不同的功能。这些不同的推理插件可以位于图2所示的插件层中的推理模块内。举例来说,推理插件中可以包括检测插件、分类插件以及跟踪插件等。检测插件可以用于检测视频帧中的目标对象,例如可以进行人脸识别或者车牌识别等。分类插件可以根据视频帧中的内容,对视频帧进行分类。例如,可以根据视频帧中是否包含人物,从而将视频帧分类为人物帧或者环境帧。跟踪插件则可以通过对多张视频帧中的同一个目标进行识别,从而跟踪该目标的运动轨迹。例如,可以对多张视频帧中的同一个车辆进行跟踪,从而识别该车辆是否超速。
    33.在本技术中,各个不同的推理插件都可以继承自功能插件基类givainferencebase,在该功能插件基类中,可以包含推理过程中所需使用的各类参数。例如,这些参数可以指定前处理对象、后处理对象以及神经网络模型等。
    34.在实际应用中,不同的推理插件可以依托于不同的神经网络模型来实现。在搭建框架时,可以根据所需实现的推理功能,训练对应的神经网络模型。神经网络模型在完成训练之后,可以存储于框架中。当某个推理插件需要使用某个神经网络模型时,可以加载该神经网络模型,以通过加载的神经网络模型对视频流的数据进行处理。
    35.在减少了服务层的同时,为了保证视频流能够被正常处理,边缘计算终端的软件框架可以按照图3所示的步骤运行。
    36.s1:推理插件在接收到视频流的基础描述信息后,查询加载了所述推理插件所需
    的指定模型的插件实例对象,并获取所述插件实例对象的对象指针。
    37.在本实施方式中,当程序启动之后,推理插件可以接收到gstreamer框架的set_caps消息,该set_caps消息可以作为视频流的基础描述信息。在该基础描述信息中,可以包括视频流中视频帧的画面大小、视频帧的格式等信息。在实际应用中,当摄像头获取到视频流后,便会将视频流的基础描述信息发送给推理插件。
    38.推理插件在接收到视频流的基础描述信息后,为了对该视频流进行处理,可以查询加载了该推理插件所需的指定模型的插件实例(inferenceimplement)对象。插件实例对象可以由单例模块(singletonimp)创建,并且对于同一个神经网络模型而言,仅对应一个插件实例对象。也就是说,如果有不同的推理插件需要调用相同的神经网络模型,那么框架只会返回已创建的同一个插件实例对象。
    39.在实际应用中,单例模块在创建插件实例对象后,插件实例对象可以加载一个未被加载的神经网络模型,以供推理插件后续进行调用。为了避免数据在内存中拷贝,推理插件在调用插件实例对象的过程中,可以采用指针传递的方式,从而减少内存的占用。
    40.具体地,插件实例对象在加载神经网络模型后,系统中可以存储该插件实例对象的对象指针。当推理插件接收到基础描述信息后,根据自身所需的神经网络模型,可以在系统中查询是否存在加载了该神经网络模型的插件实例对象的对象指针。如果存在,则可以获取该插件实例对象的对象指针。而如果不存在,则表明当前查询不到加载了推理插件所需的指定模型的插件实例对象。在这种情况下,推理插件可以请求单例模块新建一个插件实例对象,然后由新建的该插件实例对象载入所需的指定模型。这样,推理插件便可以获取到该新建的插件实例对象的对象指针。通过上述方式,推理插件可以快速地在系统中查询到所需的插件实例对象,从而为后续对视频流进行处理提供了基础。
    41.在一个实施方式中,为了遵循指针传递的原则,推理插件在获取插件实例对象的对象指针时,可以将插件实例对象的对象指针赋值给推理插件的成员指针,从而实现后续的指针传递,避免对内存的过多占用。
    42.s2:所述推理插件在接收到传输数据的消息后,调用所述对象指针,进入到所述插件实例对象中。
    43.在本实施方式中,推理插件在获取到插件实例对象的对象指针后,可以进一步地对视频流的图像数据进行处理。具体地,当出现需要处理的图像数据时,推理插件会通过管道(pipeline)收到gstreamer的传输数据的消息(transform_ip消息)。在接收到该消息后,推理插件可以调用插件实例对象的对象指针,从而进入到插件实例对象中。
    44.s3:所述插件实例对象通过调用所述指定模型的图像提交接口,向所述指定模型传入所述推理插件的插件指针和待处理的图像数据。
    45.在本实施方式中,可以通过gstbasetransform中的虚方法transformframeip来实现数据的传输。在进入插件实例对象中后,在transformframeip中,插件实例对象可以调用神经网络模型的图像提交接口(submitimage接口),从而向神经网络模型传入推理插件的插件指针和待处理的图像数据。其中,待处理的图像数据可以存储于预设缓存器中,该预设缓存器可以是gstbuffer。在gstreamer中,gstbuffer作为传递数据的格式,可以通过指针传递的方式传输待处理的图像数据。
    46.s4:所述指定模型基于所述插件指针获取图像处理参数,并调用硬件接口,以通过
    调用的硬件对所述待处理的图像数据按照所述图像处理参数进行推理处理。
    47.在本实施方式中,指定模型在获取到推理插件的插件指针以及gstbuffer中的图像数据后,可以通过调用插件指针,从而获取到推理插件内部的图像处理参数。
    48.在对图像数据进行处理时,指定模型需要调用对应的硬件资源。例如,指定模型需要调用显卡和cpu资源来对图像数据进行处理。在本实施方式中,硬件接口层中可以部署各个硬件接口,指定模型通过不同的硬件接口可以调用硬件层中的硬件资源,从而对图像数据进行处理。
    49.具体地,指定模型可以调用硬件接口层的硬件接口submitimage,利用对应的硬件资源进行前处理、推理处理以及后处理等过程。
    50.在上述的整个流程中,推理插件、插件实例对象以及指定模型均运行于同一个进程内,该进程可以直接调用硬件接口层中的硬件接口,并不需要进行跨进程的调用,并且该同一个进程内的数据可以通过指针传递的方式进行传输,不仅节省了跨进程的资源消耗,同时还避免了过多的内存占用,从而极大地提高了视频流的处理效率。
    51.本技术一个实施方式还提供一种视频流的图像处理系统,请参阅图2,该系统包括插件层、硬件接口层和硬件层,所述插件层包括推理插件、插件实例对象以及指定模型,其中:
    52.所述推理插件,用于在接收到视频流的基础描述信息后,查询加载了所述推理插件所需的指定模型的插件实例对象,并获取所述插件实例对象的对象指针;在接收到传输数据的消息后,调用所述对象指针,进入到所述插件实例对象中;
    53.所述插件实例对象,用于通过调用所述指定模型的图像提交接口,向所述指定模型传入所述推理插件的插件指针和待处理的图像数据;
    54.所述指定模型,用于基于所述插件指针获取图像处理参数,并调用所述硬件接口层中的硬件接口,以通过调用的所述硬件层内的硬件对所述待处理的图像数据按照所述图像处理参数进行推理处理。
    55.此外,在该视频流的图像处理系统中还可以包括paas(platform as a service,平台即服务)平台和应用层,其中,应用层可以与paas平台对接,接收paas平台下发的指令。应用层示例性地可以包括业务配置模块和报警事件联动模块。
    56.在一个实施方式中,所述插件实例对象由单例模块创建,并且同一个模型仅对应一个插件实例对象;所述推理插件还用于:若查询不到加载了所述推理插件所需的指定模型的插件实例对象,通过所述单例模块新建插件实例对象,并通过新建的所述插件实例对象载入所述推理插件所需的指定模型。
    57.在一个实施方式中,所述推理插件具体还用于:将所述插件实例对象的对象指针赋值给所述推理插件的成员指针。
    58.在一个实施方式中,所述待处理的图像数据存储于预设缓存器中,所述预设缓存器通过指针传递的方式传输所述待处理的图像数据。
    59.在一个实施方式中,所述推理插件、所述插件实例对象以及所述指定模型均运行于同一个进程内,所述同一个进程内的数据通过指针传递的方式进行传输。
    60.请结合图4和图5,硬件接口层的各个硬件接口,可以通过推理对象基类imageinferencebase来实现,通过硬件接口,可以调用诸如昇腾硬件架构、英特尔架构以及
    英伟达架构等硬件资源。单例模块singletonimp在保证一个神经网络模型对应一个插件实例对象的前提下,可以创建不同的插件实例对象。插件实例对象在创建之后,可以加载对应的神经网络模型。
    61.插件层的各个推理插件可以调用加载了神经网络模型的插件实例对象,并通过插件实例对象对视频流的图像数据进行处理。
    62.如图5所示,在对图像数据进行处理时,通常会先拉取摄像头拍摄的视频流,然后对视频流的内容进行解码。解码后得到的图像数据可以交由不同的推理插件进行处理。各个推理插件在对图像数据进行处理时,通常都会经过前处理、对应功能的处理以及后处理这几个过程。其中,前处理可以是对图像数据进行诸如图像增强、数据筛选等预处理过程;对应功能的处理就可以通过加载的神经网络模型,进行目标检测、对象跟踪、目标分类等处理;后处理可以是对神经网络模型处理得到的结果进行格式转换、数据整合等处理。
    63.请参阅图6,本技术还提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的视频流的图像处理方法。
    64.本技术还提供一种计算机存储介质,所述计算机存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的视频流的图像处理方法。
    65.在本技术中,处理器可以为中央处理器(central processing unit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
    66.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
    67.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
    68.本技术提供的技术方案,推理插件在对视频流的图像数据进行处理时,可以查询加载了指定模型的插件实例对象。通过指针传递的方式,推理插件可以进入插件实例对象内部。插件实例对象通过指定模型,可以调用硬件接口,从而通过调用的硬件对图像数据进行处理。在这个过程中,并不需要进行跨进程的资源调用,并且数据传输过程可以通过指针传递来实现,在避免了跨进程的资源消耗的同时,还能够减少内存占用,从而提高了图像数据的处理效率。
    69.本领域技术人员可以理解,实现上述实施方式方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质
    中,该程序在执行时,可包括如上述各方法的实施方式的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
    70.虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

    技术特征:
    1.一种视频流的图像处理方法,其特征在于,所述方法包括:推理插件在接收到视频流的基础描述信息后,查询加载了所述推理插件所需的指定模型的插件实例对象,并获取所述插件实例对象的对象指针;所述推理插件在接收到传输数据的消息后,调用所述对象指针,进入到所述插件实例对象中;所述插件实例对象通过调用所述指定模型的图像提交接口,向所述指定模型传入所述推理插件的插件指针和待处理的图像数据;所述指定模型基于所述插件指针获取图像处理参数,并调用硬件接口,以通过调用的硬件对所述待处理的图像数据按照所述图像处理参数进行推理处理。2.根据权利要求1所述的方法,其特征在于,所述插件实例对象由单例模块创建,并且同一个模型仅对应一个插件实例对象;所述方法还包括:若查询不到加载了所述推理插件所需的指定模型的插件实例对象,通过所述单例模块新建插件实例对象,并通过新建的所述插件实例对象载入所述推理插件所需的指定模型。3.根据权利要求1所述的方法,其特征在于,获取所述插件实例对象的对象指针包括:将所述插件实例对象的对象指针赋值给所述推理插件的成员指针。4.根据权利要求1所述的方法,其特征在于,所述待处理的图像数据存储于预设缓存器中,所述预设缓存器通过指针传递的方式传输所述待处理的图像数据。5.根据权利要求1所述的方法,其特征在于,所述推理插件、所述插件实例对象以及所述指定模型均运行于同一个进程内,所述同一个进程内的数据通过指针传递的方式进行传输。6.一种视频流的图像处理系统,其特征在于,所述系统包括插件层、硬件接口层和硬件层,所述插件层包括推理插件、插件实例对象以及指定模型,其中:所述推理插件,用于在接收到视频流的基础描述信息后,查询加载了所述推理插件所需的指定模型的插件实例对象,并获取所述插件实例对象的对象指针;在接收到传输数据的消息后,调用所述对象指针,进入到所述插件实例对象中;所述插件实例对象,用于通过调用所述指定模型的图像提交接口,向所述指定模型传入所述推理插件的插件指针和待处理的图像数据;所述指定模型,用于基于所述插件指针获取图像处理参数,并调用所述硬件接口层中的硬件接口,以通过调用的所述硬件层内的硬件对所述待处理的图像数据按照所述图像处理参数进行推理处理。7.根据权利要求6所述的系统,其特征在于,所述插件实例对象由单例模块创建,并且同一个模型仅对应一个插件实例对象;所述推理插件还用于:若查询不到加载了所述推理插件所需的指定模型的插件实例对象,通过所述单例模块新建插件实例对象,并通过新建的所述插件实例对象载入所述推理插件所需的指定模型。8.根据权利要求6所述的系统,其特征在于,所述推理插件具体还用于:将所述插件实例对象的对象指针赋值给所述推理插件的成员指针。9.根据权利要求6所述的系统,其特征在于,所述待处理的图像数据存储于预设缓存器中,所述预设缓存器通过指针传递的方式传输所述待处理的图像数据。10.根据权利要求6所述的系统,其特征在于,所述推理插件、所述插件实例对象以及所
    述指定模型均运行于同一个进程内,所述同一个进程内的数据通过指针传递的方式进行传输。11.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1至5中任一所述的方法。12.一种计算机存储介质,其特征在于,所述计算机存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现权利要求1至5中任一所述的方法。

    技术总结
    本发明公开了一种视频流的图像处理方法、系统及电子设备,其中,所述方法包括:推理插件在接收到视频流的基础描述信息后,查询加载了所述推理插件所需的指定模型的插件实例对象,并获取所述插件实例对象的对象指针;所述推理插件在接收到传输数据的消息后,调用所述对象指针,进入到所述插件实例对象中;所述插件实例对象通过调用所述指定模型的图像提交接口,向所述指定模型传入所述推理插件的插件指针和待处理的图像数据;所述指定模型基于所述插件指针获取图像处理参数,并调用硬件接口,以通过调用的硬件对所述待处理的图像数据按照所述图像处理参数进行推理处理。本申请提供的技术方案,能够提高视频流的处理效率。能够提高视频流的处理效率。能够提高视频流的处理效率。


    技术研发人员:蔡科 魏小冬 王驰宇
    受保护的技术使用者:广联达科技股份有限公司
    技术研发日:2022.02.10
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-18665.html

    最新回复(0)