产品表面缺陷检测方法、装置和计算机设备与流程

文档序号:16742628发布日期:2019-01-28 13:09阅读:170来源:国知局
产品表面缺陷检测方法、装置和计算机设备与流程

本申请涉及计算机应用技术领域,尤其涉及一种产品表面缺陷检测方法及装置、计算机设备及计算机可读介质。



背景技术:

近年来,随着人工智能的发展,神经网络(neuralnetwork,nn)算法被广泛应用于产品表面缺陷检测领域,例如织物疵点检测、电子零部件表面缺陷检测等。然而,检测效果较好的深度神经网络往往有着数量较大的节点(神经元)和模型参数,不仅计算量大而且在实际部署中模型占据较大一部分空间,限制了其应用于存储和计算资源都受限的设备。



技术实现要素:

鉴于以上问题,本发明的实施例提供一种产品表面缺陷检测方法及装置、计算机设备及计算机可读介质,其用于产品表面缺陷检测的神经网络模型计算量和存储空间较低,可以应用于存储和计算资源都受限的设备。

按照本发明的实施例的产品表面缺陷检测方法,包括:获取包含产品表面的待检测图像;利用第一神经网络模型对所述待检测图像进行检测,以确定所述待检测图像所包含的产品表面是否存在缺陷;其中,所述第一神经网络模型是利用遗传算法对已训练好的第二神经网络模型进行压缩处理获得的,所述第二神经网络模型是利用预置的训练样本训练得到的,所述第一神经网络模型基于所述训练样本的精度不低于预设精度。

按照本发明的实施例的产品表面缺陷检测装置,包括:获取模块,用于获取包含产品表面的待检测图像;检测模块,用于利用第一神经网络模型对所述待检测图像进行检测,以确定所述待检测图像所包含的产品表面是否存在缺陷;其中,所述第一神经网络模型是利用遗传算法对已训练好的第二神经网络模型进行压缩处理获得的,所述第二神经网络模型是利用预置的训练样本训练得到的,所述第一神经网络模型基于所述训练样本的精度不低于预设精度。

按照本发明的实施例的计算机设备,包括:处理器;以及存储器,其上存储有可执行指令,其中,所述可执行指令当被执行时使得所述处理器执行前述的方法。

按照本发明的实施例的计算机可读介质,其上存储有可执行指令,其中,所述可执行指令当被执行时使得计算机执行前述的方法。

从以上的描述可以看出,本发明的实施例的方案利用通过遗传算法压缩处理后的第一神经网络模型对产品表面进行缺陷检测,具有计算量和存储空间较低的优点,可应用于存储和计算资源都受限的设备。同时,本发明的实施例的方案能够同时兼顾检测准确度和压缩两个方面。

附图说明

图1为按照本发明的一个实施例的产品表面缺陷检测方法的流程图;

图2为按照本发明的一个实施例的利用遗传算法对已训练好的第二神经网络模型进行压缩处理的方法的流程图;

图2a为一神经网络结构的示例图;

图3为按照本发明的一个实施例的产品表面缺陷检测装置的示意图;

图4为按照本发明的一个实施例的计算机设备的示意图;

图5为按照本发明的一个实施例的适于用来实现本发明实施方式的示例性计算机设备的框图。

具体实施方式

现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本公开内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。例如,所描述的方法可以按照与所描述的顺序不同的顺序来执行,以及各个步骤可以被添加、省略或者组合。另外,相对一些示例所描述的特征在其他例子中也可以进行组合。

如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。

本发明的实施例采用了通过遗传算法压缩处理后的第一神经网络模型来对产品表面进行检测,下面对遗传算法和神经网络做一下简要介绍。

遗传算法(geneticalgorithm,即ga)是一类借鉴生物界的进化规律(适者生存,优胜劣汰遗传机制)演化而来的随机化搜索方法。它是由美国的j.holland教授于1975年首先提出,其主要特点是直接对结构对象进行操作,不存在求导和函数连续性的限定;具有内在的隐并行性和更好的全局寻优能力;采用概率化的寻优方法,能自动获取和指导优化的搜索空间,自适应地调整搜索方向,不需要确定的规则。遗传算法的这些性质,已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。它是现代有关智能计算中的关键技术。

神经网络(neuralnetwork,即nn),是20世纪80年代以来人工智能领域兴起的研究热点。它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,按不同的连接方式组成不同的网络。神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activationfunction)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为连接权。网络的输出则依网络的连接方式,连接权和激励函数的不同而不同。神经网络的结构信息包括节点和连接权等信息。

图1示出了按照本发明的一个实施例的产品表面缺陷检测方法的流程图。图1所示的方法100可以由计算机或其他合适的具有计算能力的电子设备来实现。此外,本领域技术人员将理解,执行方法100的任何系统都在本发明的实施例的范围和精神内。

如图1所示,在步骤s102,获取包含产品表面的待检测图像。本实施例中,具体实施时,可以通过ccd工业照相机拍摄待检测的产品表面,并通过交换机对图像数据进行传输,以获取上述待检测图像。其中,上述ccd(chargecoupleddevice,感光耦合组件)为数字相机中用于记录光线变化的半导体组件。

在本实施方式中,具体实施时,上述待检测图像的尺寸具体可以要求为256*256。当然,也可以在获取上述待检图像后,对获取的待检图像进行图像处理,得到符合要求尺寸的待检图像。

在一个实施方式中,上述产品具体可以是织物、钢板、玻璃、磁瓦、电子产品、工件、塑料制品、木材等产品。当然,需要说明的是,上述所列举的产品类型只是为了更好地说明本发明的实施方式。具体实施时,也可以根据具体情况和检测需求,选择对上述所列举的产品以外的其他产品进行相应的表面缺陷的检测。

在步骤s104,利用第一神经网络模型对所述待检测图像进行检测,以确定所述待检测图像所包含的产品表面是否存在缺陷;其中,所述第一神经网络模型是利用遗传算法对已训练好的第二神经网络模型进行压缩处理获得的,所述第二神经网络模型是利用预置的训练样本训练得到的,所述第一神经网络模型基于所述训练样本的精度不低于预设精度。

本实施例中,具体实施时,当要对待检测图像进行检测时,可对待检测图像执行预处理,例如但不限于,将待检测图像转换为灰度图像等。当然,本发明并不局限于此,在本发明的其他一些实施例中,在待检测图像在初始状态下已适于利用模型来检测的情况下,也可以不对待检测图像执行预处理。

本实施例中,具体实施时,当要对待检测图像进行检测时,可对待检测图像执行识别定位与图像分割处理,通过识别定位和图像分割处理获得待检测图像的一个或多个候选区域,通过对候选区域进行检测以确定候选区域所包含的产品表面是否存在缺陷。识别定位和图像分割处理是已知的技术,在此省略对其的描述。

本实施例用于检测产品表面缺陷的第一神经网络模型是利用遗传算法对已训练好的第二神经网络模型进行压缩处理后获得的。其中,本实施例采用遗传算法对第二神经网络模型进行压缩处理的原理是根据遗传算法“优胜劣汰”的原理,在兼顾神经网络模型精度的情况下,以“压缩神经网络模型”作为准则,对已训练好的第二神经网络模型执行各种遗传操作,最后获得结构简化的第一神经网络模型。具体实施时,可通过设置一基于预置的训练样本的预设精度来约束对第二神经网络模型的压缩处理过程,其中,第二神经网络模型是利用该预置的训练样本训练得到的,该预设精度可以是第二神经网络模型的原始精度,或略低于该原始精度的数值。该预设精度可以是人为设置的,也可以是上述电子设备基于预置的算法设置的,而且该预设精度是可以根据实际需要进行调整的,本实施例不对此方面做任何限定。具体实施时,可利用该预置的训练样本对压缩处理后的神经网络模型进行训练,以获得第一神经网络模型。

本实施例的一些可选的实现方式中,压缩处理包括删除待压缩神经网络模型的至少一个节点及其相应的连接,和/或,删除待压缩神经网络模型的至少一个连接,以降低待压缩神经网络模型的网络复杂度,即提高待压缩神经网络模型的网络简化度。优选的,压缩处理包括删除待压缩神经网络模型隐含层的至少一个节点及其相应的连接,和/或,删除所述隐含层的至少一个连接。其中,隐含层(hiddenlayer,也叫隐藏层)是指除输入层(inputlayer)和输出层(outputlayer)以外的其他各层。

本实施例的一些可选的实现方式中,训练样本可以包括产品的多个正常图像和多个问题图像,其中,正常图像是指产品表面不存在缺陷的图像,问题图像是指产品表面存在缺陷的图像。利用训练样本对神经网络模型进行训练是已知的技术,在此省略对其的描述。

在方法100的一实施方式中,所述利用遗传算法对已训练好的第二神经网络模型进行压缩处理,包括:以基于压缩的适应度值为标准,对所述第二神经网络模型所对应的染色体个体执行遗传操作,以产生适应度值最优的染色体个体;利用所述训练样本对所述适应度值最优的染色体个体所对应的神经网络模型进行训练,以获得所述第一神经网络模型。

在本实施例中,基于压缩的适应度值是指能反映网络简化度(或网络复杂度)的适应度值,例如可以是适应度值越大,网络简化度越高,即实现了有效压缩;适应度值越小,网络简化度越低,即没有实现有效压缩。则在利用遗传算法对神经网络模型进行压缩时,可选择适应度值大的染色体个体执行遗传操作,最终在第n代群体产生的染色体个体中适应度值最大的染色体个体为最优染色体个体。需要说明的是,在本发明的其他实施方式中,也可以采用适应度值越大,网络复杂度越高,即没有实现有效压缩;适应度值越小,网络复杂度越低,即实现了有效压缩,则在利用遗传算法对神经网络模型进行压缩时,可选择适应度值小的染色体个体执行遗传操作,最终在第n代群体产生的染色体个体中适应度值最小的染色体个体为最优染色体个体。

本实施例的一些可选的实现方式中,可采用以下适应度函数计算适应度值:

其中,f(i,t)表示第t代的第i个体的适应度;e(i,t)表示第t代的第i个体对应的神经网络模型的网络误差;h(i,t)表示第t代的第i个体的网络简化度。

本实施例的一些可选的实现方式中,e(i,t)可采用以下公式计算:

其中,分别为第t代的第i个体对应的神经网络模型基于预置的第q个训练样本的期望输出值和实际输出值。

h(i,t)可采用以下公式计算:

其中,m(i,t)为第t代的第i个体的节点个数。网络结构越简化,网络简化度值越大。

该实现方式中,利用网络误差e(i,t)来约束对待压缩神经网络模型的压缩处理过程,能同时兼顾精度和压缩。网络误差e(i,t)越小,则压缩处理后的神经网络模型的精度越高。网络简化度值越大,则压缩处理后的神经网络模型的结构越简化。因此,在本实施方式中,网络误差越小、网络简化度越大的染色体个体,适应度值越大。

本实施例中,对最优染色体个体执行解码操作,即可得到神经网络模型最优的网络结构。本实施例的一些可选的实现方式中,在对压缩处理后获得的第一神经网络模型进行训练时,可以对第一神经网络模型进行微调(fine-tuning)。这样可以将略低于预设精度的神经网络模型微调至满足预设精度要求。

从以上的描述可以看出,本发明实施例所提供的方案利用通过遗传算法压缩处理后的第一神经网络模型对产品表面进行缺陷检测,具有计算量和存储空间较低的优点,可应用于存储和计算资源都受限的设备。同时,本发明的实施例的方案能够同时兼顾检测准确度和压缩两个方面。

图2示出了按照本发明的一个实施例的对所述第二神经网络模型所对应的染色体个体执行遗传操作,以产生适应度值最优的染色体个体的方法的流程图,图2所示的方法200可以由计算机或其他合适的具有计算能力的电子设备来实现。此外,本领域技术人员将理解,执行方法200的任何系统都在本发明的实施例的范围和精神内。

