CN114358136A - 一种图像数据处理方法、装置、智能终端及存储介质 - Google Patents

一种图像数据处理方法、装置、智能终端及存储介质 Download PDF

Info

Publication number
CN114358136A
CN114358136A CN202111507460.XA CN202111507460A CN114358136A CN 114358136 A CN114358136 A CN 114358136A CN 202111507460 A CN202111507460 A CN 202111507460A CN 114358136 A CN114358136 A CN 114358136A
Authority
CN
China
Prior art keywords
target
image data
deep learning
data
processing
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
Application number
CN202111507460.XA
Other languages
English (en)
Other versions
CN114358136B (zh
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.)
Peng Cheng Laboratory
Original Assignee
Peng Cheng Laboratory
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 Peng Cheng Laboratory filed Critical Peng Cheng Laboratory
Priority to CN202111507460.XA priority Critical patent/CN114358136B/zh
Publication of CN114358136A publication Critical patent/CN114358136A/zh
Application granted granted Critical
Publication of CN114358136B publication Critical patent/CN114358136B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了图像数据处理方法、装置、智能终端及存储介质,图像数据处理方法包括:获取待处理图像数据,并获取多个读取工具中的一个目标读取工具;基于目标读取工具读取待处理图像数据,获取预处理图像数据;获取多个数据操作类中的至少一个目标数据操作类,并获取一个目标深度学习框架,其中,每一个预处理图像读取库和每一个上述预处理深度学习框架中都分别包括所有上述数据操作类对应的后端处理函数;基于预处理图像数据的格式、目标数据操作类以及目标深度学习框架对预处理图像数据进行处理,获取目标图像数据。与现有技术相比,本发明有利于将获取的待处理图像数据快速、方便地转换为与目标深度学习框架格式对应的目标图像数据。

Description

一种图像数据处理方法、装置、智能终端及存储介质
技术领域
本发明涉及深度学习图像处理技术领域,尤其涉及的是一种图像数据处理方法、装置、智能终端及存储介质。
背景技术
随着科学技术的发展,深度学习技术也得到迅速发展,在图像处理、自然语言处理等应用场景中都得到了广泛应用。同时,伴随着深度学习的发展,为了辅助研究者与从业者更加方便快捷的构建并训练深度学习模型,诞生了深度学习框架。在图像处理领域,开发者进行神经网络模型训练之前,需要对图像数据进行预处理,然后将数据制作成分批次的数据集,输送给模型进行训练或者推理。因此,针对一个深度学习框架,需要其对应的特定格式的图像的数据才能实现后续模型的训练或推理。
现有技术中,不同的用户(开发者)可能习惯使用不同的深度学习框架。现有技术的问题在于,不同深度学习框架、图像处理库之间支持的图像数据格式和算子操作存在差异,因此当开发者在面对获取的各种不同格式的图像数据和用于处理图像数据的不同深度学习框架,会存在数据格式不兼容的问题,而不同深度学习框架中包括的算子不同,因此存在部分操作(算子)缺失的现象,不利于将图像数据快速、方便地转换为所需的深度学习框架对应所需的格式,从而不利于进行后续的模型训练或推理,且影响用户的操作体验。
因此,现有技术还有待改进和发展。
发明内容
本发明的主要目的在于提供一种图像数据处理方法、装置、智能终端及存储介质,旨在解决现有技术中对于获取的各种不同格式的图像数据和用于处理图像数据的不同深度学习框架,会存在数据格式不兼容的问题,而不同深度学习框架中存在部分操作(算子)缺失的现象,不利于将图像数据快速、方便地转换为所需的深度学习框架对应所需的格式的问题。
为了实现上述目的,本发明第一方面提供一种图像数据处理方法,其中,上述方法包括:
获取待处理图像数据,并获取多个读取工具中的一个目标读取工具,其中,上述读取工具包括至少一个预处理图像读取库和多个预处理深度学习框架;
基于上述目标读取工具读取上述待处理图像数据,获取预处理图像数据;
获取多个数据操作类中的至少一个目标数据操作类,并获取多个上述预处理深度学习框架中的一个目标深度学习框架,其中,每一个上述预处理图像读取库和每一个上述预处理深度学习框架中都分别包括所有上述数据操作类对应的后端处理函数;
基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架对上述预处理图像数据进行处理,获取目标图像数据,其中,上述目标图像数据的格式与上述目标深度学习框架对应。
可选的,上述获取待处理图像数据,并获取多个读取工具中的一个目标读取工具,包括:
获取待处理图像数据,并获取目标对象输入的目标读取工具选择指令;
基于上述目标读取工具选择指令从所有上述读取工具中选择一个作为目标读取工具。
可选的,上述获取多个数据操作类中的至少一个目标数据操作类,并获取多个上述预处理深度学习框架中的一个目标深度学习框架,包括:
获取目标对象输入的目标数据操作类选择指令,基于上述目标数据操作类选择指令从所有上述数据操作类中选择至少一个作为目标数据操作类;
获取目标对象输入的目标深度学习框架选择指令,基于上述目标深度学习框架选择指令从所有上述预处理深度学习框架中选择一个作为目标深度学习框架。
可选的,上述预处理图像读取库包括预处理后的OpenCV、预处理后的Python图像库和预处理后的NumPy,上述预处理深度学习框架包括预处理后的TensorFlow、预处理后的PaddlePaddle、预处理后的MindSpore以及预处理后的PyTorch。
可选的,每一个上述数据操作类对应一种待执行图像数据操作,上述待执行图像数据操作包括剪裁、中心剪裁、填充、归一化和标准化。
可选的,上述基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架对上述预处理图像数据进行处理,获取目标图像数据,包括:
基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架获取目标后端处理函数;
基于上述目标后端处理函数对上述预处理图像数据进行处理,获取目标图像数据。
可选的,上述基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架获取目标后端处理函数,包括:
获取与上述预处理图像数据的格式对应的一个预处理图像读取库或一个预处理深度学习框架,作为目标操作处理工具;
当上述目标操作处理工具与上述目标深度学习框架相同时,获取上述目标操作处理工具对应的目标后端处理函数,其中,上述目标后端处理函数包括上述目标操作处理工具中所有与上述目标数据操作类对应的后端处理函数;
当上述目标操作处理工具与上述目标深度学习框架不相同时,获取上述目标操作处理工具对应的目标后端处理函数,其中,上述目标后端处理函数包括上述目标操作处理工具中所有与上述目标数据操作类对应的后端处理函数以及格式转换函数,上述格式转换函数用于将上述目标操作处理工具处理后获得的数据的格式转换为上述目标深度学习框架对应的数据格式。
可选的,在上述基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架对上述预处理图像数据进行处理,获取目标图像数据之后,上述方法还包括:
基于上述目标图像数据获取上述目标深度学习框架对应的待处理数据集;
获取多个数据集操作类中的至少一个目标数据集操作类,其中,每一个上述预处理深度学习框架中都分别包括所有上述数据集操作类对应的后端处理函数;
基于上述目标数据集操作类对上述待处理数据集进行处理,获取上述目标深度学习框架对应的目标数据集。
本发明第二方面提供一种图像数据处理装置,其中,上述装置包括:
待处理图像数据获取模块,用于获取待处理图像数据,并获取多个读取工具中的一个目标读取工具,其中,上述读取工具包括至少一个预处理图像读取库和多个预处理深度学习框架;
预处理模块,用于基于上述目标读取工具读取上述待处理图像数据,获取预处理图像数据;
目标数据操作类获取模块,用于获取多个数据操作类中的至少一个目标数据操作类,并获取多个上述预处理深度学习框架中的一个目标深度学习框架,其中,每一个上述预处理图像读取库和每一个上述预处理深度学习框架中都分别包括所有上述数据操作类对应的后端处理函数;
数据处理模块,用于基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架对上述预处理图像数据进行处理,获取目标图像数据,其中,上述目标图像数据的格式与上述目标深度学习框架对应。
可选的,上述数据处理模块包括:
目标后端处理函数获取单元,用于基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架获取目标后端处理函数;
目标图像数据获取单元,用于基于上述目标后端处理函数对上述预处理图像数据进行处理,获取目标图像数据。
可选的,上述装置还包括:
数据集生成模块,用于基于上述目标图像数据获取上述目标深度学习框架对应的待处理数据集;
目标数据集操作类获取模块,用于获取多个数据集操作类中的至少一个目标数据集操作类,其中,每一个上述预处理深度学习框架中都分别包括所有上述数据集操作类对应的后端处理函数;
数据集处理模块,用于基于上述目标数据集操作类对上述待处理数据集进行处理,获取上述目标深度学习框架对应的目标数据集。
本发明第三方面提供一种智能终端,其中,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的图像数据处理程序,上述图像数据处理程序被上述处理器执行时实现任意一项上述图像数据处理方法的步骤。
本发明第四方面提供一种计算机可读存储介质,上述计算机可读存储介质上存储有图像数据处理程序,上述图像数据处理程序被处理器执行时实现任意一项上述图像数据处理方法的步骤。
由上可见,本发明方案中的图像数据处理方法包括:获取待处理图像数据,并获取多个读取工具中的一个目标读取工具,其中,上述读取工具包括至少一个预处理图像读取库和多个预处理深度学习框架;基于上述目标读取工具读取上述待处理图像数据,获取预处理图像数据;获取多个数据操作类中的至少一个目标数据操作类,并获取多个上述预处理深度学习框架中的一个目标深度学习框架,其中,每一个上述预处理图像读取库和每一个上述预处理深度学习框架中都分别包括所有上述数据操作类对应的后端处理函数;基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架对上述预处理图像数据进行处理,获取目标图像数据,其中,上述目标图像数据的格式与上述目标深度学习框架对应。与现有技术相比,本发明中,每一个经过预先处理的预处理图像读取库和预处理深度学习框架中都分别包括所有数据操作类对应的后端处理函数,即每一个预处理图像读取库和预处理深度学习框架都预先进行了操作算子的补齐,使得各个预处理图像读取库和预处理深度学习框架不会出现操作类缺失的情况,有利于将获取的待处理图像数据快速、方便地转换为与目标深度学习框架格式对应的目标图像数据,从而有利于提高目标深度学习框架对图像数据的处理效率,且有利于进行后续的模型训练或推理,提升用户操作体验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种图像数据处理方法的流程示意图;
图2是本发明实施例图1中步骤S100的具体流程示意图;
图3是本发明实施例图1中步骤S300的具体流程示意图;
图4是本发明实施例图1中步骤S400的具体流程示意图;
图5是本发明实施例提供的一种图像数据处理装置的结构示意图;
图6是本发明实施例提供的一种图像数据处理工具的整体架构示意图;
图7是本发明实施例提供的一种图像数据处理工具进行图像数据处理的具体流程示意图;
图8是本发明实施例提供的一种图像处理操作调用原理示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当…时”或“一旦”或“响应于确定”或“响应于检测到”。类似的,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述的条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
随着科学技术的发展,深度学习技术也得到迅速发展,在图像处理、自然语言处理等应用场景中都得到了广泛应用。同时,伴随着深度学习的发展,为了辅助研究者与从业者更加方便快捷的构建并训练深度学习模型,诞生了深度学习框架。在图像处理领域,开发者进行神经网络模型训练之前,需要对图像数据进行预处理,然后将数据制作成分批次的数据集,输送给模型进行训练或者推理。因此,针对一个深度学习框架,需要其对应的特定格式的图像的数据才能实现后续模型的训练或推理。数据处理环节是深度学习中重要的环节,它直接影响整体任务的执行质量。
现有技术中,不同的用户(开发者)可能习惯使用不同的深度学习框架。现有技术的问题在于,不同深度学习框架、图像处理库之间支持的图像数据格式和算子操作存在差异,因此当开发者在面对获取的各种不同格式的图像数据和用于处理图像数据的不同深度学习框架,会存在数据格式不兼容的问题,而不同深度学习框架中包括的算子不同,因此存在部分操作(算子)缺失的现象,例如,比如归一化操作在OpenCV、PIL、NumPy、TensorFlow中都没有,在paddle、MindSpore、PyTorch中则有,标准化操作就只有TensorFlow有。如此,不利于将图像数据快速、方便地转换为所需的深度学习框架对应所需的格式,从而不利于进行后续的模型训练或推理,且影响用户的操作体验。
目前深度学习图像数据处理所面临的问题主要有下列几点:图像数据格式繁杂;python图像处理库较多,比如scikit-image、SciPy、Python Imaging Library、OpenCV-Python等,各个深度学习框架支持的图像格式和图像处理库互不相同;深度学习框架本身的图像数据格式Tensor(张量)不同;框架间图像处理算子不能保持一致。上述几个问题使得开发者在面对不同的图像数据格式时,在框架间进行神经网络模型迁移时难以保持一致的计算结果。而本发明中,针对上述一个或多个问题,通过上述图像数据处理方法,可以实现对待处理图像数据进行统一的操作,获得对应的目标图像数据,使得开发者可以将精力集中在图像处理管道设计,而不用在意图像数据格式本身以及不同框架间的差异。
为了解决现有技术中的一个或多个问题,本发明提供一种图像数据处理方法,包括:获取待处理图像数据,并获取多个读取工具中的一个目标读取工具,其中,上述读取工具包括至少一个预处理图像读取库和多个预处理深度学习框架;基于上述目标读取工具读取上述待处理图像数据,获取预处理图像数据;获取多个数据操作类中的至少一个目标数据操作类,并获取多个上述预处理深度学习框架中的一个目标深度学习框架,其中,每一个上述预处理图像读取库和每一个上述预处理深度学习框架中都分别包括所有上述数据操作类对应的后端处理函数;基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架对上述预处理图像数据进行处理,获取目标图像数据,其中,上述目标图像数据的格式与上述目标深度学习框架对应。与现有技术相比,本发明中,每一个经过预先处理的预处理图像读取库和预处理深度学习框架中都分别包括所有数据操作类对应的后端处理函数,即每一个预处理图像读取库和预处理深度学习框架都预先进行了操作算子的补齐,使得各个预处理图像读取库和预处理深度学习框架不会出现操作类缺失的情况,有利于将获取的待处理图像数据快速、方便地转换为与目标深度学习框架格式对应的目标图像数据,从而有利于提高目标深度学习框架对图像数据的处理效率,且有利于进行后续的模型训练或推理,提升用户操作体验。
示例性方法
如图1所示,本发明实施例提供一种图像数据处理方法,具体的,上述方法包括如下步骤:
步骤S100,获取待处理图像数据,并获取多个读取工具中的一个目标读取工具,其中,上述读取工具包括至少一个预处理图像读取库和多个预处理深度学习框架。
其中,待处理图像数据是需要进行处理和/或格式转换的数据,对与各个待处理数据,进行用户所需要的操作处理后,转换为可以被用户需要的目标深度学习框架处理和使用的专属格式的目标图像数据。需要说明的是,本实施例中,每张图像对应的图像数据是一个三维矩阵。
上述读取工具是用于读取待处理图像数据的工具,需要说明的是,预处理图像读取库是预先处理后的图像处理库,预处理深度学习框架是预先处理后的深度学习框架,上述预先处理包括补全对应的操作类(可能包括数据操作类和数据集操作类)和规范各个操作类对应的后端函数。即所有的预处理图像读取库和预处理深度学习框架是经过预先处理获得所有的预设操作类以及各个操作类对应的后端处理函数,需要说明的是,不同的预处理图像读取库和不同的预处理深度学习框架中,同一个操作类对应的后端处理函数并不是完全相同,后端处理函数具体是根据各个预处理图像读取库和各个预处理深度学习框架本身的实际需求调整的,但同一个操作类对应需要获取的输入参数以及对应的不同后端处理函数的实现逻辑是相同的。
具体的,本实施例中,如图2所示,上述步骤S100包括如下步骤:
步骤S101,获取待处理图像数据,并获取目标对象输入的目标读取工具选择指令。
步骤S102,基于上述目标读取工具选择指令从所有上述读取工具中选择一个作为目标读取工具。
需要说明的是,部分深度学习框架能够直接读取待处理图像数据,也有部分深度学习框架并不能直接读取待处理图像数据,因此本实施例中,设置预处理图像读取库和预处理深度学习框架共同作为读取工具,用户只需根据实际需求选择一种作为目标读取工具即可完成对待处理图像数据的读取,从而获得预处理图像数据。其中,上述预处理图像数据的格式与对应的目标读取工具对应。
在本实施例中,还可以预先设计交互界面,供用户交互使用,基于交互界面获取用户(目标对象)输入的目标读取工具选择指令,从而选择出对应的目标读取工具。其中,具体的预处理图像读取库和预处理深度学习框架可以根据实际需求进行设置和调整,在此不做具体限定。
在一种应用场景中,如果用户指定的目标读取工具是一种不能进行图像数据读取的预处理深度学习框架,则重新选择预设的一种预处理图像读取库作为目标读取工具,来实现待处理图像数据的读取。本实施例中,上述预处理图像读取库包括预处理后的OpenCV、预处理后的Python图像库(PIL,Python Imaging Library)和预处理后的NumPy,上述预处理深度学习框架包括预处理后的TensorFlow、预处理后的PaddlePaddle、预处理后的MindSpore以及预处理后的PyTorch。其中,上述7种读取工具可以分为两类,一类为预处理后的通用的图像读取库(OpenCV、PIL和NumPy),另一类为预处理后的深度学习框架(TensorFlow、PaddlePaddle、MindSpore和PyTorch)。对于待处理图像数据,最终需要处理获得可以满足4个预处理深度学习框架中的一种目标深度学习框架对应的专属格式要求的目标图像数据。
步骤S200,基于上述目标读取工具读取上述待处理图像数据,获取预处理图像数据。
本实施例中,上述目标读取工具是用户指定(选择)的一种读取工具,是预处理后的OpenCV、PIL、NumPy、TensorFlow、PaddlePaddle、MindSpore和PyTorch中的一种。需要说明的是,通常采用预处理后的OpenCV、PIL和NumPy中的一种来作为目标读取工具,读取以后获得的预处理图像数据的格式分别是OpenCV、PIL和NumPy三种通用库对应的数据格式,因此,本实施例中,对于通用库OpenCV、PIL和NumPy也进行了预先处理,补齐所有操作类对应的后端处理函数的,即对读取工具进行预处理的过程会涉及OpenCV、PIL、NumPy、TensorFlow、PaddlePaddle、MindSpore和PyTorch的算子算法的调整。
需要说明的是,4个深度学习框架中的图像算子不止会在深度学习训练前预处理使用,也可能在模型训练过程中使用,在训练过程中时数据格式已经从3个通用库数据格式转换为框架专属格式,因此框架后端也应该有自己对应的图像处理算子。所以7个后端(即OpenCV、PIL、NumPy、TensorFlow、PaddlePaddle、MindSpore和PyTorch)都需要有对应的计算逻辑,本实施例中,7个后端库或者深度学习框架都经过算子算法调整,能够实现所有的操作类。各个处理后的后端库和深度学习框架中,同名的操作类对应的处理逻辑和需要获取的参数是相同的,具体的后端处理函数(或具体代码)可能不同,但相同数据在经过同名的操作类处理后获得的数据是统一的,只是数据格式不同。
需要说明的是,统一并不是指格式和具体的操作代码是一样的,统一是指得到的数据是一致的,比如剪裁过的图像大小是一致、位置也是一致的,但是数据格式是符合各个深度学习框架自己的要求,数据格式不一致不代表数据里面保存的数值不一致。基于本发明方法,对应于相同的目标操作类,处理获得的不同目标深度学习框架对应的目标图像数据的格式不同,但具体的图像的数值是相同的,其数据格式则是对应的目标深度学习框架本身所需要的。
步骤S300,获取多个数据操作类中的至少一个目标数据操作类,并获取多个上述预处理深度学习框架中的一个目标深度学习框架,其中,每一个上述预处理图像读取库和每一个上述预处理深度学习框架中都分别包括所有上述数据操作类对应的后端处理函数。
其中,上述目标深度学习框架是最终需要的深度学习框架,即最终需要训练的深度模型对应的深度学习框架。上述目标数据操作类是需要进行的数据操作对应的类表达。本实施例中,预先设置了用户所有可能需要执行的数据操作,并以类的形式表达。
需要说明的是,类表达,就是调用的方式是以类形式来进行的,能实现更方便的统一调用。类是程序语言里面的一种对象,需要先初始化后调用,程序语言还有一种对象是函数,函数可以直接调用。TensorFlow、OpenCV、PIL、NumPy里面的原本的图像操作是函数式的,PaddlePaddle、MindSpore、PyTorch是类形式的,本实施例中,将图像操作统一以类的形式表达,方便调用,且可以将参数设置进行统一,即保证同名的操作类(包括数据操作类和下文的数据集操作类)有相同的输入参数,方便用户使用。其中,同名数据操作类是指不同的读取工具对应的名称相同的数据操作类,例如,TensorFlow对应的剪裁类和OpenCV对应的剪裁类是同名的数据操作类。具体的,本实施例中采用类形式可以将参数设置进行统一,例如,在剪裁这个操作中,TensorFlow需要输入图像剪裁的左上角坐标起始点,和剪裁后的图像大小,这样在剪裁的时候根据左上角坐标和图像大小可以自动算出来右下角坐标。但是在其他框架中可能直接输入的是左上角坐标和右下角坐标。输入参数的不一致,也就造成了后续程序的计算逻辑不太一样,为了让用户可以用一样的参数得到同样的结果,所以设计类表达,先初始化参数,例如规定剪裁类所需要的输入参数是图像剪裁的左上角坐标起始点和剪裁后的图像大小。在使用不同的后端对应的剪裁类时,用户都只需要输入图像剪裁的左上角坐标起始点和剪裁后的图像大小,各个后端会根据实际情况调用调整后的后端处理函数来进行处理,七个后端中后端处理函数的计算逻辑已经根据参数进行预先调整,可以根据该参数实现对图像的剪裁操作。如此,将数据操作设计成类,方便调用不同的后端。在一种应用场景中,也可以将数据操作设计成函数,如此,则需要将所有代码写在一个文件中不停的做判断,影响处理效率。本实施例中,每一个图像操作都是一个类,不同的类(即非同名类,例如剪裁类和填充类)都有单独的参数设置,并不相同。
本实施例中,每一个上述数据操作类对应一种待执行图像数据操作,上述待执行图像数据操作包括剪裁、中心剪裁、填充、归一化和标准化。
其中,上述待执行图像数据操作即需要执行的图像处理操作。各图像处理操作主要是对单张图像进行裁剪、旋转、归一化等操作,目的是让处理后的数据更加适合深度学习模型的训练。需要说明的是,对于图像处理操作,不同的后端读取工具在处理时要求的参数是不同的,本实施例中将图像处理操作规范为操作类,并预先调整对应的后端处理函数,使得对于同名操作类,用户只需要输入相同的参数,后端即可实现图像处理。例如,对于剪裁操作,TensorFlow需要输入图像裁剪的左上角坐标起始点,和裁剪后的图像大小,其他框架输入的是左上角坐标和右下角坐标;对于中心剪裁操作,TensorFlow需要图像中心和裁剪比例,MindSpore、Paddle、PyTorch需要图像中心和裁剪尺寸,在本实施例中输入参数保留按照比例裁剪和尺寸裁剪,因此在每个后端都写两种不同输入参数的计算逻辑;对于填充操作,TensorFlow对图像填充输入的是(左填充,上填充,填充后宽度,填充后长度),MindSpore、paddle、PyTorch则为(左填充,上填充,右填充,下填充),在本实施例中可以将这两种模式均保留,在每个后端写两种不同输入参数的计算逻辑。对于归一化操作和标准化操作,归一化是指将图像数值从0-255按比例规范到0-1之间,标准化是指将图像数值规范到以0为均值,方差为1的范围内,归一化MindSpore、paddle、PyTorch有,TensorFlow没有,需要输入的参数是图像rgb三个通道每个通道的均值,在TensorFlow的后端进行了补充;标准化不需要输入参数,内部自动计算,在MindSpore、paddle、PyTorch后端补充了标准化的后端处理函数。
如此,在本实施例中,对所有读取工具(后端)进行对应的规范和补齐,规范将所有后端的输入参数定义和计算逻辑(计算逻辑一致,不代表代码完全相同)修改成一致的,补齐是指操作不是所有框架都有现成的,有些操作部分框架有,部分没有,因此后端文件中预先处理并补齐缺失的操作,保证用户在不同框架下都可以方便使用。例如,现有技术中归一化在MindSpore、paddle、PyTorch中有,但是TensorFlow没有。标准化在TensorFlow有,但是其他三个框架没有,在本实施例中,预先规范和补齐后,所有框架都可以实现归一化和标准化。本实施例中,对于不同的框架,通过同名的操作类对单张图像的处理操作是完全相同的。现有技术中,由于框架本身原因,不能保证用户在任何场合和硬件上面都能使用,用户可能本来习惯用PyTorch,但是现在必须使用TensorFlow,然后进行图像处理的时候发现处理操作缺失,代码要重写很麻烦,但是使用本实施例中的方法就可以避免这些问题。基于本实施例中的方法,用户可以方便的在不同框架环境下进行图像数据处理,以最终实现模型训练,并且还不会出现操作缺失的问题,结果也能保持一致,避免换框架和环境带来的偏差,保证模型训练的性能。需要说明的是,对于不同的后端(深度学习框架),同名数据操作类的参数输入和代码逻辑一致,但是各个具体代码是用框架自己的基础代码来写的,这样虽然计算逻辑是一致的,但是使用框架自身的基础代码,那生成的数据一致但是格式是各自框架的。四个框架基础的数据格式被称之为张量(tensor),张量本质是一种特殊的矩阵,图像数据也由张量来表示,虽然四个框架的基础数据格式都是张量,但是张量之间有很大的差别,不同框架的张量不会互相正确识别,只能是对应的张量。除此之外TensorFlow的图像数据张量一般是按照(图像长度,图像宽度,通道数)这样的顺序存储数据,MindSpore、paddle、PyTorch则是按照(通道数,图像长度,通道数)顺序存储。而基于本实施例中的方法,最终可以获得各个深度学习框架所实际需要的张量格式。
上述待执行图像数据操作仅用作示例,并不作为具体限定,实际使用过程中,还可以包括其它待执行图像数据操作。在一种应用场景中,可以包括一共35种操作类,用户可以根据自己的需求从中挑选需要的1个或多个操作类组成操作流程。
具体的,本实施例中,如图3所示,上述步骤S300具体包括如下步骤:
步骤S301,获取目标对象输入的目标数据操作类选择指令,基于上述目标数据操作类选择指令从所有上述数据操作类中选择至少一个作为目标数据操作类。
步骤S302,获取目标对象输入的目标深度学习框架选择指令,基于上述目标深度学习框架选择指令从所有上述预处理深度学习框架中选择一个作为目标深度学习框架。
具体的,本实施例中,可以预先设置前端交互界面供用户进行交互,前端交互界面中可以显示所有的数据操作类,用户通过语音、打字、点击或拖拽等方式进行输入,从而可以基于前端交互界面获取用户输入的目标数据操作类选择指令。其中,上述目标数据操作类是用户选取的需要执行的数据操作类。同时,用户还可以基于前端交互界面选择对应的目标深度学习框架,其中,上述目标深度学习框架是用户最终所需的深度学习框架,例如最终需要进行训练、测试或使用的深度学习模型对应的深度学习框架。
步骤S400,基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架对上述预处理图像数据进行处理,获取目标图像数据,其中,上述目标图像数据的格式与上述目标深度学习框架对应。
本实施例中,需要读取待处理图像数据,并对其完成用户想要完成的数据处理操作(即目标数据操作类对应的数据处理操作),然后转换成用户想要的数据格式(即目标深度学习框架对应的数据格式),从而方便基于数据进行下一步的模型训练、测试或基于训练好的深度学习模型对数据进行检测和处理。
具体的,本实施例中,如图4所示,上述步骤S400具体包括如下步骤:
步骤S401,基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架获取目标后端处理函数。
步骤S402,基于上述目标后端处理函数对上述预处理图像数据进行处理,获取目标图像数据。
其中,上述目标后端处理函数包括对应的目标深度学习框架中与对应的目标数据操作类对应的所有后端处理函数。在一种应用场景中,上述目标后端处理函数还可能包括用于进行数据格式转换的数据格式转换函数(即预设的转换算子)。
具体的,本实施例中,上述步骤S401具体包括:获取与上述预处理图像数据的格式对应的一个预处理图像读取库或一个预处理深度学习框架,作为目标操作处理工具;
当上述目标操作处理工具与上述目标深度学习框架相同时,获取上述目标操作处理工具对应的目标后端处理函数,其中,上述目标后端处理函数包括上述目标操作处理工具中所有与上述目标数据操作类对应的后端处理函数;
当上述目标操作处理工具与上述目标深度学习框架不相同时,获取上述目标操作处理工具对应的目标后端处理函数,其中,上述目标后端处理函数包括上述目标操作处理工具中所有与上述目标数据操作类对应的后端处理函数以及格式转换函数,上述格式转换函数用于将上述目标操作处理工具处理后获得的数据的格式转换为上述目标深度学习框架对应的数据格式。
需要说明的是,如果读取待处理图像数据时选择的目标读取工具就是最终所需的目标深度学习框架,则无需再进行数据格式转换,反之,则在通过数据操作类进行处理后,还需要进行数据格式转换。具体的,当原始的图像数据格式使用不同的工具读取(主要是OpenCV、PIL、NumPy)时,数据格式会是这三个工具特有的数据格式,但是深度学习框架TensorFlow、PaddlePaddle、MindSpore、PyTorch本身不支持这三个数据直接进行训练,需要将数据转换为自身框架支持的数据格式才能使用,因此在进行对应的操作类处理后,还要调用一个数据格式转换函数进行数据格式转换。需要说明的是,本实施例中的后端函数实际上通过执行对应的代码实现其功能的。
进一步的,本实施例中,在上述基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架对上述预处理图像数据进行处理,获取目标图像数据之后,上述方法还包括:
基于上述目标图像数据获取上述目标深度学习框架对应的待处理数据集;
获取多个数据集操作类中的至少一个目标数据集操作类,其中,每一个上述预处理深度学习框架中都分别包括所有上述数据集操作类对应的后端处理函数;
基于上述目标数据集操作类对上述待处理数据集进行处理,获取上述目标深度学习框架对应的目标数据集。
具体的,深度学习框架实际上需要对数据集进行处理,因此,在对图像进行数据操作类对应的图像处理操作之后,还需要将图像数据制作成数据集,从而更方便进行后续的模型训练、测试或使用模型对数据集进行检测。具体的,基于上述目标图像数据,将单张的图像整合成分批次的数据流,形成数据流,这些数据流会加快深度学习的训练。需要说明的是,本实施例中,四个深度学习框架在经过预处理后包括所有的数据集操作类对应的后端处理函数。其中,上述数据集操作类是需要对数据集进行的操作对应的类表达,与上述数据操作类的含义相似,但具体的后端处理函数以及对应的处理对象不同,数据操作类的处理对象是图像数据,数据集操作类的处理对象则是数据集。本实施例中,经过预处理将各个深度学习框架对应的数据集操作类进行统一,使得各个深度学习框架都包含所有预设的数据集操作类,即不会有某一种深度学习框架不能执行某种数据集操作,方便用户使用。需要说明的是,经过预处理后的不同预处理深度学习框架,对应的同名数据集操作类对应的输入参数是一致的,对应的后端操作逻辑也是一致的,但具体的后端代码不同,经过同名数据集操作类处理后可以获得统一的数据集(但格式不同),具体可以参照上文对于数据操作类的描述,在此不再赘述。处理后获得的目标数据集是符合目标深度学习框架格式要求的按指定数量合并成的包含多个批次数据的数据集,可以用于目标深度学习框架上深度学习模型的训练。
由上可见,本发明实施例提供的图像数据处理方法中,获取待处理图像数据,并获取多个读取工具中的一个目标读取工具,其中,上述读取工具包括至少一个预处理图像读取库和多个预处理深度学习框架;基于上述目标读取工具读取上述待处理图像数据,获取预处理图像数据;获取多个数据操作类中的至少一个目标数据操作类,并获取多个上述预处理深度学习框架中的一个目标深度学习框架,其中,每一个上述预处理图像读取库和每一个上述预处理深度学习框架中都分别包括所有上述数据操作类对应的后端处理函数;基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架对上述预处理图像数据进行处理,获取目标图像数据,其中,上述目标图像数据的格式与上述目标深度学习框架对应。与现有技术相比,本发明中,每一个经过预先处理的预处理图像读取库和预处理深度学习框架中都分别包括所有数据操作类对应的后端处理函数,即每一个预处理图像读取库和预处理深度学习框架都预先进行了操作算子的补齐,使得各个预处理图像读取库和预处理深度学习框架不会出现操作类缺失的情况,有利于将获取的待处理图像数据快速、方便地转换为与目标深度学习框架格式对应的目标图像数据,从而有利于提高目标深度学习框架对图像数据的处理效率,且有利于进行后续的模型训练或推理,提升用户操作体验。
示例性装置
如图5所示,对应于上述图像数据处理方法,本发明实施例还提供一种图像数据处理装置,上述图像数据处理装置包括:
待处理图像数据获取模块510,用于获取待处理图像数据,并获取多个读取工具中的一个目标读取工具,其中,上述读取工具包括至少一个预处理图像读取库和多个预处理深度学习框架。
其中,待处理图像数据是需要进行处理和/或格式转换的数据,对与各个待处理数据,进行用户所需要的操作处理后,转换为可以被用户需要的目标深度学习框架处理和使用的专属格式的目标图像数据。需要说明的是,本实施例中,每张图像对应的图像数据是一个三维矩阵。
上述读取工具是用于读取待处理图像数据的工具,需要说明的是,预处理图像读取库是预先处理后的图像处理库,预处理深度学习框架是预先处理后的深度学习框架,上述预先处理包括补全对应的操作类(可能包括数据操作类和数据集操作类)和规范各个操作类对应的后端函数。即所有的预处理图像读取库和预处理深度学习框架是经过预先处理获得所有的预设操作类以及各个操作类对应的后端处理函数,需要说明的是,不同的预处理图像读取库和不同的预处理深度学习框架中,同一个操作类对应的后端处理函数并不是完全相同,后端处理函数具体是根据各个预处理图像读取库和各个预处理深度学习框架本身的实际需求调整的,但同一个操作类对应需要获取的输入参数以及对应的不同后端处理函数的实现逻辑是相同的。
本实施例中,上述预处理图像读取库包括预处理后的OpenCV、预处理后的Python图像库(PIL,Python Imaging Library)和预处理后的NumPy,上述预处理深度学习框架包括预处理后的TensorFlow、预处理后的PaddlePaddle、预处理后的MindSpore以及预处理后的PyTorch。
预处理模块520,用于基于上述目标读取工具读取上述待处理图像数据,获取预处理图像数据。
本实施例中,上述目标读取工具是用户指定(选择)的一种读取工具,是预处理后的OpenCV、PIL、NumPy、TensorFlow、PaddlePaddle、MindSpore和PyTorch中的一种。需要说明的是,通常采用预处理后的OpenCV、PIL和NumPy中的一种来作为目标读取工具,读取以后获得的预处理图像数据的格式分别是OpenCV、PIL和NumPy三种通用库对应的数据格式,因此,本实施例中,对于通用库OpenCV、PIL和NumPy也进行了预先处理,补齐所有操作类对应的后端处理函数的,即对读取工具进行预处理的过程会涉及OpenCV、PIL、NumPy、TensorFlow、PaddlePaddle、MindSpore和PyTorch的算子算法的调整。
目标数据操作类获取模块530,用于获取多个数据操作类中的至少一个目标数据操作类,并获取多个上述预处理深度学习框架中的一个目标深度学习框架,其中,每一个上述预处理图像读取库和每一个上述预处理深度学习框架中都分别包括所有上述数据操作类对应的后端处理函数。
其中,上述目标深度学习框架是最终需要的深度学习框架,即最终需要训练的深度模型对应的深度学习框架。上述目标数据操作类是需要进行的数据操作对应的类表达。本实施例中,预先设置了用户所有可能需要执行的数据操作,并以类的形式表达。
本实施例中,每一个上述数据操作类对应一种待执行图像数据操作,上述待执行图像数据操作包括剪裁、中心剪裁、填充、归一化和标准化。
其中,上述待执行图像数据操作即需要执行的图像处理操作。各图像处理操作主要是对单张图像进行裁剪、旋转、归一化等操作,目的是让处理后的数据更加适合深度学习模型的训练。需要说明的是,对于图像处理操作,不同的后端读取工具在处理时要求的参数是不同的,本实施例中将图像处理操作规范为操作类,并预先调整对应的后端处理函数,使得对于同名操作类,用户只需要输入相同的参数,后端即可实现图像处理。
数据处理模块540,用于基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架对上述预处理图像数据进行处理,获取目标图像数据,其中,上述目标图像数据的格式与上述目标深度学习框架对应。
本实施例中,需要读取待处理图像数据,并对其完成用户想要完成的数据处理操作(即目标数据操作类对应的数据处理操作),然后转换成用户想要的数据格式(即目标深度学习框架对应的数据格式),从而方便基于数据进行下一步的模型训练、测试或基于训练好的深度学习模型对数据进行检测和处理。
具体的,本实施例中,上述数据处理模块包括:目标后端处理函数获取单元,用于基于上述预处理图像数据的格式、上述目标数据操作类以及上述目标深度学习框架获取目标后端处理函数;目标图像数据获取单元,用于基于上述目标后端处理函数对上述预处理图像数据进行处理,获取目标图像数据。
其中,上述目标后端处理函数包括对应的目标深度学习框架中与对应的目标数据操作类对应的所有后端处理函数。在一种应用场景中,上述目标后端处理函数还可能包括用于进行数据格式转换的数据格式转换函数(即预设的转换算子)。
进一步的,本实施例中,上述装置还包括:数据集生成模块,用于基于上述目标图像数据获取上述目标深度学习框架对应的待处理数据集;
目标数据集操作类获取模块,用于获取多个数据集操作类中的至少一个目标数据集操作类,其中,每一个上述预处理深度学习框架中都分别包括所有上述数据集操作类对应的后端处理函数;
数据集处理模块,用于基于上述目标数据集操作类对上述待处理数据集进行处理,获取上述目标深度学习框架对应的目标数据集。
具体的,深度学习框架实际上需要对数据集进行处理,因此,在对图像进行数据操作类对应的图像处理操作之后,还需要将图像数据制作成数据集,从而更方便进行后续的模型训练、测试或使用模型对数据集进行检测。具体的,基于上述目标图像数据,将单张的图像整合成分批次的数据流,形成数据流,这些数据流会加快深度学习的训练。需要说明的是,本实施例中,四个深度学习框架在经过预处理后包括所有的数据集操作类对应的后端处理函数。其中,上述数据集操作类是需要对数据集进行的操作对应的类表达,与上述数据操作类的含义相似,但具体的后端处理函数以及对应的处理对象不同,数据操作类的处理对象是图像数据,数据集操作类的处理对象则是数据集。本实施例中,经过预处理将各个深度学习框架对应的数据集操作类进行统一,使得各个深度学习框架都包含所有预设的数据集操作类,即不会有某一种深度学习框架不能执行某种数据集操作,方便用户使用。需要说明的是,经过预处理后的不同预处理深度学习框架,对应的同名数据集操作类对应的输入参数是一致的,对应的后端操作逻辑也是一致的,但具体的后端代码不同,经过同名数据集操作类处理后可以获得统一的数据集(但格式不同),具体可以参照上文对于数据操作类的描述,在此不再赘述。处理后获得的目标数据集是符合目标深度学习框架格式要求的按指定数量合并成的包含多个批次数据的数据集,可以用于目标深度学习框架上深度学习模型的训练。
本实施例中,还基于一种具体应用场景进行具体描述。图6是本发明实施例提供的一种图像数据处理工具的整体架构示意图,其中,图像数据处理工具是一种基于本实施例的图像数据处理方法进行图像数据处理的装置。如图6所示,上述图像数据处理工具可以分为前端和后端,后端包括基础计算工具和基础AI框架,都可以用于读取待处理图像数据,并通过数据处理模块对读取后的预处理图像数据执行操作类对应的图像处理操作,并通过数据集处理模块对获得的目标图像数据执行数据集操作类对应的数据集操作,从而获得目标格式的数据流,即分批次集成起来的图像数据矩阵,比如单个图像是三维矩阵,分批次的图像数据流就是一个四维矩阵。这个四维数据矩阵是根据当前用户设定的目标深度学习框架来自动生成对应格式的。前端以类的形式定义了数据处理和数据集操作的接口,提供给用户来进行调用。后端以函数形式定义具体的计算逻辑,对于用户而言是隐藏无法感知的。用户无需分辨图像数据格式以及后端计算框架差异,当调用相关的前端API后,图像数据处理工具会自动根据数据格式和当前深度学习框架环境设置(即目标深度学习框架),调动对应的后端计算过程,执行图像数据处理工作。本发明的图像数据处理过程在无需用户实时修改代码的前提下,可以无缝与各大主流深度学习框架融合使用,提供统一、便捷、可迁移的图像数据处理流程。其中,前端以类的形式给用户调用,后端处理函数是类调用后具体的计算逻辑代码。
具体的,上述图像数据处理工具包括数据处理模块和数据集处理模块,可以分别为数据处理模块和数据集处理模块设计交互界面,使得用户操作更方便。上述图像数据处理工具可以自动根据图像数据格式进行处理操作,并且最终可以转换为不同深度学习框架专属图像数据格式。将各深度学习框架间差异巨大的图像数据处理环节,设计形成为统一处理过程,以适应不同用户的使用习惯。需要说明的是,上述图像数据处理工具的后端框架和后端处理函数经过预先处理,设计了同一的图像处理类表达(即数据操作类),从而调用兼容不同图像处理库和框架底层的算子,并且在不同后端重新规范图像处理算子计算逻辑,补齐不同后端间缺失算子。同时设计了统一的数据集操作类,可以将图像数据自动生成为各深度学习框架专属的数据流。开发者可以不用面对不同图像数据格式和深度学习框架间的数据处理差异,构建一套图像数据处理管道,无需修改代码即可应用到不同深度学习框架中。
图7是本发明实施例提供的一种图像数据处理工具进行图像数据处理的具体流程示意图,如图7所示,在该图像数据处理工具中,前端以类的形式定义在Transforms文件中,Transforms中的类主要提供给用户图像数据处理的调用接口,包含了常见的图像数据处理手段,比如归一化、裁剪、色域转换等。Transforms中的类主要包含两部分,__init__用来接受用户设定的具体某一数据处理操作的初始化参数Parameters。__call__用来调用并将初始化参数传递给后端的计算工具,执行具体的计算过程后,将处理好的数据进行输出。__call__可以调用的后端中主要包含NumPy、PIL、OpenCV、TensorFlow Tensor、MindSporeTensor、PaddlePaddle Tensor、PyTorch Tensor,该过程会判断输入的图像数据格式,选择对应的后端来执行计算。本实施例中,将不同后端中的计算逻辑进行了统一,并且互相补齐缺失操作,为用户在不同环境下提供完全一致的处理结果。具体的,本实施例中,在读取图像数据获得预处理图像数据后,进行Crop(剪裁)操作,会调用如下表1所示的后端处理代码:
表1
Figure BDA0003403759620000201
如表1所示,初始化Crop操作时,会调用class Crop中def__init__,该函数中的代码段主要作用是用户可以在初始化操作的时候设定参数值,调用初始化好的操作image_crop时,会调用class Crop中的def__call__函数,在该函数中,并不存放具体的计算逻辑代码段,而是调用后端中的计算函数F.crop。Transforms这个文件中存放了主流的图像数据操作类,这部分都是用户是可以直接调用并且可以查看的代码段。用户可以通过初始化Transforms中的图像数据操作类,设定需求的初始化参数,调用初始化好的操作,完成图像数据处理。本实施例中提供给用户的就是Transforms中的类接口,而并非直接提供图像数据处理函数,第一是因为处理函数代码段比较复杂,用户调用起来比较复杂,第二是因为不同的深度学习框架和不同的图像处理库实现过程、代码构建方式不同,不能简单的在前端类中统一。
上述代码def__call__中的F.crop就是调用后端计算过程。图8是本发明实施例提供的一种图像处理操作调用原理示意图,如图8所示,在后端中定义了7个文件,也就是说F.crop对应的在后端七个文件中都有具体的计算代码段。在本实施的工具中,在调用F.crop的时候,会自动判断输入图像数据格式,然后调用7个文件中其中1个对应的函数,执行数据处理过程然后返回图像处理结果。由于原本各框架、库中的函数参数设置、计算逻辑,在构建上述数据工具过程中,预先将参数初始化在Transforms文件中进行了数值范围和类型的统一,然后在各后端的计算逻辑中也进行了统一,以此达到统一的计算结果。在图像数据处理阶段,Transforms中就是提供给用户的前端,7个文件中函数就是后端算子。因此在使用上述图像处理数据工具时,只要设定好图像处理的整体流程,不用修改代码就可以在不同框架中使用。且在前端代码已经统一,当在不同的框架下使用图像处理流程时候,由于读取的图像数据是深度学习框架兼容的数据格式,都会自动调用当前所使用的深度学习框架后端函数来进行处理。
进一步的,将图像数据处理完毕后,在深度学习任务中还需要将数据制作为数据集,分批次输送给神经网络模型进行训练或推理,才能完成整体的任务流程。本实施例中提供Dataflow功能,可以将处理好的数据制作为数据集,并执行常见的Batch、Shuffle、Map等常见数据集操作。最终可以根据用户需求,在不修改代码的前提下,仅需指定当前深度学习框架环境设置,即可将数据集转化为四个主流深度学习框架TensorFlow、MindSpore、PaddlePaddle、PyTorch的数据流。
表2示出了本发明实施例提供的一种进行数据集操作的具体代码,和图像数据处理操作类似,在数据集中,同样定义了前端类API供给用户来调用,然后在后端实现了四个框架的数据集操作逻辑。
表2
Figure BDA0003403759620000221
前端文件dataset中定义了映射式数据集Dataset基类定义、迭代式数据集IterableDataset、批量化Batch、乱序Shuffle、映射Map等调用API。后端文件包含TensorFlow_dataflow、MindSpore_dataflow、paddle_dataflow、torch_dataflow四个文件,其中包含了前端类的具体操作逻辑代码段。在使用的时候,用户可以指定os.environ['BACKEND']就是指定框架名称是四个框架中的哪一个,当指定后,代码在运行阶段,会自动调用后端中四个文件中指定的代码逻辑。
如此,通过设计数据处理模块和数据集操作模块来兼容不同图像数据格式和深度学习框架,提供统一的图像数据处理与载入流程,使得用户在使用时不需要实时修改代码就能处理不同格式的图像数据,并应用于不同的深度学习框架,更具通用性。同时,将不同后端中的同一操作参数设置、计算逻辑进行了统一,完善了多后端中的缺失操作,有利于提供统一的图像数据处理结果,并提供了数据集相关的操作,将处理后的数据自由转化为目标深度学习框架所需的数据流,提升处理效率。
本发明实施例还提供一种智能终端,上述智能终端包括存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的图像数据处理程序,上述图像数据处理程序被上述处理器执行时实现本发明实施例提供的任一种图像数据处理方法的步骤。
本发明实施例还提供一种计算机可读存储介质,上述计算机可读存储介质上存储有图像数据处理程序,上述图像数据处理程序被处理器执行时实现本发明实施例提供的任一种图像数据处理方法的步骤。
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

Claims (13)

1.一种图像数据处理方法,其特征在于,所述方法包括:
获取待处理图像数据,并获取多个读取工具中的一个目标读取工具,其中,所述读取工具包括至少一个预处理图像读取库和多个预处理深度学习框架;
基于所述目标读取工具读取所述待处理图像数据,获取预处理图像数据;
获取多个数据操作类中的至少一个目标数据操作类,并获取多个所述预处理深度学习框架中的一个目标深度学习框架,其中,每一个所述预处理图像读取库和每一个所述预处理深度学习框架中都分别包括所有所述数据操作类对应的后端处理函数;
基于所述预处理图像数据的格式、所述目标数据操作类以及所述目标深度学习框架对所述预处理图像数据进行处理,获取目标图像数据,其中,所述目标图像数据的格式与所述目标深度学习框架对应。
2.根据权利要求1所述的图像数据处理方法,其特征在于,所述获取待处理图像数据,并获取多个读取工具中的一个目标读取工具,包括:
获取待处理图像数据,并获取目标对象输入的目标读取工具选择指令;
基于所述目标读取工具选择指令从所有所述读取工具中选择一个作为目标读取工具。
3.根据权利要求1所述的图像数据处理方法,其特征在于,所述获取多个数据操作类中的至少一个目标数据操作类,并获取多个所述预处理深度学习框架中的一个目标深度学习框架,包括:
获取目标对象输入的目标数据操作类选择指令,基于所述目标数据操作类选择指令从所有所述数据操作类中选择至少一个作为目标数据操作类;
获取目标对象输入的目标深度学习框架选择指令,基于所述目标深度学习框架选择指令从所有所述预处理深度学习框架中选择一个作为目标深度学习框架。
4.根据权利要求1所述的图像数据处理方法,其特征在于,所述预处理图像读取库包括预处理后的OpenCV、预处理后的Python图像库和预处理后的NumPy,所述预处理深度学习框架包括预处理后的TensorFlow、预处理后的PaddlePaddle、预处理后的MindSpore以及预处理后的PyTorch。
5.根据权利要求1所述的图像数据处理方法,其特征在于,每一个所述数据操作类对应一种待执行图像数据操作,所述待执行图像数据操作包括剪裁、中心剪裁、填充、归一化和标准化。
6.根据权利要求1所述的图像数据处理方法,其特征在于,所述基于所述预处理图像数据的格式、所述目标数据操作类以及所述目标深度学习框架对所述预处理图像数据进行处理,获取目标图像数据,包括:
基于所述预处理图像数据的格式、所述目标数据操作类以及所述目标深度学习框架获取目标后端处理函数;
基于所述目标后端处理函数对所述预处理图像数据进行处理,获取目标图像数据。
7.根据权利要求6所述的图像数据处理方法,其特征在于,所述基于所述预处理图像数据的格式、所述目标数据操作类以及所述目标深度学习框架获取目标后端处理函数,包括:
获取与所述预处理图像数据的格式对应的一个预处理图像读取库或一个预处理深度学习框架,作为目标操作处理工具;
当所述目标操作处理工具与所述目标深度学习框架相同时,获取所述目标操作处理工具对应的目标后端处理函数,其中,所述目标后端处理函数包括所述目标操作处理工具中所有与所述目标数据操作类对应的后端处理函数;
当所述目标操作处理工具与所述目标深度学习框架不相同时,获取所述目标操作处理工具对应的目标后端处理函数,其中,所述目标后端处理函数包括所述目标操作处理工具中所有与所述目标数据操作类对应的后端处理函数以及格式转换函数,所述格式转换函数用于将所述目标操作处理工具处理后获得的数据的格式转换为所述目标深度学习框架对应的数据格式。
8.根据权利要求1所述的图像数据处理方法,其特征在于,在所述基于所述预处理图像数据的格式、所述目标数据操作类以及所述目标深度学习框架对所述预处理图像数据进行处理,获取目标图像数据之后,所述方法还包括:
基于所述目标图像数据获取所述目标深度学习框架对应的待处理数据集;
获取多个数据集操作类中的至少一个目标数据集操作类,其中,每一个所述预处理深度学习框架中都分别包括所有所述数据集操作类对应的后端处理函数;
基于所述目标数据集操作类对所述待处理数据集进行处理,获取所述目标深度学习框架对应的目标数据集。
9.一种图像数据处理装置,其特征在于,所述装置包括:
待处理图像数据获取模块,用于获取待处理图像数据,并获取多个读取工具中的一个目标读取工具,其中,所述读取工具包括至少一个预处理图像读取库和多个预处理深度学习框架;
预处理模块,用于基于所述目标读取工具读取所述待处理图像数据,获取预处理图像数据;
目标数据操作类获取模块,用于获取多个数据操作类中的至少一个目标数据操作类,并获取多个所述预处理深度学习框架中的一个目标深度学习框架,其中,每一个所述预处理图像读取库和每一个所述预处理深度学习框架中都分别包括所有所述数据操作类对应的后端处理函数;
数据处理模块,用于基于所述预处理图像数据的格式、所述目标数据操作类以及所述目标深度学习框架对所述预处理图像数据进行处理,获取目标图像数据,其中,所述目标图像数据的格式与所述目标深度学习框架对应。
10.根据权利要求9所述的图像数据处理装置,其特征在于,所述数据处理模块包括:
目标后端处理函数获取单元,用于基于所述预处理图像数据的格式、所述目标数据操作类以及所述目标深度学习框架获取目标后端处理函数;
目标图像数据获取单元,用于基于所述目标后端处理函数对所述预处理图像数据进行处理,获取目标图像数据。
11.根据权利要求9所述的图像数据处理装置,其特征在于,所述装置还包括:
数据集生成模块,用于基于所述目标图像数据获取所述目标深度学习框架对应的待处理数据集;
目标数据集操作类获取模块,用于获取多个数据集操作类中的至少一个目标数据集操作类,其中,每一个所述预处理深度学习框架中都分别包括所有所述数据集操作类对应的后端处理函数;
数据集处理模块,用于基于所述目标数据集操作类对所述待处理数据集进行处理,获取所述目标深度学习框架对应的目标数据集。
12.一种智能终端,其特征在于,所述智能终端包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的图像数据处理程序,所述图像数据处理程序被所述处理器执行时实现如权利要求1-8任意一项所述图像数据处理方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有图像数据处理程序,所述图像数据处理程序被处理器执行时实现如权利要求1-8任意一项所述图像处理方法的步骤。
CN202111507460.XA 2021-12-10 2021-12-10 一种图像数据处理方法、装置、智能终端及存储介质 Active CN114358136B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111507460.XA CN114358136B (zh) 2021-12-10 2021-12-10 一种图像数据处理方法、装置、智能终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111507460.XA CN114358136B (zh) 2021-12-10 2021-12-10 一种图像数据处理方法、装置、智能终端及存储介质

Publications (2)

Publication Number Publication Date
CN114358136A true CN114358136A (zh) 2022-04-15
CN114358136B CN114358136B (zh) 2024-05-17

Family

ID=81099138

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111507460.XA Active CN114358136B (zh) 2021-12-10 2021-12-10 一种图像数据处理方法、装置、智能终端及存储介质

Country Status (1)

Country Link
CN (1) CN114358136B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114511100A (zh) * 2022-04-15 2022-05-17 支付宝(杭州)信息技术有限公司 一种支持多引擎框架的图模型任务实现方法和系统

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009010983A (ja) * 1996-02-26 2009-01-15 Richard A Holub 異なる画像表示装置を連携する方法、色エラー検知方法及び色測定装置
WO2012023330A1 (ja) * 2010-08-16 2012-02-23 富士フイルム株式会社 画像処理装置、画像処理方法、画像処理プログラムおよび記録媒体
CN104639507A (zh) * 2013-11-13 2015-05-20 中国科学院声学研究所 一种异构网络间的承载协议报文数据传输方法及系统
CN106874482A (zh) * 2017-02-20 2017-06-20 山东鲁能软件技术有限公司 一种基于大数据技术的图形化的数据预处理的装置及方法
CN109886884A (zh) * 2019-01-21 2019-06-14 长沙理工大学 一种基于限定核范数的低秩张量估计的视觉数据补全方法
CN110852980A (zh) * 2019-11-13 2020-02-28 北京京东方专用显示科技有限公司 交互式图像填充方法及系统、服务器、设备及介质
WO2020233254A1 (zh) * 2019-07-12 2020-11-26 之江实验室 一种融合结构化影像数据的医疗数据分析系统
CN112199086A (zh) * 2020-09-18 2021-01-08 北京达佳互联信息技术有限公司 自动编程控制系统、方法、装置、电子设备及存储介质
CN112465112A (zh) * 2020-11-19 2021-03-09 苏州浪潮智能科技有限公司 基于nGraph的GPU后端分布式训练方法和系统
CN112784959A (zh) * 2021-01-13 2021-05-11 鹏城实验室 一种兼容多框架的深度学习模型快速搭建系统
CN112906797A (zh) * 2021-02-25 2021-06-04 华北电力大学 一种基于计算机视觉和深度学习的平面抓取检测方法
CN113487524A (zh) * 2021-04-07 2021-10-08 北京百度网讯科技有限公司 图像格式转换方法、装置、设备、存储介质及程序产品

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009010983A (ja) * 1996-02-26 2009-01-15 Richard A Holub 異なる画像表示装置を連携する方法、色エラー検知方法及び色測定装置
WO2012023330A1 (ja) * 2010-08-16 2012-02-23 富士フイルム株式会社 画像処理装置、画像処理方法、画像処理プログラムおよび記録媒体
CN104639507A (zh) * 2013-11-13 2015-05-20 中国科学院声学研究所 一种异构网络间的承载协议报文数据传输方法及系统
CN106874482A (zh) * 2017-02-20 2017-06-20 山东鲁能软件技术有限公司 一种基于大数据技术的图形化的数据预处理的装置及方法
CN109886884A (zh) * 2019-01-21 2019-06-14 长沙理工大学 一种基于限定核范数的低秩张量估计的视觉数据补全方法
WO2020233254A1 (zh) * 2019-07-12 2020-11-26 之江实验室 一种融合结构化影像数据的医疗数据分析系统
CN110852980A (zh) * 2019-11-13 2020-02-28 北京京东方专用显示科技有限公司 交互式图像填充方法及系统、服务器、设备及介质
CN112199086A (zh) * 2020-09-18 2021-01-08 北京达佳互联信息技术有限公司 自动编程控制系统、方法、装置、电子设备及存储介质
CN112465112A (zh) * 2020-11-19 2021-03-09 苏州浪潮智能科技有限公司 基于nGraph的GPU后端分布式训练方法和系统
CN112784959A (zh) * 2021-01-13 2021-05-11 鹏城实验室 一种兼容多框架的深度学习模型快速搭建系统
CN112906797A (zh) * 2021-02-25 2021-06-04 华北电力大学 一种基于计算机视觉和深度学习的平面抓取检测方法
CN113487524A (zh) * 2021-04-07 2021-10-08 北京百度网讯科技有限公司 图像格式转换方法、装置、设备、存储介质及程序产品

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114511100A (zh) * 2022-04-15 2022-05-17 支付宝(杭州)信息技术有限公司 一种支持多引擎框架的图模型任务实现方法和系统

Also Published As

Publication number Publication date
CN114358136B (zh) 2024-05-17

Similar Documents

Publication Publication Date Title
Villán Mastering OpenCV 4 with Python: a practical guide covering topics from image processing, augmented reality to deep learning with OpenCV 4 and Python 3.7
US20220284638A1 (en) Method for image processing, computer device, and storage medium
US20210089914A1 (en) Optimization technique for forming dnn capable of performing real-time inference in mobile environment
CN113379775A (zh) 利用彩色化神经网络基于交互式颜色边缘生成彩色化图像
KR20200068050A (ko) 인공지능 수행을 위한 학습 데이터 생성장치 및 방법
EP4307106A1 (en) Visual software development system, method and apparatus, and computer storage medium
CN112328348A (zh) 应用程序多语言支持方法、装置、计算机设备及存储介质
EP4261705A1 (en) Data processing method and apparatus in artificial intelligence system
US20240161474A1 (en) Neural Network Inference Acceleration Method, Target Detection Method, Device, and Storage Medium
US20230040256A1 (en) Image coloring method and apparatus based on artificial intelligence, electronic device, and computer readable storage medium
CN114358136B (zh) 一种图像数据处理方法、装置、智能终端及存储介质
CN114091688B (zh) 一种计算资源获取方法、装置、电子设备和存储介质
CN115358404A (zh) 基于机器学习模型推理的数据处理方法、装置及设备
Escrivá et al. OpenCV 4 Computer Vision Application Programming Cookbook: Build complex computer vision applications with OpenCV and C++
CN116628250A (zh) 图像生成方法、装置、电子设备及计算机可读取存储介质
CN117094302A (zh) 基于ChatGPT的自动化处理方法、装置及存储介质
CN115760775A (zh) 番茄病害检测方法、装置、设备及存储介质
CN116402090B (zh) 神经网络计算图的处理方法、装置和设备
CN111401560A (zh) 推理任务的处理方法、设备和存储介质
CN117112446B (zh) 编辑器调试方法、装置、电子设备及介质
US20240104696A1 (en) Image processing method and apparatus, storage medium, electronic device, and product
CN113837948B (zh) 图像生成方法、设备及存储介质
CN115249068A (zh) Nvdla软件栈的推理方法、装置、设备及存储介质
CN115145743A (zh) 视觉学习方法、系统、设备及存储介质
CN117234391A (zh) 图像生成方法、装置和电子设备

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
GR01 Patent grant
GR01 Patent grant