CN115908087A - 基于神经网络模型的图像处理方法、电子设备及存储介质 - Google Patents
基于神经网络模型的图像处理方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115908087A CN115908087A CN202111162515.8A CN202111162515A CN115908087A CN 115908087 A CN115908087 A CN 115908087A CN 202111162515 A CN202111162515 A CN 202111162515A CN 115908087 A CN115908087 A CN 115908087A
- Authority
- CN
- China
- Prior art keywords
- operator
- neural network
- operators
- network model
- node
- 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
Links
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/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
Abstract
本申请提供一种基于神经网络模型的图像处理方法、电子设备及存储介质,所述方法包括:获取神经网络模型,其中,所述神经网络模型包括n个算子;确定所述n个算子中的所有末尾算子;在所述神经网络模型利用所述n个算子处理目标图像时,基于所述n个算子与所述末尾算子确定是否删除所述n个算子的运算结果。通过本申请能够提高图像处理效率,从而能够快速地得到图像检测结果。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种基于神经网络模型的图像处理方法、电子设备及存储介质。
背景技术
在实际应用中,在通过安装在电子设备中的神经网络模型进行图像处理时,所述图像的特征数据会在算子之间进行传递。一般情况下,需要记录每个算子的输入数据与输出数据,并通过所述每个算子的输入数据与输出数据执行对所述图像的进一步检测。然而,有些复杂的神经网络模型中的算子较多,需要统计的算子的输入数据与输出数据庞大。如此必然会造成电子设备存在内存占用过大,CPU处理慢,检测图像速度较慢的情况。
发明内容
鉴于以上内容,有必要提供一种基于神经网络模型的图像处理方法、电子设备及存储介质,能快速地输出图像检测结果。
本申请提供一种基于神经网络模型的图像处理方法,所述方法包括:获取神经网络模型,其中,所述神经网络模型包括n个算子;确定所述n个算子中的所有末尾算子;输入目标图像至所述神经网络模型,在所述神经网络模型利用所述n个算子处理目标图像时,基于所述n个算子与所述末尾算子确定是否删除所述n个算子的运算结果;基于所述运算结果,输出对所述目标图像的处理结果。
在一种可能的实现方式中,所述确定所述n个算子中的所有末尾算子包括:基于所述n个算子确定所述神经网络模型中的算子子组;将所述算子子组中最后一个执行运算的算子确定为所述算子子组的末尾算子。
在一种可能的实现方式中,所述基于所述n个算子确定所述神经网络模型中的算子子组包括:基于所述n个算子之间的逻辑运算关系,将所述神经网络模型映射为单链表结构,其中,所述单链表结构包括n个节点;扫描所述单链表结构中的每个节点,统计所述每个节点在所述神经网络模型中的输出量与输入量;基于每个节点的输出量和输入量建立所述单链表结构对应的数据对向量,其中,所述数据对向量为[[a1,b1],[a2,b2],…,[ai,bi],…,[an,bn]],ai为每个节点的输出量,bi为每个节点的输入量;根据所述数据对向量确定多个节点子集;根据所述多个节点子集确定所述神经网络模型中的算子子组。
在一种可能的实现方式中,根据所述数据对向量确定多个节点子集包括:步骤21:从[a1,b1]开始遍历所述数据对向量中的数据对;步骤22:判断所述数据对是否满足压入第一堆栈条件,若所述数据对满足压入所述第一堆栈条件,执行步骤23;若所述数据对不满足压入第一堆栈条件,执行步骤24;所述步骤23:将所述数据对压入第一堆栈中;所述步骤24:判断所述数据对是否满足弹出第一堆栈条件,若所述数据对满足弹出所述第一堆栈条件,执行步骤25;若所述数据对不满足弹出所述第一堆栈条件,执行步骤27;所述步骤25:弹出当前所述第一堆栈中最顶层的数据对,并统计所述第一堆栈中剩余数据对的数量m;步骤26:确定所述第一堆栈中最顶层的数据对对应的起始节点,以及确定满足所述弹出第一堆栈条件的数据对对应的末尾节点,设定从所述起始节点至所述末尾节点的所有节点构成的子集为m+1级节点子集;所述步骤27:判断所述数据对向量中是否还存在未被遍历的数据对,若所述数据对向量中还存在未被遍历的数据对,返回执行所述步骤21,继续遍历所述数据对向量中的下一个数据对;若所述数据对向量中的数据对被全部遍历,结束遍历。
在一种可能的实现方式中,所述根据所述多个节点子集确定所述神经网络模型中的算子子组包括:遍历所述多个节点子集;若所述多个节点子集中的任一个节点子集中的节点与其他节点子集中的节点都不重复,确定所述任一个节点子集为所述神经网络模型中的一个算子子组。
在一种可能的实现方式中,根据所述多个节点子集确定所述神经网络模型中的算子子组还包括:遍历所述多个节点子集,得到多个第一节点子集和多个第二节点子集,其中,所述第二节点子集真包含所述第一节点子集;去除所述第二节点子集中的所述第一节点子集的全部节点;设定所述第二节点子集中剩余节点的集合为所述神经网络模型的算子子组;设定所述多个第一节点子集为所述神经网络模型的算子子组。
在一种可能的实现方式中,若数据对[ai,bi]中的bi大于等于2,确定所述数据对[ai,bi]满足弹出第一堆栈条件;若数据对[ai,bi]中的ai大于等于2,确定所述数据对[ai,bi]满足压入第一堆栈条件。
在一种可能的实现方式中,所述基于所述n个算子与所述末尾算子确定是否删除所述n个算子的运算结果包括:步骤31:遍历所述n个算子;步骤32:判断所述当前算子是否为所述末尾算子,若所述算子不是所述末尾算子,执行步骤33;若所述当前算子是所述末尾算子,执行步骤37;所述步骤33:判断所述当前算子是否为输入算子,其中所述输入算子为向所述末尾算子传递数据的算子,若所述当前算子不是输入算子,执行步骤34;若所述当前算子为输入算子,执行步骤36;控制所述当前算子;所述步骤34:控制所述当前算子对数据进行运算并得到运算结果,传递所述运算结果至与所述当前算子具有逻辑运算关系的下一个算子;步骤35:在所述当前算子传递所述运算结果后,删除所述运算结果,然后,执行步骤38;所述步骤36:在所述当前算子对所述数据进行运算后,将运算结果压入第二堆栈,然后,执行所述步骤38;所述步骤37:弹出所述第二堆栈中所述末尾算子对应的输入算子的运算结果,并将所述运算结果传递给所述末尾算子后,删除所述运算结果,然后,转至所述步骤33;所述步骤38:继续遍历所述n个算子中的下一个算子,若所述n个算子中的算子被全部遍历,结束遍历。
本申请还提供一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的基于神经网络模型的图像处理方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的基于神经网络模型的图像处理方法。
本申请公开的基于神经网络模型的图像处理方法、电子设备及存储介质,能快速地输出图像检测结果。
附图说明
图1是本申请实施例提供的实现基于神经网络模型的图像处理方法的电子设备的结构示意图。
图2是本申请实施例提供的一种基于神经网络模型的图像处理方法的流程图。
图3是本申请实施例提供的一种基于神经网络模型的图像处理方法的步骤S2中的根据所述数据对向量确定多个节点子集的详细步骤流程图。
图4是本申请实施例提供的一种基于神经网络模型的图像处理方法的步骤S3的详细步骤流程图。
图5是本申请实施例提供的一种示例性单链表结构。
图6是本申请实施例提供的一种示例性节点数据传输图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本申请进行详细描述。
请参阅图1,图1为本申请一实施例的电子设备的示意图。参阅图1所示,所述电子设备1包括,但不仅限于,存储器11和至少一个处理器12上述元件之间可以通过总线连接(例如图1所示的13),也可以直接连接。
基于神经网络模型的图像处理方法所述电子设备1可以是计算机、手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等安装有应用程序的设备。本领域技术人员可以理解,所述示意图1仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备、总线等。
如图2所示,是本申请基于神经网络模型的图像处理方法的较佳实施例的流程图。所述基于神经网络模型的图像处理应用在所述电子设备1中。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。在本实施方式中,所述基于神经网络模型的图像处理方法包括:
步骤S1、获取神经网络模型,其中,所述神经网络模型包括n个算子。
在本实施方式中,所述神经网络模型可以为直接从网络端获取到的神经网络模型,也可以为从所述网络端获取到的神经网络模型进行优化以后的神经网络模型。对神经网络模型进行优化可以理解为对所述神经网络模型进行算子融合,网络剪枝,模型量化,网络切割等操作。在本实施方式中,所述神经网络模型包括n个算子,分别为op1,op2,…,opn。
步骤S2、基于所述n个算子确定所述神经网络模型中的算子子组。
在本实施方式中,所述确定所述n个算子中的所有末尾算子包括:基于所述n个算子确定所述神经网络模型中的算子子组;将所述算子子组中最后一个执行运算的算子确定为所述算子子组的末尾算子。
在本实施方式中,所述电子设备1在通过神经网络模型进行图像检测时,需要记录每个算子的输入数据与输出数据。另外,所述电子设备需要记录的数据还包括一些无效数据。如此,所述电子设备需要记录的数据量庞大,可能导致所述电子设备的内存占用过大,CPU处理慢。为了提高电子设备的处理能力,快速得到图像检测结果,可以通过本申请提供的方法查找神经网络模型中的算子子组。在对图像进行检测的过程中,通过释放所述算子子组中已经没有利用价值的算子的运算数据以及已经运算完成的算子子组的数据,达到减少内存占用和快速输出图像检测结果的目的。
在本实施方式中,所述基于所述n个算子确定所述神经网络模型中的算子子组包括:
(1)基于所述n个算子之间的逻辑运算关系,将所述神经网络模型映射为单链表结构,其中,所述单链表结构包括n个节点。所述n个节点分别为OP1,OP2,…,OPn,所述n个节点一一对应于所述神经网络模型中的每一个算子。基于所述n个算子之间的依赖关系,可以得到多个单链表结构。在本实施方式中,选取其中一种单链表结构OP1—>OP2—>…—>OPn进行后续的说明。例如,图3所示的单链表结构;
(2)扫描所述单链表结构中的每个节点,统计所述每个节点在所述神经网络模型中的输出量与输入量。所述输出量表示节点对应的算子在所述神经网络模型中将数据向外进行传递时,接收所述数据的算子的数量;所述输入量表示节点对应的算子在所述神经网络模型中接收其他算子传递的数据时,传递所述数据的算子的数量。示例性的,图4中的节点OP4的输入量为1,输出量为4;
(3)基于每个节点的输出量和输入量建立所述单链表结构对应的数据对向量,其中,所述数据对向量为[[a1,b1],[a2,b2],…,[ai,bi],…,[an,bn]],ai为每个节点的输出量,bi为每个节点的输入量;
(4)根据所述数据对向量确定多个节点子集。所述根据所述数据对向量确定多个节点子集包括:
参阅图3所示,是本申请公开的一种基于神经网络模型的图像处理方法的步骤S2中的根据所述数据对向量确定多个节点子集的详细步骤流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S21、从[a1,b1]开始遍历所述数据对向量中的数据对;
S22、判断所述数据对是否满足压入第一堆栈条件,其中所述满足压入第一堆栈条件为数据对[ai,bi]中的ai≥2,若所述数据对满足压入第一堆栈条件,执行S23;若所述数据对不满足压入第一堆栈条件,执行S24;
S23、将所述数据对压入第一堆栈中;
S24、判断所述数据对是否满足弹出第一堆栈条件,其中所述满足弹出第一堆栈条件为数据对[ai,bi]中的bi≥2,若所述数据对满足弹出第一堆栈条件,执行S25;若所述数据对不满足弹出第一堆栈条件,执行S27;
S25、弹出当前第一堆栈中最顶层的数据对,并统计所述第一堆栈中剩余数据对的数量m;
S26、确定所述第一堆栈中最顶层的数据对对应的起始节点,以及确定满足所述弹出第一堆栈条件的数据对对应的末尾节点,设定从所述起始节点至所述末尾节点的所有节点构成的子集为m+1级节点子集;
S27、继续遍历所述数据对向量中的数据对,重复执行S22至S27,直到所述数据对向量中的数据对被全部遍历;
S28、结束遍历。
(5)根据所述多个节点子集确定所述神经网络模型中的算子子组。经过上述步骤S21至步骤S28处理后,得到的多个节点子集会存在两种情况。一种情况是所述多个节点子集中任意两个节点子集不存在重复的节点;另一种情况是所述多个节点子集中的某一个子集真包含于其他子集。对于不同的情况,确定所述神经网络模型中的算子子组的方法也不相同。
在一实施方式,所述根据所述多个节点子集确定所述神经网络模型中的算子子组包括:遍历所述多个节点子集;若所述多个节点子集中的任意一个节点子集中的节点与其他节点子集中的节点都不重复,确定每个节点子集为所述神经网络模型中的一个算子子组。
在另一实施方式,所述根据所述多个节点子集确定所述神经网络模型中的算子子组包括:遍历所述多个节点子集,得到多个第一节点子集和多个第二节点子集,其中,所述第一节点子集真包含于所述第二节点子集中;去除所述第二节点子集中的所述第一节点子集的全部节点,将所述第二节点子集中剩余的节点集合作为所述神经网络模型的算子子组。
需要说明的是,所述第一节点子集与所述第二节点子集中剩余的节点集合不存在重复的节点。因此需要设定所述多个第一节点子集为所述神经网络模型的算子子组。
(6)确定每个所述算子子组的末尾算子。通过所述步骤S2可以知道所述算子子组的末尾算子可能会有多个算子的运算结果的输入。因此在图像处理的过程中,可以释放所述末尾算子不需要的运算结果,只保留需要输入所述末尾算子的运算结果,达到减少内存占用的目的。在本实施方式中,将所述步骤S2得到的每个算子子组的最后一个算子确定为所述末尾算子。
步骤S3、输入目标图像至所述神经网络模型,在所述神经网络模型利用所述n个算子处理目标图像时,基于所述n个算子与所述末尾算子确定是否删除所述n个算子的运算结果。
在本实施方式中,所述神经网络模型对图像检测进行检测时,所述算子会按照优先级对图像的特征数据依次进行运算,每当一个算子完成运算后就将运算结果传递给下一个算子。直到最后一个算子完成运算,检测结束。
在所述神经网络模型检测图像时,当算子的运算结果传递给下一个算子之后,所述运算结果就会成为没有利用价值的数据,因此可以将所述运算结果释放,这样可以减少内存的占用。另外,当所述下一个算子为所述末尾算子时,由于所述末尾算子需要多个算子的运算结果,因此这种情况下的所述运算结果不能被释放,需要将所述运算结果暂存,等待其他运算结果一起被传递给所述末尾算子。
在本实施方式中,所述基于所述n个算子与所述末尾算子确定是否删除所述n个算子的运算结果包括:
参阅图4所示,是本申请公开的一种基于神经网络模型的图像处理方法的步骤S3中的基于所述n个算子与所述末尾算子确定是否删除所述n个算子的运算结果的详细步骤流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S31:依次遍历所述n个算子;
S32:判断所述当前算子是否为所述末尾算子,若所述算子不是所述末尾算子,执行步骤S33;若所述当前算子是所述末尾算子,执行步骤S37;
S33:判断所述当前算子是否为输入算子,其中所述输入算子为向所述末尾算子传递数据的算子,若所述当前算子不是输入算子,执行步骤S34;若所述当前算子为输入算子,执行步骤S36;
S34:控制所述当前算子对数据进行运算并得到运算结果,传递所述运算结果至与所述当前算子具有逻辑运算关系的下一个算子;
S35:在所述当前算子传递所述运算结果后,删除所述运算结果,然后,执行步骤S38;
S36:在所述当前算子对所述数据进行运算后,将运算结果压入第二堆栈,然后,执行所述步骤S38;
S37:弹出所述第二堆栈中与所述末尾算子对应的输入算子的运算结果,并将所述运算结果传递给所述末尾算子后,删除所述运算结果,然后,流程转至步骤S33;
S38:继续遍历所述n个算子中的下一个算子,若所述n个算子中的算子被全部遍历,结束遍历。
由于所述算子与所述节点为一一对应的关系,因此可以通过所述节点来完成示例性的推理,如图6所示,OP3,OP14和OP15为所述末尾算子对应的末尾节点。
从OP1开始遍历所述节点;
OP1不是末尾节点,但是OP1是末尾节点OP3的输入节点,因此在OP1对数据进行运算后将OP1的运算结果压入所述第二堆栈;
OP2不是末尾节点,但是为末尾节点OP3的输入节点,因此在OP2对数据进行运算后将OP2的运算结果压入所述第二堆栈;
OP3是末尾节点,因此需要将所述第二堆栈中的OP3的输入节点OP1和OP2的运算结果弹出,并传递给OP3。传递完成之后删除所述输入节点OP1和OP2的运算结果。由于OP3不是输入算子,所以OP3在对所述输入节点OP1和OP2的运算结果运算完成并将运算结果传递给OP4之后,将OP3的运算结果删除;
OP4不是末尾节点也不是输入节点,因此在OP4完成运算,并将运算结果传递给OP5,OP6,OP7和OP8之后,删除OP4的运算结果;
OP5,OP6,OP7和OP8不是末尾节点也不是输入节点,因此在完成运算,并将运算结果传递给OP9,OP10,OP11和OP12之后,删除OP5,OP6,OP7和OP8的运算结果;
OP9,OP10和OP11不是末尾节点,是末尾节点OP15的输入节点,因此将OP9,OP10和OP11的运算结果压入所述第二堆栈;
OP12不是末尾节点,是末尾节点OP14的输入节点,因此将OP12的运算结果压入所述第二堆栈;
OP13不是末尾节点,是末尾节点OP14的输入节点,因此将OP13的运算结果压入所述第二堆栈;
OP14是末尾节点,因此需要弹出所述第二堆栈中的所述输入节点OP12和OP13的运算结果,并将所述OP12和OP13的运算结果传递给OP14之后,删除所述OP12和OP13的运算结果。由于OP14是末尾节点OP15的输入节点,因此将OP14的运算结果压入所述第二堆栈;
OP15是末尾节点,因此需要弹出所述第二堆栈中的OP9,OP10和OP11的运算结果以及OP14的运算结果。
通过释放没有利用价值的运算结果,可以减少内存占用量,提高图像检测效率。
步骤S4、基于所述运算结果,输出对所述目标图像的处理结果。
在本实施方式中,当最后一个算子完成运算后,将所述最后一个算子的运算结果作为所述目标图像的检测结果。
示例性的,若需要通过所述神经网络模型对所述目标图像中的细胞进行检测时,需要提取所述目标图像中细胞的特征。所述算子的运算结果可以为所述细胞的特征。通过删除已经提取完成的细胞特征,减少了内存占用量,提高了CPU的处理速度,可以快速得到细胞的检测结果。
请继续参阅图1,本实施例中,所述存储器11可以是电子设备1的内部存储器,即内置于所述电子设备1的存储器。在其他实施例中,所述存储器11也可以是电子设备1的外部存储器,即外接于所述电子设备1的存储器。
在一些实施例中,所述存储器11用于存储程序代码和各种数据,并在电子设备1的运行过程中实现高速、自动地完成程序或数据的存取。
所述存储器11可以包括随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在一实施例中,所述处理器12可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者所述处理器也可以是其它任何常规的处理器等。
所述存储器11中的程序代码和各种数据如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,例如实现基于神经网络模型的图像处理的方法中的步骤,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,所述计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)等。
可以理解的是,以上所描述的模块划分,为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能模块可以集成在相同处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在相同单元中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。
Claims (10)
1.一种基于神经网络模型的图像处理方法,应用在电子设备中,其特征在于,所述基于神经网络模型的图像处理方法包括:
获取神经网络模型,其中,所述神经网络模型包括n个算子;
确定所述n个算子中的所有末尾算子;
输入目标图像至所述神经网络模型,在所述神经网络模型利用所述n个算子处理目标图像时,基于所述n个算子与所述末尾算子确定是否删除所述n个算子的运算结果;
基于所述运算结果,输出对所述目标图像的处理结果。
2.根据权利要求1所述的基于神经网络模型的图像处理方法,其特征在于,所述确定所述n个算子中的所有末尾算子包括:
基于所述n个算子确定所述神经网络模型中的算子子组;
将所述算子子组中最后一个执行运算的算子确定为所述算子子组的末尾算子。
3.根据权利要求2所述的基于神经网络模型的图像处理方法,其特征在于,所述基于所述n个算子确定所述神经网络模型中的算子子组包括:
基于所述n个算子之间的逻辑运算关系,将所述神经网络模型映射为单链表结构,其中,所述单链表结构包括n个节点;
扫描所述单链表结构中的每个节点,统计所述每个节点在所述神经网络模型中的输出量与输入量;
基于每个节点的输出量和输入量建立所述单链表结构对应的数据对向量,其中,所述数据对向量中的数据对表示[an,bn],an为第n个节点的输出量,bn为第n个节点的输入量;
根据所述数据对向量确定多个节点子集;
根据所述多个节点子集确定所述神经网络模型中的算子子组。
4.根据权利要求3所述的基于神经网络模型的图像处理方法,其特征在于,根据所述数据对向量确定多个节点子集包括:
步骤21:从[a1,b1]开始遍历所述数据对向量中的数据对;
步骤22:判断所述数据对是否满足压入第一堆栈条件,若所述数据对满足压入所述第一堆栈条件,执行步骤23;若所述数据对不满足压入第一堆栈条件,执行步骤24;
所述步骤23:将所述数据对压入第一堆栈中;
所述步骤24:判断所述数据对是否满足弹出第一堆栈条件,若所述数据对满足弹出所述第一堆栈条件,执行步骤25;若所述数据对不满足弹出所述第一堆栈条件,执行步骤27;
所述步骤25:弹出当前所述第一堆栈中最顶层的数据对,并统计所述第一堆栈中剩余数据对的数量m;
步骤26:确定所述第一堆栈中最顶层的数据对对应的起始节点,以及确定满足所述弹出第一堆栈条件的数据对对应的末尾节点,设定从所述起始节点至所述末尾节点的所有节点构成的子集为m+1级节点子集;
所述步骤27:判断所述数据对向量中是否还存在未被遍历的数据对,若所述数据对向量中还存在未被遍历的数据对,返回执行所述步骤21,继续遍历所述数据对向量中的下一个数据对;若所述数据对向量中的数据对被全部遍历,结束遍历。
5.根据权利要求4所述的基于神经网络模型的图像处理方法,其特征在于:
若数据对[ai,bi]中的bi大于等于2,确定所述数据对[ai,bi]满足弹出所述第一堆栈条件;
若数据对[ai,bi]中的ai大于等于2,确定所述数据对[ai,bi]满足压入所述第一堆栈条件。
6.根据权利要求3所述的基于神经网络模型的图像处理方法,其特征在于,所述根据所述多个节点子集确定所述神经网络模型中的算子子组包括:
遍历所述多个节点子集;
若所述多个节点子集中的任一个节点子集中的节点与其他节点子集中的节点都不重复,确定所述任一个节点子集为所述神经网络模型中的一个算子子组。
7.根据权利要求3所述的基于神经网络模型的图像处理方法,其特征在于,根据所述多个节点子集确定所述神经网络模型中的算子子组包括:
遍历所述多个节点子集,得到多个第一节点子集和多个第二节点子集,其中,所述第二节点子集真包含所述第一节点子集;
去除所述第二节点子集中的所述第一节点子集的全部节点;
设定所述第二节点子集中剩余节点的集合为所述神经网络模型的算子子组;
设定所述多个第一节点子集为所述神经网络模型的算子子组。
8.根据权利要求1至7中任意一项所述的基于神经网络模型的图像处理方法,其特征在于,所述基于所述n个算子与所述末尾算子确定是否删除所述n个算子的运算结果包括:
步骤31:遍历所述n个算子;
步骤32:判断所述当前算子是否为所述末尾算子,若所述算子不是所述末尾算子,执行步骤33;若所述当前算子是所述末尾算子,执行步骤37;
所述步骤33:判断所述当前算子是否为输入算子,其中所述输入算子为向所述末尾算子传递数据的算子,若所述当前算子不是输入算子,执行步骤34;若所述当前算子为输入算子,执行步骤36;控制所述当前算子;
所述步骤34:控制所述当前算子对数据进行运算并得到运算结果,传递所述运算结果至与所述当前算子具有逻辑运算关系的下一个算子;
步骤35:在所述当前算子传递所述运算结果后,删除所述运算结果,然后,执行步骤38;
所述步骤36:在所述当前算子对所述数据进行运算后,将运算结果压入第二堆栈,然后,执行所述步骤38;
所述步骤37:弹出所述第二堆栈中所述末尾算子对应的输入算子的运算结果,并将所述运算结果传递给所述末尾算子后,删除所述运算结果,然后,转至所述步骤33;
所述步骤38:继续遍历所述n个算子中的下一个算子,若所述n个算子中的算子被全部遍历,结束遍历。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1至权利要求8中任意一项所述的基于神经网络模型的图像处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至权利要求8中任意一项所述的基于神经网络模型的图像处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111162515.8A CN115908087A (zh) | 2021-09-30 | 2021-09-30 | 基于神经网络模型的图像处理方法、电子设备及存储介质 |
US17/955,876 US20230097087A1 (en) | 2021-09-30 | 2022-09-29 | Image detection method based on neural network model, electronic device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111162515.8A CN115908087A (zh) | 2021-09-30 | 2021-09-30 | 基于神经网络模型的图像处理方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115908087A true CN115908087A (zh) | 2023-04-04 |
Family
ID=85718138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111162515.8A Pending CN115908087A (zh) | 2021-09-30 | 2021-09-30 | 基于神经网络模型的图像处理方法、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230097087A1 (zh) |
CN (1) | CN115908087A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501509A (zh) * | 2023-06-29 | 2023-07-28 | 南京邮电大学 | 一种面向微控制器的深度学习内存优化方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117892684B (zh) * | 2024-03-18 | 2024-05-24 | 上海合见工业软件集团有限公司 | Eda软件的导线合并计算方法、装置、设备及介质 |
-
2021
- 2021-09-30 CN CN202111162515.8A patent/CN115908087A/zh active Pending
-
2022
- 2022-09-29 US US17/955,876 patent/US20230097087A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116501509A (zh) * | 2023-06-29 | 2023-07-28 | 南京邮电大学 | 一种面向微控制器的深度学习内存优化方法 |
CN116501509B (zh) * | 2023-06-29 | 2023-09-08 | 南京邮电大学 | 一种面向微控制器的深度学习内存优化方法 |
Also Published As
Publication number | Publication date |
---|---|
US20230097087A1 (en) | 2023-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115908087A (zh) | 基于神经网络模型的图像处理方法、电子设备及存储介质 | |
US20200143250A1 (en) | Method and apparatus for compressing/decompressing deep learning model | |
CN111338695B (zh) | 基于流水线技术的数据处理方法及相关产品 | |
CN115034402A (zh) | 模型推理性能的优化方法、装置及相关产品 | |
CN117764122B (zh) | 计算图处理方法、装置、电子设备及存储介质 | |
CN114117992A (zh) | 一种序列化和反序列化方法、装置和电子设备 | |
CN110796229B (zh) | 一种实现卷积运算的装置及方法 | |
CN114358252A (zh) | 目标神经网络模型中的操作执行方法及装置、存储介质 | |
CN116089895A (zh) | 一种算子融合方法及装置 | |
US20210357753A1 (en) | Method and apparatus for multi-level stepwise quantization for neural network | |
TWI778822B (zh) | 基於神經網路模型的影像處理方法、電子設備及儲存介質 | |
US20200143228A1 (en) | Neural network control device and method | |
CN111461310A (zh) | 处理神经网络模型的神经网络设备、神经网络系统和方法 | |
CN113705097B (zh) | 一种车辆模型的构建方法、装置、计算机设备和存储介质 | |
CN116090538A (zh) | 一种模型权重获取方法以及相关系统 | |
CN115983392A (zh) | 量子程序映射关系的确定方法、装置、介质及电子装置 | |
CN110807092A (zh) | 数据处理方法及装置 | |
CN114118395B (zh) | 智能处理器装置与降低存储器带宽的方法 | |
CN114757343A (zh) | 一种数据类型转换方法、装置、电子设备以及存储介质 | |
TWI798972B (zh) | 智慧處理器裝置與降低記憶體頻寬的方法 | |
CN114021707B (zh) | 模型获取方法、系统、电子设备和存储介质 | |
CN112910950B (zh) | 一种待上链数据的上链方法、装置以及区块链节点设备 | |
CN118093518B (zh) | 模型的处理方法和装置、存储介质及电子设备 | |
CN117874241B (zh) | 基于dram-pim查表式神经网络推理与调优的文本分类方法及系统 | |
WO2022102221A1 (ja) | Dnn縮約装置及び車載演算装置 |
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 |