APP下载

一种海量图片样本数据的存储与抽取系统设计

2020-10-26孙艺航潘欣

机电信息 2020年26期
关键词:存储机器学习样本

孙艺航 潘欣

摘要:当前利用机器学习技术识别影像中的场景和语义信息在很多领域得到了广泛应用,实现智能识别的基础是海量的图片样本数据,在实际应用中,这些图片样本往往分辨率和存储格式不一致,需要经过多种不同的几何变换和抽取过程。为此,设计了一种海量图片样本数据的存储与抽取系统,建立了一种可定制的脚本化的数据存储与抽取执行机制,将图片样本的存储、变换和抽取转换为脚本并自动执行。实验表明,该系统可以显著提高海量图片样本数据的存储和抽取效率。

关键词:样本;抽取;存储;脚本化;机器学习

0 引言

当前利用机器学习技术识别影像中的场景和语义信息在很多领域得到了广泛应用[1]。机器学习的基础是海量的样本数据,这些数据是训练智能模型的基础[2]。在机器学习技术的实际应用中,通常需要引入较多的样本来提高识别质量[3],这些样本可能来源于固有的机器学习库、自主收集的图片信息以及实验过程中的过程影像数据,这些样本数据通常存在分辨率和存储格式不一致的问题,需要经过几何变换或特定的抽取过程[4],工作量较大,限制了机器学习影像识别的应用,因此需要引入新的技术来提高该过程的工作效率。

机械性复杂工作可以通过脚本化方式执行完成,并可以显著提高工作效率[5]。因此,本文提出了一种海量图片样本数据的存储与抽取系统(A storage and extraction system for massive image sample data,SES-Sample),建立了一种可定制的脚本化的数据存储与抽取执行机制,将图片样本的存储、变换和抽取转换为脚本并自动执行。实验表明,该系统可以显著提高海量图片样本数据的存储和抽取效率,促进机器学习影像识别的应用。

1 系统设计

1.1    系统总体架构

海量图片样本数据的存储与抽取系统采用多主机分布式处理的总体架构,其结构如图1所示。

在SES-Sample系统中包含如下组成部分:

1.1.1    客户端

客户端负责与用户进行交互,负责接收用户输入的数据并上传到服务器端,也可以从服务器端下载数据。对于数据传输通过FTP数据传输协议封装,对于服务器功能的访问以网络服务的形式进行封装。

1.1.2    服务器端

服务器端负责接收客户端需求,可以处理图片格式变化、几何变换以及抽取标签任务。服务器开放了2个服务,一是间接数据存储服务,当客户端请求数据訪问功能的时候,以服务器作为中转站,将Hadoop存储的数据转发给客户;二是功能范围服务,所有开放功能均以网络服务形式开放。

1.1.3    存储端

存储端为基于Hadoop的存储云环境,负责存储所有服务器构建的样本数据。在分布式文件系统上,所有的图片数据均以分布式系统上的独立文件形式存在。系统封装了存储、抽样算法,使用者可以利用客户端对图片样本直接进行访问控制,降低了此类操作复杂性。

1.2    图片存储模式

与传统的单一文件存储模式不同,本系统采用多文件、多文件标签的模式存储图片样本,图片样本的存储方式如图2所示。

如图2所示,当一个图片要存储到SES-Sample系统中时,首先需要将图片转换为对应的公共存储结构,本系统采用的公共存储结构格式:每个像元3个字节(RGB格式),并以二维矩阵的形式存储所有像元;在转换为公共存储结构之后,继续执行多个相关的变换脚本,生成在系统中的真正样本,这些样本由公共存储结构+XML元数据构成。在SES-Sample系统中,每个样本是公共存储结构+XML元数据双重结构,其中元数据包含着对应样本的关键信息,具体包括如下内容:

(1)ID:在执行第1次图片转换时所获得的唯一标识。

(2)SubID:经历第n次脚本变换所获得的序号,ID和SubID联合确定一个样本的主键。

(3)TransformArray:经历变换的名称和步骤,标识该样本经历了哪些几何或者矩阵变换。

(4)Label:图片对应的标签信息。

在此基础上,SES-Sample系统的图片存储算法如下:

SamplesSaveing Algorithm图片存储算法

Input:一个样本sample和对应的标签label,样本变换脚本集scriptlist

Output:转换后的存储集合S

Begin

matrix=将sample转换为公共存储结构;

id=Create a UUID; S←?准;

for i in len(scriptlist)

subid=i;

TransformArray=获取scriptlist[i]的名称列表;

image=ScriptTransform(matrix, scriptlist[i]);

S←(image,(id,subid, TransformArray,label));

return S;

End

通过SamplesSaveing算法,SES-Sample系统完成了从输入的初始图片到多重变换存储结果的转换,每个样本除了中立的存储结构之外,还带有XML结构的元数据。

