CN112395440A - 一种缓存方法、高效图像语义检索方法和系统 - Google Patents

一种缓存方法、高效图像语义检索方法和系统 Download PDF

Info

Publication number
CN112395440A
CN112395440A CN202011333525.9A CN202011333525A CN112395440A CN 112395440 A CN112395440 A CN 112395440A CN 202011333525 A CN202011333525 A CN 202011333525A CN 112395440 A CN112395440 A CN 112395440A
Authority
CN
China
Prior art keywords
retrieval
cache
key
hash code
binary
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
CN202011333525.9A
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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN202011333525.9A priority Critical patent/CN112395440A/zh
Publication of CN112395440A publication Critical patent/CN112395440A/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/51Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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
    • 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/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/163Server or database system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data

Landscapes

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

Abstract

本发明公开了一种缓存方法、高效图像语义检索方法和系统,属于语义存储技术领域。本发明利用进制转换压缩哈希码将原本是01构成的字符串(或数组),压缩为十进制数,存储于整型变量中。这样,单个检索结果经压缩后,所需要的存储空间大大减少,使得在可接受的存储开销范围内,存储大部分检索结果,将缓存的高速读写特性发挥到极致。本发明利用缓存的读写效率高的特点,我们将每次检索元数据得到的检索结果存入缓存中。这样,当下一次检索需求来临时,首先检查缓存中是否已经存储过其检索结果,如果存在,无论检索条件如何复杂,都可以直接从缓存中读取,避免耗时的检索过程。

Description

一种缓存方法、高效图像语义检索方法和系统
技术领域
本发明属于语义存储技术领域,更具体地,涉及一种缓存方法、高效图像语义检索方法和系统。
背景技术
图像由于其丰富的语义内容而经常用于数据分析。由于图像文件的大小相对较大,因此在图像处理之前读取所有图像的等待时间已逐渐成为性能瓶颈,尤其是在数据量不断增加的情况下。以1亿张大小为1MB的图像为例,腾讯公司的服务器上SATA硬盘的平均顺序读取带宽约为220MB/s,这大约需要5.26天读取这些图像。尽管分布式存储为该问题提供了一个初步的解决方案,但是,当今与日俱增的图像数据量以及对分布式存储的扩展使这一问题依然无法完美解决。因此,我们相信需要一个更基本的解决方案来在单个节点上解决此问题,从而反过来将补充和增强分布式解决方案。
为解决上述问题,目前的一种技术方案是在磁盘上读取分析图片之前,提前对元数据进行分析,筛选出我们需要元数据,再进入磁盘读取对应的图片,以此来减少读取无关图片所耗费的时间。具体地,该方案由两部分构成,图像哈希码提取和哈希码存储。图像哈希码提取目的在于提取出能体现图像语义关联的哈希码,将其作为图像的元数据,一般使用相似性哈希算法,得到每个图像对应的哈希码。哈希码存储目的在于持久化地将哈希码组织、保存起来,同时保证后续的高效查询、读取,一般使用树形结构或图结构存储。结合以上两点,原本需要的图片的比对过程就简化到了哈希码之间的比对计算,根据比对结果,筛选出所感兴趣的哈希码,再进入硬盘中读取出其对应的图片,大大提高了图像语义内容的分析效率。
然而,在大数据环境下,即使是检索元数据本身也需要不少的时间开销。随着数据量的与日俱增、检索条件的复杂度提升,其耗时更是会显著增加。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种缓存方法、高效图像语义检索方法和系统,其目的在于利用缓存技术,以少量的存储开销为代价,提高元数据的检索效率,以此解决大数据环境下检索所有元数据耗时过长的问题。
为实现上述目的,按照本发明的第一方面,提供了一种缓存方法,该方法包括:
每次得到语义检索结果之后,将本次检索的检索对象哈希码视为二进制数,再转化为十进制数后作为key,将本次检索的检索结果中的各个哈希码按照顺序首尾拼接,将拼接后的字符串视为二进制数,再转化为十进制数后作为value,将key-value存储到缓存中。
优选地,使用hashmap结构存储key-value对。
优选地,当缓存占用达到原始图片集大小的第一设定阈值,使用LRU算法对key-value对进行替换。
为实现上述目的,按照本发明的第二方面,提供了一种高效图像语义检索方法,当查询需求来临时,先在缓存中查看是否已经有相对应的key,如果有,取出它的value作为检索结果,否则,将在检索结束后,采用如第一方面所述的方法压缩检索对象和检索结果,组成key-value存储到缓存中。
优选地,所述当查询需求来临时,先在缓存中查看是否已经有相对应的key,具体如下:
将检索对象哈希码视为二进制数,再转化为十进制数后,与缓存中的key进行查找。
优选地,所述取出它的value作为检索结果具体如下:
对于value,将十进制的value转化为二进制数,当转换后二进制0-1串的长度不是哈希码的最优长度的整数倍时,在二进制数的首端进行补零,使其长度正好为哈希码的最优长度的整数倍,补零数量低于哈希码的最优长度;按照哈希码的最优长度对二进制0-1串进行分割,还原得到相似性哈希码。
为实现上述目的,按照本发明的第三方面,提供了一种高效图像语义检索系统,包括:计算机可读存储介质和处理器;
所述计算机可读存储介质用于存储可执行指令;
所述处理器用于读取所述计算机可读存储介质中存储的可执行指令,执行第二方面所述的高效图像语义检索方法。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明利用进制转换压缩哈希码将原本是01构成的字符串(或数组),压缩为十进制数,存储于整型变量中。这样,单个检索结果经压缩后,所需要的存储空间大大减少,使得在可接受的存储开销范围内,存储大部分检索结果,将缓存的高速读写特性发挥到极致。
(2)本发明利用缓存的读写效率高的特点,将每次检索元数据得到的检索结果存入缓存中。这样,当下一次检索需求来临时,首先检查缓存中是否已经存储过其检索结果,如果存在,无论检索条件如何复杂,都可以直接从缓存中读取,避免耗时的检索过程,进而提高图像语义检索的效率。
附图说明
图1为本发明提供的检索需求压缩方法示意图;
图2为本发明提供的检索结果压缩方法示意图;
图3为本发明提供的缓存存储对象示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
首先,对本发明涉及的术语进行如下解释:
检索对象:待分析的图片。
检索需求:指用于查找的源数据,在计算机中的具体形式为哈希码。
检索条件:指定义哈希码相似的条件,如汉明距离小于8等。
检索结果:指检索需求查询得到的目标数据集,检索结果在计算机中的具体形式为符合检索条件的一组哈希码,它们一般以链表或者数组的形式保存。
哈希码:由01字符构成的定长字符串或01构成的定长数组。
本发明提供了一种缓存方法,该方法包括:每次得到语义检索结果之后,将本次检索的检索对象哈希码视为二进制数,再转化为十进制数后作为key,将本次检索的检索结果中的各个哈希码按照顺序首尾拼接,将拼接后的字符串视为二进制数,再转化为十进制数后作为value,将key-value存储到缓存中。
如图1所示,对于缓存中由01构成的key,将其以二进制数看待,并转化为十进制数存储于整型变量中。如图2所示,对于缓存中由哈希码数组构成的value,本实施例先将这些哈希码拼接成一个长字符串,再将其以二进制看待,转化为十进制数存储于整型变量中。
当查询需求来临时,先将该哈希码压缩为十进制整型变量,在缓存器中查找是否已经存在。如果存在,则返回它的value,将value解压为01构成的字符长串,并按原哈希码将长串分割为定长的哈希码数组;如果不存在,则进行检索过程,再按前面提到的压缩方法压缩检索需求和检索结果,组成键值对存储于缓存中。
图像语义检索结果为与检索图像的哈希码相似性高的哈希码。哈希码相似性的判断方式有多种,本实施例采用汉明距离,当汉明距离小于设定阈值(实施中为8),则认为两个哈希码相似。如图3所示,该缓存以key-value形式存储了检索需求和检索结果。
优选地,使用hashmap结构存储key-value对,以达到O(1)的读写效率。
优选地,当缓存占用达到原始图片集大小的第一设定阈值(实施例为2%),使用LRU算法对key-value对进行替换。
尽管存储空间得到了优化,在某些对存储开销要求严苛的环境下,还是可能出现缓存不足以存储所有检索结果的现象。为此,使用简单高效的LRU淘汰策略,以极少的LRU维护代价,淘汰不经常使用的检索结果,保证缓存有较高的命中率,进而保证高效的元数据检索。
本发明提供了一种高效图像语义检索方法,当查询需求来临时,先在缓存中查看是否已经有相对应的key,如果有,取出它的value作为检索结果,否则,将在检索结束后,采用如上述方法压缩检索对象和检索结果,组成key-value存储到缓存中。
优选地,所述当查询需求来临时,先在缓存中查看是否已经有相对应的key,具体如下:将检索对象哈希码视为二进制数,再转化为十进制数后,与缓存中的key进行查找。
优选地,所述取出它的value作为检索结果具体如下:对于value,将十进制的value转化为二进制数,当转换后二进制0-1串的长度不是哈希码的最优长度(实施例为48)的整数倍时,在二进制数的首端进行补零,使其长度正好为哈希码的最优长度的整数倍,补零数量低于哈希码的最优长度;按照哈希码的最优长度对二进制0-1串进行分割,还原得到相似性哈希码。
本发明提供了一种高效图像语义检索系统,包括:计算机可读存储介质和处理器;所述计算机可读存储介质用于存储可执行指令;所述处理器用于读取所述计算机可读存储介质中存储的可执行指令,执行上述高效图像语义检索方法。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种缓存方法,其特征在于,该方法包括:
每次得到语义检索结果之后,将本次检索的检索对象哈希码视为二进制数,再转化为十进制数后作为key,将本次检索的检索结果中的各个哈希码按照顺序首尾拼接,将拼接后的字符串视为二进制数,再转化为十进制数后作为value,将key-value存储到缓存中。
2.如权利要求1所述的方法,其特征在于,使用hashmap结构存储key-value对。
3.如权利要求1或2所述的方法,其特征在于,当缓存占用达到原始图片集大小的第一设定阈值,使用LRU算法对key-value对进行替换。
4.一种高效图像语义检索方法,其特征在于,当查询需求来临时,先在缓存中查看是否已经有相对应的key,如果有,取出它的value作为检索结果,否则,将在检索结束后,采用如权利要求1至3任一项所述的方法压缩检索对象和检索结果,组成key-value存储到缓存中。
5.如权利要求4所述的方法,其特征在于,所述当查询需求来临时,先在缓存中查看是否已经有相对应的key,具体如下:
将检索对象哈希码视为二进制数,再转化为十进制数后,与缓存中的key进行查找。
6.如权利要求4或5所述的方法,其特征在于,所述取出它的value作为检索结果具体如下:
对于value,将十进制的value转化为二进制数,当转换后二进制0-1串的长度不是哈希码的最优长度的整数倍时,在二进制数的首端进行补零,使其长度正好为哈希码的最优长度的整数倍,补零数量低于哈希码的最优长度;按照哈希码的最优长度对二进制0-1串进行分割,还原得到相似性哈希码。
7.一种高效图像语义检索系统,其特征在于,包括:计算机可读存储介质和处理器;
所述计算机可读存储介质用于存储可执行指令;
所述处理器用于读取所述计算机可读存储介质中存储的可执行指令,执行权利要求4至6任一项所述的高效图像语义检索方法。
CN202011333525.9A 2020-11-24 2020-11-24 一种缓存方法、高效图像语义检索方法和系统 Pending CN112395440A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011333525.9A CN112395440A (zh) 2020-11-24 2020-11-24 一种缓存方法、高效图像语义检索方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011333525.9A CN112395440A (zh) 2020-11-24 2020-11-24 一种缓存方法、高效图像语义检索方法和系统

Publications (1)

Publication Number Publication Date
CN112395440A true CN112395440A (zh) 2021-02-23

Family

ID=74607785

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011333525.9A Pending CN112395440A (zh) 2020-11-24 2020-11-24 一种缓存方法、高效图像语义检索方法和系统

Country Status (1)

Country Link
CN (1) CN112395440A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113806408A (zh) * 2021-09-27 2021-12-17 济南浪潮数据技术有限公司 一种数据缓存方法、系统、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107784073A (zh) * 2017-09-21 2018-03-09 中国平安财产保险股份有限公司 一种本地缓存的数据查询方法、存储介质和服务器
CN109783667A (zh) * 2019-01-14 2019-05-21 西安电子科技大学 一种图像存储和检索的方法、客户端及系统
CN110413807A (zh) * 2019-06-24 2019-11-05 华中科技大学 一种基于内容语义元数据的图像查询方法与系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107784073A (zh) * 2017-09-21 2018-03-09 中国平安财产保险股份有限公司 一种本地缓存的数据查询方法、存储介质和服务器
CN109783667A (zh) * 2019-01-14 2019-05-21 西安电子科技大学 一种图像存储和检索的方法、客户端及系统
CN110413807A (zh) * 2019-06-24 2019-11-05 华中科技大学 一种基于内容语义元数据的图像查询方法与系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113806408A (zh) * 2021-09-27 2021-12-17 济南浪潮数据技术有限公司 一种数据缓存方法、系统、设备及存储介质

