[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN114254143A - 基于clickhouse的分布式图片搜索方法及系统 - Google Patents

基于clickhouse的分布式图片搜索方法及系统 Download PDF

Info

Publication number
CN114254143A
CN114254143A CN202111575118.3A CN202111575118A CN114254143A CN 114254143 A CN114254143 A CN 114254143A CN 202111575118 A CN202111575118 A CN 202111575118A CN 114254143 A CN114254143 A CN 114254143A
Authority
CN
China
Prior art keywords
vector
clickhouse
searched
picture
target picture
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
CN202111575118.3A
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.)
ISSA Technology Co Ltd
Original Assignee
ISSA Technology 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 ISSA Technology Co Ltd filed Critical ISSA Technology Co Ltd
Priority to CN202111575118.3A priority Critical patent/CN114254143A/zh
Publication of CN114254143A publication Critical patent/CN114254143A/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/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • 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
    • 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
    • G06F16/5838Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using colour
    • 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
    • G06F16/5862Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了基于clickhouse的分布式图片搜索方法及系统,其中方法包括:获取待搜索的目标图片,确定待搜索的目标图片的特征值;将待搜索的目标图片的特征值,进行数据转换得到第一向量;将clickhouse存储的若干个特征值,均进行数据转换得到若干个第二向量;计算第一向量与每个第二向量的相似度,选择相似度最高的第二向量所对应的图片,为待搜索的目标图片的搜索结果输出。用户在搜索图片的时候,可以在使用clicklhouse的过程中直接调用引擎,将一个特征值和clickhouse数据库的feature特征值字段作为参数传入引擎即可。

Description

