CN110647649A - 特征检索方法、装置及存储介质 - Google Patents

特征检索方法、装置及存储介质 Download PDF

Info

Publication number
CN110647649A
CN110647649A CN201910934525.5A CN201910934525A CN110647649A CN 110647649 A CN110647649 A CN 110647649A CN 201910934525 A CN201910934525 A CN 201910934525A CN 110647649 A CN110647649 A CN 110647649A
Authority
CN
China
Prior art keywords
feature
features
retrieved
preset
vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910934525.5A
Other languages
English (en)
Inventor
丁丹迪
李彦融
姚达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Cloud Computing Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Cloud Computing Beijing Co Ltd filed Critical Tencent Cloud Computing Beijing Co Ltd
Priority to CN201910934525.5A priority Critical patent/CN110647649A/zh
Publication of CN110647649A publication Critical patent/CN110647649A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content

Landscapes

  • Engineering & Computer Science (AREA)
  • Library & Information Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种特征检索方法、装置及存储介质,其中,方法包括:提取待检索图像中的待检索特征;在所述待检索特征对应的每一存储维度上,对所述待检索特征进行压缩处理,得到相比于所述待检索特征具有较低内存占用的压缩特征;在预设特征集合中,检索与所述压缩特征匹配的预设特征,得到检索结果;输出所述检索结果。通过本申请,能够降低特征存储的设备空间消耗,并降低特征检索时延,提升特征检索吞吐量。

Description

特征检索方法、装置及存储介质
技术领域
本申请实施例涉及人工智能技术领域,涉及但不限于一种特征检索方法、装置及存储介质。
背景技术
随着图像识别技术的发展,基于图像识别技术的图像特征检索已经成为一种应用广泛的检索方法。目前,对图像进行检索时,常用的方法是通过图像的原始特征直接与特征库中的特征进行比对,或者,对原始特征进行简单压缩之后与选取的候选特征集合中的候选特征进行比对,从而根据比对结果确定出检索结果。
然而,相关技术中的检索方法,由于需要在原始特征上直接进行比对,数据访问量和计算量都比较大,并且,需要选择候选特征集合,涉及到特征数据的多次拷贝,对系统的检索性能会产生影响,同时,由于需要存储原始特征和压缩特征,存储所占用的空间较大。
发明内容
本申请实施例提供一种特征检索方法、装置及存储介质,能够降低特征存储的设备空间消耗,并降低特征检索时延,提升特征检索吞吐量。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种特征检索方法,包括:
提取待检索图像中的待检索特征;
在所述待检索特征对应的每一存储维度上,对所述待检索特征进行压缩处理,得到相比于所述待检索特征具有较低内存占用的压缩特征;
在预设特征集合中,检索与所述压缩特征匹配的预设特征,得到检索结果;
输出所述检索结果。
本申请实施例提供一种特征检索装置,包括:
提取模块,用于提取待检索图像中的待检索特征;
压缩处理模块,用于在所述待检索特征对应的每一存储维度上,对所述待检索特征进行压缩处理,得到相比于所述待检索特征具有较低内存占用的压缩特征;
检索模块,用于在预设特征集合中,检索与所述压缩特征匹配的预设特征,得到检索结果;
输出模块,用于输出所述检索结果。
本申请实施例提供一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现上述的方法。
本申请实施例具有以下有益效果:
在待检索特征对应的每一存储维度上,对所述待检索特征进行压缩处理,得到相比于所述待检索特征具有较低内存占用的压缩特征。这样,由于对待检索特征进行压缩处理,可以得到具有较低内存占用的压缩特征,从而使得检索过程中的数据访问量和计算量均减小,降低特征存储的设备空间消耗,并降低特征检索时延,提升特征检索吞吐量。
附图说明
图1是本申请实施例提供的特征检索系统的一个可选的架构示意图;
图2是本申请实施例提供的服务器的结构示意图;
图3是本申请实施例提供的特征检索方法的一个可选的流程示意图;
图4是本申请实施例提供的特征检索方法的一个可选的流程示意图;
图5是本申请实施例提供的特征检索方法的一个可选的流程示意图;
图6是本申请实施例提供的特征检索方法的一个可选的流程示意图;
图7是本申请实施例提供的特征检索方法的一个可选的流程示意图;
图8是本申请实施例提供的特征检索方法的一个可选的流程示意图;
图9是本申请实施例提供的特征检索方法的一个可选的流程示意图;
图10是本申请实施例提供的特征检索方法的一个可选的流程示意图;
图11是本申请实施例提供的特征检索方法的一个可选的流程示意图;
图12是本申请实施例提供的特征检索装置的组成结构示意图;
图13是本申请实施例提供的删除压缩特征的流程图;
图14是本申请实施例提供的插入特征的流程图;
图15是本申请实施例提供的特征检索方法的实现流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)待检索图像:用户通过终端输入的或者终端通过图像采集设备所采集的需要进行分析处理的图像,所述待检索图像中包括至少一个待检索特征。
2)待检索特征:用于表征待检索图像中的待检索目标的特征信息。例如,人脸特征、车辆外观特征和宠物外形特征等。
3)存储维度:用于表征图像中的特征的特征值所存储的维度。例如,可以将待检索图像对应的待检索特征采用浮点数存储,存储维度可以为256维到2048维不等。
4)预设特征集合:即特征库,由大量的预设特征构成,其中,对应不用类型的信息,可以设置不用的特征库。比如,可以包括有全国公民信息的公民信息特征库、包括有全国车辆信息的车辆信息特征库和包括有全国宠物信息的宠物信息特征库。
5)压缩特征:与所述待检索特征对应,是对待检索特征进行压缩处理之后得到的相比于待检索特征具有较低内存占用的特征。例如,待检索特征的大小可以为2K,对待检索特征进行压缩之后,得到的压缩特征可以仅占用内存20比特。
为了更好地理解本申请实施例中提供的特征检索方法,首先对相关技术中的特征检索方法进行分析说明。
相关技术中,在进行图像识别和特征检索时,常用的方法包括以下两种:第一种,原始特征直接比对方法;第二种,对原始特征进行简单压缩之后与选取的候选特征集合中的候选特征进行比对。
对于上述第一种方法,是将待查询的原始特征直接与特征库中的特征进行完整比对,逐个计算特征相似度,然后排序得出检索结果。对于上述第二种方法,至少包括四个流程,首先对原始特征进行压缩处理得到压缩特征集合,然后将压缩特征集合与所选取的候选特征集合中的候选特征进行比对;再然后按照候选特征集合的候选特征获取原始特征;最后在所获取的原始特征中进行特征比对。其中,上述第二种方法相对于第一种方法能够加速检索过程。
但是,上述第一种方法,由于检索过程需要在原始特征上直接进行比对,因此数据访问量及计算量都比较大,数据存储占用大量空间,检索时相似度计算过程比较耗时,吞吐量低,部署成本高。上述第二种方法,在检索过程中包含四个步骤,涉及到特征数据的多次拷贝,对检索性能会产生影响,并且,既需要存储原始特征还需要存储压缩特征,占用的存储空间较大。
基于相关技术所存在的上述至少一个问题,本申请实施例提供一种特征检索方法、装置及存储介质,能够降低特征存储的设备空间消耗,并降低特征检索时延,提升特征检索吞吐量。
为了更好地理解本申请实施例提供的方法,首先对人工智能、人工智能的各个分支,以及本申请实施例提供的方法所涉及的应用领域进行说明。
人工智能(AI,Artificial Intelligence)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。以下对各个方向分别进行说明。
计算机视觉技术(CV,Computer Vision)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OC R、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
语音技术(Speech Technology)的关键技术有自动语音识别技术(ASR,AutomaticSpeech Recognition)和语音合成技术(TTS,Text To Speech)以及声纹识别技术。让计算机能听、能看、能说、能感觉,是未来人机交互的发展方向,其中语音成为未来最被看好的人机交互方式之一。
自然语言处理(NLP,Nature Language Processing)是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,所以它与语言学的研究有着密切的联系。自然语言处理技术通常包括文本处理、语义理解、机器翻译、机器人问答、知识图谱等技术。
机器学习(ML,Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
本申请实施例提供的方案涉及人工智能的计算机视觉等技术,具体通过如下实施例进行说明。
下面说明本申请实施例提供的特征检索设备的示例性应用,本申请实施例提供的设备可以实施为笔记本电脑,平板电脑,台式计算机,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为服务器时的示例性应用。
参见图1,图1是本申请实施例提供的特征检索系统10的一个可选的架构示意图,为实现支撑一个实现特征检索的应用,终端100(示例性示出了终端100-1和终端100-2)通过网络200连接服务器300,网络200可以是广域网或者局域网,又或者是二者的组合。
终端100在图形界面110(示例性示出了图形界面110-1和图形界面110-2)上显示应用(Application,APP)的当前界面,例如,所述APP可以是特征检索APP。其中,终端100-1和终端100-2中可以分别运行有特征检索APP,终端100-1和终端100-2能够实现本申请特征检索的功能,或者终端100-1和终端100-2能够实现获取待检索图像的功能,相应地服务器300实现本申请特征检索的功能。
当由服务器300实现特征检索的功能时,服务器300通过终端100-1或终端100-2获取所述待检索图像(例如,可以是终端的摄像设备获取所述待检索图像并发送给服务器,也可以是用户通过终端输入待检索图像后,终端将待检索图像发送给服务器),然后提取待检索图像中的待检索特征,并在待检索特征对应的每一存储维度上,对待检索特征进行压缩处理,得到相比于待检索特征具有较低内存占用的压缩特征;最后在预设特征集合中,检索与压缩特征匹配的预设特征,得到检索结果并将检索结果输出给终端100-1或终端100-2,以实现在终端100-1或终端100-2的图形界面110-1或图形界面110-2上显示所述检索结果。
在一些实施例中,服务器300也可以是区块链服务器。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
参见图2,图2是本申请实施例提供的服务器300的结构示意图,图2所示的服务器300包括:至少一个处理器210、存储器250、至少一个网络接口220和用户接口230。终端100中的各个组件通过总线系统240耦合在一起。可理解,总线系统240用于实现这些组件之间的连接通信。总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统240。
处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口230包括使得能够呈现媒体内容的一个或多个输出装置231,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口230还包括一个或多个输入装置232,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器250可选地包括在物理位置上远离处理器210的一个或多个存储设备。存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器250旨在包括任意适合类型的存储器。在一些实施例中,存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块252,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
输入处理模块253,用于对一个或多个来自一个或多个输入装置232之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器250中的一种特征检索装置254,其可以是程序和插件等形式的软件,包括以下软件模块:提取模块2541、压缩处理模块2542、检索模块2543和输出模块2544,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的特征检索方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specif ic Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic De vice)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
下面将结合本申请实施例提供的服务器的示例性应用和实施,说明本申请实施例提供的特征检索方法。
参见图3,图3是本申请实施例提供的特征检索方法的一个可选的流程示意图,将结合图3示出的步骤进行说明。
步骤S301,服务器提取待检索图像中的待检索特征。
这里,所述待检索图像可以是用户通过终端发送的,也可以是终端通过自带的图像采集装置所采集的图像。所述待检索图像中可以包括至少一个待检索对象,所述待检索对象具有至少一个待检索特征。
例如,当需要对犯罪人员进行身份确认时,可以通过终端拍摄该犯罪人员的照片,则所拍摄的照片即为所述待检索图像,所述待检索图像中的犯罪人员即为所述待检索对象,犯罪人员的脸部的信息即为所述待检索特征,例如待检索特征可以是犯罪人员的眼睛、鼻子、嘴巴等特征。
本申请实施例中,服务器在接收到所述待检索图像之后,确定所述待检索图像中的待检索对象,并对所述待检索对象进行特征提取。其中,对待检索图像中的待检索对象进行特征提取,可以是采用人工智能的特征提取模型实现,比如,将待检索图像中的待检索对象输入到该人工智能的特征提取模型中,该人工智能的特征提取模型获取该待检索图像中的待检索对象的各个特征点,从而得到所述待检索特征。
所述待检索图像中的待检索特征能够反应所述待检索对象的属性信息,这里,所述属性信息包括所述待检索对象的身份、名称、类别、归属、价值等信息。
需要说明的是,本申请实施例中,在服务器接收到所述待检索图像之后,并不需要将该待检索图像进行存储。
步骤S302,在所述待检索特征对应的每一存储维度上,对所述待检索特征进行压缩处理,得到相比于所述待检索特征具有较低内存占用的压缩特征。
这里,所述待检索特征对应有至少一个存储维度,所述存储维度用于表征待检索图像中的待检索特征的特征值所存储的维度。例如,可以将待检索图像对应的待检索特征的特征值采用浮点数存储,存储维度可以为256维到2048维不等。
所述压缩处理为特征变换处理,通过所述压缩处理,能够将所述待检索特征换换为具有较低内存占用的所述压缩特征,例如,所述待检索特征的内存占用大小可以是2K,在对所述待检索特征进行压缩处理之后,所得到的压缩特征可以仅占用内存20比特。这样,可以大大减小压缩特征在系统中所占用的内存,并且在进行特征检索时,可以直接基于压缩特征进行特征检索,从而能够极大的降低检索过程中的数据访问量。
需要说明的是,本申请实施例中,在提取到所述待检索图像中的待检索特征之后,不需要存储该待检索特征,而是在对所述待检索特征进行压缩处理之后,对所述压缩特征进行存储,如此,能够极大的降低存储所占用的内存。
步骤S303,在预设特征集合中,检索与所述压缩特征匹配的预设特征,得到检索结果。
这里,所述预设特征集合中包括至少两个预设特征,所述预设特征是预先设置或者预先存储的特征信息,每一所述预设特征对应有特征的属性信息,通过所述属性信息对对应预设特征进行解释说明。也就是说,当获取到某一预设特征时,也可以同时获取到该预设特征对应的属性信息,通过该属性信息明确该特征信息对应的内容。例如,所述预设特征集合可以是全国公民信息的公民信息特征库,当从该公民信息库中获取到某一公民的特征信息时,也可以同时获取到对应该公民的身份信息,例如,他的名字、家庭住址、犯罪记录等信息;又例如,所述预设特征集合可以是全国车辆信息的车辆信息特征库,当从车辆信息特征库中获取到某一车辆的特征信息时,也可以同时获取到对应该车辆的驾驶员信息,例如,驾驶员姓名、行车记录、交通违反记录等信息;再例如,所述预设特征集合可以是全国宠物信息的宠物信息特征库,当从宠物信息特征库中获取到某一宠物的特征信息时,也可以同时获取到对应该宠物的属性信息,例如,宠物主人姓名、疫苗注射情况、宠物伤人情况等信息。
本申请实施例中,当得到所述压缩特征之后,在预设特征集合中,将所述压缩特征与每一预设特征进行匹配,如果匹配成功,则将对应的预设特征作为所述检索结果;如果未匹配成功,则将未匹配成功的提醒消息作为检索结果。
步骤S304,输出所述检索结果。
这里,当匹配出所述检索结果之后,将所述检索结果发送给终端,并在所述终端上显示所述匹配结果,以提醒用户与所述待检索图像所匹配的预设特征的信息或者没有匹配到与所述待检索图像所匹配的预设特征的信息。
本申请实施例提供的特征检索方法,在待检索特征对应的每一存储维度上,对所述待检索特征进行压缩处理,得到相比于所述待检索特征具有较低内存占用的压缩特征。这样,由于对待检索特征进行压缩处理,可以得到具有较低内存占用的压缩特征,从而使得检索过程中的数据访问量和计算量均减小,降低特征存储的设备空间消耗,并降低特征检索时延,提升特征检索吞吐量。
图4是本申请实施例提供的特征检索方法的一个可选的流程示意图,如图4所示,所述方法包括以下步骤:
步骤S401,终端向服务器发送检索请求。
这里,所述检索请求中包括待检索图像,所述检索请求用于请求服务器对所述待检索图像在特征库中进行检索,以确定与所述待检索图像对应的预设特征,并得到该预设特征的属性信息,进而明确所述待检索图像对应的属性信息。
步骤S402,服务器提取待检索图像中的待检索特征。
需要说明的是,步骤S402与上述步骤S301相同,本申请实施例不再赘述。
步骤S403,服务器确定所述待检索特征的向量。
这里,每一所述待检索特征对应有一个特征向量,所述特征向量即所述待检索特征的向量,所述特征向量对应有至少一个存储维度,所述存储维度用于表征所述待检索特征的特征向量的特征值所存储的维度。本申请实施例中,当提取到所述待检索图像的待检索特征时,即可获取到该待检索特征对应的特征向量以及用于存储该待检索特征或者表征该待检索特征的特征值所存储的维度。
步骤S404,服务器在每一所述存储维度上,对所述待检索特征的向量进行整数量化的压缩处理,得到相比于所述待检索特征的向量具有较低内存占用的压缩特征的向量。
这里,所述特征向量的特征值可以采用浮点数的形式存储,因此,可以采用整数量化的压缩处理方式对所述待检索特征的特征向量进行压缩处理。其中,所述整数量化是指为所述特征向量进行整数量化处理,也就是对所述特征向量的特征值进行取整之后再进行量化。
本申请实施例中,采用整数量化的压缩处理,当所述特征向量的特征值的平均值在一定范围内时,则对所述特征值进行量化计算,得到与该特征值对应的量化值;当所述特征向量的特征值的平均值不在一定范围内时,则可以直接进行量化赋值运算,将一个特定的值作为所述量化值赋予所述特征向量。
步骤S405,服务器在预设特征集合中,检索与所述压缩特征的向量匹配的预设特征,得到检索结果。
这里,当确定出所述压缩特征的向量时,在所述预设特征集合中,确定与所述压缩特征的向量相匹配的预设特征的向量,如果匹配成功时,将所匹配的预设特征的向量对应的预设特征作为所述检索结果;如果未匹配成功,则将未匹配成功的提醒消息作为检索结果。
步骤S406,服务器向终端输出所述检索结果。
这里,当匹配出所述检索结果之后,服务器将所述检索结果发送给终端,以在所述终端上显示输出所述检索结果。
本申请实施例提供的特征检索方法,在每一所述存储维度上,对所述待检索特征的向量进行整数量化的压缩处理,得到相比于所述待检索特征的向量具有较低内存占用的压缩特征的向量,然后根据该压缩特征的向量在预设特征集合中,检索与所述压缩特征的向量匹配的预设特征,得到检索结果。如此,由于检索过程采用的是具有较低内存占用的压缩特征的向量,因此,可以使得检索过程中的向量数据的访问量和计算量减小,降低特征检索时延,提升特征检索吞吐量。
基于图4,图5是本申请实施例提供的特征检索方法的一个可选的流程示意图,在一些实施例中,如图5所示,上述步骤S404可以通过以下步骤实现:
步骤S501,当所述待检索特征的向量对应的特征值在预设范围内时,在每一所述存储维度上根据所述特征值和预设量化偏移量,确定所述待检索特征的向量的量化值。
这里,所述待检索特征的向量对应的特征值可以是所述待检索特征的特征值求均值所得到的平均值,所述预设范围可以是服务器预设的,也可以是用户根据实际压缩需求进行设置的。
本申请实施例中,当所述待检索特征的向量对应的特征值在预设范围内时,表明所述特征值没有超出要求的上限或者超出要求的下限,因此可以采用正比例函数在特定系数(即量化系数)下对所述特征值求正比例值,并对该正比例值进行求整,得到所述待检索特征的向量的量化值。
在一些实施例中,可以通过以下公式(1-1)计算所述量化值:
quant(v)=round(kx+b) (1-1);
其中,quant为量化函数;quant(v)为待检索特征的向量v(即特征向量v)的量化值;round为取整函数,也称四舍五入函数;round(kx+b)为对数值(kx+b)进行四舍五入取整;k为量化系数;x为特征向量里面的某一维度的值;b为量化偏移量。其中量化系数k和量化偏移量b可以根据实际压缩需求进行调整。
本申请实施例中,通过上述计算,所得到的所述待检索特征的向量的量化值小于所述待检索特征的向量的特征值。
步骤S502,将所述量化值确定为所述压缩特征的向量的特征值,以得到相比于所述特征的向量具有较低内存占用的压缩特征的向量。
这里,当计算出待检索特征的向量的量化值之后,将所述量化值作为所述压缩特征的向量的特征值,从而使得所述压缩特征的向量的特征值相比于所述待检索特征的向量的特征值更小,因而压缩特征的内存占用相比于待检索特征的内存占用也更低。
请继续参照图5,在其他实施例中,上述步骤S404还可以通过以下步骤实现:
步骤S511,当所述待检索特征的向量对应的特征值不在预设范围内时,将预设阈值确定为所述待检索特征的向量的量化值。
本申请实施例中,当所述待检索特征的向量对应的特征值不在预设范围内时,表明所述特征值超出要求的上限或者超出要求的下限,因此可以直接进行量化赋值运算,将一个特定的量化阈值作为所述量化值赋予所述特征向量。
在一些实施例中,当待检索特征的向量对应的特征值小于所述预设范围的下限值时,可以通过以下公式(1-2)计算所述待检索特征的向量的量化值:
quant(v)=-MAXINT (1-2);
其中,MAXINT为量化阈值。
当待检索特征的向量对应的特征值大于所述预设范围的上限值时,可以通过以下公式(1-3)计算所述待检索特征的向量的量化值:
quant(v)=MAXINT (1-3);
本申请实施例中,通过直接将-MAXINT或者MAXINT作为所述量化值赋予所述特征向量,将所述待检索特征的向量的特征值强制设置成所述量化阈值,从而实现了对所述待检索特征的压缩处理。
步骤S512,将所述量化值确定为所述压缩特征的向量的特征值,以得到相比于所述待检索特征的向量具有较低内存占用的压缩特征的向量。
本申请实施例中,当计算出待检索特征的向量的量化值之后,将所述量化值作为所述压缩特征的向量的特征值,从而使得所述压缩特征的向量的特征值相比于所述待检索特征的向量的特征值更小,因而压缩特征的内存占用相比于待检索特征的内存占用也更低。
基于图3,图6是本申请实施例提供的特征检索方法的一个可选的流程示意图,在一些实施例中,如图6所示,在步骤S302得到压缩特征之后,所述方法还可以包括以下步骤:
步骤S601,当所述待检索特征对应有多个压缩特征时,根据每一压缩特征的标识,依次将每一压缩特征存储在具有预设内存空间的存储单元中。
这里,所述存储单元可以是持久化存储设备,例如,所述存储单元可以是RAM上的部分存储单元。本申请实施例中,可以将RAM分成多个存储单元,每个存储单元具有所述预设内存空间,在向RAM中存储所述压缩特征时,是依次向所述存储单元中存储所述压缩特征。
步骤S602,当所述存储单元未存储满时,则将当前需要存储的压缩特征存储在所述存储单元中。
这里,如果某一存储单元未存储满,则表明该存储单元中还有存储空间可以存储压缩特征,因此,将当前需要存储的压缩特征存储在该存储单元中,以保证在RAM中连续存储压缩特征。并且,在本申请实施例中,如果当前的存储单元未存储满时,是不会分配新的存储单元存储所述压缩特征的,这样能够避免存储压缩特征的不连续性。
步骤S603,当所述存储单元已存储满时,从内存中分配与所述存储单元具有相同内存空间的新的存储单元,并将当前需要存储的压缩特征存储在新的存储单元中。
这里,当所述存储单元已存储满时,分配新的存储单元来继续对压缩特征进行存储。需要说明的是,在其他实施例中,所述新的存储单元的内存空间可以与历史存储单元的内存空间相同,也可以不同,可以根据实际存储需要以及压缩特征的数量和内存占用量进行设置,本申请实施例不做限定。
本申请实施例提供的特征检索方法,当所述存储单元未存储满时,则将当前需要存储的压缩特征存储在所述存储单元中,当所述存储单元已存储满时,从内存中分配与所述存储单元具有相同内存空间的新的存储单元,并将当前需要存储的压缩特征存储在新的存储单元中。如此,能够实现压缩特征在内存中的分块连续存储,从而减小后续对压缩特征进行更新时的复杂度。
基于图6,图7是本申请实施例提供的特征检索方法的一个可选的流程示意图,在一些实施例中,需要对所述存储单元中的压缩特征进行更新,例如,所述更新可以是删除部分压缩特征或者新增部分压缩特征等。
本申请实施例中,每一所述存储单元对应一个记录队列,当需要删除所述存储单元中的压缩特征时,请参照图7,在步骤S601之后,所述方法还可以包括以下步骤:
步骤S701,当删除所述压缩特征时,确定删除的压缩特征的标识和所述删除的压缩特征在所述存储单元中的位置。
这里,所述压缩特征在所述存储单元中的位置是指所述压缩特征的存储位置。所述存储位置可以以任意一种形式表示,例如以指针的形式表征压缩特征的存储位置。在每一存储单元中存储有至少一个压缩特征,每一压缩特征对应一个确定的存储位置。
步骤S702,将所述标识和所述位置记录于所述存储单元对应的记录队列中。
这里,所述记录队列用于记录所述压缩特征的标识与所述压缩特征在存储单元中的存储位置。
在其他实施例中,当存在新的压缩特征需要存储至所述存储单元中时,请继续参照图7,在步骤S601之后,所述方法还包括以下步骤:
步骤S711,当存在新的压缩特征需要存储至所述存储单元中时,确定所述记录队列起始位置处记录的所述存储单元中的位置为目标位置。
这里,当存在新的压缩特征需要存储至所述存储单元中时,首先确定所述记录队列中是否存储有标识和位置信息,如果有,则表明对应的存储单元中有被删除的压缩特征,那么由于有压缩特征被删除,因此删除该压缩特征的位置为空闲位置,该空闲位置当前未存储压缩特征,所以可以优先将新的压缩特征存储在该空闲位置上。本申请实施例中,通过确定记录队列起始位置处记录的存储单元中的位置为目标位置,即将最先删除的压缩特征对应的空闲位置确定为目标位置。
步骤S712,将所述新的压缩特征存储至所述存储单元中的所述目标位置上。
步骤S713,删除位于所述记录队列起始位置处记录的所述标识和所述目标位置。
这里,当新的压缩特征存储在存储单元中的目标位置上时,此时存储单元中的对应位置已经存储有压缩特征,因此将记录队列中对应的标识和位置删除,以保证后续对记录队列的准确查询。
本申请实施例中,将新的压缩特征存储在最先删除的压缩特征对应的目标位置上,从而保证了对有空闲位置的存储单元的优先存储,以保证充分的利用存储单元,在保证正常存储新的压缩特征的情况下,尽可能的降低分配新的存储单元,提高内存的利用率。
在一些实施例中,基于图3,如图8所示,步骤S303中在预设特征集合中,检索与所述压缩特征匹配的预设特征,得到检索结果,可以通过以下步骤实现:
步骤S801,在所述预设特征集合中,确定所述压缩特征与每一预设特征之间的相似度。
所述预设特征集合中包括至少两个预设特征,所述预设特征是预先设置或者预先存储的特征信息,每一所述预设特征对应有特征的属性信息,通过所述属性信息对对应预设特征进行解释说明。本申请实施例中,将所述压缩特征与所述预设特征集合中的每一预设特征进行比较以确定所述相似度。
在实现的过程中,可以是将所述压缩特征的属性信息与每一预设特征的属性信息进行比较,根据比较结果确定所述相似度,例如,当所述压缩特征的属性信息与所述预设特征的属性信息的信息重合率较高时,则对应的所述相似度较高;当所述压缩特征的属性信息与所述预设特征的属性信息的信息重合率较低时,则对应的所述相似度较低。
步骤S802,将具有最高相似度的预设特征确定为与所述压缩特征匹配的预设特征,得到所述检索结果。
这里,在确定出所述压缩特征与每一预设特征之间的相似度之后,对所述相似度按照从大到小的顺序进行排序得到相似度序列,从所述相似度序列中确定最高相似度,并将具有最高相似度的预设特征确定为与所述压缩特征匹配的预设特征。
在一些实施例中,基于图8,如图9所示,步骤S801中确定所述相似度可以通过以下两种方式实现,其中,方式一包括以下步骤:
步骤S901,在所述预设特征集合中,确定所述压缩特征的向量与每一预设特征的向量之间的余弦距离。
所述余弦距离又称为余弦相似度,是通过计算两个向量的夹角余弦值来评估他们的相似度。余弦相似度可以将向量根据坐标值绘制到向量空间中,如最常见的二维空间。其中,0度角的夹角余弦值是1,而其他任何角度的夹角余弦值都不大于1;并且其最小值是-1。当两个向量有相同的指向时,余弦相似度的值为1;当两个向量夹角为90°时,余弦相似度的值为0;当两个向量指向完全相反的方向时,余弦相似度的值为-1。余弦相似度的结果是与向量的长度无关的,仅仅与向量的指向方向相关。
本申请实施例中,根据压缩特征的特征向量和预设特征的特征向量之间的夹角余弦值来确定所述余弦距离。
步骤S902,根据所述余弦距离,确定所述压缩特征与对应预设特征之间的相似度。
这里,当确定出所述余弦距离时,将所述余弦距离对应的余弦相似度确定为所述压缩特征与对应预设特征之间的相似度。当所述余弦距离越远时,对应的相似度越低,当所述余弦距离越近时,对应的相似度越高。
在一些实施例中,方式二包括以下步骤:
步骤S911,在所述预设特征集合中,确定所述压缩特征的向量与每一预设特征的向量之间的欧式距离。
所述欧式距离是指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。
本申请实施例中,通过压缩特征的向量与所述预设特征的向量计算所述压缩特征与所述预设特征之间的实际距离。
步骤S912,根据所述欧式距离,确定所述压缩特征与对应预设特征之间的相似度。
这里,当确定出所述欧式距离时,根据所述欧式距离确定所述压缩特征与对应预设特征之间的相似度,当所述欧式距离越远时,对应的相似度越低,当所述欧式距离越近时,对应的相似度越高。
图10是本申请实施例提供的特征检索方法的一个可选的流程示意图,其中,所述预设特征集合包括至少两个预设特征子集合,所述至少两个预设特征子集合分布于不同的存储设备中,其中每一储存设备对应一服务器,那么本申请实施例中,可以由一个起主控作用的代理服务器来实现本申请实施例的特征检索方法,如图10所示,本申请实施例以具有两个存储设备,以及对应的两个服务器(图示为第一服务器和第二服务器)为例对多存储设备存储特征的方案进行说明,其中,所述方法还包括:
步骤S1001,代理服务器获取第一存储设备对应的第一服务器基于自身的预设特征子集合所发送的第一检索子结果。
这里,所述代理服务器用于对至少两个服务器所形成的系统进行控制。本申请实施例中,所述第一服务器在自身的预设特征子集合确定出第一检索子结果,所述第一检索子结果是基于所述预设特征子集合所确定出的与所述压缩特征具有最大相似度的预设特征。
步骤S1002,代理服务器获取第二存储设备对应的第二服务器基于自身的预设特征子集合所发送的第二检索子结果。
本申请实施例中,所述第二服务器在自身的预设特征子集合确定出第二检索子结果,所述第二检索子结果是基于所述预设特征子集合所确定出的与所述压缩特征具有最大相似度的预设特征。
在一些实施例中,所述第一服务器对应的预设特征子集合中所包括的预设特征,与所述第二服务器对应的预设特征子集合中所包括的预设特征不同。
步骤S1003,代理服务器对所述第一检索子结果和所述第二检索子结果进行汇总,得到检索结果。
这里,代理服务器可以判断所述第一检索子结果中的预设特征与所述压缩特征的第一相似度,与所述第二检索子结果中的预设特征与所述压缩特征的第二相似度之间的大小,将具有最大相似度的预设特征作为所述检索结果。
步骤S1004,代理服务器向终端输出所述检索结果。
这里,当代理服务器汇总得到所述检索结果之后,将所述检索结果作为总的结果反馈给终端,以实现在终端的显示界面上显示所述检索结果。
本申请实施例提供的特征检索方法,当所述预设特征的数量较大时,将所述预设特征分布于不同的服务器对应的存储设备中,并且在检索过程中,多个服务器同时基于自身的预设特征子集合进行检索,由代理服务器对多个服务器的检索子结果进行汇总。如此,通过多个服务器进行同时检索,能够显著地提高检索的速率;并且,由于每一预设特征子集合相对于总的预设特征的数量显著降低,因此,每一服务器的检索效率也有显著的提高。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供一种用于加速特征检索过程的方法,使用低比特的特征存储方案和低比特的特征检索计算过程,可以降低特征存储的设备空间消耗,并降低特征检索时延,提升特征检索吞吐量。
本申请实施例的主要创新点包括:第一方面,使用低比特的特征压缩方法,即使用更低的比特数来表示待检索特征的特征向量,这样可以在保证特征分辨率的前提下有效降低特征存储所占用的空间。第二方面,提出特征分块存储及替换的方法,可在大规模增加或者删除特征时减少存储设备操作量,并保持存储的连续性。第三方面,使用低比特的特征计算方法,可在本申请实施例提出的特征压缩方法的基础上快速计算特征之间的相似度。第四方面,得益于检索时没有特征数据传输的特性,本申请实施例可使用分布式多机特征存储方法,检索性能可实现接近线性的扩展。
本申请实施例的特征检索方法可以应用于车辆检索、人脸门禁、公安系统罪犯识别、走失儿童搜寻等大规模特征检索系统当中,通过特征压缩方法提高检索速度,保障检索稳定性,降低部署成本。
图11是本申请实施例提供的特征检索方法的一个可选的流程示意图,如图1所示,所述方法包括以下步骤:
步骤S1101,服务器在接收到检索请求后对原始输入特征(对应上述待检索特征)进行压缩,得到压缩输入特征(对应上述压缩特征)。
这里,在得到所述压缩输入特征时,可以将所述压缩输入特征存储在特征存储装置中。
步骤S1102,将压缩输入特征与特征库中的压缩特征逐个进行比较,计算相似度。
步骤S1103,按照相似度结果进行部分排序,得到排序结果,并确定所述排序结果中位于序列首部的特征。
这里,将确定出的位于序列首部的特征作为本次检索过程的检索结果。
步骤S1104,向终端返回所述检索结果。
图12是本申请实施例提供的特征检索装置的组成结构示意图,如图12所示,所述特征检索装置包括:请求代理模块1201、特征压缩模块1202、特征存储模块1203和相似度计算模块1204。
所述请求代理模块用于请求服务器对所述原始输入特征进行特征检索;所述特征压缩模块用于对输入的所述原始输入特征进行压缩处理,得到压缩输入特征,或者,所述特征压缩模块还用于对所述特征库中的预存特征进行压缩处理,得到压缩特征;所述特征存储模块用于对所述压缩输入特征进行存储,以实现在后续特征检索过程中,可以从所述特征存储模块中直接获取所存储的压缩输入特征进行特征检索;所述相似度计算模块用于计算所述压缩输入特征与特征库中的压缩特征之间的相似度。
在一些实施例中,所述特征检索方法的主要算法包括:特征压缩算法、特征存储算法和特征检索算法,下面分别对特征检索方法的主要算法进行说明。
特征压缩算法,是指将原始输入特征进行压缩,降低特征信息量及存储所需空间的过程。例如,所述原始输入特征可以是图像、人体等的特征信息,本申请实施例中,图像、人体等特征信息的特征值可以采用浮点数存储,存储维度为可以为256维到2048维不等。这里以512维特征为例,单个浮点精度特征向量占据存储空间为2048字节,那么100万个数据占用存储空间约2GB。
本申请实施例中采用整数量化的方法对原始输入特征的特征向量在各维度进行变换,在图像处理器的方案中,由于图像处理器计算能力较强,常采用8比特数据存储以保证更好的精度,而在通用处理器架构,如英特尔、AMD公司的X86架构和ARM公司的架构中,常采用7比特或6比特数据存储以保证处理性能、减少资源占用。
下面对本申请实施例中的压缩过程的特征变化方法进行说明:
当浮点数在均值3σ范围内时,采用以下公式(2-1)计算原始输入特征的特征向量v的量化值:
quant(v)=round(kx+b) (2-1);
其中,quant为量化函数;quant(v)为待检索特征的向量v(即特征向量v)的量化值;round为取整函数,也称四舍五入函数;round(kx+b)为对数值(kx+b)进行四舍五入取整;k为量化系数;x为特征向量里面的某一维度的值;b为量化偏移量。其中量化系数k和量化偏移量b可以根据实际压缩需求进行调整。
当浮点数小于mean-3σ时,采用以下公式(2-2)计算原始输入特征的特征向量v的量化值:
quant(v)=-MAXINT (2-2);
其中,MAXINT为量化阈值;mean是所述原始输入特征的特征值(即浮点数)求均值所得到的平均值。
当浮点数大于mean+3σ时,采用以下公式(2-3)计算原始输入特征的特征向量v的量化值:
quant(v)=MAXINT (2-3)。
在一些实施例中,提供一种压缩特征的特征存储方法。一般常用的特征存储方法是将特征二进制存储在数据库等持久化存储模块中,检索时将特征加载到内存里。本申请实施例的方法可以直接在随机存取存储器(RAM,Random Access Memory)上进行特征维护,在特征数据有改动时同步到持久化存储设备中。
在对压缩特征进行检索时的相似度计算过程中,更期望压缩特征数据存储在连续的RAM空间里,但频繁的特征增加和删除操作会导致压缩特征在RAM里的存储不连续。本申请实施例使用分块加标记删除的方法来维护数据,即能保证RAM里压缩特征的连续性,又能保证增加和删除操作的低复杂度。
分块方法即将特征按块存储,例如每个特征块分配4MB的空间,可以存储8192个512维压缩特征,当特征库所有块都存储满时再分配新的特征块。
当删除压缩特征时,每个特征块使用一个队列(记为D队列)来记录被删除的压缩特征在块内的位置,其中,删除压缩特征的流程图如图13所示,包括以下步骤:
步骤S1301,输入待删除的压缩特征。
步骤S1302,根据所述待删除的压缩特征的标识,确定存储该待删除的压缩特征的特征块的ID。
步骤S1303,将该压缩特征在所述特征块内的偏移量入队。
这里,所述偏移量即所述压缩特征在所述特征块内的存储位置,所述偏移量入队是指所述存储位置存储于所述D队列中。
当有新的压缩特征插入时,从D队列出队一个存储位置,并将新的压缩特征存储至对应位置即可,其中,插入特征的流程图如图14所示,包括以下步骤:
步骤S1401,判断当前是否存在未存储满的特征块。
当判断结果为是时,执行步骤S1402;当判断结果为否时,执行步骤S1406。
步骤S1402,判断该特征块对应的D队列是否为空。
当判断结果为是时,执行步骤S1403;当判断结果为否,执行步骤S1404。
步骤S1403,将所述新的压缩特征插入特征块的尾部。
步骤S1404,从D队列中出队一个偏移量P。
步骤S1405,将所述新的压缩特征插入偏移量P对应的位置。
步骤S1406,申请新的特征块。
步骤S1407,将所述新的压缩特征插入到所述新的特征块的头部。
本申请实施例中,在特征检索时,可以将D队列所有位置出队,从块尾部将数据填充到被删除的位置,保证整个块数据从头部到尾部的数据连续性。采用本申请实施例的方法,可以保证删除和插入特征的时间复杂度均为O(1),同时维持每个特征块的数据连续性。
在一些实施例中,提供一个特征检索方法,所述方法可以采用欧式距离或余弦距离计算特征相识度。
其中,余弦距离采用以下公式(2-4)计算:
其中,distance1为余弦距离;a(i)为特征向量a里的第i个元素的特征值,其中,a(i)可以是输入特征向量里的第i个元素的特征值;b(i)为特征向量b里的第i个元素的特征值,其中,b(i)可以是特征向量库中的特征向量里的第i个元素的特征值;∑为求和。
欧式距离采用一些公式(2-5)计算:
distance2=sqrt(∑[a(i)-b(i)]2) (2-5);
其中,distance2为欧式距离;sqrt为平方根函数。
本申请实施例中,计算输入特征向量与压缩后的特征向量库中的特征向量之间的特征相似度,并选取特征相似度最高的一组特征向量作为检索结果,并将检索结果通过反变换转换回浮点结果,即以浮点数的形式表征检索结果。并与浮点相似度阈值比较,当结果满足预设的相似度阈值时,表示检索成功;否则,表示检索失败。
需要说明的是,本申请实施例所使用的特征压缩算法在实现时,涉及到浮点数到定点数的转换,需要考虑压缩特征的正负分布均衡性,因此不能使用简单的向上或者向下取整,需要使用向最近整数取整的方法。
本申请实施例在特征存储时涉及到数据分块及RAM内存分配,本申请是合理使用内存块池的方式减少对操作系统的内存分配、内存释放操作数量,可有效提升系统性能。此外,不同的特征块大小也会对检索及数据插入删除性能产生影响。经过对操作系统页大小及不同检索设备的缓存大小分析,本申请实施例使用2MB的大小,可以在检索和删除插入性能间取得平衡。
图15是本申请实施例提供的特征检索方法的实现流程示意图,如图15所示,所述方法包括以下步骤:
步骤S1501,输入块特征库和待检索特征的特征值。
这里,在特征输入时,特征检索依赖于特征库和特征值两部分输入。
步骤S1502,对所述块特征库中的特征和所述待检索特征进行压缩变换,得到压缩后的块特征和压缩输入特征。
这里,在压缩变换时,采用上述任一实施例提供的变换方法对特征库、特征值进行变换,并将变换后的特征库按上述任一实施例提供的存储方法存储。
步骤S1503,将所述压缩输入特征与块特征库中的压缩后的块特征进行特征比对。
这里,在进行特征比对时,对特征库和特征值进行比对。
步骤S1504,在进行比对时,判断当前的块特征是否是未比对块。
这里,判断是否所有特征块都已完成比对,若是则进入相似度归并,否则继续输入特征块。即如果判断结果为是,则返回执行步骤S1501,如果判断结果为否,则执行步骤S1505。
步骤S1505,对比对得到的相似度进行相似度归并,得到比对结果。
这里,在进行块相似度归并时,合并各个块对应的比对结果,并采用快速排序方法进行排序,选取最大特征值。
步骤S1506,对所述比对结果进行特征反变换,将比对结果通过反变换转换回浮点结果。
这里,在进行特征反变换时,对比对结果按反变换方法变换回浮点结果。
步骤S1507,判断所述浮点结果是否达到预设的相似度阈值。
这里,判断是否达到浮点阈值(即预设的相似度阈值),达到则检索成功输出结果,否则检索失败。即如果判断结果为是,则表明检索成功,执行步骤S1508;如果判断结果为否,则表明检索失败,结束流程。
步骤S1508,将所述比对结果作为检索结果输出。
在其他实施例中,再提供一种多机特征存储的实现方法。当特征库较大,超出单机RAM存储上限时,可以通过多机存储特征,从而增大特征检索装置的特征存储容量。按照上述实施例提供的特征存储及特征检索方法,按照检索服务器的数量均分特征即可,在检索时各服务器分别对输入特征在本机特征库进行检索,最后由代理服务器进行结果汇总即可。汇总过程包含一个步骤,即按照相似度排序。
当单机检索吞吐量达不到系统要求时,也可以通过多机存储特征,增大特征检索装置的整体检索吞吐量。其实现方法与上述特征库过大时的实现方法一致。在多机存储时,每台服务器的库大小较单机相比成比例下降,因为检索耗时与库大小成正比关系,因此多机存储特征达到了提升整个系统检索吞吐量的效果。
本申请实施例提供的特征检索方法,设计了一整套低比特特征变换、存储和检索的方法,利用该方法能够大幅提升特征检索性能。采用此方法,在云计算平台上,该方法能够将特征检索性能提升至少4倍;在边缘计算平台上,该方法可以实现超过两倍的计算速度提升,同时减少75%的数据存储量。对于特征检索平台的性能和成本有很大帮助。
在一些实施例中,所述特征变换方法还可以通过非均匀量化、对数域变换等方法来实现。其中,对数域方法对于部分专用加速器平台有更好的提速效果,如嵌入式神经网络处理器(NPU,Neural-network Processing Unit)平台;对于专用芯片方案,对数域方案也可以节省一些芯片面积和功耗;非均匀量化方法在部分场景下,如特征分布更为集中在个别数值附近时,可以有效减少检索精度的损失。
下面继续说明本申请实施例提供的特征检索装置254的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器250的特征检索装置254中的软件模块可以包括:
提取模块2541,用于提取待检索图像中的待检索特征;
压缩处理模块2542,用于在所述待检索特征对应的每一存储维度上,对所述待检索特征进行压缩处理,得到相比于所述待检索特征具有较低内存占用的压缩特征;
检索模块2543,用于在预设特征集合中,检索与所述压缩特征匹配的预设特征,得到检索结果;
输出模块2544,用于输出所述检索结果。
在一些实施例中,所述压缩处理模块还用于:确定所述待检索特征的向量;在每一所述存储维度上,对所述待检索特征的向量进行整数量化的压缩处理,得到相比于所述待检索特征的向量具有较低内存占用的压缩特征的向量;对应地,检索模块还用于:在预设特征集合中,检索与所述压缩特征的向量匹配的预设特征,得到检索结果。
在一些实施例中,所述压缩处理模块还用于:当所述待检索特征的向量对应的特征值在预设范围内时,在每一所述存储维度上根据所述特征值和预设量化偏移量,确定所述待检索特征的向量的量化值;将所述量化值确定为所述压缩特征的向量的特征值,以得到相比于所述特征的向量具有较低内存占用的压缩特征的向量。
在一些实施例中,所述压缩处理模块还用于:当所述待检索特征的向量对应的特征值不在预设范围内时,将预设阈值确定为所述待检索特征的向量的量化值;将所述量化值确定为所述压缩特征的向量的特征值,以得到相比于所述待检索特征的向量具有较低内存占用的压缩特征的向量。
在一些实施例中,所述装置还包括:第一存储模块,用于当所述待检索特征对应有多个压缩特征时,根据每一压缩特征的标识,依次将每一压缩特征存储在具有预设内存空间的存储单元中。
在一些实施例中,所述装置还包括:第二存储模块,用于当所述存储单元未存储满时,则将当前需要存储的压缩特征存储在所述存储单元中;
分配模块,用于当所述存储单元已存储满时,从内存中分配与所述存储单元具有相同内存空间的新的存储单元,并将当前需要存储的压缩特征存储在新的存储单元中。
在一些实施例中,所述装置还包括:第一确定模块,用于当删除所述压缩特征时,确定删除的压缩特征的标识和所述删除的压缩特征在所述存储单元中的位置;记录模块,用于将所述标识和所述位置记录于所述存储单元对应的记录队列中。
在一些实施例中,所述装置还包括:第二确定模块,用于当存在新的压缩特征需要存储至所述存储单元中时,确定所述记录队列起始位置处记录的所述存储单元中的位置为目标位置;第三存储模块,用于将所述新的压缩特征存储至所述存储单元中的所述目标位置上;删除模块,用于删除位于所述记录队列起始位置处记录的所述标识和所述目标位置。
在一些实施例中,所述检索模块还用于:在所述预设特征集合中,确定所述压缩特征与每一预设特征之间的相似度;将具有最高相似度的预设特征确定为与所述压缩特征匹配的预设特征,得到所述检索结果。
在一些实施例中,所述检索模块还用于:在所述预设特征集合中,确定所述压缩特征的向量与每一预设特征的向量之间的余弦距离;根据所述余弦距离,确定所述压缩特征与对应预设特征之间的相似度。
在一些实施例中,所述检索模块还用于:在所述预设特征集合中,确定所述压缩特征的向量与每一预设特征的向量之间的欧式距离;根据所述欧式距离,确定所述压缩特征与对应预设特征之间的相似度。
在一些实施例中,所述预设特征集合包括至少两个预设特征子集合,所述至少两个预设特征子集合分布于不同的存储设备中;所述装置还包括:获取模块,用于获取每一存储设备对应的服务器基于所述预设特征子集合所返回的检索子结果;汇总模块,用于对所述检索子结果进行汇总,得到所述检索结果。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3示出的方法。
在一些实施例中,存储介质可以是铁电存储器(FRAM,Ferromagnetic Ra ndomAccess Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read Only Memory)、带电可擦可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read Only Me mory)、闪存、磁表面存储器、光盘、或光盘只读存储器(CD-ROM,CompactDisk-Read Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H yper Text MarkupLanguage,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (14)

1.一种特征检索方法,其特征在于,包括:
提取待检索图像中的待检索特征;
在所述待检索特征对应的每一存储维度上,对所述待检索特征进行压缩处理,得到相比于所述待检索特征具有较低内存占用的压缩特征;
在预设特征集合中,检索与所述压缩特征匹配的预设特征,得到检索结果;
输出所述检索结果。
2.根据权利要求1所述的方法,其特征在于,所述在所述待检索特征对应的每一存储维度上,对所述待检索特征进行压缩处理,得到相比于所述待检索特征具有较低内存占用的压缩特征,包括:
确定所述待检索特征的向量;
在每一所述存储维度上,对所述待检索特征的向量进行整数量化的压缩处理,得到相比于所述待检索特征的向量具有较低内存占用的压缩特征的向量;
对应地,在预设特征集合中,检索与所述压缩特征的向量匹配的预设特征,得到检索结果。
3.根据权利要求2所述的方法,其特征在于,所述在每一所述存储维度上,对所述待检索特征的向量进行整数量化的压缩处理,得到相比于所述待检索特征的向量具有较低内存占用的压缩特征的向量,包括:
当所述待检索特征的向量对应的特征值在预设范围内时,在每一所述存储维度上根据所述特征值和预设量化偏移量,确定所述待检索特征的向量的量化值;
将所述量化值确定为所述压缩特征的向量的特征值,以得到相比于所述特征的向量具有较低内存占用的压缩特征的向量。
4.根据权利要求2所述的方法,其特征在于,所述在每一所述存储维度上,对所述待检索特征的向量进行整数量化的压缩处理,得到相比于所述待检索特征的向量具有较低内存占用的压缩特征的向量,包括:
当所述待检索特征的向量对应的特征值不在预设范围内时,将预设阈值确定为所述待检索特征的向量的量化值;
将所述量化值确定为所述压缩特征的向量的特征值,以得到相比于所述待检索特征的向量具有较低内存占用的压缩特征的向量。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述待检索特征对应有多个压缩特征时,根据每一压缩特征的标识,依次将每一压缩特征存储在具有预设内存空间的存储单元中。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述存储单元未存储满时,则将当前需要存储的压缩特征存储在所述存储单元中;
当所述存储单元已存储满时,从内存中分配与所述存储单元具有相同内存空间的新的存储单元,并将当前需要存储的压缩特征存储在新的存储单元中。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当删除所述压缩特征时,确定删除的压缩特征的标识和所述删除的压缩特征在所述存储单元中的位置;
将所述标识和所述位置记录于所述存储单元对应的记录队列中。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
当存在新的压缩特征需要存储至所述存储单元中时,确定所述记录队列起始位置处记录的所述存储单元中的位置为目标位置;
将所述新的压缩特征存储至所述存储单元中的所述目标位置上;
删除位于所述记录队列起始位置处记录的所述标识和所述目标位置。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述在预设特征集合中,检索与所述压缩特征匹配的预设特征,得到检索结果,包括:
在所述预设特征集合中,确定所述压缩特征与每一预设特征之间的相似度;
将具有最高相似度的预设特征确定为与所述压缩特征匹配的预设特征,得到所述检索结果。
10.根据权利要求9所述的方法,其特征在于,所述在所述预设特征集合中,确定所述压缩特征与每一预设特征之间的相似度,包括:
在所述预设特征集合中,确定所述压缩特征的向量与每一预设特征的向量之间的余弦距离;
根据所述余弦距离,确定所述压缩特征与对应预设特征之间的相似度。
11.根据权利要求9所述的方法,其特征在于,所述在所述预设特征集合中,确定所述压缩特征与每一预设特征之间的相似度,包括:
在所述预设特征集合中,确定所述压缩特征的向量与每一预设特征的向量之间的欧式距离;
根据所述欧式距离,确定所述压缩特征与对应预设特征之间的相似度。
12.根据权利要求1至11任一项所述的方法,其特征在于,所述预设特征集合包括至少两个预设特征子集合,所述至少两个预设特征子集合分布于不同的存储设备中;所述方法还包括:
获取每一存储设备对应的服务器基于所述预设特征子集合所返回的检索子结果;对所述检索子结果进行汇总,得到所述检索结果。
13.一种特征检索装置,其特征在于,包括:
提取模块,用于提取待检索图像中的待检索特征;
压缩处理模块,用于在所述待检索特征对应的每一存储维度上,对所述待检索特征进行压缩处理,得到相比于所述待检索特征具有较低内存占用的压缩特征;
检索模块,用于在预设特征集合中,检索与所述压缩特征匹配的预设特征,得到检索结果;
输出模块,用于输出所述检索结果。
14.一种存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至12任一项所述的方法。
CN201910934525.5A 2019-09-29 2019-09-29 特征检索方法、装置及存储介质 Pending CN110647649A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910934525.5A CN110647649A (zh) 2019-09-29 2019-09-29 特征检索方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910934525.5A CN110647649A (zh) 2019-09-29 2019-09-29 特征检索方法、装置及存储介质

Publications (1)

Publication Number Publication Date
CN110647649A true CN110647649A (zh) 2020-01-03

Family

ID=68993189

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910934525.5A Pending CN110647649A (zh) 2019-09-29 2019-09-29 特征检索方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN110647649A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112650863A (zh) * 2020-12-01 2021-04-13 深圳力维智联技术有限公司 跨媒介数据融合的方法、装置及存储介质
CN112862762A (zh) * 2021-01-21 2021-05-28 博云视觉科技(青岛)有限公司 一种基于深度学习的食材特征提取及压缩方法
WO2021159681A1 (en) * 2020-02-10 2021-08-19 Zhejiang Dahua Technology Co., Ltd. Systems and methods for feature vector comparison
CN113420169A (zh) * 2021-06-22 2021-09-21 重庆紫光华山智安科技有限公司 档案存储、查询方法、系统、电子设备及介质
CN114419525A (zh) * 2022-03-30 2022-04-29 成都考拉悠然科技有限公司 一种有害视频的检测方法及其系统
CN115129921A (zh) * 2022-06-30 2022-09-30 重庆紫光华山智安科技有限公司 图片检索方法、装置、电子设备和计算机可读存储介质
CN116955577A (zh) * 2023-09-21 2023-10-27 四川中电启明星信息技术有限公司 一种基于内容检索的智能问答系统

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021159681A1 (en) * 2020-02-10 2021-08-19 Zhejiang Dahua Technology Co., Ltd. Systems and methods for feature vector comparison
CN112650863A (zh) * 2020-12-01 2021-04-13 深圳力维智联技术有限公司 跨媒介数据融合的方法、装置及存储介质
CN112862762A (zh) * 2021-01-21 2021-05-28 博云视觉科技(青岛)有限公司 一种基于深度学习的食材特征提取及压缩方法
CN113420169A (zh) * 2021-06-22 2021-09-21 重庆紫光华山智安科技有限公司 档案存储、查询方法、系统、电子设备及介质
CN114419525A (zh) * 2022-03-30 2022-04-29 成都考拉悠然科技有限公司 一种有害视频的检测方法及其系统
CN115129921A (zh) * 2022-06-30 2022-09-30 重庆紫光华山智安科技有限公司 图片检索方法、装置、电子设备和计算机可读存储介质
CN115129921B (zh) * 2022-06-30 2023-05-26 重庆紫光华山智安科技有限公司 图片检索方法、装置、电子设备和计算机可读存储介质
CN116955577A (zh) * 2023-09-21 2023-10-27 四川中电启明星信息技术有限公司 一种基于内容检索的智能问答系统
CN116955577B (zh) * 2023-09-21 2023-12-15 四川中电启明星信息技术有限公司 一种基于内容检索的智能问答系统

Similar Documents

Publication Publication Date Title
CN110647649A (zh) 特征检索方法、装置及存储介质
CN111310436B (zh) 基于人工智能的文本处理方法、装置及电子设备
CN110472002B (zh) 一种文本相似度获取方法和装置
CN111242230A (zh) 基于人工智能的图像处理方法及图像分类模型训练方法
CN113298197B (zh) 数据聚类方法、装置、设备及可读存储介质
CN110175515B (zh) 一种基于大数据的人脸识别算法
CN110119477A (zh) 一种信息推送方法、装置和存储介质
CN114329029B (zh) 对象检索方法、装置、设备及计算机存储介质
CN114358109A (zh) 特征提取模型训练、样本检索方法、装置和计算机设备
CN114282059A (zh) 视频检索的方法、装置、设备及存储介质
CN112749291A (zh) 一种图文匹配的方法和装置
CN115222443A (zh) 客户群体划分方法、装置、设备及存储介质
CN114329004A (zh) 数字指纹生成、数据推送方法、装置和存储介质
CN111260074B (zh) 一种超参数确定的方法、相关装置、设备及存储介质
CN111709473B (zh) 对象特征的聚类方法及装置
CN112394982A (zh) 生成语音识别系统的方法、装置、介质及电子设备
CN113362852A (zh) 一种用户属性识别方法和装置
CN116431827A (zh) 信息处理方法、装置、存储介质及计算机设备
US11481419B2 (en) Method and apparatus for evaluating matching degree based on artificial intelligence, device and storage medium
CN112307243A (zh) 用于检索图像的方法和装置
CN115034225A (zh) 应用于医学领域的词语处理方法、装置、电子设备和介质
US20230351752A1 (en) Moment localization in media stream
CN114723454A (zh) 身份识别方法、装置、电子设备及可读存储介质
CN111597453A (zh) 用户画像方法、装置、计算机设备及计算机可读存储介质
CN114581706B (zh) 证件识别模型的配置方法、装置、电子设备、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40020288

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination