背景技术
随着计算机和计算机网络的日益普及,互联网已经深入到人们工作、学习和生活的各个领域。网络发展在提供便利的同时也带来各种挑战。一些别有用心的人会利用机器人程序大量地不当使用网络免费资源,例如群发垃圾邮件等,使服务器效能大为降低。也有人利用程序不断发出服务请求回应,进行“饱和攻击”以达到使服务瘫痪的目的。甚至还有人尝试利用暴力破解等手段进行虚拟财产盗窃等。为避免上述恶意行为,设计一套能够让计算机自动分辨信息是来自合理使用者或是非正当使用的机器人程序的工具,就显得非常重要。
图片验证码的主要目的是分辨网络服务使用者是程序还是人类。图片验证码是一幅含有字符的图片,会要求使用者回答在这张图片中显示了哪些文字。为了避免被程序自动识别,通常在图片验证码中将文字进行扭曲,同时加入一些噪声。目前程序对这种文字的识别率仍然不高,人类则能正确地认识图片上的文字,具有较佳的文字识别能力。利用图片验证码机制,可以认为正确回答的是人类,而一直答错的会被认为是程序,从而区别善意使用者和恶意使用者,并由此分别执行相应的后续操作。
图片验证码越来越成为网络服务中身份认定的一种广泛使用工具。随着人工智能和图像理解技术的发展,机器对图像中字符的识别能力越来越强。图片验证码需要在保证人类视觉可辨认的前提下,不断提高抗机器程序破解的能力。
实践证明,对于从图像中分割出来的单字符,现有技术下机器识别率几乎接近完美。增加从图片中分割字符的难度,成为防破解和提高安全性的重要手段。
现有技术中主要通过在字符所处图片背景中加入噪声或者简单的人工纹理来增加字符分割难度。图1为现有技术中常见的含有背景噪声和简单纹理的图片验证码实例示意图。然而,对于人来说,噪声会带来视觉不舒适感,而且人工纹理则由于具有较强的规律性而易于被破解。
发明内容
本发明实施例提出了一种图片验证码生成方法,应用本发明所生成的图片验证码能够为用户带来更好的视觉体验且难以破解。
本发明实施例还提出了一种图片验证码生成系统,应用本发明所生成的图片验证码能够为用户带来更好的视觉体验且难以破解。
本发明实施例的技术方案是这样实现的:
一种图片验证码生成方法,该方法包括:
计算自然背景图像的颜色分布和亮度分布,并根据所计算出的颜色分布和亮度分布分别为前景文字确定文字颜色和文字亮度;
将前景文字按照所确定的文字颜色和文字亮度嵌入到所述自然背景图像中;
其中计算自然背景图像的颜色分布和亮度分布,并根据所计算出的颜色分布和亮度分布分别为前景文字确定文字颜色和文字亮度包括:
将所述自然背景图像从红蓝绿RGB色彩空间变换到色调色彩饱和度色彩亮度HSV色彩空间,并分别对色调和色彩进行直方图统计;
分别计算色调和色彩直方图中相邻格统计量的梯度绝对值,并根据所述梯度绝对值和所述统计量计算色调和色彩直方图中每一直方图格与其邻接直方图格的色调分布特性和色彩分布特性;
根据所述色调分布特性和所述色彩分布特性,分别为前景文字确定文字颜色和文字亮度,其中所确定的前景文字的文字颜色和文字亮度与自然背景图像的亮度和颜色不同,并且差别小于预定值,或者所确定的前景文字的文字颜色和文字亮度与自然背景图像的颜色和亮度互补。
一种图片验证码生成系统,该系统包括:
前景文字色彩确定单元,用于计算自然背景图像的颜色分布和亮度分布,并根据所计算出的颜色分布和亮度分布分别为前景文字确定文字颜色和文字亮度,其中计算自然背景图像的颜色分布和亮度分布,并根据所计算出的颜色分布和亮度分布分别为前景文字确定文字颜色和文字亮度包括:将所述自然背景图像从红蓝绿RGB色彩空间变换到色调色彩饱和度色彩亮度HSV色彩空间,并分别对色调和色彩进行直方图统计;分别计算色调和色彩直方图中相邻格统计量的梯度绝对值,并根据所述梯度绝对值和所述统计量计算色调和色彩直方图中每一直方图格与其邻接直方图格的色调分布特性和色彩分布特性;根据所述色调分布特性和所述色彩分布特性,分别为前景文字确定文字颜色和文字亮度,其中所确定的前景文字的文字颜色和文字亮度与自然背景图像的亮度和颜色不同,并且差别小于预定值,或者所确定的前景文字的文字颜色和文字亮度与自然背景图像的颜色和亮度互补;
前景文字嵌入单元,用于将前景文字按照所确定的文字颜色和文字亮度嵌入到所述自然背景图像中。
从上述技术方案中可以看出,在本发明实施例中,首先计算自然背景图像的颜色分布和亮度分布,然后根据所计算出的颜色分布和亮度分布分别为前景文字确定文字颜色和文字亮度,然后再将前景文字嵌入到自然背景图像中。由于在本发明实施例中采用自然背景图像代替现有技术中采用噪声作为背景图像,因此本发明实施例能够为用户带来更好的视觉体验,另外由于在本发明实施例中自适应地进行前景文字颜色的选择,既使前景背景可区分以保证用户的辨认度,同时由于前景颜色灵活多变,还增加了破解的难度,因此还增强了验证码的抗破解能力。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
在本发明实施例中,采用自然背景图像作为验证码背景图案,自适应地进行前景文字颜色的选择,从而既可以保证前景、背景可区分以保证用户的辨认度,同时由于前景颜色灵活多变,还可以增加破解的难度。另外,本发明实施例中还可以采用随机截取子图像的方法来生成自然背景图像,从而增加了采用暴力方法进行破解的代价和成本。
图2为根据本发明实施例的图片验证码生成方法的示范性流程图。
如图2所示,该方法包括:
步骤201:计算自然背景图像的颜色分布和亮度分布,并根据所计算出的颜色分布和亮度分布分别为前景文字确定文字颜色和文字亮度;
其中,自然背景图像可以选自于预先设定的自然背景图像集合,也可以是从另一张自然背景图像中随机截取出的子图像。还可以首先从自然背景图像集合中随机抽出一张自然背景图像,然后再从该抽取出的自然背景图像中随机截取子图像,并将该子图像作为验证码的背景图像。
作为验证码的背景图像的自然背景图像既可以是自然风光图像,也可以是人物图像或者卡通图像等等。
确定作为验证码的背景图像的自然背景图像后,可以首先将自然背景图像从红蓝绿(RGB)色彩空间变换到色调色彩饱和度色彩亮度(HSV)色彩空间,并分别对色调和色彩进行直方图统计;然后分别计算色调和色彩直方图中相邻格统计量的梯度绝对值,并根据所述梯度绝对值和所述统计量计算色调和色彩直方图中每一直方图格与其邻接直方图格的色调分布特性和色彩分布特性;再根据色调分布特性和色彩分布特性,分别为前景文字确定文字颜色和文字亮度,其中所确定的前景文字的文字颜色和文字亮度与自然背景图像的亮度和颜色不同,并且差别小于预定值。
可选地,确定作为验证码的背景图像的自然背景图像后,可以首先将所述自然背景图像从RGB色彩空间变换到HSV色彩空间,并分别对色调和色彩进行直方图统计;然后分别计算色调和色彩直方图中相邻格统计量的梯度绝对值,并根据所述梯度绝对值和所述统计量计算色调和色彩直方图中每一直方图格与其邻接直方图格的色调分布特性和色彩分布特性;再根据所述色调分布特性和所述色彩分布特性,分别为前景文字确定文字颜色和文字亮度,其中所确定的前景文字的文字颜色和文字亮度与自然背景图像的颜色和亮度互补。
在本发明实施例中,优选采用直方图统计方法来计算自然背景图像的颜色分布和亮度分布,也可以采用高斯分布拟合等其它方式计算自然背景图像的颜色分布和亮度分布,本发明对此并无限定。
步骤202:将前景文字按照所确定的文字颜色和文字亮度嵌入到所述自然背景图像中。
在步骤201中,还可以进一步计算自然背景图像的色彩饱和度,并根据所计算出的色彩饱和度为前景文字确定色彩饱和度,然后步骤202中将前景文字按照所确定的文字颜色、文字亮度和色彩饱和度嵌入到所述自然背景图像中。
图3为根据本发明实施例的图片验证码生成过程的示范性示意图。
如图3所示,首先,可以根据应用情景整理出待用自然图像集合。具体地,可以在自然图像生成阶段,首先根据随机算法从自然图像集合中选择一张图像I。预先定义子图的可接受尺度大小上下限分别为{s1,s2},采用随机算法生成包含4个随机数的随机数组,然后根据该随机数组,分别确定子图的左上角坐标和尺度,再从原图像I中截取子图,记子图为Isub。
然后,将截取的子图Isub从RGB色彩空间变换到HSV色彩空间,并分别对H、S和V三个色彩分量进行直方图统计,可以用hist={q(u)|u=1,...,16}表示一个色彩分量的直方图,这里q(u)表示直方图在第u格上的统计量。也就是,针对H、S和V三个分量,分别计算其对应的hist。
接着,求取H、S和V这三个色彩分量的直方图相邻格统计量的梯度绝对值hist′={q(u)′|u=2,...,15},其中q(u)′=|q(u-1)-q(u)|+|q(u)-q(u+1)|,并且度量每一个直方图格与其邻接直方图格的色彩分布特性,dist(u)=α·q(u)+(1-α)·q(u)′,其中α为经验系数。
最后,根据该色彩分布特性,前景文字在该颜色分量上的取值为
其中w(u)为直方图u格的色彩值宽度,r为[0,1]区间的随机数。
这样,选择出来的前景文字与背景图像的背景色既不相同,相差也不会太远。可选地,还可以使得选择出来的前景文字跟背景色互补。
图4为根据本发明实施例的图片验证码生成系统的示范性流程图。如图4所示,该系统包括:
前景文字色彩确定单元401,用于计算自然背景图像的颜色分布和亮度分布,并根据所计算出的颜色分布和亮度分布分别为前景文字确定文字颜色和文字亮度;
前景文字嵌入单元402,用于将前景文字按照所确定的文字颜色和文字亮度嵌入到所述自然背景图像中。
其中,前景文字色彩确定单元401,进一步用于计算自然背景图像的色彩饱和度,并根据所计算出的色彩饱和度为前景文字确定色彩饱和度;此时
前景文字嵌入单元402,用于将前景文字按照所确定的文字颜色、文字亮度和色彩饱和度嵌入到所述自然背景图像中。
可选地,所述前景文字色彩确定单元401,可以用于将所述自然背景图像从红蓝绿RGB色彩空间变换到色调色彩饱和度色彩亮度HSV色彩空间,并分别对色调和色彩进行直方图统计,分别计算色调和色彩直方图中相邻格统计量的梯度绝对值,并根据所述梯度绝对值和所述统计量计算色调和色彩直方图中每一直方图格与其邻接直方图格的色调分布特性和色彩分布特性,再根据所述色调分布特性和所述色彩分布特性,分别为前景文字确定文字颜色和文字亮度,其中所确定的前景文字的文字颜色和文字亮度与自然背景图像的亮度和颜色不同,并且差别小于预定值。
另外,前景文字色彩确定单元401,还可以用于将所述自然背景图像从红蓝绿RGB色彩空间变换到色调色彩饱和度色彩亮度HSV色彩空间,并分别对色调和色彩进行直方图统计,分别计算色调和色彩直方图中相邻格统计量的梯度绝对值,并根据所述梯度绝对值和所述统计量计算色调和色彩直方图中每一直方图格与其邻接直方图格的色调分布特性和色彩分布特性,再根据所述色调分布特性和所述色彩分布特性,分别为前景文字确定文字颜色和文字亮度,其中所确定的前景文字的文字颜色和文字亮度与自然背景图像的颜色和亮度互补。
具体地,前景文字色彩确定单元401,可以采用直方图计算自然背景图像的颜色分布和亮度分布,或者采用高斯分布拟合计算自然背景图像的颜色分布和亮度分布。类似地,自然背景图像既可以为自然风光图像,也可以为人物图像或者卡通图像等。
综上所述,在本发明实施例中,采用自然背景图像作为验证码背景图案,自适应地进行前景文字颜色的选择,从而既可以保证前景、背景可区分以保证用户的辨认度,同时由于前景颜色灵活多变,还可以增加破解的难度。
另外,本发明实施例中还可以采用随机截取子图像的方法来生成自然背景图像,从而增加了采用暴力方法进行破解的代价和成本。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。