Electronic device, and method for operating electronic device
By organizing feature vectors into clusters with guide points, the electronic device optimizes vector search efficiency, addressing the inefficiencies of arbitrary searching and reducing processing time and resource use.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- SAMSUNG ELECTRONICS CO LTD
- Filing Date
- 2025-10-17
- Publication Date
- 2026-05-07
AI Technical Summary
Existing electronic devices face inefficiencies in performing vector search due to the need to search through all feature vectors in arbitrary order, leading to prolonged processing times and resource consumption, particularly in on-device AI applications.
The electronic device organizes feature vectors into clusters with predetermined guide point feature vectors, arranging them in proximity order, allowing for efficient searching by prioritizing vectors adjacent to the guide points, reducing the need to calculate similarity across all vectors.
This approach significantly reduces search time and resource consumption by focusing on vectors close to guide points, enhancing the efficiency of vector search operations.
Smart Images

Figure KR2025016463_07052026_PF_FP_ABST
Abstract
Description
Electronic device and method of operation of electronic device
[0001] Various embodiments relate to an electronic device and a method of operation thereof, and more specifically, to an electronic device and a method of operation thereof for efficiently performing vector search.
[0002] Vector search plays a crucial role in modern computing environments, and its importance is becoming increasingly prominent, particularly in on-device AI applications. These applications prefer on-device processing over cloud-based processing due to reasons such as user privacy, the need for real-time processing, and connectivity limitations. Vector search is an essential function in various AI tasks, including natural language processing, image recognition, and personalized recommendation systems. These tasks require the process of rapidly identifying nearest neighbors within massive datasets. Therefore, efficient vector search algorithms hold even greater significance in on-device AI environments.
[0003] According to one embodiment, the electronic device may include a memory for storing one or more instructions; and at least one processor including a processing circuit.
[0004] According to one embodiment, by having at least one processor execute one or more instructions individually and / or collectively, the electronic device may provide a cluster in which a predetermined number of guide point feature vectors are defined among the plurality of feature vectors in a cluster comprising a plurality of feature vectors, and the feature vectors are arranged in order of proximity to each guide point feature vector.
[0005] According to one embodiment, by having at least one processor execute one or more instructions individually and / or collectively, the electronic device can obtain a target feature vector corresponding to the query requested input data.
[0006] According to one embodiment, by having at least one processor execute one or more instructions individually and / or collectively, the electronic device can identify a first guide point feature vector close to the target feature vector.
[0007] According to one embodiment, by having at least one processor execute the one or more instructions individually and / or collectively, the electronic device can obtain a result feature vector by searching in order of feature vectors adjacent to a first guide point feature vector close to the target feature vector.
[0008] A method for operating an electronic device according to one embodiment may include the operation of providing a cluster in which a predetermined number of guide point feature vectors are defined among the plurality of feature vectors, and the feature vectors are arranged in order of proximity to each guide point feature vector.
[0009] According to one embodiment, a method for operating an electronic device may include an operation of acquiring a target feature vector corresponding to query requested input data.
[0010] According to one embodiment, a method for operating an electronic device may include an operation of identifying a first guide point feature vector close to the target feature vector.
[0011] According to one embodiment, a method for operating an electronic device may include the operation of obtaining a result feature vector by searching in order of feature vectors adjacent to a first guide point feature vector close to the target feature vector.
[0012] According to one embodiment, in a non-transient computer-readable recording medium storing one or more instructions executed by at least one processor of an electronic device, the electronic device can obtain a result feature vector by, through which the one or more instructions are executed by at least one processor of the electronic device, provide a cluster in which a predetermined number of guide point feature vectors are defined among the plurality of feature vectors in a cluster including a plurality of feature vectors, and feature vectors are arranged in order of proximity to each guide point feature vector, obtain a target feature vector corresponding to the input data requested for query, identify a first guide point feature vector close to the target feature vector, and search in the order of feature vectors adjacent to the first guide point feature vector close to the target feature vector.
[0013] The present disclosure can be easily understood through the combination of the following detailed description and the accompanying drawings, and the reference numerals indicate structural elements. Furthermore, the above and other aspects, features, and advantages of specific embodiments of the present disclosure will become more apparent by referring to the following detailed description together with the accompanying drawings.
[0014] FIG. 1 is a reference diagram for explaining the operation of an electronic device according to one embodiment.
[0015] FIG. 2 is a schematic block diagram of an electronic device according to one embodiment.
[0016] FIG. 3 is an example of a specific block diagram of an electronic device according to one embodiment.
[0017] FIG. 4 is a reference diagram for explaining an array of feature vectors stored in storage according to one embodiment.
[0018] FIG. 5 is a reference diagram for explaining a method of searching using a guide point-based feature vector according to one embodiment.
[0019] FIG. 6 shows an example of a flowchart of a method for operating an electronic device according to one embodiment.
[0020] FIG. 7 shows an example of a feature vector space according to one embodiment.
[0021] FIG. 8 is a reference diagram for explaining a method of specifying guide points in a cluster according to one embodiment.
[0022] FIG. 9 is a diagram showing feature vectors close to a guide point according to one embodiment.
[0023] FIG. 10 shows an example of a feature vector file stored in storage according to one embodiment.
[0024] FIG. 11 shows an example of a feature vector file stored in storage according to one embodiment.
[0025] FIG. 12 is an example of a flowchart of a method for searching feature vectors based on guide points according to one embodiment.
[0026] FIG. 13 shows an example of a block loaded into memory from a file according to one embodiment.
[0027] FIG. 14 shows an example of a block loaded into memory from a file according to one embodiment.
[0028] The terms used in this disclosure will be briefly explained, and the invention will be described in detail.
[0029] The terms used in this invention have been selected based on currently widely used general terms, taking into account their functions within the invention; however, these terms may vary depending on the intent of those skilled in the art, case law, the emergence of new technologies, etc. Additionally, in specific cases, terms have been arbitrarily selected by the applicant, and in such cases, their meanings will be described in detail in the relevant description of the invention. Therefore, the terms used in this invention should be defined not merely by their names, but based on their meanings and the overall content of the invention.
[0030] When a part of a specification is described as "including" a certain component, this means that, unless specifically stated otherwise, it does not exclude other components but may include additional components. Furthermore, terms such as "...part" or "module" as used in the specification refer to a unit that processes at least one function or operation, and this may be implemented in hardware or software, or as a combination of hardware and software.
[0031] In the present disclosure, the expression “at least one of a, b, or c” may refer to “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “a, b, and c all”, or variations thereof.
[0032] The following describes embodiments with reference to the attached drawings so that those skilled in the art can easily implement the present invention. However, the present invention may be embodied in various different forms and is not limited to the embodiments described herein. Furthermore, in order to clearly explain the present invention in the drawings, parts unrelated to the explanation have been omitted, and similar parts throughout the specification are denoted by similar reference numerals.
[0033] In this disclosure, the term "user" refers to a person who controls the function or operation of a computing device or electronic device using a control device, and may include a viewer, an administrator, or an installation technician.
[0034] FIG. 1 is a reference diagram for explaining the operation of an electronic device 100 according to various embodiments.
[0035] Referring to FIG. 1, a user application of an electronic device 100 can extract feature vectors 20 corresponding to each object contained in an image by extracting features from an image. For example, the user application can extract feature vectors 20 corresponding to the faces of each person in a photograph by extracting features from a photograph of people. Each feature vector 20 may be tagged or labeled to identify the person corresponding to each face. The electronic device 100 may store a set of labeled feature vectors in storage (e.g., memory) 110 by generating and / or updating an internal index of the labeled feature vectors. The set of feature vectors may be stored by being divided into one or more clusters by clustering units having similar features.
[0036] Later, when the user application obtains new photo 30 containing a person that the application needs to identify, the user application can extract a target feature vector 40 corresponding to the face of the person in the new photo by extracting features from the new photo 30. The user application can perform a query to request the determination of the corresponding label for the target feature vector 40.
[0037] The electronic device 100 can determine the corresponding label by performing classification on the target feature vector 40. For example, the target feature vector 40 can be classified using Nearest Neighbor Search. Nearest Neighbor Search can be used to search a pre-processed set of data objects to find the object most similar to the target data object based on the Euclidean distance between the corresponding feature vectors. For example, Nearest Neighbor Search can be performed on a set of labeled feature vectors representing objects extracted from visual data to find the object most similar to an unlabeled feature vector extracted from recently captured visual data. In this way, the object represented by the unlabeled feature vector can be identified based on the label of the most similar labeled feature vector. The electronic device 100 can return the label corresponding to the target feature vector 40 in response to a query from a user application.
[0038] However, in order to identify a label corresponding to the target feature vector 40 or to find feature vectors adjacent to the target feature vector 40, the electronic device 100 may need to search for feature vectors included in all clusters stored in storage 110. That is, the electronic device 100 loads feature vectors of a fixed block size for all clusters stored in storage 100 into memory 120 and determines the similarity of each loaded feature vector with the target feature vector; this operation may need to be performed for all feature vectors included in all clusters stored in storage 100. Therefore, loading the feature vectors stored in storage 110 into memory 120 may take a long time, and since similarity calculations must be performed for all feature vectors, it may also consume a large amount of processing resources and time.
[0039] Accordingly, the present invention aims to provide an electronic device and a method of operation thereof that enable finding satisfactory result vectors without searching all feature vectors by searching the feature vectors included in the clusters in a predetermined order, instead of searching the feature vectors of the clusters included in the search space in an arbitrary order according to the embodiments disclosed in the present invention.
[0040] According to one embodiment, an electronic device may provide a cluster comprising a plurality of feature vectors, wherein a predetermined number of guide point feature vectors are defined among the plurality of feature vectors, and the feature vectors are arranged in order of proximity to each guide point feature vector.
[0041] According to one embodiment, the electronic device can obtain a target feature vector corresponding to query requested input data, identify a first guide point feature vector close to the target feature vector, and obtain a result feature vector by searching in order of feature vectors adjacent to the first guide point feature vector close to the target feature vector.
[0042] According to one embodiment, the electronic device may designate a fixed number of feature vectors that are furthest from the center of each cluster as the guide point vectors, and record the feature vectors within the cluster in order of distance based on the guide point vectors.
[0043] According to one embodiment, the electronic device may divide the feature vector space of each cluster into a predetermined number of regions based on the center of the feature vector space of each cluster, and designate one guide point feature vector for each of the predetermined number of regions.
[0044] According to one embodiment, the electronic device loads blocks of feature vectors from storage into memory in units of a predetermined block size in the order of feature vectors close to the guide point vector, and calculates the similarity with the target feature vector in the order of vectors close to the guide point vector in the loaded blocks, thereby obtaining one or more vectors close to the target feature vector.
[0045] FIG. 2 is a schematic block diagram of an electronic device according to various embodiments.
[0046] Referring to FIG. 2, the electronic device 100 may include storage 110, memory 120, a processor (e.g., including a processing circuit) 130, and a communication interface (e.g., including a communication circuit) 140.
[0047] Storage 110 may include all types of devices for storing data. For example, Storage 110 may include persistent storage devices capable of continuously storing data (e.g., hard disk drives (HDDs), solid-state drives (SSDs), distributed file systems).
[0048] According to one embodiment, storage 110 may include a feature vector index. The feature vector index may include a representation of the feature space for a specific set of feature vectors, which can be used to manage access to the feature vectors in an efficient manner. For example, each feature vector may be a vector containing n numeric values representing unique features associated with some data set. For example, in some embodiments, the set of feature vectors may include high-dimensional feature vectors used to represent information contained in visual data, such as objects or actions contained in images or videos. However, in other embodiments, the set of feature vectors may be used to represent information associated with any type of data, and the feature vectors may include any number of dimensions.
[0049] Memory 120 can store programs for processing and controlling processor 130, and can store data input to or output from electronic device 100. In addition, memory 120 can store data necessary for the operation of electronic device 100.
[0050] Memory 120 may include at least one type of storage medium among flash memory type, hard disk type, multimedia card micro type, card type memory (e.g., SD or XD memory, etc.), RAM (Random Access Memory), SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic memory, magnetic disk, and optical disk.
[0051] Processor 130 includes various processing circuits and controls the overall operation of electronic device 100. For example, processor 130 can perform the functions of electronic device 100 described in this disclosure by executing one or more instructions stored in memory 120.
[0052] Processor 130 may include various processing circuits and / or multiple processors. For example, the term "processor" as used herein, including in the claims, may include at least one processor and various processing circuits. In at least one processor, one or more processors may be configured to perform the various functions described herein in a distributed manner, individually and / or collectively. As used herein, "processor," "at least one processor," and "one or more processors" may be configured to perform various functions. However, these terms cover, for example but without limitation, situations where one processor performs some of the functions and other processor(s) perform other parts of the functions, and situations where a single processor can perform all functions. Additionally, at least one processor may include a combination of processors performing various functions of the disclosed functions in a distributed manner. At least one processor may execute program instructions to achieve or perform various functions.
[0053] In an embodiment of the present disclosure, the processor 130 stores one or more instructions in an internally provided memory and can control the operation of a display device to be performed by executing one or more instructions stored in the internally provided memory. That is, the processor 130 can perform a predetermined operation by executing at least one instruction or program stored in an internal memory or memory 120 provided within the processor 130.
[0054] According to one embodiment, the processor 130 can perform the operation of the electronic device 100 disclosed in the present disclosure by executing one or more instructions stored in memory 120.
[0055] According to one embodiment, at least one processor 130 can execute one or more instructions stored in memory 120 to provide a cluster in which a predetermined number of guide point feature vectors are defined among the plurality of feature vectors in a cluster including a plurality of feature vectors, and feature vectors are arranged in order of proximity to each guide point feature vector, obtain a target feature vector corresponding to the input data requested for querying, identify a first guide point feature vector close to the target feature vector, and obtain a result feature vector by searching in the order of feature vectors adjacent to the first guide point feature vector close to the target feature vector.
[0056] According to one embodiment, at least one processor 130 can execute one or more instructions stored in memory 120 to designate a predetermined number of feature vectors that are furthest from the center of each cluster as the guide point vectors, and sort the feature vectors within the cluster in order of distance based on the guide point vectors and record them in storage 110.
[0057] According to one embodiment, at least one processor 130 can divide the feature vector space of each cluster into a predetermined number of regions based on the center of the feature vector space of each cluster by executing one or more instructions stored in memory 120, and can designate one guide point feature vector for each of the predetermined number of regions.
[0058] According to one embodiment, at least one processor 130 can load blocks of feature vectors from storage into memory in units of a predetermined block size in the order of feature vectors close to the guide point vector by executing one or more instructions stored in memory 120, and can obtain one or more vectors close to the target feature vector by calculating similarity with the vectors close to the guide point vector in the loaded blocks.
[0059] The communication interface 140 may include various communication circuits for performing communication with an external device. Here, 'communication' may mean the operation of transmitting and / or receiving data, signals, requests, and / or commands, etc.
[0060] For example, the communication interface 140 may include at least one of a communication module, a communication circuit, a communication device, an input / output port, and / or an input / output plug for performing wired communication with an external device.
[0061] For example, the communication interface 140 may include at least one wireless communication module, wireless communication circuit, or wireless communication device that performs wireless communication with an external device.
[0062] For example, the communication interface 140 may include a short-range communication module, for example, an IR (infrared) communication module, capable of receiving control commands from a remote controller located at a short distance, for example, an input device. In this case, the communication interface 140 may receive control signals from the remote controller.
[0063] For example, the communication interface 140 may include at least one communication module that performs communication according to wireless communication standards such as Bluetooth, Wi-Fi, BLE (Bluetooth Low Energy), NFC / RFID, Wi-Fi Direct, UWB, or ZIGBEE. Alternatively, the communication interface 140 may further include a communication module that performs communication with a server to support long-distance communication according to long-distance communication standards. For example, the communication interface 140 may include a communication module that performs communication through a network for internet communication. Additionally, the communication interface 140 may include a communication module that performs communication through a communication network according to communication standards such as 3G, 4G, 5G, and / or 6G.
[0064] For example, the communication interface 140 may include at least one port for connecting to an external device via a wired cable in order to communicate with an external device via a wired connection. For example, the communication interface 140 may include at least one of an HDMI port (High-Definition Multimedia Interface port), a component jack, a PC port, a DisplayPort, and a USB port. Accordingly, the communication interface 140 can communicate with an external device connected via a wired connection through at least one port. Here, a port may refer to a physical device configuration into which a cable, a communication line, or a plug, etc., can be connected or inserted.
[0065] As described above, the communication interface 140 may include at least one support element for supporting communication with an external device. Here, the support element may include the aforementioned communication module, communication circuit, communication device, port (for input / output of data), cable port (for input / output of data), plug (for input / output of data), etc. For example, the at least one support element included in the communication interface 140 may be an Ethernet communication module, a Wi-Fi communication module, a Bluetooth communication module, an IR communication module, a USB port, a tuner (or broadcast receiver), an HDMI port, a DP (display port), a DVI (digital visual interface) port, etc.
[0066] The electronic device 100 may be any type of device that performs functions including a processor and memory. The electronic device 100 may be a stationary or portable device. For example, the electronic device 100 may represent a device equipped with a display capable of displaying image content, video content, game content, graphic content, etc. The electronic device 100 may include various types of electronic devices capable of receiving and outputting content, such as televisions like network TV, smart TV, internet TV, web TV, and IPTV; computers like desktops, laptops, and tablets; smartphones, cellular phones; game players, music players, video players; medical equipment; home appliances, etc.
[0067] The block diagram of the electronic device 100 illustrated in FIG. 2 is a block diagram for one embodiment. Each component of the block diagram may be integrated, added, or omitted according to the specifications of the actual implemented electronic device 100. For example, as needed, two or more components may be combined into a single component, or a single component may be subdivided into two or more components. Furthermore, the functions performed in each block are intended to explain the embodiments, and the specific operations or devices thereof do not limit the scope of the present invention.
[0068] FIG. 3 is an example of a specific block diagram of an electronic device according to one embodiment.
[0069] Referring to FIG. 3, the electronic device 100 may include storage 110, memory 120, a processor (e.g., including a processing circuit) 130, a communication interface (e.g., including a communication circuit) 140, a video processing unit (e.g., including a video processing circuit) 150, a display 155, an audio processing unit (e.g., including an audio processing circuit) 160, an audio output unit (e.g., including an audio output circuit) 165, an input / output interface (e.g., including an input / output circuit) 170, and a sensing unit 180.
[0070] The communication interface 140 may include various communication circuits included in one or more modules that enable wireless communication between the electronic device 100 and a wireless communication system or between the electronic device 100 and a network where another electronic device is located. For example, the communication interface 140 may include a mobile communication module 141, a wireless internet module 142, a Wi-Fi communication module 143, and a Bluetooth communication module 144.
[0071] A mobile communication module 141 transmits and receives wireless signals with at least one of a base station, an external terminal, and a server on a mobile communication network. The wireless signals may include various forms of data such as voice call signals, video call call signals, or text / multimedia message transmission and reception.
[0072] The wireless internet module 142 refers to a module for wireless internet access, which can be embedded in or externally mounted on a device. Wireless internet technologies that may be used include WLAN (Wireless LAN) (WiFi), Wibro (Wireless broadband), WiMAX (World Interoperability for Microwave Access), and HSDPA (High Speed Downlink Packet Access). Through the wireless internet module 142, the electronic device 100 can establish a Wi-Fi P2P (Peer to Peer) connection with another device.
[0073] The communication interface 140 may include a short-range communication module for short-range communication. Bluetooth, BLE (Bluetooth Low Energy), RFID (Radio Frequency Identification), infrared communication (IrDA, infrared Data Association), UWB (Ultra Wideband), ZigBee, etc. may be used as short-range communication technologies. The communication interface 140 may include a Wi-Fi communication module 113 and a Bluetooth communication module 144 as short-range communication modules.
[0074] The Wi-Fi communication module 143 can establish a communication connection and perform communication according to the Wi-Fi communication protocol under the control of the processor 130.
[0075] The Bluetooth communication module 144 can establish a communication connection and communicate according to the Bluetooth communication protocol under the control of the processor 130.
[0076] Display 155 includes a display panel and can display video signals on the screen.
[0077] Memory 120 can store programs related to the operation of electronic device 100 and various data generated during the operation of electronic device 100.
[0078] Memory 120 can store at least one instruction. Additionally, memory 120 may store at least one instruction executed by processor 130. Additionally, memory 120 may store at least one program executed by processor 130. Additionally, memory 120 may store an application for providing a specific service.
[0079] Specifically, memory 120 may include at least one type of storage medium among flash memory type, hard disk type, multimedia card micro type, card type memory (e.g., SD or XD memory, etc.), RAM (Random Access Memory), SRAM (Static Random Access Memory), ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic memory, magnetic disk, and optical disk.
[0080] Processor 130 includes various processing circuits and controls the overall operation of electronic device 100. For example, processor 130 can perform the functions of electronic device 100 described in this disclosure by executing one or more instructions stored in memory 120.
[0081] In an embodiment of the present disclosure, the processor 130 stores one or more instructions in an internally provided memory and can control the operation of the electronic device 100 to be performed by executing one or more instructions stored in the internally provided memory. That is, the processor 130 can perform a predetermined operation by executing at least one instruction or program stored in an internal memory or memory 120 provided within the processor 130.
[0082] According to one embodiment, the processor 130 can perform the operation of the electronic device 100 disclosed in the present disclosure by executing one or more instructions stored in memory 120.
[0083] The video processing unit 150 includes various circuits and, under the control of the processor 130, can process a video signal received from the communication interface 140 and output it to the display 155.
[0084] The audio processing unit 160 includes various circuits and, under the control of the processor 130, can convert an audio signal received from an input / output interface 170 or a communication interface 140 into an analog audio signal and output it to an audio output unit 165.
[0085] The audio output unit 165 includes various circuits and can output audio (e.g., voice, sound) input through the communication interface 140 or the input / output interface 170. Additionally, the audio output unit 165 can output audio stored in memory 120 under the control of the processor 130. The audio output unit 165 may include at least one of a speaker, a headphone output terminal, or an S / PDIF (Sony / Philips Digital Interface) output terminal, or a combination thereof.
[0086] The input / output interface 170 includes various circuits and can receive video (e.g., video, etc.), audio (e.g., voice, music, etc.), and additional information (e.g., EPG, etc.) from outside the electronic device 100 under the control of the processor 130. The input / output interface 170 may include one of an HDMI port (High-Definition Multimedia Interface port, 171), a component jack (172), a PC port (173), and a USB port (174), or one or more combinations thereof. In addition to the HDMI port, the input / output interface 170 may further include a DisplayPort (DP), Thunderbolt, and MHL (Mobile High-Definition Link).
[0087] The sensing unit 180 includes at least one sensor and detects the user's voice, the user's image, or the user's interaction, and may include a microphone 181, a camera unit 182, and an optical receiver 183.
[0088] Microphone 181 receives the user's uttered voice. Microphone 181 can convert the received voice into an electrical signal and output it to processor 130. The user voice may include, for example, a voice corresponding to a menu or function of electronic device 100.
[0089] Camera 182 can receive images (e.g., consecutive frames) corresponding to user motions including gestures within the camera recognition range.
[0090] The optical receiver 183 receives an optical signal (including a control signal) received from an external control device. The optical receiver can receive an optical signal corresponding to user input (e.g., touch, press, touch gesture, voice, or motion) from the control device. A control signal can be extracted from the received optical signal under the control of the processor 130.
[0091] FIG. 4 is a reference diagram for explaining an array of feature vectors stored in storage according to various embodiments.
[0092] Referring to FIG. 4, the electronic device 100 can store feature vectors stored in storage 110 by aligning them based on guide points.
[0093] Vectors can represent all types of data, including unstructured data such as text, images, audio, and video. Vectors are generally represented as arrays or lists of numbers, where each number represents a specific feature or attribute of the data. For example, assuming there is a large set of cat photos, each image is part of unstructured data. However, each image can be represented as a vector by extracting features from the images, such as average color, color histograms, texture histograms, or the presence or absence of ears, whiskers, or tails. Vector embedding, or vectorization, is the process of converting these features into numbers, allowing each data point to be represented as a vector in a high-dimensional space.
[0094] As vectors are placed in a multidimensional vector space, data points with similar attributes or characteristics can naturally attract each other to form clusters. For example, a trained Convolutional Neural Network (CNN) can cluster dog images closely together in a dataset filled with animal images, distinguishing them from clusters of cats or birds.
[0095] A feature vector can represent a high-dimensional representation of information, referred to as a visual descriptor or simply a descriptor. For example, an n-dimensional feature vector can represent a vector containing n numerical values, each representing a unique feature associated with a specific data set. Thus, the dimension of a feature vector can represent the number of unique values or features contained within the feature vector.
[0096] For example, visual computing applications often utilize high-dimensional feature vectors to represent objects or behaviors captured from visual data, such as images and / or videos. For instance, an n-dimensional feature vector used to represent a specific object may contain n numerical values representing n unique features of the object. These high-dimensional feature vectors are often extracted from images and videos, labeled (e.g., designated as belonging to a specific class or tagged), and can be organized into indices to facilitate subsequent operations. For instance, a labeled feature vector can be retrieved to determine the class of an unlabeled feature vector extracted from a new image or video.
[0097] For example, in relation to face recognition, feature vectors can be used to represent the faces of people captured in images and / or videos. These feature vectors can generally be extracted from visual data (e.g., images and / or videos) using specific feature extraction techniques. For example, in some embodiments, each value within an n-dimensional feature vector may represent a unique feature associated with visual data regarding a specific person's face. For example, a feature vector may contain more than 100 dimensions representing more than 100 corresponding features extracted from visual data regarding that person's face.
[0098] Electronic device 100 can generate feature vectors corresponding to each image or video by extracting features from data such as images or videos stored in storage 110 and vectorizing them. Additionally, electronic device 100 can group feature vectors into one or more clusters by classifying the feature vectors according to certain criteria. Classification can be performed according to various criteria depending on the use or purpose of the application utilizing these feature vectors. For example, if a user's photos are classified by location, clusters corresponding to photos taken at home, photos taken at the beach, photos taken in the office, and photos taken at a restaurant can be generated.
[0099] According to conventional clustering, feature vectors belonging to clusters classified according to specific criteria are randomly arranged in correspondence with the respective clusters. Therefore, to search for feature vectors corresponding to a specific target feature vector, the electronic device 100 may have to perform a search operation on all clusters included in the feature vector space and on all feature vectors of each cluster. However, as the number of feature vectors included in the feature vector space becomes massive, it inevitably takes a long time to search all feature vectors of the clusters.
[0100] Accordingly, according to one embodiment, the electronic device 100 can arrange clustered feature vectors, that is, feature vectors included in each cluster, in order according to a certain standard.
[0101] According to one embodiment, an electronic device 100 can determine a predetermined number of guide point feature vectors among feature vectors belonging to a cluster, and sort and store feature vectors within the cluster in order of proximity to each determined guide point feature vector.
[0102] In a cluster, a fixed number of guide point feature vectors can be determined in various ways. It is desirable for the guide point feature vectors to be values that evenly represent the feature vectors of the cluster. For example, the guide point feature vectors can be determined by dividing the cluster space into a predetermined number of regions based on the center of the cluster, and selecting the feature vector that is farthest from the cluster center in each region.
[0103] Referring to FIG. 4, the electronic device 100 can store clusters in storage 110 by aligning feature vectors based on guide point feature vectors. In storage 110 as illustrated in FIG. 4, three clusters are stored, and a fixed number of guide point feature vectors can be determined for each cluster. The feature vectors are aligned in order of their proximity to the guide point feature vectors. For example, in the case of cluster 3, three guide point feature vectors are determined, and the feature vectors can be aligned and stored in order of proximity to each guide point feature vector. For example, in FIG. 4, the more shading similar to the guide point feature vector, the more similar the feature vector is to the guide point feature vector, and the lighter the shading, the lower the similarity to the guide point feature vector.
[0104] FIG. 5 is a reference diagram illustrating a method of searching using guide point-based feature vectors according to various embodiments.
[0105] Referring to FIG. 5, for example, Cluster 1 is assigned three guide point feature vectors: Guide Point 1, Guide Point 2, and Guide Point 3. The electronic device 100 can first calculate the distance between the requested target vector and each guide point and search in the order of the guide point target vector closest to the target vector. In FIG. 5, it can be assumed that the distance between the target vector and Guide Point 1 is d1, which is the shortest, the distance between the target vector and Guide Point 3 is d2, which is the second shortest, and the distance between the target vector and Guide Point 2 is d3, which is the longest. Then, the electronic device 100 can search in the order of closest, that is, Guide Point 1, Guide Point 3, Guide Point 2. In other words, the electronic device 100 can first search for feature vectors similar to the target vector by measuring the similarity between the target vector and the feature vectors around Guide Point 1 in the order of feature vectors aligned close to Guide Point 1. For example, an electronic device 100 can perform a search on feature vectors located at a certain distance from guide point 1. Once the search for feature vectors around guide point 1 is completed, the electronic device 100 can search for feature vectors similar to the target vector by measuring the similarity between the target vector and the feature vectors around guide point 3 in the order of feature vectors aligned close to guide point 3, which is the second closest among the guide points. For example, the electronic device 100 can perform a search on feature vectors located at a certain distance from guide point 3. Once the search for feature vectors around guide point 3 is completed, the electronic device 100 can search for feature vectors similar to the target vector by measuring the similarity between the target vector and the feature vectors around guide point 2 in the order of feature vectors aligned close to guide point 2, which is the last among the guide points.
[0106] The electronic device 100 does not need to measure similarity for all feature vectors of cluster 1, and can output similar feature vectors obtained as a result of searching more than a certain percentage of the target vectors of the cluster while searching in order of guide points close to the target vector. For example, the electronic device 100 can calculate similarity with the target vector for feature vectors corresponding to 30 percent of the total feature vectors of the cluster, and the feature vectors corresponding to 30 percent can be determined based on feature vectors close to the guide points.
[0107] As such, the electronic device 100 according to the embodiment can significantly reduce the time required for searching by more efficiently specifying the search order, rather than searching all feature vectors belonging to a cluster in a random order, by using a guide point to find a group of feature vectors close to a target vector among the groups of feature vectors belonging to a cluster, and calculating the distance to the target vector in the order of feature vectors close to the guide point among the found groups of feature vectors.
[0108] FIG. 6 shows an example of a flowchart of a method for operating an electronic device according to various embodiments.
[0109] Referring to FIG. 6, in operation 610, the electronic device 100 can generate clusters by indexing feature vectors.
[0110] According to one embodiment, when an electronic device 100 receives input data such as an image or video, it can extract features from the input data and extract a feature vector containing one or more feature values.
[0111] According to one embodiment, an electronic device 100 can determine which cluster a feature vector belongs to by classifying the feature vector according to a set criterion. For example, if the electronic device 100 generates five clusters according to five classification criteria, the electronic device 100 can determine which of the five clusters a new feature vector belongs to. This operation may be referred to as a labeling operation.
[0112] Figure 7 shows examples of feature vector spaces according to various embodiments.
[0113] Referring to FIG. 7, when an electronic device 100 acquires input data 10, such as a photograph, it can extract a feature vector by extracting and vectorizing the features of the input data 10. Then, the electronic device 100 can determine which cluster a feature vector belongs to by classifying the extracted feature vector according to a predetermined classification criterion. FIG. 7 illustrates that the clusters are composed of, for example, five clusters.
[0114] Returning to Fig. 6, in operation 620, the electronic device 100 can specify a fixed number of guide points for each cluster.
[0115] According to one embodiment, the electronic device 100 may specify a fixed number of guide points for each cluster that can represent the feature vectors included in the cluster. The guide points are intended to distinguish the feature vectors included in the cluster based on their values, and the number of guide points can be determined in various ways, and the method of determination can also be selected in various ways.
[0116] FIG. 8 is a reference diagram for explaining how to designate guide points in a cluster according to various embodiments.
[0117] Referring to FIG. 8, in case 810 where three guide points are designated, the electronic device 100 can divide the space of feature vectors belonging to the cluster into three regions based on the center of the cluster and designate one feature vector in each region as a guide point. For example, the electronic device 100 can designate the feature vector farthest from the center of the cluster in each region as a guide point. In case 810, guide points G1, G2, and G3 are designated, as shown. The center of the cluster may represent the average of the values of all feature vectors included in the cluster.
[0118] In case 820, where four guide points are designated, the electronic device 100 can divide the space of feature vectors belonging to a cluster into four regions based on the center of the cluster and designate one feature vector in each region as a guide point. For example, the electronic device 100 can designate the feature vector farthest from the center of the cluster in each region as a guide point. In case 820, guide points G1, G2, G3, and G4 are designated and illustrated.
[0119] In case 830, where six guide points are designated, the electronic device 100 can divide the space of feature vectors belonging to a cluster into six regions based on the center of the cluster and designate one feature vector in each region as a guide point. For example, the electronic device 100 can designate the feature vector farthest from the center of the cluster in each region as a guide point. In case 830, guide points G1, G2, G3, G4, G5, and G6 are designated and illustrated.
[0120] In the example illustrated in FIG. 8, the number of guide points is for one example, and the number of guide points can be determined in various ways.
[0121] In the example illustrated in Fig. 8, the area where guide points are designated is described as being divided based on the center of the cluster, but this is not necessarily limited to this and can be determined according to various methods of dividing the space.
[0122] In addition, in the example illustrated in FIG. 8, the guide point is described as being designated as the feature vector farthest from the center of the cluster in each region, but is not limited thereto. The guide point may also be determined as the center of the feature vectors included in each region.
[0123] Returning to Fig. 6, in operation 630, the electronic device 100 can sort the feature vectors within each cluster in order of distance based on the guide point feature vector and record them in a file.
[0124] According to one embodiment, an electronic device 100 can identify feature vectors close to a guide point feature vector by measuring the similarity between a guide point feature vector and a feature vector within a cluster. The electronic device 100 can sort the feature vectors in order of feature vectors close to the guide point feature vector based on the guide point feature vector.
[0125] FIG. 9 is a diagram showing feature vectors close to guide points according to various embodiments.
[0126] Referring to FIG. 9, according to one embodiment, the feature vector space may include five clusters, namely a first cluster, a second cluster, a third cluster, a fourth cluster, and a fifth cluster. The electronic device 100 may designate a guide point feature vector for each cluster. For example, for the first cluster, the electronic device 100 may designate five guide points G1, G2, G3, G4, and G5. And feature vectors located close to each guide point may be identified. For example, V11, V12, V13, V14, V15, and V16 may be identified in order of proximity to guide point G1. For example, V21, V22, V23, V24, V25, and V26 may be identified in order of proximity to guide point G2. For example, V31, V32, V33, V34, V35, V36, V37, and V38 can be identified in order of proximity to guide point G3. For example, V41, V42, V43, and V44 can be identified in order of proximity to guide point G4. For example, V51, V52, V53, V54, V55, V56, and V57 can be identified in order of proximity to guide point G5.
[0127] FIG. 10 shows an example of a feature vector file stored in storage according to various embodiments.
[0128] Referring to FIG. 10, according to one embodiment, an electronic device 100 may store feature vectors belonging to a cluster so as to be aligned based on a guide point as described in FIG. 9, instead of arbitrarily arranging them. For example, for five guide point feature vectors included in a first cluster, the electronic device 100 may label these feature vectors as guide points and record the feature vectors aligned in order of proximity to each guide point. For example, feature vectors V11, V12, V13, V14, V15, and V16 may be recorded in order of proximity to guide point G1; feature vectors V21, V22, V23, V24, V25, and V26 may be recorded in order of proximity to guide point G2; feature vectors V31, V32, V33, V34, V35, V36, V37, and V38 may be recorded in order of proximity to guide point G3; feature vectors V41, V42, V43, and V44 may be recorded in order of proximity to guide point G4; and feature vectors V51, V52, V53, V54, V55, V56, and V57 may be recorded in order of proximity to guide point G5.
[0129] FIG. 11 shows an example of a feature vector file stored in storage according to various embodiments.
[0130] Referring to FIG. 11, according to one embodiment, an electronic device 100 may store feature vectors belonging to a cluster so as to be aligned based on a guide point as described in FIG. 9, instead of arbitrarily arranging them. For example, the electronic device 100 may record five guide point feature vectors included in a first cluster by labeling these feature vectors as guide points and aligning the feature vectors in order of proximity to each guide point. For example, feature vectors V11, V12, V13, V14, V15, V16, V17, and V18 are recorded in order of proximity to guide point G1; feature vectors V21, V22, V23, V24, V25, V26, V27, and V28 are recorded in order of proximity to guide point G2; feature vectors V31, V32, V33, V34, V35, V36, V37, V38, and V39 are recorded in order of proximity to guide point G3; feature vectors V41, V42, V43, V44, V45, V46, and V47 are recorded in order of proximity to guide point G4; and feature vectors V51, V52, V53, V54, V55, and V56 are recorded in order of proximity to guide point G5. Subsequently, the remaining feature vectors of the first cluster can be recorded.
[0131] FIG. 12 is an example of a flowchart of a method for searching feature vectors based on guide points according to various embodiments.
[0132] Referring to FIG. 12, in operation 1210, the electronic device 100 can convert the queried data into a feature vector, i.e., a target vector.
[0133] In operation 1220, electronic device 100 can read feature vectors aligned according to guide points from clusters stored in storage in blocks and load them into memory. A block unit may refer to the size of a data block loaded into memory from a file stored in storage at once.
[0134] In operation 1230, electronic device 100 can search for k feature vectors closest to the target vector.
[0135] In operation 1240, electronic device 100 can output k feature vectors as a result.
[0136] FIG. 13 shows an example of a block loaded from a file into memory according to various embodiments.
[0137] Referring to FIG. 13, the storage can store feature vectors of each cluster sorted in order of proximity to the guide point, as illustrated in FIG. 10. In this case, if the block size that electronic device 100 loads from the storage into memory is equal to the size of 10 feature vectors, electronic device 100 can load from G1 to V19 in the first loading. Electronic device 100 can obtain similar feature vectors by calculating the similarity with the target vector for the feature vectors from G1 to V19 loaded into memory. Once the similarity calculation for all feature vectors included in the first loaded block is completed, electronic device 100 can load from G2 to V29 in the second loading. Electronic device 100 does not need to perform similarity calculations for all feature vectors sorted based on guide point G1, and if a certain proportion or more of the feature vectors sorted based on G1 have been searched, it can proceed to the search of feature vectors sorted based on the next guide point G2. For example, if a certain ratio is determined to be 30 percent, electronic device 100 can proceed to search for feature vectors sorted by G2 after performing search on 30 percent of the feature vectors sorted by G1. In this way, instead of performing search operations on all feature vectors within the cluster in an arbitrary order, the embodiment searches on some feature vectors sorted by guide points, thereby significantly reducing the search time.
[0138] In addition, the electronic device 100 may not need to load and search for feature vectors aligned based on all guide points, and may not search further once the search is completed for a certain proportion or more of the feature vectors. For example, if the search is completed up to the feature vectors aligned based on guide point G4, and satisfactory feature vectors are found—that is, if a desired number of result feature vectors are found—the electronic device 100 may not need to load the feature vectors aligned based on G5 any further.
[0139] FIG. 14 shows an example of a block loaded from a file into memory according to various embodiments.
[0140] Referring to FIG. 14, the storage records feature vectors of each cluster arranged in order of proximity to the guide point based on the guide point, as illustrated in FIG. 11, and may be recorded in order of a predetermined number of close feature vectors. In this case, if the block size that electronic device 100 loads from the storage to memory is equal to the size of 12 feature vectors, electronic device 100 can load from G1 to V22 in the first loading. Electronic device 100 can obtain similar feature vectors by calculating the similarity with the target vector for the feature vectors from G1 to V22 loaded into memory. Once the similarity calculation for the feature vectors included in the first loaded block is completed, electronic device 100 can load from V23 to V35 in the second loading. In the example illustrated in FIG. 14, instead of recording all feature vectors adjacent to a guide point consecutively at the guide point, a fixed number of feature vectors adjacent to a specific guide point are aligned and recorded, and then a fixed number of feature vectors adjacent to the next guide point are aligned and recorded, so the electronic device 100 can more easily identify the location of the next loaded block.
[0141] According to one embodiment, an electronic device comprises: a memory for storing one or more instructions; and at least one processor. When the at least one processor executes one or more instructions individually and / or collectively, the electronic device may provide a cluster in which a predetermined number of guide point feature vectors are defined among the plurality of feature vectors in a cluster comprising a plurality of feature vectors, and the feature vectors are arranged in order of proximity to each guide point feature vector. The device may obtain a target feature vector corresponding to the input data for which a query was requested, identify a first guide point feature vector close to the target feature vector, and obtain a result feature vector by searching in the order of feature vectors adjacent to the first guide point feature vector close to the target feature vector.
[0142] According to one embodiment, when the at least one processor executes one or more instructions individually and / or collectively, the electronic device may designate a predetermined number of feature vectors that are furthest from the center of each cluster as the guide point vectors, and record the feature vectors within the cluster in order of distance relative to the guide point vectors in storage.
[0143] According to one embodiment, when the at least one processor executes one or more instructions individually and / or collectively, the electronic device may divide the feature vector space of each cluster into a predetermined number of regions based on the center of the feature vector space of each cluster, and designate one guide point feature vector for each of the predetermined number of regions.
[0144] According to one embodiment, when the at least one processor executes one or more instructions individually and / or collectively, the electronic device loads blocks of feature vectors from storage into memory in a predetermined block size unit in the order of feature vectors close to the guide point vector, and calculates similarity with the target feature vector in the order of vectors close to the guide point vector in the loaded blocks, thereby obtaining one or more vectors close to the target feature vector.
[0145] A method for operating an electronic device according to one embodiment may include: providing a cluster in which a predetermined number of guide point feature vectors are defined among the plurality of feature vectors in a cluster including a plurality of feature vectors, and feature vectors are arranged in order of proximity to each guide point feature vector; obtaining a target feature vector corresponding to input data requested for query; identifying a first guide point feature vector close to the target feature vector; and obtaining a result feature vector by searching in the order of feature vectors adjacent to the first guide point feature vector close to the target feature vector.
[0146] According to one embodiment, the method may include the operation of designating a predetermined number of feature vectors that are furthest from the center of each cluster as the guide point vectors, and the operation of sorting the feature vectors within the cluster in order of distance based on the guide point vectors and recording them in storage.
[0147] According to one embodiment, the method may include the operation of dividing into a predetermined number of regions based on the center of the feature vector space of each cluster, and the operation of specifying one guide point feature vector for each of the predetermined number of regions.
[0148] According to one embodiment, the method may include the operation of loading blocks of feature vectors from storage into memory in units of a predetermined block size in the order of feature vectors close to the guide point vector, and the operation of calculating similarity with the target feature vector in the order of vectors close to the guide point vector in the loaded blocks to obtain one or more vectors close to the target feature vector.
[0149] According to one embodiment, in a non-transient computer-readable recording medium storing one or more instructions executed by at least one processor of an electronic device, the electronic device can obtain a result feature vector by, through which the one or more instructions are executed by at least one processor of the electronic device, provide a cluster in which a predetermined number of guide point feature vectors are defined among the plurality of feature vectors in a cluster including a plurality of feature vectors, and feature vectors are arranged in order of proximity to each guide point feature vector, obtain a target feature vector corresponding to the input data requested for query, identify a first guide point feature vector close to the target feature vector, and search in the order of feature vectors adjacent to the first guide point feature vector close to the target feature vector.
[0150] Some embodiments may also be implemented in the form of a recording medium containing computer-executable instructions, such as program modules executed by a computer. A computer-readable medium may be any available medium accessible by a computer and includes both volatile and non-volatile media, and both removable and non-removable media. Additionally, a computer-readable medium may include a computer storage medium. A computer storage medium includes both volatile and non-volatile, removable and non-removable media implemented by any method or technique for storing information, such as computer-readable instructions, data structures, program modules, or other data.
[0151] The disclosed embodiments may be implemented as a software program comprising instructions stored on a computer-readable storage media.
[0152] A computer is a device capable of calling instructions stored from a storage medium and performing operations according to the disclosed embodiments according to the called instructions, and may include an electronic device according to the disclosed embodiments.
[0153] Computer-readable storage media may be provided in the form of non-transitory storage media. Here, 'non-transitory' means that the storage medium does not contain a signal and is tangible.
[0154] In addition, the control method according to the disclosed embodiments may be provided by being included in a computer program product. The computer program product may be traded between a seller and a buyer as a product.
[0155] A computer program product may include a software program and a computer-readable storage medium on which the software program is stored. For example, a computer program product may include a product in the form of a software program (e.g., a downloadable app) that is electronically distributed through a device manufacturer or an electronic market (e.g., Google Play Store, App Store). For electronic distribution, at least a portion of the software program may be stored on a storage medium or temporarily created. In this case, the storage medium may be a server of the manufacturer, a server of the electronic market, or a storage medium of a relay server that temporarily stores the software program.
[0156] A computer program product may include a storage medium of a server or a storage medium of a device in a system composed of a server and a device. Alternatively, if there is a third device (e.g., a smartphone) that is connected to the server or device in communication, the computer program product may include a storage medium of the third device. Alternatively, the computer program product may include the S / W program itself that is transmitted from the server to the device or the third device, or transmitted from the third device to the device.
[0157] In this case, one of the server, the device, and the third device may execute the computer program product to perform the method according to the disclosed embodiments. Alternatively, two or more of the server, the device, and the third device may execute the computer program product to perform the method according to the disclosed embodiments in a distributed manner.
[0158] For example, a server (e.g., a cloud server or an artificial intelligence server, etc.) can execute a computer program product stored on the server to control a device connected to the server in communication to perform a method according to the disclosed embodiments.
[0159] As another example, the third device may execute a computer program product to control a device connected to the third device in communication to perform a method according to the disclosed embodiment. When the third device executes the computer program product, the third device may download the computer program product from a server and execute the downloaded computer program product. Alternatively, the third device may execute a computer program product provided in a preloaded state to perform a method according to the disclosed embodiments.
[0160] Additionally, in this specification, "part" may be a hardware component, such as a processor or circuit, and / or a software component executed by a hardware component, such as a processor.
[0161] Although this disclosure has been described and illustrated with reference to various exemplary embodiments, it should be understood that these exemplary embodiments are for illustrative purposes only and are not intended to limit the invention. Furthermore, those skilled in the art will understand that various modifications, alternatives, and variations are possible without departing from the spirit and scope of this disclosure, the appended claims, and their equivalents. It should also be understood that any one embodiment described in this disclosure may be used in combination with other embodiments.
Claims
1. In electronic device 100, Memory 120 for storing one or more instructions; and It includes at least one processor 130 including a processing circuit, and By having at least one processor 130 execute one or more instructions individually and / or collectively, the electronic device 100, A cluster comprising a plurality of feature vectors is provided in which a predetermined number of guide point feature vectors are defined among the plurality of feature vectors, and the feature vectors are arranged in order of proximity to each guide point feature vector. Obtain a target feature vector corresponding to the input data requested in the query, and Identify a first guide point feature vector close to the above target feature vector, and An electronic device that obtains a result feature vector by searching in order of feature vectors adjacent to a first guide point feature vector close to the above target feature vector.
2. In Paragraph 1, By having at least one processor 130 execute one or more instructions individually and / or collectively, the electronic device 100, A fixed number of feature vectors farthest from the center of each cluster are designated as the guide point vectors, and An electronic device that sorts feature vectors within the cluster in order of distance based on the guide point vector and records them in storage 110.
3. In Paragraph 1 or 2, By having at least one processor 130 execute one or more instructions individually and / or collectively, the electronic device 100, Divided into the aforementioned predetermined number of regions based on the center of the feature vector space of each cluster, An electronic device that assigns one guide point feature vector for each of the above-mentioned fixed number of regions.
4. In any one of paragraphs 1 through 3, By having at least one processor 130 execute one or more instructions individually and / or collectively, the electronic device 100, Blocks of feature vectors are loaded from storage 110 to memory 120 in units of a predetermined block size in the order of feature vectors close to the guide point vector, and An electronic device that calculates the similarity with the target feature vector in the order of vectors close to the guide point vector in a loaded block, and obtains one or more vectors close to the target feature vector.
5. In a method of operating an electronic device 100, The operation of providing a cluster comprising a plurality of feature vectors, wherein a predetermined number of guide point feature vectors are defined among the plurality of feature vectors, and the feature vectors are arranged in order of proximity to each guide point feature vector. An operation to obtain a target feature vector corresponding to the input data requested in the query, An operation to identify a first guide point feature vector close to the above target feature vector, and A method comprising the operation of obtaining a result feature vector by searching in order of feature vectors adjacent to a first guide point feature vector close to the target feature vector.
6. In Paragraph 5, The operation of designating a fixed number of feature vectors farthest from the center of each cluster as the guide point vectors, and A method comprising the operation of sorting feature vectors within the cluster in order of distance based on the guide point vector and recording them in storage.
7. In Paragraph 5 or 6, The operation of dividing into the aforementioned predetermined number of regions based on the center of the feature vector space of each cluster, and A method comprising the operation of assigning one guide point feature vector for each of the above-mentioned fixed number of regions.
8. In any one of paragraphs 5 through 7, The operation of loading blocks of feature vectors from storage 110 to memory 120 in units of a predetermined block size in the order of feature vectors adjacent to the above guide point vector, and A method comprising the operation of calculating the similarity with the target feature vector in the order of vectors close to the guide point vector in a loaded block, and obtaining one or more vectors close to the target feature vector.
9. A non-transient computer-readable recording medium storing one or more instructions executed by at least one processor 130 of an electronic device 100, wherein, by the execution of the one or more instructions by at least one processor of the electronic device, the electronic device, A cluster comprising a plurality of feature vectors is provided in which a predetermined number of guide point feature vectors are defined among the plurality of feature vectors, and the feature vectors are arranged in order of proximity to each guide point feature vector. Obtain a target feature vector corresponding to the input data requested in the query, and Identify a first guide point feature vector close to the above target feature vector, and A computer-readable recording medium that obtains a result feature vector by searching in order of feature vectors adjacent to a first guide point feature vector close to the above target feature vector.
Citation Information
Patent Citations
Index construction method and device, vector search method and retrieval system
CN114791966A
Signal classification apparatus
US20110222785A1
Clustering Technique for Optimized Search over High-dimensional Space
US20170228615A1
Information processing apparatus, methods, and program for searching sets for an element
US7895201B2
Approximate nearest neighbor search device, approximate nearest neighbor search method, and program
WO2013129580A1