1.3    脚本的执行模式

本文为了实现多种脚本灵活运行的机制,设计了脚本的类结构。如图3所示,在SES-Sample系统中脚本处理的类结构包含如下内容:

(1)脚本原子父类OrigianlAlgNodeClass:OrigianlNodeClass为一个abstract类,该类封装了进行一次变换所必须的输入、输出。

(2)脚本原子类ChileAlgNodeClass:该类继承于OrigianlAlg

NodeClass类,每一个子类均具体实现了某一个变换的具体算法。

(3)脚本类ScriptClass:脚本类Script接收OrigianlAlgNodeClass构成的列表,该列表可以引入多种脚本子类的实例,来描述一个样本所经历的变换历程。

(4)脚本执行类ParsingClass:该类执行Script中的内容,并完成整个存储过程。

基于以上4个类,脚本的执行和变换算法如下:

ScriptTransform Algorithm脚本的执行与变换

Input:一个样本存贮结构matrix,脚本类本实例script

Output:转换后的结果image

Begin

foreach s in script

OrigianlAlgNodeClass itf=( OrigianlAlgNodeClass) s;

matrix=利用itf对matrix进行变换

image= matrix;

return image;

End

本系统通过ScriptTransform算法,实现了逐一进行脚本中的变换并获得结果的目标。

1.4    样本的抽取模式

与传统算法在使用样本时才进行变换不同,SES-Sample系统存储了大量变换用脚本,每个脚本对应一个特定的编号。SES-Sample中的服务器端包含守护进程,在服务器处于空闲状态时,可以自动运行脚本并存储到云服务器中。系统在使用过程中,基于样本对应的XML描述文件,直接提取云服务中已经存储好的内容,抽取算法如下:

SamplesExtraction Algorithm样本抽取算法

Input:样本类目标签label和变换类型transform,训练数据量trainp,测试数据量testp

Output:训练数据集train,测试数据集test

Begin

文件名列表list=基于樣本类目标签label和变换类型transform在云存储中查询XML文件;

list=随机打乱list的顺序;

train←?准; test←?准;

while len(train)< trainp

train←取出list中下一个XML文件,并读取对应图像数据;

while len(test)< testp

train←取出list中下一个XML文件,并读取对应图像数据;

return train,test;

End

本系统利用SamplesExtraction算法,可以快速实现特定标签、特定变换结果样本的抽取。

2 对比实验

本系统的客户端部分采用C#4.0编写,服务器端部分采用Anaconda集成开发环境下的Python 3.6编写,图形变换调用的是scikit-image开发包;服务器端算法程序均在Intel i9 9900K、64G的计算机上运行并测试。本系统客户端界面如图4所示,客户端可以访问服务器端的资源数据。

为了对比传统算法和SES-Sample的应用效果,本文引入了大型的测试数据集进行速度测试,对比结果如表1所示。

由表1可知,SES-Sample抽取样本的速度明显优于传统算法。

3 结语

有关人员在采用机器学习技术进行模型训练的时候,管理海量样本是一个非常耗费时间的工作,相关的图片数据变换和存储需要花费大量的计算时间,严重限制了相关领域的工作效率。为此,本文提出了一种海量图片样本数据的存储与抽取系统,通过以图片样本的存储、变换和抽取转换为脚本并自动执行,可以显著提高海量图片样本的管理效率。

[参考文献]

[1] 李晓理,张博,王康,等.人工智能的发展及应用[J].北京工业大学学报,2020,46(6):583-590.

[2] 徐浩智.人工智能在模式识别中的关键技术[J].电子技术与软件工程,2018(2):247.

[3] 赵永强,饶元,董世鹏,等.深度学习目标检测方法综述[J].中国图象图形学报,2020,25(4):629-654.

[4] 张蕊,李锦涛.基于深度学习的场景分割算法研究综述[J].计算机研究与发展,2020,57(4):859-875.

[5] 白文秀,吴瑞苗.基于Django的运维自动化系统设计[J].智能计算机与应用,2016,6(3):95-97.

收稿日期:2020-08-12

作者简介:孙艺航(1999—),女,吉林长春人,研究方向:智能信息处理、大数据分析。

潘欣(1978—),男,吉林长春人,博士,研究方向:地理信息系统、大数据、互联网软件技术。

猜你喜欢

存储机器学习样本
直击高考中的用样本估计总体
随机微分方程的样本Lyapunov二次型估计
档案管理中电子文件的存储探究
基于网络搜索数据的平遥旅游客流量预测分析
前缀字母为特征在维吾尔语文本情感分类中的研究
云计算与虚拟化
基于支持向量机的金融数据分析研究
基于支持向量机的测厚仪CS值电压漂移故障判定及处理
七年级数学下册期末检测题(B)