CN107424184A - 一种基于卷积神经网络的图像处理方法、装置及移动终端 - Google Patents
一种基于卷积神经网络的图像处理方法、装置及移动终端 Download PDFInfo
- Publication number
- CN107424184A CN107424184A CN201710288470.6A CN201710288470A CN107424184A CN 107424184 A CN107424184 A CN 107424184A CN 201710288470 A CN201710288470 A CN 201710288470A CN 107424184 A CN107424184 A CN 107424184A
- Authority
- CN
- China
- Prior art keywords
- data
- layer
- value
- data layer
- texture
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- 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/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于卷积神经网络的图像处理方法、装置及移动终端,该方法适于在具有图形程序接口的移动终端中执行,其中,卷积神经网络包括多个处理层和多个数据层,该方法包括:将待处理图片作为第一个数据层输入到卷积神经网络;对每一个数据层,根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值转换成纹理数据;根据特征图尺寸、纹理横向数量和纹理纵向数量,将转换成纹理数据后的多个特征图组合形成对应的大纹理进行存储;对每一个处理层,将与之相连的上一数据层对应的大纹理中的纹理数据转换成第一数据格式,调用图形程序接口对其进行与该处理层对应的渲染处理,以生成下一数据层中的多个特征图。
Description
技术领域
本发明涉及图像处理技术领域,特别涉及一种基于卷积神经网络的图像处理方法、装置及移动终端。
背景技术
随着卷积神经网络(CNN:Convolutional Neural Network)的快速发展,越来越多的图像处理手段,如分类、分割、风格转换、画质改善等,均采用CNN进行训练学习,以取得比传统处理方法更好的效果。然而,CNN在移动终端上的应用仍存在瓶颈,尤其是当CNN达到数百层时,需大量的浮点数乘法运算及大量的CPU内存申请,导致移动终端的计算效率和内存跟不上CNN的发展速度。
现有的在移动终端基于卷积神经网络处理图像的方法,是利用GPU和如OpenGL的图形程序接口来实现浮点运算的。虽然移动终端中使用OpenGL为图像的渲染操作带来了高效的GPU计算效率,在脚本渲染时能快速进行浮点数的计算,但其支持的数据存储却受限,且支持的操作有限。一方面,OpenGL的纹理支持的数据类型为无符号8位整型(uint8),16位或32位浮点(float16,float32)等,但移动终端的GPU参差不齐,只有uint8能够满足大部分移动终端的GPU芯片。另一方面,OpenGL支持的纹理的大小也有限制,相对低端的GPU芯片,纹理的宽和高均限制在2048px的范围。因此,需要一种新的基于卷积神经网络的图像处理方案来优化上述过程。
发明内容
为此,本发明提供一种基于卷积神经网络的图像处理的技术方案,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种基于卷积神经网络的图像处理方法,适于在具有图形程序接口的移动终端中执行,卷积神经网络包括多个处理层和多个数据层,其中每个处理层用于处理与之相连的上一数据层中的多个特征图,以生成下一数据层中的多个特征图,移动终端中存储有各数据层对应于图形程序接口的存储参数,存储参数包括最大像素值和最小像素值、特征图尺寸、纹理横向数量和纹理纵向数量,该方法包括如下步骤:首先,将待处理图片作为第一个数据层输入到卷积神经网络;对每一个数据层,根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值转换成纹理数据,像素的值满足第一数据格式,纹理数据满足第二数据格式;根据特征图尺寸、纹理横向数量和纹理纵向数量,将转换成纹理数据后的多个特征图组合形成对应的大纹理进行存储;对每一个处理层,将与之相连的上一数据层对应的大纹理中的纹理数据转换成第一数据格式,调用图形程序接口对其进行与该处理层对应的渲染处理,以生成下一数据层中的多个特征图。
可选地,在根据本发明的基于卷积神经网络的图像处理方法中,根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值转换成纹理数据的步骤包括:根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值归一化到第二数据格式对应的数值范围内;将归一化后的像素的值拆分成整数部分与小数部分,整数部分为归一化后的像素的值向下取整后的值,小数部分为归一化后的像素的值与整数部分的差值;将整数部分的数据类型转换成第二数据格式,将小数部分归一化到第二数据格式对应的数值范围内,以形成纹理数据。
可选地,在根据本发明的基于卷积神经网络的图像处理方法中,将该数据层的多个特征图中各像素的值归一化到第二数据格式对应的数值范围内的步骤包括:获取第二数据格式对应的数值范围内的最大数值;对该数据层的每一个特征图,将该特征图中各像素的值与该数据层的最小像素值之差作为第一差值,将该数据层的最大像素值与最小像素值之差作为第二差值;
计算第一差值与第二差值的商与最大数值的乘积,将该乘积作为该像素归一化到第二数据格式对应的数值范围内的值。
可选地,在根据本发明的基于卷积神经网络的图像处理方法中,将小数部分归一化到第二数据格式对应的数值范围内的步骤包括:获取第二数据格式对应的数值范围内的最大数值;对小数部分与最大数值的乘积向下取整,以得到小数部分归一化到第二数据格式对应的数值范围内的值。
可选地,在根据本发明的基于卷积神经网络的图像处理方法中,将与处理层相连的上一数据层对应的大纹理中的纹理数据转换成第一数据格式的步骤包括:获取与该处理层相连的上一数据层的最大像素值和最小像素值,以及第二数据格式对应的数值范围内的最大数值;获取纹理数据的整数部分和小数部分,整数部分和小数部分满足第三数据格式;将整数部分与最大数值的乘积向下取整以更新整数部分,并计算更新后的整数部分与小数部分之和与最大数值的商;获取该商与最大像素值与最小像素值之差的乘积,将该乘积与最小像素值之和作为纹理数据转换成第一数据格式后的值。
可选地,在根据本发明的基于卷积神经网络的图像处理方法中,第一数据格式为16位浮点数,第二数据格式为无符号8位整型数,第三数据格式为0.0~1.0范围内的浮点数。
可选地,在根据本发明的基于卷积神经网络的图像处理方法中,还包括预先获取卷积神经网络中各数据层的对应于图形程序接口的存储参数。
可选地,在根据本发明的基于卷积神经网络的图像处理方法中,预先获取卷积神经网络中各数据层的对应于图形程序接口的存储参数的步骤包括:根据预先获取的训练图片集对卷积神经网络进行训练,以分别获取各数据层的特征图中像素的最大值和最小值作为该数据层的最大像素值和最小像素值,像素的值满足第一数据格式;获取各数据层的特征图的特征图尺寸和特征图数量;对每一个数据层,将该数据层的特征图数量与2的商作为转换成纹理数据后的特征图对应的小纹理的数量,小纹理的尺寸与特征图尺寸一致;将小纹理的数量拆分成2个尽可能接近的数值的乘积,将这2个数值分别作为纹理横向数量和纹理纵向数量。
可选地,在根据本发明的基于卷积神经网络的图像处理方法中,训练图片集包括第一图片集和第二图片集,第一图片集包括多张规则且有序的图片,第二图片集包括多张无规则且乱序的图片,根据预先获取的训练图片集对卷积神经网络进行训练,以分别获取各数据层的特征图中像素的最大值和最小值作为该数据层的最大像素值和最小像素值的步骤包括:依次将第一图片集和第二图片集的图片输入到卷积神经网络中进行训练;获取每一张图片训练时卷积神经网络中各数据层的特征图中像素的值;选出各数据层的特征图中像素的最大值和最小值,以分别作为该数据层的最大像素值和最小像素值。
根据本发明的又一个方面,提供一种基于卷积神经网络的图像处理装置,该装置适于驻留在具有图形程序接口的移动终端中,卷积神经网络包括多个处理层和多个数据层,其中每个处理层用于处理与之相连的上一数据层中的多个特征图,以生成下一数据层中的多个特征图,移动终端中存储有各数据层对应于图形程序接口的存储参数,存储参数包括最大像素值和最小像素值、特征图尺寸、纹理横向数量和纹理纵向数量,该装置包括输入模块、第一处理模块、转换模块和第二处理模块。其中,输入模块适于将待处理图片作为第一个数据层输入到卷积神经网络;第一处理模块适于对每一个数据层,根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值转换成纹理数据,像素的值满足第一数据格式,纹理数据满足第二数据格式;转换模块适于根据特征图尺寸、纹理横向数量和纹理纵向数量,将转换成纹理数据后的多个特征图组合形成对应的大纹理进行存储;第二处理模块适于对每一个处理层,将与之相连的上一数据层对应的大纹理中的纹理数据转换成第一数据格式,调用图形程序接口对其进行与该处理层对应的渲染处理,以生成下一数据层中的多个特征图。
可选地,在根据本发明的基于卷积神经网络的图像处理装置中,第一处理模块进一步适于:根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值归一化到第二数据格式对应的数值范围内;将归一化后的像素的值拆分成整数部分与小数部分,整数部分为归一化后的像素的值向下取整后的值,小数部分为归一化后的像素的值与整数部分的差值;将整数部分的数据类型转换成第二数据格式,将小数部分归一化到第二数据格式对应的数值范围内,以形成纹理数据。
可选地,在根据本发明的基于卷积神经网络的图像处理装置中,第一处理模块进一步适于:获取第二数据格式对应的数值范围内的最大数值;对该数据层的每一个特征图,将该特征图中各像素的值与该数据层的最小像素值之差作为第一差值,将该数据层的最大像素值与最小像素值之差作为第二差值;计算第一差值与第二差值的商与最大数值的乘积,将该乘积作为该像素归一化到第二数据格式对应的数值范围内的值。
可选地,在根据本发明的基于卷积神经网络的图像处理装置中,第一处理模块进一步适于:获取第二数据格式对应的数值范围内的最大数值;对小数部分与最大数值的乘积向下取整,以得到小数部分归一化到第二数据格式对应的数值范围内的值。
可选地,在根据本发明的基于卷积神经网络的图像处理装置中,第二处理模块进一步适于:获取与该处理层相连的上一数据层的最大像素值和最小像素值,以及第二数据格式对应的数值范围内的最大数值;获取纹理数据的整数部分和小数部分,整数部分和小数部分满足第三数据格式;将整数部分与最大数值的乘积向下取整以更新整数部分,并计算更新后的整数部分与小数部分之和与最大数值的商;获取该商与最大像素值与最小像素值之差的乘积,将该乘积与最小像素值之和作为纹理数据转换成第一数据格式后的值。
可选地,在根据本发明的基于卷积神经网络的图像处理装置中,第一数据格式为16位浮点数,第二数据格式为无符号8位整型数,第三数据格式为0.0~1.0范围内的浮点数。
可选地,在根据本发明的基于卷积神经网络的图像处理装置中,还包括获取模块,适于预先获取卷积神经网络中各数据层的对应于图形程序接口的存储参数。
可选地,在根据本发明的基于卷积神经网络的图像处理装置中,获取模块进一步适于:根据预先获取的训练图片集对卷积神经网络进行训练,以分别获取各数据层的特征图中像素的最大值和最小值作为该数据层的最大像素值和最小像素值,像素的值满足第一数据格式;获取各数据层的特征图的特征图尺寸和特征图数量;对每一个数据层,将该数据层的特征图数量与2的商作为转换成纹理数据后的特征图对应的小纹理的数量,小纹理的尺寸与特征图尺寸一致;将小纹理的数量拆分成2个尽可能接近的数值的乘积,将这2个数值分别作为纹理横向数量和纹理纵向数量。
可选地,在根据本发明的基于卷积神经网络的图像处理装置中,训练图片集包括第一图片集和第二图片集,第一图片集包括多张规则且有序的图片,第二图片集包括多张无规则且乱序的图片,获取模块进一步适于:依次将第一图片集和第二图片集的图片输入到卷积神经网络中进行训练;获取每一张图片训练时卷积神经网络中各数据层的特征图中像素的值;选出各数据层的特征图中像素的最大值和最小值,以分别作为该数据层的最大像素值和最小像素值。
根据本发明的又一个方面,提供一种移动终端,包括根据本发明的基于卷积神经网络的图像处理装置。
根据本发明的又一个方面,还提供一种移动终端,包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序包括用于执行根据本发明的基于卷积神经网络的图像处理方法的指令。
根据本发明的基于卷积神经网络的图像处理方案,首先将待处理图片作为第一个数据层输入到卷积神经网络中进行图像处理,在处理过程中,对于每一个数据层,根据该数据层的最大像素值和最小像素值,将多个特征图中各像素的值转换成纹理数据,并根据特征图尺寸、纹理横向数量和纹理纵向数量,将转换成纹理数据后的多个特征图组合形成对应的大纹理进行存储,则与该数据层相连的下一处理层即获取上述大纹理,调用图形程序接口对其进行与该处理层对应的渲染处理,以生成与之相连的下一数据层中的多个特征图,而下一数据层则会继续执行将多个特征图组合形成大纹理进行存储的步骤。换言之,对于每一个处理层,相当于输入该处理层的数据是一个大纹理,而从该处理层输出的数据也是一个大纹理,处理层的计算过程则转换为基于图形程序接口的脚本渲染过程。在上述技术方案中,像素的值满足第一数据格式,纹理数据满足第二数据格式,而第一数据格式适于移动终端的GPU芯片执行渲染计算,第二数据格式能够满足大部分GPU芯片的最低存储要求,通过存储和计算时对数据进行格式转换处理,在执行GPU运算时,能够快速读写数据,而不用从CPU读写数据,即处理层的计算环节完全在GPU中完成,无需CPU与GPU的数据来回切换,提高了计算效率。进一步地,对于各数据层,将该数据层转换成纹理数据后的多个特征图进行组合形成对应的大纹理,以提供给与之相连的下一处理层进行处理,而对于各处理层,先将与该处理层相连的上一数据层对应的大纹理中的纹理数据转换成第一数据格式,再对组成大纹理的各小纹理执行分块渲染,不仅无需大量创建纹理,避免在纹理渲染过程中不断绑定和解绑纹理的重复操作,实现卷积神经网络的加速。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的移动终端100的结构框图;
图2示出了根据本发明一个实施例的基于卷积神经网络的图像处理方法200的流程图;
图3示出了根据本发明一个实施例的卷积神经网络的结构示意图;
图4示出了根据本发明一个实施例的卷积神经网络中数据层A1对应的大纹理示意图;
图5示出了本发明一个实施例的基于卷积神经网络的图像处理装置500的示意图;以及
图6示出了本发明又一个实施例的基于卷积神经网络的图像处理装置600的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1是移动终端100的结构框图。移动终端100可以包括存储器接口102、一个或多个数据处理器、图像处理器和/或中央处理单元104,以及外围接口106。
存储器接口102、一个或多个处理器104和/或外围接口106既可以是分立元件,也可以集成在一个或多个集成电路中。在移动终端100中,各种元件可以通过一条或多条通信总线或信号线来耦合。传感器、设备和子系统可以耦合到外围接口106,以便帮助实现多种功能。
例如,运动传感器110、光线传感器112和距离传感器114可以耦合到外围接口106,以方便定向、照明和测距等功能。其他传感器116同样可以与外围接口106相连,例如定位系统(例如GPS接收机)、温度传感器、生物测定传感器或其他感测设备,由此可以帮助实施相关的功能。
相机子系统120和光学传感器122可以用于方便诸如记录照片和视频剪辑的相机功能的实现,其中所述相机子系统和光学传感器例如可以是电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光学传感器。可以通过一个或多个无线通信子系统124来帮助实现通信功能,其中无线通信子系统可以包括射频接收机和发射机和/或光(例如红外)接收机和发射机。无线通信子系统124的特定设计和实施方式可以取决于移动终端100所支持的一个或多个通信网络。例如,移动终端100可以包括被设计成支持LTE、3G、GSM网络、GPRS网络、EDGE网络、Wi-Fi或WiMax网络以及BlueboothTM网络的通信子系统124。
音频子系统126可以与扬声器128以及麦克风130相耦合,以便帮助实施启用语音的功能,例如语音识别、语音复制、数字记录和电话功能。I/O子系统140可以包括触摸屏控制器142和/或一个或多个其他输入控制器144。触摸屏控制器142可以耦合到触摸屏146。举例来说,该触摸屏146和触摸屏控制器142可以使用多种触摸感测技术中的任何一种来检测与之进行的接触和移动或是暂停,其中感测技术包括但不局限于电容性、电阻性、红外和表面声波技术。一个或多个其他输入控制器144可以耦合到其他输入/控制设备148,例如一个或多个按钮、摇杆开关、拇指旋轮、红外端口、USB端口、和/或指示笔之类的指点设备。所述一个或多个按钮(未显示)可以包括用于控制扬声器128和/或麦克风130音量的向上/向下按钮。
存储器接口102可以与存储器150相耦合。该存储器150可以包括高速随机存取存储器和/或非易失性存储器,例如一个或多个磁盘存储设备,一个或多个光学存储设备,和/或闪存存储器(例如NAND,NOR)。存储器150可以存储操作系统172,例如Android、iOS或是Windows Phone之类的操作系统。该操作系统172可以包括用于处理基本系统服务以及执行依赖于硬件的任务的指令。存储器150还可以存储应用174。在移动设备运行时,会从存储器150中加载操作系统172,并且由处理器104执行。应用174在运行时,也会从存储器150中加载,并由处理器104执行。应用174运行在操作系统之上,利用操作系统以及底层硬件提供的接口实现各种用户期望的功能,如即时通信、网页浏览、图片管理等。应用174可以是独立于操作系统提供的,也可以是操作系统自带的。另外,应用174被安装到移动终端100中时,也可以向操作系统添加驱动模块。在上述各种应用174中,其中的一种应用为根据本发明的基于卷积神经网络的图像处理装置500。其中,卷积神经网络包括多个处理层和多个数据层,每个处理层用于处理与之相连的上一数据层中的多个特征图,以生成下一数据层的多个特征图。进一步地,移动终端100具有图形程序接口(图中未示出),例如OpenGL系列,并存储有卷积神经网络中各数据层对应于图形程序接口的存储参数,基于卷积神经网络的图像处理装置500对于每一个数据层,根据存储参数将转换成纹理数据的多个特征图组合形成对应的大纹理,以作为与该数据层相连的下一处理层的输入,调用该图形程序接口对该大纹理执行与该处理层对应的渲染处理。一般情况下,各数据层的存储参数包括最大像素值和最小像素值、特征图尺寸、纹理横向数量和纹理纵向数量,是在预先对卷积神经网络进行训练时获取的,具体的获取方法此处先暂且不表,后面再予以解释说明。
图2示出了根据本发明一个实施例的基于卷积神经网络的图像处理方法200的流程图。基于卷积神经网络的图像处理方法200适于在具有图形程序接口的移动终端100(例如图1所示的移动终端100)中执行。
如图2所示,方法200始于步骤S210。在步骤S210中,将待处理图片作为第一个数据层输入到卷积神经网络。其中,卷积神经网络是已经预先训练好的,所包括的数据层的数量一般比处理层的数量多1个。图3示出了根据本发明一个实施例的卷积神经网络的示意图。如图3所示,该卷积神经网络包括5个数据层A1~A5和4个处理层B1~B4,其中,数据层A1和A5分别对应卷积神经网络的输入数据层和输出数据层,处理层B1~B4用于处理与之相连的上一数据层中的多个特征图,以生成下一数据层中的多个特征图。在该实施方式中,待处理图片为RGBA的4通道彩色图片,尺寸为320px×256px,由于待处理图片的通道数为4,表明每1个通道下的图片对应于1个特征图,即该图片包括4个不同通道,即通道R、G、B和Alpha下,尺寸为320px×256px的特征图,将这4个特征图作为数据层A1输入到上述卷积神经网络以便进行后续图像处理。
随后,进入步骤S220,对每一个数据层,根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值转换成纹理数据,像素的值满足第一数据格式,纹理数据满足第二数据格式。根据本发明的一个实施例,第一数据格式为16位浮点数,第二数据格式为无符号8位整型数。在该实施方式中,数据层A1~A5均具有对应于图形程序接口的存储参数,其中,
图形程序接口选用OpenGL,则存储参数包括最大像素值和最小像素值、特征图尺寸、纹理横向数量和纹理纵向数量,特征图尺寸包括特征图的高和宽。表1示出了该实施方式下卷积神经网络各数据层的存储参数示例,具体如下所示:
表1
根据该实施方式,对于每一个数据层,可以通过以下方式将该数据层的多个特征图中各像素的值转换成纹理数据。首先,根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值归一化到第二数据格式对应的数值范围内。具体来说,先获取第二数据格式对应的数值范围内的最大数值,由于第二数据格式是无符号8位整型数,其对应的数值范围是0~255内的整数,则最大数值为255。对该数据层的每一个特征图,将该特征图中各像素的值与该数据层的最小像素值之差作为第一差值,将该数据层的最大像素值与最小像素值之差作为第二差值。比如对数据层A1而言,共计包括4个特征图,且特征图尺寸为320px×256px,最大像素值为30.50,最小像素值为-20.50。以数据层A1中第1个特征图为例,该特征图中有1个像素P,其值为25.75,则第一差值为25.75-(-20.50)=46.25,第二差值为30.50-(-20.50)=51.00。接下来,计算第一差值与第二差值的商与最大数值的乘积,可得该乘积为46.25/51.00×255=231.25,将这一结果作为该像素归一化到第二数据格式对应的数值范围内的值。基于这一处理,将每个特征图中的各个像素的值,归一化到无符号8位整型数对应的数值范围内。
随后,将上述归一化后的像素的值拆分成整数部分与小数部分,整数部分为归一化后的像素的值向下取整后的值,小数部分为归一化后的像素的值与整数部分的差值。例如对像素P,归一化后的像素的值位231.25,则其对应的整数部分为floor(231.25)=231,floor表示向下取整,小数部分为231.25-231=0.25。最后,将整数部分的数据类型转换成第二数据格式,将小数部分归一化到第二数据格式对应的数值范围内,以形成纹理数据。在实际处理中,由于整数部分的数据类型是第一数据格式,即16位浮点数,第二数据格式为无符号8位整型数,若要将16位浮点数转换为无符号8位整型数,直接进行数据类型的强制转换即可,得到上述整数部分为uint8(231)=231,uint8表示转换为无符号8位整型数。至于将小数部分归一化到第二数据格式对应的数值范围内,则需要先获取第二数据格式对应的数值范围内的最大数值,在该实施方式中,该最大数值为255,再对小数部分与最大数值的乘积向下取整,以得到小数部分归一化到第二数据格式对应的数值范围内的值为floor(255×0.25)=63。至此,一个16位浮点数的像素的值,转换为2个无符号8位整型数的纹理数据231和63来表示。
接下来,在步骤S230中,根据特征图尺寸、纹理横向数量和纹理纵向数量,将转换成纹理数据后的多个特征图组合形成对应的大纹理进行存储。首先,获取该数据层中转换成纹理数据后的多个特征图对应的小纹理,而对OpenGL的数据格式为无符号8位整型数的纹理而言,其最大的特点是可以用4通道来存储数据,特征图中每个像素的值是需要2个无符号8位整型数的纹理数据来存储的,因此纹理的4通道可同时存储2个特征图,则可通过将特征图数量与2的商作为小纹理的数量,以实现以与特征图尺寸相同的小纹理来存储转换成纹理数据后的多个特征图。当然,在特征图数量无法被2整除时,在计算上将特征图数量与2的商向下取整后再加1的值作为小纹理的数量,即当不足4通道时,会凑成4通道存在纹理中,此时基于补全原则,得到的最后1个小纹理中,实际上是存储了转换成纹理数据后的最后1个特征图以及1个数值全为0的特征图。
以数据层A1为例,数据层A1中共计4个特征图,则小纹理的数量为4/2=2,得到了数据层A1中转换成纹理数据后的4个特征图对应的2个小纹理。然后,将得到的小纹理按照纹理横向数量乘以纹理纵向数量的样式进行组合,以形成对应的大纹理进行存储,该大纹理的高为特征图的高与纹理纵向数量的乘积,该大纹理的宽为特征图的宽与纹理横向数量的乘积。由于数据层A1的存储参数中特征图的尺寸为320px×256px,纹理横向数量为2,纹理纵向数量为1,即该大纹理由横向排列的上述2个尺寸为320px×256px的小纹理组成。图4示出了根据本发明一个实施例的卷积神经网络中数据层A1对应的大纹理示意图。如图4所示,大纹理由小纹理A1-1和A1-2组成,小纹理的高为320px,宽为256px,则最终形成的数据层A1对应的大纹理的高为320px×1=320px,宽为256px×2=512px。
在获取到数据层A1对应的大纹理进行存储后,开始进入步骤S240,对每一个处理层,将与之相连的上一数据层对应的大纹理中的纹理数据转换成第一数据格式,调用图形程序接口对其进行与该处理层对应的渲染处理,以生成下一数据层中的多个特征图。需要说明的是,实际在执行基于卷积神经网络的图像处理方法200时,在待处理图片输入到卷积神经网络后,步骤S220、S230对数据层,和步骤S240中处理层的具体操作是交替进行直至执行到卷积神经网络的最后一层。例如对图3所示的卷积神经网络而言,数据层A1~A5与处理层B1~B4相互穿插排列,对数据层A1~A5均要执行步骤S220中纹理数据转换、步骤S230中形成大纹理的操作,而处理层B1~B4则是要执行步骤S240中通过OpenGL进行纹理渲染的处理,按照上述排列顺序执行相应步骤的过程即是步骤S220、S230对数据层与步骤S240于处理层的操作交替执行,直至获得数据层A5对应的大纹理为止。为便于描述,这里仅对处理层B1执行步骤S240中的具体操作进行说明,其他处理层则不予以赘述。
具体地,在根据本发明的一个实施例中,可以通过以下方式来将与处理层相连的上一数据层对应的大纹理中的纹理数据转换成第一数据格式。首先,获取与该处理层相连的上一数据层的最大像素值和最小像素值,以及第二数据格式对应的数值范围内的最大数值。以处理层B1为例,与处理层B1相连的上一数据层为数据层A1,数据层A1的最大像素值为30.50,最小像素值为-20.50,第二数据格式为无符号8位整型数,其对应的数值范围是0~255,则该数值范围内的最大数值为255。进而,获取纹理数据的整数部分和小数部分,整数部分和小数部分满足第三数据格式,在该实施方式中第三数据格式为0.0~1.0范围内的浮点数。
值得注意的是,在脚本渲染过程中,OpenGL会自动将0~255范围内的无符号8位整型数的纹理数据归一化为0.0~1.0的浮点数,即原本0.0~255.0范围内的16位浮点数在脚本渲染中,直接转换为2个0.0~1.0范围内的浮点数表示,因此可以直接得到纹理数据中满足第三数据格式的整数部分与小数部分。比如对像素P而言,在第三数据格式的约束下,获得其对应的纹理数据的整数部分为0.906,小数部分为0.247。然后,将整数部分与最大数值的乘积向下取整以更新整数部分,得出更新后的整数部分为floor(0.906×255)=231,计算更新后的整数部分与小数部分之和与最大数值的商,则得到该商为(231+0.247)/255=0.907。最后,获取该商与最大像素值与最小像素值之差的乘积为0.907×(30.50-(-20.50))=46.25,计算该乘积与最小像素之和为46.25+(-20.50)=25.75,将该乘积与最小像素之和25.75作为纹理数据转换成第一数据格式后的值。需要说明的是,考虑到数据的计算精度和整体运算过程,以上提供的数值与实际计算过程中可能略有出入。此时,与处理层B1相连的上一数据层A1对于的大纹理中的纹理数据已经转换成16位浮点数的第一数据格式,则调用图形程序接口对其进行与该处理层对应的渲染处理,以生成下一数据层中的多个特征图。
根据基于卷积神经网络的图像处理方法200对待处理图片进行图像处理后,最终得到该卷积神经网络输出的图片实则为一个大纹理,且是存储于GPU内的,若需要从该大纹理中读取输出结果到CPU中,则需要将输出结果中的纹理数据从第二数据格式转换成第一数据格式,即从无符号8位整型数转换为16位浮点数,以便CPU可以进行处理。具体而言,首先要获取最后一个数据层的最大像素值和最小像素值,以及第二数据格式对应的数值范围内的最大数值,并获取该纹理数据的整数部分和小数部分,整数部分和小数部分满足第二数据格式;其次,计算小数部分与最大数值的商以更新小数部分,并获取整数部分与更新后的小数部分之和与所述最大数值的商;最后,计算该商与最大像素值与最小像素值之差的乘积,将该乘积与最小像素值之和作为纹理数据转换成第一数据格式后的值。
此外,在以上基于卷积神经网络的图像处理过程中,卷积神经网络中各数据层的对应于图形程序接口的存储参数需要预先获取,根据本发明的一个实施例,可以利用下列方法来预先获取存储参数。在该实施方式中,首先根据预先获取的训练图片集对卷积神经网络进行训练,以分别获取各数据层的特征图中像素的最大值和最小值作为该数据层的最大像素值和最小像素值,像素的值满足第一数据格式。其中,训练图片集包括第一图片集和第二图片集,第一图片集包括多张规则且有序的图片,第二图片集包括多张无规则且乱序的图片,第一图片集和第二图片集中图片数量均不少于3000张。在上述训练过程中,依次将第一图片集和第二图片集的图片输入到卷积神经网络中进行训练,获取每一张图片训练时该卷积神经网络中各数据层的特征图中像素的值,并选出各数据层的特征图中像素的最大值和最小值,以分别作为该数据层的最大像素值和最小像素值。对如图3所示的卷积神经网络来说,最终得到数据层A1~A5的最大像素值依次为30.50、135.67、126.65、89.55和56.87,最小像素值依次为-20.50、-120.50、-107.85、-78.36和-40.23。同时,在卷积神经网络进行训练时,获取各数据层的特征图的特征图尺寸和特征图数量,表2示出了该实施方式下各数据层的特征图尺寸和特征图数量的存储示例,具体如下所示:
数据层 | 特征图尺寸(高px×宽px) | 特征图数量 |
A1 | 320px×256px | 4 |
A2 | 80px×64px | 11 |
A3 | 80px×64px | 12 |
A4 | 78px×62px | 4 |
A5 | 78px×62px | 2 |
表2
然后,对每一个数据层,将该数据层的特征图数量与2的商作为转换成纹理数据后的特征图对应的小纹理的数量,小纹理的尺寸与特征图尺寸一致。数据层A1~A5中特征图的数量依次为4、11、12、8和4,很明显数据层A2的特征图数量11是无法被2整除的,则计算11与2的商向下取整后再加1的值作为小纹理的数量,即小纹理的数量为floor(11/2)+1=6,floor表示向下取整,最终得到数据层A1~A5对应的小纹理的数量分别为2、6、6、2和1。最后,将小纹理的数量拆分成2个尽可能接近的数值的乘积,将这2个数值分别作为纹理横向数量和纹理纵向数量。数据层A5的小纹理数量为1,将1拆分成1×1,则数据层A5的纹理横向数量和纹理纵向数量均为1,数据层A1和A4的小纹理数量均为2,将2拆分成1×2,则数据层A1和A4的纹理横向数量为2,纹理纵向数量为1,数据层A2和A3的小纹理数量均为6,将6拆分成2×3,则数据层A2和A3的纹理横向数量为3,纹理纵向数量为2。至此,获取到了所有数据层的存储参数,将其全部存储至移动终端100中,关于各数据层的存储参数示例,具体可参见上文中的表1。
图5示出了本发明一个实施例的基于卷积神经网络的图像处理装置500的示意图。如图5所示,基于卷积神经网络的图像处理装置500包括输入模块510、第一处理模块520、转换模块630和第二处理模块540。
输入模块510适于将待处理图片作为第一个数据层输入到卷积神经网络。其中,卷积神经网络包括多个处理层和多个数据层,每个处理层用于处理与之相连的上一数据层中的多个特征图,以生成下一数据层中的多个特征图,每个数据层具有对应于图形程序接口的存储参数,存储参数包括最大像素值和最小像素值、特征图尺寸、纹理横向数量和纹理纵向数量。
第一处理模块520与输入模块510相连,适于对每一个数据层,根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值转换成纹理数据,像素的值满足第一数据格式,纹理数据满足第二数据格式。其中,第一数据格式为16位浮点数,第二数据格式为无符号8位整型数。第一处理模块520进一步适于根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值归一化到第二数据格式对应的数值范围内;将归一化后的像素的值拆分成整数部分与小数部分,整数部分为归一化后的像素的值向下取整后的值,小数部分为归一化后的像素的值与整数部分的差值;将整数部分的数据类型转换成第二数据格式,将小数部分归一化到第二数据格式对应的数值范围内,以形成纹理数据。第一处理模块520进一步适于获取第二数据格式对应的数值范围内的最大数值;对该数据层的每一个特征图,将该特征图中各像素的值与该数据层的最小像素值之差作为第一差值,将该数据层的最大像素值与最小像素值之差作为第二差值;计算第一差值与第二差值的商与最大数值的乘积,将该乘积作为该像素归一化到第二数据格式对应的数值范围内的值。第一处理模块520进一步适于获取第二数据格式对应的数值范围内的最大数值;对小数部分与最大数值的乘积向下取整,以得到小数部分归一化到第二数据格式对应的数值范围内的值。
转换模块530与第一处理模块520相连,适于根据特征图尺寸、纹理横向数量和纹理纵向数量,将转换成纹理数据后的多个特征图组合形成对应的大纹理进行存储。
第二处理模块540与转换模块530相连,适于对每一个处理层,将与之相连的上一数据层对应的大纹理中的纹理数据转换成第一数据格式,调用图形程序接口对其进行与该处理层对应的渲染处理,以生成下一数据层中的多个特征图。第二处理模块540进一步适于获取与该处理层相连的上一数据层的最大像素值和最小像素值,以及第二数据格式对应的数值范围内的最大数值;获取纹理数据的整数部分和小数部分,整数部分和小数部分满足第三数据格式;将整数部分与最大数值的乘积向下取整以更新整数部分,并计算更新后的整数部分与小数部分之和与最大数值的商;获取该商与最大像素值与最小像素值之差的乘积,将该乘积与最小像素值之和作为纹理数据转换成第一数据格式后的值。其中,第三数据格式为0.0~1.0范围内的浮点数。
图6示出了本发明又一个实施例的基于卷积神经网络的图像处理装置600的示意图。如图6所示,基于卷积神经网络的图像处理装置600的输入模块610、第一处理模块620、转换模块630和第二处理模块640,分别与图5中基于卷积神经网络的图像处理装置500的输入模块510、第一处理模块520、转换模块530和第二处理模块540一一对应,是一致的,并新增了分别与第一处理模块620、转换模块630和第二处理模块640相连的获取模块650。
获取模块650适于预先获取卷积神经网络中各数据层的对应于图形程序接口的存储参数数。获取模块650进一步适于根据预先获取的训练图片集对卷积神经网络进行训练,以分别获取各数据层的特征图中像素的最大值和最小值作为该数据层的最大像素值和最小像素值,像素的值满足第一数据格式;获取各数据层的特征图的特征图尺寸和特征图数量;对每一个数据层,将该数据层的特征图数量与2的商作为转换成纹理数据后的特征图对应的小纹理的数量,小纹理的尺寸与特征图尺寸一致;将小纹理的数量拆分成2个尽可能接近的数值的乘积,将这2个数值分别作为纹理横向数量和纹理纵向数量。其中,训练图片集包括第一图片集和第二图片集,第一图片集包括多张规则且有序的图片,第二图片集包括多张无规则且乱序的图片,获取模块650进一步适于依次将第一图片集和第二图片集的图片输入到卷积神经网络中进行训练;获取每一张图片训练时卷积神经网络中各数据层的特征图中像素的值;选出各数据层的特征图中像素的最大值和最小值,以分别作为该数据层的最大像素值和最小像素值。
关于基于卷积神经网络的图像处理的具体步骤以及实施例,在基于图2~4的描述中已经详细公开,此处不再赘述。
现有的在移动终端基于卷积神经网络处理图像的方法,是利用GPU和如OpenGL的图形程序接口来实现浮点运算的。虽然移动终端中使用OpenGL为图像的渲染操作带来了高效的GPU计算效率,在脚本渲染时能快速进行浮点数的计算,但其支持的数据存储却受限,且支持的操作有限。根据本发明实施例的基于卷积神经网络的图像处理方案,首先将待处理图片作为第一个数据层输入到卷积神经网络中进行图像处理,在处理过程中,对于每一个数据层,根据该数据层的最大像素值和最小像素值,将多个特征图中各像素的值转换成纹理数据,并根据特征图尺寸、纹理横向数量和纹理纵向数量,将转换成纹理数据后的多个特征图组合形成对应的大纹理进行存储,则与该数据层相连的下一处理层即获取上述大纹理,调用图形程序接口对其进行与该处理层对应的渲染处理,以生成与之相连的下一数据层中的多个特征图,而下一数据层则会继续执行将多个特征图组合形成大纹理进行存储的步骤。换言之,对于每一个处理层,相当于输入该处理层的数据是一个大纹理,而从该处理层输出的数据也是一个大纹理,处理层的计算过程则转换为基于图形程序接口的脚本渲染过程。在上述技术方案中,像素的值满足第一数据格式,纹理数据满足第二数据格式,而第一数据格式适于移动终端的GPU芯片执行渲染计算,第二数据格式能够满足大部分GPU芯片的最低存储要求,通过存储和计算时对数据进行格式转换处理,在执行GPU运算时,能够快速读写数据,而不用从CPU读写数据,即处理层的计算环节完全在GPU中完成,无需CPU与GPU的数据来回切换,提高了计算效率。进一步地,对于各数据层,将该数据层转换成纹理数据后的多个特征图进行组合形成对应的大纹理,以提供给与之相连的下一处理层进行处理,而对于各处理层,先将与该处理层相连的上一数据层对应的大纹理中的纹理数据转换成第一数据格式,再对组成大纹理的各小纹理执行分块渲染,不仅无需大量创建纹理,避免在纹理渲染过程中不断绑定和解绑纹理的重复操作,实现卷积神经网络的加速。
A8.如A7所述的方法,所述预先获取所述卷积神经网络中各数据层的对应于所述图形程序接口的存储参数的步骤包括:
根据预先获取的训练图片集对所述卷积神经网络进行训练,以分别获取各数据层的特征图中像素的最大值和最小值作为该数据层的最大像素值和最小像素值,所述像素的值满足第一数据格式;
获取各数据层的特征图的特征图尺寸和特征图数量;
对每一个数据层,将该数据层的特征图数量与2的商作为转换成纹理数据后的特征图对应的小纹理的数量,所述小纹理的尺寸与特征图尺寸一致;
将所述小纹理的数量拆分成2个尽可能接近的数值的乘积,将这2个数值分别作为纹理横向数量和纹理纵向数量。
A9.如A8所述的方法,所述训练图片集包括第一图片集和第二图片集,所述第一图片集包括多张规则且有序的图片,所述第二图片集包括多张无规则且乱序的图片,所述根据预先获取的训练图片集对所述卷积神经网络进行训练,以分别获取各数据层的特征图中像素的最大值和最小值作为该数据层的最大像素值和最小像素值的步骤包括:
依次将第一图片集和第二图片集的图片输入到所述卷积神经网络中进行训练;
获取每一张图片训练时所述卷积神经网络中各数据层的特征图中像素的值;
选出各数据层的特征图中像素的最大值和最小值,以分别作为该数据层的最大像素值和最小像素值。
B11.如B10所述的装置,所述第一处理模块进一步适于:
根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值归一化到第二数据格式对应的数值范围内;
将归一化后的像素的值拆分成整数部分与小数部分,所述整数部分为归一化后的像素的值向下取整后的值,所述小数部分为归一化后的像素的值与所述整数部分的差值;
将所述整数部分的数据类型转换成第二数据格式,将所述小数部分归一化到第二数据格式对应的数值范围内,以形成纹理数据。
B12.如B11所述的装置,所述第一处理模块进一步适于:
获取第二数据格式对应的数值范围内的最大数值;
对该数据层的每一个特征图,将该特征图中各像素的值与该数据层的最小像素值之差作为第一差值,将该数据层的最大像素值与最小像素值之差作为第二差值;
计算所述第一差值与第二差值的商与所述最大数值的乘积,将该乘积作为该像素归一化到第二数据格式对应的数值范围内的值。
B13.如B11或12所述的装置,所述第一处理模块进一步适于:
获取第二数据格式对应的数值范围内的最大数值;
对所述小数部分与所述最大数值的乘积向下取整,以得到小数部分归一化到第二数据格式对应的数值范围内的值。
B14.如B10-13中任一项所述的装置,所述第二处理模块进一步适于:
获取与该处理层相连的上一数据层的最大像素值和最小像素值,以及第二数据格式对应的数值范围内的最大数值;
获取所述纹理数据的整数部分和小数部分,所述整数部分和小数部分满足第三数据格式;
将所述整数部分与所述最大数值的乘积向下取整以更新所述整数部分,并计算更新后的整数部分与小数部分之和与所述最大数值的商;
获取该商与所述最大像素值与最小像素值之差的乘积,将该乘积与所述最小像素值之和作为纹理数据转换成第一数据格式后的值。
B15.如B10-14中任一项所述的装置,所述第一数据格式为16位浮点数,所述第二数据格式为无符号8位整型数,所述第三数据格式为0.0~1.0范围内的浮点数。
B16.如B10-15中任一项所述的装置,还包括获取模块,适于预先获取所述卷积神经网络中各数据层的对应于所述图形程序接口的存储参数。
B17.如B16所述的装置,所述获取模块进一步适于:
根据预先获取的训练图片集对所述卷积神经网络进行训练,以分别获取各数据层的特征图中像素的最大值和最小值作为该数据层的最大像素值和最小像素值,所述像素的值满足第一数据格式;
获取各数据层的特征图的特征图尺寸和特征图数量;
对每一个数据层,将该数据层的特征图数量与2的商作为转换成纹理数据后的特征图对应的小纹理的数量,所述小纹理的尺寸与特征图尺寸一致;
将所述小纹理的数量拆分成2个尽可能接近的数值的乘积,将这2个数值分别作为纹理横向数量和纹理纵向数量。
B18.如B17所述的装置,所述训练图片集包括第一图片集和第二图片集,所述第一图片集包括多张规则且有序的图片,所述第二图片集包括多张无规则且乱序的图片,所述获取模块进一步适于:
依次将第一图片集和第二图片集的图片输入到所述卷积神经网络中进行训练;
获取每一张图片训练时所述卷积神经网络中各数据层的特征图中像素的值;
选出各数据层的特征图中像素的最大值和最小值,以分别作为该数据层的最大像素值和最小像素值。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组间可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组间组合成一个模块或单元或组间,以及此外可以把它们分成多个子模块或子单元或子组间。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的基于卷积神经网络的图像处理方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
Claims (10)
1.一种基于卷积神经网络的图像处理方法,适于在具有图形程序接口的移动终端中执行,所述卷积神经网络包括多个处理层和多个数据层,其中每个处理层用于处理与之相连的上一数据层中的多个特征图,以生成下一数据层中的多个特征图,所述移动终端中存储有各数据层对应于图形程序接口的存储参数,所述存储参数包括最大像素值和最小像素值、特征图尺寸、纹理横向数量和纹理纵向数量,所述方法包括:
将待处理图片作为第一个数据层输入到所述卷积神经网络;
对每一个数据层,根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值转换成纹理数据,所述像素的值满足第一数据格式,所述纹理数据满足第二数据格式;
根据所述特征图尺寸、纹理横向数量和纹理纵向数量,将转换成纹理数据后的多个特征图组合形成对应的大纹理进行存储;
对每一个处理层,将与之相连的上一数据层对应的大纹理中的纹理数据转换成第一数据格式,调用所述图形程序接口对其进行与该处理层对应的渲染处理,以生成下一数据层中的多个特征图。
2.如权利要求1所述的方法,所述根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值转换成纹理数据的步骤包括:
根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值归一化到第二数据格式对应的数值范围内;
将归一化后的像素的值拆分成整数部分与小数部分,所述整数部分为归一化后的像素的值向下取整后的值,所述小数部分为归一化后的像素的值与所述整数部分的差值;
将所述整数部分的数据类型转换成第二数据格式,将所述小数部分归一化到第二数据格式对应的数值范围内,以形成纹理数据。
3.如权利要求2所述的方法,所述将该数据层的多个特征图中各像素的值归一化到第二数据格式对应的数值范围内的步骤包括:
获取第二数据格式对应的数值范围内的最大数值;
对该数据层的每一个特征图,将该特征图中各像素的值与该数据层的最小像素值之差作为第一差值,将该数据层的最大像素值与最小像素值之差作为第二差值;
计算所述第一差值与第二差值的商与所述最大数值的乘积,将该乘积作为该像素归一化到第二数据格式对应的数值范围内的值。
4.如权利要求2或3所述的方法,所述将所述小数部分归一化到第二数据格式对应的数值范围内的步骤包括:
获取第二数据格式对应的数值范围内的最大数值;
对所述小数部分与所述最大数值的乘积向下取整,以得到小数部分归一化到第二数据格式对应的数值范围内的值。
5.如权利要求1-5中任一项所述的方法,所述将与处理层相连的上一数据层对应的大纹理中的纹理数据转换成第一数据格式的步骤包括:
获取与该处理层相连的上一数据层的最大像素值和最小像素值,以及第二数据格式对应的数值范围内的最大数值;
获取所述纹理数据的整数部分和小数部分,所述整数部分和小数部分满足第三数据格式;
将所述整数部分与所述最大数值的乘积向下取整以更新所述整数部分,并计算更新后的整数部分与小数部分之和与所述最大数值的商;
获取该商与所述最大像素值与最小像素值之差的乘积,将该乘积与所述最小像素值之和作为纹理数据转换成第一数据格式后的值。
6.如权利要求1-5中任一项所述的方法,所述第一数据格式为16位浮点数,所述第二数据格式为无符号8位整型数,所述第三数据格式为0.0~1.0范围内的浮点数。
7.如权利要求1-6中任一项所述的方法,还包括预先获取所述卷积神经网络中各数据层的对应于所述图形程序接口的存储参数。
8.一种基于卷积神经网络的图像处理装置,适于驻留在具有图形程序接口的移动终端中,所述卷积神经网络包括多个处理层和多个数据层,其中每个处理层用于处理与之相连的上一数据层中的多个特征图,以生成下一数据层中的多个特征图,所述移动终端中存储有各数据层对应于图形程序接口的存储参数,所述存储参数包括最大像素值和最小像素值、特征图尺寸、纹理横向数量和纹理纵向数量,所述装置包括:
输入模块,适于将待处理图片作为第一个数据层输入到所述卷积神经网络;
第一处理模块,适于对每一个数据层,根据该数据层的最大像素值和最小像素值,将该数据层的多个特征图中各像素的值转换成纹理数据,所述像素的值满足第一数据格式,所述纹理数据满足第二数据格式;
转换模块,适于根据所述特征图尺寸、纹理横向数量和纹理纵向数量,将转换成纹理数据后的多个特征图组合形成对应的大纹理进行存储;
第二处理模块,适于对每一个处理层,将与之相连的上一数据层对应的大纹理中的纹理数据转换成第一数据格式,调用所述图形程序接口对其进行与该处理层对应的渲染处理,以生成下一数据层中的多个特征图。
9.一种移动终端,包括如权利要求9所述的基于卷积神经网络的图像处理装置。
10.一种移动终端,包括:
一个或多个处理器;
存储器;以及
一个或多个程序,其中所述一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求1至7所述的方法中的任一方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710288470.6A CN107424184B (zh) | 2017-04-27 | 2017-04-27 | 一种基于卷积神经网络的图像处理方法、装置及移动终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710288470.6A CN107424184B (zh) | 2017-04-27 | 2017-04-27 | 一种基于卷积神经网络的图像处理方法、装置及移动终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107424184A true CN107424184A (zh) | 2017-12-01 |
CN107424184B CN107424184B (zh) | 2019-10-11 |
Family
ID=60425624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710288470.6A Active CN107424184B (zh) | 2017-04-27 | 2017-04-27 | 一种基于卷积神经网络的图像处理方法、装置及移动终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107424184B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019144608A1 (zh) * | 2018-01-26 | 2019-08-01 | 京东方科技集团股份有限公司 | 图像处理方法、处理装置以及处理设备 |
CN110175949A (zh) * | 2018-06-11 | 2019-08-27 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、系统、存储介质和计算机设备 |
CN110264412A (zh) * | 2019-05-16 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 图像处理方法、装置、终端设备以及存储介质 |
WO2019184888A1 (zh) * | 2018-03-28 | 2019-10-03 | 华为技术有限公司 | 一种基于卷积神经网络的图像处理的方法和装置 |
WO2019228456A1 (zh) * | 2018-05-31 | 2019-12-05 | 杭州海康威视数字技术股份有限公司 | 一种图像处理方法、装置、设备及机器可读存储介质 |
CN110557584A (zh) * | 2018-05-31 | 2019-12-10 | 杭州海康威视数字技术股份有限公司 | 图像处理方法及装置、计算机可读存储介质 |
CN112241670A (zh) * | 2019-07-18 | 2021-01-19 | 杭州海康威视数字技术股份有限公司 | 图像处理方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105160313A (zh) * | 2014-09-15 | 2015-12-16 | 中国科学院重庆绿色智能技术研究院 | 视频监控中人群行为分析的方法及装置 |
CN105389596A (zh) * | 2015-12-21 | 2016-03-09 | 长沙网动网络科技有限公司 | 卷积神经网络适用于识别多种尺寸图片的方法 |
CN105740892A (zh) * | 2016-01-27 | 2016-07-06 | 北京工业大学 | 一种高准确率的基于卷积神经网络的人体多部位识别方法 |
CN106157356A (zh) * | 2016-07-05 | 2016-11-23 | 北京邮电大学 | 一种图像处理方法及装置 |
US20160342888A1 (en) * | 2015-05-20 | 2016-11-24 | Nec Laboratories America, Inc. | Memory efficiency for convolutional neural networks operating on graphics processing units |
CN106250911A (zh) * | 2016-07-20 | 2016-12-21 | 南京邮电大学 | 一种基于卷积神经网络的图片分类方法 |
CN106250812A (zh) * | 2016-07-15 | 2016-12-21 | 汤平 | 一种基于快速r‑cnn深度神经网络的车型识别方法 |
US20170024849A1 (en) * | 2015-07-23 | 2017-01-26 | Sony Corporation | Learning convolution neural networks on heterogeneous cpu-gpu platform |
CN106529447A (zh) * | 2016-11-03 | 2017-03-22 | 河北工业大学 | 一种小样本人脸识别方法 |
-
2017
- 2017-04-27 CN CN201710288470.6A patent/CN107424184B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105160313A (zh) * | 2014-09-15 | 2015-12-16 | 中国科学院重庆绿色智能技术研究院 | 视频监控中人群行为分析的方法及装置 |
US20160342888A1 (en) * | 2015-05-20 | 2016-11-24 | Nec Laboratories America, Inc. | Memory efficiency for convolutional neural networks operating on graphics processing units |
US20170024849A1 (en) * | 2015-07-23 | 2017-01-26 | Sony Corporation | Learning convolution neural networks on heterogeneous cpu-gpu platform |
CN105389596A (zh) * | 2015-12-21 | 2016-03-09 | 长沙网动网络科技有限公司 | 卷积神经网络适用于识别多种尺寸图片的方法 |
CN105740892A (zh) * | 2016-01-27 | 2016-07-06 | 北京工业大学 | 一种高准确率的基于卷积神经网络的人体多部位识别方法 |
CN106157356A (zh) * | 2016-07-05 | 2016-11-23 | 北京邮电大学 | 一种图像处理方法及装置 |
CN106250812A (zh) * | 2016-07-15 | 2016-12-21 | 汤平 | 一种基于快速r‑cnn深度神经网络的车型识别方法 |
CN106250911A (zh) * | 2016-07-20 | 2016-12-21 | 南京邮电大学 | 一种基于卷积神经网络的图片分类方法 |
CN106529447A (zh) * | 2016-11-03 | 2017-03-22 | 河北工业大学 | 一种小样本人脸识别方法 |
Non-Patent Citations (3)
Title |
---|
LU X 等: "Rating Image Aesthetics Using Deep Learning", 《IEEE TRANSACTIONS ON MULTIMEDIA》 * |
王伟凝 等: "基于并行深度卷积神经网络的图像美感分类", 《自动化学报》 * |
肖进胜 等: "改进的基于卷积神经网络的图像超分辨率算法", 《光学学报》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019144608A1 (zh) * | 2018-01-26 | 2019-08-01 | 京东方科技集团股份有限公司 | 图像处理方法、处理装置以及处理设备 |
US11281938B2 (en) | 2018-01-26 | 2022-03-22 | Boe Technology Group Co., Ltd. | Image processing method, processing apparatus and processing device |
WO2019184888A1 (zh) * | 2018-03-28 | 2019-10-03 | 华为技术有限公司 | 一种基于卷积神经网络的图像处理的方法和装置 |
WO2019228456A1 (zh) * | 2018-05-31 | 2019-12-05 | 杭州海康威视数字技术股份有限公司 | 一种图像处理方法、装置、设备及机器可读存储介质 |
CN110557584A (zh) * | 2018-05-31 | 2019-12-10 | 杭州海康威视数字技术股份有限公司 | 图像处理方法及装置、计算机可读存储介质 |
CN110555808A (zh) * | 2018-05-31 | 2019-12-10 | 杭州海康威视数字技术股份有限公司 | 一种图像处理方法、装置、设备及机器可读存储介质 |
CN110557584B (zh) * | 2018-05-31 | 2022-04-26 | 杭州海康威视数字技术股份有限公司 | 图像处理方法及装置、计算机可读存储介质 |
CN110555808B (zh) * | 2018-05-31 | 2022-05-31 | 杭州海康威视数字技术股份有限公司 | 一种图像处理方法、装置、设备及机器可读存储介质 |
CN110175949A (zh) * | 2018-06-11 | 2019-08-27 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、系统、存储介质和计算机设备 |
CN110264412A (zh) * | 2019-05-16 | 2019-09-20 | 北京奇艺世纪科技有限公司 | 图像处理方法、装置、终端设备以及存储介质 |
CN110264412B (zh) * | 2019-05-16 | 2021-05-25 | 北京奇艺世纪科技有限公司 | 图像处理方法、装置、终端设备以及存储介质 |
CN112241670A (zh) * | 2019-07-18 | 2021-01-19 | 杭州海康威视数字技术股份有限公司 | 图像处理方法及装置 |
CN112241670B (zh) * | 2019-07-18 | 2024-03-01 | 杭州海康威视数字技术股份有限公司 | 图像处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107424184B (zh) | 2019-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107424184B (zh) | 一种基于卷积神经网络的图像处理方法、装置及移动终端 | |
CN107145902B (zh) | 一种基于卷积神经网络的图像处理方法、装置及移动终端 | |
US20230076850A1 (en) | Computation of neural network node with large input values | |
CN109360154A (zh) | 一种卷积神经网络生成方法及图像的超分辨率方法 | |
US20240062054A1 (en) | Storage of input values across multiple cores of neural network inference circuit | |
CN107948529A (zh) | 图像处理方法及装置 | |
CN108269280A (zh) | 一种深度图像的处理方法及移动终端 | |
CN109978764A (zh) | 一种图像处理方法及计算设备 | |
CN108197602A (zh) | 一种卷积神经网络生成方法及表情识别方法 | |
JP7096888B2 (ja) | ネットワークモジュール、割り当て方法及び装置、電子機器並びに記憶媒体 | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
CN110458294A (zh) | 模型运行方法、装置、终端及存储介质 | |
CN107909537A (zh) | 一种基于卷积神经网络的图像处理方法及移动终端 | |
CN109754359A (zh) | 一种应用于卷积神经网络的池化处理的方法及系统 | |
CN105447820B (zh) | 一种图片处理方法、装置和移动终端 | |
CN108885596A (zh) | 数据处理方法、设备、dma控制器及计算机可读存储介质 | |
CN111695682B (zh) | 数据处理方法及装置 | |
CN109118490A (zh) | 一种图像分割网络生成方法及图像分割方法 | |
CN107909016A (zh) | 一种卷积神经网络生成方法及车系识别方法 | |
CN107808394A (zh) | 一种基于卷积神经网络的图像处理方法及移动终端 | |
CN113673701A (zh) | 神经网络模型的运行方法、可读介质和电子设备 | |
CN110991627A (zh) | 信息处理装置、信息处理方法 | |
US11568227B1 (en) | Neural network inference circuit read controller with multiple operational modes | |
JP7352684B2 (ja) | フィルタ処理装置およびその制御方法 | |
US20220188961A1 (en) | Data processing method and sensor device for performing the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |