一种用于检测预定区域中特定标识图像的方法及装置
技术领域
本申请涉及计算机应用领域,具体涉及一种获取标准卡片中特定标识的方法和装置。
背景技术
特定标识的识别属于物体检测范畴,特定标识一般用于表明物体的某种特征,对于观察者来说,标识可以用来作为识别物体的参考依据。特定标识物通常具有明显的外形和显著的空间位置,能够更容易的被识别。对于银行卡来说,标识物一般包括发卡组织的图形标识,文字标识等,识别这些标识具有如下重要意义:
(1)标识物的识别可以作为鉴别银行卡真伪的重要参考依据。
标识物一般都具有明确的尺寸规格和相对位置标识,合法的银行卡都会按照标准对标识物进行印刷,而仿冒的银行卡由于做工低廉,成本较低,一般对标识物的印刷控制不严,通过对标志物的识别,得到标识物的尺寸比例和相对位置,进一步通过与真实标准的银行卡比对,可以为鉴别银行卡的真伪提供有效的参考。
(2)标识物的识别可以为银行卡的检测和校正提供参考标识。
相对于整个银行卡而言,标识物会有统一的样式规定,因此一般也就有明确的边缘标识,识别得到标识物的边缘,可以根据此边缘得到当前拍摄图像的仿射变换标识,因此可以对图像进行校正以利于后续的银行卡精确检测和定位。这里描述为边框标识不是特别准确,准确的描述是边缘标识。
(3)标识物的识别可以让服务提供商根据特定的标识物进行精准广告推送服务。
标识物往往表明了银行卡的特定标识,例如发卡组织和使用范围,因此标识物的识别可以让商家针对该银行卡进行精确地广告推送,提高服务的质量,除此之外,获取标识物标识后,结合增强现实等技术,可以实现多媒体的广告展示。
物体检测是指,在给出的一幅图像或一段视频中,找出特定标识或感兴趣物体在图像或视频中的位置,根据具体的使用场景,物体检测系统通常最后输出物体的外接矩形框或者精确的轮廓。
物体检测大致可分为滑动窗口和广义霍夫变换两类方法。其中,滑动窗口法为目前主流的物体检测方法,滑动窗口法是通过使用训练好的模板在输入图像的多个尺度和多视角进行滑动扫描,通过确定最大相应位置找到目标物体的外接窗口。
现有技术的物体检测方法中所采用的滑动窗口法,在对数据进行分析扫描时,运算量较大,计算复杂度也相对较高,进而使得检测时间较长,其适用于物体结构较为复杂的检测。而对于识别结构较为固定的标识时,显然滑动窗口法并不适用。
因此,迫切需要本领域技术人员解决的技术问题就在于,如何提供一种能够快速、准确的识别出标准卡片上的特定标识的方法。
发明内容
本申请提供一种用于检测预定区域中特定标识图像的方法,以解决现有现有检测过程中计算复杂度高,运算量大的问题。
本申请提供一种用于检测预定区域中特定标识图像的方法,包括:
获取预定区域的图像,作为待检目标图像;
对所述待检目标图像进行二值化处理,获得二值化图像,及所述二值化图像的取反图像,二者均称为待检目标二值图像;
标定所述待检目标二值图像的连通域,并将标定的连通域中像素个数满足设定阈值区间的连通域所在区域作为候选连通域区域;
逐一获取所述候选连通域区域的图像特征,并将该候选连通域区域的图像特征与标准特定标识图像的相应图像特征进行比对,将比对结果相同或最接近的候选连通域区域视为特定标识图像所在位置。
优选地,所述获取所述预定区域或包含该预定区域的图像,作为待检目标图像,包括:
获取所述预定区域或包含该预定区域的图像的预览图像;
计算所述预览图像的区域范围;
将所述预览图像框定在所述区域范围内,获取所述预定区域或包含预定区域的图像,将该框定的区域范围内的图像作为待检目标图像。
优选地,所述计算预览图像的区域范围是指:根据所述预定区域的实际尺寸参数及预览图像的分辨率参数,获得框定所述预览图像的虚拟边框参数,具体为:
根据所述预定区域或包含该预定区域图像的实际尺寸,判断所述预览图像高度乘以所述预定区域或包含该预定区域图像的实际宽度的值是否大于预览图像宽度乘以所述预定区域或包含该预定区域图像实际高度的值;
若是,则所述虚拟边框的宽度为:
ScaledWidth=CardWidthGdt×PreviewHeight/CardHeightGdt×DisplayRatio;
其中,CardWidthGdt为预定区域或包含该预定区域图像的实际宽度;PreviewHeight为预览图像高度;CardHeightGdt为预定区域或包含该预定区域的图像实际高度;DisplayRatio为虚拟边框与预览图像的比值;
所述虚拟边框的高度为:
ScaledHeight=PreviewHeight×DisplayRatio;
其中,PreviewHeight为预览图像高度,DisplayRatio为虚拟边框与预览图像的比值;
若否,则虚拟边框的宽度为:
ScaledWidth=PreviewWidth×DisplayRatio;
其中,PreviewWidth为预览图像宽度,DisplayRatio为虚拟边框与预览图像的比值;
所述虚拟边框的高度为:
ScaledHeight=CardHeightGdt×PreviewWidth/CardWidthGdt×DisplayRatio;
其中,CardHeightGdt为预定区域或包含该预定区域图像的实际高度;PreviewWidth为预览图像宽度;CardWidthGdt为预定区域或包含该预定区域图像的实际宽度;DisplayRatio为虚拟边框与预览图像的比值;
所述虚拟边框上边界为显示屏幕高度与虚拟边框高度差的二分之一;所述虚拟边框下边界为显示屏幕高度与虚拟边框高度和的二分之一;所述虚拟边框的左边界为显示屏幕宽度与虚拟边框宽度差的二分之一;所述虚拟边框的右边界为显示屏幕宽度与虚拟边框宽度和的二分之一。
优选地,所述获取所述预定区域或包含该预定区域的图像,作为待检目标图像,包括:根据特定标识图像在所述预定区域或预定区域图像中的特定位置信息,截取包含特定标识图像的区域范围,作为待检目标图像。
优选地,所述特定位置信息为事先设定的特定标识图像所位于预定区域或包含预定区域图像上的位置。
优选地,所述特定位置是位于所述预定区域或包含预定区域的图像的右上角或右下角或左上角或左下角。
优选地,根据特定标识图像在所述预定区域或预定区域图像中的特定位置信息,截取包含特定标识图像的区域范围,作为待检目标图像,包括:
建立预定区域或包含预定区域的标准图像模板;
根据所述预定区域或包含预定区域的图像遍历所述标准图像模板,通过所述标准图像模板与所述预定区域或包含预定区域的图像的对应关系,获取特定标识图像在预定区域或包含预定区域的图像中的位置信息;
根据该位置信息截取所述预定区域或包含预定区域的图像中包含特定标识的图像区域,作为待检目标图像。
优选地,所述阈值区间的上限值为所述获取的预定区域图像或包含预定区域图像的宽度、高度和上限系数的乘积;下限值为所述获取的预定区域图像或包含预定区域图像的宽度、高度和下限系数的乘积。
优选地,所述将该候选连通域区域的图像特征与所述特定标识图像的相应图像特征进行比对,包括:采用单独图像特征比对或者组合图像特征比对;其中,所述图像特征包括连通域的体积比、连通域外接椭圆长轴方向、连通域外轮廓形状和/或连通域外接矩形长宽比。
优选地,逐一获取所述候选连通域区域的图像特征,并将该候选连通域区域的图像特征与所述特定标识图像的相应图像特征进行比对,将比对结果相同或最接近的候选连通域区域视为所述特定标识图像所在区域,包括:
以所述连通域的体积比和连通域外接椭圆长轴方向作为组合图像特征对候选连通域区域进行筛选,具体是:
获取候选连通域区域的外接边框;
计算所述外接边框内所述候选连通域中前景色的像素与该外接边框面积的体积比;
判断该体积比是否大于预先设定的特定标识图像的阈值范围,若否,则舍弃该候选连通域区域;若是,对所述候选连通域区域进行填充;
计算填充后的所述候选连通域区域外接椭圆长轴的方向,并获得该方向与设定的参考轴的夹角;
判断该夹角是否在预定的阈值范围内,若是,则将该候选连通域区域视为所述特定标识图像所在区域;若否,则舍弃该候选连通域区域。
优选地,包括:判断所述方向与所述参考轴的夹角在预定的阈值范围内后,以所述连通域外轮廓形状作为单独条件对所述候选连通域区域再次进行筛选,具体为:
填充所述候选连通域区域,获得填充图像;
检测所述填充图像的边缘,获得所述填充图像的边缘轮廓图像;
分别获取所述边缘轮廓图像的上下边缘和左右边缘的采样像素点,并选取在设定阈值范围内的所述上下边缘采样像素点和左右边缘采样像素点;
拟合所述选取的采样像素点,获得所述边缘轮廓图像的线段组合信息;
判断所述线段组合信息及交点位置信息与标准特定标识图像的线段组合信息及交点位置信息是否相同;若是,则将候选连通域区域视为特定标识图像区域;若否,则输出未检测特定标识图像区域。
优选地,所述获取所述边缘轮廓图像的上下边缘和左右边缘的采样像素点包括:
以与所述填充图像有两个交点为条件,进行扫描,将该些交点作为采样像素点;
所述选取在设定阈值范围内的所述上下边缘采样像素点和左右边缘采样像素点包括:
判断获取的所述采样像素点的上下边缘之间的距离和左右边缘之间的距离是否在设定的阈值范围内,若是,则选取;若否,则舍弃。
优选地,所述阈值范围为maxDist±maxDist×5%。
优选地,包括:
根据预定区域或包含预定区域图像中特定标识的位置信息和各个交点位置信息,计算仿射变换矩阵;
根据所述仿射变换矩阵获取所述预定区域内的相关信息。
优选地,所述特定标识图像为银行卡联合组织或银行卡发卡组织的标志图形。
本申请另外提供一种用于检测预定区域中特定标识图像的装置,包括:
获取单元,用于获取所述预定区域或包含该预定区域的图像,作为待检目标图像;
二值化处理单元,用于对所述待检目标图像进行二值化处理,获得二值化图像,及所述二值化图像的取反图像,二者均称为待检目标二值图像;
连通域标定单元,用于标定所述待检目标二值图像的连通域,并将标定的连通域中像素个数满足设定阈值区间的连通域作为候选连通域;
图像特征比对单元,用于逐一获取所述候选连通域的图像特征,并将该候选连通域的图像特征与标准特定标识图像的相应图像特征进行比对,将比对结果相同或最接近的候选连通域视为特定标识图像所在位置。
优选地,所述获取单元包括:
预览图像获取单元,用于获取所述预定区域或包含该预定区域的图像的预览图像;
计算单元,用于计算所述预览图像的区域范围;
框定单元,用于将所述预览图像框定在所述区域范围内,获取所述预定区域或包含预定区域的图像,将该框定的区域范围内的图像作为待检目标图像。
优选地,所述计算单元是指:根据所述预定区域的实际尺寸参数及预览图像的分辨率参数,获得框定所述预览图像的虚拟边框参数,具体为:
根据所述预定区域或包含该预定区域图像的实际尺寸,判断所述预览图像高度乘以所述预定区域或包含该预定区域图像的实际宽度的值是否大于预览图像宽度乘以所述预定区域或包含该预定区域图像实际高度的值;
若是,则所述虚拟边框的宽度为:
ScaledWidth=CardWidthGdt×PreviewHeight/CardHeightGdt×DisplayRatio;
其中,CardWidthGdt为预定区域或包含该预定区域图像的实际宽度;PreviewHeight为预览图像高度;CardHeightGdt为预定区域或包含该预定区域的图像实际高度;DisplayRatio为虚拟边框与预览图像的比值;
所述虚拟边框的高度为:
ScaledHeight=PreviewHeight×DisplayRatio;
其中,PreviewHeight为预览图像高度,DisplayRatio为虚拟边框与预览图像的比值;
若否,则虚拟边框的宽度为:
ScaledWidth=PreviewWidth×DisplayRatio;
其中,PreviewWidth为预览图像宽度,DisplayRatio为虚拟边框与预览图像的比值;
所述虚拟边框的高度为:
ScaledHeight=CardHeightGdt×PreviewWidth/CardWidthGdt×DisplayRatio;
其中,CardHeightGdt为预定区域或包含该预定区域图像的实际高度;PreviewWidth为预览图像宽度;CardWidthGdt为预定区域或包含该预定区域图像的实际宽度;DisplayRatio为虚拟边框与预览图像的比值;
所述虚拟边框上边界为显示屏幕高度与虚拟边框高度差的二分之一;所述虚拟边框下边界为显示屏幕高度与虚拟边框高度和的二分之一;所述虚拟边框的左边界为显示屏幕宽度与虚拟边框宽度差的二分之一;所述虚拟边框的右边界为显示屏幕宽度与虚拟边框宽度和的二分之一。
优选地,所述获取单元包括:
截取单元,用于根据特定标识图像在所述预定区域或预定区域图像中的特定位置信息,截取包含特定标识图像的区域范围,作为待检目标图像。
优选地,所述特定位置信息为事先设定的特定标识图像所位于预定区域或包含预定区域图像上的位置。
优选地,所述特定位置是位于所述预定区域或包含预定区域的图像的右上角或右下角或左上角或左下角。
优选地,所述截取单元包括:
建立单元,用于建立预定区域或包含预定区域的标准图像模板;
遍历单元,用于根据所述预定区域或包含预定区域的图像遍历所述标准图像模板,通过所述标准图像模板与所述预定区域或包含预定区域的图像的对应关系,获取特定标识图像在预定区域或包含预定区域的图像中的位置信息;
待检目标图像确定单元,用于根据该位置信息截取所述预定区域或包含预定区域的图像中包含特定标识的图像区域,作为待检目标图像。
优选地,所述阈值区间的上限值为所述预定区域或包含预定区域的图像宽度、高度和上限系数的乘积;下限值为所述预定区域或包含预定区域的图像宽度、高度和下限系数的乘积。
优选地,所述将该候选连通域区域的图像特征与所述特定标识图像的相应图像特征进行比对,包括:采用单独图像特征比对或者组合图像特征比对;其中,所述图像特征包括连通域的体积比、连通域外接椭圆长轴方向、连通域外轮廓形状和/或连通域外接矩形长宽比。
优选地,包括:组合图像特征筛选单元,具体是:
外接边框获取单元,用于获取候选连通域区域的外接边框;
体积比计算单元,用于计算所述外接边框内所述候选连通域中前景色的像素与该外接边框面积的体积比;
体积比阈值判断单元,用于判断该体积比是否大于预先设定的特定标识图像的阈值范围;若否,则舍弃该候选连通域区域;若是,对所述候选连通域区域进行填充;
填充计算单元,用于计算填充后的所述候选连通域区域外接椭圆长轴的方向,并获得该方向与设定的参考轴的夹角;
夹角阈值判断单元,用于判断该夹角是否在预定的阈值范围内,若是,则将该候选连通域区域视为所述特定标识图像所在区域;若否,则舍弃该候选连通域区域。
优选地,单独图像特征筛选单元,包括:
填充单元,用于填充所述候选连通域区域,获得填充图像;
边缘轮廓获取单元,用于根据检测所述填充图像的边缘,获得所述填充图像的边缘轮廓图像;
采样单元,用于分别获取所述边缘轮廓图像的上下边缘和左右边缘的采样像素点,并选取在设定阈值范围内的所述上下边缘采样像素点和左右边缘采样像素点;
采样像素点拟合单元,用于分别获取所述边缘轮廓图像的上下边缘和左右边缘的采样像素点,并选取在设定阈值范围内的所述上下边缘采样像素点和左右边缘采样像素点;
线段组合判断单元,用于判断所述线段组合信息及交点位置信息与标准特定标识图像的线段组合信息和交点位置信息是否相同;若是,则将候选连通域区域视为特定标识图像区域;若否,则输出未检测特定标识图像区域。
优选地,所述采样单元包括:
扫描单元,以与所述填充图像有两个交点为条件,进行扫描,将该些交点作为采样像素点;
距离阈值判断单元,用于判断获取的所述采样像素点的上下边缘之间的距离和左右边缘之间的距离是否在设定的阈值范围内,若是,则选取;若否,则舍弃。
优选地,所述阈值范围为maxDist±maxDist×5%。
优选地,包括:
仿射变换单元,用于根据预定区域或包含预定区域图像中特定标识的位置信息和各个交点位置信息,计算仿射变换矩阵;
相关信息获取单元,用于根据所述仿射变换矩阵获取相关信息。
优选地,所述特定标识图像为银行卡联合组织或银行卡发卡组织的标志图形。
与现有技术相比,本申请具有以下优点:
本申请通过获取预定区域的图像,作为待检目标图像,对该待检目标图像进行二值化处理,并标定二值化图像中的连通域作为候选连通域图像,在该些候选连通域图像中筛选出符合特定标识图像特征的连通域,进而确定检测到特定标识信息。
附图说明
图1是本申请提供的一种用于检测预定区域中特定标识图像的方法流程图;
图2是本申请提供的一种用于检测预定区域中特定标识图像的方法中虚拟边框计算示意图;
图3是本申请提供的一种用于检测预定区域中特定标识图像的方法中虚拟边缘的示意图;
图4是本申请提供的一种用于检测预定区域中特定标识图像的方法中截取包含特定标识图像的区域范围的第一实施例示意图;
图5是本申请提供的一种用于检测预定区域中特定标识图像的方法中截取包含特定标识图像的区域范围的第二实施例流程图;
图6是本申请提供的一种用于检测预定区域中特定标识图像的方法中对待检目标图像进行二值化处理后的二值化图像示意图;
图7是本申请提供的一种用于检测预定区域中特定标识图像的方法中,对候选连通域区域进行第一次筛选的流程图;
图8是本申请提供的一种用于检测预定区域中特定标识图像的方法中,对候选联通区域进行第二次筛选的流程图;
图9是本申请提供的一种用于检测预定区域中特定标识图像的方法中,对银联标识上置和下置的检测示意图;
图10是本申请提供的一种用于检测预定区域中特定标识图像的装置结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请以银行卡卡面所在区域为预定区域,银行卡上的银联标识为特定标识,说明本申请的具体实现过程,但是应当说明,本申请的方法并不局限于对银行卡上的银联标识的识别,本申请的方法可以用于所有具有预定区域中特定已知标识的识别场景,特定已知标识可以是产品标识,企业logo等等,产品标识的预定区域可以是产品本身;企业logo的预定区域可以是包含有该logo的任何载体本身。
请参考图1所示,图1是本申请提供一种用于检测预定区域中特定标识图像方法的第一实施例流程图,在该实施例中,包括如下步骤:
步骤S100:获取预定区域的图像,作为待检目标图像;
步骤S200:对所述待检目标图像进行二值化处理,获得二值化图像,及所述二值化图像的取反图像,二者均称为待检目标二值图像;
步骤S300:标定所述待检目标二值图像的连通域,并将标定的连通域中像素个数满足设定阈值区间的连通域所在区域作为候选连通域区域;
步骤S400:逐一获取所述候选连通域区域的图像特征,并将该候选连通域区域的图像特征与标准特定标识图像的相应图像特征进行比对,将比对结果相同或最接近的候选连通域区域视为特定标识图像所在位置。
通过上述步骤,在对数据进行扫描分析时,是在较小的区域内进行,所以上述检测方法能够减小检测过程中的运算量,并且降低计算复杂度,能够根据特征比较快速完成检测。
下面对上述步骤的具体实现过程进行说明:
所述步骤S100:获取预定区域的图像,作为待检目标图像。
该步骤中的预定区域可以是银行卡卡面区域,也就是说获取银行卡卡面图像或者包含有银行卡卡面区域的图像,获取方式可以通过采用移动终端人为获取或者自动获取,例如:通过移动终端的摄像功能获取预定区域或包含该预定区域的图像。通过预定区域的选取可以减小检测扫描范围,提高检测速度的同时,降低运算量。
为更进一步提高检测效率,减少对非银联标识区域的检测,本申请可以在获取所述银行卡图像或者包含有银行卡区域的图像时,先通过获取的银行卡图像或者包含银行卡卡面区域图像的预览图像,并根据标准银行卡的实际尺寸及预览图像的分辨率,获得框定所述预览图像的虚拟边框的长和宽;再根据该虚拟边框的长宽计算出虚拟边框的上下左右边界,具体如下:
参考图2所示,图2是本申请提供的一种用于检测预定区域中特定标识图像的方法中虚拟边框计算示意图。根据《银联卡业务运作规章》第三卷《卡片BIN号及标识规则》,可以获知银行卡卡片的标准尺寸参数,卡片宽度是85.60mm±0.30mm,卡片高度是53.98mm±0.30mm,本申请中忽略卡片误差范围0.30mm,即:卡片宽度CardWidthGdt=85.6,卡片高度CardHeightGdt=53.98;假定移动终端屏幕分辨率为长×高,即:ScreenWidth×PreviewHeight;预览图像的分辨率参数为宽×高,即:PreviewWidth×PreviewHeight;虚拟边框与预览图像的比值参数为DisplayRatio;在计算虚拟边框时,首先判断PreviewHeight(预览图像高度)×CardWidthGdt(卡片宽度)是否大于(不包含等于)PreviewWidth(预览图像宽度)×CardHeightGdt(卡片高度),若是,则:
ScaledWidth=CardWidthGdt×PreviewHeight/CardHeightGdt×DisplayRatio;
ScaledHeight=PreviewHeight×DisplayRatio;
若否,则:
ScaledHeight=CardHeightGdt×PreviewWidth/CardWidthGdt×DisplayRatio;
ScaledWidth=PreviewWidth×DisplayRatio;
当计算得到虚拟边框的宽与高之后,可以根据移动终端屏幕的分辨率参数确定所述虚拟边框的上下左右边界,具体如下:
上边界Top=ScreenHeight/2-ScaledHeight/2;
下边界Bottom=ScreenHeight/2+ScaledHeight/2;
左边界Left=ScreenWidth/2-ScaledWidth/2;
右边界Right=ScreenWidth/2+ScaledWidth/2。
参考图3,图是3本申请提供的一种用于检测预定区域中特定标识图像的方法中虚拟边缘的示意图。
所述虚拟边框覆盖在所述银行卡图像或者包含银行卡图像区域中银行卡的上方,将虚拟边框所覆盖的范围内区域作为待检目标图像,从而达到检测范围减小化。也可以在虚拟边框的覆盖范围内根据标准银行中银联标识的特定位置信息,截取包含银联标识图像的区域范围,将该区域范围作为待检目标图像,从而进一步达到检测范围的更小化,以提高检测速度,减少运算量。
截取包含银联标识图像的区域范围,本申请通过两种实现方式进行说明。
实现方式一:
参考图4所示,图4是本申请提供的一种用于检测预定区域中特定标识图像的方法中截取包含特定标识图像的区域范围的第一实施例示意图。根据《银联卡业务运作规章》第三卷《卡片BIN号及标识规则》可获知,银行卡上银联标识的位置信息是事先设定的位置,银联标识区位于卡片正面右侧,分为下置格式和上置格式两种。
当银联标识采用下置格式时,须位于卡片的右下角,具体要求是:银联标识的宽度22mm,高度15mm,银联标识右边沿到卡的右边沿的距离是2mm,银联标识下边沿到卡的下边沿的距离是2mm。
当银联标识采用上置格式时,须位于卡片的右上角,具体要求是:银联标识的宽度22mm,高度15mm,银联标识右边沿到卡的右边沿的距离是2mm,银联标识上边沿到卡的上边沿的距离是2mm。
根据上述对银联标识的位置,在截取银行卡图像时,可以仅对银行卡图像或者包含银行卡区域的图像的右上角和右下角进行处理,例如:假定银行卡图像或者包含银行卡区域的图像的分辨率(宽×高)为:Width×Height,则需要截取的图像分别为[Width/2,Width]×[0,Height]和[Width/2,Width]×[Height/2,Height]。
实现方式二:
请参考图5所示,图5提供的一种用于检测预定区域中特定标识图像的方法中截取包含特定标识图像的区域范围的第二实施例流程图;包括:
步骤S101:建立银行卡图像的标准图像模板;
步骤S102:根据所述银行卡图像或包含银行卡区域的图像遍历所述标准图像模板,通过所述标准图像模板与所述银行卡图像或包含银行卡区域的图像的对应关系,获取银联标识图像在所述银行卡图像或包含银行卡区域图像中的位置信息;
步骤S103:根据该位置信息截取包含有银联标识图像的区域范围,将该截取的银联标识图像的区域范围作为待检目标图像。
可以理解的是,本申请也可以在该银行卡图像或包含有银行卡区域的图像的基础上,根据银联标识的特定位置信息或者根据银行卡标准图像模板,直接截取包含银联标识的图像区域,将该图像区域作为待检目标图像;也可以在虚拟边框的基础上仅截取所述虚拟边框范围内包含银联标识图像区域的部分,舍弃虚拟边框以外的图像信息,进而达到提高检测的效率。
所述步骤S200:对所述待检目标图像进行二值化处理,获得二值化图像,及所述二值化图像的取反图像,二者均称为待检目标二值图像。
参考图6所示,图6是本申请提供的一种用于检测预定区域中特定标识图像的方法中对待检目标图像进行二值化处理后的二值化图像示意图;
在该步骤中,将待检目标图像,也就是对截取的包含有银联标识图像的区域范围的图像进行二值化处理。图像二值化处理,是指将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果;即将256个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。要进行二值图像的处理与分析,首先要把原图像灰度化,之后对灰度图像进行二值化,得到二值化图像,进而有利于再对图像做进一步处理时,图像的集合性质只与像素值为0或255的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量减小。
在该步骤中二值化处理过程中阈值的选取可以采用Otsu方法,将灰度图像分割成背景和目标(前景)两部分。所述Otsu方法又称为最大类间方差法,是一种自适应的阈值确定的方法,其按照图像的灰度特定,将图像分割成背景与目标两部分,背景和目标之间的类间方差越大,说明构成图像背景和目标差别越大。通过前景像素点数占图像的比例和平均灰度值;背景像素点数占图像的比例和平均灰度值,计算出前景和背景图像的方差,选取方差最大时所对应的灰度值即为全局阈值,根据该全局阈值对图像进行二值化变换。
由于在对二值化图像分析过程中,是要对二值化图像中白色像素(目标像素)进行标记,而包含有银联标识的图像作为待检测目标图像被二值化处理之后,银联标识可能会被二值化为前景(1)或背景(0),因此,在得到二值化图像后,还可以再对该二值化图像进行取反,将二值化图像和取反图像都作为待检目标二值图像。
二值图像分析最重要的方法就是连通区域标记,它是所有二值图像分析的基础,它通过对二值图像中白色像素(目标)的标记,让每个单独的连通区域形成一个被标识的块,进一步的我们就可以获取这些块的轮廓、外接矩形、质心、不变矩等几何参数。
二值图像的连通域标记处理操作就是从白色像素(通常二值图像用“1”)和黑色像素(通常用“0”来表示)组合的一幅点阵图像中,将互相邻接(4邻接或8邻接)的具有像素值“1”的像素集合提取出来。二值图像中包含黑(像素值为0)白(像素值为1或255)两种颜色,分别作为目标颜色和背景颜色,标记算法只对目标像素进行标记。
所述步骤S300:标定所述待检目标二值图像的连通域,并将标定的连通域中像素个数满足设定阈值区间的连通域作为候选连通域。
连通域标定是所有二值图像分析的基础,二值图像的连通域标记处理操作就是从白色像素(通常二值图像用“1”)和黑色像素(通常用“0”来表示)组合的一幅点阵图像中,将互相邻接的具有像素值“1”的像素集合提取出来,也就是说,二值图像中包含黑(像素值为0)白(像素值为1或255)两种颜色,分别作为目标颜色和背景颜色,在连通域标定时,标定算法只对目标像素(白色像素)进行标定。
连通域标定算法中,常见的邻接关系有两种:4邻接与8邻接。4邻接一共4个点,即上、下、左和右;8邻接的点一共有8个,包括了对角线位置的点,即:上、下、左、右、左上和右上。将上、下、左、右或者上、下、左、右、左上、右上中彼此连通的点所构成集合标定为连通域。
该步骤将截取的包含有银联标识图像的区域范围经过二值化后,对二值化图像采用上述连通域标定方式,标定二值化图像中的连通域,也就是说,标定像素值为1的所有连通域。对所标定的每个独立的连通域进行阈值判断,若该连通域的像素个数在给定的阈值区间内,则保留该连通域,否则对待检目标二值图像中的取反图像进行连通域标定,并对取反图像中所标定的连通域像素个数进行阈值判断,若连通域像素个数在阈值区间内,则保留该连通域,若否则舍弃该连通域。
需要说明的是,对于银联标识图像所形成的连通域,其连通域的像素个数会在一个合理范围内,该合理范围可以设定属于该银联标识图像连通域的阈值区间。
上述银联标识连通域的阈值区间具体计算可以参考如下:
阈值下限LowThreshhold=Width×Height×下限系数;
阈值上限HighThreshhold=Width×Height×上限系数;
其中,Width和Height分别为所获取的预定区域图像或包含预定区域的图像的宽和高,也就是说,Width和Height可以是待检目标图像的宽和高,下限系数和上限取值可以为经验值,分别为0.011和0.043。
当检测的特定标识信息非银联标识时,也可以根据该特定标识连通域的像素个数所处于的合理范围,来设定一个阈值区间。
所述步骤S400:逐一获取所述候选连通域区域的图像特征,并将该候选连通域区域的图像特征与标准特定标识图像的相应图像特征进行比对,将比对结构相同或者接近的候选连通域区域视为特定标识图像所在位置。
该步骤的具体实现过程是,对于候选的银联标识连通域区域的图像特征和标准银联标识图像,将二者的相应的图像特征进行比对,具体可以采用单独图像特征比对或者组合图像特征比对;其中,所述图像特征包括:包括连通域的体积比、连通域外接椭圆长轴方向、连通域外轮廓形状和/或连通域外接矩形长宽比等,也可以理解的是上述特征属于图像的形状特征,而形状特征还可以包括距离特征、图像凹凸特征、长短特征等等。
该步骤中,可以以所述连通域的体积比和连通域外接椭圆长轴方向作为第一组合图像特征,对候选银联标识图像的连通域区域进行筛选。
请参考图7所示,图7是本申请提供一种用于检测预定区域中特定标识图像的方法中对候选连通域区域进行第一次筛选的流程图。
具体步骤包括:
步骤S701:获取候选连通域区域的外接边框;
在该步骤中可以通过扫描的方式,从候选银联标识连通域图像的最外侧边缘向内扫描,检测到前景色(白色像素)后,停止扫描,获得外接边框,该外接边框为矩形。
步骤S702:计算所述外接边框内所述候选连通域中前景色的像素与该外接边框面积的体积比;
该步骤可以通过统计矩形外接边框内前景色(白色)的像素个数,用白色像素个数除以矩形外接边框的面积,得到连通域体积比。
步骤S703:判断该体积比是否大于预先设定的特定标识图像的阈值范围,若否,则舍弃该候选连通域区域;若是,对所述候选连通域区域进行填充;
在该步骤中,可以根据事先设定标准银联标识连通域体积比的阈值Tsolid,判断候选银联标识连通域体积比是否与标准的银联标识连通域体积比的图像特征相符。其中阈值Tsolid可以通过标准银联标识图像的信息获得,例如:从各个角度获取标准银联标识图像,并计算其与外接矩阵的体积比,从而选取阈值Tsolid,通过候选银联标识连通域体积比与Tsolid的比较,确定候选连通域是否为银联标识图像。
当候选银联标识连通域体积比大于阈值Tsolid,该候选银联标识连通域为银联标识连通域,因为,在候选银联标识连通域中可能存在与标准银联标识连通域体积比图像特征相同的非银联标识连通域,所以,本申请在此基础上还要结合另一图像特征,即:连通域椭圆长轴方向的图像特征,进一步确定该候选银联标识。当确定候选银联标识连通域体积比大于阈值Tsolid之后,进入连通域椭圆长轴方向的图像特征判断,如下述步骤S704。
步骤S704:对所述候选连通域区域进行填充;
该步骤中,对银联标识候选连通域区域以前景色(白色)进行填充。
步骤S705:计算填充后的所述银联标识候选连通域区域的方向;
在该步骤中,可以通过采用椭圆拟合的方式,计算出连通域的方向。在该实施例中,连通域的方向以在所述连通域上获得的外接椭圆的长轴方向为连通域方向。所述椭圆拟合,是通过对候选连通域进行边缘检测,记录边缘上的点,对该些点进行椭圆拟合。
当计算出椭圆拟合长轴方向之后,以连通域的左下角为原点建立坐标轴,该坐标轴的X轴定义为参考轴,进而椭圆长轴与X轴之间形成夹角。同样地,对于标准银联标识图像,也可以计算出椭圆长轴与X轴之间形成的夹角。
步骤S706:判断该夹角是否在预定的阈值范围内,若是,则将该银联标识的候选连通域区域视为所述银联标识图像所在区域;若否,则舍弃该银联标识的候选连通域区域;
该步骤中,夹角的阈值范围可以根据上述对标准银联标识图像进行椭圆拟合,并计算该椭圆长轴方向与参考轴之间的夹角,因为,在获取银联标识待检目标图像,可能存在获取角度等因素的影响,使得候选连通域图像角度也会受到影响,所以本申请基于标准银联标识中椭圆长轴与参考轴之间的夹角,设定夹角的阈值范围,以避免由于获取角度的问题而影响判断,此处的参考轴也为X轴。上述的参考轴的设定可以根据实际判断需要设定,即:也可以为Y轴,能够满足连通域外接椭圆长轴方向特征判断需求即可。
需要说明的是,当特定标识为存在两个明显的外接边缘,即:内层边缘和外层边缘连通域时;还可以在上述基础上再次对银联标识候选连通域图像进行二次体积比判断,但该二次体积比判断时,其阈值采用的并非上述Tsolid,而是针对此次判断设定的另一阈值Tsolid’,检测判断过程如上述步骤S701-步骤S706。需要说明的是,内层连通域的像素值与外层连通域的像素值是不同的,所以采用阈值也不同。
经过上述步骤已经可以确定银联标识候选连通域图像为银联标识图像,为更进一步确定,本申请在上述步骤基础上判断所述椭圆长轴与所述参考轴的夹角在预定的阈值范围内的基础上,以所述连通域外轮廓形状作为单独条件对所述候选连通域区域进行第二次筛选。
具体参考图8所示,图8是本申请提供的一种用于检测预定区域中特定标识图像的方法中,以连通域外轮廓形状作为单独条件对所述候选连通域区域进行第二次筛选的流程图。
具体包括如下步骤:
步骤S801:填充所述候选连通域区域,获得填充图像;
该步骤可以采用步骤S704中的填充方式,对候选连通域区域进行填充。
步骤S802:检测所述填充图像的边缘,获得所述填充图像的边缘轮廓图像;
该步骤具体实现,当候选连通域区域以白色进行填充后,白色区域为候选连通域区域,通过采用边缘检测方法,获得填充图像的边缘轮廓图像。所述边缘检测方法是图像处理中常用的一种技术,其可以捕获图像中物体的重要特征,常用的边缘检测方法有:查分边缘检测、梯度边缘检测、Roberts边缘检测算子、Sobel边缘检测算子、Prewitt边缘检测算子和Laplace边缘检测算子等等。本申请中采用Sobel边缘检测算子检测所述填充图像的边缘,所述Sobel边缘检测算子主要是根据像素点上下、左右邻点灰度加权差,在边缘处达到极值现象检测边缘,其对噪声具有平滑作用,能够提供较为精确的边缘方向信息。Sobel算子有两个,一个是检测水平边缘的;另一个是检测垂直边缘的。与Prewitt算子相比,Sobel算子对于象素的位置的影响做了加权,可以降低边缘模糊程度,因此效果更好。当然,也可以根据不同的需求采用其他边缘检测算子来检测填充图像的边缘。
步骤S803:分别获取所述边缘轮廓图像的上下边缘和左右边缘的采样像素点,并选取在设定阈值范围内的所述上下边缘采样像素点和左右边缘采样像素点;
在该步骤中,采用扫描的方式采样边缘轮廓图像中的上下边缘和左右边缘的采样像素点。在以银联标识为实施例的情况下,填充图像的边缘轮廓为矩形图像,分别对矩形图像的上下边缘和左右边缘分别进行扫面,对上下边缘和左右边缘的扫描方式可以采用相同方式,下面以上下边缘举例说明。
对矩形图像的边缘进行逐列扫描,选取扫描线与所述边缘图像有两个交点的像素点,并对该些像素点之间的距离进行计算,统计所有像素点之间的最大值maxDist的像素点作为采样像素点。由于矩形图像的边缘可能存在锯齿,因此,设定最大距离的阈值范围对采样像素点进行选取,阈值范围可以设定在maxDist±maxDist×5%,选取在该阈值范围内的像素点作为采样像素点,该阈值范围以外的像素点则舍弃。从而得到矩形图像上下边缘的采样像素点,同理,可以获得左右边缘的采样像素点。
步骤S804:拟合所述选取的采样像素点,获得所述边缘轮廓图像的线段组合信息。
通过步骤S803选取的候选连通域矩形图像四条边的采样像素点,步骤S804可以采用多项式曲线拟合方法,对所选取的采样像素点进行拟合,从而得到四条线段,并通过该四条线段组合可以获得四个顶点;步骤S804的具体实现方式是针对银行卡银联标识进行举例说明,可以理解的是,如果其他标识可以采用不同的拟合方式或者计算方法,进行采样像素点的拟合。
步骤S805:判断所述线段组合信息与标准特定标识图像的线段组合信息是否相同,若是,则将候选连通域区域视为特定标识图像区域;若否,则输出未检测特定标识图像区域。
该步骤中,对于在步骤S804中获得的线段组合,即:四条线段以及根据该四条线段的组合获得四个顶点,将该四条线段与四个顶点与标准银行卡银联标识的图像进行比较,相同则该银联标识候选连通域区域即为银联标识图像。
需要说明的是,经过以上步骤,候选银联标识被检测到,系统可以输出银联标识的四个角点(参考图9)。同时,若检测得到的组合信息,例如:顶点信息多于或少于4个,则可以判断该候选区域非银联图标。若检测到的银联标识候选区域为空,则提示用户未检测到银联标识,若检测到的银联标识候选区域个数多于一个,则将所有候选区域提供给用户,用于用户自主选择。
上述是以银联标识为例对检测特定标识进行的说明,对于银联标识而言,其具有的图像特征是形状特征,包括有平行四边形、四个顶点等属性;当特定标识为文字或产品标识或企业logo等时,可以通过其本申请具有的图像特征进行检测,例如:各个发卡银行的logo,以招商银行的logo为例进行说明,请参考图3,招商银行的logo图像的图像特征可以是圆形、字母M以及字母M的各个顶点、三角形或者是凹凸属性等等,可以通过该些特征属性采用上述检测方法,对该logo进行检测。
由此可见,本申请提供的检测特定标识的方法并不限于上述银联标识。
当检测到银联标识后可以根据检测到的银联标识的四个顶点信息以及标准银联信息的顶点信息,计算银联标识图像的仿射变换矩阵;根据该矩阵可以计算获得银行卡上其他信息。仿射变换矩阵可以采用如下方式获得:
假定标准的银联标识的四个顶点坐标为[x1,y1],[x2,y2],[x3,y3]和[x4,y4],而在检测到候选连通域图像中的4个顶点的坐标为[X1,Y1],[X2,Y2],[X3,Y3]和[X4,Y4],根据4个点的对应关系就可以计算仿射变换(projective)矩阵M,对于检测图像的每个像素点可以计算射影变换后的图像,此图像所在的视觉就是正视角图像。根据银行卡中的规定,可以获知银行卡上任何信息,例如:需要获知银行卡上的卡号信息时,将卡号的像素点乘以矩阵M即可以获得卡号的正是正视角图像,从而的准确的卡号信息。
以上公开了本申请一种用于检测预定区域中特定标识图像的方法实施例,与所述方法实施例相对应,本申请还公开了一种用于检测预定区域中特定标识图像装置实施例,请参看图10,其为本申请一种用于检测预定区域中特定标识图像的装置的实施例结构示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
如图10所示,本申请提供的一种用于检测预定区域中特定标识图像的装置,包括:
获取单元A100,用于获取所述预定区域或包含该预定区域的图像,作为待检目标图像;
二值化处理单元A200,用于对所述待检目标图像进行二值化处理,获得二值化图像,及所述二值化图像的取反图像,二者均称为待检目标二值图像;
连通域标定单元A300,用于标定所述待检目标二值图像的连通域,并将标定的连通域中像素个数满足设定阈值区间的连通域作为候选连通域;
图像特征比对单元A400,用于逐一获取所述候选连通域的图像特征,并将该候选连通域的图像特征与标准特定标识图像的相应图像特征进行比对,将比对结果相同或最接近的候选连通域视为特定标识图像所在位置。
其中,该获取单元A100包括:
预览图像获取单元,用于获取所述预定区域或包含该预定区域的图像的预览图像;
计算单元,用于计算所述预览图像的区域范围;该计算单元是指,根据所述预定区域的实际尺寸参数及预览图像的分辨率参数,获得框定所述预览图像的虚拟边框参数,具体为:
根据所述预定区域或包含该预定区域图像的实际尺寸,判断所述预览图像高度乘以所述预定区域或包含该预定区域图像的实际宽度的值是否大于预览图像宽度乘以所述预定区域或包含该预定区域图像实际高度的值;
若是,则所述虚拟边框的宽度为:
ScaledWidth=CardWidthGdt×PreviewHeight/CardHeightGdt×DisplayRatio;
其中,CardWidthGdt为预定区域或包含该预定区域图像的实际宽度;PreviewHeight为预览图像高度;CardHeightGdt为预定区域或包含该预定区域的图像实际高度;DisplayRatio为虚拟边框与预览图像的比值;
所述虚拟边框的高度为:
ScaledHeight=PreviewHeight×DisplayRatio;
其中,PreviewHeight为预览图像高度,DisplayRatio为虚拟边框与预览图像的比值;
若否,则虚拟边框的宽度为:
ScaledWidth=PreviewWidth×DisplayRatio;
其中,PreviewWidth为预览图像宽度,DisplayRatio为虚拟边框与预览图像的比值;
所述虚拟边框的高度为:
ScaledHeight=CardHeightGdt×PreviewWidth/CardWidthGdt×DisplayRatio;
其中,CardHeightGdt为预定区域或包含该预定区域图像的实际高度;PreviewWidth为预览图像宽度;CardWidthGdt为预定区域或包含该预定区域图像的实际宽度;DisplayRatio为虚拟边框与预览图像的比值;
所述虚拟边框上边界为显示屏幕高度与虚拟边框高度差的二分之一;所述虚拟边框下边界为显示屏幕高度与虚拟边框高度和的二分之一;所述虚拟边框的左边界为显示屏幕宽度与虚拟边框宽度差的二分之一;所述虚拟边框的右边界为显示屏幕宽度与虚拟边框宽度和的二分之一。
框定单元,用于将所述预览图像框定在所述区域范围内,获取所述预定区域或包含预定区域的图像,将该框定的区域范围内的图像作为待检目标图像。
所述获取单元A100还包括:
截取单元,用于根据特定标识图像在所述预定区域或预定区域图像中的特定位置信息,截取包含特定标识图像的区域范围,作为待检目标图像。其中,截取单元中的特定位置信息为事先设定的特定标识图像所位于预定区域或包含预定区域图像上的位置。在以银行卡的银联标识为特定标识的情况下,所述特定位置可以根据《银联卡业务运作规章》第三卷《卡片BIN号及标识规则》中的记载可以获知,银联标识的特定位置位于银行卡卡面区域的右上角或者右下角。可以理解的是,当特定标识信息非银联标识,还有可以位于左上角或左下角等。
截取单元还可以通过下述方式实现:
建立单元,用于建立预定区域或包含预定区域的标准图像模板;
遍历单元,用于根据所述预定区域或包含预定区域的图像遍历所述标准图像模板,通过所述标准图像模板与所述预定区域或包含预定区域的图像的对应关系,获取特定标识图像在预定区域或包含预定区域的图像中的位置信息;
待检目标图像确定单元,用于根据该位置信息截取所述预定区域或包含预定区域的图像中包含特定标识的图像区域,作为待检目标图像。
连通域标定单元A300中的阈值区间的上限值为所述预定区域或包含预定区域的图像宽度、高度和上限系数的乘积;下限值为所述预定区域或包含预定区域的图像宽度、高度和下限系数的乘积。
图像特征比对单元A400,包括组合图像特征筛选单元或单独图像特征筛选单元,通过采用单独图像特征比对或者组合图像特征比对;其中,所述图像特征包括连通域的体积比、连通域外接椭圆长轴方向、连通域外轮廓形状和/或连通域外接矩形长宽比。
组合图像特征筛选单元,具体是:
外接边框获取单元,用于获取候选连通域区域的外接边框;
体积比计算单元,用于计算所述外接边框内所述候选连通域中前景色的像素与该外接边框面积的体积比;
体积比阈值判断单元,用于判断该体积比是否大于预先设定的特定标识图像的阈值范围;若否,则舍弃该候选连通域区域;若是,对所述候选连通域区域进行填充;
填充计算单元,用于计算填充后的所述候选连通域区域外接椭圆长轴的方向,并获得该方向与设定的参考轴的夹角;
夹角阈值判断单元,用于判断该夹角是否在预定的阈值范围内,若是,则将该候选连通域区域视为所述特定标识图像所在区域;若否,则舍弃该候选连通域区域。
单独图像特征筛选单元,包括:
填充单元,用于填充所述候选连通域区域,获得填充图像;
边缘轮廓获取单元,用于根据检测所述填充图像的边缘,获得所述填充图像的边缘轮廓图像;
采样单元,用于分别获取所述边缘轮廓图像的上下边缘和左右边缘的采样像素点,并选取在设定阈值范围内的所述上下边缘采样像素点和左右边缘采样像素点;
采样像素点拟合单元,用于分别获取所述边缘轮廓图像的上下边缘和左右边缘的采样像素点,并选取在设定阈值范围内的所述上下边缘采样像素点和左右边缘采样像素点;
线段组合判断单元,用于判断所述线段组合信息及交点位置信息与标准特定标识图像的线段组合信息和交点位置信息是否相同;若是,则将候选连通域区域视为特定标识图像区域;若否,则输出未检测特定标识图像区域。
所述采样单元包括:
扫描单元,以与所述填充图像有两个交点为条件,进行扫描,将该些交点作为采样像素点;
距离阈值判断单元,用于判断获取的所述采样像素点的上下边缘之间的距离和左右边缘之间的距离是否在设定的阈值范围内,若是,则选取;若否,则舍弃。在该距离阈值判断单元中,阈值范围可以是maxDist±maxDist×5%,其中maxDist为两个采样像素点的最大距离。
本申请还包括仿射变换单元,用于根据预定区域或包含预定区域图像中特定标识的位置信息和各个交点位置信息,计算仿射变换矩阵;以及相关信息获取单元,用于根据所述仿射变换矩阵获取相关信息。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。