一种图像处理装置以及图像处理方法

文档序号:9506579阅读:318来源:国知局
一种图像处理装置以及图像处理方法
【技术领域】
[0001]本发明实施例涉及计算机技术领域,具体涉及一种图像处理装置以及图像处理方法。
【背景技术】
[0002]近年来深度学习算法在语音和图像识别领域取得了非常成功的应用,卷积神经网络(英文全称:Convolut1nal Neuron Networks,英文缩写:CNN)算法作为深度学习算法的一个特例,在图像识别领域中也取得了巨大的成功。随着CNN算法应用的普及,利用更高效的硬件设备来实现CNN,支持日益增长的应用已成为有着重大商业价值的关键技术。
[0003]现有技术中,可以通过服务器上的图形处理器(英文全称:Graphics ProcessingUnit,英文缩写:GPU)实现CNN算法。GPU将矢量运算并行化执行,大幅度地缩短计算时间。矢量运算强调单一指令并行操作多条相似数据,形成单指令流多数据流的编程泛型。目前利用GPU来训练CNN,可以充分发挥其数以千计计算核心的高效并行计算能力,在使用海量训练数据的场景下,所耗费的时间大幅缩短,占用的服务器也更少。因此GPU已经成为业界在深度学习模型训练方面的首选解决方案。
[0004]相对普通的深度学习算法而言,CNN算法是一个更加特殊的神经网络算法,在CNN算法的具体实施中,其卷积处理占计算的主要部分。虽然通过GPU实现CNN算法具有通用性好,灵活性强的优势,但是在日益普及的应用以及部署设备的规模不断壮大,在处理CNN算法的时候需要更好的能效比,更好的性能和更为经济的解决方案。

【发明内容】

[0005]本发明实施例提供了一种图像处理装置以及图像处理方法,可以使得待处理二维图像只读出一次,处理的效率最高,实现的电路构造简单,从而提升方案在处理CNN算法的能效比和性能。
[0006]有鉴于此,本发明第一方面提供了一种图像处理装置,其特征在于,所述图像处理装置包括:存储器、第一缓存器以及第一运算器;
[0007]所述存储器,用于存储待处理二维图像的数据序列,所述待处理二维图像的数据序列包括多个二维数据点,所述二维数据点表示为X[j] [i] [d],其中,X表示所述待处理二维图像的数据序列,j表示所述二维数据点的行坐标,i表示所述二维数据点的列坐标,d为特征维度坐标,j、i与d均为大于等于0的正整数,当所述j为0且所述i为0时,所述d从0开始递增,直至递增到所述d对应的数据范围,得到第一序列,在所述第一序列的基础上对所述i进行递增,直至递增到所述i对应的数据范围,得到第二序列,在所述第二序列的基础上对所述j进行递增,直至递增到所述j对应的数据范围,得到所述待处理二维图像的数据序列;
[0008]所述第一缓存器,用于从所述待处理二维图像的数据序列中,根据预置规则获取所述待处理二维图像的数据序列中的多个第一数据点;
[0009]所述第一运算器,用于对提取的所述多个第一数据点进行加权以及累加运算,并依次得到第一图像数据处理结果。
[0010]结合第一方面,在第一种可能的实现方式中,
[0011 ] 所述第一缓存器,还用于接收第一可配置窗口的参数,所述参数用于确定所述第一可配置窗口中所提取的所述多个第一数据点的数目以及排列方式。
[0012]结合第一方面第一种可能实现方式,在第二种可能的实现方式中,
[0013]所述第一缓存器,还用于根据所述第一可配置窗口的参数,确定所述第一可配置窗口中的第一行缓存,所述第一行缓存用于确定所述第一可配置窗口中的所述多个第一数据点。
[0014]结合第一方面第二种可能实现方式,在第三种可能的实现方式中,
[0015]所述第一运算器,具体用于将所述第一可配置窗口所提取的所述多个第一数据点,在同一时刻内并行输入至乘加运算阵列,所述乘加运算阵列用于将所述多个第一数据点对应的数据进行加权以及累加。
[0016]结合第一方面第二种可能实现方式,在第四种可能的实现方式中,
[0017]所述第一运算器,具体用于将所述第一可配置窗口所提取的所述多个第一数据点,按照依次延迟一个时间间隔的方式分别输入至乘加运算阵列,所述乘加运算阵列用于将所述多个第一数据点对应的数据进行加权以及累加。
[0018]结合第一方面以及第一方面的第一至第四种可能实现方式中任一项,在第五种可能的实现方式中,所述装置还包括第二缓存器以及第二运算器;
[0019]所述第二缓存器,用于从所述待处理二维图像的数据序列中,根据所述第一图像数据处理结果获取所述待处理二维图像的数据序列中的多个第二数据点;
[0020]所述第二运算器,用于对提取的所述多个第二数据点进行加权以及累加运算,并依次得到第二图像数据处理结果。
[0021]结合第一方面第五种可能实现方式,在第六种可能的实现方式中,
[0022]所述第二缓存器,还用于接收第二可配置窗口的参数,所述参数用于确定所述第二可配置窗口中所提取的所述多个第二数据点的数目以及排列方式;
[0023]所述第二缓存器,还用于配置所述第一可配置窗口与所述第二可配置窗口之间的第二行缓存,所述第二行缓存用于确定所述第一可配置窗口的所述多个第一数据点与所述第二可配置窗口的所述多个第二数据点。
[0024]结合第一方面,在第七种可能的实现方式中,
[0025]所述存储器还用于存储待处理三维内容数据的数据序列,所述待处理三维内容数据的数据序列包括多个三维数据点,所述三维数据点表示为Y[k] [j] [i] [d],其中,Y表示所述待处理三维内容数据的数据序列,k表示所述三维数据点的帧坐标,j表示所述三维数据点的行坐标,i表示所述三维数据点的列坐标,d为特征维度坐标,k、j、i与d均为大于等于0的正整数,当所述j为0,所述i为0且所述k为0时,所述d从0开始递增,直至递增到所述d对应的数据范围,得到第三序列,在所述第三序列的基础上对所述i进行递增,直至递增到所述i对应的数据范围,得到第四序列,在所述第四序列的基础上对所述i进行递增,直至递增到所述i对应的数据范围,得到第五序列,在所述第五序列的基础上对所述k进行递增,直至递增到所述k对应的数据范围,得到所述待处理三维内容数据的数据序列。
[0026]结合第一方面,在第八种可能的实现方式中,
[0027]所述存储器还用于存储待处理一维图像的数据序列,所述待处理一维图像的数据序列包括多个一维数据点,所述一维数据点表示为Z[i] [d],其中,Z表示所述待处理一维图像的数据序列,i表示所述一维数据点的列坐标,d为特征维度坐标,i与d均为大于等于0的正整数,当所述i为0时,所述d从0开始递增,直至递增到所述d对应的数据范围,得到第六序列,在所述第六序列的基础上对所述i进行递增,直至递增到所述i对应的数据范围,得到所述待处理一维图像的数据序列。
[0028]本发明第二方面提供了一种图像处理的方法,其特征在于,包括:
[0029]存储待处理二维图像的数据序列,所述待处理二维图像的数据序列包括多个二维数据点,所述二维数据点表示为X[j][i][d],其中,X表示所述待处理二维图像的数据序列,j表示所述二维数据点的行坐标,i表示所述二维数据点的列坐标,d为特征维度坐标,j、i与d均为大于等于0的正整数,当所述j为0且所述i为0时,所述d从0开始递增,直至递增到所述d对应的数据范围,得到第一序列,在所述第一序列的基础上对所述i进行递增,直至递增到所述i对应的数据范围,得到第二序列,在所述第二序列的基础上对所述j进行递增,直至递增到所述j对应的数据范围,得到所述待处理二维图像的数据序列;
[0030]从所述待处理二维图像的数据序列中,根据预置规则获取所述待处理二维图像的数据序列中的多个第一数据点;
[0031]对提取的所述多个第一数据点进行加权以及累加运算,并依次得到第一图像数据处理结果。
[0032]结合第二方面,在第一种可能的实现方式中,所述从所述数据序列中,根据预置规则获取所述数据序列中的多个第一数据点,包括:
[0033]接收第一可配置窗口的参数,所述参数用于确定所述第一可配置窗口中所提取的所述多个第一数据点的数目以及排列方式。
[0034]结合第二方面第一种可能实现方式,在第二种可能的实现方式中,所述接收第一可配置窗口的参数之后,所述方法还包括:
[0035]根据所述第一可配置窗口的参数,确定所述第一可配置窗口中的第一行缓存,所述第一行缓存用于确定所述第一可配置窗口中的所述多个第一数据点。
[0036]结合第二方面第二种可能实现方式,在第三种可能的实现方式中,所述对提取的所述多个第一数据点进行加权以及累加运算,并依次得到第一图像数据处理结果,包括:
[0037]将所述第一可配置窗口所提取的所述多个第一数据点,在同一时刻内并行输入至乘加运算阵列,所述乘加运算阵列用于将所述多个第一数据点对应的数据进行加权以及累加。
[0038]结合第二方面第二种可能实现方式,在第四种可能的实现方式中,所述对提取的所述多个第一数据点进行加权以及累加运算,并依次得到第一图像数据处理结果,包括:
[0039]将所述第一可配置窗口所提取的所述多个第一数据点,按照依次延迟一个时间间隔的方式分别输入至乘加运算阵列,所述乘加运算阵列用于将所述多个第一数据点对应的数据进行加权以及累加。
[0040]结合第二方面以及第二方面的第一至第四种可能实现方式中任一项,在第五种可能的实现方式中,所述对提取的所述多个第一数据点进行加权以及累加运算,并依次得到第一图像数据处理结果之后,所述方法还包括:
[0041]从所述待处理二维图像的数据序列中,根据所述第一图像数据处理结果获取所述待处理二维图像的数据序列中的多个第二数据点;
[0042]对提取的所述多个第二数据点进行加权以及累加运算,并依次得到第二图像数据处理结果。
[0043]结合第二方面第五种可能实现方式,在第六种可能的实现方式中,所述从所述数据序列中,根据所述第一图像数据处理结果获取所述数据序列中的多个第二数据点,包括:
[0044]接收第二可配置窗口的参数,所述参数用于确定所述第二可配置窗口中所提取的所述多个第二数据点的数目以及排列方式;
[0045]配置所述第一可配置窗口与所述第二可配置窗口之间的第二行缓存,所述第二行缓存用于确定所述第一可配置窗口的所述多个第一数据点与所述第二可配置窗口的所述多个第二数据点。
[0046]结合第二方面,在第七种可能的实现方式中,
[0047]存储待处理三维内容数据的数据序列,所述待处理三维内容数据的数据序列包括多个三维数据点,所述三维数据点表示为Y[k] [j] [i] [d],其中,Y表示所述待处理三维内容数据的数据序列,k表示所述三维数据点的帧坐标,j表示所述三维数据点的行坐标,i表示所述三维数据点的列坐标,d为特征维度坐标,k、j、i与d均为大于等于0的正整数,当所述j为0,所述i为0且所述k为0时,所述d从0开始递增,直至递增到所述d对应的数据范围,得到第三序列,在所述第三序列的基础上对所述i进行递增,直至递增到所述i对应的数据范围,得到第四序列,在所述第四序列的基础上对所述i进行递增,直至递增到所述i对应的数据范围,得到第五序列,在所述第五序列的基础上对所述k进行递增,直至递增到所述k对应的数据范围,得到所述待处理三维内容数据的数据序列。
[0048]结合第二方面,在第八种可能的实现方式中,
[0049]存储待处理一维图像的数据序列,所述待处理一维图像的数据序列包括多个一维数据点,所述一维数据点表示为Z[i][d],其中,Z表示所述待处理一维图像的数据序列,i表示所述一维数据点的列坐标,d为特征维度坐标,i与d均为大于等于0的正整数,当所述i为0时,所述d从0开始递增,直至递增到所述d对应的数据范围,得到第六序列,在所述第六序列的基础上对所述i进行递增,直至递增到所述i对应的数据范围,得到所述待处理一维图像的数据序列。
[0050]从以上技术方案可以看出,本发明实施例具有以下优点:
[0051]本发明实施例中,图像处理装置存储待处理二维图像的数据序列,该数据序列的存放方式为先逐个存放不同特征维度值的二维数据点,然后依次存放不同列的二维数据点,一行全部存放完成后再存放下一行,以此得到待处理二维图像的数据序列,并从中根据预置规则获取多个第一数据点,最后对提取的多个第一数据点进行加权以及累加运算,以此得到第一图像数据处理结果。通过上述的方法进行图像处理,可以使得待处理二维图像只读出一次,处理的效率最高,实现的电路构造简单,从而提升方案在处理CNN算法的能效比和性能。
【附图说明】
[0052]图1为本发明实施例中一种图像处理的CNN模型;
[0053]图2为本发明实施例中图像处理装置的一个结构示意图;
[0054]图3为本发明实施例的一种在单级CNN场景中图像处理装置的硬件架构示意图;
[0055]图4为本发明实施例中在单级CNN场景中第一可配置窗口的示意图;
[0056]图5为本发明实施例中卷积乘加运算中同步并行计算的流程示意图;
[0057]图6为本发明实施例中卷积乘加运算中异步并行计算的流程示意图;
[0058]图7为本发明实施例中图像处理装置的另一个结构示意图;
[0059]图8为本发明实施例的一种在多级CNN场景中图像处理装置的硬件架构示意图;
[0060]图9为本发明实施例中在多级CNN场景中第二可配置窗口的示意图;
[0061]图10为本发明实施例中图像处理方法一个实施例示意图;
[0062]图11是本发明实施例中图像处理装置的另一个结构示意图。
【具体实施方式】
[0063]下面将结合本实施例中的附图,对本实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0064]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三” “第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1