发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种图像识别方法、装置和系统。实现对图像的分层分级识别,利用客户端识别图像的一部分元素,并将识别后的信息以及针对该图片的其它一些采集数据信息按规则XML组合后再打包到文件中,形成新的文件,然后将该新的文件传递到后台控制服务器和后台服务器,由图像识别控制服务器根据要识别的图像特性再分发到不同的识别服务器进行对应的信息识别,从而实现图像信息的分层分阶段获取,可有效的利用客户端的性能。
为达到以上目的,本发明采用的技术方案是:一种图像识别系统,该图像识别系统包括:至少一个图像识别客户端,图像识别客户端,用于识别图像的基本属性,同时将已经识别元素以及前端要识别请求要素组合成文件;一图像识别控制服务器,获取客户端发送的识别文件以及原始图像数据,根据识别内容对将要识别的图像以及要识别的要求,将识别文件以及原始图像数据分发到不同的图像识别服务器上;至少一个图像识别服务器,根据识别要求对指定图像进行进一步识别。优选地,所述基本属性包括文字和/或数字。
进一步,所述图像识别控制服务器依据图像识别客户端设备的不同,发送不同的策略指令,使得客户端能够完成多级的识别处理。图像识别服务器对于识别完成状态可拉平处理,即不同的客户端完成识别不一样,在图像识别服务器端补全,达成一致的识别效果。
本发明还提供一种图像识别系统,包括一发送端和一接收端,其特征在于:所述发送端包括:一图像识别单元,用于识别图像的基本属性;一图像文件组合单元,对所述图像识别单元已经识别的图像基本属性进行编码组合,同原始图像进行整合;一文件传输发送单元,将经图像文件组合单元整合后的文件传输至接收端;所述接收端包括,一文件分解单元,将接收到的文件进行分解,分离出原始图像和已经识别的图像基本属性;以及一图像继续识别单元,对原始图像的未识别的信息进行识别。所属基本属性为文字和/或数字。
更进一步,所述图像文件组合单元对原始图像进行整合进一步包括将所述识别出的图像基本信息以XML格式表示,并重新组合到新的文件中。所述图像文件组合单元进一步将XML文件按字节流方式写入到原始文件的头部形成新的文件,同时在新的文件中标示出XML文件的长度,便于后面的分离操作。所述新的文件包括一文件头,用于存储XML信息,所述文件头由头标志、XML文件长度、XML内容组成。
本发明还提供一种图像识别的方法,该方法包括:步骤一、对图像的基本属性进行识别;步骤二、对已经识别的图像基本属性进行编码组合,并同原始图像进行整合;步骤三,将整合后的文件传输;步骤四,接收传输的文件,并对接收到的文件进行分解,分离出原始图像和已经识别的图像基本属性;步骤五,对原始图像的未识别的信息进行识别。
优选地,所述步骤二中对原始图像进行整合的步骤包括:将所述识别出的图像基本信息以XML格式表示,将XML文件格式添加到原始文件头中,形成新的文件。
进一步,所述步骤五中对接收到的文件进行分解包括:首先,读取XML文件到内存中,其次,计算XM L文件的长度XMLLength;第三,读取原始图像文件到内存中,并计算原始图像的长度ImageLength;第四,建立新的内存空间对象大小,该大小为XMLLength+ImageLength+size(unsigned char)+size(int)字节长度,其中size()用于判断数据类型长度;第五,将文件头标志、XML大小、以及XML文件按字节复制到上述新建的内存空间中;第六,将原始图像的所有字节都拷贝到上述新建的内存空间中,该原始图像的数据为追加形式的拷贝,不覆盖文件头标志、XML大小、以及XML文件的数据;第七,将上述新建的内存空间中的数据输出至新的文件。
更进一步,所述对接收到的文件进行分解的步骤进一步包括:首先,读取文件到内存,其次,判断文件标识是否符合要求,若符合要求则获取XML文件的长度XMLLength;第三,建立新的XML内存空间,用于存放提取的XML文件,从文件流的flag+size(int)位置开始提取XMLLength长的字节的数据到上述新建的XM L内存空间中,上述flag为文件标识的长度,其中size()用于判断数据类型长度;第四,将上述XML内存块中的数据转换成XML格式;第五,建立新的图片内存空间,将接收的文件中剩余部分的字节拷贝到该新建的图片内存空间中,并将其转换为与原始图像相同的图片格式。
本发明的效果在于:在客户端资源比较低的情况下可有效的利用不同的资源的性能;并且,将第一次识别的元素再反向打包到图片文件中,一方面增加了图像网络传输的安全性,另一方面避免了图片和相关属性信息以及已经识别信息的分割,同时也避免了后台的重复识别工作。服务器可依据客户端图像识别设备的不同,发送不同的策略指令,使得客户端能够完成多级的识别处理,可支持客户端效率最大化或者识别最大化。服务器端对于识别完成状态可拉平处理,即不同的客户端完成识别不一样,在服务器端补全,达成一致的识别效果。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步描述。
如图1所示,本发明的第一实施方式提供一种图像识别系统。该图像识别系统包括;
一图像识别客户端,图像识别客户端,用于识别图像的基本属性,同时将已经识别元素以及前端要识别请求要素组合成文件;优选地,所述基本属性包括文字和/或数字。
一图像识别控制服务器,获取客户端发送的识别文件以及原始图像数据,根据识别内容对将要识别的图像以及要识别的要求,将识别文件以及原始图像数据分发到不同的图像识别服务器上。
至少一个图像识别服务器,根据识别要求对指定图像进行进一步识别。
本发明的第二实施方式提供一种图像识别系统,参见图2,该系统包括发送端1和接收端2,所述发送端1包括:一图像识别单元,用于图像基本属性的识别,所述基本属性包括文字和/或数字;一图像文件组合单元,该单元对所述图像识别单元已经识别的图像进行编码组合,并同原始图像进行整合;一文件传输发送单元,将经图像文件组合单元整合后的文件传输至接收端。
所述接收端2包括一文件分解单元,将接收到的文件进行分解,分离出原始图像和已经解析的图像内容数据;以及一图像继续识别单元,用于对原始图像的其它未识别的信息进行识别。
为了更清楚地说明本发明的宗旨,以下对上述第一实施方式和第二实施方式进行进一步解释。由于移动终端(发送端的一种实施方式)一般内存和处理器的速度比服务器要低,因此可以考虑利用移动终端对图像中耗时比较低,占用资源比较低的元素进行识别,主要文字信息,数字信息内容,即图像基本属性。而对图像中其它比较复杂的元素(如人脸图像等)通过后台服务(接收端的一种实施方式)来实现识别。
在本发明的基于第二实施方式的第三实施方式中,为了避免后台服务对前台已经识别的元素重新进行识别,可以将已经识别的元素通过XML格式标志出来并重新组合到图像文件中,这样后台根据指定的规则定义就可以直接解析出要识别的元素,而将重要工作的都放在图像其它部分的识别性能上。这样可有效的考虑到终端资源低但对部分内容又有显示的需要的需求,而又充分的利用后台高性能将复杂部分进行实现并又不需要将前台已经实现的部分重复识别工作。
更进一步,图像识别控制服务器可依据客户端图像识别设备的不同,发送不同的策略指令,使得客户端能够完成多级的识别处理,可支持客户端效率最大化或者识别最大化。一个更为优选的实施方式中,图像识别服务器端对于识别完成状态可拉平处理,即不同的客户端完成识别不一样,在服务器端补全,达成一致的识别效果。
进一步参见附图3,在第一层图像(以JPG、PNG图像为例,但本领域的技术人员应当能够想到更多图片格式,例如BMP、GIF、TIFF等)识别中,主要对图片中基本的属性信息进行识别。例如,对身份证图像而言,主要信息是身份证号码,姓名,性别,民族等图像基本属性。在移动终端(或者其它具有识别功能的客户端)对上述信息进行识别后,将这些信息按XML规则格式进行组装,此封装的目的是为了在后面第二层图像识别过程中便于快速的处理。对XML的规则,按以下非限制性的XML方式进行该XML样式表达如下(如身份证):
这里,<?xml Version=”1.0”encoding=“GB2312”>表示该定义符合XML定义,是XML的头标志。
<Info flag=”true”type=”身份证”>信息表示了XML中已经处理元素的类型flag=true表第一层识别已经成功,如果为false则表示第一层识别已经失败。对type表示了图像的类型,这里可以是身份证,门牌,车牌等其它要图片类型。
<Field name=”id”value=”12133344443”/>信息表示了已经识别出的元素类型及实际获取到值,name表示识别的数据类型,对身份证图片来说,可以就是姓名,身份证号码,性别,民族等,Value对应了其数据类型的实际识别出的值。
在获取图像基本属性信息后,就可以将已经识别的数据内容根据需要在客户端机器上进行显示,为此,客户端机器上进一步包括一个显示装置,用于显示获取图像基本属性信息。为了将已经识别的元素信息和图片上传到后台服务中,需要将已经生成的XML同原始的图片结合起来,形成新的文件以避免数据的丢失,然后将生成后的新文件一块发送到后台服务器中。该XML和原始图像组合的优选的方式为,将XML文件按字节流方式写入到原始文件的头部,同时在这个新文件中需要明确表示XML文件的长度,便于后面的分离操作。
XML和原始图像组合的原理可参见附图4。由于新的文件在内容定义以及格式上已经发生了变化,不再是单纯的图片文件,在本实施方式中,为了在后台能明确的区分,建立个文件头(即Head)部分能存储XML信息。这个Head组成:头标志+xml长度+XML内容。头标志用固定的unsigned char类型来表示,用16进制表示如:0xAAAA;XML长度用int类型表示,表示后面所有XML的字节大小;XML内容就是已经识别的图像要素,并组装成XML的信息样式。
对XML文件和原始图像文件的组合流程如附图5所示。首先,读取XML文件到内存中。其次,计算XML文件的长度(以XMLLength表示,单位为字节)。第三,读取原始图像文件到内存中,并计算原始图像的长度(以ImageLength表示,单位为字节)。第四,建立新的内存空间对象大小,该大小为XMLLength+ImageLength+size(unsigned char)+size(int)字节长度。第五,将文件头标志、XML大小、以及XML文件按字节复制到上述新建的内存空间中。第六,将原始图像的所有字节都拷贝到上述新建的内存空间中,该原始图像的数据为追加形式的拷贝,不覆盖文件头标识、XML大小、以及XM L文件的数据。第七,将上述新建的内存空间中的数据输出至新的文件。
进一步参见图6,在后台中的对组合文件进行分离,然后由针对性地对原始图像进行再一层次识别,以提取其他要素。首先,读取文件到内存,其次,判断文件标识是否符合要求,若符合要求则获取XML文件的长度XMLLength;第三,建立新的XML内存空间,用于存放提取的XML文件,从文件流的(flag+size(int))位置开始提取XMLLength长的字节的数据到上述新建的XML内存空间中,上述flag为文件标识的长度,可根据实际情况选用一个字节或者一位来表示。第四,将上述XML内存块中的数据转换成XML格式。第五,建立新的图片内存空间,将接收的文件中剩余部分的字节拷贝到该新建的图片内存空间中,并将其转换为与原始图像相同的图片格式。
本发明还提供一种图像识别的方法,该方法包括:步骤一、对图像的基本属性进行识别;步骤二、对已经识别的图像基本属性进行编码组合,并同原始图像进行整合;步骤三,将整合后的文件传输;步骤四,接收传输的文件,并对接收到的文件进行分解,分离出原始图像和已经识别的图像基本属性;步骤五,对原始图像的未识别的信息进行识别。
如图7所示,该方法的优选实施方式包括:步骤一、图像数据采集,移动终端通过摄像头对周边的场景进行拍照,并保存成图片;步骤二、调用图像识别单元对图像的简单字符元素进行识别,并根据需要将结果在界面上显示出来;步骤三、将输出的结果按XML文件格式定义方式重新组合下,并将XML文件格式添加到图像文件头中,形成新的文件;步骤四、将新的文件通过通信网络传输到后台服务计算中心;步骤五、后台按规定协议方式首先解析新文件的头部,并获取已经解析的部分数据;步骤六、后台调用图像识别软件分析图片其他的关键性要素,将所有图像信息元素提取的结果写入到存储库中。该方法中关于XML的处理已经在前的实施方式中说明,不再敖述。
本发明能够达到多重有益效果。首先,本发明的技术方案采用分层识别机制,可有效的利用不同的资源的性能。其次,将第一次识别的元素再反向打包到图片文件中,一方面增加了图像网络传输的安全性,另一方面避免了图片和相关属性信息以及已经识别信息的分割,同时也避免了后台的重复识别工作。本发明将传统的一次性全部图像识别过程分离,对一个图像中的基本文字及数字等复杂度较低的信息在客户端进行识别,而在服务器端将重点进行人脸图像等的识别分析,从而将识别的工作重点分离。这种方式下尤其在客户端资源比较低的情况下更能体现优势,如在移动终端的PAD或智能手机等领域。
本发明所述的方法和系统并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。