如图2所示,在步骤s202,获取已训练好的第二神经网络模型的结构信息。其中,所述第二神经网络模型是先前已经预置的训练样本上被训练,并且训练得到使第二神经网络模型的精度满足预设精度。本发明实施例的第二神经网络模型可以是卷积神经网络(cnn:convolutionalneuralnetwork)模型、基于区域信息的卷积神经网络(rcnn:regionbasedconvolutionalneuralnetwork)模型、循环神经网络(rnn:recurrentneuralnetwork)模型、长短期记忆模型(lstm:longshort-termmemory)或门控循环单元(gru:gatedrecurrentunit),此外,还可以是其他类型的神经网络模型或由多种神经网络结合的级联神经网络模型。神经网络模型的结构信息包括节点信息和连接权信息,网络结构可由一联结矩阵来表示,如一n×n矩阵c=(cij)n×n表示一个有n个节点的网络结构,其中cij的值表示从节点i到节点j的连接权;cij=0表示从节点i到节点j之间无连接;cii表示节点i的偏置。

在步骤s204,根据所述结构信息,对所述第二神经网络模型进行编码,以得到一染色体。神经网络模型的结构需要表示为一个遗传算法个体染色体编码,才能够用遗传算法来进行计算。在一实施方式中,设第二神经网络模型有n个神经元,序号是从1到n排列的输入层(inputlayer)、隐含层(hiddenlayer,也叫隐藏层)、输出层(outputlayer)节点,可以一n×n矩阵来表示神经网络结构。现以图2a所示具有7个节点的神经网络结构作为示例,以阐述本实施例对第二神经网络模型的编码方法。表1为该神经网络结构的节点连接关系,在表1中,矩阵中(i,j)对应的元素表示从第i个节点到第j个节点的连接关系。由于本发明实施例在对第二神经网络模型进行压缩时不会涉及对第二神经网络模型连接权的改动,因此本实施例将节点的连接关系表示为0,1,-1的形式,其中,“0”表示没有连接;“1”表示连接权值为1,具有激发(excitory)作用,图2a中以实线表示;“-1”表示连接权值为-1,具有抑制(inhibitory)作用,图2a中以虚线表示。由此可见,表1与图2a所示结构等价。

表1、本实施例示例神经网络结构连接关系

根据表1所示的节点连接关系,可以将该神经网络的编码表示为0,1,-1组成的数字串形式,将元素(3,1)到元素(7,6)自左至右、自上而下顺序连接起来,组成下面的染色体编码:

在步骤s206,根据所述染色体,进行群体初始化生成初始群体。具体实施时,可对待压缩神经网络模型编码得到的染色体执行复制操作,随机生成预定数量的染色体个体,将这些染色体个体的集合作为初始群体。初始群体的大小由群体规模m来确定,群体规模m可以例如但不限于10~100。对这一染色体执行复制操作后,得到多条相同的染色体,每条染色体为一个染色体个体,将这多个染色体个体的集合作为初始群体,完成群体的初始化。

在步骤s208,计算群体中染色体个体的适应度值。本实施例中,适应度函数可以采用以下公式计算:

其中,f(i,t)表示第t代的第i个体的适应度;e(i,t)表示第t代的第i个体对应的神经网络模型的网络误差;h(i,t)表示第t代的第i个体的网络简化度。

e(i,t)和h(i,t)的计算可参照图1所示实施例给出的计算公式。

本实施例中,适应度函数包括公式①和公式②。其中,公式①基于网络误差的适应度函数,其反映的是神经网络模型的精度;公式②是基于网络简化度的适应度函数,其反映的是神经网络模型的压缩。由此可分别计算染色体个体基于精度的适应度值和基于压缩的适应度值。

在步骤s210,判断是否达到终止条件。其中,终止条件可以包括预先预先设定的迭代次数阈值或设定的收敛条件。迭代次数例如但不限于可以设置为500次,但迭代次数达到500次时即判断为达到终止条件。收敛条件例如但不限于可以设置为当适应度值满足一定的条件时,判断为达到终止条件。在一实施方式中,收敛条件可设置为适应度值同时满足以下条件:

其中,e0为预设网络误差值,h0为预设网络简化度值。

