著录项信息
专利名称 | 基于安卓系统的图像识别方法和装置 |
申请号 | CN201510124226.7 | 申请日期 | 2015-03-20 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-07-08 | 公开/公告号 | CN104766082A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06K9/46 | IPC分类号 | G;0;6;K;9;/;4;6查看分类表>
|
申请人 | 福建天晴数码有限公司 | 申请人地址 | 福建省福州市马尾区星发路8号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 福建天晴数码有限公司 | 当前权利人 | 福建天晴数码有限公司 |
发明人 | 刘德建;方振华;李上杰;张春双 |
代理机构 | 福州市景弘专利代理事务所(普通合伙) | 代理人 | 林祥翔;吕元辉 |
摘要
一种基于安卓系统的图像识别方法和装置,所述装置进行步骤S201:接收图像识别命令,然后进行步骤S203加载需要查找的图像的特征;随后进行步骤S205获取当前屏幕显示信息,所述获取当前屏幕显示信息的方法为访问当前安卓系统的内存数据,获取安卓系统当前屏幕图像。随后基于屏幕显示信息与所述需要查找的图像的特征进行步骤S209匹配处理;最后进行S211输出匹配处理结果通过上述方法,能够直接从内存获取屏幕数据,节省了以往内存打开加载图像文件,解析图像数据的时间,使整个图像识别时间大大缩短,也使搜索效率得到明显提高。
1.一种基于安卓系统的图像识别方法,其特征在于,包括如下步骤:
接收图像识别命令,加载需要查找的图像的特征;
获取当前屏幕显示信息,所述获取当前屏幕显示信息的方法为访问当前安卓系统的内存数据,获取安卓系统当前屏幕图像,基于屏幕显示信息与所述需要查找的图像的特征进行匹配处理;
输出匹配处理结果;
所述图像识别命令包括需要查找的图像的路径、相似度或查找范围,所述图像的特征包括图像的长、宽或像素信息;
所述匹配处理具体包括:根据相似度计算步长、步宽;
提取图像的特征中顶点的像素信息,将所述像素信息与屏幕显示信息逐点匹配,得到第一顶点像素点;
根据第一顶点像素点和图像的特征中长和宽的信息确定屏幕显示信息中另外三个顶点像素点位置并分别进行匹配判断;
根据顶点像素点确定目标区块,所述目标区块为以所述顶点像素点为顶点的矩形像素区块,将所述目标区块的边缘像素点根据步长与步宽选取边缘像素采样点,将边缘像素采样点与图像的特征进行匹配判断;
在所述目标区块内根据步长及步宽选取目标区块采样点,将所述目标区块采样点与图像的特征进行匹配判断,若上述任一匹配判断步骤不匹配则重新搜索第一顶点像素点,否则返回匹配成功信息。
2.根据权利要求1所述的基于安卓系统的图像识别方法,其特征在于,还包括步骤:进行初始化操作,所述初始化操作包括获取安卓系统版本、屏幕信息。
3.根据权利要求1所述的基于安卓系统的图像识别方法,其特征在于,获取当前屏幕显示信息之后还包括步骤:将所述屏幕显示信息格式化。
4.一种基于安卓系统的图像识别装置,其特征在于,包括如下模块:命令接收模块、特征加载模块、屏幕信息获取模块和匹配模块;
所述命令接收模块用于接收图像识别命令;所述特征加载模块用于加载需要查找的图像的特征;所述屏幕信息获取模块用于获取当前屏幕显示信息,所述匹配模块用于基于屏幕显示信息与所述需要查找的图像的特征进行匹配处理并输出匹配处理结果;
所述命令接收模块接收的图像识别命令包括需要查找的图像的路径、相似度或查找范围,所述特征加载模块加载的图像的特征包括图像的长、宽或像素信息;
所述匹配模块进行的匹配处理具体包括:根据相似度计算步长、步宽;
提取图像的特征中顶点的像素信息,将所述像素信息与屏幕显示信息逐点匹配,得到第一顶点像素点;
根据第一顶点像素点和图像的特征中长和宽的信息确定屏幕显示信息中另外三个顶点像素点位置并分别进行匹配判断;
根据顶点像素点确定目标区块,所述目标区块为以所述顶点像素点为顶点的矩形像素区块,将所述目标区块的边缘像素点根据步长与步宽选取边缘像素采样点,将边缘像素采样点与图像的特征进行匹配判断;
在所述目标区块内根据步长及步宽选取目标区块采样点,将所述目标区块采样点与图像的特征进行匹配判断,若上述任一匹配判断步骤不匹配则重新搜索第一顶点像素点,否则返回匹配成功信息。
5.根据权利要求4所述的基于安卓系统的图像识别装置,其特征在于,还包括初始化模块:所述初始化模块用于进行初始化操作,所述初始化操作包括获取安卓系统版本、屏幕信息。
6.根据权利要求4所述的基于安卓系统的图像识别装置,其特征在于,还包括格式化模块,所述格式化模块用于将所述屏幕显示信息格式化。
基于安卓系统的图像识别方法和装置\n技术领域\n[0001] 本发明涉及图像识别领域,尤其涉及一种基于安卓系统的图像识别方法。\n背景技术\n[0002] 目前在Android设备(操作系统为安卓系统的手机、平板电脑、电视等电子设备)的图像识别主要方式是通过Android应用加载不同的图片进行逐点像素对比识别,或者是只能针对Android应用自身的界面进行截图,然后加载后进行逐点像素对比识别。随着信息化的不断深入,图像所携带的数据也越来越大,上述逐点像素对比识别方法存在以下其缺点:\n1)目标和查找图像都需要读取加载,使整个识别时间大大增加。2)只能针对Android应用自身的界面进行动态截图识别,无法跨不同应用进行截图识别。\n发明内容\n[0003] 为此,需要提供一种跨应用识别图像的技术,节省识图所需要的时间。为实现上述目的,发明人提供了一种基于安卓系统的图像识别方法,包括如下步骤:\n[0004] 接收图像识别命令,加载需要查找的图像的特征;\n[0005] 获取当前屏幕显示信息,基于屏幕显示信息与所述需要查找的图像的特征进行匹配处理;\n[0006] 输出匹配处理结果。\n[0007] 具体的,所述图像识别命令包括需要查找的图像的路径、相似度或查找范围,所述图像的特征包括图像的长、宽或像素信息。\n[0008] 具体的,所述匹配处理具体包括:根据相似度计算步长、步宽;\n[0009] 提取图像的特征中顶点的像素信息,将所述像素信息与屏幕显示信息逐点匹配,得到第一顶点像素点;\n[0010] 根据第一顶点像素点和图像的特征中长和宽的信息确定屏幕显示信息中另外三个顶点像素点位置并分别进行匹配判断;\n[0011] 根据顶点像素点确定目标区块,所述目标区块为以所述顶点像素点为顶点的矩形像素区块,将所述目标区块的边缘像素点根据步长与步宽选取边缘像素采样点,将边缘像素采样点与图像的特征进行匹配判断;\n[0012] 在所述目标区块内根据步长及步宽选取目标区块采样点,将所述目标区块采样点与图像的特征进行匹配判断,若上述任一匹配判断步骤不匹配则重新搜索第一顶点像素点,否则返回匹配成功信息。\n[0013] 进一步的,还包括步骤:进行初始化操作,所述初始化操作包括获取安卓系统版本、屏幕信息。\n[0014] 进一步的,获取当前屏幕显示信息之后还包括步骤:将所述屏幕显示信息格式化。\n[0015] 一种基于安卓系统的图像识别装置,包括如下模块:命令接收模块、特征加载模块、屏幕信息获取模块和匹配模块;\n[0016] 所述命令接收模块用于接收图像识别命令;所述特征加载模块用于加载需要查找的图像的特征;所述屏幕信息获取模块用于获取当前屏幕显示信息,所述匹配模块用于基于屏幕显示信息与所述需要查找的图像的特征进行匹配处理并输出匹配处理结果。\n[0017] 具体的,所述命令接收模块接收的图像识别命令包括需要查找的图像的路径、相似度或查找范围,所述特征加载模块加载的图像的特征包括图像的长、宽或像素信息。\n[0018] 具体的,所述匹配模块进行的匹配处理具体包括:根据相似度计算步长、步宽;\n[0019] 提取图像的特征中顶点的像素信息,将所述像素信息与屏幕显示信息逐点匹配,得到第一顶点像素点;\n[0020] 根据第一顶点像素点和图像的特征中长和宽的信息确定屏幕显示信息中另外三个顶点像素点位置并分别进行匹配判断;\n[0021] 根据顶点像素点确定目标区块,所述目标区块为以所述顶点像素点为顶点的矩形像素区块,将所述目标区块的边缘像素点根据步长与步宽选取边缘像素采样点,将边缘像素采样点与图像的特征进行匹配判断;\n[0022] 在所述目标区块内根据步长及步宽选取目标区块采样点,将所述目标区块采样点与图像的特征进行匹配判断,若上述任一匹配判断步骤不匹配则重新搜索第一顶点像素点,否则返回匹配成功信息。\n[0023] 进一步的,还包括初始化模块:所述初始化模块用于进行初始化操作,所述初始化操作包括获取安卓系统版本、屏幕信息。\n[0024] 进一步的,还包括格式化模块,所述格式化模块用于将所述屏幕显示信息格式化。\n[0025] 区别于现有技术,上述技术方案通过直接从内存获取屏幕数据,去掉打开加载图像文件,解析图像数据的时间,使整个图像识别时间大大缩短,同时使用相似度取得步长搜索图像边缘,减少了搜索时间,也使搜索效率明显提高。\n附图说明\n[0026] 图1为本发明一实施方式所述基于安卓系统的屏幕图像识别装置的结构示意图;\n[0027] 图2为本发明一实施方式所述基于安卓系统的屏幕图像识别方法的流程图。\n[0028] 附图标记说明:\n[0029] 101、命令接收模块;\n[0030] 103、特征加载模块;\n[0031] 105、屏幕信息获取模块;\n[0032] 107、匹配模块;\n[0033] 109、初始化模块;\n[0034] 111、格式化模块。\n具体实施方式\n[0035] 为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。\n[0036] 请参阅图1,为本发明一实施方式所述基于安卓系统的图像识别方法的流程图,该方法所述方法包括如下步骤:\n[0037] 步骤S201:接收图像识别命令,\n[0038] 步骤S203:加载需要查找的图像的特征;\n[0039] 步骤S205:获取当前屏幕显示信息,所述获取当前屏幕显示信息的方法为访问当前安卓系统的内存数据,获取安卓系统当前屏幕图像。\n[0040] 基于屏幕显示信息与所述需要查找的图像的特征进行步骤S209匹配处理;\n[0041] S211输出匹配处理结果,如匹配成功则返回匹配成功信息,否则返回“搜索不到匹配图像”信息。\n[0042] 通过上述方法,能够直接从内存获取屏幕数据,节省了以往内存打开加载图像文件,解析图像数据的时间,使整个图像识别时间大大缩短,也使搜索效率得到明显提高。\n[0043] 在基于上述方法的某些具体的实施例中,所述图像识别命令包括需要查找的图像的路径、相似度或查找范围,其中需要查找的图像的路径为必须,所述装置根据上述路径提取需要查找的图像,提取图像的特征,所述图像的特征包括图像的长、宽或像素信息,所述像素信息即图像中所有像素点的信息。图像识别命令可以包含相似度与查找范围,所述相似度与查找范围可以根据需要进行设置,可以让用户自行输入给命令接收模块,当图像识别指令中不含有相似度时,可以默认相似度为1;当图像识别指令中不含有查找范围信息时,可以默认查找范围为屏幕图像以左上角为起点,图像长乘宽的范围。通过细化图像识别命令与图像特征信息,并允许根据用户需要进行调整,提高了本方法的实用性以及识别效率。\n[0044] 具体的,所述匹配处理具体包括:根据相似度的值计算单位步长、单位步宽;其中单位步长为(1-S)*H取整、单位步宽为(1-S)*W取整,步长和步宽的单位均为个(像素);\n[0045] 随后提取图像的特征中四个顶点中任一顶点的像素信息,然后该顶点的像素信息与屏幕显示信息逐点匹配,匹配可以从屏幕显示信息任意方向开始,我们以提取图像的特征中左上顶点的像素信息为例,从左至右,从上至下在屏幕显示信息中进行逐点匹配,直到找到屏幕显示信息中某点的与所述顶点的像素信息相匹配,将屏幕显示信息中该点作为第一顶点像素点,并确定第一顶点像素点位置(cx,cy);\n[0046] 根据第一顶点像素点和图像的特征中长(H)和宽(W)的信息确定屏幕显示信息中另外三个顶点像素点位置{(cx+H,cy)、(cx,cy+W)和(cx+H,cy+W)}并分别与图像的特征中另外三个对应顶点的像素信息进行匹配判断;若判断匹配则继续执行下述步骤。\n[0047] 根据顶点像素点确定目标区块,所述目标区块为以所述四个顶点像素点为顶点确定的矩形像素区块,将所述目标区块的边缘像素点根据步长与步宽选取边缘像素采样点,将边缘像素采样点与图像的特征中对应点的信息进行边缘匹配判断;若判断为匹配则继续进行下述步骤。\n[0048] 在所述目标区块内根据步长及步宽选取目标区块采样点,在某些实施例中,可以在目标区块第一行每隔单位步宽选取采样点,再下移单位单位步长行,继续每隔单位步宽选取采样点。直到选取完全。将所述目标区块采样点与图像的特征中对应位置的像素信息进行逐点匹配判断。若上述任一匹配判断步骤不匹配则重新搜索第一顶点像素点,否则返回匹配成功信息。通过匹配处理中顶点匹配、边缘匹配和逐点匹配的匹配判断步骤,使得匹配不但效率更高,而且还能根据相似度进行精度可调的匹配判断,用户可以根据实际需要调整相似度,也提高了本方法能够满足更多的实际情况。\n[0049] 进一步的,所述装置还进行步骤S200:进行初始化操作,所述初始化操作包括获取安卓系统版本、屏幕信息。所述屏幕信息为fb_var_screeninfo结构的屏幕信息。在某些具体的实施例中,将编好的程序写入安卓系统支持的可执行文件中,所述程序编码用于获得安卓系统版本、屏幕显示信息等初始化信息。所述可执行文件存在安卓系统内,在执行本方法的时候,通过安卓系统的Shell指令装载并运行上述可执行文件,所述Shell指令是安卓系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。所述可执行文件运行后,进行获得安卓系统版本、屏幕信息等初始化操作。通过上述初始化操作,使得本方法能够根据安卓系统的版本更有针对性的获取内存中的屏幕显示信息,提高了本方法的执行效率。\n[0050] 进一步的,所述装置获取当前屏幕显示信息之后还包括步骤S207:将所述屏幕显示信息格式化。在一些具体的实施例中,通过获取的当前屏幕显示信息的图像位(AP)将屏幕显示信息的像素点阵,转换成RGB格式。转换方式如下:通过屏幕显示信息中的transp结构中offset的值,以及red、green、blue结构中的offset的值,通过公式:\n[0051] (Color>>offset)&0xFF\n[0052] 得到R、G、B三元色的值。再通过公式\n[0053] Color=(R<<24)+(G<<16)+B\n[0054] 得到RGB格式的像素点。\n[0055] 进行格式转换的好处在于便于识别,RGB格式由于其较高的普适性,能够使得后续像素提取,匹配等步骤更为方便快捷。\n[0056] 本发明某实施例中还包括基于安卓系统的图像识别装置,其结构示意图如图1所示,包括如下模块:命令接收模块101、特征加载模块103、屏幕信息获取模块105和匹配模块\n107;\n[0057] 所述命令接收模块用于进行步骤S201接收图像识别命令;所述特征加载模块用于进行步骤S203加载需要查找的图像的特征;所述屏幕信息获取模块用于进行步骤S205获取当前屏幕显示信息,所述匹配模块用于基于屏幕显示信息与所述需要查找的图像的特征进行步骤S209匹配处理和步骤S211输出匹配处理结果。通过上述模块设置,装置能够直接从内存获取屏幕数据,节省了以往内存打开加载图像文件,解析图像数据的时间,使整个图像识别时间大大缩短,也使搜索效率得到明显提高。\n[0058] 具体的,所述命令接收模块接收的图像识别命令包括需要查找的图像的路径、相似度或查找范围,所述特征加载模块加载的图像的特征包括图像的长、宽或像素信息。通过细化图像识别命令与图像特征信息,并允许根据用户需要进行调整,提高了本装置的实用性以及识别效率。\n[0059] 具体的,所述匹配模块107进行的匹配处理具体包括:根据相似度计算步长、步宽;\n[0060] 提取图像的特征中顶点的像素信息,将所述像素信息与屏幕显示信息逐点匹配,得到第一顶点像素点;\n[0061] 根据第一顶点像素点和图像的特征中长和宽的信息确定屏幕显示信息中另外三个顶点像素点位置并分别进行匹配判断;\n[0062] 根据顶点像素点确定目标区块,所述目标区块为以所述顶点像素点为顶点的矩形像素区块,将所述目标区块的边缘像素点根据步长与步宽选取边缘像素采样点,将边缘像素采样点与图像的特征进行匹配判断;\n[0063] 在所述目标区块内根据步长及步宽选取目标区块采样点,将所述目标区块采样点与图像的特征进行匹配判断,若上述任一匹配判断步骤不匹配则重新搜索第一顶点像素点,否则返回匹配成功信息。通过匹配处理中顶点匹配、边缘匹配和逐点匹配的匹配判断步骤,使得匹配不但效率更高,而且还能根据相似度进行精度可调的匹配判断,用户可以根据实际需要调整相似度,也提高了本装置的实用性。\n[0064] 进一步的,还包括初始化模块209:所述初始化模块用于进行步骤S200初始化操作,所述初始化操作包括获取安卓系统版本、屏幕信息。所述屏幕信息为fb_var_\nscreeninfo结构的屏幕信息。通过上述初始化模块209,使得本装置能够根据安卓系统的版本更有针对性的获取内存中的屏幕显示信息,提高了本方法的执行效率。\n[0065] 进一步的,还包括格式化模块211,所述格式化模块用于进行步骤S207将所述屏幕显示信息格式化。进行格式转换的好处在于便于识别,RGB格式由于其较高的普适性,能够使得后续像素提取,匹配等步骤更为方便快捷。\n[0066] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。\n[0067] 本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。\n[0068] 上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。\n[0069] 这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。\n[0070] 这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。\n[0071] 尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。
法律信息
- 2018-08-14
- 2015-08-05
实质审查的生效
IPC(主分类): G06K 9/46
专利申请号: 201510124226.7
申请日: 2015.03.20
- 2015-07-08
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-07-18
|
2007-01-08
| | |
2
| |
2008-10-01
|
2007-03-30
| | |
3
| |
2009-06-24
|
2007-12-21
| | |
4
| |
2013-07-10
|
2012-07-26
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |