具体实施方式
为使得本公开的上述目的、特征和优点能更加明显易懂,以下结合附图对本公开的具体实施方式作详细说明。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但是本公开还可以采用其它不同于在此描述的其它方式来实施,因此本公开不受下文公开的具体实施例的限制。
一般而言,在构建训练样本集时,会纳入多个有标记样本,即这些样本是正例(也称为白样本)、还是反例(也可称为黑样本)通过类别标记标识。
在训练现有的网站或App应用的图片识别能力时一般通过纳入静态黑样本来进行。黑样本素材来自网站爬取或图库,先通过算法去掉重复的图片(下文中简称为“去重”),再进行人工打标。在色情、涉政、暴恐等相关图片的情形中,需要人工对图片进行筛选,并进行相应的打标。
通常有标记样本不足会使得模型(例如,网站或App应用所采用的模型)的泛化能力不佳;在机器学习中,人们往往引入未标记样本,采用主动学习且不依赖外界交互(即,非监督学习)来将这些未标记样本转变为有标记样本,例如将未标记样本中所包含的数据分布信息与类别标记相联系。但是,对于图片样本,在采用不同的图片编辑方式之后,其图像数据特性将会有较大变化,用基于非监督学习的模型并不能快速、准确地将未标记样本转变为有标记样本。
因此,为了训练得到图片识别能力强的网站或App应用,就需要采集海量的图片样本,并投入人工筛选,整个过程耗时长,产出效率较低,成本较大。与此同时,利用传统方法训练出的恶意检测效果受限,无法针对不同图片编辑方式实现针对性测试,检测容易被绕过,产生被攻击风险。
本公开的图片样本的自动化生成方法和系统旨在针对多种图片编辑方式构建大量的训练图片样本,既能解决效率低、成本高的问题,又能降低被攻击风险。
图片样本的自动化生成方法
图1示出根据本公开一实施例的用于自动化地生成图片样本的方法的流程图。
在102,获取原始图片样本。
先定向采集图片,即从图库导入、或从网站爬取图片。所采集的图片可能会重复。本领域技术人员可以理解,可采用多种算法去掉重复的图片,例如基于多特征综合距离的并行化图片离线去重算法、基于粒子群优化的图片在线去重算法等。
再针对经去重的图片,进行人工筛选和打标。在色情、涉政、暴恐等相关图片的情形中,打标是对图片打风险标。
经过去重、人工筛选和打标的图片样本即为本公开中的原始图片样本。可获取m个原始图片样本,其中m为大于或等于1的整数。
以上的图片去重和图片打标可采用本领域技术人员熟知的各种手段,在此不再赘述。
在104,将原始图片样本进行一次或多次编辑以获取多个经编辑图片样本。该一次或多次编辑可从多种编辑手段中选择,该多种编辑手段包括尺寸缩放、剪切、旋转、部分遮挡、变色、模糊、压缩、文字水印、动图、增加手写文字/手绘等等。本领域技术人员可以理解,针对图片的编辑手段不限于以上手段,并且可随着图片编辑技术的发展,纳入新的编辑手段。也就是说,编辑手段是可扩展的。
在本公开一实施例中,对原始图片样本进行缩放。
在本公开的另一实施例中,对原始图片样本进行变色。
在本公开一实施例中,可取用m个原始图片样本,m为大于或等于1的整数;针对每一个原始图片样本,可分别采用n种编辑手段将每个原始图片样本进行一次编辑以获取n个经一次编辑的图片样本。对于该m个原始图片样本,共获取m x n个经一次编辑的图片样本。
在本公开的另一实施例中,可取用m个原始图片样本,m为大于或等于1的整数;针对每一个原始图片样本,可从n种编辑手段中选择两种不同的编辑,由此将每个原始图片样本进行两次编辑以获取n个经两次编辑的图片样本。对于该m个原始图片样本,共获取m x n个经两次编辑的图片样本。
在本公开一实施例中,一次编辑采用缩放,二次编辑采用旋转,则该一次编辑与二次编辑构成缩放x旋转的组合。即,在104对原始图片样本进行缩放之后,再对经缩放的图片样本进行旋转。
在本公开的另一实施例中,一次编辑采用变色,二次编辑采用压缩,则该一次编辑与二次编辑构成变色x压缩的组合。即,在104对原始图片样本进行变色之后,再对经变色的图片样本进行压缩。
针对不同的需求,二次编辑与一次编辑的组合方式可不同。在下文中将描述根据本公开不同实施例的不同组合方式。
同样,三次及以上次数的编辑可从以上编辑手段中选择,并采用不同的组合方式。
本领域技术人员可以理解,在多次编辑过程中,可自动对所编辑的图片样本打编辑标。例如,经过缩放编辑的图片样本可被打上缩放编辑标。对所编辑的图片样本打编辑标的目的在于:在后续的模型优化过程中,可清楚地知晓模型对于哪些类型的图片经过哪些编辑手段是能够识别的,而对于另一些类型的图片经过什么编辑手段是不能够识别的。
在106,将原始图片样本和多个经编辑图片样本构成图片样本集合。
在本公开一实施例中,将原始图片样本和经编辑图片样本置入图片样本集合。
在本公开另一实施例中,将原始图片样本、经变色的图片样本以及经变色x压缩的图片样本置入图片样本集合。
在108,将图片样本集合的子集输入模型,以使该模型确定子集中的每个图片样本是可识别样本还是不可识别样本。
在本公开一实施例中,可提取图片样本集合中的经一次编辑的图片样本作为子集,投入模型的训练,从而输出相应的可识别样本和不可识别样本。
本领域技术人员可以理解,可提取图片样本集合中的原始图片样本、经一次编辑的图片样本以及经多次编辑的图片样本的一部分或全部作为子集,投入模型的训练。
在110,将所确定的不可识别样本反馈给模型,以减少该模型的盲点。
在本公开一实施例中,不可识别样本可被用来检测出模型的盲点,从而对未识别原因进行分析,减少该模型的盲点。举例而言,可基于每一个盲点进行模型的优化,例如参数调整。
在本公开另一实施例中,可识别样本可被用来总结出可识别特性,且可识别特性可被反馈到原始图片样本获取阶段,以删除相同或类似的原始图片样本,或增加新的原始图片样本。
图2示出根据本公开一实施例的用于自动化地生成图片样本的方法的示意图。
首先是原图整理阶段。先定向抓取图片,即从图库导入、或从网站爬取图片,或从两者抓取图片。如果所采集的图片有重复,则可采用多种算法去掉重复的图片,例如基于多特征综合距离的并行化图片离线去重算法、基于粒子群优化的图片在线去重算法等。再针对经去重的图片,进行人工筛选和打标。打标可以是对图片打风险标,例如色情、涉政、暴恐等。
以上的图片去重和图片打标可采用本领域技术人员熟知的各种手段,在此不再赘述。在原图整理阶段,可获取m个原始图片样本,其中m为大于或等于1的整数。
接着是编辑手段选择阶段。在本公开一实施例中,编辑手段有多种,包括尺寸缩放、剪切、旋转、部分遮挡、变色、模糊、压缩、文字水印、动图、增加手写文字/手绘等等。本领域技术人员可以理解,随着图片编辑技术的发展,可纳入更多种的图片编辑手段。也就是说,编辑手段是可扩展的。可从n种图片编辑手段中进行选择,其中n为大于或等于1的整数。
然后是编辑手段组合阶段。在本公开一实施例中,多次编辑可以是两次编辑,第一次编辑是从n种图片编辑手段中选择其一,例如旋转。而第二次编辑是从n种图片编辑手段中选择不同的第二种编辑手段,例如变色。则该两次编辑可表示为旋转x变色。
在本公开另一实施例中,多次编辑可以是三次编辑,第一次编辑是从n种图片编辑手段中选择其一,例如旋转。而第二次编辑是从n种图片编辑手段中选择不同的第二种编辑手段,例如变色。第三次编辑则是从n种图片编辑手段中选择再不同的第三种编辑手段,例如模糊。则该三次编辑可表示为旋转x变色x模糊。
当然,本领域技术人员可以理解,多次编辑可选择相同或不同的编辑手段。本领域技术人员还可以理解,对于不同种类的图片,相同编辑手段的不同次序编辑可能会产生不同的图片样本。例如,经旋转x变色x模糊的编辑之后的图片样本可能与经模糊x旋转x变色的编辑之后的图片样本是不同的。
注意,在多次编辑过程中,可自动对所编辑的图片样本打编辑标。对所编辑的图片样本打编辑标的目的在于:在后续的模型优化过程中,可清楚地知晓模型对于哪些类型的图片经过哪些编辑手段是能够识别的,而对于另一些类型的图片经过什么编辑手段是不能够识别的。
再进入样本集构建和提取阶段。将所获取的原始图片样本以及多个经编辑图片样本构成样本集,并且提取该样本集的子集以输入待测试模型。针对所输入的该样本集子集中的图片样本,模型将其区分为可识别样本和不可识别样本。
最后进入模型优化阶段。不可识别样本可被用来减少模型的盲点。例如,某一图片样本在打薄马赛克之后是可识别的,但是在薄马赛克处理之后再进行缩放,就变成不可识别。那么,该模型的盲点即为薄马赛克+缩放。由此,可对模型进行黑盒调参,使得经调参后模型的该盲点被消减(具体请参考下文对图6的描述)。
图3示出根据本公开一实施例的将原始图片样本进行一次或多次编辑的步骤的示意图。
在本实施例中,针对原始图片样本的多次编辑,是对编辑手段进行组合,并将原始图片样本进行经组合的编辑,例如旋转x变色或旋转x变色x模糊。
在本实施例中,多次编辑的次数是特定组合数。
针对包括尺寸缩放、剪切、旋转、部分遮挡、变色、模糊、压缩、文字水印、动图、增加手写文字/手绘等的多种编辑手段(注意,编辑手段是可扩展的),可从中任意选择一种编辑手段对原始图片样本进行一次编辑。如果有n种编辑手段,则进行一次编辑的选择可有n种。在原始图片样本有m个的情况下,可生成经以上一次编辑的图片样本的个数为m·n。
针对包括尺寸缩放、剪切、旋转、部分遮挡、变色、模糊、压缩、文字水印、动图、增加手写文字/手绘等的多种编辑手段,可从中任意选择两种编辑手段对原始图片样本进行两次编辑的组合。如果有n种编辑手段,则进行两次编辑的选择的种数为:
在原始图片样本有m个的情况下,可生成经以上两次编辑的图片样本的个数为:
类似地,如果有n种编辑手段,则进行三次编辑的选择的种数为:
在原始图片样本有m个的情况下,可生成经以上三次编辑的图片样本的个数为:
依此类推,如果有n种编辑手段,则进行n-1次编辑的选择的种数为:
在原始图片样本有m个的情况下,可生成经以上n-1次编辑的图片样本的个数为:
类似地,如果有n种编辑手段,则进行n次编辑的选择的种数为:
在原始图片样本有m个的情况下,可生成经以上n次编辑的图片样本的个数为:
由此,可构成原始图片样本和多个经编辑图片样本的图片样本集合,其中经编辑图片样本的数量依照选用的编辑手段的数量而不同。本领域技术人员可以理解,根据不同的图片种类以及不同的模型,可进行不同的选择。
图4示出根据本公开另一实施例的将原始图片样本进行一次或多次编辑的步骤的示意图。
在本实施例中,针对原始图片样本的多次编辑,是对编辑手段进行排列,并将原始图片样本进行经排列的编辑。在这样的情形中,对原始图片样本进行尺寸缩放x剪切与对原始图片样本进行剪切x尺寸缩放将生成不同的经编辑图片样本。
在本实施例中,多次编辑的次数是特定排列数。
针对包括尺寸缩放、剪切、旋转、部分遮挡、变色、模糊、压缩、文字水印、动图、增加手写文字/手绘等的多种编辑手段(注意,编辑手段是可扩展的),可从中任意选择一种编辑手段对原始图片样本进行一次编辑。如果有n种编辑手段,则进行一次编辑的选择可有n种。在原始图片样本有m个的情况下,可生成经以上一次编辑的图片样本的个数为m·n。
针对包括尺寸缩放、剪切、旋转、部分遮挡、变色、模糊、压缩、文字水印、动图、增加手写文字/手绘等的多种编辑手段,可从中任意选择两种编辑手段对原始图片样本进行两次编辑的排列。如果有n种编辑手段,则进行两次编辑的选择的种数为:
在原始图片样本有m个的情况下,可生成经以上两次编辑的图片样本的个数为:
类似地,如果有n种编辑手段,则进行三次编辑的选择的种数为:
在原始图片样本有m个的情况下,可生成经以上三次编辑的图片样本的个数为:
依此类推,如果有n种编辑手段,则进行n-1次编辑的选择的种数为:
在原始图片样本有m个的情况下,可生成经以上n-1次编辑的图片样本的个数为:
类似地,如果有n种编辑手段,则进行n次编辑的选择的种数为:
在原始图片样本有m个的情况下,可生成经以上n次编辑的图片样本的个数为:
由此,可构成原始图片样本和多个经编辑图片样本的图片样本集合,其中经编辑图片样本的数量依照选用的编辑手段的数量而不同。本领域技术人员可以理解,根据不同的图片种类以及不同的模型,可进行不同的选择。
图5示出根据本公开又一实施例的将原始图片样本进行一次或多次编辑的步骤的示意图。
在本实施例中,针对原始图片样本的多次编辑,是对编辑手段进行杨辉三角组合,并将原始图片样本进行经杨辉三角组合的编辑。
参看图5的杨辉三角组合:
第1行指的是原始图片样本;
第2行采用1种编辑手段,则获取的是原始图片样本和经一次编辑的图片样本,共2个图片样本;
第3行采用2种编辑手段,则获取的是原始图片样本、经第1种编辑手段编辑的图片样本、经第2种编辑手段编辑的图片样本、以及经2种编辑手段编辑的图片样本,共4个图片样本;
依此类推,对于第n+1行,采用n种编辑手段,则获取的是原始图片样本、经n种编辑手段之一编辑的图片样本、经n种编辑手段中的两种编辑手段编辑的图片样本、......、经n种编辑手段中的n-1种编辑手段编辑的图片样本、以及经n种编辑手段编辑的图片样本,共2n个图片样本。
由此,可构成原始图片样本和多个经编辑图片样本的图片样本集合,其中经编辑图片样本的数量依照选用的编辑手段的数量而不同。本领域技术人员可以理解,根据不同的图片种类以及不同的模型,可对编辑手段的数量进行不同的选择。
图6示出根据本公开一实施例的图片样本的模型测试的示意图。
在本实施例中,原始图片样本为涉毒图片样本,其为模型可识别样本。在原始图片样本中加入打印字的图片样本也是该模型的可识别样本。带打印字的图片样本缩放75%后获得的图片样本为该模型的不可识别样本。而缩放75%的图片样本加入手写文字后获得的图片样本也是该模型的不可识别样本。
针对以上的模型检测结果进行不可识别原因分析,获得不可识别原因如下:
1.图片打印后没有正向摆放,以及缩放后识别准确率低;
2.手写文字没有命中高危词库。
对以上的不可识别原因,进行模型的优化以消减模型的盲点,即以上描述的非正向摆放、缩放、手写文字等。本领域技术人员可以理解,针对不同的模型,盲点亦可不同。
在模型是机器学习模型的实施例中,模型的优化通常涉及超参数调优。而超参数调优一般认为是黑盒优化问题,所谓黑盒问题就是在调优的过程中只看到模型的输入和输出,不能获取模型训练过程的梯度信息,也不能假设模型超参数和最终指标符合凸优化条件,否则的话通过求导或者凸优化方法就可以求导最优解。
针对黑盒优化问题,通常采用的算法是Grid search(网格搜索)、Random search(随机搜索)和Bayesian Optimization(贝叶斯优化),在此不再赘述。
对于确定的可识别样本,可总结识别出的特性,将识别出的特性反馈给模型,以删除相应的原始图片样本、并且引入新的原始图片样本,从而动态更新图片样本集合并不断地测试模型。
本公开的图片样本的自动化生成方法旨在针对多种图片编辑方式构建大量的训练图片样本,既能解决效率低、成本高的问题,又能降低被攻击风险。
图片样本的自动化生成系统
图7示出根据本公开一实施例的用于自动化地生成图片样本的系统700的框图。
系统700包括:获取模块702,获取原始图片样本。
获取模块702先定向采集图片,即从图库导入、或从网站爬取图片。所采集的图片可能会重复。可采用多种算法去掉重复的图片,例如基于多特征综合距离的并行化图片离线去重算法、基于粒子群优化的图片在线去重算法等。
获取模块702再针对经去重的图片,进行人工筛选和打标。在色情、涉政、暴恐等相关图片的情形中,打标是对图片打风险标。经过去重、人工筛选和打标的图片样本即为本公开中的原始图片样本。可获取m个原始图片样本,其中m为大于或等于1的整数。
以上的图片去重和图片打标可采用本领域技术人员熟知的各种手段,在此不再赘述。
系统700还包括:编辑模块704,将原始图片样本进行一次或多次编辑以获取多个经编辑图片样本。该一次或多次编辑可从多种编辑手段中选择,该多种编辑手段包括尺寸缩放、剪切、旋转、部分遮挡、变色、模糊、压缩、文字水印、动图、增加手写文字/手绘等等。本领域技术人员可以理解,针对图片的编辑手段不限于以上手段,并且可随着图片编辑技术的发展,纳入新的编辑手段。也就是说,编辑手段是可扩展的。
在本公开一实施例中,编辑模块704可取用m个原始图片样本,m为大于或等于1的整数;针对每一个原始图片样本,可分别采用n种编辑手段将每个原始图片样本进行一次编辑以获取n个经一次编辑的图片样本。对于该m个原始图片样本,共获取m x n个经一次编辑的图片样本。
在本公开的另一实施例中,编辑模块704可取用m个原始图片样本,m为大于或等于1的整数;针对每一个原始图片样本,可从n种编辑手段中选择两种不同的编辑,由此将每个原始图片样本进行两次编辑以获取n个经两次编辑的图片样本。对于该m个原始图片样本,共获取m x n个经两次编辑的图片样本。
在本公开一实施例中,一次编辑采用缩放,二次编辑采用旋转,则该一次编辑与二次编辑构成缩放x旋转的组合。即,在104对原始图片样本进行缩放之后,再对经缩放的图片样本进行旋转。
在本公开的另一实施例中,一次编辑采用变色,二次编辑采用压缩,则该一次编辑与二次编辑构成变色x压缩的组合。即,在104对原始图片样本进行变色之后,再对经变色的图片样本进行压缩。
针对不同的需求,二次编辑与一次编辑的组合方式可不同。在下文中将描述根据本公开不同实施例的不同组合方式。
同样,三次及以上次数的编辑可从以上编辑手段中选择,并采用不同的组合方式。
本领域技术人员可以理解,在多次编辑过程中,可自动对所编辑的图片样本打编辑标。例如,经过缩放编辑的图片样本可被打上缩放编辑标。对所编辑的图片样本打编辑标的目的在于:在后续的模型优化过程中,可清楚地知晓模型对于哪些类型的图片经过哪些编辑手段是能够识别的,而对于另一些类型的图片经过什么编辑手段是不能够识别的。
系统700还包括:构建模块706,将原始图片样本和多个经编辑图片样本构成图片样本集合。
在本公开一实施例中,构建模块706将原始图片样本和经编辑图片样本置入图片样本集合。
在本公开另一实施例中,构建模块706将原始图片样本、经变色的图片样本以及经变色x压缩的图片样本置入图片样本集合。
系统700进一步包括:优化模块708,将图片样本集合的子集输入模型,以使该模型确定子集中的每个图片样本是可识别样本还是不可识别样本。
在本公开一实施例中,优化模块708可提取图片样本集合中的经一次编辑的图片样本作为子集,投入模型的训练,从而输出相应的可识别样本和不可识别样本。
本领域技术人员可以理解,优化模块708可提取图片样本集合中的原始图片样本、经一次编辑的图片样本以及经多次编辑的图片样本的一部分或全部作为子集,投入模型的训练。
优化模块708将所确定的不可识别样本反馈给模型,以减少该模型的盲点。
在本公开一实施例中,不可识别样本可被用来检测出模型的盲点,从而对未识别原因进行分析,减少该模型的盲点。举例而言,优化模块708可基于每一个盲点进行模型的优化,例如参数调整。
在本公开另一实施例中,可识别样本可被用来总结出可识别特性,且可识别特性可被反馈到原始图片样本获取阶段,以删除相同或类似的原始图片样本,或增加新的原始图片样本。
本公开的图片样本的自动化生成系统旨在针对多种图片编辑方式构建大量的训练图片样本,既能解决效率低、成本高的问题,又能降低被攻击风险。
以上描述的图片样本的自动化生成方法和系统的各个步骤和模块可以用硬件、软件、或其组合来实现。如果在硬件中实现,结合本发明描述的各种说明性步骤、模块、以及电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或其他可编程逻辑组件、硬件组件、或其任何组合来实现或执行。通用处理器可以是处理器、微处理器、控制器、微控制器、或状态机等。如果在软件中实现,则结合本发明描述的各种说明性步骤、模块可以作为一条或多条指令或代码存储在计算机可读介质上或进行传送。实现本发明的各种操作的软件模块可驻留在存储介质中,如RAM、闪存、ROM、EPROM、EEPROM、寄存器、硬盘、可移动盘、CD-ROM、云存储等。存储介质可耦合到处理器以使得该处理器能从/向该存储介质读写信息,并执行相应的程序模块以实现本发明的各个步骤。而且,基于软件的实施例可以通过适当的通信手段被上载、下载或远程地访问。这种适当的通信手段包括例如互联网、万维网、内联网、软件应用、电缆(包括光纤电缆)、磁通信、电磁通信(包括RF、微波和红外通信)、电子通信或者其他这样的通信手段。
还应注意,这些实施例可能是作为被描绘为流程图、流图、结构图、或框图的过程来描述的。尽管流程图可能会把诸操作描述为顺序过程,但是这些操作中有许多操作能够并行或并发地执行。另外,这些操作的次序可被重新安排。
所公开的方法、装置和系统不应以任何方式被限制。相反,本发明涵盖各种所公开的实施例(单独和彼此的各种组合和子组合)的所有新颖和非显而易见的特征和方面。所公开的方法、装置和系统不限于任何具体方面或特征或它们的组合,所公开的任何实施例也不要求存在任一个或多个具体优点或者解决特定或所有技术问题。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多更改,这些均落在本发明的保护范围之内。