CN113254416A - 一种全脑数据的存储方法、***、电子设备及存储介质 - Google Patents
一种全脑数据的存储方法、***、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113254416A CN113254416A CN202110581589.9A CN202110581589A CN113254416A CN 113254416 A CN113254416 A CN 113254416A CN 202110581589 A CN202110581589 A CN 202110581589A CN 113254416 A CN113254416 A CN 113254416A
- Authority
- CN
- China
- Prior art keywords
- data
- massive
- picture data
- labeled
- different levels
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/54—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Medical Treatment And Welfare Office Work (AREA)
Abstract
本公开提供了一种全脑数据的存储方法,包括:获取原始数据集、标注数据集及标签数据集;将各数据集进行预处理,分别得到海量的原始图片数据、标注图片数据及标签图片数据;将海量的原始图片数据、标注图片数据及标签图片数据进行下采样分级处理,得到多个不同级别的海量原始图片数据、海量标注图片数据及海量标签图片数据;将多个不同级别的海量原始图片数据、海量标注图片数据及海量标签图片数据分别存储至分布式存储***目录树中,包括:发起数据存储请求,并根据节点信息选取一主数据存储节点;将各图片数据依次存储至该主数据存储节点和其他数据存储节点,并将存储结果输出至客户端。本公开还提供了一种全脑数据的存储***、电子设备及介质。
Description
技术领域
本公开涉及计算机数据存储技术领域,具体涉及一种全脑数据的存储方法、***、电子设备及存储介质。
背景技术
随着人工智能的发展,生物医学领域的进步,全脑数据的持久化存储变得尤为重要,其不仅需要大数据量的存储空间,还能进行快速的检索和追踪。现有技术中的存储方式不再满足需求,其存在存储空间小,访问速度低,不能提供大数据量的读写操作等缺陷。因此针对全脑数据的这种情况,需提供一种高效的快速存储及检索的分布式存储方案尤为重要。
发明内容
为解决上述现有技术中存在的技术问题,本公开提供了一种全脑数据的存储方法、***、电子设备及存储介质,该方法基于分布式存储***的存储架构实现了将海量的脑神经细胞数据进行分布式存储,并能够进行全脑数据和全脑lable数据的快速查询,为这些数据集的可视化提供了方便的接口和实现方式。
本公开的第一个方面提供了全脑数据的存储方法,包括:S1,获取多个全脑细胞数据集,其中,该多个全脑细胞数据集包括:原始数据集、标注数据集及标签数据集;S2,将原始数据集、标注数据集及标签数据集进行预处理,分别得到海量原始图片数据、海量标注图片数据及海量标签图片数据;S3,将海量原始图片数据、海量标注图片数据及海量标签图片数据进行下采样分级处理,得到多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据;S4,将多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据分别存储至分布式存储***目录树中,包括:S41,客户端向服务器中的管理节点发起数据存储请求,管理节点获取可进行数据存储的多个数据存储节点,并将多个数据存储节点的节点信息输出至客户端;S42,客户端根据节点信息选取一主数据存储节点;S43,将多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据依次存储至该主数据存储节点,当主数据存储节点存储满载后,并根据分布式存储***的目录树结构依次将未存储的图片数据存储至多个数据存储节点中的其他数据存储节点,直至将全部的图片数据存储完毕,并将存储结果输出至客户端。
进一步地,将原始数据集、标注数据集及标签数据集进行预处理,分别得到海量原始图片数据、海量标注图片数据及海量标签图片数据,包括:将原始数据集、标注数据集及标签数据集进行对齐与去重处理,得到去重后的原始数据集、去重后的标注数据集及标注数据集标签数据集;根据预置的切割规则,将去重后的原始数据集、去重后的标注数据集及标注数据集标签数据集进行切割,分别得到海量原始图片数据、海量标注图片数据及海量标签图片数据。
进一步地,根据预置的切割规则,将去重后的原始数据集、去重后的标注数据集及标注数据集标签数据集进行切割,包括:将去重后的原始数据集、去重后的标注数据集及标注数据集标签数据集中的细胞数据分别在其三维方向上进行切割,得到海量原始图片数据、海量标注图片数据及海量标签图片数据。
进一步地,将海量原始图片数据、海量标注图片数据及海量标签图片数据进行下采样分级处理,包括:将海量原始图片数据、海量标注图片数据及海量标签图片数据进行n次2n倍下采样处理,得到n+1个不同级别的海量原始图片数据、n+1个不同级别的海量标注图片数据及n+1个不同级别的海量标签图片数据,n为正整数。
进一步地,客户端根据节点信息选取一主数据存储节点,包括:根据多个数据存储节点的负载信息及当前作为主节点的次数信息,在多个数据存储节点中选取一主数据存储节点。
进一步地,多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据中的元数据存储至分布式存储***中的管理节点。
进一步地,该方法还包括:根据索引值对多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据进行检索,获取该索引值所对应的图片数据。
本公开的第二个方面提供了一种全脑数据的存储***,包括:数据获取模块,用于获取多个全脑细胞数据集,其中,该多个全脑细胞数据集包括:原始数据集、标注数据集及标签数据集;数据预处理模块,用于将原始数据集、标注数据集及标签数据集进行预处理,分别得到海量原始图片数据、海量标注图片数据及海量标签图片数据;数据分级处理模块,用于将海量原始图片数据、海量标注图片数据及海量标签图片数据进行下采样分级处理,得到多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据;数据存储模块,用于将多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据分别存储至分布式存储***目录树中,包括:客户端向服务器中的管理节点发起数据存储请求,管理节点获取可进行数据存储的多个数据存储节点,并将多个数据存储节点的节点信息输出至客户端;该客户端根据节点信息选取一主数据存储节点;将多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据依次存储至该主数据存储节点,当主数据存储节点存储满载后,并根据分布式存储***的目录树结构依次将未存储的图片数据存储至多个数据存储节点中的其他数据存储节点,直至将全部的图片数据存储完毕,并将存储结果输出至该客户端。
本公开的第三个方面提供了一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现本公开的第一个方面提供的全脑数据的存储方法。
本公开的第四个方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现本公开的第一个方面提供的全脑数据的存储方法。
本公开提供的一种全脑数据的存储方法、***、电子设备及存储介质,支持各种数据类型、各种格式的脑数据集的存储,以及各种标签数据集和标注数据集的分布式存储,并且能够进行全脑数据、全脑标签数据及标注数据的快速查询,为这些数据集的可视化提供了方便的接口和实现方式。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的全脑数据的存储***方法的应用场景;
图2示意性示出了根据本公开一实施例的全脑数据的存储***方法的流程图;
图3示意性示出了根据本公开一实施例的全脑细胞数据示意图;
图4示意性示出了根据本公开一实施例的标签全脑细胞数据示意图;
图5示意性示出了根据本公开一实施例最低分辨率的完整平铺图像示意图;
图6示意性示出了根据本公开一实施例的全脑数据预处理的方法流程图;
图7示意性示出了根据本公开一实施例的全脑数据的存储***的方框图;
图8示意性示出了根据本公开一实施例的数据预处理模块的方框图;
图9示意性示出了根据本公开一实施例的适于实现上文描述的方法的电子设备方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的***”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的***等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。
本公开提供的一种全脑数据的存储方法、***、电子设备及存储介质,该方法基于分布式存储***实现了将海量的脑神经细胞数据进行分布式存储,该方法支持各种数据类型、各种格式的脑数据集的存储,以及各种标签数据集和标注数据集的分布式存储,并且能够进行全脑数据、全脑标签数据及全脑标注数据的快速查询,为这些数据集的可视化提供了方便的接口和实现方式。
图1示意性示出了根据本公开实施例的可以应用于全脑数据的存储方法的示例性***架构100。需要注意的是,图1所示仅为可以应用本公开实施例的***架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、***、环境或场景。
如图1所示,根据该实施例的***架构100可以包括终端设备101、102,传输介质103和电子显微镜104。传输介质102用以在终端设备101、102和电子显微镜104之间提供数据传输的介质。传输介质103可以包括各种连接类型,例如有线传输数据线、U盘等等。
用户可以使用终端设备101、102通过传输介质103与电子显微镜104进行交互,以传输数据等。终端设备101、102上可以安装有各种通讯客户端应用,例如各软件计算***、图片处理工具、网页浏览器应用、即时通信工具、社交平台软件等(仅为示例)。
终端设备101、102可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于笔记本和台式计算机等等,还可以为提供各种服务的服务器,例如部署有分布式存储***(HDFS)的服务器,其可以为Linux***或Windows***等,通过客户端对服务端进行请求指令,进行相应的数据处理与存储。
电子显微镜104可以是蔡司或者其他的电子显微镜,用以捕捉全脑细胞数据,即原始全脑细胞数据,本公开对电子显微镜104的型号及性能不做限定,其具备细胞扫描以及扫描精度控制即可。
需要说明的是,本公开实施例所提供的全脑数据的存储方法一般可以由终端设备101、102执行。相应地,本公开实施例所提供的全脑数据的存储***一般可以部署于终端设备101、102中。本公开实施例所提供的终端设备101、102方法也可以由不同于终端设备101、102且能够与电子显微镜104和/或终端设备101、102进行数据传输的服务器或服务器集群执行。相应地,本公开实施例所提供的全脑数据的存储***也可以设置于不同于终端设备101、102且能够与电子显微镜104和/或终端设备101、102进行数据传输的服务器或服务器集群中。
应该理解,图1中的终端设备、传输介质和电子显微镜的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、传输介质和电子显微镜。
图2示意性示出了根据本公开实施例的全脑数据的存储方法的流程图。
如图2所示,该全脑数据的存储方法包括:
在操作S1,获取多个全脑细胞数据集,其中,该多个全脑细胞数据集包括:原始数据集、标注数据集及标签数据集。
本公开的实施例中,全脑细胞数据为大脑神经元细胞,其通过电子显微镜在特定的扫描精度下捕捉得到,其数量一般为几千个,例如,该全脑细胞数据集中包括Z层全脑细胞数据,假设Z取300,则在300层的全脑细胞数据可包括300×20×20(即120000)个脑细胞数据块,其中,20×20指的是在X、Y轴方向上的数据块,每个脑细胞数据块的切面大约是2048×2048或其他像素。该电子显微镜的扫描的灰度数据为典型的每像素8位或16位或32位或64位的灰度图像,如图3所示为电子显微镜在特定的扫描精度下捕捉得到某个全脑细胞数据示意图,以每像素8位为例,编码以8位保存,来表示可能数以亿计的细胞,因此可采用uint8的数据类型进行存储。此外,这类数据也可以成为三维体素数据。
相应地,标注数据集及标签数据集中也包含Z层的全脑细胞数据,标注数据集是将显微镜采集的全脑细胞数据集(即原始细胞数据集)通过第一算法模型进行细胞标注后生成的数据集,标签数据集为将显微镜采集的全脑细胞数据集通过第二算法模型进行细胞识别及贴上标签后生成的数据集。其中,第一算法模型及第二算法模型均通过测试数据集进行模型训练得到,本公开的实施例对此不做限定。
以标签数据集为例说明,如图4所示为贴上标签后的一标签全脑细胞数据示意图,标签数据集包括但不仅限于线粒体数据集、轴突末端数据集及细胞核数据集等,该标签方式可通过不同颜色及根据细胞形状对存在脑细胞位置进行贴标,用以方便识别脑细胞的存在。其中,对于这些标签全脑细胞数据,其扫描贴标处理得到的数据分别呈“0”、“1”分布,“0”代表不存在细胞数据,“1”代表存在细胞数据。本公开的实施例中,可以采用稀疏存储方式DOK(Dictionary of Keys Matrix,按键字典矩阵)对每个标签全脑细胞数据进行存储。其中,数值为“0”的数据可以不进行存储,为后续细胞定位可减少数据处理及查找过程,并节省后续数据过程中的存储空间,增大存储的效率。
需说明的是,上述细胞层Z的取值、每层数据块的取值数量及其切面像素等参数仅为示例性的说明,在实际应用过程中,其不仅可以为上述数值,还可以为其他的数值取值,例如:Z还可以取值200、220、400等等,X、Y轴方向上的数据块可以为30×30等数值组合,每个脑细胞数据块的切面大约是1024×1024等,本公开的实施例对这些参数取值不做限定。
在操作S2,将原始数据集、标注数据集及标签数据集进行预处理,分别得到海量原始图片数据、海量标注图片数据及海量标签图片数据。
本公开的实施例中,将原始数据集、标注数据集及标签数据集分别以HDF5文件形式进行暂存储,HDF5文件形式具有允许随机访问、方便读取的优势,然后将这些数据集预处理分别得到的海量图片数据有利于细胞图片数据的传输效率及追踪查询时的响应度。将预处理后的每一层细胞数据都存储为一个单独的文件夹,每个文件夹存储为平铺图像,这些文件即可提高可视化前端在请求最大分辨率图像时的响应。
在操作S3,将海量原始图片数据、海量标注图片数据及海量标签图片数据进行下采样分级处理,得到多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据。
根据本公开的实施例,将海量原始图片数据、海量标注图片数据及海量标签图片数据进行下采样分级处理具体包括:将海量原始图片数据、海量标注图片数据及海量标签图片数据进行n次2n倍下采样处理,得到n+1个不同级别的海量原始图片数据、n+1个不同级别的海量标注图片数据及n+1个不同级别的海量标签图片数据,n为正整数。
具体地,下采样分级处理前的海量原始图片数据、海量标注图片数据及海量标签图片数据为第0级海量原始图片数据、第0级海量标注图片数据及第0级海量标签图片数据,第1次2倍下采样处理后的图片数据为第1级海量原始图片数据、第1级海量标注图片数据及第1级海量标签图片数据,第2次4倍下采样处理后的图片数据为第2级海量原始图片数据、第2级海量标注图片数据及第2级海量标签图片数据,......,依次类推,第n次2n倍下采样处理后的图片数据为第n级海量原始图片数据、第n级海量标注图片数据及第n级海量标签图片数据。每个级别不同的图片数据可以理解为不同分辨率的完整平铺图像,即用于缩放的Zoom文件。如图5所示,在n次下采样后生成的最低分辨率的完整平铺图像则会在小窗口中显示出来,即在主视图中左上角会显示该细胞形状的小窗口。本公开的实施例中,进行下采样处理后的图片数据可以为TIF等格式的图片数据。
在操作S4,将多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据分别存储至分布式存储***目录树中,包括:S41,客户端向服务器中的管理节点发起数据存储请求,该管理节点获取可进行数据存储的多个数据存储节点,并将多个数据存储节点的节点信息输出至客户端;S42,客户端根据节点信息选取一主数据存储节点;S43,将多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据依次存储至该主数据存储节点,当主数据存储节点存储满载后,并根据分布式存储***的目录树结构依次将未存储的图片数据存储至多个数据存储节点中的其他数据存储节点,直至将全部的图片数据存储完毕,并将存储结果输出至客户端。
具体地,根据多个数据存储节点的负载信息及当前作为主节点的次数信息,客户端在多个数据存储节点中选取一主数据存储节点。其中,数据存储节点信息至少包括数据存储节点名称、关于可存储的块的信息、负载信息、当前作为主节点的次数信息。
本公开的实施例中,经过下采样处理后的数据根据处理完的时间依次按顺序存储至HDFS中,生成的每一级同种类型的数据存储在HDFS中一个单独的文件夹,每个文件夹里的图片命名分可以分为1级、2级、3级等等,这些数据文件存储在HDFS中的多个数据存储节点(Data Node)中,每个文件夹的存储位置、数据类型、以及编码等元信息都存储在HDFS中的管理节点(Name Node)中。
根据本公开的实施例中,在操作S2步骤时,该步骤具体包括步骤S21~S22,如图6所示,该S2步骤具体包括:
在操作S21,将原始数据集、标注数据集及标签数据集进行对齐与去重处理,得到去重后的原始数据集、去重后的标注数据集及标注数据集标签数据集。
本公开的实施例中,由于电子显微镜在预置扫描精度下扫描得到的每个全脑细胞数据具有重叠性,因此在其进行后续分布式存储及可视化处理时需先对每个全脑细胞数据进行对齐去重处理,保证每个全脑细胞数据的唯一性,即根据每个全脑细胞数据的数据坐标对齐计算后进行微调,该步骤可通过可视化脚本进行自动的坐标对齐,并快速发现需要参数优化的困难区域,一旦数据完全对齐并且转换完成,就加固转换并将修改后的扫描数据存储在HDF5容器中并覆盖掉原来的数据。同样,多个标注全脑细胞数据及多个标签全脑细胞数据也得进行对齐矫正,在可视化测试的时候,验证其坐标是否去其对应的全脑细胞数据HDF5文件块相同,并且能够相应的进行完全覆盖。
在操作S22,根据预置的切割规则,将去重后的原始数据集、去重后的标注数据集及标注数据集标签数据集进行切割,分别得到海量原始图片数据、海量标注图片数据及海量标签图片数据。
具体地,将去重后的原始数据集、去重后的标注数据集及标注数据集标签数据集中的细胞数据分别在其三维方向上进行切割,得到海量原始图片数据、海量标注图片数据及海量标签图片数据。
基于切割的脚本对整个HDF5数据进行切割,将HDF5容器里数据格式非稀疏的数据直接转换成一般图片格式(如PNG、TIF等),可以利用OpenCV将每个子目录下的全脑细胞细胞数据或标注全脑细胞数据或标签全脑细胞在其按照三维方向上切割为z×Z层,每层包含像素为k×k的海量小图片数据,方便可视化时的传输响应,其中,z取正整数,k×k可以为1024×1024或2048×2048等等。本公开的实施例中,z优选取值范围为40~60,Z取值优选大于等于200。
为提高后续处理数据的可追溯性,在自动分割后,计算图像的坐标表示及其对应的切割层数,切割的每一层细胞数据都存储为一个单独的文件夹,每个文件夹存储为平铺图像,这些文件即可视化前端在请求最大分辨率的图像时的响应。将其存储在HDFS中的Data Node中。每个文件夹的存储位置,数据类型及编码等元信息都存储在HDFS***中的Name Node里面。需说明的是,每一处理步骤生成后的不同类型的数据均可按照分布式存储方式进行单独存储,保证数据处理过程中的可追溯性。
需说明的是,本公开的实施例中,对每个子目录下的全脑细胞数据或标注全脑细胞数据或标签全脑细胞数据进行切割的方式并不仅限于OpenCV,其可根据实际应用需求进行选择,以及生成的每个海量小图片数据也不仅限于1024×1024或2048×2048,本公开对上述列举的参数不做限定。
根据本公开的实施例,在操作S4步骤之后,该方法还包括:根据索引值对多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据进行检索,获取该索引值所对应的图片数据。其中,在生成的各子目录下根据关键词或文件命名规则进行检索,可以快速查询到该索引值所对应的完整平铺图像,为这些数据集的可视化提供了方便的接口和实现方式。本公开的实施例中,索引值可以根据各子目录文件夹的命名方式进行设置,例如可以根据FileD+数据类型等结合方式作为索引值进行检索。
本公开的实施例中,以在Linux***的服务器下进行分布式存储***HDFS为例,其主要包括以下步骤:
1)客户端通过Distributed FileSystem模块向Name Node请求上传文件,NameNode检查目标是否已存在,父目录是否存在。若存在,则直接存储,如果不存在,则先创建父目录再存储。
2)Name Node返回是否可以上传。
3)客户端请求第一个Block上传到哪几个Data Node服务器上。
4)若Name Node返回三个Data Node节点,分别为dn1、dn2、dn3,并记录此文件地命名以及存储位置信息,客户端并从该三个Data Node节点中选择一个主数据节点,若以dn1为主数据节点。
5)客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。
6)dn1、dn2、dn3逐级响应客户端。
7)客户端开始往dn1上传第一个Block(先从磁盘读取数据放到一个本地内存缓存),以Packet为单位,dn1收到一个Packet就会传给dn2,dn2传给dn3;dn1每传给一个Packet会放入一个应答队列等待应答。
8)当一个Block传输完成之后,客户端再次请求Name Node上传第二个Block的服务器,重复执行3)-7)步,完成所有数据的存储过程。
另外,基于Hadoop的MapReduce进行全脑的大范围脑图的追踪,快速响应追踪。其中,MapReduce将计算过程分为两个阶段:Map和Reduce,其中,Map阶段并行处理输入数据;Reduce阶段对Map结果进行汇总。
具体地,在进行分布式存储***HDFS存储之前,需对服务器环境进行配置,其主要包括:配置Java环境、在Linux中配置Hadoop环境、验证是否成功、修改Hosts、设置SSH免密登录、配置HDFS、配置Name Node节点、格式化Name Node以及启动HDFS等过程,即完成分布式存储***HDFS环境的搭建。
本公开的实施例中,HDFS中部署负载均衡模块,该负载均衡模块主要用于解决高并发情况下***的稳定使用,采用HAProxy的RoundRobin负载均衡算法,分载前端用户请求的压力到每个Web图片服务器上。HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,它是免费、快速并且可靠的一种解决方案。如***整体架构图所示,负载均衡将客户端的请求通过读和写得区分发往不同的服务器。这里采用将读取请求发到存储服务器,一方面通过缓存区读取图片的元数据信息,另一方面通过Name Node进行图片存取。
在本公开的一些实施例中,可以设置Name Node2节点,目的是为了热备份,在理想情况下在业务量突然增加的时候才启动HAProxy进行负载均衡,将一部分的图片请求转发到Name Node2中,但这种设计更为复杂,实现难度较大。一般情况下,HAProxy只负责分流到应用服务器,Name Node2的主要任务为备份,防止Name Node宕机出现服务中断。
在数据读取过程中,读取数据请求通过负载均衡模块到达图片存储服务器,请求先通过Redis缓存模块检查缓存区是否包含图片,如果不包含,则通过HBase检索图片信息,并将检索结果写入缓存区;另一方面,请求到达HDFS请求读取图片内容。由于每个目录文件采用了独特的文件命名方式,将图片命名设计成BlockID加Block中的FileID和数据类型,HBase根据图片文件名查询出图片的名字、描述等相关信息。然后,由于Name Node维护了Block和Data Node之间的映射信息,Name Node根据请求解析中的Block确定该Block和Data Node之间的映射信息,***默认设置的HDFS中的Block Size大小为64M,单张图片单位大小为几K~几M,一般情况下都是由大量小图片放在一个Block里面,所以客户端根据Name Node给出的Data Node地址取得Block后,根据FileID获取图片信息。
需说明的是,本公开的实施例每个步骤处理后生成的数据文件可以以TIF或PNG等格式的文件进行存储,还可以为其他格式的文件进行存储,本公开的实施例对各数据文件的存储格式不做限定。
本公开的实施例中,每一步骤处理得到的数据进行存储均可基于分布式***HDFS进行存储,方便每个环节的数据进行快速查询与追踪。
图7示意性示出了根据本公开一实施例的全脑数据的存储***的方框图。
如图7所示,该全脑数据的存储***700包括:数据获取模块710、数据预处理模块720、数据分级处理模块730及数据存储模块740。该***700可以用于实现参考图2所描述的全脑数据的存储方法。
数据获取模块710,用于获取多个全脑细胞数据集,其中,该多个全脑细胞数据集包括:原始数据集、标注数据集及标签数据集。根据本公开的实施例,该数据获取模块710例如可以用于执行上文参考图2所描述的S1步骤,在此不再赘述。
数据预处理模块720,用于将原始数据集、标注数据集及标签数据集进行预处理,分别得到海量原始图片数据、海量标注图片数据及海量标签图片数据。根据本公开的实施例,该数据预处理模块720例如可以用于执行上文参考图2所描述的S2步骤,在此不再赘述。
数据分级处理模块730,用于将海量原始图片数据、海量标注图片数据及海量标签图片数据进行下采样分级处理,得到多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据。根据本公开的实施例,该数据分级处理模块730例如可以用于执行上文参考图2所描述的S3步骤,在此不再赘述。
数据存储模块740,用于将多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据分别存储至分布式存储***目录树中,包括:客户端向服务器中的管理节点发起数据存储请求,该管理节点获取可进行数据存储的多个数据存储节点,并将多个数据存储节点的节点信息输出至客户端;客户端根据节点信息选取一主数据存储节点;将多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据依次存储至该主数据存储节点,当主数据存储节点存储满载后,并根据分布式存储***的目录树结构依次将未存储的图片数据存储至多个数据存储节点中的其他数据存储节点,直至将全部的图片数据存储完毕,并将存储结果输出至客户端。根据本公开的实施例,该数据存储模块740例如可以用于执行上文参考图2所描述的S4步骤,在此不再赘述。
本公开的实施例中,如图8所示,该数据预处理模块720包括:数据对齐去重模块7201及数据切割模块7202。
数据对齐去重模块7201,用于将原始数据集、标注数据集及标签数据集进行对齐与去重处理,得到去重后的原始数据集、去重后的标注数据集及标注数据集标签数据集。根据本公开的实施例,该数据对齐去重模块7201例如可以用于执行上文参考图6所描述的S21步骤,在此不再赘述。
数据切割模块7202,用于根据预置的切割规则,将去重后的原始数据集、去重后的标注数据集及标注数据集标签数据集进行切割,分别得到海量原始图片数据、海量标注图片数据及海量标签图片数据。根据本公开的实施例,该数据切割模块7202例如可以用于执行上文参考图6所描述的S22步骤,在此不再赘述。
需说明的是,根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,数据获取模块710、数据预处理模块720、数据分级处理模块730及数据存储模块740中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,数据获取模块710、数据预处理模块720、数据分级处理模块730及数据存储模块740中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上***、基板上的***、封装上的***、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,数据获取模块710、数据预处理模块720、数据分级处理模块730及数据存储模块740中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图9示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的方框图。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,本实施例中所描述的电子设备900,包括:处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接91205也连接至总线904。电子设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的***中限定的上述功能。根据本公开的实施例,上文描述的***、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/***中所包含的;也可以是单独存在,而未装配入该设备/装置/***中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的全脑数据的存储方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
需要说明的是,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种全脑数据的存储方法,其特征在于,包括:
S1,获取多个全脑细胞数据集,其中,该多个全脑细胞数据集包括:原始数据集、标注数据集及标签数据集;
S2,将所述原始数据集、所述标注数据集及所述标签数据集进行预处理,分别得到海量原始图片数据、海量标注图片数据及海量标签图片数据;
S3,将所述海量原始图片数据、所述海量标注图片数据及所述海量标签图片数据进行下采样分级处理,得到多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据;
S4,将所述多个不同级别的海量原始图片数据、所述多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据分别存储至分布式存储***目录树中,包括:S41,客户端向服务器中的管理节点发起数据存储请求,所述管理节点获取可进行数据存储的多个数据存储节点,并将所述多个数据存储节点的节点信息输出至所述客户端;S42,所述客户端根据所述节点信息选取一主数据存储节点;S43,将所述多个不同级别的海量原始图片数据、所述多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据依次存储至该主数据存储节点,当主数据存储节点存储满载后,并根据所述分布式存储***的目录树结构依次将未存储的图片数据存储至所述多个数据存储节点中的其他数据存储节点,直至将全部的图片数据存储完毕,并将存储结果输出至所述客户端。
2.根据权利要求1所述的全脑数据的存储方法,其特征在于,所述将所述原始数据集、所述标注数据集及所述标签数据集进行预处理,分别得到海量原始图片数据、海量标注图片数据及海量标签图片数据,包括:
将所述原始数据集、所述标注数据集及所述标签数据集进行对齐与去重处理,得到去重后的原始数据集、去重后的标注数据集及标注数据集标签数据集;
根据预置的切割规则,将去重后的原始数据集、去重后的标注数据集及标注数据集标签数据集进行切割,分别得到海量原始图片数据、海量标注图片数据及海量标签图片数据。
3.根据权利要求2所述的全脑数据的存储方法,其特征在于,所述根据预置的切割规则,将去重后的原始数据集、去重后的标注数据集及标注数据集标签数据集进行切割,包括:
将所述去重后的原始数据集、所述去重后的标注数据集及所述标注数据集标签数据集中的细胞数据分别在其三维方向上进行切割,得到海量原始图片数据、海量标注图片数据及海量标签图片数据。
4.根据权利要求1所述的全脑数据的存储方法,其特征在于,所述将所述海量原始图片数据、所述海量标注图片数据及所述海量标签图片数据进行下采样分级处理,包括:
将所述海量原始图片数据、所述海量标注图片数据及所述海量标签图片数据进行n次2n倍下采样处理,得到n+1个不同级别的海量原始图片数据、n+1个不同级别的海量标注图片数据及n+1个不同级别的海量标签图片数据,n为正整数。
5.根据权利要求1所述的全脑数据的存储方法,其特征在于,所述客户端根据所述节点信息选取一主数据存储节点,包括:
根据所述多个数据存储节点的负载信息及当前作为主节点的次数信息,在所述多个数据存储节点中选取一主数据存储节点。
6.根据权利要求1所述的全脑数据的存储方法,其特征在于,所述多个不同级别的海量原始图片数据、所述多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据中的元数据存储至所述分布式存储***中的管理节点。
7.根据权利要求1所述的全脑数据的存储方法,其特征在于,该方法还包括:
根据索引值对所述多个不同级别的海量原始图片数据、所述多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据进行检索,获取该索引值所对应的图片数据。
8.一种全脑数据的存储***,其特征在于,包括:
数据获取模块,用于获取多个全脑细胞数据集,其中,该多个全脑细胞数据集包括:原始数据集、标注数据集及标签数据集;
数据预处理模块,用于将所述原始数据集、所述标注数据集及所述标签数据集进行预处理,分别得到海量原始图片数据、海量标注图片数据及海量标签图片数据;
数据分级处理模块,用于将所述海量原始图片数据、所述海量标注图片数据及所述海量标签图片数据进行下采样分级处理,得到多个不同级别的海量原始图片数据、多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据;
数据存储模块,用于将所述多个不同级别的海量原始图片数据、所述多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据分别存储至分布式存储***目录树中,包括:客户端向服务器中的管理节点发起数据存储请求,所述管理节点获取可进行数据存储的多个数据存储节点,并将所述多个数据存储节点的节点信息输出至所述客户端;所述客户端根据所述节点信息选取一主数据存储节点;将所述多个不同级别的海量原始图片数据、所述多个不同级别的海量标注图片数据及多个不同级别的海量标签图片数据依次存储至该主数据存储节点,当主数据存储节点存储满载后,并根据所述分布式存储***的目录树结构依次将未存储的图片数据存储至所述多个数据存储节点中的其他数据存储节点,直至将全部的图片数据存储完毕,并将存储结果输出至所述客户端。
9.一种电子设备,包括:存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1至7中任一项所述的全脑数据的存储方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至7中任一项所述的全脑数据的存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110581589.9A CN113254416A (zh) | 2021-05-26 | 2021-05-26 | 一种全脑数据的存储方法、***、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110581589.9A CN113254416A (zh) | 2021-05-26 | 2021-05-26 | 一种全脑数据的存储方法、***、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113254416A true CN113254416A (zh) | 2021-08-13 |
Family
ID=77184929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110581589.9A Pending CN113254416A (zh) | 2021-05-26 | 2021-05-26 | 一种全脑数据的存储方法、***、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254416A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339570A (zh) * | 2008-08-12 | 2009-01-07 | 北京航空航天大学 | 一种高效的海量遥感数据分布式组织管理方法 |
CN107506362A (zh) * | 2016-11-23 | 2017-12-22 | 上海大学 | 基于用户群优化的图像分类仿脑存储方法 |
CN109918184A (zh) * | 2019-03-01 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 图片处理***、方法及相关装置和设备 |
US20210182259A1 (en) * | 2019-12-13 | 2021-06-17 | Sap Se | Level-based hierarchies |
CN113591051A (zh) * | 2021-07-08 | 2021-11-02 | 安徽宝葫芦信息科技集团股份有限公司 | 一种电子档案全生命周期信息保全***及方法 |
-
2021
- 2021-05-26 CN CN202110581589.9A patent/CN113254416A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339570A (zh) * | 2008-08-12 | 2009-01-07 | 北京航空航天大学 | 一种高效的海量遥感数据分布式组织管理方法 |
CN107506362A (zh) * | 2016-11-23 | 2017-12-22 | 上海大学 | 基于用户群优化的图像分类仿脑存储方法 |
CN109918184A (zh) * | 2019-03-01 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 图片处理***、方法及相关装置和设备 |
US20210182259A1 (en) * | 2019-12-13 | 2021-06-17 | Sap Se | Level-based hierarchies |
CN113591051A (zh) * | 2021-07-08 | 2021-11-02 | 安徽宝葫芦信息科技集团股份有限公司 | 一种电子档案全生命周期信息保全***及方法 |
Non-Patent Citations (1)
Title |
---|
余海波: ""基于区块链的数据分布式存储安全机制研究"", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210279274A1 (en) | Systems and Methods of Building and Using an Image Catalog | |
US11146613B2 (en) | Distributed computing on document formats | |
US9734158B2 (en) | Searching and placeholders | |
RU2646334C2 (ru) | Управление файлами с помощью заполнителей | |
US9672241B2 (en) | Representing an outlier value in a non-nullable column as null in metadata | |
US20170206025A1 (en) | Mapping systems and methods of an accelerated application-oriented middleware layer | |
US10628463B2 (en) | Applying geo-tags to digital media captured without location information | |
US11580061B2 (en) | System and method for file archiving using machine learning | |
US20150026133A1 (en) | Producing an image copy of a database object based on information within database buffer pools | |
US9286304B2 (en) | Management of file storage locations | |
JP2020531970A (ja) | スケーラブルな時空密度データの融合 | |
US9063980B2 (en) | Log consolidation | |
US9600486B2 (en) | File system directory attribute correction | |
US20160342620A1 (en) | Rendering high resolution images using image tiling and hierarchical image tile storage structures | |
US11204708B2 (en) | System and method for an offline migration of on-premise environment to a cloud-based service | |
US20240232420A9 (en) | System and method of dynamic search result permission checking | |
CN113254416A (zh) | 一种全脑数据的存储方法、***、电子设备及存储介质 | |
EP2819028A2 (en) | Content management system | |
WO2022198132A1 (en) | Data pipeline | |
US11068196B2 (en) | System and method for a restoration of on-premise backups to a cloud-based service | |
US9449004B2 (en) | File repository abstraction layer | |
WO2020134405A1 (zh) | 文件***镜像及文件请求方法 | |
US10977238B2 (en) | Validity map-based tracking of user data updates | |
US20230050976A1 (en) | File system aware computational storage block | |
US20240029462A1 (en) | Method and system for preprocessing digital documents for data extraction |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210813 |
|
RJ01 | Rejection of invention patent application after publication |