基于clickhouse的分布式图片搜索方法及系统
技术领域
本发明涉及图片搜索技术领域,特别是涉及基于clickhouse的分布式图片搜索方法及系统。
背景技术
本部分的陈述仅仅是提到了与本发明相关的背景技术,并不必然构成现有技术。
clickhouse是一种列式数据库管理系统,随着clickhouse的应用越来越广泛,存储内容的多样性越来越强,其中图片的存储是不可缺少的一种。当clickhouse中存储了足够多的图片的时候,当一张图片再次到来的时候,需要一种图片搜索引擎来查找与当前图片最为匹配的图片。在clickhouse中存储图片通常是存储图片的特征值,这个特征值通过不同的算法可以得到不同的特征值,因此需要一种针对现有特征值的图片搜索引擎。
现有的图片搜索方法主要有感知哈希算法、最近邻的搜索技术等。
现有的图片搜索方法缺陷是无法对图片数据快速地进行提取特征和匹配。
发明内容
为了解决现有技术的不足,本发明提供了基于clickhouse的分布式图片搜索方法及系统;
第一方面,本发明提供了基于clickhouse的分布式图片搜索方法;
基于clickhouse的分布式图片搜索方法,包括:
获取待搜索的目标图片,确定待搜索的目标图片的特征值;
将待搜索的目标图片的特征值,进行数据转换得到第一向量;将clickhouse存储的若干个特征值,均进行数据转换得到若干个第二向量;
计算第一向量与每个第二向量的相似度,选择相似度最高的第二向量所对应的图片,为待搜索的目标图片的搜索结果输出。
第二方面,本发明提供了基于clickhouse的分布式图片搜索系统;
基于clickhouse的分布式图片搜索系统,包括:
获取模块,其被配置为:获取待搜索的目标图片,确定待搜索的目标图片的特征值;
数据转换模块,其被配置为:将待搜索的目标图片的特征值,进行数据转换得到第一向量;将clickhouse存储的若干个特征值,均进行数据转换得到若干个第二向量;
搜索模块,其被配置为:计算第一向量与每个第二向量的相似度,选择相似度最高的第二向量所对应的图片,为待搜索的目标图片的搜索结果输出。
第三方面,本发明还提供了一种电子设备,包括:
存储器,用于非暂时性存储计算机可读指令;以及
处理器,用于运行所述计算机可读指令,
其中,所述计算机可读指令被所述处理器运行时,执行上述第一方面所述的方法。
第四方面,本发明还提供了一种存储介质,非暂时性地存储计算机可读指令,其中,当所述非暂时性计算机可读指令由计算机执行时,执行第一方面所述方法的指令。
第五方面,本发明还提供了一种计算机程序产品,包括计算机程序,所述计算机程序当在一个或多个处理器上运行的时候用于实现上述第一方面所述的方法。
与现有技术相比,本发明的有益效果是:
1.用户可以在使用clicklhouse的过程中直接调用引擎,将一个特征值和clickhouse数据库的feature特征值字段作为参数传入引擎即可。
2.在一个循环中将特征值字段的字符串转换为浮点数向量并同时和已经转换为浮点数向量的用户输入特征值进行求余弦操作,减少了循环次数,提高了效率。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1为本发明的流程图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本实施例所有数据的获取都在符合法律法规和用户同意的基础上,对数据的合法应用。
术语解释:
Clickhouse是一个用于联机分析处理(OLAP)的列式数据库管理系统(columnarDBMS)。
实施例一
本实施例提供了基于clickhouse的分布式图片搜索方法;
如图1所示,基于clickhouse的分布式图片搜索方法,包括:
S101:获取待搜索的目标图片,确定待搜索的目标图片的特征值;
S102:将待搜索的目标图片的特征值,进行数据转换得到第一向量;
将clickhouse存储的若干个特征值,均进行数据转换得到若干个第二向量;
S103:计算第一向量与每个第二向量的相似度,选择相似度最高的第二向量所对应的图片,为待搜索的目标图片的搜索结果输出。
进一步地,所述S101:获取待搜索的目标图片,确定待搜索的目标图片的特征值;具体包括:
将图片中的车辆特征转换为一个二进制代码的特征值,此特征值标识唯一一辆车辆。
示例性的,所述特征,包括:颜色特征、纹理特征、轮廓特征、颜色直方图特征等一种或多种。
进一步地,所述S102:将待搜索的目标图片的特征值,进行数据转换得到第一向量;具体包括:
将待搜索的目标图片的特征值,通过强制类型转换,得到第一向量。
进一步地,所述第一向量,为浮点数向量。
应理解地,所述第一向量只能为浮点数向量,使用浮点数向量精确表示转换后的向量,否则会丧失精度,造成结果不准确
进一步地,所述将clickhouse存储的若干个特征值,均进行数据转换得到若干个第二向量;具体包括:
将clickhouse存储的若干个特征值,均通过强制类型转换,得到若干个第二向量。
进一步地,所述第二向量,为浮点数向量。
应理解地,所述第二向量,只能为浮点数向量,使用浮点数可以精确表示转换后的向量,否则会丧失精度,造成结果不准确。
应理解的,所述clickhouse存储的若干个特征值,其中每个特征值均对应一个图片。即每个特征值均为图片的特征值。
进一步地,所述S103:计算第一向量与每个第二向量的相似度,具体包括:
计算第一向量与每个第二向量的余弦相似度。
进一步地,所述S103:选择相似度最高的第二向量所对应的图片,为待搜索的目标图片的搜索结果输出;具体包括:
选择余弦相似度最高的第二向量所对应的图片,为待搜索的目标图片的搜索结果输出。
示例性地,所述将编写的引擎存放在clickhouse中与clickhouse同时进行编译,用户就可以在运行clickhouse的同时调用此引擎进行图片的搜索,只需要将clickhouse的特征值字段和用户输入特征值作为参数输入引擎即可。
对于图片,clickhouse存储的是图片根据算法识别出来的特征值,存放在feature字段中,而当一张图片再次到来的时候,根据算法得出此图片的特征值,与clickhouse数据库中的特征值进行匹配,找到相似度最高的就是要匹配的图片。分布式图片搜索引擎就是根据现有算法来对特征值进行处理,处理为一个浮点数的特征向量,对两个浮点数向量进行求余弦操作,余弦值就是一个评价两个图片匹配程度的标准,余弦值越大说明匹配程度越高。
首先是编写clickhouse图片搜索引擎angle32h或angle128h,只是版本不同,实现方法相同。在clickhouse的源码中,所有自定义方法类都要继承自IFunction类,并实现IFunction基类中的虚接口excuteImpl,所有自定义函数都实现excuteImpl接口并在其中实现自己的逻辑。这个搜索引擎实际上就是一个继承自IFunction类的自定义类,存放在clickhouse源码的Functions包下。
除了实现IFunction所定义的纯虚函数外,angle32h还需要实现一个求余弦的函数cosine,是根据两个向量的余弦公式来实现的。
一个强制类型转换函数from_bytes,功能是将字符串通过内存拷贝转换为一个浮点数向量,用来作为进行求余弦的向量。
主要是实现excuteImpl方法,首先将用户输入的特征值强制转换为一个浮点数向量。然后将clickhouse中存储的特征值字段转换为一个字符串,编写一个对字段的循环,利用clickhouse中的偏移量类来对特征值字段字符串进行分段,对每个字段值转换为浮点数向量并与输入字符串向量进行求余弦操作。
创建一个浮点数数组作为存储余弦值的容器并在方法最后返回这个数组,这即是最后的结果。
使用的方法是在使用clickhouse进行查询的时候调用angle32h或angle128h。base64Endcode是对clickhouse中feature字段存储的特征值进行编码,使得主观上更方便区分。base64Decode将编码好的特征值再次解码重新成为clickhouse中原来存储的二进制代码作为参数传入搜索引擎中,通过引擎中的求余弦算法可以求出两个特征值的余弦值作为匹配程度的标准,余弦值越大说明匹配程度越高,最大为1,说明两者完全匹配。
实施例二
本实施例提供了基于clickhouse的分布式图片搜索系统;
基于clickhouse的分布式图片搜索系统,包括:
获取模块,其被配置为:获取待搜索的目标图片,确定待搜索的目标图片的特征值;
数据转换模块,其被配置为:将待搜索的目标图片的特征值,进行数据转换得到第一向量;将clickhouse存储的若干个特征值,均进行数据转换得到若干个第二向量;
搜索模块,其被配置为:计算第一向量与每个第二向量的相似度,选择相似度最高的第二向量所对应的图片,为待搜索的目标图片的搜索结果输出。
此处需要说明的是,上述获取模块、数据转换模块和搜索模块对应于实施例一中的步骤S101至S103,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
上述实施例中对各个实施例的描述各有侧重,某个实施例中没有详述的部分可以参见其他实施例的相关描述。
所提出的系统,可以通过其他的方式实现。例如以上所描述的系统实施例仅仅是示意性的,例如上述模块的划分,仅仅为一种逻辑功能划分,实际实现时,可以有另外的划分方式,例如多个模块可以结合或者可以集成到另外一个系统,或一些特征可以忽略,或不执行。
实施例三
本实施例还提供了一种电子设备,包括:一个或多个处理器、一个或多个存储器、以及一个或多个计算机程序;其中,处理器与存储器连接,上述一个或多个计算机程序被存储在存储器中,当电子设备运行时,该处理器执行该存储器存储的一个或多个计算机程序,以使电子设备执行上述实施例一所述的方法。
应理解,本实施例中,处理器可以是中央处理单元CPU,处理器还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。
实施例一中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元及算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
实施例四
本实施例还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一所述的方法。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.基于clickhouse的分布式图片搜索方法,其特征是,包括:
获取待搜索的目标图片,确定待搜索的目标图片的特征值;
将待搜索的目标图片的特征值,进行数据转换得到第一向量;将clickhouse存储的若干个特征值,均进行数据转换得到若干个第二向量;
计算第一向量与每个第二向量的相似度,选择相似度最高的第二向量所对应的图片,为待搜索的目标图片的搜索结果输出。
2.如权利要求1所述的基于clickhouse的分布式图片搜索方法,其特征是,获取待搜索的目标图片,确定待搜索的目标图片的特征值;具体包括:
将图片中的车辆特征转换为一个二进制代码的特征值,此特征值标识唯一一辆车辆。
3.如权利要求1所述的基于clickhouse的分布式图片搜索方法,其特征是,将待搜索的目标图片的特征值,进行数据转换得到第一向量;具体包括:
将待搜索的目标图片的特征值,通过强制类型转换,得到第一向量。
4.如权利要求3所述的基于clickhouse的分布式图片搜索方法,其特征是,所述第一向量,为浮点数向量。
5.如权利要求1所述的基于clickhouse的分布式图片搜索方法,其特征是,所述将clickhouse存储的若干个特征值,均进行数据转换得到若干个第二向量;具体包括:
将clickhouse存储的若干个特征值,均通过强制类型转换,得到若干个第二向量。
6.如权利要求5所述的基于clickhouse的分布式图片搜索方法,其特征是,所述第二向量,为浮点数向量。
7.如权利要求1所述的基于clickhouse的分布式图片搜索方法,其特征是,计算第一向量与每个第二向量的相似度,具体包括:
计算第一向量与每个第二向量的余弦相似度;
或者,
选择相似度最高的第二向量所对应的图片,为待搜索的目标图片的搜索结果输出;具体包括:
选择余弦相似度最高的第二向量所对应的图片,为待搜索的目标图片的搜索结果输出。
8.基于clickhouse的分布式图片搜索系统,其特征是,包括:
获取模块,其被配置为:获取待搜索的目标图片,确定待搜索的目标图片的特征值;
数据转换模块,其被配置为:将待搜索的目标图片的特征值,进行数据转换得到第一向量;将clickhouse存储的若干个特征值,均进行数据转换得到若干个第二向量;
搜索模块,其被配置为:计算第一向量与每个第二向量的相似度,选择相似度最高的第二向量所对应的图片,为待搜索的目标图片的搜索结果输出。
9.一种电子设备,其特征是,包括:
存储器,用于非暂时性存储计算机可读指令;以及
处理器,用于运行所述计算机可读指令,
其中,所述计算机可读指令被所述处理器运行时,执行上述权利要求1-7任一项所述的方法。
10.一种存储介质,其特征是,非暂时性地存储计算机可读指令,其中,当所述非暂时性计算机可读指令由计算机执行时,执行权利要求1-7任一项所述方法的指令。
CN202111575118.3A 2021-12-21 2021-12-21 基于clickhouse的分布式图片搜索方法及系统 Pending CN114254143A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111575118.3A CN114254143A (zh) 2021-12-21 2021-12-21 基于clickhouse的分布式图片搜索方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111575118.3A CN114254143A (zh) 2021-12-21 2021-12-21 基于clickhouse的分布式图片搜索方法及系统

