CN110390626A - 一种卷积神经网络的图像处理方法及装置 - Google Patents

一种卷积神经网络的图像处理方法及装置 Download PDF

Info

Publication number
CN110390626A
CN110390626A CN201910589718.1A CN201910589718A CN110390626A CN 110390626 A CN110390626 A CN 110390626A CN 201910589718 A CN201910589718 A CN 201910589718A CN 110390626 A CN110390626 A CN 110390626A
Authority
CN
China
Prior art keywords
memory space
pointer
image data
frame number
memory
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.)
Pending
Application number
CN201910589718.1A
Other languages
English (en)
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.)
Deep Blue Technology Shanghai Co Ltd
DeepBlue AI Chips Research Institute Jiangsu Co Ltd
Original Assignee
Deep Blue Technology Shanghai Co Ltd
DeepBlue AI Chips Research Institute Jiangsu Co Ltd
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 Deep Blue Technology Shanghai Co Ltd, DeepBlue AI Chips Research Institute Jiangsu Co Ltd filed Critical Deep Blue Technology Shanghai Co Ltd
Priority to CN201910589718.1A priority Critical patent/CN110390626A/zh
Publication of CN110390626A publication Critical patent/CN110390626A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

本申请提供一种卷积神经网络的图像处理方法及装置,用于提高帧率。该方法包括:确定第一指针所指向的第一存储空间;所述第一指针用于指示待进行卷积神经网络计算的图像数据的存储空间;根据所述第一指针,从所述第一存储空间中读取第i帧图像数据,以进行卷积神经网络计算;其中,在对所述第i帧图像数据进行所述卷积神经网络计算的过程中,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,所述特征图像是第i‑1帧图像数据经过所述卷积神经网络计算得到的,a为大于等于1的整数,所述第一存储空间、所述第二存储空间及所述第三存储空间为一个内存的不同存储空间。

Description

一种卷积神经网络的图像处理方法及装置
技术领域
本申请涉及现场可编程门阵列FPGA硬件加速领域,尤其涉及一种卷积神经网络的图像处理方法及装置。
背景技术
卷积神经网络在计算机视觉领域应用广泛,尤其是在目标检测和图像识别等方面显示除了良好的应用前景。
请参见图1,为现有技术中利用卷积神经网络进行图像识别的流程示意图。在触发视频传感器,例如摄像头,摄像头将采集的图像数据输入至视频图尺寸模块,由视频图尺寸模块处理成预设尺寸的图像数据,例如416*416。由输入缓存前处理模块将偏置(bias)、权重和图像数据传输至卷积计算阵列。卷积计算阵列在对图像数据进行卷积神经网络计算后,由输入缓存后处理模块对卷积神经网络计算后的结果进行处理,例如上采样(upsample)、池化(pooling)等。输入缓存后处理模块将处理完的结果通过双倍速率(Double Data Rate,DDR)控制器写入DDR中,例如DDR3或DDR4,然后将处理完的结果输入至卷积神经网络的下一层,以进行下一层卷积神经网络的计算。在卷积神经网络所有层的计算完成后,才能再次启动摄像头以采集下一帧图像数据。
根据图1所示的流程示意图可以看出,需要在一帧图像数据完全处理完成后才能再次启动摄像头,从而导致帧率较低。
发明内容
本申请提供一种卷积神经网络的图像处理方法,用于提高帧率。
第一方面,本申请提供了一种卷积神经网络的图像处理方法,该方法可以由AXI控制器执行。该方法包括:
确定第一指针所指向的第一存储空间;其中,所述第一指针用于指示待进行卷积神经网络计算的图像数据的存储空间;
根据所述第一指针,从所述第一存储空间中读取第i帧图像数据,以进行卷积神经网络计算;
其中,在对所述第i帧图像数据进行所述卷积神经网络计算的过程中,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,所述特征图像是第i-1帧图像数据经过所述卷积神经网络计算得到的,a为大于或等于1的整数,所述第一存储空间、所述第二存储空间及所述第三存储空间位于同一内存上。
在本申请实施例中,在对第i帧图像数据进行卷积神经网络计算时,可以将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,也就是说在本申请实施例中,图像数据的存储,卷积神经网络的计算及图像数据的显示这三个步骤可以同时进行,因此能够减少一帧图像的处理时长,提高了帧率。
进一步,本申请实施例中图像数据的存储、卷积神经网络的计算以及图像数据的显示这三个步骤是对同一内存的访问,而不是两个独立的内存(例如,其中一个内存用A表示,另一个用B表示,则内存A用于图像数据的存储和卷积神经网络计算的读,内存B用于卷积神经网络的计算写和图像数据显示的读),能够减少一次将获取的图像数据从内存A写入内存B的过程,提高了系统处理速度,从而能够进一步提高帧率。
进一步,本申请实施例中由于是对一个内存的访问,因此可以将两个内存控制变成一个内存控制,减少了一个内存控制的逻辑功能和资源消耗。
在本申请实施例中,由于卷积神经网络的计算的处理速度较慢,因此在卷积神经网络的计算过程中,可能已经采集多帧图像,所以此处是i+a帧图像,a为大于或等于1的整数。
在一个可能的设计中,所述内存上的不同存储空间利用不同的帧号标识;
所述第一存储空间的帧号等于所述第三存储空间的帧号加1。
在本申请实施例中,为保证卷积神经网络计算和显示能够同时进行,则显示的内容为当前进行卷积神经网络计算的图像数据的上一帧图像数据的处理结果。
在一个可能的设计中,确定第一指针所指向的第一存储空间,包括:
确定所述第一指针当前指向的存储空间的帧号加1是否等于所述第二指针当前指向的存储空间的帧号;
若等于,则确定所述第一指针当前指向的存储空间为所述第一存储空间。
在本申请实施例中,第一指针当前指向的存储空间的帧号指的是上一次读取的待进行卷积神经网络计算的图像数据所在存储空间的帧号,例如上一次读取的待进行卷积神经网络计算的图像数据所在的存储空间的帧号为1,第一指针当前指向的存储空间的帧号为1。第二指针当前指向的存储空间的帧号指的是上一次获取的图像数据应存储的存储空间的帧号。例如,上一次获取的图像数据所存储的存储空间的帧号为2,则第二指针当前指向的存储空间的帧号是2。
此处确定第一指针当前指向的存储空间的帧号加1是否等于第二指针当前指向的存储空间的帧号的目的是为了判断存储空间中当前是否存在可供读取的图像数据。若等于,则表明获取的图像数据被读完,此时第一指针仍指向当前指向的存储空间。
在一个可能的设计中,所述方法还包括:
若不等于,则将所述第一指针当前指向的存储空间的帧号加1,得到第一帧号;
确定所述第一帧号对应的存储空间为所述第一存储空间。
若不等于,则表明获取的图像数据还没有被读完,此时可以将当前指向的存储空间的帧号加1,也就是从当前指向的存储空间的下一个存储空间中读取待进行卷积神经网络计算的图像数据。
在一个可能的设计中,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,包括:
确定所述第二指针当前指向存储空间的帧号加1是否等于所述第三存储空间的帧号;
若等于,则确定所述第二指针当前指向的存储空间为所述第二存储空间;
将所述第i+a帧图像数据存储在所述第二存储空间中。
此处确定第二指针当前指向的存储空间的帧号加1是否等于第三存储空间的帧号的目的是为了判断存储空间中是否被写满。也就是说当前的存储空间中存储的图像数据均没有被读取,在该情况下,第二指针仍指向当前所指向的存储空间,也就是第i+a帧图像数据存储在当前指向的存储空间中。
在一个可能的设计中,所述方法还包括:
若不等于,将所述第二指针当前指向存储空间的帧号加1,得到第二帧号;
将所述第二帧号对应的存储空间作为所述第二存储空间。
若不等于,则表明获取的图像数据中有的图像数据已被读取,在该情况下,第二指针则指向当前所指向的存储空间的下一存储空间。
第二方面,本申请实施例提供一种卷积神经网络的图像处理装置,包括:
存储器,用于存储指令;
处理器,用于读取所述存储器中存储的指令,执行下列过程:
确定第一指针所指向的第一存储空间;其中,所述第一指针用于指示待进行卷积神经网络计算的图像数据的存储空间;
根据所述第一指针,从所述第一存储空间中读取第i帧图像数据,以进行卷积神经网络计算;
其中,在对所述第i帧图像数据进行所述卷积神经网络计算的过程中,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,所述特征图像是第i-1帧图像数据经过所述卷积神经网络计算得到的,a为大于等于1的整数,所述第一存储空间、所述第二存储空间及所述第三存储空间为一个内存的不同存储空间。
在一个可能的设计中,所述内存上的不同存储空间利用不同的帧号标识;
所述第一存储空间的帧号等于所述第三存储空间的帧号加1。
在一个可能的设计中,在所述处理器确定第一指针所指向的第一存储空间时,具体用于:
确定所述第一指针当前指向的存储空间的帧号加1是否等于所述第二指针当前指向的存储空间的帧号;
若等于,则确定所述第一指针当前指向的存储空间为所述第一存储空间。
在一个可能的设计中,所述处理器还用于:
若不等于,则将所述第一指针当前指向的存储空间的帧号加1,得到第一帧号;
确定所述第一帧号对应的存储空间为所述第一存储空间。
在一个可能的设计中,在所述是处理器将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中时,具体用于:
确定所述第二指针当前指向存储空间的帧号加1是否等于所述第三存储空间的帧号;
若等于,则确定所述第二指针当前指向的存储空间为所述第二存储空间;
将所述第i+a帧图像数据存储在所述第二存储空间中。
在一个可能的设计中,所述处理器还用于:
若不等于,将所述第二指针当前指向存储空间的帧号加1,得到第二帧号;
将所述第二帧号对应的存储空间作为所述第二存储空间。
第三方面,本申请提供一种卷积神经网络的图像处理装置,包括:
确定模块,用于确定第一指针所指向的第一存储空间;其中,所述第一指针用于指示待进行卷积神经网络计算的图像数据的存储空间;
读取模块,用于根据所述第一指针,从所述第一存储空间中读取第i帧图像数据,以进行卷积神经网络计算;
其中,在对所述第i帧图像数据进行所述卷积神经网络计算的过程中,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,所述特征图像是第i-1帧图像数据经过所述卷积神经网络计算得到的,a为大于等于1的整数,所述第一存储空间、所述第二存储空间及所述第三存储空间为一个内存的不同存储空间。
在一个可能的设计中,所述内存上的不同存储空间利用不同的帧号标识;
所述第一存储空间的帧号等于所述第三存储空间的帧号加1。
在一个可能的设计中,在所述确定模块确定第一指针所指向的第一存储空间时,具体用于:
确定所述第一指针当前指向的存储空间的帧号加1是否等于所述第二指针当前指向的存储空间的帧号;
若等于,则确定所述第一指针当前指向的存储空间为所述第一存储空间。
在一个可能的设计中,所述确定模块还用于:
若不等于,则将所述第一指针当前指向的存储空间的帧号加1,得到第一帧号;
确定所述第一帧号对应的存储空间为所述第一存储空间。
在一个可能的设计中,所述装置还包括:存储模块;
在所述存储模块将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中时,具体用于:
确定所述第二指针当前指向存储空间的帧号加1是否等于所述第三存储空间的帧号;
若等于,则确定所述第二指针当前指向的存储空间为所述第二存储空间;
将所述第i+a帧图像数据存储在所述第二存储空间中。
在一个可能的设计中,所述存储模块还用于:
若不等于,将所述第二指针当前指向存储空间的帧号加1,得到第二帧号;
将所述第二帧号对应的存储空间作为所述第二存储空间。
第四方面,本申请提供一种计算机存储介质,存储有用于执行上述第一方面、第一方面的任意一种设计的功能、或包含用于执行上述第一方面、第一方面的任意一种设计的方法所涉及的程序。
在本申请实施例中,在对第i帧图像数据进行卷积神经网络计算时,可以将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,也就是说在本申请实施例中,图像数据的存储,卷积神经网络的计算及图像数据的显示这三个步骤可以同时进行,因此能够减少一帧图像的处理时长,提高了帧率。
进一步,本申请实施例中图像数据的存储、卷积神经网络的计算以及图像数据的显示这三个步骤是对同一内存的访问,而不是两个独立的内存(例如,其中一个内存用A表示,另一个用B表示,则内存A用于图像数据的存储和卷积神经网络计算的读,内存B用于卷积神经网络的计算写和图像数据显示的读),能够减少一次将获取的图像数据从内存A写入内存B的过程,提高了系统处理速度,从而能够进一步提高帧率。
进一步,本申请实施例中由于是对一个内存的访问,因此可以将两个内存控制变成一个内存控制,减少了一个内存控制的逻辑功能和资源消耗。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中利用卷积神经网络进行图像识别的流程示意图;
图2为卷积运算的示意流程图;
图3为本申请实施例提供的卷积神经网络进行图像识别的流程示意图;
图4为DDR控制器控制的缓存管理;
图5为本申请提供的一种应用场景的示意图;
图6为本申请提供的一种卷积神经网络的图像处理方法的流程示意图;
图7为本申请提供的第一存储空间、第二存储空间及第三存储空间的示意图;
图8为本申请提供的一种卷积神经网络的图像处理的装置;
图9为本申请提供的另一卷积神经网络的图像处理的装置。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
以下,对本申请实施例中的部分用语进行解释说明,以便于本领域技术人员进行理解。
(1)卷积运算
假设输入是6×6×3的图像矩阵,卷积核是3×3×3权重矩阵,则图像矩阵与权重矩阵的卷积运算过程具体如下:
请参见图2,在6×6×3的图像矩阵中选取虚线框中的3×3×3的图像矩阵与3×3×3的卷积核做卷积计算,计算方式为3×3×3的图像矩阵中的27个元素与3×3×3的卷积核中的27个对应位置的元素相乘,再将27个乘积的结果求和作为第一个卷积值,存放在4×4×1卷积结果1的位置;接着虚线框向右移动一格,再将虚线框中的图像矩阵与卷积核做卷积运算,将计算结果放在4×4×1卷积结果2的位置;当虚线框移动到最右边后将向下移动一格,并移动到最左边,开始进行将虚线框中的图像矩阵与卷积核做卷积运算,将计算结果放在4×4×1卷积结果5的位置;接着虚线框再向右移动一格,并将卷积计算结果放到4×4×1卷积结果6的位置,直到虚线框移动到右下角的时候,将虚线框中的图像矩阵与卷积核做卷积运算,将计算结果放在4×4×1卷积结果的16位置,完成6×6×3的图像和3×3×3的卷积核的卷积计算。
(2)块随机存储器(Block RAM,BRAM),是双端口RAM,包含两套完备的36比特(bit)读写数据总线以及相应的控制总线。
(3)帧率,是以帧为单位的位图图像连续出现在显示器上的频率。
基于图1所示的描述,现有技术中的卷积神经网络的图像处理方式导致帧率较低。为此,请参见图3,在触发视频传感器,例如摄像头,摄像头采集的图像数据存储在视频捕捉缓存模块中。在开始进行卷积神经网络计算时,DDR控制器从视频捕捉缓存模块中读取图像数据,输入至视频图尺寸模块、输入缓存前处理模块、卷积计算阵列模块、输入缓存后处理模块,输入缓存后处理模块处理后的结果存储在视频显示缓存模块中。
虽然图2所示的技术方案规避了图1中存在的缺陷,但是需要将存储在视频捕捉缓存模块中的原始图像数据拷贝到视频显示缓存模块中,而执行一次DDR读写,就会占用DDR读写视频一帧的带宽,增加了耗时,从而影响帧率。其中,DDR控制器控制的缓存管理请参见图4。
鉴于此,本申请实施例提出一种卷积神经网络的图像处理方法,在本申请实施例中,在对第i帧图像数据进行卷积神经网络计算时,可以将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,也就是说在本申请实施例中,图像数据的存储,卷积神经网络的计算及图像数据的显示这三个步骤可以同时进行,因此能够减少一帧图像的处理时长,提高了帧率。
进一步,本申请实施例中图像数据的存储、卷积神经网络的计算以及图像数据的显示这三个步骤是对同一内存的访问,而不是两个独立的内存(例如图4所示),能够减少一次将获取的图像数据从视频捕捉缓存写入视频显示缓存的过程,提高了系统处理速度,从而能够进一步提高帧率。
进一步,本申请实施例中由于是对一个内存的访问,因此可以将两个内存控制变成一个内存控制,减少了一个内存控制的逻辑功能和资源消耗。
请参见图5,为本申请实施例提供的一种应用场景,包括:内嵌处理器(ProcessingSystem,PS)端和现场可编程门阵列(Field-Programmable Gate Array,FPGA)可编程逻辑资源(Programmable logic,PL)端。其中,PL端包括:视图尺寸模块、输入缓存前处理模块、卷积神经网络计算模块、检测后处理模块,及AXI(Advanced eXtensible Interface)控制模块;PS端包括DDR控制器、Linux用户应用程序、设备驱动、Qt库及Open Cv库,其中,PL端和PS端之间通过AXI交互模块连接。
继续参见图5,图5中还包括安全数码卡(Secure Digital Memory,SD)、显示器、存储器,例如DDR3或DDR4,以及视频传感器,例如摄像头。
下面结合附图介绍本申请实施例提供的技术方案,在下面的介绍过程中,以将本申请提供的技术方案应用在图5所示的应用场景中为例。
请参见图6,本申请一实施例提供一种卷积神经网络的图像处理方法,该方法可以由DDR控制器执行,该方法的流程描述大致如下:
S601:确定第一指针所指向的第一存储空间;
S602:根据所述第一指针,从所述第一存储空间中读取第i帧图像数据,以进行卷积神经网络计算;
其中,在对所述第i帧图像数据进行所述卷积神经网络计算的过程中,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,所述特征图像是第i-1帧图像数据经过所述卷积神经网络计算得到的,a为大于等于1的整数,所述第一存储空间、所述第二存储空间及所述第三存储空间位于同一内存上。
在本申请实施例中,DDR控制器设置三个指针,包括第一指针、第二指针及第三指针,第一指针用于指示待采集的图像数据应存储的存储空间,第二指针用于指示待进行卷积计算的图像数据的存储空间,第三指针用于指示待显示的图像数据的存储空间。
在本申请实施例中,对于步骤S601的实现过程,具体包括:
确定所述第一指针当前指向的存储空间的帧号加1是否等于所述第二指针当前指向的存储空间的帧号;
若等于,则确定所述第一指针当前指向的存储空间为所述第一存储空间。
若不等于,则将所述第一指针当前指向的存储空间的帧号加1,得到第一帧号;确定所述第一帧号对应的存储空间为所述第一存储空间。
在本申请实施例中,内存的不同存储空间被赋予不同的帧号,指针则指向不同帧号所对应的存储空间。具体请参见下表一,内存以DDR为例,地址0x0_0000~0x7F_FFFF为预留存储空间,从地址0x80_0000开始存放卷积神经网络参数bias和权重weight。之后划分有四帧,也就是划分为四个存储空间,每个存储空间又划分为多个存储子空间,包括VIDEO_*_SOURCE,VIDEO_*_TEMPO,VIDEO_*_TEMP1,VIDEO_*_TEMP3,VIDEO_*_RESULT。其中,VIDEO_*_TEMPO,VIDEO_*_TEMP1,VIDEO_*_TEMP3用来存储卷积神经网络计算的中间结果,VIDEO_*_RESULT用来存储卷积神经网络计算的最终结果。其中*表示帧号,例如0,1,2,3。
表一
此处需要说明的是,为不同存储空间赋予的帧号也可以替换为其它名称,例如存储地址,只要能够起到标识存储空间的作用即可,在此不做限制。
另外,此处还需要说明的是,由于获取图像数据、卷积神经网络计算及图像数据的显示这三个步骤的处理时长是不一样的,例如,在进行卷积神经网络计算过程中,可能已经获取了多帧图像,因此在获取图像数据、卷积神经网络计算及图像数据的显示这三个步骤之间没有直接必然的联系。
在本申请实施例中,第一指针当前指向存储空间的帧号指的是上一次读取的待进行卷积神经网络计算的图像数据所在存储空间的帧号。具体请参见图7,上一次读取的待进行卷积神经网络计算的图像数据所在存储空间的帧号为2,则第一指针当前指向存储空间的帧号为2。
在本申请实施例中,在从第一指针指向的第一存储空间中读取第i帧图像数据之前,首先需要确定存储空间中是否存在可供读取的图像数据,也就是判断第一指针当前指向的存储空间的帧号加1是否等于第二指针当前指向的存储空间的帧号,在等于时,就表明存储空间中当前不存在可供读取的图像数据,则确定第一指针当前指向的存储空间为第一存储空间,从第一指针当前指向的存储空间中读取第i帧图像数据。若不等于,则表明存储空间中存在可供读取的图像数据,则将第一指针当前指向的存储空间的帧号加1得到第一帧号,从第一帧号对应的存储空间中读取第i帧图像数据。
继续沿用上述举例,假设在将获取的图像数据存储在帧号为3的存储空间中时(也就是第二指针当前指向的存储空间的帧号是3),需要读取待进行卷积神经网络的计算的图像数据,则确定第一指针当前指向的存储空间的帧号加1是否等于第二指针当前指向的存储空间的帧号,即判断2+1是否等于3,等于则确定第一指针当前指向的存储空间为第一存储空间,也就是从帧号是2的存储空间中读取第i帧图像数据。
在具体实现过程中,若在将获取的图像数据存储在帧号为0的存储空间中时(也就是第二指针当前指向的存储空间的帧号是0),需要读取待进行卷积神经网络的计算的图像数据,则确定第一指针当前指向的存储空间的帧号加1是否等于第二指针当前指向的存储空间的帧号,即判断2+1是否等于0,不等于零,则将2加1,得到第一帧号,也就是从帧号为3的存储空间中读取第i帧图像数据。
在本申请实施例中,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,包括:
确定所述第二指针当前指向存储空间的帧号加1是否等于所述第三存储空间的帧号;
若等于,则确定所述第二指针当前指向的存储空间为所述第二存储空间;
将所述第i+a帧图像数据存储在所述第二存储空间中。
若不等于,将所述第二指针当前指向存储空间的帧号加1,得到第二帧号;将所述第二帧号对应的存储空间作为所述第二存储空间。
在本申请实施例中,第一存储空间的帧号等于第三存储空间的帧号加1,也就是在第一指针指向的第一存储空间的帧号为2时,第三指针指向的第三存储空间的帧号为1,或在第一指针指向的第一存储空间的帧号为3时,第三指针指向的第三存储空间的帧号为2,或在第一指针指向的第一存储空间的帧号为0时,第三指针指向的第三存储空间的帧号为0。在进行卷积神经网络的计算过程中,需要将获取的图像数据进行存储时,首先确定存储空间中是否被写满,也就是判断第二指针当前指向的存储空间的帧号加1是否等于第三存储空间的帧号,等于则确定第二指针当前指向的存储空间为第二存储空间,将第i+a帧图像数据存储在当前指向的存储空间中;不等于,则将第二指针当前指向的存储空间的帧号加1,得到第二帧号,将第i+a帧图像存储到第二帧号对应的存储空间中。
假设从帧号为2的存储空间中读取待进行卷积神经网络计算的图像数据,相应的,第三指针指向的存储空间的帧号为1,若第二指针当前指向的存储空间的帧号是0,则判断0+1是否等于1,等于1时,则将第i+a帧图像数据存储在帧号为0的存储空间中。
继续沿用上述举例,若假设第二指针当前指向的存储空间的帧号是3,则判断3+1是否等于1,不等于,则将第二指针当前指向的存储空间的帧号3加1,得到第二帧号,也就是0,将获取的第i+a帧图像数据存储到帧号0对应的存储空间中。
下面结合说明书附图介绍本申请实施例提供的设备。
请参见图8,基于同一发明构思,本申请实施例提供一种卷积神经网络的图像处理的装置800,包括:
存储器801,用于存储指令;
处理器802,用于读取所述存储器中存储的指令,执行下列过程:
确定第一指针所指向的第一存储空间;所述第一指针用于指示待进行卷积神经网络计算的图像数据的存储空间;
根据所述第一指针,从所述第一存储空间中读取第i帧图像数据,以进行卷积神经网络计算;
其中,在对所述第i帧图像数据进行所述卷积神经网络计算的过程中,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,所述特征图像是第i-1帧图像数据经过所述卷积神经网络计算得到的,a为大于等于1的整数,所述第一存储空间、所述第二存储空间及所述第三存储空间为位于同一内存上。
在本申请实施例中,处理器802可以是中央处理器(central processing unit,CPU),或特定应用集成电路(application-specific integrated circuit,ASIC),可以是一个或多个用于控制程序执行的集成电路,可以是基带芯片,等等。存储器的数量可以是一个或多个,存储器可以是只读存储器(read-only memory,ROM)、随机存取存储器(randomaccess memory,RAM)或磁盘存储器,等等。
内存与存储器是相互独立的,内存可以是DDR3,也可以是DDR4。
在一个可能的设计中,所述内存上的不同存储空间利用不同的帧号标识;
所述第一存储空间的帧号等于所述第三存储空间的帧号加1。
在一个可能的设计中,在所述处理器802确定第一指针所指向的第一存储空间时,具体用于:
确定所述第一指针当前指向的存储空间的帧号加1是否等于所述第二指针当前指向的存储空间的帧号;
若等于,则确定所述第一指针当前指向的存储空间为所述第一存储空间。
在一个可能的设计中,所述处理器802还用于:
若不等于,则将所述第一指针当前指向的存储空间的帧号加1,得到第一帧号;
确定所述第一帧号对应的存储空间为所述第一存储空间。
在一个可能的设计中,在所述是处理器802将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中时,具体用于:
确定所述第二指针当前指向存储空间的帧号加1是否等于所述第三存储空间的帧号;
若等于,则确定所述第二指针当前指向的存储空间为所述第二存储空间;
将所述第i+a帧图像数据存储在所述第二存储空间中。
在一个可能的设计中,所述处理器802还用于:
若不等于,将所述第二指针当前指向存储空间的帧号加1,得到第二帧号;
将所述第二帧号对应的存储空间作为所述第二存储空间。
请参见图9,本申请提供一种卷积神经网络的图像处理装置900,包括:
确定模块901,用于确定第一指针所指向的第一存储空间;其中,所述第一指针用于指示待进行卷积神经网络计算的图像数据的存储空间;
读取模块902,用于根据所述第一指针,从所述第一存储空间中读取第i帧图像数据,以进行卷积神经网络计算;
其中,在对所述第i帧图像数据进行所述卷积神经网络计算的过程中,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,所述特征图像是第i-1帧图像数据经过所述卷积神经网络计算得到的,a为大于等于1的整数,所述第一存储空间、所述第二存储空间及所述第三存储空间位于同一内存。
在一个可能的设计中,
所述内存上的不同存储空间利用不同的帧号标识;
所述第一存储空间的帧号等于所述第三存储空间的帧号加1。
在一个可能的设计中,在所述确定模块901确定第一指针所指向的第一存储空间时,具体用于:
确定所述第一指针当前指向的存储空间的帧号加1是否等于所述第二指针当前指向的存储空间的帧号;
若等于,则确定所述第一指针当前指向的存储空间为所述第一存储空间。
在一个可能的设计中,所述确定模块901还用于:
若不等于,则将所述第一指针当前指向的存储空间的帧号加1,得到第一帧号;
确定所述第一帧号对应的存储空间为所述第一存储空间。
在一个可能的设计中,所述装置还包括:存储模块903;
在所述存储模块903将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中时,具体用于:
确定所述第二指针当前指向存储空间的帧号加1是否等于所述第三存储空间的帧号;
若等于,则确定所述第二指针当前指向的存储空间为所述第二存储空间;
将所述第i+a帧图像数据存储在所述第二存储空间中。
在一个可能的设计中,所述存储模块903还用于:
若不等于,将所述第二指针当前指向存储空间的帧号加1,得到第二帧号;
将所述第二帧号对应的存储空间作为所述第二存储空间。
本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,以上实施例仅用以对本申请的技术方案进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明实施例的方法,不应理解为对本发明实施例的限制。本技术领域的技术人员可轻易想到的变化或替换,都应涵盖在本发明实施例的保护范围之内。

Claims (14)

1.一种卷积神经网络的图像处理方法,其特征在于,包括:
确定第一指针所指向的第一存储空间;其中,所述第一指针用于指示待进行卷积神经网络计算的图像数据的存储空间;
根据所述第一指针,从所述第一存储空间中读取第i帧图像数据,以进行卷积神经网络计算;
其中,在对所述第i帧图像数据进行所述卷积神经网络计算的过程中,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,所述特征图像是第i-1帧图像数据经所述卷积神经网络计算得到的,a为大于或等于1的整数,所述第一存储空间、所述第二存储空间及所述第三存储空间位于同一内存上。
2.根据权利要求1所述的方法,其特征在于,所述内存上的不同存储空间利用不同的帧号标识;
所述第一存储空间的帧号等于所述第三存储空间的帧号加1。
3.根据权利要求2所述的方法,其特征在于,确定第一指针所指向的第一存储空间,包括:
确定所述第一指针当前指向的存储空间的帧号加1是否等于所述第二指针当前指向的存储空间的帧号;
若等于,则确定所述第一指针当前指向的存储空间为所述第一存储空间。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若不等于,则将所述第一指针当前指向的存储空间的帧号加1,得到第一帧号;
确定所述第一帧号对应的存储空间为所述第一存储空间。
5.根据权利要求2所述的方法,其特征在于,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,包括:
确定所述第二指针当前指向存储空间的帧号加1是否等于所述第三存储空间的帧号;
若等于,则确定所述第二指针当前指向的存储空间为所述第二存储空间;
将所述第i+a帧图像数据存储在所述第二存储空间中。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若不等于,将所述第二指针当前指向存储空间的帧号加1,得到第二帧号;
将所述第二帧号对应的存储空间作为所述第二存储空间。
7.一种卷积神经网络的图像处理装置,其特征在于,包括:
存储器,用于存储指令;
处理器,用于读取所述存储器中存储的指令,执行下列过程:
确定第一指针所指向的第一存储空间;其中,所述第一指针用于指示待进行卷积神经网络计算的图像数据的存储空间;
根据所述第一指针,从所述第一存储空间中读取第i帧图像数据,以进行卷积神经网络计算;
其中,在对所述第i帧图像数据进行所述卷积神经网络计算的过程中,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,所述特征图像是第i-1帧图像数据经过所述卷积神经网络计算得到的,a为大于等于1的整数,所述第一存储空间、所述第二存储空间及所述第三存储空间位于同一内存上。
8.根据权利要求7所述的装置,其特征在于,所述内存上的不同存储空间利用不同的帧号标识;
所述第一存储空间的帧号等于所述第三存储空间的帧号加1。
9.根据权利要求8所述的装置,其特征在于,在所述处理器确定第一指针所指向的第一存储空间时,具体用于:
确定所述第一指针当前指向的存储空间的帧号加1是否等于所述第二指针当前指向的存储空间的帧号;
若等于,则确定所述第一指针当前指向的存储空间为所述第一存储空间。
10.根据权利要求9所述的装置,其特征在于,所述处理器还用于:
若不等于,则将所述第一指针当前指向的存储空间的帧号加1,得到第一帧号;
确定所述第一帧号对应的存储空间为所述第一存储空间。
11.根据权利要求8所述的装置,其特征在于,在所述是处理器将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中时,具体用于:
确定所述第二指针当前指向存储空间的帧号加1是否等于所述第三存储空间的帧号;
若等于,则确定所述第二指针当前指向的存储空间为所述第二存储空间;
将所述第i+a帧图像数据存储在所述第二存储空间中。
12.根据权利要求11所述的装置,其特征在于,所述处理器还用于:
若不等于,将所述第二指针当前指向存储空间的帧号加1,得到第二帧号;
将所述第二帧号对应的存储空间作为所述第二存储空间。
13.一种卷积神经网络的图像处理装置,其特征在于,包括:
确定模块,用于确定第一指针所指向的第一存储空间;其中,所述第一指针用于指示待进行卷积神经网络计算的图像数据的存储空间;
读取模块,用于根据所述第一指针,从所述第一存储空间中读取第i帧图像数据,以进行卷积神经网络计算;
其中,在对所述第i帧图像数据进行所述卷积神经网络计算的过程中,将获取的第i+a帧图像数据存储在第二指针指向的第二存储空间中,同时从第三指针指向的第三存储空间中读取特征图像,所述特征图像是第i-1帧图像数据经过所述卷积神经网络计算得到的,a为大于等于1的整数,所述第一存储空间、所述第二存储空间及所述第三存储空间为一个内存的不同存储空间。
14.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-6任一权利要求所述的方法。
CN201910589718.1A 2019-07-02 2019-07-02 一种卷积神经网络的图像处理方法及装置 Pending CN110390626A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910589718.1A CN110390626A (zh) 2019-07-02 2019-07-02 一种卷积神经网络的图像处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910589718.1A CN110390626A (zh) 2019-07-02 2019-07-02 一种卷积神经网络的图像处理方法及装置

Publications (1)

Publication Number Publication Date
CN110390626A true CN110390626A (zh) 2019-10-29

Family

ID=68286234

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910589718.1A Pending CN110390626A (zh) 2019-07-02 2019-07-02 一种卷积神经网络的图像处理方法及装置

Country Status (1)

Country Link
CN (1) CN110390626A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113139519A (zh) * 2021-05-14 2021-07-20 陕西科技大学 一种基于全可编程片上系统的目标检测系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270444A (zh) * 2011-09-07 2011-12-07 东莞中山大学研究院 视频处理芯片数据流控制及帧缓存装置
CN105872432A (zh) * 2016-04-21 2016-08-17 天津大学 快速自适应帧率变换的装置与方法
CN106874219A (zh) * 2016-12-23 2017-06-20 深圳云天励飞技术有限公司 一种卷积神经网络的数据调度方法、系统及计算机设备
CN107832721A (zh) * 2017-11-16 2018-03-23 百度在线网络技术(北京)有限公司 用于输出信息的方法和装置
US20180268584A1 (en) * 2017-03-20 2018-09-20 Sap Se Weight initialization for machine learning models
WO2019085655A1 (zh) * 2017-10-30 2019-05-09 上海寒武纪信息科技有限公司 信息处理方法及终端设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102270444A (zh) * 2011-09-07 2011-12-07 东莞中山大学研究院 视频处理芯片数据流控制及帧缓存装置
CN105872432A (zh) * 2016-04-21 2016-08-17 天津大学 快速自适应帧率变换的装置与方法
CN106874219A (zh) * 2016-12-23 2017-06-20 深圳云天励飞技术有限公司 一种卷积神经网络的数据调度方法、系统及计算机设备
US20180268584A1 (en) * 2017-03-20 2018-09-20 Sap Se Weight initialization for machine learning models
WO2019085655A1 (zh) * 2017-10-30 2019-05-09 上海寒武纪信息科技有限公司 信息处理方法及终端设备
CN107832721A (zh) * 2017-11-16 2018-03-23 百度在线网络技术(北京)有限公司 用于输出信息的方法和装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
FABIAN SCHUIKI等: "A Scalable Near-Memory Architecture for Training Deep Neural Networks on Large In-Memory Datasets", 《IEEE TRANSACTIONS ON COMPUTERS》 *
FABIAN SCHUIKI等: "A Scalable Near-Memory Architecture for Training Deep Neural Networks on Large In-Memory Datasets", 《IEEE TRANSACTIONS ON COMPUTERS》, vol. 68, no. 4, 21 October 2018 (2018-10-21), pages 484 - 497, XP011713858, DOI: 10.1109/TC.2018.2876312 *
蒋伟林等: "基于FPGA的实时图像采集系统", 《计算机测量与控制》 *
蒋伟林等: "基于FPGA的实时图像采集系统", 《计算机测量与控制》, vol. 19, no. 05, 29 August 2011 (2011-08-29), pages 1 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113139519A (zh) * 2021-05-14 2021-07-20 陕西科技大学 一种基于全可编程片上系统的目标检测系统
CN113139519B (zh) * 2021-05-14 2023-12-22 陕西科技大学 一种基于全可编程片上系统的目标检测系统

Similar Documents

Publication Publication Date Title
US10140123B2 (en) SIMD processing lanes storing input pixel operand data in local register file for thread execution of image processing operations
US10417555B2 (en) Data-optimized neural network traversal
US11966583B2 (en) Data pre-processing method and device, and related computer device and storage medium
CN109919311B (zh) 生成指令序列的方法、执行神经网络运算的方法和装置
US20160283111A1 (en) Read operations in memory devices
US11983624B2 (en) Auto generation and tuning tool for convolution kernels
EP3161793B1 (en) Adaptive partition mechanism with arbitrary tile shape for tile based rendering gpu architecture
RU2643499C2 (ru) Управление памятью
US8610737B2 (en) Graphic processing unit (GPU) with configurable filtering module and operation method thereof
CN111465943A (zh) 芯片上计算网络
US20200183833A1 (en) Virtual space memory bandwidth reduction
CN114356248B (zh) 一种数据处理方法和装置
US20230289601A1 (en) Integrated circuit that extracts data, neural network processor including the integrated circuit, and neural network
CN112799599A (zh) 一种数据存储方法、计算核、芯片和电子设备
CN112396085A (zh) 识别图像的方法和设备
CN110390626A (zh) 一种卷积神经网络的图像处理方法及装置
US20200356844A1 (en) Neural network processor for compressing featuremap data and computing system including the same
CN114187465A (zh) 分类模型的训练方法、装置、电子设备及存储介质
JP6332756B2 (ja) データ処理方法、装置、およびシステム
CN113033578B (zh) 基于多尺度特征匹配的图像校准方法、系统、终端及介质
US20220188038A1 (en) Memory access
CN112183725B (zh) 提供神经网络的方法、计算装置和计算机可读存储介质
US20170017410A1 (en) Memory controller
JP2022510963A (ja) 人体向き検出方法、装置、電子機器及びコンピュータ記憶媒体
US8749567B2 (en) Apparatus for and method of processing vertex

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
AD01 Patent right deemed abandoned

Effective date of abandoning: 20240507

AD01 Patent right deemed abandoned