KR20200044644A - Apparatus and method for searching image based on convolutional neural network - Google Patents
Apparatus and method for searching image based on convolutional neural network Download PDFInfo
- Publication number
- KR20200044644A KR20200044644A KR1020190015457A KR20190015457A KR20200044644A KR 20200044644 A KR20200044644 A KR 20200044644A KR 1020190015457 A KR1020190015457 A KR 1020190015457A KR 20190015457 A KR20190015457 A KR 20190015457A KR 20200044644 A KR20200044644 A KR 20200044644A
- Authority
- KR
- South Korea
- Prior art keywords
- image
- search
- query
- images
- candidate
- Prior art date
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims description 114
- 238000004590 computer program Methods 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000003860 storage Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000013145 classification model Methods 0.000 description 3
- 238000004040 coloring Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000001994 activation Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/583—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/53—Querying
- G06F16/532—Query formulation, e.g. graphical querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/469—Contour-based spatial representations, e.g. vector-coding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
실시예들은 이미지를 검색하는 방법 및 장치에 관한 것으로 특히, CNN(Convolutional Neural Network)에 기반하여 이미지를 검색하는 기술과 관련된다.Embodiments relate to a method and apparatus for retrieving an image, and more particularly, to a technique for retrieving an image based on a convolutional neural network (CNN).
이미지를 생산 및 소비하고자 하는 수요는 꾸준히 증가하고 있다. The demand to produce and consume images is steadily increasing.
텍스트로 이미지를 검색하는 경우, 예를 들어, 검색 엔진의 검색창에서 특정한 텍스트를 입력하여 검색 결과로서 이미지를 획득하는 경우에 있어서, 검색 결과로서는 해당 텍스트와 관련된 문서에 포함된 이미지가 노출되었다. 이러한 검색 결과는 불필요한 이미지나 텍스트와는 관련이 없는 이미지를 포함하는 바, 유의미한 검색 결과를 얻기 위해서는 이미지 자체에 대한 분석이 요구되었다.When searching for an image by text, for example, when an image is obtained as a search result by entering specific text in a search box of a search engine, an image included in a document related to the text is exposed as the search result. Since these search results include images that are not related to unnecessary images or text, analysis of the image itself was required to obtain meaningful search results.
CNN을 활용하는 기술로서 지도 학습(Supervised Learning) 기반의 분류(classification) 기술을 이미지 태깅에 활용하는 기술이 존재한다. 예를 들어, 한국등록특허 제10-1908680호는 약한 지도 학습 기반의 기계 학습 방법 및 그 장치를 개시하고 있다. 그러나, 이러한 종래기술의 경우, 충분한 학습 데이터 및 재학습이 요구되며, 모델이 변경될 경우 대량의 추론(inferencing)이 요구되는 바, 대량의 이미지에 대한 검색에 활용되기가 어렵다.As a technology that uses CNN, there is a technology that uses supervised learning-based classification technology for image tagging. For example, Korean Registered Patent No. 10-1908680 discloses a machine learning method and apparatus based on weak supervised learning. However, in the case of such a prior art, sufficient learning data and re-learning are required, and when the model is changed, a large amount of inferencing is required, and thus it is difficult to be utilized for searching for a large amount of images.
검색 결과로서 사용자의 검색 의도에 보다 부합하는 이미지 검색 결과를 획득할 수 있다.As a search result, it is possible to obtain an image search result more in accordance with the user's search intention.
적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 이미지 검색 방법에 있어서, 상기 적어도 하나의 프로세서에 의해, 질의에 대한 검색 결과에 포함된 적어도 하나의 후보 이미지를 확인하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 질의에 대응하는 주제에 대한 적어도 하나의 대표 이미지의 특징값을 획득하는 단계; 상기 적어도 하나의 프로세서에 의해, 상기 적어도 하나의 대표 이미지의 특징값 및 상기 적어도 하나의 후보 이미지의 특징값을 이용하여 상기 적어도 하나의 후보 이미지 각각에 대해 상기 적어도 하나의 대표 이미지 각각에 대한 이미지 유사도를 계산하는 단계; 및 상기 적어도 하나의 프로세서에 의해, 상기 계산된 이미지 유사도를 상기 검색 결과에서의 상기 적어도 하나의 후보 이미지의 랭킹에 반영하는 단계를 포함하는 이미지 검색 방법을 제공한다.An image retrieval method of a computer device including at least one processor, the method comprising: identifying at least one candidate image included in a search result for a query by the at least one processor; Obtaining, by the at least one processor, a feature value of at least one representative image of a subject corresponding to the query; Image similarity for each of the at least one representative image for each of the at least one candidate image by using the feature values of the at least one representative image and the feature values of the at least one candidate image by the at least one processor Calculating; And reflecting, by the at least one processor, the calculated image similarity in the ranking of the at least one candidate image in the search result.
일측에 따르면, 상기 이미지 유사도를 계산하는 단계는, 상기 적어도 하나의 대표 이미지의 특징값과 상기 적어도 하나의 후보 이미지의 특징값간의 코사인 거리(cosine distance)를 이용하여 상기 이미지 유사도를 계산하는 것을 특징으로 할 수 있다.According to one side, the calculating the image similarity may include calculating the image similarity using a cosine distance between the feature values of the at least one representative image and the feature values of the at least one candidate image. Can be done with
다른 측면에 따르면, 상기 랭킹에 반영하는 단계는, 상기 적어도 하나의 후보 이미지 각각에 대해 텍스트 기반 검색 모델링 기법을 통해 얻어지는 텍스트 유사도에 상기 계산된 이미지 유사도를 적용하여 상기 적어도 하나의 후보 이미지 각각의 스코어를 계산하고, 상기 계산된 스코어에 따라 상기 텍스트 유사도에 따른 상기 적어도 하나의 후보 이미지의 기본 순위를 재 순위화(re-ranking)하는 것을 특징으로 할 수 있다.According to another aspect, the step of reflecting in the ranking may include applying the calculated image similarity to text similarity obtained through a text-based search modeling technique for each of the at least one candidate image to score each of the at least one candidate image And re-ranking the basic ranking of the at least one candidate image according to the text similarity according to the calculated score.
또 다른 측면에 따르면, 상기 이미지 검색 방법은 사용자의 의도에 따라 기 정의된 복수의 카테고리로 분류된 이미지들을 이용하여 이미지 기반 검색 모델이 입력되는 이미지에 대응하는 카테고리를 결정하도록 상기 이미지 기반 검색 모델을 학습하는 단계; 및 상기 사용자의 질의에 의해 제공된 이미지들 중 상기 사용자에 의해 선택된 이미지를 상기 이미지 기반 검색 모델에 입력하여 상기 선택된 이미지에 대응하는 카테고리를 상기 사용자의 의도로서 결정하는 단계를 더 포함할 수 있다.According to another aspect, the image search method may use the image-based search model to determine a category corresponding to an image to which the image-based search model is input, using images classified into a plurality of predefined categories according to a user's intention. Learning; And inputting an image selected by the user from among images provided by the user's query into the image-based search model to determine a category corresponding to the selected image as the user's intention.
또 다른 측면에 따르면, 상기 이미지 검색 방법은 상기 사용자의 질의 및 상기 선택된 이미지와 연관된 클릭 정보에 기반하여 상기 이미지 기반 검색 모델을 검증하는 단계를 더 포함할 수 있다.According to another aspect, the image search method may further include verifying the image-based search model based on the query of the user and click information associated with the selected image.
또 다른 측면에 따르면, 상기 이미지 검색 방법은 상기 적어도 하나의 프로세서에 의해, 복수의 이미지들을 상기 복수의 이미지들 각각의 특징값을 이용하여 복수의 클러스터로 클러스터링하는 단계를 더 포함하고, 상기 적어도 하나의 후보 이미지를 확인하는 단계는, 상기 복수의 클러스터들 중 상기 질의에 대응하는 클러스터에 포함된 이미지들을 상기 후보 이미지들로 확인하는 것을 특징으로 할 수 있다.According to another aspect, the image retrieval method further includes clustering a plurality of images into a plurality of clusters by using the feature values of each of the plurality of images by the at least one processor. The step of checking the candidate image of may be characterized in that images included in the cluster corresponding to the query among the plurality of clusters are identified as the candidate images.
또 다른 측면에 따르면, 상기 적어도 하나의 후보 이미지를 확인하는 단계는, 상기 복수의 클러스터 각각에 대응하는 질의 패턴을 저장하고, 상기 복수의 클러스터 중 상기 질의에 대해 추출되는 질의 패턴에 대응하는 클러스터에 동적으로 가중치를 부여하는 것을 특징으로 할 수 있다.According to another aspect, the step of identifying the at least one candidate image may include storing a query pattern corresponding to each of the plurality of clusters, and in a cluster corresponding to a query pattern extracted for the query among the plurality of clusters. It may be characterized by dynamically weighting.
또 다른 측면에 따르면, 상기 적어도 하나의 후보 이미지를 확인하는 단계는, 상기 복수의 클러스터 각각에 대응하는 주제를 저장하고, 상기 복수의 클러스터 중 상기 질의에 대해 추출되는 주제에 대응하는 클러스터에 동적으로 가중치를 부여하는 것을 특징으로 할 수 있다.According to another aspect, the step of identifying the at least one candidate image stores a topic corresponding to each of the plurality of clusters, and dynamically applies to a cluster corresponding to a topic extracted for the query among the plurality of clusters. It may be characterized by giving a weight.
또 다른 측면에 따르면, 상기 적어도 하나의 후보 이미지를 확인하는 단계는, 상기 복수의 클러스터들 각각에 상기 질의를 통해 검색된 이미지들이 포함된 수에 기초하여 클러스터에 동적으로 가중치를 부여하는 것을 특징으로 할 수 있다.According to another aspect, the step of identifying the at least one candidate image may include dynamically weighting the cluster based on the number of images searched through the query in each of the plurality of clusters. You can.
또 다른 측면에 따르면, 상기 이미지 검색 방법은 이미지가 추가되는 경우, 상기 추가되는 이미지의 특징값과, 상기 복수의 클러스터 각각이 포함하는 이미지들의 특징값들의 중심값에 기반하여 상기 추가되는 이미지가 포함될 클러스터를 결정하는 단계를 더 포함할 수 있다.According to another aspect, in the image search method, when an image is added, the added image is included based on a feature value of the added image and a center value of feature values of images included in each of the plurality of clusters. The method may further include determining a cluster.
또 다른 측면에 따르면, 상기 이미지 검색 방법은 주기마다 상기 복수의 이미지들을 재클러스터링하거나 또는 상기 중심값을 업데이트하는 단계를 더 포함할 수 있다.According to another aspect, the image search method may further include re-clustering the plurality of images every period or updating the center value.
또 다른 측면에 따르면, 상기 적어도 하나의 대표 이미지의 특징값과 상기 적어도 하나의 후보 이미지의 특징값 각각은 상기 적어도 하나의 대표 이미지 각각에 대해, 그리고 상기 적어도 하나의 후보 이미지 각각에 대해 CNN(Convolutional Neural Network)을 통해 얻어지는 특징값을 포함하는 것을 특징으로 할 수 있다.According to another aspect, each feature value of the at least one representative image and each feature value of the at least one candidate image is CNN (Convolutional) for each of the at least one representative image and for each of the at least one candidate image. Neural Network).
컴퓨터 장치와 결합되어 상기 이미지 검색 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.In combination with a computer device, a computer program stored in a computer readable recording medium is provided to execute the image retrieval method on the computer device.
상기 이미지 검색 방법을 컴퓨터 장치에 실행시키기 위한 컴퓨터 프로그램이 기록되어 있는 컴퓨터 판독 가능한 기록매체를 제공한다.A computer-readable recording medium in which a computer program for executing the image retrieval method is executed is provided.
컴퓨터 장치에 있어서, 상기 컴퓨터 장치에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서에 의해, 질의에 대한 검색 결과에 포함된 적어도 하나의 후보 이미지를 확인하고, 상기 질의에 대응하는 주제에 대한 적어도 하나의 대표 이미지의 특징값을 획득하고, 상기 적어도 하나의 대표 이미지의 특징값 및 상기 적어도 하나의 후보 이미지의 특징값을 이용하여 상기 적어도 하나의 후보 이미지 각각에 대해 상기 적어도 하나의 대표 이미지 각각에 대한 이미지 유사도를 계산하고, 상기 계산된 이미지 유사도를 이용하여 상기 검색 결과에서의 상기 적어도 하나의 후보 이미지의 랭킹에 반영하는 것을 특징으로 하는 컴퓨터 장치를 제공한다.A computer device comprising: at least one processor implemented to execute instructions readable by the computer device, the at least one processor identifying at least one candidate image included in a search result for a query, Acquiring feature values of at least one representative image for a topic corresponding to the query, and using the feature values of the at least one representative image and the feature values of the at least one candidate image to each of the at least one candidate image It provides a computer device characterized in that for calculating the image similarity for each of the at least one representative image, and reflected in the ranking of the at least one candidate image in the search result using the calculated image similarity.
검색 결과로서 사용자의 검색 의도에 보다 부합하는 이미지 검색 결과를 제공할 수 있다. As a search result, it is possible to provide an image search result more suited to a user's search intention.
도 1은 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다.
도 2는 본 발명의 일실시예에 있어서, CNN 특징을 이용한 이미지 유사도 계산 방법의 예를 도시한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 후보 이미지의 재 순위화 과정의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 검색 필터의 예를 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 클러스터링 구조의 예를 도시한 도면이다.
도 6은 본 발명의 일실시예에 있어서, 클러스터로 클러스터링된 이미지들의 예를 도시한 도면이다.
도 7은 본 발명의 일실시예에 있어서, 클러스터를 검색 랭킹에 반영하기 위한 예시들을 도시한 도면이다.
도 8은 이미지 검색에서의 기존의 중복 배제 방법의 예를 도시한 도면이다.
도 9는 본 발명의 일실시예에 있어서, 검색결과의 변형(diversification) 및 검색 컬렉션(색인 크기)의 축소를 위한 과정을 위해 개선된 방법을 설명하고 있다.
도 10은 본 발명의 일실시예에 따른 이미지 검색 방법의 예를 도시한 흐름도이다.
도 11은 본 발명의 일실시예에 따른 후보 이미지 선정 방식의 예를 도시한 흐름도이다.1 is a block diagram showing an example of a computer device according to an embodiment of the present invention.
2 is a diagram illustrating an example of a method for calculating image similarity using CNN features in an embodiment of the present invention.
3 is a diagram illustrating an example of a process of re-ranking candidate images in an embodiment of the present invention.
4 is a diagram illustrating an example of a search filter in an embodiment of the present invention.
5 is a diagram illustrating an example of a clustering structure according to an embodiment of the present invention.
6 is a diagram illustrating an example of images clustered in a cluster in an embodiment of the present invention.
7 is a diagram illustrating examples for reflecting a cluster in a search ranking in an embodiment of the present invention.
8 is a diagram illustrating an example of an existing method for excluding duplicates in image search.
FIG. 9 illustrates an improved method for a process for diversification of search results and reduction of a search collection (index size) in one embodiment of the present invention.
10 is a flowchart illustrating an example of an image search method according to an embodiment of the present invention.
11 is a flowchart illustrating an example of a candidate image selection method according to an embodiment of the present invention.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낼 수 있다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. The same reference numerals in each drawing may denote the same members.
본 발명의 실시예들에 따른 이미지 검색 방법은, 이후 설명될 컴퓨터 장치에 의해 수행될 수 있다. 예를 들어, 컴퓨터 장치에는 본 발명의 일실시예에 따른 컴퓨터 프로그램이 설치 및 구동될 수 있고, 컴퓨터 장치는 구동된 컴퓨터 프로그램의 제어에 따라 본 발명의 일실시예에 따른 이미지 검색 방법을 수행할 수 있다. 상술한 컴퓨터 프로그램은 컴퓨터 장치와 결합되어 이미지 검색 방법을 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장될 수 있다. 여기서 설명한 컴퓨터 프로그램은 독립된 하나의 프로그램 패키지의 형태를 가질 수도 있고, 독립된 하나의 프로그램 패키지의 형태가 컴퓨터 장치에 기 설치되어 운영체제나 다른 프로그램 패키지들과 연계되는 형태를 가질 수도 있다.The image retrieval method according to embodiments of the present invention may be performed by a computer device to be described later. For example, a computer program may be installed and driven in accordance with an embodiment of the present invention in a computer device, and the computer device may perform an image search method according to an embodiment of the present invention under the control of a driven computer program. You can. The above-described computer program may be stored in a computer-readable recording medium in combination with a computer device to execute an image retrieval method on the computer device. The computer program described herein may have the form of an independent program package, or the form of an independent program package may be installed in a computer device and may have a form associated with an operating system or other program packages.
도 1은 본 발명의 일실시예에 따른 컴퓨터 장치의 예를 도시한 블록도이다. 일례로, 본 발명의 실시예들에 따른 이미지 검색 방법은 도 1을 통해 도시된 컴퓨터 장치(100)에 의해 실행될 수 있다.1 is a block diagram showing an example of a computer device according to an embodiment of the present invention. In one example, the image search method according to the embodiments of the present invention may be executed by the
이러한 컴퓨터 장치(100)는 도 1에 도시된 바와 같이, 메모리(110), 프로세서(120), 통신 인터페이스(130) 그리고 입출력 인터페이스(140)를 포함할 수 있다. 메모리(110)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 디스크 드라이브와 같은 비소멸성 대용량 기록장치는 메모리(110)와는 구분되는 별도의 영구 저장 장치로서 컴퓨터 장치(100)에 포함될 수도 있다. 또한, 메모리(110)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(110)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 메모리(110)로 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 인터페이스(130)를 통해 메모리(110)에 로딩될 수도 있다. 예를 들어, 소프트웨어 구성요소들은 네트워크(160)를 통해 수신되는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 컴퓨터 장치(100)의 메모리(110)에 로딩될 수 있다.1, the
프로세서(120)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(110) 또는 통신 인터페이스(130)에 의해 프로세서(120)로 제공될 수 있다. 예를 들어 프로세서(120)는 메모리(110)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.The
통신 인터페이스(130)은 네트워크(160)를 통해 컴퓨터 장치(100)가 다른 장치(일례로, 앞서 설명한 저장 장치들)와 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 컴퓨터 장치(100)의 프로세서(120)가 메모리(110)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이나 명령, 데이터, 파일 등이 통신 인터페이스(130)의 제어에 따라 네트워크(160)를 통해 다른 장치들로 전달될 수 있다. 역으로, 다른 장치로부터의 신호나 명령, 데이터, 파일 등이 네트워크(160)를 거쳐 컴퓨터 장치(100)의 통신 인터페이스(130)를 통해 컴퓨터 장치(100)로 수신될 수 있다. 통신 인터페이스(130)를 통해 수신된 신호나 명령, 데이터 등은 프로세서(120)나 메모리(110)로 전달될 수 있고, 파일 등은 컴퓨터 장치(100)가 더 포함할 수 있는 저장 매체(상술한 영구 저장 장치)로 저장될 수 있다.The
입출력 인터페이스(140)는 입출력 장치(150)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 마이크, 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이, 스피커와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(140)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 입출력 장치(150)는 컴퓨터 장치(100)와 하나의 장치로 구성될 수도 있다.The input /
또한, 다른 실시예들에서 컴퓨터 장치(100)는 도 1의 구성요소들보다 더 적은 혹은 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 컴퓨터 장치(100)는 상술한 입출력 장치(150) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.Further, in other embodiments, the
통신 방식은 제한되지 않으며, 네트워크(160)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 블루투스(Bluetooth)나 NFC(Near Field Communication)와 같은 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(160)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(160)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.The communication method is not limited, and a communication method that utilizes a communication network (eg, a mobile communication network, a wired Internet, a wireless Internet, a broadcast network) that the
CNN의 완전하게 연결된 계층(Fully Connected Layer)에서 추출된 특징(Feature)은 이미지를 잘 임베딩(embedding)할 수 있으므로, CNN 특징을 이미지 특징을 나타내기 위해 사용할 수 있다. 이미지를 잘 임베딩하고 있는 CNN 특징은 이미지 유사도 계산 및 확률 모델에 대한 결합이 용이하게 할 수 있다.The feature extracted from the fully connected layer of the CNN can embed the image well, so the CNN feature can be used to represent the image feature. The CNN feature, which embeds an image well, can facilitate image similarity calculations and coupling to probability models.
완전하게 연결된 계층은 일반적인 신경망 구조에서와 같이 이전 레이어의 모든 액티베이션(activation)과 연결되어 있다. 이전 컨볼루션 계층(convolution layer)에서 추출된 특징 값이 고차원 벡터(일반적으로 256 내지 4096 차원)의 값으로 표현될 수 있다.The fully connected layer is connected to all activations of the previous layer, as in a typical neural network structure. Feature values extracted from the previous convolution layer may be expressed as values of a high-dimensional vector (generally 256 to 4096 dimensions).
검색하고자 하는 텍스트에 대하여 적어도 하나의 대표 이미지가 사전에 등록될 수 있다. 이때, 적어도 하나의 대표 이미지와 적어도 하나의 후보 이미지간에 유사도가 계산될 수 있고 계산된 유사도가 검색 랭킹에 반영될 수 있다.At least one representative image may be registered in advance for the text to be searched. At this time, similarity may be calculated between at least one representative image and at least one candidate image, and the calculated similarity may be reflected in the search ranking.
도 2는 본 발명의 일실시예에 있어서, CNN 특징을 이용한 이미지 유사도 계산 방법의 예를 도시한 도면이다. 이미지 유사도의 계산을 위해 하나의 주제(일례로, '사과(apple)')에 대한 대표 이미지들의 집합 R과 후보 이미지들의 집합 C가 존재한다고 가정한다. 여기서, 주제는 검색을 위한 질의(또는 키워드나 검색어)에 대응할 수 있다. 도 2에서는 집합 R이 집합의 주제를 나타내는 텍스트(일례로, '사과')와 n 개의 대표 이미지들을 포함하고 있으며, 집합 C가 m 개의 후보 이미지들을 포함하고 있는 예를 나타내고 있다. 여기서 n과 m은 자연수일 수 있다. 이때, 후보 이미지 j (j는 m 이하의 자연수)의 대표 이미지의 집합 R에 대한 이미지 유사도 ImageSimilarity(R, j)는 아래 수학식 1과 같이 계산될 수 있다.2 is a diagram illustrating an example of a method for calculating image similarity using CNN features in an embodiment of the present invention. For the calculation of image similarity, it is assumed that there is a set R of representative images and a set C of candidate images for a subject (eg, 'apple'). Here, the subject may correspond to a query (or keyword or search term) for searching. FIG. 2 shows an example in which the set R includes text representing an object of the set (eg, 'apple') and n representative images, and the set C includes m candidate images. Here, n and m may be natural numbers. At this time, the image similarity ImageSimilarity ( R , j ) for the set of representative images R of the candidate image j ( j is a natural number less than or equal to m ) may be calculated as in
여기서, r i 는 대표 이미지 i (i는 n 이하의 자연수)의 CNN 특징을, c j 는 후보 이미지 j의 CNN 특징을 각각 의미할 수 있다.Here, r i may mean CNN characteristics of the representative image i ( i is a natural number of n or less), and c j may mean CNN characteristics of the candidate image j , respectively.
일례로, 컴퓨터 장치(100)는 후보 이미지 j의 대표 이미지의 집합 R에 대한 이미지 유사도를 계산하기 위해, 대표 이미지의 집합 R에 포함된 이미지들 각각의 CNN 특징들(r 1, r 2, …, r n )과 후보 이미지 j의 CNN 특징(c j )을 추출하여 이미지 유사도의 계산을 위한 파라미터를 얻을 수 있으며, 얻어진 파라미터를 수학식 1에 반영하여 이미지 유사도(R, c j )를 계산할 수 있다.In one example, the
대표 이미지는 복수 개일 수 있으며, 필요에 따라 중요도가 다르게 설정될 수도 있다. 예를 들어, 집합 R에서 먼저 배열되는 대표 이미지 1은 다른 대표 이미지들에 비해 더 높은 대표성을 띄는 것일 수 있으며, 이 경우 상대적으로 더 높은 가중치가 부여될 수 있다. 이 경우, 후보 이미지 j의 집합 R에 대한 이미지 유사도는 아래 수학식 2와 같이 계산될 수 있다.A plurality of representative images may be provided, and the importance may be set differently according to need. For example, the
여기서, w i 는 대표 이미지 i의 가중치(대표 이미지 i의 CNN 특성 r i 에 대한 가중치)일 수 있다.Here, w i can be a weight (weight of the CNN of the representative image characteristic r i i) representative of the image i.
이때, 컴퓨터 장치(100)는 n 개의 대표 이미지들을 사용하여 m 개의 후보 이미지들을 재 순위화(Re-ranking)할 수 있다.At this time, the
도 3은 본 발명의 일실시예에 있어서, 후보 이미지의 재 순위화 과정의 예를 도시한 도면이다. 대표 이미지(310)는 이미 설명한 바와 같이 검색을 위한 질의(또는 키워드나 검색어)에 대응하는 주제와 적어도 하나의 대표 이미지의 집합 R을 포함할 수 있다. 일례로, 관리자는 관리 도구(320)를 이용하여 주제와 집합 R을 대표 이미지(310)로서 등록할 수 있다. 이 경우, 관리자는 하나의 주제에 대해 소량의 대표 이미지들을 등록하면 되기 때문에 개별 이미지들에 대해 레이블(label)을 추가해야 하는 부담을 없앨 수 있다.3 is a diagram illustrating an example of a process of re-ranking candidate images in an embodiment of the present invention. As described above, the
이때, 이미지들의 재 순위화를 위해 랭커(330)가 구현될 수 있다. 일례로, 검색 서버(340)가 질의에 대한 검색 결과로서의 이미지들을 랭커(330)로 전달하면, 랭커(330)는 전달된 이미지들의 재 순위화를 처리한 후, 재 순위화된 이미지들의 색인(350)을 생성할 수 있다. 이 경우, 검색 서버(340)는 색인(350)의 순위에 따라 정렬된 이미지들을 포함하는 검색 결과를 제공할 수 있게 된다. 실시예에 따라 랭커(330)는 검색 서버(340)에 포함되는 형태로 구현될 수도 있고, 또는 검색 서버(340)와는 별도의 장치로 구현되어 네트워크를 통해 검색 서버(340)와 통신하는 형태로 구현될 수도 있다.At this time, the
이때 랭커(330)는 아래 수학식 3을 이용하여 쿼리 q에 대한 이미지 j의 스코어 score(q, j)를 계산할 수 있으며, 계산된 스코어를 통해 이미지들을 재 순위화할 수 있다.At this time, the
여기서, 수학식 3은 쿼리 q에 대한 이미지 i의 기본 순위를 위한 텍스트 유사도인 BaseRanking(q, i)에 이미지 i의 대표 이미지의 집합 R에 대한 이미지 유사도인 ImageSimilarity(R, j)를 적용(합산)하여 쿼리 q에 대한 이미지 i의 스코어를 계산함을 나타내고 있다. 이때, BaseRanking(q,i)는 쿼리 q와 이미지 i를 포함하는 문서와의 텍스트 유사도를 나타내며, 이 유사도를 계산하기 위해 이미 알려진 텍스트 기반의 검색 모델링 기법들(일례로, BIM, TF-IDF, BM25 등) 중 적어도 하나가 사용될 수 있다. ImageSimilarity(R, j)는 이미 설명한 바와 같이 수학식 1 또는 수학식 2와 같이 계산될 수 있다. Here, the equation (3) for the query image i q Applying ImageSimilarity (R, j) in the image similarity degree for a set of representative images of the image i to the BaseRanking (q, i) text similarity R to the primary rank (summed) to also calculate a score of the image i to query q Is shown. At this time, BaseRanking ( q , i ) indicates the text similarity between the query q and the document including image i , and text-based search modeling techniques (eg, BIM, TF-IDF, which are already known to calculate the similarity) BM25, etc.) may be used. ImageSimilarity ( R , j ) may be calculated as
이하에서는 CNN을 이용하여 사용자 요구를 분류하는 방법에 대해 설명한다. Hereinafter, a method of classifying user requests using a CNN will be described.
도 4는 본 발명의 일실시예에 있어서, 검색 필터의 예를 도시한 도면이다. 검색 필터(410)는 사용자의 의도에 따라 미리 정의된 몇 개의 카테고리(클러스터)별 검색 필터들을 포함할 수 있다. 예를 들어, 검색 필터(410)는 "실사", "색칠공부", "컬러만화", "스케치", "클립보드", "상품", "사람", "텍스트" 등과 같이 질의에 대응하는 이미지들 중 어떠한 유형의 이미지를 원하는가를 선택하면, 해당 유형의 이미지들만을 필터링하여 제공하기 위해 활용될 수 있다. 다시 말해, 이미지 검색 필터는 사용자의 의도에 따라 미리 정의된 몇 개의 카테고리로 이미지들을 분류 및 필터링하여 제공하기 위한 기능을 포함할 수 있다. 이처럼, 검색 필터(410)는 사용자의 질의에 대한 정확한 검색 결과를 찾기 위해 사용자의 검색 요구의 유형을 분류할 수 있으며, 해당 유형으로 분류된 이미지들을 제공하기 위한 기능일 수 있다.4 is a diagram illustrating an example of a search filter in an embodiment of the present invention. The
한편, CNN을 이용하여 사용자의 의도를 분류할 수 있다. 예컨데 아래 표 1과 같이 주요 검색 필터 8종을 선정하여 8개의 레이블을 갖는 CNN 모델을 학습할 수 있다.Meanwhile, a user's intention may be classified using a CNN. For example, as shown in Table 1 below, 8 major search filters can be selected to train a CNN model with 8 labels.
(augmented)Learning data
(augmented)
(Accuracy)accuracy
(Accuracy)
학습될 CNN 모델로는 Deep CNN을 사용할 수 있으며, CNN 모델은 ImageNet 데이터로 초기화될 수 있다. 학습 데이터를 구축한 후 미세 조정(fine-tuning)과 확장(augmentation)을 통해 최종 학습 데이터가 선별될 수 있다. 사용자 의도 분류 모델은 질의 및 이미지와 연관된 클릭 정보에 기반하여 검증될 수 있다. 예컨대, 질의에 대해 이미지 검색의 검색결과로서 제공되는 이미지와 연관된 클릭 정보에 기반하여 공통적으로 클릭된 이미지의 실제 질의를 확인함으로써 사용자 의도 분류 모델이 검증될 수 있다.예를 들어, 클릭 로그 {click 1, click 2, click 3, …, click N }에서 click a = (q, d) (N은 임의의 자연수, a는 N 이하의 자연수)와 같이 질의 q와 클릭을 통해 접근한 이미지 데이터 d를 포함할 수 있다. l개의 검색 필터에 대응하는 이미지 분류 {label1, label2, ?, label l }에 대하여, 검색 컬렉션 {d 1, d 2, d 3, …, d M }에서 d b (M은 임의의 자연수, b는 M 이하의 자연수)는 해당 이미지 데이터가 어느 이미지 분류로 분류되는가에 대한 정보를 포함할 수 있다. 예를 들어, 이미지 분류 L = {0, 1, 2, 3, 4, 5, 6, 7}과 같이 앞서 표 1을 통해 설명한 8개의 주요 검색 필터들에 대응할 수 있고, d 1이 색칠공부 및 컬러만화로 분류되는 특징을 가진 이미지라면 d 1=(1 ,2)와 같이 표현될 수 있다. 이러한 클릭 로그와 검색 컬렉션을 조인함으로써, {(q 1 , label i ), (q 2 , label j ), (q 1 , label k ), …, (q x , label p )} (i, j, k, p는 l이하의 임의의 자연수)와 같이 질의와 검색 필터에 대응하는 이미지 분류 간의 관계가 얻어질 수 있으며, 이를 아래와 같이 질의별 복수의 집합들로 분류할 수 있다. 이때, 집합들 각각의 원소의 개수는 서로 달라질 수 있다. 질의별 집합의 일 예를 표현하면 다음과 같다Deep CNN can be used as the CNN model to be learned, and the CNN model can be initialized with ImageNet data. After building the training data, the final training data can be selected through fine-tuning and augmentation. The user intention classification model can be verified based on query and click information associated with the image. For example, the user intention classification model can be verified by checking the actual query of the commonly clicked image based on the click information associated with the image provided as a search result of the image search for the query. For example, click log { click 1 , click 2 , click 3 ,… , click N }, click a = ( q , d ) ( N is an arbitrary natural number, a is a natural number less than or equal to N ), and may include image data d accessed through a query q and click. For the image classification {label 1 , label 2 ,?, label l } corresponding to l search filters, the search collection { d 1 , d 2 , d 3 ,… , d M }, d b ( M is an arbitrary natural number, b is a natural number less than or equal to M ) may include information about which image classification the corresponding image data is classified into. For example, the image classification L = {0, 1, 2, 3, 4, 5, 6, 7} may correspond to the 8 main search filters described through Table 1 above, and d 1 is a coloring study and If the image has features classified as a color cartoon, it can be expressed as d 1 = (1, 2). By joining these click logs and the search collection, {( q 1 , label i ), ( q 2 , label j ), ( q 1 , label k ),… , ( q x , label p )} (i, j, k, p is an arbitrary natural number equal to or less than l ), and the relationship between the query and the image classification corresponding to the search filter can be obtained. It can be classified as a set of. At this time, the number of elements in each of the sets may be different from each other. The following is an example of a set for each query.
{(q 1, label 1 ), (q 1, label 3 ), …, (q 1, label 7 )}{( q 1 , label 1 ), ( q 1 , label 3 ),… , ( q 1 , label 7 )}
{(q 2, label 1 ), (q 2, label 2 ), (q 2, label 3 )}{( q 2 , label 1 ), ( q 2 , label 2 ), ( q 2 , label 3 )}
……
{(q k , l), (q k , l), …, (q k , l)}{( q k , l ), ( q k , l ),… , ( q k , l )}
이러한 분석을 통해 질의와 검색 필터간의 관계가 일례로 아래 표 2와 같이 얻어질 수 있다.Through this analysis, the relationship between the query and the search filter can be obtained as shown in Table 2 below as an example.
한편, 사용자 의도를 보다 세분화하기 위해, 8개의 레이블을, 예컨대 37종의 레이블로 그 분류를 확장할 수도 있다. 일례로, 아래 표 3은 검색 질의를 세분화하여 이미지 유형을 37 가지(op1~op37)로 분류한 예를 나타내고 있다. 이러한 이미지 유형은 이미지 검색의 검색 로그(클릭 로그)를 기반으로 검색어 주제(질의) 분류를 참고하여 개별 유형이 분류될 수 있다.On the other hand, in order to further refine the user's intention, the classification may be extended to eight labels, for example, 37 labels. As an example, Table 3 below shows an example of classifying the search query into 37 image types (op1 to op37). The image type may be classified into individual types by referring to a search term subject (query) classification based on a search log (click log) of the image search.
표 3의 대분류는 사용자 의도 분류 모델을 위한 사용자의 의도를 크게 비실사, 아이코닉, 실사, 텍스트 유형으로 나눈 예이며, 대분류 하에 나타난 37 가지 세부속성에서와 같이 각 대분류 안에서 보다 세분화된 모델이 개발될 수 있다.아래 표 4는 이미지 유형에 따른 세부 검색 필터의 예를 나타내고 있다.The main classification in Table 3 is an example of dividing the user's intention for the user intention classification model into non-reality, iconic, due diligence, and text types, and a more detailed model within each major classification will be developed, as shown in the 37 detailed properties under the main classification. Table 4 below shows examples of detailed search filters according to image types.
아래에서는, 분류명을 미리 정해 두지 않고, 대량의 이미지를 CNN 특징을 이용하여 클러스터링하는 방법에 대해 설명한다.In the following, a method of clustering a large number of images using CNN features without specifying a classification name in advance is described.
도 5는 본 발명의 일실시예에 따른 클러스터링 구조의 예를 도시한 도면이다. 클러스터링은 계층적으로 수행될 수 있다. 예컨대 2-depth로 클러스터링을 수행하는 실시예를 고려할 수 있다. 예를 들어, 100개의 클러스터로 클러스터링한 후, 각 클러스터들이 다시 100개로 클러스터링할 수 있다. 따라서, 1만개의 클러스터로 확장될 수 있다. 도 5는 이미지 검색 컬렉션(510)의 이미지들이 제1 점선박스(520)에 나타난 상위 레벨의 100개의 클러스터로 분류된 후, 하이 레벨의 100개의 클러스터들 각각이 포함하는 하위 레벨의 100개의 클러스터들로 분류될 수 있음을 나타내고 있다. 이때, 제2 점선박스(530)는 상위 레벨의 '클러스터 2'의 하위 레벨의 100개의 클러스터들을 나타내고 있다.5 is a diagram illustrating an example of a clustering structure according to an embodiment of the present invention. Clustering can be performed hierarchically. For example, an embodiment in which clustering is performed in 2-depth may be considered. For example, after clustering into 100 clusters, each cluster can be clustered into 100 again. Therefore, it can be expanded to 10,000 clusters. 5, after the images of the
이미지 검색 컬렉션(510)의 이미지들은 이미지들 각각의 CNN 특성을 이용하여 분류될 수 있다. 이때, 각 클러스터의 식별자는 계층 구조를 잘 나타낼 수 있도록 부여될 수 있다. 예를 들어, 하위 레벨의 클러스터의 식별자는 자신의 상위 레벨의 클러스터의 고유 번호 및 하위 계층 내에서의 고유 번호를 결합하여 부여될 수 있다. 도 6은 본 발명의 일실시예에 있어서, 클러스터로 클러스터링된 이미지들의 예를 도시한 도면이다.Images in the
이러한 클러스터링 방법의 경우, 별도의 학습 데이터 구축이 필요하지 않고 검색 컬렉션 내 이미지 특징에 따라 가변적으로 클러스터의 수를 결정할 수 있기 때문에 학습 기반 기법에 비해 매우 효과적으로 이미지를 분류할 수 있다. 또한, 재 순위화(텍스트에 대한 검색 결과로 나온 이미지 중에서 가장 많은 이미지를 포함하는 클러스터(가장 많이 나온 클러스터)에 대해서 가중치를 반영함)를 수행함에 있어서, 하위 클러스터들이 너무 세분화되어 있음에 따라 가장 많이 나온 클러스터를 찾을 수 없을 경우(다시 말해 하위 계층 분류에서 클러스터들 간의 우열을 가릴 수 없을 경우), 해당하는 클러스터들이 많이 모여있는 상위 계층 클러스터(1depth의 클러스터)를 가중치를 반영할 클러스터로서 결정할 수 있다.In the case of such a clustering method, it is possible to classify images very effectively compared to a learning-based technique because it does not need to build a separate training data and can variably determine the number of clusters according to image characteristics in a search collection. In addition, in performing re-ranking (reflecting weights for the clusters containing the most images among the images resulting from the search results for the text (the most clusters)), as the sub-clusters are too subdivided, If a large number of clusters cannot be found (in other words, it is impossible to cover the superiority between clusters in the lower layer classification), the higher layer cluster (cluster of 1depth) in which the corresponding clusters are clustered can be determined as the cluster to reflect the weight. have.
클러스터는 검색 특징으로 활용될 수 있다. 다시 말해, 클러스터는 검색 랭킹에 반영될 수 있다. 이하에서는 분류된 클러스터를 검색 랭킹에 반영할 수 있는 몇 가지 방법을 소개한다.The cluster can be used as a search feature. In other words, the cluster can be reflected in the search ranking. Below, we introduce some methods that can reflect the classified cluster in search ranking.
도 7은 본 발명의 일실시예에 있어서, 클러스터를 검색 랭킹에 반영하기 위한 예시들을 도시한 도면이다.7 is a diagram illustrating examples for reflecting a cluster in a search ranking in an embodiment of the present invention.
제1 점선박스(710)에 나타난 룰-기반(Rule-based)의 검색 방식은 질의 패턴에 따라 적합한 클러스터를 미리 정해 두고, 입력되는 질의에 대해 추출되는 질의 패턴에 따라 클러스터를 선택하는 검색 방식일 수 있다(예컨대, '~악보'로 끝나는 질의 패턴에 대해서는 '클러스터 10'이 중요한 것으로 미리 정해 놓음). 일례로, 룰-기반의 검색 방식은 접미사(Suffix) 기반의 질의 데이터베이스를 구축해놓고, 입력되는 질의에 대한 질의 패턴을 질의 데이터베이스를 통해 추출한 후, 추출된 질의 패턴에 따라 미리 정해진 클러스터에 동적으로 가중치를 반영하는 검색 방식일 수 있다.The rule-based search method shown in the first dotted
제2 점선박스(720)에 나타난 주제 모델링(Topic Modeling)의 검색 방식은 클러스터별 주제를 결정하고, 질의에 대한 주제를 추출한 후(예컨대, 주제 '패션'), 해당 주제에 대한 클러스터에 대해 동적으로 가중치를 반영하는 검색 방식일 수 있다(예컨대, 주제 '패션'과 관련된 클러스터 10, 20, 30에 가중치를 반영함).The search method of topic modeling shown in the second dotted
제3 점선박스(730)에 나타난 재 순위화(Re-ranking)의 검색 방식은 텍스트에 대한 검색 결과로 나온 이미지 중에서 가장 많은 이미지를 포함하는 클러스터(가장 많이 나온 클러스터)에 대해서 동적으로 가중치를 반영하는 검색 방식일 수 있다. 일례로, 재 순위화의 검색 방식은 초기 검색의 속성 분포 벡터를 이용하여 동적으로 가중치를 반영하는 검색 방식일 수 있다.The re-ranking search method shown in the third
전술된 룰-기반의 검색 방식, 주제 모델링의 검색 방식 및 재 순위화의 검색 방식은 각각이 별도로 사용되거나, 또는 우선 순위에 따라 선택적으로 사용될 수 있다. 예컨대, 질의에 패턴이 존재하면 룰-기반의 검색 방식을 사용하되, 패턴이 존재하지 않으면, 주제 모델링의 검색 방식을 사용하여 주제를 추출하고, 주제가 존재하지 않는 경우에는 재 순위화의 검색 방식을 활용할 수 있다. 또는, 룰-기반의 검색 방식, 주제 모델링의 검색 방식 및 재 순위화의 검색 방식 각각에 따라 얻어지는 가중치의 합을 검색 랭킹에 반영할 수도 있다.The above-described rule-based search method, the subject modeling search method, and the re-ranking search method may be used separately or may be selectively used according to priority. For example, if a pattern exists in a query, a rule-based search method is used, but if the pattern does not exist, a topic modeling search method is used to extract a topic, and if a topic does not exist, a re-ranking search method is used. Can be utilized. Alternatively, the sum of weights obtained according to the rule-based search method, the subject modeling search method, and the re-ranking search method may be reflected in the search ranking.
검색 대상 이미지가 추가되는 경우, 해당 추가 이미지는 기존에 클러스터링 되어있는 클러스터들 각각의 중심값에 기반하여 클러스터링될 수 있다. 예를 들어, 클러스터의 중심값은 클러스터에 포함된 이미지들의 CNN 특징값들의 중심값일 수 있으며, 추가 이미지의 CNN 특징값과 가장 유사한 중심값을 갖는 클러스터에 속하게 될 수 있다. 전체 이미지들은 소정의 주기로 재클러스터링되거나, 또는 클러스터들 각각의 중심값들이 소정의 주기로 업데이트될 수 있다.When an image to be searched is added, the additional image may be clustered based on the center value of each of the clusters existing in the cluster. For example, the center value of the cluster may be the center value of the CNN feature values of the images included in the cluster, and may belong to a cluster having the center value most similar to the CNN feature value of the additional image. The entire images may be re-clustered at a predetermined period, or the center values of each of the clusters may be updated at a predetermined period.
아래에서는, 검색을 통해 유사 이미지가 다수 노출되는 경우에 있어서, 유사 또는 중복 이미지를 배제하는 방법을 설명한다. 도 8은 이미지 검색에서의 기존의 중복 배제 방법의 예를 도시한 도면이고, 도 9는 본 발명의 일실시예에 있어서, 검색결과의 변형(diversification) 및 검색 컬렉션(색인 크기)의 축소를 위한 과정을 위해 개선된 방법을 설명하고 있다.Hereinafter, a method of excluding similar or duplicate images in a case in which multiple similar images are exposed through a search will be described. FIG. 8 is a diagram illustrating an example of an existing method for excluding duplicates in image search, and FIG. 9 is for an embodiment of the present invention to reduce search results (diversification) and reduce search collections (index size). Describes improved methods for the process.
도 10은 본 발명의 일실시예에 따른 이미지 검색 방법의 예를 도시한 흐름도이다. 본 실시예에 따른 이미지 검색 방법은 일례로 앞서 설명한 컴퓨터 장치(100)에 의해 수행될 수 있다. 예를 들어, 컴퓨터 장치(100)의 프로세서(120)는 메모리(110)가 포함하는 운영체제의 코드나 적어도 하나의 프로그램의 코드에 따른 제어 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(120)는 컴퓨터 장치(100)에 저장된 코드가 제공하는 제어 명령에 따라 컴퓨터 장치(100)가 도 10의 방법이 포함하는 단계들(1010 내지 1050)을 수행하도록 컴퓨터 장치(100)를 제어할 수 있다.10 is a flowchart illustrating an example of an image search method according to an embodiment of the present invention. The image search method according to the present embodiment may be performed by the
단계(1010)에서 컴퓨터 장치(100)는 주제별로 적어도 하나의 대표 이미지를 저장할 수 있다. 일례로, 하나의 주제에 대해 주제를 나타내는 텍스트(질의 / 키워드 / 검색어)와 적어도 하나의 대표 이미지가 대표 이미지 데이터베이스에 저장될 수 있다. 이러한 주제별 대표 이미지는 일례로, 도 3을 통해 설명한 바와 같이 관리자가 관리 도구(320)를 통해 등록할 수 있다.In
단계(1020)에서 컴퓨터 장치(100)는 질의에 대한 검색 결과에 포함된 적어도 하나의 후보 이미지를 확인할 수 있다. 일실시예에서 질의에 따른 후보 이미지들은 컴퓨터 장치(100)가 포함하는 검색 엔진을 통해 검색되는 이미지들을 포함할 수 있다. 다른 실시예로, 질의에 따른 후보 이미지들은 별도의 검색 서버를 통해 검색되는 이미지들을 포함할 수 있으며, 이때 컴퓨터 장치(100)는 단계(1020)에서 검색 서버와 통신하여 후보 이미지들을 수신할 수 있다. 후보 이미지가 선정되는 방식에 대해서는 이후 도 11을 통해 더욱 자세히 설명한다.In
단계(1030)에서 컴퓨터 장치(100)는 질의에 대응하는 주제에 대한 적어도 하나의 대표 이미지의 특징값을 획득할 수 있다. 일례로, 컴퓨터 장치(100)는 단계(1010)에서 주제별로 저장된 적어도 하나의 대표 이미지 중, 질의에 대응하는 주제에 대해 저장된 적어도 하나의 대표 이미지를 추출할 수 있다. 이때, 추출된 적어도 하나의 대표 이미지의 특징값은 추출된 적어도 하나의 대표 이미지 각각에 대해 CNN(Convolutional Neural Network)을 통해 얻어지는 특징값을 포함할 수 있다.In
단계(1040)에서 컴퓨터 장치(100)는 적어도 하나의 대표 이미지의 특징값과 적어도 하나의 후보 이미지의 특징값을 이용하여 적어도 하나의 후보 이미지 각각에 대해 적어도 하나의 대표 이미지 각각에 대한 이미지 유사도를 계산할 수 있다. 예를 들어, 컴퓨터 장치(100)는 적어도 하나의 대표 이미지의 특징값과 적어도 하나의 후보 이미지의 특징값간의 코사인 거리(cosine distance)를 이용하여 이미지 유사도를 계산할 수 있다. 이러한 이미지 유사도 계산 방식의 예는 수학식 1 및 수학식 2를 통해 이미 설명한 바 있다. 수학식 2에서는 대표 이미지별로 가중치를 부여하여 이미지 유사도를 계산하는 방식을 나타내고 있다. 여기서 적어도 하나의 후보 이미지의 특징값은 적어도 하나의 후보 이미지 각각에 대해 CNN을 통해 얻어지는 특징값을 포함할 수 있다.In
단계(1050)에서 컴퓨터 장치(100)는 계산된 이미지 유사도를 이용하여 검색 결과에서의 적어도 하나의 후보 이미지의 랭킹에 반영할 수 있다. 후보 이미지의 재 순위화는 일례로 수학식 3을 통해 설명한 바 있다. 예를 들어, 컴퓨터 장치(100)는 적어도 하나의 후보 이미지 각각에 대해 텍스트 기반 검색 모델링 기법을 통해 얻어지는 텍스트 유사도에 계산된 이미지 유사도를 적용하여 적어도 하나의 후보 이미지 각각의 스코어를 계산하고, 계산된 스코어에 따라 텍스트 유사도에 따른 적어도 하나의 후보 이미지의 기본 순위를 재 순위화(re-ranking)할 수 있다. 이때, 재 순위화는 별도의 기본 순위가 결정되지 않는 경우, 컴퓨터 장치(100)가 텍스트 유사도에 이미지 유사도를 적용하여 후보 이미지들 각각의 순위를 결정하는 것을 포함할 수 있다.In
한편, 일실시예에서 컴퓨터 장치(100)는 사용자 의도를 분류하기 위해 이미지 기반 검색 모델을 활용할 수도 있다. 예를 들어, 컴퓨터 장치(100)는 사용자의 의도에 따라 기 정의된 복수의 카테고리로 분류된 이미지들을 이용하여 이미지 기반 검색 모델이 입력되는 이미지에 대응하는 카테고리를 결정하도록 상기 이미지 기반 검색 모델을 학습할 수 있으며, 사용자의 질의에 의해 제공된 이미지들 중 사용자에 의해 선택된 이미지를 이미지 기반 검색 모델에 입력하여 선택된 이미지에 대응하는 카테고리를 사용자의 의도로서 결정할 수 있다. 이러한 이미지 기반 검색 모델은 사용자의 질의 및 선택된 이미지와 연관된 클릭 정보에 기반하여 검증될 수 있다. 앞서 클릭 로그와 검색 컬렉션을 통해 질의와 카테고리를 연관시키는 실시예를 자세히 설명한 바 있다. 이러한 이미지 기반 검색 모델로서 일례로, CNN 모델이 활용될 수 있다.Meanwhile, in one embodiment, the
이처럼, 본 실시예에서는 질의에 대한 검색 결과에 포함된 적어도 하나의 후보 이미지의 순위를 후보 이미지와 대표 이미지의 특징값(일례로, CNN 특징값)에 따른 이미지 유사도를 이용하여 재 순위화함으로써, 보다 사용자의 의도에 알맞은 이미지를 제공할 수 있다. 또한, 이미지 기반 검색 모델(일례로, CNN 모델)은 사용자 의도를 분류하기 위해서도 활용될 수 있다. 질의에 대해 결정되는 사용자 의도는 질의에 따라 후보 이미지를 선정하기 위한 검색 특징으로서 활용될 수 있다.As described above, in the present embodiment, the ranking of at least one candidate image included in the search result for the query is re-ranked using image similarity according to the feature values (eg, CNN feature values) of the candidate image and the representative image, It is possible to provide an image more suited to the user's intention. Also, an image-based search model (eg, a CNN model) may be utilized to classify user intentions. The user intention determined for the query may be utilized as a search feature for selecting candidate images according to the query.
한편, 이후 도 11을 통해 후보 이미지를 선정하기 위한 다른 실시예를 설명한다. 도 11은 본 발명의 일실시예에 따른 후보 이미지 선정 방식의 예를 도시한 흐름도이다. 도 11의 단계들(1110 내지 1150)은 도 10을 통해 설명한 이미지 검색 방법에 포함되는 단계들일 수 있다. 예를 들어, 단계(1110)는 단계(1010) 이전이나 단계(1020) 이전에 포함될 수 있으며, 단계(1120) 및 단계(1130)는 단계(1020)에 포함될 수 있다. 또한, 단계(1140) 및 단계(1150)은 단계(1110) 이후에 포함되어 도 10의 단계들(1010 내지 1040)과는 병렬적으로 수행될 수 있다. 다른 실시예로, 도 11의 단계들(1110 내지 1150)은 그 자체로 하나의 이미지 검색 방법이 될 수도 있다. 예를 들어, 결정되는 후보 이미지들이 재 순위화 없이 질의에 대한 검색 결과에 포함되어 제공될 수도 있다.Meanwhile, another embodiment for selecting a candidate image will be described later with reference to FIG. 11. 11 is a flowchart illustrating an example of a candidate image selection method according to an embodiment of the present invention. The
단계(1110)에서 컴퓨터 장치(100)는 복수의 이미지들을 복수의 이미지들 각각의 특징값을 이용하여 복수의 클러스터로 클러스터링할 수 있다. 이때, 복수의 클러스터는 이미 설명한 바와 같이, 복수의 계층(일례로, 도 5의 상위 레벨 및 하위 레벨)으로 구성될 수도 있다.In
단계(1120)에서 컴퓨터 장치(100)는 룰-기반의 검색 방식, 주제 모델링의 검색 방식 및 재 순위화의 검색 방식 중 적어도 하나의 검색 방식에 따라 클러스터에 가중치를 부여할 수 있다. 여기서, 룰-기반의 검색 방식은 복수의 클러스터 각각에 대응하는 질의 패턴을 저장하고, 복수의 클러스터 중 질의에 대해 추출되는 질의 패턴에 대응하는 클러스터에 동적으로 가중치를 부여하는 검색 방식일 수 있다. 또한, 주제 모델링의 검색 방식은 복수의 클러스터 각각에 대응하는 주제를 저장하고, 복수의 클러스터 중 질의에 대해 추출되는 주제에 대응하는 클러스터에 동적으로 가중치를 부여하는 검색 방식일 수 있다. 또한, 재 순위화의 검색 방식은 복수의 클러스터들 각각에 질의를 통해 검색된 이미지들이 포함된 수에 기초하여 클러스터에 동적으로 가중치를 부여하는 검색 방식일 수 있다. 이미 설명한 바와 같이, 검색 방식은 상황에 따라 동적으로 선택되거나 둘 이상의 검색 방식이 동시에 활용되어 가중치들의 합이 이용될 수도 있다.In
단계(1130)에서 컴퓨터 장치(100)는 부여된 가중치에 기반하여 선택되는 클러스터에 포함된 이미지들을 후보 이미지로서 결정할 수 있다. 결정된 후보 이미지들은 도 10에서 확인되는 후보 이미지들에 대응할 수 있다. 다른 실시예에서 후보 이미지들의 재 순위화가 적용되지 않는 경우, 이러한 후보 이미지들이 질의에 따른 검색 결과에 포함될 수 있다.In
단계(1140)에서 컴퓨터 장치(100)는 이미지가 추가되는 경우, 추가되는 이미지의 특징값과, 복수의 클러스터 각각이 포함하는 이미지들의 특징값들의 중심값에 기반하여 추가되는 이미지가 포함될 클러스터를 결정할 수 있다. 다시 말해, 새롭게 추가되는 이미지 역시 특징값을 이용하여 클러스터링될 수 있다.In
단계(1150)에서 컴퓨터 장치(100)는 주기마다 복수의 이미지들을 재클러스터링하거나 또는 중심값을 업데이트할 수 있다. 이러한 재클러스터링이나 중심값의 업데이트는 새롭게 추가되는 이미지들에 의해 클러스터의 CNN 특징값이 변경되는 것을 반영하기 위해 이루어질 수 있다.In
이와 같이, 본 발명의 실시예들에 따르면, 검색 결과로서 사용자의 검색 의도에 보다 부합하는 이미지 검색 결과를 제공할 수 있다.As described above, according to embodiments of the present invention, as a search result, an image search result more suited to a user's search intention may be provided.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented with hardware components, software components, and / or combinations of hardware components and software components. For example, the devices and components described in the embodiments include, for example, a processor, controller, arithmetic logic unit (ALU), digital signal processor (micro signal processor), microcomputer, field programmable array (FPA), It may be implemented using one or more general purpose computers or special purpose computers, such as a programmable logic unit (PLU), microprocessor, or any other device capable of executing and responding to instructions. The processing device may run an operating system (OS) and one or more software applications running on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of understanding, a processing device may be described as one being used, but a person having ordinary skill in the art, the processing device may include a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that may include. For example, the processing device may include a plurality of processors or a processor and a controller. In addition, other processing configurations, such as parallel processors, are possible.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instruction, or a combination of one or more of these, and configure the processing device to operate as desired, or process independently or collectively You can command the device. Software and / or data may be interpreted by a processing device, or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodied in the transmitted signal wave. The software may be distributed on networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, or the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiments or may be known and usable by those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, DVDs, and magnetic media such as floptical disks. -Hardware devices specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language code that can be executed by a computer using an interpreter, etc., as well as machine language codes produced by a compiler. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by a limited embodiment and drawings, those skilled in the art can make various modifications and variations from the above description. For example, the described techniques are performed in a different order than the described method, and / or the components of the described system, structure, device, circuit, etc. are combined or combined in a different form from the described method, or other components Alternatively, even if replaced or substituted by equivalents, appropriate results can be achieved.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
Claims (20)
상기 적어도 하나의 프로세서에 의해, 질의에 대한 검색 결과에 포함된 적어도 하나의 후보 이미지를 확인하는 단계;
상기 적어도 하나의 프로세서에 의해, 상기 질의에 대응하는 주제에 대한 적어도 하나의 대표 이미지의 특징값을 획득하는 단계;
상기 적어도 하나의 프로세서에 의해, 상기 적어도 하나의 대표 이미지의 특징값 및 상기 적어도 하나의 후보 이미지의 특징값을 이용하여 상기 적어도 하나의 후보 이미지 각각에 대해 상기 적어도 하나의 대표 이미지 각각에 대한 이미지 유사도를 계산하는 단계; 및
상기 적어도 하나의 프로세서에 의해, 상기 계산된 이미지 유사도를 상기 검색 결과에서의 상기 적어도 하나의 후보 이미지의 랭킹에 반영하는 단계
를 포함하는 이미지 검색 방법.A method for retrieving an image of a computer device including at least one processor, the method comprising:
Checking, by the at least one processor, at least one candidate image included in a search result for a query;
Obtaining, by the at least one processor, a feature value of at least one representative image of a subject corresponding to the query;
Image similarity for each of the at least one representative image for each of the at least one candidate image by using the feature values of the at least one representative image and the feature values of the at least one candidate image by the at least one processor Calculating; And
Reflecting, by the at least one processor, the calculated image similarity in the ranking of the at least one candidate image in the search result.
Image search method comprising a.
상기 이미지 유사도를 계산하는 단계는,
상기 적어도 하나의 대표 이미지의 특징값과 상기 적어도 하나의 후보 이미지의 특징값간의 코사인 거리(cosine distance)를 이용하여 상기 이미지 유사도를 계산하는 것을 특징으로 하는 이미지 검색 방법.According to claim 1,
The step of calculating the image similarity,
And calculating the image similarity using a cosine distance between the feature values of the at least one representative image and the feature values of the at least one candidate image.
상기 랭킹에 반영하는 단계는,
상기 적어도 하나의 후보 이미지 각각에 대해 텍스트 기반 검색 모델링 기법을 통해 얻어지는 텍스트 유사도에 상기 계산된 이미지 유사도를 적용하여 상기 적어도 하나의 후보 이미지 각각의 스코어를 계산하고, 상기 계산된 스코어에 따라 상기 텍스트 유사도에 따른 상기 적어도 하나의 후보 이미지의 기본 순위를 재 순위화(re-ranking)하는 것을 특징으로 하는 이미지 검색 방법.According to claim 1,
Steps reflected in the ranking,
The score of each of the at least one candidate image is calculated by applying the calculated image similarity to text similarity obtained through a text-based search modeling technique for each of the at least one candidate image, and the text similarity is calculated according to the calculated score And re-ranking the basic rank of the at least one candidate image according to the image search method.
사용자의 의도에 따라 기 정의된 복수의 카테고리로 분류된 이미지들을 이용하여 이미지 기반 검색 모델이 입력되는 이미지에 대응하는 카테고리를 결정하도록 상기 이미지 기반 검색 모델을 학습하는 단계; 및
상기 사용자의 질의에 의해 제공된 이미지들 중 상기 사용자에 의해 선택된 이미지를 상기 이미지 기반 검색 모델에 입력하여 상기 선택된 이미지에 대응하는 카테고리를 상기 사용자의 의도로서 결정하는 단계
를 더 포함하는 이미지 검색 방법.According to claim 1,
Learning the image-based search model to determine a category corresponding to an image to which an image-based search model is input using images classified into a plurality of predefined categories according to a user's intention; And
Determining a category corresponding to the selected image as the user's intention by inputting an image selected by the user from among images provided by the user's query into the image-based search model
Image search method further comprising a.
상기 사용자의 질의 및 상기 선택된 이미지와 연관된 클릭 정보에 기반하여 상기 이미지 기반 검색 모델을 검증하는 단계
를 더 포함하는 이미지 검색 방법.According to claim 4,
Verifying the image-based search model based on the user's query and click information associated with the selected image
Image search method further comprising a.
상기 적어도 하나의 프로세서에 의해, 복수의 이미지들을 상기 복수의 이미지들 각각의 특징값을 이용하여 복수의 클러스터로 클러스터링하는 단계
를 더 포함하고,
상기 적어도 하나의 후보 이미지를 확인하는 단계는,
상기 복수의 클러스터들 중 상기 질의에 대응하는 클러스터에 포함된 이미지들을 상기 후보 이미지들로 확인하는 것을 특징으로 하는 이미지 검색 방법.According to claim 1,
Clustering, by the at least one processor, a plurality of images into a plurality of clusters using feature values of each of the plurality of images.
Further comprising,
Checking the at least one candidate image,
An image search method characterized in that the images included in the cluster corresponding to the query among the plurality of clusters are identified as the candidate images.
상기 적어도 하나의 후보 이미지를 확인하는 단계는,
상기 복수의 클러스터 각각에 대응하는 질의 패턴을 저장하고, 상기 복수의 클러스터 중 상기 질의에 대해 추출되는 질의 패턴에 대응하는 클러스터에 동적으로 가중치를 부여하는 것을 특징으로 하는 이미지 검색 방법.The method of claim 6,
Checking the at least one candidate image,
An image retrieval method characterized by storing a query pattern corresponding to each of the plurality of clusters, and dynamically weighting a cluster corresponding to a query pattern extracted for the query among the plurality of clusters.
상기 적어도 하나의 후보 이미지를 확인하는 단계는,
상기 복수의 클러스터 각각에 대응하는 주제를 저장하고, 상기 복수의 클러스터 중 상기 질의에 대해 추출되는 주제에 대응하는 클러스터에 동적으로 가중치를 부여하는 것을 특징으로 하는 이미지 검색 방법.The method of claim 6,
Checking the at least one candidate image,
The image retrieval method, characterized in that the subject corresponding to each of the plurality of clusters is stored and the cluster corresponding to the subject extracted for the query among the plurality of clusters is dynamically weighted.
상기 적어도 하나의 후보 이미지를 확인하는 단계는,
상기 복수의 클러스터들 각각에 상기 질의를 통해 검색된 이미지들이 포함된 수에 기초하여 클러스터에 동적으로 가중치를 부여하는 것을 특징으로 하는 이미지 검색 방법.The method of claim 6,
Checking the at least one candidate image,
An image search method characterized in that the clusters are dynamically weighted based on the number of images included through the query to each of the plurality of clusters.
이미지가 추가되는 경우, 상기 추가되는 이미지의 특징값과, 상기 복수의 클러스터 각각이 포함하는 이미지들의 특징값들의 중심값에 기반하여 상기 추가되는 이미지가 포함될 클러스터를 결정하는 단계
를 더 포함하는 이미지 검색 방법.The method of claim 6,
When an image is added, determining a cluster in which the added image is to be included based on the feature values of the added image and the center values of the feature values of the images included in each of the plurality of clusters.
Image search method further comprising a.
주기마다 상기 복수의 이미지들을 재클러스터링하거나 또는 상기 중심값을 업데이트하는 단계
를 더 포함하는 이미지 검색 방법.The method of claim 10,
Reclustering the plurality of images every period or updating the center value
Image search method further comprising a.
상기 적어도 하나의 대표 이미지의 특징값과 상기 적어도 하나의 후보 이미지의 특징값 각각은 상기 적어도 하나의 대표 이미지 각각에 대해, 그리고 상기 적어도 하나의 후보 이미지 각각에 대해 CNN(Convolutional Neural Network)을 통해 얻어지는 특징값을 포함하는 것을 특징으로 하는 이미지 검색 방법.According to claim 1,
Each feature value of the at least one representative image and each feature value of the at least one candidate image is obtained through a convolutional neural network (CNN) for each of the at least one representative image and for each of the at least one candidate image. Image search method characterized in that it comprises a feature value.
상기 컴퓨터 장치에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
를 포함하고,
상기 적어도 하나의 프로세서에 의해,
질의에 대한 검색 결과에 포함된 적어도 하나의 후보 이미지를 확인하고,
상기 질의에 대응하는 주제에 대한 적어도 하나의 대표 이미지의 특징값을 획득하고,
상기 적어도 하나의 대표 이미지의 특징값 및 상기 적어도 하나의 후보 이미지의 특징값을 이용하여 상기 적어도 하나의 후보 이미지 각각에 대해 상기 적어도 하나의 대표 이미지 각각에 대한 이미지 유사도를 계산하고,
상기 계산된 이미지 유사도를 이용하여 상기 검색 결과에서의 상기 적어도 하나의 후보 이미지의 랭킹에 반영하는 것
을 특징으로 하는 컴퓨터 장치.In the computer device,
At least one processor implemented to execute readable instructions on the computer device
Including,
By the at least one processor,
Identify at least one candidate image included in the search result for the query,
Acquire feature values of at least one representative image for a topic corresponding to the query,
Calculating image similarity for each of the at least one representative image for each of the at least one candidate image by using the feature values of the at least one representative image and the feature values of the at least one candidate image,
Reflecting the ranking of the at least one candidate image in the search result using the calculated image similarity
Computer device characterized in that.
상기 적어도 하나의 프로세서에 의해,
상기 적어도 하나의 대표 이미지의 특징값과 상기 적어도 하나의 후보 이미지의 특징값간의 코사인 거리(cosine distance)를 이용하여 상기 이미지 유사도를 계산하는 것
을 특징으로 하는 컴퓨터 장치.The method of claim 15,
By the at least one processor,
Calculating the similarity of the image by using a cosine distance between the feature value of the at least one representative image and the feature value of the at least one candidate image
Computer device characterized in that.
상기 적어도 하나의 프로세서에 의해,
상기 적어도 하나의 후보 이미지 각각에 대해 텍스트 기반 검색 모델링 기법을 통해 얻어지는 텍스트 유사도에 상기 계산된 이미지 유사도를 적용하여 상기 적어도 하나의 후보 이미지 각각의 스코어를 계산하고, 상기 계산된 스코어에 따라 상기 텍스트 유사도에 따른 상기 적어도 하나의 후보 이미지의 기본 순위를 재 순위화(re-ranking)하는 것
을 특징으로 하는 컴퓨터 장치.The method of claim 15,
By the at least one processor,
The score of each of the at least one candidate image is calculated by applying the calculated image similarity to text similarity obtained through a text-based search modeling technique for each of the at least one candidate image, and the text similarity is calculated according to the calculated score Re-ranking the basic ranking of the at least one candidate image according to
Computer device characterized in that.
상기 적어도 하나의 프로세서에 의해,
사용자의 의도에 따라 기 정의된 복수의 카테고리로 분류된 이미지들을 이용하여 이미지 기반 검색 모델이 입력되는 이미지에 대응하는 카테고리를 결정하도록 상기 이미지 기반 검색 모델을 학습하고,
상기 사용자의 질의에 의해 제공된 이미지들 중 상기 사용자에 의해 선택된 이미지를 상기 이미지 기반 검색 모델에 입력하여 상기 선택된 이미지에 대응하는 카테고리를 상기 사용자의 의도로서 결정하는 것
을 특징으로 하는 컴퓨터 장치.The method of claim 15,
By the at least one processor,
The image-based search model is trained to determine a category corresponding to an image to which an image-based search model is input by using images classified into a plurality of predefined categories according to a user's intention,
Determining a category corresponding to the selected image as the user's intention by inputting an image selected by the user from among images provided by the user's query into the image-based search model
Computer device characterized in that.
상기 적어도 하나의 프로세서에 의해,
상기 적어도 하나의 프로세서에 의해, 복수의 이미지들을 상기 복수의 이미지들 각각의 특징값을 이용하여 복수의 클러스터로 클러스터링하고,
상기 복수의 클러스터들 중 상기 질의에 대응하는 클러스터에 포함된 이미지들을 상기 후보 이미지들로 확인하는 것
을 특징으로 하는 컴퓨터 장치.The method of claim 15,
By the at least one processor,
Clustering a plurality of images into a plurality of clusters using the feature values of the plurality of images by the at least one processor,
Identifying the images included in the cluster corresponding to the query among the plurality of clusters as the candidate images
Computer device characterized in that.
상기 적어도 하나의 프로세서에 의해,
상기 복수의 클러스터 각각에 대응하는 질의 패턴을 저장하고, 상기 복수의 클러스터 중 상기 질의에 대해 추출되는 질의 패턴에 대응하는 클러스터에 동적으로 가중치를 부여하는 룰-기반(Rule-based)의 검색 방식;
상기 복수의 클러스터 각각에 대응하는 주제를 저장하고, 상기 복수의 클러스터 중 상기 질의에 대해 추출되는 주제에 대응하는 클러스터에 동적으로 가중치를 부여하는 주제 모델링(Topic Modeling)의 검색 방식; 및
상기 복수의 클러스터들 각각에 상기 질의를 통해 검색된 이미지들이 포함된 수에 기초하여 클러스터에 동적으로 가중치를 부여하는 재 순위화(Re-ranking)의 검색 방식
중 적어도 하나의 검색 방식을 통해 상기 후보 이미지를 확인하는 것
을 특징으로 하는 컴퓨터 장치.The method of claim 19,
By the at least one processor,
A rule-based search scheme for storing a query pattern corresponding to each of the plurality of clusters and dynamically weighting a cluster corresponding to a query pattern extracted for the query among the plurality of clusters;
A topic modeling search method that stores topics corresponding to each of the plurality of clusters and dynamically weights a cluster corresponding to a topic extracted for the query among the plurality of clusters; And
A re-ranking search method that dynamically weights a cluster based on the number of images included through the query in each of the plurality of clusters
Identifying the candidate image through at least one search method
Computer device characterized in that.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019186779A JP6810780B2 (en) | 2018-10-11 | 2019-10-10 | CNN infrastructure image search method and equipment |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180121175 | 2018-10-11 | ||
KR20180121175 | 2018-10-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200044644A true KR20200044644A (en) | 2020-04-29 |
KR102215082B1 KR102215082B1 (en) | 2021-02-10 |
Family
ID=70466734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190015457A KR102215082B1 (en) | 2018-10-11 | 2019-02-11 | Apparatus and method for searching image based on convolutional neural network |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102215082B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114238744A (en) * | 2021-12-21 | 2022-03-25 | 支付宝(杭州)信息技术有限公司 | Data processing method, device and equipment |
WO2022149784A1 (en) * | 2021-01-06 | 2022-07-14 | Samsung Electronics Co., Ltd. | Method and electronic device for detecting candid moment in image frame |
WO2024019336A1 (en) * | 2022-07-20 | 2024-01-25 | 한양대학교 산학협력단 | Design image clustering method and apparatus |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130129725A (en) * | 2012-05-21 | 2013-11-29 | 주식회사 다음커뮤니케이션 | Search system and method of search service |
JP2017188063A (en) * | 2016-04-04 | 2017-10-12 | 公立大学法人大阪市立大学 | Image search system, image search method, and image search program |
-
2019
- 2019-02-11 KR KR1020190015457A patent/KR102215082B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130129725A (en) * | 2012-05-21 | 2013-11-29 | 주식회사 다음커뮤니케이션 | Search system and method of search service |
JP2017188063A (en) * | 2016-04-04 | 2017-10-12 | 公立大学法人大阪市立大学 | Image search system, image search method, and image search program |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022149784A1 (en) * | 2021-01-06 | 2022-07-14 | Samsung Electronics Co., Ltd. | Method and electronic device for detecting candid moment in image frame |
CN114238744A (en) * | 2021-12-21 | 2022-03-25 | 支付宝(杭州)信息技术有限公司 | Data processing method, device and equipment |
WO2024019336A1 (en) * | 2022-07-20 | 2024-01-25 | 한양대학교 산학협력단 | Design image clustering method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
KR102215082B1 (en) | 2021-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101768521B1 (en) | Method and system providing informational data of object included in image | |
Jiang et al. | Learning query and document relevance from a web-scale click graph | |
CN111667022A (en) | User data processing method and device, computer equipment and storage medium | |
CN110476151A (en) | It is selected using the K of parallel processing | |
CN107209861A (en) | Use the data-optimized multi-class multimedia data classification of negative | |
WO2016107326A1 (en) | Search recommending method and device based on search terms | |
JP6629935B2 (en) | Deep learning learning method and system for categorizing documents | |
KR102046692B1 (en) | Method and System for Entity summarization based on multilingual projected entity space | |
CN105893573B (en) | A kind of location-based multi-modal media data subject distillation model | |
KR102215082B1 (en) | Apparatus and method for searching image based on convolutional neural network | |
CN114298122B (en) | Data classification method, apparatus, device, storage medium and computer program product | |
US11514054B1 (en) | Supervised graph partitioning for record matching | |
CN112262380A (en) | Providing query recommendations | |
US20220366139A1 (en) | Rule-based machine learning classifier creation and tracking platform for feedback text analysis | |
CN111783903A (en) | Text processing method, text model processing method and device and computer equipment | |
CN112131884B (en) | Method and device for entity classification, method and device for entity presentation | |
CN116578729B (en) | Content search method, apparatus, electronic device, storage medium, and program product | |
US20220147547A1 (en) | Analogy based recognition | |
Park et al. | Automatic extraction of user’s search intention from web search logs | |
CN116956117A (en) | Method, device, equipment, storage medium and program product for identifying label | |
Kashevnik et al. | Context-driven tour planning service: an approach based on synthetic coordinates recommendation | |
JP6810780B2 (en) | CNN infrastructure image search method and equipment | |
Chan et al. | Cognitive location-aware information retrieval by agent-based semantic matching | |
KR20230151704A (en) | Method, computer device, and computer program to provide recommendation based on local knowledge graph | |
Inder et al. | K-DIME: a software framework for Kansei filtering of internet material |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |