CN110430444B - 一种视频流处理方法及系统 - Google Patents
一种视频流处理方法及系统 Download PDFInfo
- Publication number
- CN110430444B CN110430444B CN201910738325.2A CN201910738325A CN110430444B CN 110430444 B CN110430444 B CN 110430444B CN 201910738325 A CN201910738325 A CN 201910738325A CN 110430444 B CN110430444 B CN 110430444B
- Authority
- CN
- China
- Prior art keywords
- artificial intelligence
- data
- video stream
- layer
- neural network
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 147
- 238000012545 processing Methods 0.000 claims abstract description 55
- 238000003062 neural network model Methods 0.000 claims abstract description 50
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000015654 memory Effects 0.000 claims abstract description 33
- 238000007781 pre-processing Methods 0.000 claims description 53
- 230000008569 process Effects 0.000 claims description 21
- 238000006243 chemical reaction Methods 0.000 description 12
- 238000013136 deep learning model Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012935 Averaging Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000000265 homogenisation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供了一种视频流处理方法及系统。其中,该方法包括:解码芯片对视频流进行解码,获得图像帧;通过直接内存存取拷贝,将所述图像帧直接拷贝到人工智能处理器芯片上;其中,所述解码芯片和所述人工智能处理器芯片不共用内存;所述人工智能处理器芯片执行离线运行文件中的二进制指令对所述图像帧进行推理;其中,所述离线运行文件中的二进制指令是根据人工智能学习任务对应的神经网络模型解析获取。
Description
技术领域
本发明属于视频处理技术领域,具体地,涉及一种视频流处理方法及系统。
背景技术
利用人工智能处理器芯片进行视频流分析,需要经过解码和推理两个过程。并且,为提高解码速度我们通常会使用专业的解码芯片来进行硬件解码。同样的,为提高推理速度,我们也会使用专业的人工智能处理芯片进行推理。
当解码芯片和人工智能处理芯片不共用一块内存时,解码后的数据通常需要从解码器拷贝到中央处理器(CPU),在CPU上进行图像预处理之后,再从CPU端拷贝到人工智能处理器的内存块上,如图1所示,具体包括步骤:首先需要在解码器上对视频进行解码,再将解码输出的图片输入至CPU上进行颜色空间转换等处理,将处理后的结果再传输至人工智能处理器芯片上执行推理结果。
解码器拷贝到CPU端再拷贝到人工智能处理器芯片上,一份数据进行了两次拷贝,浪费PCIE(peripheral component interconnect express,高速串行计算机扩展总线标准)带宽。当数据量大时(例如多路视频解码+神经网络推理),内存拷贝将更容易成为性能瓶颈。
在CPU上进行图像预处理会占用CPU,当处理的视频通道数较多时,CPU负载过高,造成性能下降。
发明内容
针对现有技术的不足,本发明提供了一种视频流处理方法及装置,能够降低约50%的PCIE负载,图像预处理在人工智能处理器芯片上进行,大大降低了CPU的占用率。
本申请实施例的第一方面提供了一种视频流处理方法,包括:
解码芯片对视频流进行解码,获得图像帧;
通过直接内存存取拷贝,将所述图像帧直接拷贝到人工智能处理器芯片上;其中,所述解码芯片和所述人工智能处理器芯片不共用内存;
所述人工智能处理器芯片执行离线运行文件中的二进制指令对所述图像帧进行推理;其中,所述离线运行文件中的二进制指令是根据人工智能学习任务对应的神经网络模型解析获取。
可选地,所述方法还包括:
中央处理器获取离线运行文件;其中,所述离线运行文件包括:所述深度学习模型对应的二进制指令、常数表、输入/输出数据规模、数据布局描述信息和参数信息;其中,所述数据布局描述信息是指基于所述人工智能处理器芯片的硬件特性对输入/输出数据布局及类型进行预处理;所述常数表、输入/输出数据规模和参数信息基于所述神经网络模型确定;所述参数信息为所述神经网络模型中的权值数据;所述常数表用于存储有执行二进制指令过程中需要使用的数据。
可选地,所述方法还包括:
中央处理器优化人工智能学习任务。
可选地,所述中央处理优化人工智能学习任务的步骤包括:
通过专用编程语言来优化人工智能学习任务。
可选地,所述中央处理优化人工智能学习任务的步骤包括:
更新人工智能学习库的版本来优化人工智能学习任务;
可选地,所述中央处理优化人工智能学习任务的步骤包括:
调整神经网络模型。
可选地,所述神经网络模型包括输入层、数据预处理层、隐含层和输出层;所述输入层的输出数据作为所述数据预处理层的输入数据;所述数据预处理层的输出数据作为所述隐含层的输入数据,所述隐含层的输出数据作为输出层的输入数据;其中,所述数据预处理层用于对所述输入层的输出数据的颜色参数、图像尺寸参数的调整以及基于人工智能处理器芯片的硬件特性对输入层的输出数据布局及类型进行预处理。
本申请实施例的第二方面提供了一种视频流处理方法,包括:
人工智能处理器芯片通过直接内存存取拷贝,将图像帧直接拷贝到人工智能处理器芯片上;其中,所述图像帧是待处理视频流解码获得;
所述人工智能处理器芯片执行离线运行文件中的二进制指令对所述图像帧进行推理;其中,所述离线运行文件中的二进制指令是根据人工智能学习任务对应的神经网络模型解析获取。
本申请实施例的第三方面提供了一种视频流处理方法,所述方法包括:
中央处理器获取人工智能处理器芯片的架构信息和神经网络模型;
所述中央处理器根据人工智能处理器芯片的架构信息对所述神经网络模型进行编译,生成对应的二进制指令;
所述中央处理器根据所述二进制指令获得对应的人工智能学习任务;
所述中央处理器将所述人工智能学习任务发送至人工智能处理器芯片上,使得人工智能处理器芯片执行人工智能学习任务对所述视频流进行处理。
本申请实施例的第四方面提供了一种视频流处理方法,所述方法包括:
中央处理器获取人工智能处理器芯片的架构信息和神经网络模型;
所述中央处理器根据人工智能处理器芯片的架构信息对所述神经网络模型进行编译,生成对应的二进制指令;
所述中央处理器根据所述人工智能处理器芯片的架构信息、所述神经网络模型对应的二进制指令获得离线运行文件;其中,所述离线运行文件用于所述深度学习模型的输入数据进行处理;所述输入数据为待处理的视频。
可选地,所述神经网络模型包括输入层、数据预处理层、隐含层和输出层;所述输入层的输出数据作为所述数据预处理层的输入数据;所述数据预处理层的输出数据作为所述隐含层的输入数据,所述隐含层的输出数据作为输出层的输入数据;其中,所述数据预处理层用于对所述输入层的输出数据的颜色参数、图像尺寸参数的调整以及基于人工智能处理器芯片的硬件特性对输入层的输出数据布局及类型进行预处理。
可选地,所述数据预处理层通过配置参数对所述图像帧进行减均值操作、归一化操作、图像缩放操作和颜色空间转换操作。
本申请实施例的第五方面提供了一种视频流处理系统,包括:
解码芯片,用于对视频流进行解码,获得图像帧;
人工智能处理器芯片,用于通过直接内存存取拷贝方式拷贝所述图像帧;执行离线运行文件中的二进制指令对所述图像帧进行推理;其中,所述解码芯片和所述人工智能处理器芯片不共用内存;所述离线运行文件中的二进制指令是根据人工智能学习任务对应的神经网络模型解析获取。
可选地,还包括:中央处理器;
所述中央处理器获取离线运行文件;其中,所述离线运行文件包括:所述深度学习模型对应的二进制指令、常数表、输入/输出数据规模、数据布局描述信息和参数信息;其中,所述数据布局描述信息是指基于所述人工智能处理器芯片的硬件特性对输入/输出数据布局及类型进行预处理;所述常数表、输入/输出数据规模和参数信息基于所述神经网络模型确定;所述参数信息为所述神经网络模型中的权值数据;所述常数表用于存储有执行二进制指令过程中需要使用的数据。
可选地,所述中央处理器还用于优化人工智能学习任务。
可选地,所述中央处理器通过专用编程语言来优化人工智能学习任务。
可选地,所述中央处理器更新人工智能学习库的版本来优化人工智能学习任务。
可选地,所述中央处理器调整神经网络模型。
本申请通过DMA拷贝将解码后的数据直接拷贝到人工智能处理器芯片上的方案比从解码器拷贝到CPU再从CPU拷贝到人工智能处理器芯片上的方案能多处理一倍的视频通道。并且在人工智能处理器芯片上进行图像预处理,大大降低了CPU的负载。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的一种视频流处理方法的流程示意图;
图2为本申请实施例中的一种视频流处理方法的流程示意图之一;
图3为本申请实施例中的一种视频流处理方法的流程示意图之二;
图4为本申请实施例中的一种视频流处理方法的结构示意图之三;
图5为本申请实施例中的一种视频流处理方法的结构示意图之四;
图6为本申请实施例提出的一种视频流处理系统的功能框图之一;
图7为本申请实施例提出的一种视频流处理系统的功能框图之二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
请参阅图2,图2所示为本申请实施例提供的视频流处理方法流程示意图之一。包括:
S201:解码芯片对视频流进行解码,获得图像帧。
本发明中,解码指的是将视频流还原成所代表的图像数据。为提高解码速度,通常会使用专业的解码芯片来进行硬件解码。本发明对解码芯片的种类不做任何限制,只要能实现对视频流进行解码的解码芯片均可用于本发明。
S202:通过直接内存存取拷贝,将所述图像帧直接拷贝到人工智能处理器芯片上;其中,所述解码芯片和所述人工智能处理器芯片不共用内存。
本发明中,人工智能处理器用于图像预处理及对预处理后的图像进行神经网络推理。DMA拷贝允许不同速度的硬件装置来沟通,而不需要依赖于CPU的大量中断负载。
通过DMA拷贝的方式,把解码后的图像数据直接拷贝到人工智能处理器芯片上,不经过CPU。由于少了一次拷贝过程,本发明的技术方案能够降低50%的PCIE负载。在一个视频结构化流程中,这意味着当内存拷贝为性能瓶颈时,通过DMA拷贝将解码后的数据直接拷贝到人工智能处理器芯片上的方案比从解码器拷贝到CPU,再从CPU拷贝到人工智能处理器芯片上的方案能多处理一倍的视频通道。
S203:所述人工智能处理器芯片执行离线运行文件中的二进制指令对所述图像帧进行推理;其中,所述离线运行文件中的二进制指令是根据人工智能学习任务对应的神经网络模型解析获取。
在实际中,中央处理器利用离线运行文件生成工具,根据相关模型配置文件和权值文件生成能实现本发明功能的离线运行文件。具体离线运行文件生成工具不用做任何限制。可以使用命令行或者脚本完成离线运行文件生成,指定离线运行文件生成工具的路径、神经网络模型配置文件、权值文件、硬件设备名称。
离线运行文件包括:离线运行文件版本信息、人工智能处理器版本信息、二进制指令、常数表、输入/输出数据规模、数据布局描述信息和参数信息。具体来说,离线运行文件的版本信息是指离线运行文件的版本信息;人工智能处理器版本信息是指端侧人工智能处理器的硬件架构信息。比如:可以通过芯片架构版本号来表示硬件架构信息,也可以通过功能描述来表示架构信息。数据布局描述信息是指基于硬件特性对输入/输出数据布局及类型等进行预处理;常数表、输入/输出数据规模和参数信息基于开发好的人工智能算法模型确定。其中,参数信息可以为人工智能算法模型中的权值数据。在常数表中,存储有执行二进制指令运算过程中需要使用的数据。该二进制指令经中央处理器生成人工智能学习任务。将人工智能学习任务放入任务队列,最终由驱动器调度任务队列中的人工智能学习任务让人工智能处理器芯片执行。
在本技术方案中,由于图像数据被直接拷贝到了人工智能处理器芯片上,意味着图像预处理必须在人工智能处理器芯片上进行。
在本技术方案中,图像预处理包括图像缩放和/或颜色空间转换和/或减均值和/或均一化。图像缩放指的是对数字图像的大小进行调整的过程。在本发明中,通常是指将图像从大变到小。但不排除从小变到大。颜色空间转换指的是图像格式的转换,例如从YUV转换到RGB。
在本发明优选的实施例中,通过使用编程语言编写的插件和视频结构应用开发框架提供的卷积层在AI芯片上进行图像预处理。其中插件负责处理图像缩放和颜色空间转换。通过卷积层的配置参数对解码后得到的图像数据进行减均值和归一化。
在实际中,CPU对人工智能学习任务进行优化。针对优化人工智能学习任务来说,可以有四种方式。第一种方式:用户可以在软件开发平台上基于编程语言实现文件编译成动态链接库,在框架中调用该动态链接库。
第二种方式:用户可以在软件开发平台上基于编程语言开发新的算子,结合本地已拥有的人工智能学习库,以得到新的离线运行文件。比如:以proposal算子为例。我们将Faster-R-Cnn中Proposal算子,替换为PluginOp算子,调用专用编程语言编写的proposal_kernel.mlu算子,Cambricon-Caffe框架中的Proposal算子就通过PluginOp替换成了专用编程语言实现的Proposal Kernel,从而将专用编程语言与现有的人工智能学习库联系到一起,支持了人工智能学习库中的各种特性及在线、离线、逐层、融合等运行模式。
由第一种方式和第二种方式可知,在人工智能学习框架(例如:Caffe)中已经支持了大量层和算子,但算法更新变化快,个人或组织可能也积累了一些自定义的算子、算法,一来不希望暴露自定义的算法,二来通过底层库直接对实际应用进行支持效率不能满足需求,所以提供了专用编程语言来帮助开发者进行自主的算法开发,满足之前的开发模式中不够灵活的痛点。
第三种方式:用户可以在软件开发平台上从当前本地已拥有人工智能学习库的版本中选择其中之一,并匹配对应的人工智能运行时库,如果当前本地已拥有的人工智能学习库无法满足需求,通过软件开发平台发送请求,以达到升级本地人工智能学习库的版本的目的。软件开发平台运营方根据请求给软件开发平台提供相应的新版本的人工智能学习库以及对应的人工智能运行时库,用户在软件开发平台上选用最新版本的人工智能学习库以及对应的人工智能运行时库,基于最新版本的人工智能学习库获得调试后的二进制指令。
第四种方式:用户可以调整神经网络模型来达到优化人工智能学习任务的目的。
在实际应用中,推理是神经网络模型的执行过程,一般在视频处理中,会使用神经网络模型进行目标检测、目标分类和目标追踪等。例如在视频中找出人,并对动态的人进行追踪。
本技术方案通过DMA拷贝将解码后的数据直接拷贝到人工智能处理器芯片上的方案比从解码器拷贝到CPU、再从CPU拷贝到人工智能处理器芯片上的方案能多处理一倍的视频通道。并且在人工智能处理器芯片上进行图像预处理,大大降低了CPU的负载。
如图3所示,为本申请实施例提出的一种视频流处理方法流程图之二。包括:
S301:人工智能处理器芯片通过直接内存存取拷贝,将图像帧直接拷贝到人工智能处理器芯片上;其中,所述图像帧是待处理视频流解码获得;
S302:所述人工智能处理器芯片执行离线运行文件中的二进制指令对所述图像帧进行推理;其中,所述离线运行文件中的二进制指令是根据人工智能学习任务对应的神经网络模型解析获取。
如图4所示,为本申请实施例提出的一种视频流处理方法流程图之三。所述方法包括:
S401:中央处理器获取人工智能处理器芯片的架构信息和神经网络模型;
S402:所述中央处理器根据人工智能处理器芯片的架构信息对所述神经网络模型进行编译,生成对应的二进制指令;
S403:所述中央处理器根据所述二进制指令获得对应的人工智能学习任务;
S404:所述中央处理器将所述人工智能学习任务发送至人工智能处理器芯片上,使得人工智能处理器芯片执行人工智能学习任务对所述视频流进行处理。
如图5所示,为本申请实施例提出的一种视频流处理方法的流程示意图之四。所述方法包括:
S501:中央处理器获取人工智能处理器芯片的架构信息和神经网络模型;
S502:所述中央处理器根据人工智能处理器芯片的架构信息对所述神经网络模型进行编译,生成对应的二进制指令;
S503:所述中央处理器根据所述人工智能处理器芯片的架构信息、所述神经网络模型对应的二进制指令获得离线运行文件;其中,所述离线运行文件中的二进制指令是根据人工智能学习任务对应的神经网络模型解析获取。
在本实施例中,离线运行文件中的二进制指令对应的神经网络模型包括输入层、数据预处理层、隐含层和输出层;所述输入层的输出数据作为所述数据预处理层的输入数据;所述数据预处理层的输出数据作为所述隐含层的输入数据,所述隐含层的输出数据作为输出层的输入数据;其中,所述数据预处理层用于对所述输入层的输出数据的颜色参数、图像尺寸参数的调整以及基于人工智能处理器芯片的硬件特性对输入层的输出数据布局及类型进行预处理。
在实际中,所述数据预处理层通过配置参数对所述图像帧进行减均值操作、归一化操作、图像缩放操作和颜色空间转换操作。
本技术方案对深度学习模型的结构进行改造,在输入层与隐含层之间设置数据预处理层,这样可以在人工智能处理器(AI)芯片内对视频的图像帧完成预处理(数据格式转换)功能,从而减轻了CPU的负担。同时不需要把图像帧数据从解码芯片传输到CPU,更不需要在CPU和AI芯片之间进行数据的拷入拷出,从而减少了数据传输的次数,解决IO访存瓶颈问题。并且,相对于图1所示的视频流处理方法,图5所示的方法在CPU的占用率降低了约80%。
请参阅图6,图6所示为本申请实施例提出的一种视频流处理系统功能框图之一。如图6所示,包括解码芯片601和人工智能处理器芯片602。
解码芯片601,用于对视频流进行解码,获得图像帧;
人工智能处理器芯片602,用于通过直接内存存取拷贝方式拷贝所述图像帧;执行离线运行文件中的二进制指令对所述图像帧进行推理;其中,所述解码芯片和所述人工智能处理器芯片不共用内存;所述离线运行文件中的二进制指令是根据人工智能学习任务对应的神经网络模型解析获取。
在图6的基础上,如图7所示,视频流处理系统还包括:中央处理器603。
所述中央处理器603获取离线运行文件;其中,所述离线运行文件包括:所述深度学习模型对应的二进制指令、常数表、输入/输出数据规模、数据布局描述信息和参数信息;其中,所述数据布局描述信息是指基于所述人工智能处理器芯片的硬件特性对输入/输出数据布局及类型进行预处理;所述常数表、输入/输出数据规模和参数信息基于所述神经网络模型确定;所述参数信息为所述神经网络模型中的权值数据;所述常数表用于存储有执行二进制指令过程中需要使用的数据。
在本实施例中,所述中央处理器还用于优化人工智能学习任务。
在本实施例中,所述中央处理器通过专用编程语言来优化人工智能学习任务。
在本实施例中,所述中央处理器更新人工智能学习库的版本来优化人工智能学习任务。
在本实施例中,所述中央处理器调整神经网络模型。
通过DMA拷贝的方式,把解码后的图像数据直接拷贝到人工智能处理器芯片上,不经过CPU。由于少了一次拷贝过程,本技术方案能够降低50%的PCIE负载。在一个视频结构化流程中,这意味着当内存拷贝为性能瓶颈时,通过DMA拷贝将解码后的数据直接拷贝到人工智能处理器芯片上的方案比从解码器拷贝到CPU再从CPU拷贝到人工智能处理器芯片上的方案能多处理一倍的视频通道。
另外,本技术方案对深度学习模型的结构进行改造,在输入层与隐含层之间设置数据预处理层,这样可以在人工智能处理器(AI)芯片内对视频的图像帧完成预处理(数据格式转换)功能,从而减轻了CPU的负担。
数据预处理层包括图像缩放、颜色空间转换、减均值和均一化。图像缩放指的是对数字图像的大小进行调整的过程。在本技术方案中,通常是指将图像从大变到小。但不排除从小变到大。颜色空间转换指的是图像格式的转换,例如:从YUV转换到RGB。
在本技术方案中,所述人工智能处理器芯片执行离线运行文件中的二进制指令对所述图像帧进行推理;其中,所述离线运行文件中的二进制指令是根据人工智能学习任务对应的神经网络模型解析获取。所述神经网络模型包括输入层、数据预处理层、隐含层和输出层;所述输入层的输出数据作为所述数据预处理层的输入数据;所述数据预处理层的输出数据作为所述隐含层的输入数据,所述隐含层的输出数据作为输出层的输入数据;其中,所述数据预处理层用于对所述输入层的输出数据的颜色参数、图像尺寸参数的调整以及基于人工智能处理器芯片的硬件特性对输入层的输出数据布局及类型进行预处理。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另,本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干插件用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来插件相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (14)
1.一种视频流处理方法,其特征在于,包括:
解码芯片对视频流进行解码,获得图像帧;
通过直接内存存取拷贝,将所述解码芯片解码所述视频流后获得的所述图像帧不经过CPU而直接拷贝到人工智能处理器芯片上;其中,所述解码芯片和所述人工智能处理器芯片不共用内存;
所述人工智能处理器芯片执行离线运行文件中的二进制指令对所述图像帧进行推理;其中,所述离线运行文件中的二进制指令是根据人工智能学习任务对应的神经网络模型解析获取,
其中所述神经网络模型包括输入层、数据预处理层、隐含层和输出层,并且其中所述数据预处理层用于对所述输入层的输出数据的颜色参数、图像尺寸参数的调整以及基于人工智能处理器芯片的硬件特性对输入层的输出数据布局及类型进行预处理。
2.根据权利要求1所述的视频流处理方法,其特征在于,所述方法还包括:
中央处理器获取离线运行文件;其中,所述离线运行文件包括:所述神经网络模型对应的二进制指令、常数表、输入/输出数据规模、数据布局描述信息和参数信息;其中,所述数据布局描述信息是指基于所述人工智能处理器芯片的硬件特性对输入/输出数据布局及类型进行预处理;所述常数表、输入/输出数据规模和参数信息基于所述神经网络模型确定;所述参数信息为所述神经网络模型中的权值数据;所述常数表用于存储有执行二进制指令过程中需要使用的数据。
3.根据权利要求1所述的视频流处理方法,其特征在于,所述方法还包括:
中央处理器优化人工智能学习任务。
4.根据权利要求3所述的视频流处理方法,其特征在于,所述中央处理优化人工智能学习任务的步骤包括:
通过专用编程语言来优化人工智能学习任务。
5.根据权利要求3所述的视频流处理方法,其特征在于,所述中央处理优化人工智能学习任务的步骤包括:
更新人工智能学习库的版本来优化人工智能学习任务。
6.根据权利要求3所述的视频流处理方法,其特征在于,所述中央处理优化人工智能学习任务的步骤包括:
调整神经网络模型。
7.根据权利要求6所述的视频流处理方法,其特征在于,所述输入层的输出数据作为所述数据预处理层的输入数据;所述数据预处理层的输出数据作为所述隐含层的输入数据,所述隐含层的输出数据作为输出层的输入数据。
8.一种视频流处理方法,其特征在于,包括:
人工智能处理器芯片通过直接内存存取拷贝,将解码芯片解码视频流后所获得的图像帧不经过CPU而直接拷贝到人工智能处理器芯片上;
所述人工智能处理器芯片执行离线运行文件中的二进制指令对所述图像帧进行推理;其中,所述离线运行文件中的二进制指令是根据人工智能学习任务对应的神经网络模型解析获取,
其中所述神经网络模型包括输入层、数据预处理层、隐含层和输出层,并且其中所述数据预处理层用于对所述输入层的输出数据的颜色参数、图像尺寸参数的调整以及基于人工智能处理器芯片的硬件特性对输入层的输出数据布局及类型进行预处理。
9.一种视频流处理系统,其特征在于,包括:
解码芯片,用于对视频流进行解码,获得图像帧;
人工智能处理器芯片,用于通过直接内存存取拷贝方式将所述解码芯片解码所述视频流后获得的所述图像帧不经过CPU而直接拷贝到所述人工智能处理器芯片上;执行离线运行文件中的二进制指令对所述图像帧进行推理;
其中,所述解码芯片和所述人工智能处理器芯片不共用内存;所述离线运行文件中的二进制指令是根据人工智能学习任务对应的神经网络模型解析获取,
其中所述神经网络模型包括输入层、数据预处理层、隐含层和输出层,并且其中所述数据预处理层用于对所述输入层的输出数据的颜色参数、图像尺寸参数的调整以及基于人工智能处理器芯片的硬件特性对输入层的输出数据布局及类型进行预处理。
10.根据权利要求9所述的视频流处理系统,其特征在于,还包括:中央处理器;
所述中央处理器获取离线运行文件;其中,所述离线运行文件包括:所述神经网络模型对应的二进制指令、常数表、输入/输出数据规模、数据布局描述信息和参数信息;其中,所述数据布局描述信息是指基于所述人工智能处理器芯片的硬件特性对输入/输出数据布局及类型进行预处理;所述常数表、输入/输出数据规模和参数信息基于所述神经网络模型确定;所述参数信息为所述神经网络模型中的权值数据;所述常数表用于存储有执行二进制指令过程中需要使用的数据。
11.根据权利要求10所述的视频流处理系统,其特征在于,所述中央处理器还用于优化人工智能学习任务。
12.根据权利要求11所述的视频流处理系统,其特征在于,所述中央处理器通过专用编程语言来优化人工智能学习任务。
13.根据权利要求11所述的视频流处理系统,其特征在于,所述中央处理器更新人工智能学习库的版本来优化人工智能学习任务。
14.根据权利要求11所述的视频流处理系统,其特征在于,所述中央处理器调整神经网络模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910738325.2A CN110430444B (zh) | 2019-08-12 | 2019-08-12 | 一种视频流处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910738325.2A CN110430444B (zh) | 2019-08-12 | 2019-08-12 | 一种视频流处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110430444A CN110430444A (zh) | 2019-11-08 |
CN110430444B true CN110430444B (zh) | 2022-06-07 |
Family
ID=68413884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910738325.2A Active CN110430444B (zh) | 2019-08-12 | 2019-08-12 | 一种视频流处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110430444B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181657B (zh) * | 2020-09-30 | 2024-05-07 | 京东方科技集团股份有限公司 | 视频处理方法、装置、电子设备及存储介质 |
CN115794913B (zh) * | 2020-12-30 | 2024-03-15 | 华为技术有限公司 | 一种人工智能系统中数据处理方法及装置 |
CN114691566A (zh) * | 2020-12-31 | 2022-07-01 | Oppo广东移动通信有限公司 | Ai模型的运行方法、加载方法、装置及ic芯片 |
CN113419989B (zh) * | 2021-06-11 | 2023-01-20 | 上海壁仞智能科技有限公司 | 人工智能芯片及其操作方法 |
CN113645467B (zh) * | 2021-06-23 | 2024-04-23 | 天津津航计算技术研究所 | 一种软硬结合的视频解码方法 |
CN113610135B (zh) * | 2021-07-30 | 2024-04-02 | 广州文远知行科技有限公司 | 一种图像处理方法、装置、计算机设备和存储介质 |
CN114025106A (zh) * | 2021-12-16 | 2022-02-08 | 海宁奕斯伟集成电路设计有限公司 | 智能处理器、图像智能处理系统、方法及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108764468A (zh) * | 2018-05-03 | 2018-11-06 | 中国科学院计算技术研究所 | 用于智能识别的人工神经网络处理器 |
CN109688395A (zh) * | 2018-12-29 | 2019-04-26 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN110046116A (zh) * | 2019-04-23 | 2019-07-23 | 上海燧原智能科技有限公司 | 一种张量填充方法、装置、设备及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110063305A1 (en) * | 2009-09-16 | 2011-03-17 | Nvidia Corporation | Co-processing techniques on heterogeneous graphics processing units |
CN105224502A (zh) * | 2015-09-28 | 2016-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种基于gpu的深度学习方法及系统 |
CN106202224B (zh) * | 2016-06-29 | 2022-01-07 | 北京百度网讯科技有限公司 | 搜索处理方法及装置 |
CN107220633A (zh) * | 2017-06-15 | 2017-09-29 | 苏州科达科技股份有限公司 | 一种智能移动执法系统及方法 |
CN107888924A (zh) * | 2017-11-30 | 2018-04-06 | 江西洪都航空工业集团有限责任公司 | 一种无损视频加速分析方法 |
US10452955B2 (en) * | 2018-01-15 | 2019-10-22 | Gyrfalcon Technology Inc. | System and method for encoding data in an image/video recognition integrated circuit solution |
US10649927B2 (en) * | 2018-08-20 | 2020-05-12 | Intel Corporation | Dual in-line memory module (DIMM) programmable accelerator card |
CN109360153B (zh) * | 2018-10-26 | 2023-05-02 | 北京金山云网络技术有限公司 | 图像处理方法、超分辨率模型生成方法、装置及电子设备 |
CN109658488B (zh) * | 2018-11-12 | 2022-07-19 | 浙江大学 | 一种虚实融合系统中通过可编程gpu加速解码摄像头视频流的方法 |
CN109862391B (zh) * | 2019-03-18 | 2021-10-19 | 网易(杭州)网络有限公司 | 视频分类方法、介质、装置和计算设备 |
-
2019
- 2019-08-12 CN CN201910738325.2A patent/CN110430444B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108764468A (zh) * | 2018-05-03 | 2018-11-06 | 中国科学院计算技术研究所 | 用于智能识别的人工神经网络处理器 |
CN109688395A (zh) * | 2018-12-29 | 2019-04-26 | 北京中科寒武纪科技有限公司 | 运算方法、装置及相关产品 |
CN110046116A (zh) * | 2019-04-23 | 2019-07-23 | 上海燧原智能科技有限公司 | 一种张量填充方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110430444A (zh) | 2019-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110430444B (zh) | 一种视频流处理方法及系统 | |
CN111160569A (zh) | 基于机器学习模型的应用开发方法、装置及电子设备 | |
CN109684057A (zh) | 任务处理方法、装置和存储介质 | |
CN110249312B (zh) | 用于将数据集成作业从源框架转换到目标框架的方法和系统 | |
US10733481B2 (en) | Cloud device, terminal device, and method for classifying images | |
CN111950600B (zh) | 一种预测逾期用户资源返还表现的方法、装置和电子设备 | |
CN110555900B (zh) | 渲染指令的处理方法及装置、存储介质、电子设备 | |
CN115202729A (zh) | 基于容器服务的镜像生成方法、装置、设备及介质 | |
US20230177729A1 (en) | Object oriented image normalization | |
US11887003B1 (en) | Identifying contributing training datasets for outputs of machine learning models | |
CN108564134B (zh) | 数据处理方法、装置、计算设备和介质 | |
CN112540837B (zh) | 业务处理组件调用方法、系统、电子设备和存储介质 | |
CN114003346A (zh) | 任务处理方法、设备、存储介质及程序产品 | |
DE102023129956A1 (de) | Ressourcenvorhersage für arbeitslasten | |
CN110555732A (zh) | 一种营销策略推送方法、装置及营销策略运营平台 | |
CN118034695A (zh) | 计算图编译方法、编译装置、计算设备及存储介质 | |
CN112766276B (zh) | 卷积神经网络模型的通道调整方法、装置和设备 | |
CN113747195A (zh) | 视频数据处理方法、装置、设备及存储介质 | |
CN113744176A (zh) | 一种图像数据增强的方法、装置及电子设备 | |
CN113254385A (zh) | 一种网络结构、并行推理模型的编译加载方法及芯片系统 | |
CN112766277A (zh) | 卷积神经网络模型的通道调整方法、装置和设备 | |
CN112668659A (zh) | 模型训练方法、平台和电子设备 | |
US11900047B1 (en) | Systems, methods and software for improving the energy footprint of an electronic document | |
KR102522973B1 (ko) | 폐기물 처리 신청 방법 및 그 장치 | |
US20210319282A1 (en) | Electronic device for controlling data processing of modularized neural network, and method for controlling same |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 644, scientific research complex building, No. 6, South Road, Academy of Sciences, Haidian District, Beijing 100086 Applicant after: Zhongke Cambrian Technology Co.,Ltd. Address before: Room 644, scientific research complex building, No. 6, South Road, Academy of Sciences, Haidian District, Beijing 100086 Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |