CN112150343A - 基于忆阻器阵列实现二值形态学操作的方法及电子装置 - Google Patents

基于忆阻器阵列实现二值形态学操作的方法及电子装置 Download PDF

Info

Publication number
CN112150343A
CN112150343A CN202011055269.1A CN202011055269A CN112150343A CN 112150343 A CN112150343 A CN 112150343A CN 202011055269 A CN202011055269 A CN 202011055269A CN 112150343 A CN112150343 A CN 112150343A
Authority
CN
China
Prior art keywords
image
memristor
processed
array
structural element
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
CN202011055269.1A
Other languages
English (en)
Other versions
CN112150343B (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202011055269.1A priority Critical patent/CN112150343B/zh
Publication of CN112150343A publication Critical patent/CN112150343A/zh
Application granted granted Critical
Publication of CN112150343B publication Critical patent/CN112150343B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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)
  • Mechanical Light Control Or Optical Switches (AREA)

Abstract

一种基于忆阻器阵列实现二值形态学操作的方法及电子装置。该基于忆阻器阵列实现二值形态学操作方法包括:获取待处理图像以及用于二值形态学操作的结构元;将待处理图像中的每个像素点的值映射至忆阻器阵列对应的忆阻器单元;使用结构元依次遍历待处理图像中选择的至少部分像素点,且在遍历待处理图像的过程中,对于每个被选择像素点,将每个被选择像素点与结构元中的阵列原点对齐,结构元在待处理图像中限定窗口区域,将结构元以及窗口区域通过忆阻器阵列进行乘和处理,根据乘和处理的计算结果以及二值形态学操作的类型得到对应的二值形态学结果。该方法利用忆阻器阵列的存算一体优势,高效、快速的实现图像形态学操作。

Description

基于忆阻器阵列实现二值形态学操作的方法及电子装置
技术领域
本公开的实施例涉及一种基于忆阻器阵列实现二值形态学操作的方法及电子装置。
背景技术
数学形态学在航空航天,工业生产,医学影像等领域都有应用。二值形态学操作中的膨胀、腐蚀、开运算、闭运算、形态学梯度以及颗粒分析等等都是图像处理中的重要步骤。形态学中最基本的操作中的膨胀和腐蚀是对图像和结构元进行乘积操作后,求局部最大值或者局部最小值,其计算过程类似卷积操作。
发明内容
本公开至少一实施例提供一种基于忆阻器阵列实现二值形态学操作的方法,所述忆阻器阵列包括阵列排布的多个忆阻器单元,包括:
获取待处理图像以及用于所述二值形态学操作的结构元,其中,所述待处理图像以及所述结构元均为二值化图像,均包括阵列排布的多个像素点,每个像素点的值为彼此不同的第一值和第二值中之一,所述结构元包括阵列原点;将所述待处理图像中的每个像素点的值映射至所述忆阻器阵列对应的忆阻器单元;使用所述结构元依次遍历所述待处理图像中选择的至少部分像素点,且在遍历所述待处理图像的过程中,对于每个被选择像素点,将所述每个被选择像素点与所述结构元中的所述阵列原点对齐,所述结构元在所述待处理图像中限定窗口区域,将所述结构元以及所述窗口区域通过所述忆阻器阵列进行乘和处理,根据所述乘和处理的计算结果以及所述二值形态学操作的类型得到对应的二值形态学结果,其中,所述忆阻器阵列配置为可进行乘和运算。
例如,在本公开至少一实施例提供的方法中,所述结构元包括m行n列,m和n分别为正整数,将所述结构元以及所述窗口区域通过所述忆阻器阵列进行乘和处理,包括:针对所述结构元的m行中的每一行,将所述每一行中的n个像素点,按照在所述每一行中的n个位置,与所述窗口区域中与所述每一行对应的n个像素点一一对应相乘,得到所述每一行对应的n个乘积,由此针对所述结构元的m行共得到m*n个乘积,将所述m*n个乘积求和以得到所述乘和处理的计算结果。
例如,在本公开至少一实施例提供的方法中,所述第二值用于标识所述二值化图像中的填充部分,响应于所述二值形态学操作的类型为膨胀操作且所述乘和处理的计算结果大于等于所述第二值,所述对应的二值形态学结果为所述第二值,否则为所述第一值;响应于所述二值形态学操作的类型为腐蚀操作且所述乘和处理的计算结果等于所述结构元中像素点的值为所述第二值的像素点的个数,所述对应的二值形态学结果为所述第二值,否则为所述第一值。
例如,在本公开至少一实施例提供的方法中,所述忆阻器阵列包括M行N列,所述忆阻器阵列还包括M条字线、M条源线和N条位线,所述M条字线以及所述M条源线分别与所述M行对应,所述N条位线分别与所述N列对应,M和N为正整数;所述针对所述结构元的m行中的每一行,将所述每一行中的n个像素点,按照在所述每一行中的n个位置,与所述窗口区域中与所述每一行对应的n个像素点一一对应相乘,得到所述每一行对应的n个乘积,包括:将开启信号逐行施加至所述窗口区域中与所述每一行对应的被选择行的字线,其中,所述开启信号用于打开所述被选择行对应的多个忆阻器单元;基于所述结构元中所述每一行的像素点的值,将输入信号分别施加至所述窗口区域中的对应于所述每一行的n个像素点对应位置的忆阻器单元的位线,其中,所述输入信号包括对应于所述第一值的第一输入信号和对应于所述第二值的第二输入信号,所述第一输入信号和所述第二输入信号不同;获取所述被选择行中的源线上的输出电流信号,其中,所述输出电流信号对应于所述每一行对应的n个乘积。
例如,在本公开至少一实施例提供的方法中,所述忆阻器阵列包括M行N列,所述忆阻器阵列还包括M条字线、M条源线和N条位线,所述M条字线以及所述M条源线分别与所述M行对应,所述N条位线分别与所述N列对应,M和N为正整数,所述结构元具有相对于沿行方向的中轴对称的对称结构,其中,对于所述结构元的m行中的每一行,将所述每一行中的n个像素点,按照在所述每一行中的n个位置,与所述窗口区域对应的一行的n个像素点一一对应相乘,得到n个乘积,包括:响应于所述结构元的第i行具有对称的第j行,将开启信号同时施加至所述窗口区域中与所述第i行对应的第一被选择行的字线以及所述窗口区域中与所述第j行对应的第二被选择行的字线;基于所述第i行或者所述第j行的像素点的值,将输入信号分别施加至所述窗口区域中的对应于所述第i行或者所述第j行的n个像素点对应位置的忆阻器单元的位线,其中,所述输入信号包括对应于所述第一值的第一输入信号和对应于所述第二值的第二输入信号;得到所述第一被选择行中的源线上的第一输出电流信号和所述第二被选择行中的源线上的第二输出电流信号,其中,所述第一输出电流信号对应于所述第i行的n个乘积,所述第二输出电流信号对应于所述第j行的n个乘积。
例如,在本公开至少一实施例提供的方法中,将所述m*n个乘积求和以得到所述乘和处理的计算结果,包括:将所述结构元的m行分别对应的m个输出电流信号进行累加,得到总输出电流信号,所述总输出电流信号对应于所述乘和处理的计算结果。
例如,在本公开至少一实施例提供的方法中,所述多个忆阻器单元中的每个具有第一状态和第二状态,所述第一状态不同于所述第二状态,所述多个忆阻器单元的每个在接收对应的字线所施加的开启信号被打开且在对应的位线上被施加所述第二输入信号而被读取时,响应于所述第一状态,所述多个忆阻器单元的每个在对应的源线上产生第一读取电流I1,响应于所述第二状态,所述多个忆阻器单元的每个在对应的源线上产生第二读取电流I2,所述根据所述乘和处理的计算结果以及所述二值形态学操作的类型得到对应的二值形态学结果,包括:响应于所述总输出电流信号大于参考电流,所述对应的二值形态学结果为所述第二值,否则为所述第一值;或者将所述总输出电流信号转换为对应的输出电压信号,响应于所述总输出电流信号对应的输出电压信号大于参考电压,所述对应的二值形态学结果为所述第二值,否则为所述第一值。
例如,在本公开至少一实施例提供的方法中,所述第一读取电流I1为0,响应于所述二值形态学操作为图像腐蚀操作,所述参考电流为I2*V,响应于所述二值形态学操作为图像膨胀操作,所述参考电流为I2,其中,V为所述结构元中像素点的值为所述第二值的数量;所述参考电压对应于所述参考电流。
例如,在本公开至少一实施例提供的方法中,所述待处理图像中选择的至少部分像素点为所述待处理图像中的全部像素点,所述方法还包括:将所述待处理图像的全部像素点的二值形态学结果,根据所述全部像素点在所述待处理图像中的位置进行排列,以得到所述待处理图像的二值形态学结果。
例如,在本公开至少一实施例提供的方法中,所述获取待处理图像包括:对初始图像进行区域划分,以得到多个所述待处理图像,并且,所述方法还包括:将多个所述待处理图像的二值形态学结果,根据多个所述待处理图像在所述初始图像中的位置关系进行对应地拼接,以得到所述初始图像的二值形态学结果。
例如,在本公开至少一实施例提供的方法中,所述获取待处理图像包括:获取初始图像并对所述初始图像进行边缘像素点扩展以得到所述待处理图像。
例如,在本公开至少一实施例提供的方法中,所述初始图像为T行S列,所述初始图像包括行方向上的两条侧边和列方向上的两条侧边,所述结构元包括m行n列,T、S、m和n分别为正整数,所述对获取的所述初始图像进行边缘像素点扩展,包括:将所述初始图像的行方向上的至少一条侧边向远离所述初始图像的方向共扩展p个像素点,其中,p为正整数且小于等于m-1;将所述初始图像的列方向上的至少一条侧边向远离所述初始图像的方向共扩展q个像素点,其中,q为正整数且小于等于n-1。
例如,在本公开至少一实施例提供的方法中,所述多个忆阻器单元中的每个具有第一状态和第二状态,所述将所述待处理图像中的每个像素点的值映射至所述忆阻器阵列对应的忆阻器单元,包括:响应于所述待处理图像中的每个像素点的值为所述第一值,将所述忆阻器阵列中与所述每个像素点对应位置的忆阻器单元设定第一状态;响应于所述待处理图像中的每个像素点的值为所述第二值,将所述忆阻器阵列中与所述每个像素点对应位置的忆阻器单元设定第二状态,其中,所述第一状态不同于所述第二状态。
例如,在本公开至少一实施例提供的方法中,所述结构元还包括基准像素点,所述对应的二值形态学结果为所述窗口区域中与所述基准像素点对应位置的像素点的二值形态学结果。
本公开至少一实施例提供一种电子装置,包括:忆阻器阵列,其中,所述忆阻器阵列配置为可进行乘和运算;控制器,其中,所述控制器配置为执行以下步骤:获取待处理图像以及用于所述二值形态学操作的结构元,其中,所述待处理图像以及所述结构元均为二值化图像,均包括阵列排布的多个像素点,每个像素点的值为彼此不同的第一值和第二值中之一,所述结构元包括阵列原点;将所述待处理图像中的每个像素点的值映射至所述忆阻器阵列对应的忆阻器单元;使用所述结构元依次遍历所述待处理图像中选择的至少部分像素点,且在遍历所述待处理图像的过程中,对于每个被选择像素点,将每个被选择像素点与所述结构元中的所述阵列原点对齐,所述结构元在所述待处理图像中限定窗口区域,将所述结构元以及所述窗口区域通过所述忆阻器阵列进行乘和处理,根据所述乘和处理的计算结果以及所述二值形态学操作的类型得到对应的二值形态学结果。
例如,在本公开至少一实施例提供的电子装置还包括电流检测模块,其中,所述电流检测模块包括累加单元以及比较单元;所述累加单元配置为对所述忆阻器阵列的源线的输出电流信号进行采集和累加,以得到总输出电流信号;所述比较单元配置为比较所述总输出信号与参考电流的大小关系。
例如,在本公开至少一实施例提供的电子装置还包括电流检测模块,其中,所述电流检测模块包括累加单元以及比较单元,所述累加单元为积分器,所述积分器配置为将所述忆阻器阵列的源线的输出电流信号转换为对应的电压信号并进行累加,以得到输出电压信号;所述比较单元用于比较所述输出电压信号与所述参考电流通过所述积分器得到的对应的参考电压信号的大小关系。
例如,在本公开至少一实施例提供的电子装置中,所述忆阻器阵列包括阵列排布的多个忆阻器单元,所述忆阻器阵列包括M行N列,所述M条字线以及所述M条源线分别与所述M行对应,所述N条位线分别与所述N列对应;所述忆阻器单元为1T1R或2T2R结构。
例如,在本公开至少一实施例提供的电子装置还包括源线驱动电路,配置为对所述忆阻器阵列的M条源线的输出信号进行控制;字线驱动电路,配置为对所述忆阻器阵列的M条字线分别施加控制信号;位线驱动电路,配置为对所述忆阻器阵列的N条位线施加输入信号。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开至少一实施例提供的一种忆阻器阵列的示意性结构图;
图2A为具有1T1R结构的忆阻器单元的示意图;
图2B为具有2T2R结构的忆阻器单元的示意图;
图3A为二值形态学操作中图像膨胀过程示意图;
图3B为二值形态学操作中图像腐蚀过程示意图;
图4为本公开至少一实施例提供的一种基于忆阻器阵列实现二值形态学操作的方法的示意性流程图;
图5A为本公开至少一实施例提供的待处理图像和结构元的示意图;
图5B为根据本公开至少一实施例提供的忆阻器阵列示意图;
图6A为本公开一实施例提供二值形态学操作中的结构元的示意图;
图6B为本公开一实施例提供二值形态学操作中的初始图像的示意图;
图6C为本公开一实施例提供的基于忆阻器阵列实现二值形态学操作的方法的流程图;
图6D为本公开一实施例提供的初始图像的示意图;
图6E为本公开一实施例提供的待处理图像的示意图;
图6F为本公开一实施例提供的图像二值形态学处理的原理示意图;
图6G为本公开一实施例提供的图像二值形态学处理的过程示意图;
图7为本公开至少一实施例提供的一种电子装置的示意性框图。
具体实施方式
为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
现有的形态学操作实现平台,例如通过CPU或者GPU等实现形态学操作都是传统的冯诺依曼架构,其数据和存储单元是分离的。在运算过程中,需要频繁去内存中取出图像的像素点的值并送到处理单元进行相关计算,计算结果也需返回内存进行存储,频繁的数据存取过程占用了大部分时间和能耗。
忆阻器(例如,阻变存储器、相变存储器、导电桥存储器等)是一种可以通过施加外部激励,调节其电导状态的非易失型器件。忆阻器作为一种二端器件,具有电阻可调节且非挥发的特性,因此被广泛应用于存算一体。根据基尔霍夫电流定律和欧姆定律,由忆阻器构成的阵列可以并行的完成乘累加计算,且存储和计算都发生在阵列各器件中。基于这种计算架构,可以实现不需要大量数据搬移的存算一体计算。
目前,由忆阻器构成的交叉阵列可以并行完成矩阵矢量乘法操作,并广泛应用于加速神经网络算法中,因此可以采用忆阻器阵列完成乘和计算,实现二值形态学计算。
本公开一实施例提供的基于忆阻器阵列实现二值形态学操作的方法包括:获取待处理图像以及用于所述二值形态学操作的结构元,其中,待处理图像以及结构元均为二值化图像,均包括阵列排布的多个像素点,每个像素点的值为彼此不同的第一值和第二值中之一,结构元包括阵列原点;将待处理图像中的每个像素点的值映射至忆阻器阵列对应的忆阻器单元;使用结构元依次遍历待处理图像的至少部分像素点,且在遍历待处理图像的过程中,对于每个被选择像素点,将每个被选择像素点与结构元中的阵列原点对齐,结构元在待处理图像中限定窗口区域,将结构元以及窗口区域通过忆阻器阵列进行乘和处理,根据乘和处理的计算结果以及二值形态学操作的类型得到对应的二值形态学结果,其中,忆阻器阵列配置为可进行乘和运算。
本公开至少一实施例还提供对应于上述基于忆阻器阵列实现二值形态学操作的方法的电子装置。
本公开上述实施例提供的基于忆阻器阵列实现二值形态学操作的方法能够通过忆阻器阵列存储二值图像信息,实现图像膨胀以及图像腐蚀操作,利用忆阻器阵列的存算一体优势,高效、快速地实现图像形态学操作。
下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
图1示出了一种忆阻器阵列的示意性结构,该忆阻器阵列由多个忆阻器单元构成,该多个忆阻器单元构成一个m行n列的阵列,m和n均为正整数。每个忆阻器单元包括开关元件和一个或多个忆阻器。在图1中,WL<1>、WL<2>……WL<m>分别表示第一行、第二行……第m行的字线,每一行的忆阻器单元电路中的开关元件的控制极(例如晶体管的栅极)和该行对应的字线连接;BL<1>、BL<2>……BL<n>分别表示第一列、第二列……第n列的位线,每列的忆阻器单元电路中的忆阻器和该列对应的位线连接;SL<1>、SL<2>……SL<m>分别表示第一行、第二行……第n行的源线,每一行的忆阻器单元电路中的晶体管的源极和该行对应的源线连接。根据基尔霍夫定律,通过设置忆阻器单元的状态(例如阻值)并且在字线与位线施加相应的字线信号与位线信号,上述忆阻器阵列可以并行地完成乘累加计算。
图1的忆阻器阵列中的忆阻器单元例如可以为1T1R结构或者2T2R结构,其中,1T1R结构的忆阻器单元包括一个晶体管和一个忆阻器,2T2R结构的忆阻器单元包括两个晶体管和两个忆阻器。
需要说明的是,本公开的实施例中采用的晶体管均可以为薄膜晶体管或场效应晶体管(例如MOS场效应晶体管)或其他特性相同的开关器件。这里采用的晶体管的源极、漏极在结构上可以是对称的,所以其源极、漏极在结构上可以是没有区别的。在本公开的实施例中,为了区分晶体管除栅极之外的两极(即源极和漏极),直接描述了其中一极为第一极,而另一极为第二极。本公开的实施例对采用的晶体管的类型不作限定。
图2A为1T1R结构的忆阻器单元的示意图。如图2A所示,1T1R结构的忆阻器单元包括一个晶体管M1和一个忆阻器R1。
例如当晶体管M1采用N型晶体管时,其栅极和字线端WL连接,例如字线端WL输入高电平时晶体管M1导通;晶体管M1的第一极可以是源极并被配置为和源线端SL连接,例如晶体管M1可以通过源线端SL接收复位电压;晶体管M1的第二极可以是漏极并被配置为和忆阻器R1的第二极(例如负极)连接,忆阻器R1的第一极(例如正极)和位线端BL连接,例如忆阻器R1可以通过位线端BL接收置位电压。例如当晶体管M1采用P型晶体管时,其栅极和字线端WL连接,例如字线端WL输入低电平时晶体管M1导通;晶体管M1的第一极可以是漏极并被配置为和源线端SL连接,例如晶体管M1可以通过源线端SL接收复位电压;晶体管M1的第二极可以是源极并被配置为和忆阻器R1的第二极(例如负极)连接,忆阻器R1的第一极(例如正极)和位线端BL连接,例如忆阻器R1可以通过位线端BL接收置位电压。需要说明的是,阻变存储器结构还可以实现为其他结构,例如忆阻器R1的第二极与源线端SL连接的结构,本公开的实施例对此不作限制。
下面各实施例均以晶体管M1采用N型晶体管为例进行说明。
字线端WL的作用是对晶体管M1的栅极施加相应电压,从而控制晶体管M1导通或关闭。在对忆阻器R1进行操作时,例如进行置位操作或复位操作,均需要先开启晶体管M1,即需要通过字线端WL对晶体管M1的栅极施加导通电压。在晶体管M1导通后,例如,可以通过在源线端SL和位线端BL向忆阻器R1施加电压,以改变忆阻器R1的阻态。例如,可以通过位线端BL施加置位电压,以使得该忆阻器R1处于低阻态;又例如,可以通过源线端SL施加复位电压,以使得该忆阻器R1处于高阻态。例如,高阻态的电阻值为低阻态的电阻值100倍以上,例如1000倍以上。
需要说明的是,在本公开的实施例中,通过字线端WL和位线端BL同时施加电压,可以使得忆阻器R1的电阻值越来越小,即忆阻器R1从高阻态变为低阻态,将使得忆阻器R1从高阻态变为低阻态的操作称为置位操作;通过字线端WL和源线端SL同时施加电压,可以使得忆阻器R1的电阻值越来越大,即忆阻器R1从低阻态变为高阻态,将使得忆阻器R1从低阻态变为高阻态的操作称为复位操作。例如,忆阻器R1具有阈值电压,在输入电压幅度小于忆阻器R1的阈值电压时,不会改变忆阻R1的电阻值(或电导值)。在这种情况下,可以通过输入小于阈值电压的电压,利用忆阻器R1的电阻值(或电导值)进行计算;可以通过输入大于阈值电压的电压,改变忆阻器R1的电阻值(或电导值)。
图2B为2T2R结构的忆阻器单元的示意图。如图2B所示,2T2R结构的忆阻器单元包括两个晶体管M1和M2以及两个忆阻器R1和R2。下面以晶体管M1和M2均采用N型晶体管为例进行说明。
晶体管M1的栅极和字线端WL1相连,例如M1的字线端WL1输入高电平时晶体管M1导通,晶体管M2的栅极和字线端WL2相连,例如M2的字线端WL2输入高电平时晶体管M2导通;晶体管M1的第一极可以是源极并被配置为和源线端SL连接,例如晶体管M1可以通过源线端SL接收复位电压,晶体管M2的第一极可以是源极并被配置为和源线端SL连接,例如晶体管M2可以通过源线端SL接收复位电压,晶体管M1的第一极与晶体管M2的第一极相连,并一起连接至源线端SL。晶体管M1的第二极可以是漏极并被配置为和忆阻器R1的第二极(例如负极)连接,忆阻器R1的第一极(例如正极)和位线端BL1连接,例如忆阻器R1可以通过位线端BL1接收置位电压;晶体管M2的第二极可以是漏极并被配置为和忆阻器R2的第二极(例如负极)连接,忆阻器R2的第一极(例如正极)和位线端BL2连接,例如忆阻器R2可以通过位线端BL2接收置位电压。
需要说明的是,2T2R结构的忆阻器单元中的晶体管M1和M2也可以均采用P型晶体管,这里不再赘述。
二值形态学操作中的基本操作包括图像膨胀和图像腐蚀,图像的膨胀和腐蚀都是来消除图片中的噪声,通过结构元对图像执行卷积操作,求取局部最大值或者局部最小值并将这个最大值或者最小值赋给指定的像素点,实现对图像的噪声处理。二值形态学操作还包括开运算和闭运算,其中开运算包括图像的先腐蚀后膨胀过程,主要用来消除图片中小于结构元的孤立点,平滑物体的轮廓;闭运算包括图像的先膨胀后腐蚀,用来消除一些细小的间隔和孔洞。
图3A为二值形态学操作中图像膨胀过程示意图,左侧为待处理图像(A),中间为结构元(B),右侧为膨胀处理后得到的图像(C),该膨胀操作可以表示为如公式(1)所示:
Figure BDA0002710673180000111
例如,待处理图像和结构元均为二值化图像,每个像素点的值为第一值或第二值中之一,例如,第一值为0且对应于二值化图像中的白色部分,例如对应于255灰阶(即所选择的灰阶范围为0~255),第二值为1且对应于图中的黑色部分,例如对应于0灰阶。例如,利用第二值标识二值化图像中的填充部分,例如,图3A中结构元的3个黑色像素点即为结构元的填充部分。结构元中还包括基准像素点,卷积操作的计算结果赋给基准像素点在待处理图像中所对应的像素点,也即被判断像素点。
图像膨胀过程类似于领域扩张,将结构元与待处理图像做卷积,若待处理图像中被结构元所覆盖区域中的填充部分与结构元的填充部分的交集不为空,也即待处理图像中被结构元所覆盖区域与结构元的对应位置的像素点的值的乘积之和大于等于第二值,则基准像素点在该覆盖区域中所对应的被判断像素点的二值形态学结果为第二值,反之则被判断像素点的二值形态学结果为第一值。
例如,将结构元移动至待处理图像中虚线框所限定的位置处时,虚线框中的待处理图像与结构元的对应位置的像素点的值的乘积之和为1,也即等于第二值,则被判断像素点的二值形态学结果为第二值,如图3A的膨胀处理后图像中膨胀后像素点所示。
例如,将结构元在被处理图像中以一个像素点为单位步长移动并执行上述卷积操作,以得到每个被判断像素点的膨胀结果,从而得到图3A中右侧所示的膨胀处理后图像。
图3B为二值形态学操作图像腐蚀过程示意图,左侧为待处理图像(A),中间为结构元(B),右侧为通过结构元对待处理图像腐蚀处理后的腐蚀处理后图像(C)。该腐蚀操作可以表示为公式(2)所示:
Figure BDA0002710673180000121
图像腐蚀过程类似于领域被蚕食,将结构元与待处理图像做卷积,若结构元的填充部分包含于待处理图像中被结构元所覆盖区域的填充部分,也即是待处理图像中被结构元所覆盖区域与结构元的对应位置的像素点的值的乘积之和大于等于结构元中像素点的值为第二值的像素点的个数,则基准像素点在该覆盖区域中所对应的被判断像素点的二值形态学结果为第二值,反之则被判断像素点的二值形态学结果为第一值。
例如,将结构元移动至待处理图像中虚线框所限定的位置处时,虚线框中的待处理图像与结构元的对应位置的像素点的值的乘积之和为2,小于结构元中像素点的值为第二值的像素点的个数3,则被判断像素点的二值形态学结果为第一值,如图3B的腐蚀处理后图像中腐蚀后像素点所示。
例如,将结构元在被处理图像中以一个像素点为单位步长移动并执行上述卷积操作,以得到每个被判断像素点的腐蚀结果,从而得到图3B中右侧所示的腐蚀处理后图像。
图4为本公开至少一实施例提供的一种基于忆阻器阵列实现二值形态学操作的方法的示意性流程图。
例如,如图4所示,本公开实施例提供的基于忆阻器阵列实现二值形态学操作的方法包括步骤S110至S130,并且,该忆阻器阵列包括阵列排布的多个忆阻器单元,例如该忆阻器阵列的结构示意图如图1所示,每个忆阻器单元可以为如图2A所示的1T1R结构或者如图2B所示的2T2R结构。
如图4所示,在步骤S110,获取待处理图像以及用于二值形态学操作的结构元。
例如,待处理图像以及结构元均为二值化图像,均包括阵列排布的多个像素点,每个像素点的值为彼此不同的第一值和第二值中之一,例如,在下面描述的示例中,第一值为0且对应于白色,第二值为1且对应于黑色。
例如,结构元包括阵列原点,阵列原点可以为结构元中任意一点,例如,阵列原点为结构元中左上角的第一行、第一列的像素点,或者阵列原点还可以为结构元中的基准像素点。
在步骤S120,将待处理图像中的每个像素点的值映射至忆阻器阵列对应的忆阻器单元。
例如,可以将二值图像的各个像素点的值以电导形式存储在忆阻器阵列中,利用忆阻器阵列的存算一体优势,高效、快速的实现图像形态学操作。
例如,忆阻器单元具有第一状态和第二状态,若待处理图像中的像素点的值为第一值(例如为0),将忆阻器阵列中与该像素点对应位置的忆阻器单元设置为第一状态;若待处理图像中的像素点的值为第二值(例如为1),将忆阻器阵列中与该像素点对应位置的忆阻器单元设置为第二状态。
例如,若忆阻器单元为1T1R结构,则像素点的值可以通过1T1R结构中的忆阻器单元的忆阻器的高阻态或者低阻态来表示像素点的值为第一值或者第二值。例如,在字线端WL施加开启信号,在位线端BL施加读取电压,同时将源线端SL施加例如参考电压(例如0V),则可以获得经位线端至源线端且流经忆阻器的电流,通过电流的大小可以获得忆阻器中存储的电阻(即数值),当忆阻器处于高阻态所得到的电流远小于忆阻器处于低阻态时的电流,甚至相对于忆阻器处于低阻态时的电流忽略不计(即可以作为0处理)。
若忆阻器单元为2T2R结构,则像素点的值可以通过2T2R结构中的两个忆阻器R1和R2的阻值差值来表示,例如,阻值差值为低(例如为0)表示第一值,例如阻值差值为高表示第二值。
例如,在字线端WL施加开启信号,在位线端BL施加读取电压,同时将源线端SL施加例如参考电压(例如0V),则可以获得从源线端到位线端且分别流经两个忆阻器的电流,通过电流的大小可以获得忆阻器中存储的电阻差值(即数值),当忆阻器处于低电阻差值所得到的电流远小于忆阻器处于低阻态时的电流,甚至相对于忆阻器处于高阻态时的电流忽略不计(即可以作为0处理)。
更具体而言,若忆阻器阵列的忆阻器单元为1T1R结构,则忆阻器单元的第一状态对应于该忆阻器单元中的忆阻器处于高阻态,忆阻器单元的第二状态对应于该忆阻器单元中的忆阻器具有低阻态。例如,若忆阻器阵列的忆阻器单元为2T2R结构,如图2B所示,忆阻器单元的第二状态对应于该忆阻器单元中的忆阻器R1具有低阻态同时忆阻器R2具有高阻态,忆阻器单元的第一状态对应于该忆阻器单元中的忆阻器R1和忆阻器R2同时具有高阻态或者同时具有低阻态,当忆阻器单元中的忆阻器R1和忆阻器R2同时具有低阻态时,相比忆阻器单元中的忆阻器R1和忆阻器R2同时具有高阻态电路能耗较高。
在步骤S130,使用结构元依次遍历待处理图像中选择的至少部分像素点,且在遍历待处理图像的过程中,对于每个被选择像素点,将每个被选择像素点与结构元中的阵列原点对齐,结构元在待处理图像中限定窗口区域,将结构元以及窗口区域通过忆阻器阵列进行乘和处理,根据乘和处理的计算结果以及二值形态学操作的类型得到对应的二值形态学结果。
例如,在该步骤S130中,根据需要,可以使用结构元依次遍历待处理图像中全部或部分像素点,也即所选择的至少部分像素点可以为处理图像中全部或部分像素点。
例如,结构元包括m行n列(m和n均为正整数),使用结构元依次遍历待处理图像中选择的至少部分像素点,对于选择的至少部分像素点中的每个被选择像素点,将被选择像素点与结构元中的阵列原点对齐(重叠),由结构元在待处理图像中限定一个m行n列的窗口区域,结构元以及窗口区域通过忆阻器阵列进行乘和处理,以得到乘和处理的计算结果;之后根据乘和处理的计算结果以及二值形态学操作的类型得到对应的二值形态学结果。
例如,针对结构元的m行中的每一行,针对结构元的m行中的每一行,将每一行中的n个像素点,按照在每一行中的n个位置,与窗口区域中与每一行对应的n个像素点一一对应相乘,得到每一行对应的n个乘积,由此针对结构元的m行共得到m*n个乘积,将m*n个乘积求和以得到乘和处理的计算结果。
更具体而言,对于第i行(i为正整数且小于等于m)的操作中,将结构元第i行的n个像素点,按照该n个像素点在第i行中的n个位置,与由结构元限定的m行n列的窗口区域中与结构元第i行的n个像素点对应的n个像素点一一对应相乘,得到第i行对应的n个乘积;当基于i的取值从1到m而进行了m次操作之后,实现对结构元的全部m行执行上述操作,对于结构元的m行共得到m*n个乘积,将m*n个乘积求和以得到乘和处理的计算结果。
例如,根据乘和处理的计算结果以及二值形态学操作的类型得到对应的二值形态学结果时,例如,二值形态学操作的类型为膨胀操作且乘和处理计算结果大于等于第二值,也即m*n个乘积中包括至少一个第二值,则对应的二值形态学结果为第二值,否则为第一值;例如,二值形态学操作的类型为腐蚀操作且乘和处理计算结果等于结构元中像素点的值为所述第二值的像素点的个数时,则对应的二值形态学结果为第二值,否则为第一值。
例如,通过步骤S130得到的对应的二值形态学结果为由结构元限定的m行n列的窗口区域中与结构元的基准像素点对应位置的像素点的二值形态学结果。
图5A为本公开至少一实施例提供的示例性的待处理图像和结构元的示意图。图5A中左侧为待处理图像,右侧为结构元,其中,行方向为从左到右,列方向为从上至下。结构元包括位于第一行、第一列的阵列原点。例如,从待处理图像第一行、第一列的像素点开始,逐个将结构元的阵列原点与被选择像素点对齐,得到由结构元在待处理图像限定的窗口区域,例如,图5A中虚线框为结构元的阵列原点与待处理图像中箭头所指位置的被选择像素点对齐时,结构元在待处理图像中所限定的窗口区域。
图5B为根据本公开至少一实施例提供的一种忆阻器阵列示意图。如图5B所示,忆阻器阵列包括阵列排布的多个忆阻器单元MR,且包括M行N列,也即每行有N个忆阻器单元,每列有M个忆阻器单元,例如每个忆阻器单元的结构可以为图2A所示的1T1R结构或者图2B所示的2T2R结构。对应地,该忆阻器阵列还包括M条字线、M条源线和N条位线,M条字线以及M条源线分别与M行对应,N条位线分别与N列对应,M和N为正整数。此外,如图所示,M条源线与电流检测模块(例如电流检测电路)连接,由该电流检测模块对对应的源线上的信号进行检测、累加和比较,以得到对应的二值形态学结果。
例如,结构元为m行n列,基于图5B所示忆阻器阵列执行步骤S130时可以包括:针对结构元的每一行,将开启信号逐行施加至窗口区域中与每一行对应的被选择行的字线,其中,开启信号用于打开被选择行对应的多个忆阻器单元;基于结构元中每一行的像素点的值,将输入信号分别施加至窗口区域中的对应于每一行的n个像素点对应位置的忆阻器单元的位线;获取被选择行中的源线上的输出电流信号,该输出电流信号对应于结构元的每一行对应的n个乘积;获取m行分别对应的输出电流信号后,将结构元的m行分别对应的m个输出电流信号进行累加,得到总输出电流信号,总输出电流信号对应于乘和处理的计算结果;根据乘和处理的计算结果以及二值形态学操作的类型得到对应的二值形态学结果,例如,所得到的对应的二值形态学结果为窗口区域中与结构元的基准像素点对应位置的像素点的二值形态学结果。
例如,在第一个周期将开启信号施加至窗口区域的第一行,打开窗口区域的第一行对应的多个忆阻器单元,使得第一行对应的多个忆阻器单元的晶体管处于开启状态,由此可以对第一行中的多个忆阻器单元进行读取操作;接着,在第二个周期将开启信号施加至窗口区域的第二行,打开窗口区域的第二行对应的多个忆阻器单元,使得第二行对应的多个忆阻器单元的晶体管处于开启状态,由此可以对第二行中的多个忆阻器单元进行读取操作,以此类推,直到第m个周期将开启信号施加至窗口区域的第m行,执行后续操作。
例如,在进行读取操作时,输入信号包括对应于第一值的第一输入信号和对应于第二值的第二输入信号,第一输入信号和第二输入信号的电平不同,例如,第一输入信号表示第一输入电压(例如接地电压),第二输入信号表示第二输入电压,且第二输入电压高于第一输入电压,例如,在一些示例中,第一输入电压表示0伏,第二输入电压表示0.15伏。
例如,输入信号为脉冲信号,每个脉冲周期的脉冲幅度由结构元对应位置的像素点的值决定。例如,将结构元的每列像素点的值按照输入方向转换为对应的输入信号,例如,将结构元第i列的第一个像素点的值至第m个像素点的值分别转换为对应的第一输入信号或者第二输入信号,从而得到对应于第i列的脉冲输入信号,将结构元的n列分别对应的脉冲输入信号施加至窗口区域中的对应于结构元的n列的忆阻器单元的位线,配合步骤S1301的字线信号,以得到乘和处理的计算结果。
例如,多个忆阻器单元的每个在接收对应的字线所施加的开启信号被打开且在对应的位线上被施加第二输入信号(例如施加第二输入电压,例如为0.15伏)而被读取时,若忆阻器单元为第一状态,也即忆阻器单元所对应的像素点的值为第一值,则该忆阻器单元在对应的源线上产生第一读取电流I1,若忆阻器单元为第二状态,也即忆阻器单元所对应的像素点的值为第二值,则该忆阻器单元在对应的源线上产生第二读取电流I2,通常第二读取电流I2远大于第一读取电流I1,例如,第一读取电流I1可以等于0。对于任一行忆阻器单元,在对这一行忆阻器单元进行读取操作时,对应的源线上产生电流为a*I1+b*I2,其中,a为这一行中为第一状态的忆阻器单元的个数,b为这一行中为第二状态的忆阻器单元的个数,如果I1等于0,那么对应的源线上产生电流为a*I1。根据乘和处理的计算结果以及二值形态学操作的类型得到对应的二值形态学结果时,若结构元的m行对应的总输出电流信号大于参考电流,则对应的二值形态学结果为第二值,否则为第一值。
在上述二值形态学操作为图像腐蚀操作时,根据图像腐蚀的原理,参考电流为I1*(m*n-V)+I2*V,其中,V为m行n列的结构元中像素点的值为第二值的数量,对于第一值为0(对应于白色)且第二值为1(对应于黑色)的情形,该参考电流代表计算值为V,例如对于图5A所示的结构元,此时的参考电流为13*I1+3*I2,对应于计算值为3;在上述二值形态学操作为图像膨胀操作时,根据图像膨胀的原理,参考电流为I1*(m*n-1)+I2,对于第一值为0(对应于白色)且第二值为1(对应于黑色)的情形,该参考电流代表计算值为1,例如对于图5A所示的结构元,此时的参考电流为15*I1+I2,对应于计算值为1。
对应地,如果第一读取电流I1等于0(例如包括实际为0或相对于第二读取电流基本上为0),且二值形态学操作为图像腐蚀操作,根据图像腐蚀的原理,可以将参考电流设置为I2*V,例如对于图5A所示的结构元,此时的参考电流为3*I2;例如,二值形态学操作为图像膨胀操作,根据图像膨胀的原理,可以将参考电流设置为I2,例如对于图5A所示的结构元,此时的参考电流为I2。
例如,在一些示例中,当结构元中第一值的数量较多时,第一读取电流I1虽然相对于I2很小但是不等于0,那么多个第一读取电流I1之和可能超过第二读取电流I2,从而造成膨胀操作的误判。因此为提高二值形态学结果的精度,对于二值形态学操作为图像膨胀操作时,参考电流可以简化设置为I2+(V-1)*I1,从而降低膨胀操作的误判率。
例如,在至少一个示例中,图5B所示的电流检测模块包括积分器和比较器,结构元每一行对应的输出电流经过积分器后转换为对应的电压信号并进行累加,从而得到对应于总输出电流信号的输出电压信号,将参考电流转换为经过积分器得到的参考电压,从而可以根据输出电压信号和参考电压利用比较器获取对应的二值形态学结果。例如,将总输出电流信号经积分器转换为对应的输出电压信号,若总输出电流信号对应的输出电压信号大于参考电压,则对应的二值形态学结果为第二值,否则为第一值。
例如,在本公开至少一实施例中,结构元具有相对于沿行方向的中轴对称的对称结构,例如,结构元的m行中第一行与第m行相同,第二行与第m-1行相同,第三行与第m-2行相同,以此类推。例如,参考图6A所示的结构元,该结构元中第1行与第5行相同,而第2行与第4行相同。此时,由于结构元的对称结构,所以在操作中对于彼此对称的两行所施加的位线的信号是相同的,那么可以同时将对称的两行相同的像素点的值转换为忆阻器阵列对应位置的忆阻器单元的位线信号,同时对窗口区域的两行像素点并行进行处理,从而加快处理效率,降低处理延时。
例如,当结构元具有相对于沿行方向的中轴对称的对称结构时,基于图5B所示忆阻器阵列执行步骤S130时可以包括:若结构元的第i行具有对称的第j行,将开启信号同时施加至窗口区域中与第i行对应的第一被选择行的字线以及窗口区域中与第j行对应的第二被选择行的字线;基于第i行或者第j行的像素点的值,将输入信号分别施加至窗口区域中的对应于结构元中第i行或者第j行的n个像素点对应位置的忆阻器单元的位线;得到第一被选择行中的源线上的第一输出电流信号和第二被选择行中的源线上的第二输出电流信号,例如,第一输出电流信号对应于第i行的n个乘积,第二输出电流信号对应于所述第j行的n个乘积,也即在一个周期内同时获得结构元中的两行对应的输出电流信号;获取m行分别对应的输出电流信号后,将结构元的m行分别对应的m个输出电流信号进行累加,得到总输出电流信号,总输出电流信号对应于乘和处理的计算结果;根据乘和处理的计算结果以及二值形态学操作的类型得到对应的二值形态学结果。
例如,在步骤S130后,存储步骤S130的判断结果,并且对于选择的至少部分像素点为待处理图像的全部像素点,本公开提供的基于忆阻器阵列实现二值形态学操作的方法还可以包括步骤S140:将待处理图像的全部像素点的二值形态学结果,根据全部像素点在待处理图像中的位置进行排列,以得到待处理图像的二值形态学结果。该步骤S140使用步骤S130的判断结果,并且例如通过软件或硬件基于判断结果执行,并且例如以二值化图像的形式输出待处理图像的二值形态学结果(例如参考图3A和图3B中的处理后图像)。
例如,在有的情形中,需要被处理的初始图像尺寸较大(例如远大于所适用的忆阻器阵列的尺寸),根据图像处理需求以及处理延时要求,可以对初始图像进行区域划分,将其划分为多个待处理图像,并对该多个待处理图像分别进行处理,例如,对多个待处理图像以串行或并行方式分别处理。例如,根据本公开至少一实施例,获取待处理图像可以包括对初始图像进行区域划分,以得到多个待处理图像,并且该基于忆阻器阵列实现二值形态学操作的方法还包括将多个待处理图像的二值形态学结果,根据多个待处理图像在初始图像中的位置关系进行对应地拼接,以得到初始图像的二值形态学结果。
例如,在一些示例中,将结构元从待处理图像的边界开始遍历,例如,将结构元的位于左上角的阵列原点与待处理图像的第一行、第一列的像素点对齐开始遍历,此时由于结构元的基准像素点可能位于结构元的任意位置,例如,结构元的基准像素点位于结构元的右下角,则所获取的待处理图像的二值形态学结果由待处理图像中的部分像素点的二值形态学结果组成,此时的待处理图像的边缘像素点可能未被处理。
例如,在另一些示例中,结构元的阵列原点也是结构元的基准像素点,且阵列原点不位于结构元的边界,将阵列原点与待处理图像的第一行、第一列的像素点对齐会导致结构元的部分像素点在待处理图像中不存在对应位置的像素点,也即此时针对m行n列的结构元所限定的窗口区域可能为t行s列,t为正整数且小于等于m,s为正整数且小于等于n。在这种情形,在执行步骤S130时可以不考虑结构元中的这些在待处理图像中不存在对应位置的像素点的部分,将结构元与窗口区域中的具有对应关系的p行q列像素点直接按照步骤S130进行处理,此时所获取的待处理图像的二值形态学结果由待处理图像中的全部像素点的二值形态学结果组成,但此种方法处理得到的待处理图像的二值形态学结果的边缘像素点可能产生处理误差。
因此,根据本公开至少一实施例,获取待处理图像可以包括:获取初始图像并对初始图像进行边缘像素点扩展以得到待处理图像,这里初始图像可以是完整图像,也可以是对更大尺寸的图像经过区域划分后得到的子图像。例如,初始图像为T行S列,初始图像包括四条侧边,即行方向上的两条侧边以及列方向上的两条侧边,边缘像素点扩展包括:将初始图像的行方向上的至少一条侧边向远离初始图像的方向共扩展p个像素点,其中,p为正整数且小于等于m-1;将初始图像的列方向上的至少一条侧边向远离初始图像的方向共扩展q个像素点,其中,q为正整数且小于等于n-1。例如,可以根据图像处理精度要求选择p和q的取值,例如,若需对图像边缘像素点进行二值形态学处理,则可以将初始图像的上侧边和下侧边向远离初始图像的方向共扩展m-1个像素点,将初始图像的左侧边和右侧边向远离初始图像的方向共扩展n-1个像素点。
例如,在一些示例中,初始图像为原始图像经过区域划分后的子图像,将初始图像的上侧边向远离初始图像的方向扩展1个像素点,将初始图像的下侧边向远离初始图像的方向扩展m-2个像素点,此时由扩展后的上侧边、扩展后的下侧边、初始图像的左侧边、初始图像的右侧边在原始图像中所限定的区域为待处理图像。
需要说明的是,待处理图像中对应于初始图像的为初始图像部分,待处理图像中除初始图像部分外的其他部分为扩展部分,扩展部分的像素点的值可以为第一值或由初始图像的相邻子图像对应行部分或列部分得到,或者可以将初始图像的部分像素点沿初始图像的侧边对称翻转得到,本公开对此不作限制。此外,若待处理图像为经过边缘像素点扩展后的图像,则窗口区域不超出待处理图像的范围。
在下面以一个具体的示例对本公开的上述部分实施例提供的方法进行非限制的描述。
图6A为本公开至少一实施例的结构元示意图,其中,该结构元为5行5列,选择该结构元左上角像素点为阵列原点,例如,该结构元中第三行、第三列的像素点为基准像素点。
图6B为本公开一实施例提供的原始图像的示意图,原始图像为完整图像,例如,对原始图像进行区域划分得到多个初始图像,如图6B中每个黑色粗线框所示。
下面以图6C为例具体说明针对图6A所示的结构元以及图6B所示的初始图像执行本公开提供的基于图5B所示的忆阻器阵列实现图像二值形态学操作方法的一优选实施例。
如图6C所示,该实施例的方法中,在获取初始图像及结构元之后,对初始图像进行图像区域划分,得到n个区域,即n个部分初始图像。然后,对于每个部分初始图像,进行边缘像素点扩展以得到对应的待处理图像,将待处理图像映射至忆阻器阵列;然后,使用结构元依次遍历待处理图像,获取每个被选择像素点对应的二值形态学结果。之后,将基于每个待处理图像获得的二值形态学结果基于相应的部分初始图像在整个初始图像中的位置对应关系进行拼接,从而可以得到初始图像的二值形态学结果。
首先,如图6C所示,执行图像区域划分,以得到多个部分初始图像,具体过程如前所述,这里不再赘述。
接着,如图6C所示,对每一个部分初始图像执行边缘像素点扩展,以得到每个部分初始图像对应的扩展后图像。
例如,图6D为本公开一实施例涉及的初始图像的示意图,例如,该图6D所示的初始图像为图6B所示的初始图像的右下角箭头所指的部分初始图像,当然该图6D所示的初始图像也可以本身是独立存在的。该图6D所示的初始图像包括100行以及100列。图6E为对图6D所示的初始图像进行边缘像素点扩展后得到将由忆阻器阵列处理的待处理图像,该待处理图像包括104行以及104列,其中,黑色粗线框为待处理图像中的初始图像部分。
例如在一个示例中,为使得初始图像中的每个像素点都能被处理,也即对初始图像的边缘像素点也能够进行二值形态学操作的处理,将基准像素点与初始图像的四个顶角的像素点对齐,确定初始图像每个边缘的扩展行数或者列数。例如,将基准像素点与初始图像的第一行、第一列的像素点对齐,则为使初始图像的第一行、第一列的像素点能够得到二值形态学结果,可以将初始图像的上侧边向上扩展两个像素点,左侧边向左扩展两个像素点;同理,为使初始图像的第100行、第100列的像素点能够得到二值形态学结果,可以将初始图像的下侧边向下扩展两个像素点,初始图像的右侧边向右扩展两个像素点,此时由四条扩展后侧边所限定的区域为待处理图像,如图6E所示。例如,初始图像的右侧边和下侧边与原始图像重合,此时待处理图像的右侧和下侧扩展部分的像素点的值可以填充相对于右侧或者下侧边为轴对称的初始图像部分中对应位置像素点的值,例如,以右侧边为例,将待处理图像中的第101列以及第102列的像素点的值以初始图像的右侧边为轴分别对称填充至第104列以及第103列。
接着,如图6C所示,将待处理图像映射至忆阻器阵列,具体方法如步骤S120所述,这里不再赘述。
接着,如图6C所示,使用图6A所示的结构元依次遍历图6E所示的待处理图像,执行步骤S130。例如,在遍历待处理图像的过程中,对于第i个被选择像素点,获取第i个被选择像素点对应的窗口区域,针对结构元所具有的5行中的第j行,逐行将开启信号输入窗口区域第j行对应的字线,并将结构元第j行的5个像素点的值转换为对应的输入信号输入窗口区域中对应该5个像素点位置的忆阻器单元的位线,同时记录窗口区域第j行对应的源线上的输出电流信号;当结构元的5行均执行完上述操作后,计算结构元的5行对应的输出电流信号之和,也即总输出电流,根据总输出电流判断得到结构元中基准像素点在窗口区域所对应位置的像素点的二值形态学结果。
下面以第i个被选择像素点为图6E所示的待处理图像的第一行、第一列的像素点为例,具体说明步骤S130的执行过程。
图6F为本公开一实施例提供的图像二值形态学处理的原理示意图,如图6F所示,将阵列原点与待处理图像的第一行、第一列的像素点对齐,由结构元在待处理图像中限定窗口区域,也即图6F中的虚线框所示。在第一个周期,将结构元的第一行与窗口区域的第一行对应位置的像素点一一相乘,得到结构元第一行对应的5个乘积;在第二个周期,将结构元的第二行与窗口区域的第二行对应位置的像素点一一相乘,得到结构元第二行对应的5个乘积,以此类推,经过五个周期得到25个乘积,将25个乘积求和得到乘和处理的计算结果。如图所示,待处理图像的第一行、第一列的像素点所对应的乘和处理计算结果为7。
根据前述图像膨胀操作的原理,若乘和计算结果大于等于1,则对应的膨胀结果为1,否则为0,此时乘和处理计算结果为7且大于1,则待处理图像的第一行、第一列的像素点所对应的膨胀结果为1,也即窗口区域中与结构元的基准像素点对应位置的像素点(图6F中的被判断像素点)的膨胀结果为1。根据前述图像腐蚀操作的原理,若乘和处理计算结果大于等于结构元中像素点的值为1的个数(这里图6A所示结构元中像素点的值为1的个数为13),则对应的腐蚀结果为1,否则为0,此时乘和处理计算结果为7且小于13,则待处理图像的第一行、第一列的像素点所对应的腐蚀结果为0,也即窗口区域中与结构元的基准像素点对应位置的像素点(图6F中的被判断像素点)的腐蚀结果为0。
图6G为本公开另一实施例提供的图像二值形态学处理的过程示意图,如图6G所示,由于结构元具有相对于沿行方向的中轴对称的对称结构,也即结构元的第一行与第五行相同,第二行与第四行也相同,由于窗口区域中各个像素点对应位置的忆阻器单元的位线的输入信号形式由结构元对应位置的像素点的值决定,对于结构元的第一行和第五行,或者第二行和第四行,窗口区域输入的位线信号相同,因而可以同时对窗口区域的第一行和第五行、或者第二行和第四行进行乘和处理,从而3个周期即可完成结构元与窗口区域的乘和处理。
例如,在第一个周期,将开启信号施加至窗口区域第一行和第五行的字线,使得窗口区域中的第一行和第五行所对应的多个忆阻器单元的晶体管处于开启状态;结构元的第一行与第五行仅有第三个像素点的值为1,则窗口区域所对应的5根位线中只有第三根位线输入脉冲信号(例如,脉冲信号的幅值为0.15伏左右,脉冲信号的宽度为50ns),其他位线均保持低电平状态(例如接地),从而实现结构元的第一行与窗口区域第一行、结构元的第五行与窗口区域的第五行的乘和处理,并获取窗口区域的第一行以及第五行对应的源线上的输出电流信号;以此类推,在第二个周期,获取窗口区域的第二行以及第四行对应的源线上的输出电流信号,在第三个周期,获取窗口区域的第三行对应的源线上的输出电流信号。
三个周期结束后,将结构元的5行分别对应的5个电流信号进行累加,得到总输出电流信号,将总输出电流信号与参考电流信号比较,得到被判断像素点的二值形态学结果。例如,图5B的电流检测模块包括积分器和比较器,通过积分器获取5个输出电流信号累加后的输出电压信号,若输出电压信号大于经过积分器转换的参考电压,则被判断像素点的二值形态学结果为1,否则为0。例如,当二值形态学操作为膨胀操作,忆阻器阵列仅有1个忆阻器单元为第二状态,且该忆阻器单元的位线输入脉冲信号(例如,脉冲信号的幅值为0.15伏左右,脉冲信号的宽度为50ns),其他忆阻器单元输入低电平信号(例如接地),则该忆阻器单元所在源线的输出电流信号流经积分器后的电压值为参考电压;当二值形态学操作为腐蚀操作,忆阻器阵列中有14个忆阻器单元为第二状态,且这些忆阻器单元的位线输入脉冲信号(例如,脉冲信号的幅值为0.15伏左右,脉冲信号的宽度为50ns),其他忆阻器单元输入低电平信号(例如接地),这些忆阻器单元所在源线的输出电流信号之和流经积分器后的电压值为参考电压。
最后,判断是否完成所有像素点的处理,也即是否得到初始图像所有像素点对应的二值形态学结果,若未完成,则继续对下一个被选择像素点执行步骤S130,若已完成则停止扫描,得到待处理图像所对应的二值形态学结果。
本公开至少一实施例还提供一种电子装置,图7为本公开至少一实施例提供的一种电子装置的示意性框图。
如图7所示,电子装置800包括至少一个忆阻器阵列801以及控制器802,忆阻器阵列801被配置为执行乘和计算以获取二值形态学结果,控制器802被配置为执行步骤S110至S130。例如,忆阻器阵列801和控制器802可以通过系统总线互相通信。
例如,忆阻器阵列801可以如图5B所示,忆阻器阵列包括阵列排布的多个忆阻器单元MR,且包括M行N列,也即每行有N个忆阻器单元,每列有M个忆阻器单元,每个忆阻器单元的结构可以为图2A所示的1T1R结构或者图2B所示的2T2R结构。该忆阻器阵列还包括M条字线、M条源线和N条位线,M条字线以及M条源线分别与M行对应,N条位线分别与N列对应,M和N为正整数。
例如,控制器802可以包括处理电路和存储器,该存储器用于非瞬时性地存储计算机可读指令,并且该存储器还可以存储处理所需的初始数据以及处理产生的数据(包括中间数据或最终数据),例如,控制器执行存储器上所存储的程序而实现二值形态学操作的方法的实现方式与前述实现二值形态学操作的方法实施例部分所提及的实现方式相同,这里不再赘述。
例如,电子装置800还包括电流检测模块803;例如,电流检测模块803包括累加单元以及比较单元,累加单元配置为对忆阻器阵列的源线的输出电流信号进行采集和累加,以得到总输出电流信号;比较单元配置为比较总输出信号与参考电流的大小关系。例如,如图5B所示,M条源线与电流检测模块803相连,由电流检测模块803对对应的源线上的信号进行检测、累加和比较,以得到对应的二值形态学结果。
例如,累加单元可以为积分器,该积分器被配置为将忆阻器阵列的源线的输出电流信号转换为对应的电压信号并进行累加,以得到输出电压信号;比较单元用于比较输出电压信号与参考电流通过积分器得到的对应的参考电压信号的大小关系。
例如,如图7示,电子装置800还可以进一步包括源线驱动电路805、字线驱动电路804以及位线驱动电路806。例如,字线驱动电路804被配置为对忆阻器阵列的M条字线分别施加控制信号。例如,位线驱动电路806被配置为对忆阻器阵列的N条位线施加输入信号。例如,源线驱动电路805被配置为对忆阻器阵列的M条源线的输出信号进行控制,例如,源线驱动电路805包括控制开关,且控制开关接收对应行的字线的控制信号以开启或截止,例如,忆阻器阵列的每一行的字线的控制信号同时施加至源线驱动电路中的控制开关,此时若忆阻器阵列的第i行的字线施加的控制信号为开启信号,则源线驱动电路中对应于第i行的控制开关开启,则第i行的源线上的输出电流可以流入电流检测模块803执行后续操作,i为正整数且小于等于结构元的行数。
此外,电子装置800还可包括输入接口和输出接口(未示出),忆阻器阵列801、控制器802、输入接口和输出接口之间也可以通过系统总线互相通信。例如,输入接口被配置为从外部计算机设备、从用户等处接收指令以控制忆阻器阵列和控制器的运行等。例如,通过输入接口和输出接口与忆阻器阵列801、控制器802通信的外部设备可被包括在提供任何类型的用户可与之交互的用户界面的环境中。用户界面类型的示例包括图形用户界面、自然用户界面等。例如,图形用户界面可接受来自用户采用诸如键盘、鼠标、遥控器等之类的输入设备的输入,以及在诸如显示器之类的输出设备上提供输出。此外,自然用户界面可使得用户能够以无需受到诸如键盘、鼠标、遥控器等之类的输入设备强加的约束的方式来与并行加速装置交互。相对地,自然用户界面可依赖于语音识别、触摸和指示笔识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、语音和语音、视觉、触摸、手势、以及机器智能等。
例如,电子装置800的运行过程可以参考上述基于忆阻器阵列实现二值形态学操作的方法实施例中的相关描述,重复之处在此不再赘述。
对于本公开,还有以下几点需要说明:
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种基于忆阻器阵列实现二值形态学操作的方法,其中,所述忆阻器阵列包括阵列排布的多个忆阻器单元,所述方法包括:
获取待处理图像以及用于所述二值形态学操作的结构元,其中,所述待处理图像以及所述结构元均为二值化图像,均包括阵列排布的多个像素点,每个像素点的值为彼此不同的第一值和第二值中之一,所述结构元包括阵列原点;
将所述待处理图像中的每个像素点的值映射至所述忆阻器阵列对应的忆阻器单元;
使用所述结构元依次遍历所述待处理图像中选择的至少部分像素点,且在遍历所述待处理图像的过程中,对于每个被选择像素点,将所述每个被选择像素点与所述结构元中的所述阵列原点对齐,所述结构元在所述待处理图像中限定窗口区域,将所述结构元以及所述窗口区域通过所述忆阻器阵列进行乘和处理,根据所述乘和处理的计算结果以及所述二值形态学操作的类型得到对应的二值形态学结果,其中,所述忆阻器阵列配置为可进行乘和运算。
2.根据权利要求1所述的方法,其中,所述结构元包括m行n列,m和n分别为正整数,
将所述结构元以及所述窗口区域通过所述忆阻器阵列进行乘和处理,包括:
针对所述结构元的m行中的每一行,将所述每一行中的n个像素点,按照在所述每一行中的n个位置,与所述窗口区域中与所述每一行对应的n个像素点一一对应相乘,得到所述每一行对应的n个乘积,
由此针对所述结构元的m行共得到m*n个乘积,将所述m*n个乘积求和以得到所述乘和处理的计算结果。
3.根据权利要求2所述的方法,其中,所述忆阻器阵列包括M行N列,所述忆阻器阵列还包括M条字线、M条源线和N条位线,所述M条字线以及所述M条源线分别与所述M行对应,所述N条位线分别与所述N列对应,M和N为正整数;
所述针对所述结构元的m行中的每一行,将所述每一行中的n个像素点,按照在所述每一行中的n个位置,与所述窗口区域中与所述每一行对应的n个像素点一一对应相乘,得到所述每一行对应的n个乘积,包括:
将开启信号逐行施加至所述窗口区域中与所述每一行对应的被选择行的字线,其中,所述开启信号用于打开所述被选择行对应的多个忆阻器单元;
基于所述结构元中所述每一行的像素点的值,将输入信号分别施加至所述窗口区域中的对应于所述每一行的n个像素点对应位置的忆阻器单元的位线,其中,所述输入信号包括对应于所述第一值的第一输入信号和对应于所述第二值的第二输入信号,所述第一输入信号和所述第二输入信号不同;
获取所述被选择行中的源线上的输出电流信号,其中,所述输出电流信号对应于所述每一行对应的n个乘积。
4.根据权利要求3所述的方法,其中,将所述m*n个乘积求和以得到所述乘和处理的计算结果,包括:
将所述结构元的m行分别对应的m个输出电流信号进行累加,得到总输出电流信号,所述总输出电流信号对应于所述乘和处理的计算结果。
5.根据权利要求4所述的方法,其中,所述多个忆阻器单元中的每个具有第一状态和第二状态,所述第一状态不同于所述第二状态,
所述多个忆阻器单元的每个在接收对应的字线所施加的开启信号被打开且在对应的位线上被施加所述第二输入信号而被读取时,响应于所述第一状态,所述多个忆阻器单元的每个在对应的源线上产生第一读取电流I1,响应于所述第二状态,所述多个忆阻器单元的每个在对应的源线上产生第二读取电流I2,
所述根据所述乘和处理的计算结果以及所述二值形态学操作的类型得到对应的二值形态学结果,包括:
响应于所述总输出电流信号大于参考电流,所述对应的二值形态学结果为所述第二值,否则为所述第一值;或者
将所述总输出电流信号转换为对应的输出电压信号,响应于所述总输出电流信号对应的输出电压信号大于参考电压,所述对应的二值形态学结果为所述第二值,否则为所述第一值。
6.根据权利要求1所述的方法,其中,所述获取待处理图像包括:
获取初始图像并对所述初始图像进行边缘像素点扩展以得到所述待处理图像。
7.根据权利要求6所述的方法,其中,所述初始图像为T行S列,所述初始图像包括行方向上的两条侧边和列方向上的两条侧边,所述结构元包括m行n列,T、S、m和n分别为正整数,
所述对获取的所述初始图像进行边缘像素点扩展,包括:
将所述初始图像的行方向上的至少一条侧边向远离所述初始图像的方向共扩展p个像素点,其中,p为正整数且小于等于m-1;
将所述初始图像的列方向上的至少一条侧边向远离所述初始图像的方向共扩展q个像素点,其中,q为正整数且小于等于n-1。
8.一种电子装置,包括:
忆阻器阵列,其中,所述忆阻器阵列配置为可进行乘和运算;
控制器,其中,所述控制器配置为执行以下步骤:
获取待处理图像以及用于所述二值形态学操作的结构元,其中,所述待处理图像以及所述结构元均为二值化图像,均包括阵列排布的多个像素点,每个像素点的值为彼此不同的第一值和第二值中之一,所述结构元包括阵列原点;
将所述待处理图像中的每个像素点的值映射至所述忆阻器阵列对应的忆阻器单元;
使用所述结构元依次遍历所述待处理图像中选择的至少部分像素点,且在遍历所述待处理图像的过程中,对于每个被选择像素点,将每个被选择像素点与所述结构元中的所述阵列原点对齐,所述结构元在所述待处理图像中限定窗口区域,将所述结构元以及所述窗口区域通过所述忆阻器阵列进行乘和处理,根据所述乘和处理的计算结果以及所述二值形态学操作的类型得到对应的二值形态学结果。
9.根据权利要求8所述的电子装置,还包括电流检测模块,其中,所述电流检测模块包括累加单元以及比较单元;
所述累加单元配置为对所述忆阻器阵列的源线的输出电流信号进行采集和累加,以得到总输出电流信号;
所述比较单元配置为比较所述总输出信号与参考电流的大小关系。
10.根据权利要求9所述的电子装置,其中,所述忆阻器阵列包括阵列排布的多个忆阻器单元,所述忆阻器阵列包括M行N列,所述M条字线以及所述M条源线分别与所述M行对应,所述N条位线分别与所述N列对应;
所述忆阻器单元为1T1R或2T2R结构。
CN202011055269.1A 2020-09-29 2020-09-29 基于忆阻器阵列实现二值形态学操作的方法及电子装置 Active CN112150343B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011055269.1A CN112150343B (zh) 2020-09-29 2020-09-29 基于忆阻器阵列实现二值形态学操作的方法及电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011055269.1A CN112150343B (zh) 2020-09-29 2020-09-29 基于忆阻器阵列实现二值形态学操作的方法及电子装置

Publications (2)

Publication Number Publication Date
CN112150343A true CN112150343A (zh) 2020-12-29
CN112150343B CN112150343B (zh) 2024-09-10

Family

ID=73895073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011055269.1A Active CN112150343B (zh) 2020-09-29 2020-09-29 基于忆阻器阵列实现二值形态学操作的方法及电子装置

Country Status (1)

Country Link
CN (1) CN112150343B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113539327A (zh) * 2021-07-09 2021-10-22 中国科学院上海微系统与信息技术研究所 一种相变存储单元实现快速逻辑计算装置及数据检索方法
CN116805370A (zh) * 2022-03-15 2023-09-26 清华大学 图像识别方法、装置及相关设备
CN117157990A (zh) * 2021-04-12 2023-12-01 特忆智能科技 基于忆阻器的人工智能像素传感器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109448068A (zh) * 2018-10-16 2019-03-08 西南大学 一种基于忆阻器交叉阵列的图像重构系统
CN109800729A (zh) * 2019-01-28 2019-05-24 清华大学 信号处理装置及信号处理方法
CN111125616A (zh) * 2019-12-09 2020-05-08 华中科技大学 一种二维离散傅里叶变换运算电路及运算方法
CN111553415A (zh) * 2020-04-28 2020-08-18 哈尔滨理工大学 一种基于忆阻器的esn神经网络图像分类处理方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109448068A (zh) * 2018-10-16 2019-03-08 西南大学 一种基于忆阻器交叉阵列的图像重构系统
CN109800729A (zh) * 2019-01-28 2019-05-24 清华大学 信号处理装置及信号处理方法
US20200237311A1 (en) * 2019-01-28 2020-07-30 Tsinghua University Signal processing device and signal processing method
CN111125616A (zh) * 2019-12-09 2020-05-08 华中科技大学 一种二维离散傅里叶变换运算电路及运算方法
CN111553415A (zh) * 2020-04-28 2020-08-18 哈尔滨理工大学 一种基于忆阻器的esn神经网络图像分类处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨玖;王丽丹;段书凯;: "一种反向串联忆阻突触电路的设计及应用", 中国科学:信息科学, no. 03, 20 March 2016 (2016-03-20) *
胡小方;段书凯;王丽丹;廖晓峰;: "忆阻器交叉阵列及在图像处理中的应用", 中国科学:信息科学, no. 04, 15 April 2011 (2011-04-15) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117157990A (zh) * 2021-04-12 2023-12-01 特忆智能科技 基于忆阻器的人工智能像素传感器
CN113539327A (zh) * 2021-07-09 2021-10-22 中国科学院上海微系统与信息技术研究所 一种相变存储单元实现快速逻辑计算装置及数据检索方法
CN116805370A (zh) * 2022-03-15 2023-09-26 清华大学 图像识别方法、装置及相关设备

Also Published As

Publication number Publication date
CN112150343B (zh) 2024-09-10

Similar Documents

Publication Publication Date Title
CN112150343B (zh) 基于忆阻器阵列实现二值形态学操作的方法及电子装置
Wang et al. In situ training of feed-forward and recurrent convolutional memristor networks
CN110807519B (zh) 基于忆阻器的神经网络的并行加速方法及处理器、装置
TWI661428B (zh) 神經形態權重單元及其形成的方法以及人工神經網路
CN111095417B (zh) 使用非易失性半导体存储元件的神经网络运算电路
CN107533858B (zh) 交叉杆阵列、图像处理器及对存储单元进行编程的方法
US9691479B1 (en) Method of operating and apparatus of memristor arrays with diagonal lines interconnect between memristor cells
TWI699711B (zh) 記憶體裝置及其製造方法
US20210224643A1 (en) Max pooling processor based on 1t1r memory
CN113643175B (zh) 数据处理方法及电子装置
KR20170075741A (ko) 벡터 프로세싱을 위한 멤리스티브 내적 엔진
Chen et al. Design of resistive synaptic array for implementing on-chip sparse learning
CN112215855B (zh) 基于忆阻器阵列实现图像连通区域判断的方法及电子装置
Song et al. ITT-RNA: Imperfection tolerable training for RRAM-crossbar-based deep neural-network accelerator
CN115458005A (zh) 数据处理方法和存算一体装置、电子设备
CN114861900B (zh) 用于忆阻器阵列的权重更新方法和处理单元
CN111950569B (zh) 基于忆阻器阵列实现图像连通区域标记的方法、电子装置
Yilmaz et al. Image processing by a programmable grid comprising quantum dots and memristors
US20190114542A1 (en) Electronic apparatus and control method thereof
US11881260B2 (en) Neuromorphic computing device and method of designing the same
CN115796252A (zh) 权重写入方法及装置、电子设备和存储介质
Ahmad et al. Analysis of VMM operations on 1S1R crossbar arrays and the influence of wire resistances
Messaris et al. Multi-tasking and memcomputing with memristor cellular nonlinear networks
CN114020239B (zh) 数据处理方法及电子装置
Kim et al. In‐Depth Analysis of One Selector–One Resistor Crossbar Array for Its Writing and Reading Operations for Hardware Neural Network with Finite Wire Resistance

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