在步骤s212,若步骤s210判断结果为未达到所述终止条件,则以适应度值为标准,选择部分适应度值满足要求的染色体个体,执行复制、交叉或变异等遗传操作,从而产生新一代群体,然后返回步骤s208。本实施例的选择标准可以采用以下步骤:(1)以公式①计算群体中每个染色体个体基于精度的适应度值,然后计算个体被选中的第一选择概率,根据所述第一选择概率选择出第一染色体个体;(2)以公式②计算群体中每个染色体个体基于压缩的适应度值,然后计算个体被选中的第二选择概率,根据所述第二选择概率从步骤(1)选择出的第一染色体个体中选择第二染色体个体。可选的,在根据选择概率选择染色体个体前,可先找出当前群体中适应度值最高和最低的染色体个体,将最佳染色体个体保留直接进入下一代,淘汰最差染色体个体,这样能保证将优良的基因遗传给下一代。在第一次迭代时,由于初始群体的染色体个体均相同,因此,第一次迭代时所保留的最佳个体和淘汰的最差个体相同。对染色体个体的选择可以采用轮盘赌法,染色体个体的选择概率可以采用以下公式计算:

其中,p(i,t)为第t代第i个体的选择概率,f(i,t)为第t代第i个体的适应度,f(sum,t)为第t代群体总适应度。采用本实施例的选择标准可兼顾神经网络模型的精度和压缩。

对被选出的染色体个体执行复制、交叉或变异操作,如采用上述选择标准进行染色体个体的选择,则是对选择出的第二染色体个体执行复制、交叉或变异操作。其中,复制操作是指将被选出的父代染色体个体在未经任何变化的条件下从当前代直接复制到新一代个体中。交叉操作是指从群体中按上述的选择方法随机选择两个父代染色体个体,将两个父代染色体个体的部分组分相互替代,形成新的子代染色体个体。变异操作是指从群体中按上述的选择方法随机选择一个父代染色体个体,然后在该个体的表达式上随机选定一个结点作为变异点,通过将该变异点基因的值变为另一个有效值,形成新的子代染色体个体。

交叉操作是否发生可根据交叉概率pc来决定,其方法为,随机产生一个0~1之间的随机数p,当p≤pc,交叉操作发生,当p>pc,交叉不发生。同样,变异操作是否发生也可根据变异概率pm来决定,由于为现有技术,在此省略对其的描述。

本实施例中,执行交叉操作时,可在每个父代染色体个体中按照一定概率随机选择一个交叉点,交叉点以下部分称为交叉段。第一个父代染色体个体删除其交叉段后,把第二个父代染色体个体的交叉段插入到他的交叉点处,这样就生成了第一个子代染色体个体。同样,第二个父代染色体个体删除其交叉段后,将第一个父代染色体个体的交叉段插入到他的交叉点处后而形成第二个子代染色体个体。这种情况下,如果选择的两个父代染色体个体相同,但由于其交叉点不同,所产生的子代染色体个体也不相同,有效避免了近亲繁殖,提高了全局搜索能力。

本实施例中,执行变异操作时,可以是随机采用以下操作之一:(a)删除神经网络模型隐含层中的至少一个节点及其相应的连接;(b)删除神经网络模型隐含层中的至少一个连接;(c)对被删除的节点或连接以一定的概率进行随机修复;(d)增加隐含层节点,随机产生相应的连接权值。其中,删除节点总是先于增加节点,且增加的加点数不应大于删除的节点数,同时,只有当删除节点不能产生一个好的子代时,才增加节点,这样的变异操作能保证方法始终往压缩神经网络模型的方向进行。

在步骤s214,若步骤s210判断结果为达到所述终止条件,则输出最优染色体个体以获得压缩处理后的第一神经网络模型。本实施例中,最优染色体个体可设置为满足以下条件:

f0=max[h(i,t)]

或者,最优染色体个体可设置为同时满足以下条件:

其中,f0为最优染色体个体的适应度,e0为预设网络误差值,h(i,t)为第t代的第i个体的网络简化度。

图3示出了按照本发明的一个实施例的产品表面缺陷检测装置的示意图。图3所示的装置300与上述产品表面缺陷检测方法相对应,由于装置300的实施例基本相似于方法的实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。装置300可以利用软件、硬件或软硬件结合的方式来实现,可以安装在计算机或其他合适的具有计算能力的电子设备中。

如图3所示,装置300可以包括获取模块302和检测模块304。获取模块302用于获取包含产品表面的待检测图像。检测模块304用于利用第一神经网络模型对所述待检测图像进行检测,以确定所述待检测图像所包含的表面是否存在缺陷;其中,所述第一神经网络模型是利用遗传算法对已训练好的第二神经网络模型进行压缩处理获得的,所述第二神经网络模型是利用预置的训练样本训练得到的,所述第一神经网络模型基于所述训练样本的精度不低于预设精度。

