本申请涉及数据传输技术领域,特别是涉及一种基于视觉终端的图像识别方法以及视觉终端。
背景技术:
目前市场上的视觉柜在用户购物关门后,内部的摄像头会进行拍摄,而后视觉柜将拍摄到的图像传输给服务器,服务器对接收到的图像进行识别,得出图像中的各类商品,并将识别结果返回给视觉柜。
本申请的发明人发现,由于受图像大小、外部网络环境等影响,视觉柜与服务器极容易在传输图像的过程中失去连接,而一旦两者失去连接,视觉柜会再次向服务器发送图像,即重复发送相同的图像,进而导致服务器对相同的图像进行重复的识别,这样会对服务器会造成并发压力。
技术实现要素:
本申请主要解决的技术问题是提供一种基于视觉终端的图像识别方法以及视觉终端,能够减轻服务器的计算压力以及降低时间成本。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种基于视觉终端的图像识别方法,所述图像识别方法包括:向服务器发送识别请求,其中,所述识别请求携带有对应的待识别图像和请求标识;响应于未收到识别结果且与所述服务器的连接发生过断开,向所述服务器再次发送识别请求直至收到所述识别结果,其中,所述再次发送的识别请求携带有上次所述识别请求所对应的所述待识别图像和所述请求标识。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种基于服务器的图像识别方法,所述图像识别方法包括:接收视觉终端发送来的识别请求,其中,所述识别请求携带有对应的待识别图像和请求标识;响应于已经存在对应所述请求标识的识别结果,返回所述识别结果至所述视觉终端。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种视觉终端,包括处理器、存储器以及通信电路,所述处理器分别耦接所述存储器以及所述通信电路,所述处理器通过执行所述存储器内的程序数据实现上述基于视觉终端的图像识别方法中的步骤。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种服务器,包括处理器、存储器以及通信电路,所述处理器分别耦接所述存储器以及所述通信电路,所述处理器通过执行所述存储器内的程序数据实现上述基于服务器的图像识别方法中的步骤。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种具有存储功能的装置,存储有程序数据,所述程序数据能够被处理器执行以实现上述方法中的步骤。
本申请的有益效果是:本申请基于视觉终端的图像识别方法通过设置再次发送的识别请求携带有上次识别请求携带的待识别图像和请求标识,以便服务器在保存有与上次请求标识对应的识别结果的前提下,直接返回识别结果,无需重复对待识别图像进行识别,达到减轻计算压力以及减少时间成本的目的。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请基于视觉终端的图像识别方法一实施方式的流程示意图;
图2是本申请基于服务器的图像识别方法一实施方式的流程示意图;
图3是本申请图像识别方法一实施方式的流程示意图;
图4是本申请视觉终端一实施方式的结构示意图;
图5是本申请服务器一实施方式的结构示意图;
图6是本申请图像识别系统一实施方式的结构示意图;
图7是本申请具有存储功能的装置一实施方式的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在介绍本申请的技术方案之前,先对本申请的背景做如下介绍:
本申请中的视觉终端具体可以是进行商品售卖的视觉柜,例如街边上进行饮料、零食售卖的视觉冰柜等。当视觉终端因为用户购买商品而需要清点其内的商品种类或数量以达到结算的目的时,视觉终端对其内部的商品进行拍照,而后将拍摄到的图像发送给服务器,以请求服务器对该图像进行识别,而后服务器在对图像进行识别后,返回识别结果至视觉终端,其中返回的识别结果中包括例如商品的名称(或者是商品对应的唯一标识,例如商品对应的国标号等)以及商品对应的数量等信息。
参阅图1,图1是本申请基于视觉终端的图像识别方法一实施方式的流程示意图,该方法包括:
s110:向服务器发送识别请求,其中,识别请求携带有对应的待识别图像和请求标识。
识别请求携带的对应的待识别图形为此次请求服务器识别的图像,其数量可以是一个或多个,识别请求携带的对应的请求标识为此次请求对应的唯一标识,具体可以是特定的一串字符。
s120:响应于未收到识别结果且与服务器的连接发生过断开,向服务器再次发送识别请求直至收到识别结果,其中,再次发送的识别请求携带有上次识别请求所对应的待识别图像和请求标识。
在未收到识别结果之前,若侦测到视觉终端与服务器之间的连接发生过断开,具体是两者之间的握手连接断开,则再次向服务器发送识别请求,其中,再次发送的识别请求中携带有上次识别请求所对应的待识别图像和请求标识,以便告知服务器此次请求识别的图像与上次请求识别的图像相同。
而对于服务器而言,服务器在接收到识别请求后,若发现其内已经存在与该识别请求携带的请求标识对应的识别结果,则说明之前已经对该识别请求携带的待识别图像进行了识别,则直接将存在的请求标识对应的识别结果返回给视觉终端,无需重复对待识别图像进行识别,从而能够减轻服务器的计算压力以及减少时间空间成本。
也就是说,在本实施方式中,通过设置再次发送的识别请求携带有上次识别请求携带的待识别图像和请求标识,能够告知服务器此次需要识别的图像与上次需要识别的图像相同,以便服务器在保存有与上次请求对应的识别结果的前提下,直接返回识别结果,无需重复对待识别图像进行识别,达到减轻计算压力以及减少时间空间成本的目的。
在一应用场景中,步骤s120具体包括:在未收到识别结果之前侦测到与服务器的连接发生断开,向服务器再次发送识别请求直至收到识别结果,在另一应用场景中,步骤s120具体包括:在发送识别请求后的预设时间内,若还未收到识别结果,则侦测与服务器的连接是否发生过断开,若侦测到发生过断开,则向服务器再次发送识别请求。
在本实施方式中,再次发送的识别请求与上次识别请求可以完全相同,也可以只是携带的待识别图像和请求标识相同。
在本实施方式中,视觉终端与服务器之间断开连接可能是由于服务器发生崩溃或者视觉终端发生故障,又或者是由于两者之间的网络因为人为因素而完全断开,在此种情况下,视觉终端与服务器之间的连接在短时间内无法恢复,此时如果在未收到识别结果之前,视觉终端还一直向服务器发送识别请求,则不仅不会收到识别结果,还会拖慢视觉终端的运行速度,因此为了避免该缺陷,在收到识别结果之前,还包括:响应于在收到识别结果之前向服务器连续发送识别请求的次数超过次数阈值,停止向服务器发送识别请求。
其中次数阈值由设计人员进行设定,例如可设定为4次、6次等。
在一应用场景中,视觉终端在停止向服务器发送识别请求的同时,还会生成提示信息,该提示信息可用于提示视觉终端发生故障,建议用户停止使用该视觉终端,或者用于提示维修人员尽量对视觉终端进行维护。
在本实施方式中,考虑到视觉终端在用户购物后需要对其内商品的种类、数量进行清点,而用户从视觉终端上进行购物的顺序是打开视觉终端的门、拿走商品以及关上视觉终端的门,因此以用户关上视觉终端的门作为用户购买商品的标志,而后视觉终端对商品进行清点以对用户此次购买的商品进行结算,因此在步骤s110之前还包括:
a1:响应于接收到关门指令,进行拍摄而获得对应的待识别图像。
a2:根据接收到关门指令的时间生成请求标识。
a3:生成识别请求。
其中,由于关门指令的接收时间具有唯一性,因此根据接收到关门指令的时间生成请求标识可保证请求标识也具有唯一性。
可以理解的是,不同类型的视觉终端对应不同的关门指令,在一应用场景中,在用户选中商品时视为接收到关门指令,而后发送识别请求,以便后续对用户选中的商品进行结算,在另一应用场景中,在用户关上视觉终端的门时视为接收到关门指令。
在一应用场景中,以接收到关门指令的时间所对应的时间戳、视觉终端的标识以及随机数的组合生成请求标识。
具体地,通过转换公式可得到接收关门指令的时间所对应的时间戳,而后对该时间戳、视觉终端的标识(具有唯一性)以及随机数进行组合生成请求标识,例如,请求标识为接收关门指令的时间所对应的时间戳加视觉终端的标识中的若干位,然后再加上几位随机数。
参阅图2,图2是本申请基于服务器的图像识别方法一实施方式的流程示意图,该图像识别方法包括:
s210:接收视觉终端发送来的识别请求,其中,识别请求携带有对应的待识别图像和请求标识。
视觉终端在需要对其内商品进行清点时,向服务器发送识别请求,其中该识别请求的具体内容可参见上述实施方式的步骤s110,在此不再赘述。
s220:响应于已经存在对应请求标识的识别结果,返回识别结果至视觉终端。
服务器在接收到识别请求后,读取识别请求中携带的请求标识,若发现其内已经存在与该请求标识对应的识别结果,则说明之前已经对该识别请求携带的待识别图像进行了识别,直接返回对应的识别结果即可,无需重复对待识别图像进行识别,从而能够减轻服务器的计算压力以及减少时间成本。
在一应用场景中,服务器在读取识别请求中携带的请求标识时,若发现其内并没有存在与该请求标识对应的识别结果,则判定之前未对此次识别请求携带的待识别图像进行识别,进而对此次携带的待识别图像进行识别,并生成相应的识别结果,而后将相应的识别请求返回给视觉终端。
具体地,在该应用场景中,服务器每次在接收到识别请求时,若发现不存在对应此次识别请求中请求标识的识别结果时,则对此次识别请求的待识别图像进行识别,而后在将识别结果返回给视觉终端的同时关联此次的请求标识与识别结果,并进行保存,从而当因为视觉终端与服务器断开连接而导致视觉终端再次发送的识别请求携带有上次识别请求所对应的待识别图像、请求标识时,服务器可以将保存的上次识别请求中请求标识所对应的识别结果直接返回,而无需重复对待识别图像进行识别。
同时在该场景中,为了避免服务器因为保存的识别结果与请求标识过多而导致服务器的内存不够,基于服务器的图像识别结果进一步还包括:响应于保存的识别结果与请求标识的时间超过时间阈值,删除保存的识别结果与请求标识。
具体地,当保存的识别结果与请求标识的时间超过时间阈值,判定即使视觉终端与服务器断开过连接,但是此时经过视觉终端多次向服务器发送识别请求,服务器也已经将该识别结果返回给视觉终端,为了避免加重服务器的负载以及拖慢服务器的运行速度,将保存的识别结果与请求标识进行删除。
在上述应用场景中,当服务器发现未存在对应请求标识的识别结果时,对待识别图像进行识别并生成相应的识别结果,后续在将识别结果发送给视觉终端的同时,还会保存识别结果,为后续避免重复对同样的待识别图像进行识别打下基础,也就是说,此时服务器不会对发送识别结果的成功性进行判断,不管其有没有成功将识别结果发送给视觉终端,其都会对识别结果进行保存,而该识别结果只有在保存时间超过时间阈值时才会被删除。
在该应用场景中,存在以下缺陷:若视觉终端再次向服务器发送识别请求并不是因为侦测到其与服务器断开过连接,而是其本身发生了故障,具体地,服务器已经将识别结果发送给了视觉终端,但视觉终端因为自身故障误以为其未收到识别结果且与服务器的连接发生过断开,还是一直向服务器再次发送识别请求,若服务器在接收到识别请求后还将对应的识别结果返回给视觉终端,会造成视觉终端因为接收的识别结果重复而导致浪费内存。
为了避免该缺陷,在另一应用场景中,服务器在将识别结果返回给视觉终端的同时,侦测其与视觉终端的连接是否断开,若未断开,则判定其成功将识别结果返回给视觉终端,后续只会保存请求标识而不会保存识别结果,若断开,则判定其未成功将识别结果返回给视觉终端,其才会关联相应的识别结果与请求标识并进行保存,此时后续服务器在接收到视觉终端发送的识别请求时,若发现存在此次识别请求所携带的请求标识而未存在与请求标识对应的识别结果,则判定视觉终端再次发送识别请求的原因在于视觉终端发生了故障,进而生成提示消息并将该提示消息返回给视觉终端,而后视觉终端在接收到该提示消息后可进行自检,或者发送消息给维护人员以进行维护,若发现存在对应请求标识的识别结果,则判定视觉终端再次发送识别请求的原因在于之前与服务器断开过连接,视觉终端未接收到服务器返回的识别结果,则服务器将识别结果返回给视觉终端,避免重复识别。
参阅图3,图3是本申请图像识别方法一实施方式的流程示意图。该图像识别方法包括:
s310:视觉终端向服务器发送识别请求,其中,识别请求携带有对应的待识别图像和请求标识。
s320:服务器接收视觉终端发送来的识别请求。
s330:服务器响应于已经存在对应请求标识的识别结果,返回识别结果至视觉终端。
s340:视觉终端响应于未收到识别结果且与服务器的连接发生过断开,向服务器再次发送识别请求直至收到识别结果,其中,再次发送的识别请求携带有上次识别请求所对应的待识别图像和请求标识。
在本实施方式中,视觉终端与服务器配合完成对待识别图像进行识别,其中,步骤s310、s340与上述实施方式中的步骤s110、s120对应相同,步骤s320、s330与上述实施方式中的步骤s210、s220对应相同,详情可参见上述实施方式,在此不再赘述。
参阅图4,图4是本申请视觉终端一实施方式的结构示意图。该视觉终端400包括处理器410、存储器420以及通信电路430,处理器410分别耦接存储器420以及通信电路430,处理器410通过执行存储器420内的程序数据实现上述基于视觉终端的图像识别方法中的步骤,详细的基于视觉终端的图像识别方法可参见上述实施方式,在此不再赘述。
本实施方式中的视觉终端400可以是进行商品售卖的视觉柜,例如街边上进行饮料、零食售卖的视觉冰柜等,也可以是其他终端设备,在此不做限制。
参阅图5,图5是本申请服务器一实施方式的结构示意图。该服务器500包括处理器510、存储器520以及通信电路530,处理器510分别耦接存储器520以及通信电路530,处理器510通过执行存储器520内的程序数据实现上述基于服务器的图像识别方法中的步骤,详细的基于服务器的图像识别方法可参见上述实施方式,在此不再赘述。
参阅图6,图6是本申请图像识别系统一实施方式的结构示意图。该图像识别系统600包括视觉终端610以及服务器620,视觉终端610与上述实施方式中的视觉终端400结构相同,服务器620与上述实施方式中的服务器500结构相同,具体可参见上述实施方式,在此不再赘述。
在本实施方式中,视觉终端610通过有线或无线的方式与服务器620连接,同时一个服务器620可以同时与多个视觉终端610连接。
参阅图7,图7是本申请具有存储功能的装置一实施方式的结构示意图。该具有存储功能的装置700存储有程序数据710,程序数据710能够被处理器执行以实现上述任一项实施方式图像识别方法中的步骤,详细的图像识别方法可参见上述实施方式,在此不再赘述。
其中具存储功能的装置700可以是服务器、u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种装置。
总而言之,本申请基于视觉终端的图像识别方法通过设置再次发送的识别请求携带有上次识别请求携带的待识别图像和请求标识,以便服务器在保存有与上次请求标识对应的识别结果的前提下,直接返回识别结果,无需重复对待识别图像进行识别,达到减轻计算压力以及减少时间空间成本的目的。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。