Similar Documents

Publication Publication Date Title
US8244530B2 (en) Efficient indexing of documents with similar content
US20040205044A1 (en) Method for storing inverted index, method for on-line updating the same and inverted index mechanism
CN108710639B (zh) 一种基于Ceph的海量小文件存取优化方法
US9262511B2 (en) System and method for indexing streams containing unstructured text data
JP2015537283A (ja) 階層キャッシュを用いたメールのインデックス化および検索
CN110569245A (zh) 重复数据删除系统中基于强化学习的指纹索引预取方法
CN103678694A (zh) 视频资源的倒排索引文件建立方法及其系统
CN113553476B (zh) 一种利用哈希减少写停顿的键值存储方法
US7783589B2 (en) Inverted index processing
JP2022016325A (ja) データ圧縮方法および装置、ならびにコンピュータデバイス
CN113901279A (zh) 一种图数据库的检索方法和装置
CN115168319A (zh) 一种数据库系统、数据处理方法及电子设备
CN105912696A (zh) 一种基于对数归并的dns索引创建方法及查询方法
CN112395440A (zh) 一种缓存方法、高效图像语义检索方法和系统
CN106909623B (zh) 一种支持高效海量数据分析和检索的数据装置及数据存储方法
CN115774699B (zh) 数据库共享字典压缩方法、装置、电子设备及存储介质
Carter et al. Nanosecond indexing of graph data with hash maps and VLists
KR20080026772A (ko) Lempel-Ziv 압축 방법의 복원 속도를 보완한압축 방법
CN112650711A (zh) 一种基于Redis和HDFS的海量小文件存储方法
Foufoulas et al. Adaptive compression for fast scans on string columns
CN107506156B (zh) 一种块设备的io优化方法
Li et al. Improving the Restore Performance via Physical-Locality Middleware for Backup Systems
CN112527949B (zh) 数据存储与检索方法、装置、计算机设备及存储介质
US20240070135A1 (en) Hash engine for conducting point queries
CN115455031B (zh) 一种Doris的数据查询方法、装置、存储介质及设备

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