在装置300的一实施方式中,装置300还包括遗传操作模块,用于以基于压缩的适应度值为标准,对所述第二神经网络模型所对应的染色体个体执行遗传操作,以产生适应度值最优的染色体个体;训练模块,用于利用所述训练样本对所述适应度值最优的染色体个体所对应的神经网络模型进行训练,以获得所述第一神经网络模型。

在装置300的另一实施方式中,所述遗传操作模块包括:获取单元,用于获取所述第二神经网络模型的结构信息;编码单元,用于根据所述结构信息,对所述第二神经网络模型进行编码,以得到一染色体;初始化单元,用于根据所述染色体,进行群体初始化生成初始群体;计算单元,用于计算群体中染色体个体的适应度值;判断单元,用于判断是否达到终止条件;遗传操作单元,用于若未达到所述终止条件,则以适应度值为标准,选择部分适应度值满足要求的染色体个体,执行复制、交叉或变异操作,从而产生新一代群体;输出单元,用于若达到所述终止条件,则输出所述适应度值最优的染色体个体。

在装置300的又一实施方式中,所述计算单元进一步用于:分别计算所述染色体个体基于精度和基于压缩的适应度值;相应的,所述遗传操作单元进一步用于:根据所述基于精度的适应度值,获取所述群体中染色体个体的第一选择概率,根据所述第一选择概率选择第一染色体个体,以及,根据所述基于压缩的适应度值,获取所述群体中染色体个体的第二选择概率,根据所述第二选择概率从所述第一染色体个体中选择第二染色体个体;对所述第二染色体个体执行复制、交叉或变异操作,从而产生新一代群体。

图4示出了按照本发明的一个实施例的计算机设备的示意图。如图4所示,计算机设备400可以包括处理器402和存储器404,其中,存储器402上存储有可执行指令,其中,所述可执行指令当被执行时使得处理器402执行图1所示的方法100或图2所示的方法200。

图5示出了适于用来实现本发明实施方式的示例性计算机设备的框图。图5所示的计算机设备500仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图5所示,计算机设备500以通用计算设备的形式实现。计算机设备500的组件可以包括但不限于:处理器502,系统存储器504,连接不同系统组件(包括处理器502和系统存储器504)的总线506。

总线506表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。

计算机设备500典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备500访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器504可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)508和和/或高速缓存存储器510。计算机设备500可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统512可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线506相连。系统存储器504可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明上述图1或图2实施例的功能。

具有一组(至少一个)程序模块516的程序/实用工具514,可以存储在例如系统存储器504中,这样的程序模块516包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块516通常执行本发明所描述的上述图1或图2实施例中的功能和/或方法。

计算机设备500也可以与一个或多个外部设备600(例如键盘、指向设备、显示器700等)通信,还可与一个或者多个使得用户能与该计算机设备500交互的设备通信,和/或与使得该计算机设备500能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/0)接口518进行。并且,计算机设备500还可以通过网络适配器520与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器520通过总线506与计算机设备500的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理器502通过运行存储在系统存储器504中的程序,从而执行各种功能应用以及数据处理,例如实现上述实施例所示的产品表面缺陷检测方法。

本发明的实施例还提供一种计算机可读介质,其上存储有可执行指令,其中,所述可执行指令当被执行时使得计算机执行图1所示的方法100或图2所示的方法200。

本实施例的计算机可读介质可以包括上述图5所示实施例中的系统存储器504中的ram508、和/或高速缓存存储器510、和/或存储系统512。

随着科技的发展,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载,或者采用其他方式获取。因此,本实施例中的计算机可读介质不仅可以包括有形的介质,还可以包括无形的介质。

本实施例的计算机可读介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言,诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

本领域的技术人员应明白,本发明实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

上面结合附图阐述的具体实施方式描述了示例性实施例,但并不表示可以实现的或者落入权利要求书的保护范围的所有实施例。在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。

本公开内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本公开内容。对于本领域普通技术人员来说,对本公开内容进行的各种修改是显而易见的,并且,也可以在不脱离本公开内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本公开内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1