Publications (1)

Publication Number Publication Date
CN114254143A true CN114254143A (zh) 2022-03-29

Family

ID=80796499

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111575118.3A Pending CN114254143A (zh) 2021-12-21 2021-12-21 基于clickhouse的分布式图片搜索方法及系统

Country Status (1)

Country Link
CN (1) CN114254143A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024139299A1 (zh) * 2022-12-29 2024-07-04 青岛云天励飞科技有限公司 图像搜索方法、装置、计算机设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024139299A1 (zh) * 2022-12-29 2024-07-04 青岛云天励飞科技有限公司 图像搜索方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
US11023801B2 (en) Data processing method and apparatus
CN111160012B (zh) 医学术语识别方法、装置和电子设备
CN109117801A (zh) 人脸识别的方法、装置、终端及计算机可读存储介质
Klaiber et al. A resource-efficient hardware architecture for connected component analysis
US20220236964A1 (en) Semantic code search based on augmented programming language corpus
CN111144493B (zh) 一种自动识别算法指标测试的方法、存储介质及电子终端
CN114969417B (zh) 图像重排序方法、相关设备及计算机可读存储介质
CN111179270A (zh) 基于注意力机制的图像共分割方法和装置
CN107861750A (zh) 一种标签管理方法、标签管理装置及智能终端
CN111723227B (zh) 基于人工智能和互联网的数据分析方法及云计算服务平台
CN114254143A (zh) 基于clickhouse的分布式图片搜索方法及系统
CN111222558A (zh) 图像处理方法及存储介质
CN114611500A (zh) 表达式处理方法、装置、电子设备及计算机可读存储介质
CN110634018A (zh) 一种流失用户的特征刻画方法、识别方法及相关装置
CN114358252A (zh) 目标神经网络模型中的操作执行方法及装置、存储介质
CN111680645B (zh) 一种垃圾分类处理方法及装置
CN117807091A (zh) 数据的关联方法及装置
US20120030235A1 (en) Priority search trees
CN111190896A (zh) 数据处理方法、装置、存储介质和计算机设备
CN116756436A (zh) 一种智能空间搜索方法和引擎
US11386155B2 (en) Filter evaluation in a database system
CN113392250A (zh) 一种基于深度学习的矢量图检索方法及系统
CN114117063A (zh) 实体对齐方法、装置、电子设备及计算机可读存储介质
CN113988316A (zh) 对机器学习模型训练的方法和装置
CN112230895A (zh) 一种el表达式解析方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination