KR20220095562A - 이미지 객체 검색을 위한 효율적인 분산 인-메모리 고차원 색인 시스템 - Google Patents

이미지 객체 검색을 위한 효율적인 분산 인-메모리 고차원 색인 시스템 Download PDF

Info

Publication number
KR20220095562A
KR20220095562A KR1020200187203A KR20200187203A KR20220095562A KR 20220095562 A KR20220095562 A KR 20220095562A KR 1020200187203 A KR1020200187203 A KR 1020200187203A KR 20200187203 A KR20200187203 A KR 20200187203A KR 20220095562 A KR20220095562 A KR 20220095562A
Authority
KR
South Korea
Prior art keywords
data
query
distributed
range
dimensional
Prior art date
Application number
KR1020200187203A
Other languages
English (en)
Other versions
KR102437799B1 (ko
Inventor
위지원
최도진
임종태
복경수
송재오
유재수
Original Assignee
충북대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 충북대학교 산학협력단 filed Critical 충북대학교 산학협력단
Priority to KR1020200187203A priority Critical patent/KR102437799B1/ko
Publication of KR20220095562A publication Critical patent/KR20220095562A/ko
Application granted granted Critical
Publication of KR102437799B1 publication Critical patent/KR102437799B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06K9/627
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7837Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using objects detected or recognised in the video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/783Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/7847Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using low-level visual features of the video content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 분산 인-메모리 고차원 색인 시스템에 관한 것으로서, 고차원 데이터의 분배와 질의 처리를 할당하기 위한 슬레이브를 선정하되, 고차원 데이터를 양자화하고, 차원별 모 분산을 계산한 후, 분할 축과 값을 선택하여 데이터를 영역별로 분할하고, 분할된 영역 정보를 이용하여 k-d 트리를 구축하는 마스터 노드 및 상기 마스터 노드에서 전달받은 데이터를 기반으로 원본 특징 데이터를 색인하고 질의를 처리하되, 상기 k-d 트리의 분할 영역을 기반으로 색인을 구축하는 하나 이상의 슬레이브 노드를 포함한다.

Description

이미지 객체 검색을 위한 효율적인 분산 인-메모리 고차원 색인 시스템 {Efficient Distributed In-memory High-dimensional Indexing System for Searching Objects in Images}
본 발명은 이미지 객체 검색 기술에 관한 것으로서, 더욱 상세하게는 이미지 객체 검색을 위한 분산 인-메모리 색인 기법에 관한 것이다.
CCTV 또는 일반 비디오 영상 내에 포함된 특정 객체를 검색하거나, 특정 객체의 지속적인 추적을 위해서는 정확한 객체의 인식이 필요하다. 정확한 객체 인식을 위해서는 객체의 특징으로 객체를 찾거나 두 객체가 같은 객체인지를 비교할 수 있는 객체 및 이미지 유사도 검색 기술이 필요하다. 이때, 객체에서 추출한 특징을 이용하여 이미지들을 검색하는 기법을 내용 기반 이미지 검색(CBIR: Content-based Image Retrieval)이라고 한다.
내용 기반 이미지 검색은 주로 이미지 간 유사도를 계산하여 이미지를 검색하고 검색 요청과 일치하는 데이터를 검색하는 데 사용된다. 내용 기반 이미지 검색을 수행하기 위해서는 특정 객체에서 추출할 수 있는 특징들을 기반으로 이미지 검색을 수행한다. 인공지능 및 기계 학습과 같은 신기술의 발달로 인하여 이미지 객체의 다양한 특징을 추출하는 연구들이 존재하고 있다.
객체의 특징이란 한 객체에 대한 색감, 조도, 모양, 질감, 골격 구조 등과 같은 다른 객체와 차별화되어 가지고 있는 특성을 의미한다. 다양하게 제공되는 특징들은 정확한 객체의 검출 및 비교를 위하여 점차 특징들의 종류가 다양해지고 있으며, 추출되는 값들은 점차 고차원화되고 있다. 이미지 검색 또는 이미지에 포함된 객체에서 추출된 특징이 고차원화 됨에 따라서 유사한 이미지 또는 객체를 검색 및 비교하기 위해서는 고차원의 이미지에 대한 유사도 검색 기술이 필요하다. 또한, 고차원 데이터의 유사도 검색을 위한 색인 구조 또한 고차원의 데이터의 특성에 맞추어 적절하게 구축되어야 한다.
기존 기법에서는 이를 위해 다양한 연구를 진행하였다. 인-메모리 분산 색인(In-Memory Distributed Indexing) 기법에서는 효율적으로 고차원의 특징 데이터를 이용한 이미지 검색을 수행하기 위한 분산 인-메모리 기반의 고차원 색인 기법을 제안했다. 이 연구에서는 분산 인-메모리 기반으로 구현하기 위하여 빅데이터 분석 플랫폼 스파크를 활용하였으며, 색인 알고리즘으로는 M-트리를 사용하여 M-트리 기반의 분산 인-메모리 색인을 구축하였다.
D-MVP 기법에서는 공항 비디오 모니터링 시스템에서 효율적인 이미지 검색을 수행하기 위하여 분산 색인 질의 처리를 위한 마스터/슬레이브 모델을 활용하였고, 분산 MVP-트리를 제안하여 MVP-트리 기반의 마스터/슬레이브 모델을 제안하였다. PANDA 기법에서는 가장 유사한 이미지 k개를 찾기 위한 k-최근접 처리의 성능을 증대시키기 위해서 색인 알고리즘으로 분산 k-d 트리를 제안하였다.
기존 기법들이 제안한 색인 기법으로 질의 처리를 수행하는 경우 다양한 문제점을 가질 수 있다. PANDA 기법에서는 분배되는 데이터의 양에 따라 k-d 트리의 높이가 높아져 탐색시간이 증가할 수 있다. 또한, k-d 트리를 사용할 경우 k-최근 질의 처리를 수행하기 위해서 백트래킹 연산이 빈번하게 발생한다. D-MVP 기법에서는 대용량 고차원 데이터를 인-메모리에 적재하기 힘들다는 문제점이 있다. 더불어 k-d 트리와 마찬가지로 백트래킹 연산이 빈번하게 발생하는 문제점을 내포한다. 인-메모리 분산 색인(In-Memory Distributed Indexing) 기법에서는 분산으로 구축된 모든 서버가 질의 처리에 참여하기 때문에 사용자의 검색 요청이 동시다발적으로 갑작스레 많이 발생하는 경우, 모든 서버의 부하가 증가할 수 있는 문제점이 존재한다.
기존의 질의 처리 시 문제점을 해결하기 위해서는 다음과 같은 내용이 요구된다. 첫째, 트리 높이에 의해 탐색 시간이 영향을 받지 않도록 트리 인덱스를 사용할 시 트리의 깊이를 일정하게 유지해야 한다. 둘째, 백트래킹 연산이 일어나지 않도록 실제 질의가 처리 되는 부분은 트리 형태가 아닌 시퀀스 형태의 인덱스 형태여야 한다. 셋째, 질의 처리에 사용되는 데이터는 대용량이기 때문에 전체 인-메모리에 적재될 수 있어야 한다. 넷째, 질의에 참여할 노드는 특정 기준에 의해 필터링 될 수 있어야 한다.
공개특허 10-2020-0026373
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 대용량 고차원 데이터에서 효율적인 내용 기반 이미지 검색을 위해서 마스터/슬레이브 구조의 고차원 색인 기법을 제공하는데 그 목적이 있다.
또한, 고차원 벡터 데이터를 색인을 구축하기 위해서 분산 인-메모리 기반의 플랫폼인 스파크를 활용하는 기법을 제공하는데 그 다른 목적이 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
이와 같은 목적을 달성하기 위한 본 발명은 분산 인-메모리 고차원 색인 시스템에 관한 것으로서, 고차원 데이터의 분배와 질의 처리를 할당하기 위한 슬레이브를 선정하되, 고차원 데이터를 양자화하고, 차원별 모 분산을 계산한 후, 분할 축과 값을 선택하여 데이터를 영역별로 분할하고, 분할된 영역 정보를 이용하여 k-d 트리를 구축하는 마스터 노드 및 상기 마스터 노드에서 전달받은 데이터를 기반으로 원본 특징 데이터를 색인하고 질의를 처리하되, 상기 k-d 트리의 분할 영역을 기반으로 색인을 구축하는 하나 이상의 슬레이브 노드를 포함한다.
상기 마스터 노드는 전체 데이터를 거리 공간에 표현하고, 데이터의 분포를 기반으로 특징 데이터가 각 슬레이브 노드에 균등하게 분배되도록 영역을 분할할 수 있다.
상기 슬레이브 노드는 상기 k-d 트리의 분할 영역을 기반으로 아이디스턴스(iDistance)를 구축하여 차원을 감소하고, 참조점을 선별한 후, B+- 트리의 키-값으로 변환하여 색인을 구축할 수 있다.
상기 슬레이브 노드는 아이디스턴스의 k-최근접 질의 처리 방식으로 질의를 처리할 수 있다.
상기 슬레이브 노드는 k-최근접 질의 처리를 최적화하기 위하여, 데이터 분포를 기반으로 밀집도를 계산하고 최적의 질의 범위를 도출하는 밀집도 기반의 최적화 기법을 수행할 수 있다.
상기 슬레이브 노드는 k-최근접 질의 처리를 최적화하기 위하여, 임곗값을 이용하여 범위의 확장 및 축소를 조절하여 범위 질의를 수행하는 탐색 비용 기반의 최적화 기법을 수행할 수 있다.
상기 슬레이브 노드는 k-최근접 질의 처리를 최적화하기 위하여, DNN(Deep Neural Network) 모델을 이용하여 최적의 범위를 도출하는 기계학습 기반의 최적화 기법을 수행할 수 있다.
본 발명에 의하면, 분산 인-메모리 시스템을 통해 실시간으로 질의에 참여하는 노드 수를 최소화하여 질의 결과 후보군을 줄임으로써, 질의 결과 도출을 위한 계산의 횟수를 현저하게 감소시킬 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 스파크 기반 분산 인-메모리 고차원 색인의 전체 구조를 나타낸다.
도 2는 본 발명에서 제안하는 고차원의 색인을 거리 공간에 표현한 예이다.
도 3은 본 발명에서 제안하는 분산 인-메모리 고차원 색인의 구축 알고리즘을 나타낸다.
도 4는 2차원 데이터의 양자화를 나타낸다.
도 5는 2차원 데이터의 영역 분할 할당 예시를 나타낸다.
도 6은 분산 아이디스턴스(iDistance)를 표현한 그림이다.
도 7은 스파크를 이용한 분산 처리 시스템에서의 색인 구축 방법과 질의 처리 방법을 나타낸다.
도 8은 스파크에서의 질의 처리 과정을 나타낸다.
도 9는 본 발명에서 제안하는 마스터 노드에서의 질의 처리 알고리즘을 나타낸다.
도 10은 본할 영역에 따른 k 값 부여를 예시한 것이다.
도 11은 본 발명에서 제안하는 슬레이브 노드에서의 질의 처리 알고리즘을 나타낸다.
도 12는 본 발명의 일 실시예에 따른 밀집도 기반의 최적화 기법의 순서도를 나타낸다.
도 13은 본 발명의 일 실시예에 따른 질의 탐색 비용을 기반으로 하는 k-최근접 최적화 기법의 전체 처리 과정을 나타낸다.
도 14는 거리 기반 색인에 제안하는 k-최근접 질의를 위해 기계 학습 모델을 추가한 질의처리 시스템의 전체적인 구조이다.
본 명세서에서 개시된 실시 예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 개시에서 제안하고자 하는 실시 예는 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 당해 기술분야에서 통상의 지식을 가진 자에게 실시 예들의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시 예에 대해 구체적으로 설명하기로 한다.
본 명세서에서 사용되는 용어는 개시된 실시 예들의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 명세서의 상세한 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 명세서의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에서 사용되는 "부"라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부"는 어떤 역할들을 수행한다. 그렇지만 "부"는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부"는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부"는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부"들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부"들로 결합되거나 추가적인 구성요소들과 "부"들로 더 분리될 수 있다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
객체에서 추출한 대용량 고차원의 특징 데이터를 효과적으로 이미지에서 검색하기 위해서는 분산 인-메모리 기반의 색인 구조가 요구된다.
본 발명에서 제안하는 기법은 대용량 고차원 데이터에서 효율적인 내용을 기반으로 한 이미지 검색을 위해서 마스터 및 슬레이브 구조의 고차원 색인 기법을 제안한다. 또한, 고차원 벡터 데이터를 색인을 구축하기 위해서 분산 인-메모리 기반의 플랫폼인 스파크를 활용한다. k-d 트리와 아이디스턴스(iDistance)의 문제점을 상호 보완하기 위해 하이브리드(Hybrid) 분산 고차원 색인을 구현한다. 두 색인의 장점을 결합하여 전체 구조는 마스터 및 슬레이브 구조로 구성된다. 마스터는 데이터 분배 및 질의 처리 할당 슬레이브를 선정하는 역할을 하여 시스템의 부하를 줄인다. 슬레이브 노드는 실제 데이터의 색인 및 질의를 처리한다.
본 발명에서 제안하는 기법은 분산처리와 인-메모리 사용을 위해 스파크(Spark)를 사용하였다. 또한,효율적인 부하 분산을 위해 마스터/슬레이브(Master/Slave) 구조를 채택하였다.
도 1은 본 발명의 일 실시예에 따른 스파크 기반 분산 인-메모리 고차원 색인의 전체 구조를 나타낸다.
도 1을 참조하면, 마스터 노드(100)는 고차원 데이터의 분배와 질의 처리를 할당하기 위한 슬레이브를 선정하되, 고차원 데이터를 양자화하고, 차원별 모 분산을 계산한 후, 분할 축과 값을 선택하여 데이터를 영역별로 분할하고, 분할된 영역 정보를 이용하여 k-d 트리를 구축한다.
슬레이브 노드(200)는 하나 이상이 존재하며, 마스터 노드(100)에서 전달받은 데이터를 기반으로 원본 특징 데이터를 색인하고 질의를 처리하되, k-d 트리의 분할 영역을 기반으로 색인을 구축한다.
마스터 노드(100)는 전체 데이터를 거리 공간에 표현하고, 데이터의 분포를 기반으로 특징 데이터가 각 슬레이브 노드에 균등하게 분배되도록 영역을 분할한다.
슬레이브 노드(200)는 k-d 트리의 분할 영역을 기반으로 아이디스턴스(iDistance)를 구축하여 차원을 감소하고, 참조점을 선별한 후, B+- 트리의 키-값으로 변환하여 색인을 구축한다.
슬레이브 노드(200)는 아이디스턴스의 k-최근접 질의 처리 방식으로 질의를 처리할 수 있다.
슬레이브 노드(200)는 k-최근접 질의 처리를 최적화하기 위하여, 데이터 분포를 기반으로 밀집도를 계산하고 최적의 질의 범위를 도출하는 밀집도 기반의 최적화 기법을 수행할 수 있다.
또는 슬레이브 노드(200)는 k-최근접 질의 처리를 최적화하기 위하여, 임곗값을 이용하여 범위의 확장 및 축소를 조절하여 범위 질의를 수행하는 탐색 비용 기반의 최적화 기법을 수행할 수 있다.
또는 슬레이브 노드(200)는 k-최근접 질의 처리를 최적화하기 위하여, DNN(Deep Neural Network) 모델을 이용하여 최적의 범위를 도출하는 기계학습 기반의 최적화 기법을 수행할 수 있다.
도 1을 참조하면, 먼저 마스터 노드(100)에서는 고차원 데이터를 양자화하고 차원별 모 분산을 계산한 후 분할 축과 값을 선택해 데이터를 영역별로 분할하고 영역 정보를 이용하여 k-d 트리를 구축한다.
슬레이브 노드(200)에서는 k-d 트리의 분할 영역에 기반을 두어 각 슬레이브 노드에서 아이디스턴스(iDistance)를 구축하여 차원을 감소하고 참조점을 선별한 후, B+-트리의 키-값으로 변환하고 최종적인 슬레이브 노드의 색인을 구축한다.
도 2는 본 발명에서 제안하는 고차원의 색인을 거리 공간에 표현한 예이다.
도 2를 참조하면, 고차원의 전체 데이터는 색인을 위하여 거리 공간에 표현되어 처리된다. 마스터 노드는 전체 데이터 영역을 거리공간에 표현하고 데이터를 균등하게 분할하기 위해서 k-d 트리 기반의 영역 정보를 처리한다. 데이터를 분할할 때, 데이터를 균등하게 분할하기 위해서는 분할 축을 본 발명에서 제안하는 계산 방법에 따라 선택하여 영역을 분할하고, 분할된 영역의 데이터는 각 슬레이브 노드의 데이터가 된다.
본 발명에서는 좀 더 효율적인 데이터의 파티셔닝을 위하여 스파크의 기존 정책을 사용하지 않고 마스터 노드에서 k-d 트리를 기반으로 파티셔너(partitioner)를 생성한다. 생성한 k-d트리 파티셔너는 원본 데이터를 모든 노드에 골고루 파티셔닝 할 수 있도록 한다. 사용자는 스파크 애플리케이션을 생성하여 스파크에 잡(job)을 요청하는데 이때, 잡을 요청 하는 노드가 드라이버 노드가 된다. 그리고 잡을 분산 처리하기 위해 태스크(task)로 분할이 되는데 태스크는 스파크의 워커 노드들(worker nodes)에서 처리하게 된다. 본 발명에서 제안하는 기법에서는 잡을 요청하는 노드 즉, 드라이버 노드가 마스터 노드가 되며 분산으로 데이터의 색인 질의 처리를 수행하는 슬레이브 노드는 워커 노드로 대응된다.
도 3은 본 발명에서 제안하는 분산 인-메모리 고차원 색인의 구축 알고리즘을 나타낸다. 도 3의 알고리즘에서 d는 고차원 데이터, q는 양자화 차원, df는 조정 상수, p는 파티션 수를 나타낸다.
도 3을 참조하면, 가장 먼저 스파크에서 고차원 데이터를 기반으로 원본 RDD를 생성하고(O_RDD) 양자화 차원 q를 기반으로 전체 데이터를 양자화 한다(Q_RDD). 그리고, 양자화된 데이터를 기반으로 차원 별 모 분산 값을 계산한다(pop). k-d 트리 생성조건이 만족하면 k-d 트리 생성 함수는 양자화 데이터, 분산 값, 조정 상수, 파티션 수를 입력받아 트리를 구축한다(kd_tree). 구축된 k-d 트리를 기반으로 스파크의 파티셔너를 사용자 함수로 새롭게 정의한다(kd_p_func). 정의된 파티셔너를 통해 원본 데이터를 재파티션하고(P_RDD), 아이디스턴스(iDistance)를 구축하기 위해서 참조점을 선별한다(ref_points). 대용량 파일을 한 번에 읽고 색인을 구축하기 때문에 기존 B+-트리의 벌크 삽입(bulk insert)을 활용한다. 최종적으로 생성된 각 파티션 별 아이디스턴스(iDistance)가 분산 인-메모리 고차원 색인이 된다(Dist_아이디스턴스(iDistance)).
색인 구축이 모두 완료된 후의 질의 처리 과정은 다음과 같다. 질의 요청이 들어오면 먼저 마스터 노드의 k-d 트리를 탐색하여 범위에 포함되는 슬레이브 노드들을 탐색하고, 해당 슬레이브 노드들만 질의 처리를 수행한다. 제안하는 기법을 통해 기존의 문제점이었던 마스터 노드에서의 거리 계산 단계가 없어 질의 처리 성능이 향상되며, 질의에 실질적으로 포함되는 노드들만 처리를 수행하여 불필요한 슬레이브 노드들의 질의 참여를 감소시켜 질의 처리를 효율적으로 수행할 수 있다.
대용량의 데이터를 한 노드에서 처리하게 되는 경우 큰 부하가 생기고 처리 시간이 오래 걸린다. 그러므로 대용량의 데이터를 처리하기 위해서는 분산 처리가 필요하다.
본 발명에서는 대용량 데이터에 대한 질의를 분산을 수행하기 위해서 마스터/슬레이브 모델을 활용한다. 마스터 노드에서는 데이터를 거리 공간에 표시하고 영역의 분할 정보를 처리한다. 마스터 노드는 분할된 영역을 기반으로 데이터를 나누고 질의 요청이 발생했을 때 질의 할당을 수행한다. 이러한 분할 정보를 생성하고 처리하기 위해서는 마스터 노드에서의 색인 정보가 필요하다. 마스터 노드에서는 분할 차원의 축과 분할 축의 값 등의 간단한 정보들만을 처리하는 구조를 구성하기 위하여 다차원 데이터를 처리할 수 있는 k-d 트리를 활용한다.
전체적인 데이터의 영역을 나누고 분할된 영역을 각 슬레이브 노드에 할당하기 위해서는 데이터를 나누는 기준이 필요하다. 데이터의 분할 기준이란 데이터를 거리 공간으로 표시했을 때 이를 데이터가 균등하게 분배될 수 있도록 공간영역을 분할 할 수 있는 지점이 되는 데이터의 차원을 선택하는 것이다.
마스터 노드에서는 제안하는 분할 기준에 의해서 분할 차원을 도출하고 해당 값을 k-d 트리의 노드에 저장한다. k-d 트리의 단말 노드가 슬레이브 노드의 개수와 같아질 때까지 분할을 수행한다. 최적의 분할 방법은 정확히 1/n의 데이터를 나누는 것이 바람직하다. 그러나 실제 데이터를 정확히 1/n을 하기 위해서는 분할 지점을 반드시 정확하게 선택하여야 한다. 정확한 선택을 위해서는 데이터의 밀집도 또는 통곗값 등을 계산해야 한다. 하지만 실제 이미지의 특징 데이터들은 고차원 데이터이기 때문에 고차원 데이터에서 밀집도 및 통계 데이터를 계산하고 바로 수집하는 것은 많은 계산 비용이 필요하다. 그러므로 고차원의 데이터에서 데이터를 분할 할 수 있는 효율적인 방법의 제시가 필요하다.
고차원의 데이터를 색인할 때, 효율적인 처리를 위하여 데이터를 거리공간에 표현하고 총 3단계에 걸쳐 영역을 분할한다. 첫째, 고차원의 데이터 처리를 위해 양자화를 통한 차원의 수를 줄여 처리의 효율을 높인다. 둘째, 모 분산(σ2)을 이용하여 분할 축을 선택한다. 마지막으로 분할 축으로 선택된 차원에서 분할 값을 선택하기 위해 균형척도(Balance Factor)를 이용하여 데이터가 실제로 균등하게 분할될 수 있는지 한 번 더 확인하는 과정을 거친다.
본 발명에서 사용된 데이터는 한 차원에 0에서 255까지 값을 가질 수 있다. 이는 굉장히 큰 값이기 때문에 양자화가 필요하다.
도 4는 2차원 데이터의 양자화를 나타낸다.
도 4에서, 양자화 값의 범위(8)가 정해지면 차원별로 데이터를 양자화 범위 값으로 실제 값을 나누어 이진 값(즉, 8은 000 ~ 111로 표현된다)으로 표현한다. 예를 들어, 실제 데이터의 값이 16이었다면 16을 범위 값인 8로 나누어 2로 나타내고, 2의 양자화 결과는 010이다. 각 데이터를 이진값에 투영하여 각 영역에 데이터의 개수를 수집한다. 예를 들어, (001100, 3)은 양자화된 값의 1차원 001과 2차 원 100에 총 데이터 개수가 3개라는 것을 의미한다.
분할 차원의 선택은 데이터가 비교적 고르게 분포된 차원을 축으로 선택하여 분할되어야 한다. 이를 위하여 차원 별 모 분산 값을 계산하여 분산 값이 큰 축을 선택한다. 모 분산은 편차 제곱의 평균값을 나타내는 값이다. 즉, 데이터가 얼마나 많이 퍼져있는지를 알 수 있다. 그러므로 모 분산을 이용하면 데이터의 분포도를 통계적으로 알 수 있으므로 데이터를 균등하게 분할할 수 있다. 모 분산 값이 크다는 것은 해당 차원에서의 데이터의 분포가 비교적 다른 곳에 비해 골고루 분포되어있다는 것을 나타낸다. 데이터를 분할할 때는 데이터가 균등하게 분포된 차원을 분할하는 것이 데이터의 쏠림을 방지할 수 있으므로 가장 효율적이다.
모 분산을 이용하여 첫 번째로 분할 차원을 선택한 후에는 해당 차원에서 분할 값을 선택하여야 한다. 균등한 분할을 위하여 양쪽에 데이터가 균일하게 분할되는 지점을 분할 값으로 선택해야 한다. 최적의 분할 지점을 선택하기 위해서 균형 척도를 기반으로 분할한다. 균형 척도는 데이터가 한쪽으로 치우치는 것을 방지하기 위한 값이다. 본 발명에서는 균형척도를 0.1로 지정하여 분할을 수행한다. 예를 들어, 총 200개의 데이터가 존재할 때 균형척도가 0.1이라면 분할된 한쪽 영역에는 80~ 120개의 데이터를 허용하는 것을 의미한다. 즉, 어떠한 축을 지정하여 분할될 때는 균형 있게 차원을 절단할 수 있음을 보장하는 수치이다. 만약, 처음 선택한 분할 차원에서 균형척도를 만족하는 분할 축이 존재하지 않을 때는 다음으로 높은 분산 값을 가지는 차원을 선택하여 분할 지점을 탐색한다. 그리고, 분할 값이 선택될 때까지 반복적으로 분할 값을 선택하는 과정을 수행한다. 그 결과, 높은 분산 값과 균형척도를 만족하는 축을 선택하여 데이터를 균등하게 나눌 수 있다.
분할 축의 선택과 분할 값의 선택이 모두 이루어지면 해당 영역의 데이터들은 슬레이브 노드에 할당된다.
도 5는 2차원 데이터의 영역 분할 할당 예시를 나타낸다.
도 5를 참조하면, 앞서 기술한 분할 방법을 이용하여 분할 축을 선택하고, 분할될 때마다 마스터 노드에 있는 k-d 트리에 분할 정보를 저장한다. k-d 트리의 내부 노드는 분할 차원과 분할된 값(양자화 값)을 쌍으로 하는 데이터를 저장한다. 도 5에서 오른쪽 a 노드는 임의의 키-값이라고 가정하자. 트리의 a 노드는 0번 차원에서 분할 지점인 양자화 값 100을 기준으로 양쪽으로 분할됨을 의미한다. 마찬가지로 b 노드는 1차원에서 100을 기준으로 양쪽으로 분할됨을 의미하고, b의 오른쪽 노드에서는 다시 0차원에서 001을 기준으로 분할된 c 노드가 생성된다. 만약 각 처리 노드의 개수가 사전에 정의된 슬레이브 노드의 개수와 일치하면 분할을 정지하고, 분할된 영역 정보를 이용하여 각 슬레이브 노드에 데이터를 할당한다. 도 5에서는 총 4개의 슬레이브 노드가 존재하기 때문에 총 4개의 단말 노드를 생성하였으며, 생성이 완료된 후에 데이터를 할당한다.
본 발명에서는 기존 아이디스턴스(iDistance)를 분산 처리가 가능한 형태로 확장하기 위해서 분산 병렬 색인 구축 기법과 분산 병렬 질의 처리 방법을 제공한다.
도 6은 분산 아이디스턴스(iDistance)를 표현한 그림이다.
도 6을 참조하면, 스파크에서 분산 처리를 위해 각 노드에 구축된 아이디스턴스(iDistance)를 RDD로 관리한다. 질의 요청이 들어오는 경우, RDD에 대해서 한 번의 질의 처리를 수행하면 모든 노드의 아이디스턴스(iDistance)에 질의가 요청되어 분산 처리가 가능하다. 본 발명에서 제안하는 기법에서 k-최근접 질의는 위치와 상관없이 범위 질의로 변환되더라도 일단은 모든 서버에 전송된다. 그 이유는 범위 내에 포함되지 않는 색인 영역이더라도, 반복적으로 탐색 영역을 늘려가며 탐색하다 보면 색인 영역이 탐색 영역에 포함될 수 있기 때문이다. 따라서 정확한 k-최근접 결과를 생성하기 해서는 모든 서버에 질의 정보를 전송하여 처리해야 한다.
분할된 영역 내에 존재하는 실제 데이터를 처리하고 저장 및 관리하여 질의 처리를 수행하기 위해서는 적절한 색인 기법과 색인을 관리해주는 기법이 필요하다. 슬레이브 노드는 마스터 노드에서 분할한 데이터 각 영역에 대해 실제 데이터를 색인으로 구축한다. 이후에 질의 처리가 들어왔을 때 색인 데이터 상에서 실제로 질의 처리를 수행하여 결과를 도출한다. 각 슬레이브 노드는 고차원 데이터를 효율적으로 처리하기 위해서 거리 기반 색인 기법인 아이디스턴스(iDistance) 색인을 구축한다. 아이디스턴스(iDistance)는 참조점을 이용하여 주변 데이터와의 거리와 상수를 이용하여 고차원 데이터를 1차원 데이터인 거리로 변환하는 기법이다.
아이디스턴스(iDistance)에서는 고차원 특징 정보를 저장하기 위해서 먼저 정해진 규칙에 기반을 두어 참조점을 선별한다. 참조점의 선별에 따라 데이터가 분할되기 때문에, 참조점의 선별은 중요하다. 본 발명에서는 참조점의 선택을 위해 기존 아이디스턴스(iDistance)에서 제안하는 차원 수 * 2개와 각 차원의 중간값을 참조점 위치로 하는 방법을 제안한다. 선별된 참조점과 각 데이터와의 거리를 B+-트리의 키-값으로 변환하여 저장한다.
본 발명에서 질의 처리의 전체 시스템 구조는 스파크를 이용한 분산 인-메모리 기반이고, 처리 노드는 마스터/슬레이브로 구성되어 질의의 부하를 분산시켰다.
도 7은 스파크를 이용한 분산 처리 시스템에서의 색인 구축 방법과 질의 처리 방법을 나타낸다.
도 7을 참조하면, 이미지의 실제 특징(색감, 모형, 질감, 골격 구조 등) 데이터들이 N개가 존재한다고 가정했을 때, 특징별로 M개의 파티션으로 데이터를 분할한다. 이렇게 분할된 데이터를 OriginalAtrributeRDD로 표시한다. 분할된 데이터들은 스파크의 맵리듀스 연산을 통해 양자화된 분산 값을 분산 처리하고, 해당 통곗값을 이용하여 k-d 트리를 구축한다. k-d 트리는 드라이버 노드의 메모리에 적재된다. 그 후, 데이터 분할을 통해 해당 k-d 트리를 이용하여 사용자 파티셔너를 정의한다. 정의된 파티셔너를 통해 OriginalAtrributeRDD를 재파티셔닝하면 k-d 트리의 분할 정보를 기반으로 데이터가 파티셔닝되고, 각 슬레이브 노드들은 해당 데이터 기반 아이디스턴스(iDistance)를 구축한다. 슬레이브 노드는 컬렉션 데이터를 RDD로 처리해야 하므로 분산으로 구축된 아이디스턴스(iDistance)를 RDD로 저장한다. 최종으로 생성된 RDD를 아이디스턴스(iDistance)RDD로 지칭한다.
도 8은 스파크에서의 질의 처리 과정을 나타낸다.
도 8을 참조하면, 질의 처리가 들어왔을 때, k-d 트리를 이용하여 질의에 해당하는 슬레이브 노드(아이디스턴스(iDistance)RDD)를 찾고, 해당 정보를 슬래이브 노드의 맵 연산에 질의 정보와 함께 전달한다. 질의를 처리할 때는 질의점과 질의의 범위를 이용하여 어떤 참조점에 포함되는지를 파악한다. 참조점과 질의 점과의 거리 계산을 하여 이 값을 키-값으로 사용한다. 그리고, 키-값을 이용하여 B+-트리를 탐색하여 해당 위치에서 질의 범위만큼 앞뒤 영역을 탐색하면 질의에 해당하는 데이터들을 모두 찾을 수 있다. k-최근접 질의는 k개를 받아 범위질의로 재할당하여 처리한다. k-최근접 질의는 모든 노드가 k 개를 찾으면 질의가 종료된다. 질의의 최종 결과는 맵 연산을 통해 나온 결과인 InterResultRDD에서 각 슬레이브 노드에서 전달한 결과를 병합 수행하는 리듀스 연산을 수행하여 결과 집합을 생성한다. 병합 된 데이터에서 Top-K개의 결과를 최종 결과로 제공한다.
도 9는 본 발명에서 제안하는 마스터 노드에서의 질의 처리 알고리즘을 나타낸다.
도 9의 알고리즘에서, 입력으로 질의 위치 qp, 질의 타입 type, k-최근접의 k, 범위 질의의 범위 range, 최적화 함수 타입 optType을 입력으로 받고 질의 결과를 반환한다.
가장 먼저 질의 대상 노드를 선정하기 위한 nodes를 초기화하고 질의 타입에 따라 질의를 다르게 처리한다. 만약 k-최근접 질의라면 k와 최적화 함수에 따라 초기 탐색 범위 값을 계산하고 이를 범위(range)에 할당한다. 다음으로 k-d 트리의 모든 리프 노드(모든 슬레이브 노드)를 nodes에 할당한다. 이는 k-최근접 최근 질의는 모든 노드가 질의에 참여해야 정확한 결괏값을 생성할 수 있기 때문이다. 만약 범위 질의가 입력된다면 범위에 포함되는 노드를 k-d 트리를 통해 탐색하여 nodes에 할당한다. 그리고 할당된 nodes와 range, k, type, qp를 슬레이브 노드에 전송하여 질의 처리를 수행하고 처리된 결과를 사용자에게 제공한다.
도 10은 본할 영역에 따른 k 값 부여를 예시한 것이다.
K-최근접 질의에서 거리가 먼 노드는 질의에 관한 결과를 포함할 확률이 낮다. 그러므로 본 발명에서는 후보군의 개수를 줄이기 위해 질의 점과 노드의 거리에 따라 도 10과 같이 노드에는 서로 다른 k 값을 부여한다.
질의 점과 가까운 노드일수록 k 값을 더 많이 부여한다. 예를 들어 그림 10에서는 질의점과 함께 범위에 해당하는 슬레이브 노드 1, 노드 2 그리고 노드 3에서 각각 k 값을 다르게 줄 수 있다. 범위 100과 k가 10으로 질의 처리가 들어왔다고 가정하면, 질의 범위에 포함되는 노드를 확인한다. 그리고, 질의와 탐색 노드 간의 최소 거리를 계산한다. 계산된 거리를 기반으로 서로 다른 k를 부여한다. 탐색 범위 값 10당 데이터가 1개씩 존재한다는 가정에 따라 계산을 하고 k를 부여한다. 가장 많은 영역을 포함하는 즉, 질의 위치를 포함하는 슬레이브 노드 1에서는 10개를 모두 찾게 한다. 슬레이브 노드 2는 질의점과 거리가 60이므로 k를 4개 할당받는다. 마지막으로 가장 적은 영역을 포함하는 슬레이브 노드 4도 같은 방법으로 거리가 70 차이가 나므로 3개의 데이터를 찾도록 지정한다. 이처럼, k 값을 다르게 포함함으로써 탐색 비용을 줄여 탐색 결과 도출 시간이 줄어들 수 있다.
슬레이브 노드는 마스터로부터 요청받은 질의점과 범위를 이용하여 실제 데이터를 찾는다.
도 11은 본 발명에서 제안하는 슬레이브 노드에서의 질의 처리 알고리즘을 나타낸다.
도 11의 알고리즘에서, 입력으로 질의 영역에 포함된 노드 nodes, 질의 위치 qp, 질의 타입 type, 범 질의의 범위 range 그리고 k-최근접의 k를 입력으로 받고 질의 결과를 반환한다. R은 결과를 저장하기 위한 변수이다.
가장 먼 질의 결과를 저장하기 위하여 R을 초기화하고 질의 타입에 따라서 runRangeQueryINC() 함수와 runRangeQuery() 함수를 선택하고 질의를 다르게 처리한다.
첫 번째로 k-최근접 질의라면 질의 결과가 k개를 만족할 때까지 범위 탐색을 수행한다. k-최근접 질의 처리 속도를 향상하기 위해서 runRangeQueryINC() 함수에는 이미 탐색한 노드를 재탐색하지 않으려는 방법을 적용한 점진적 범위 질의 처리 함수를 수행한다. k-최근접 질의 처리는 k개를 만족하지 않는다면 탐색 영역을 넓혀서 k 개를 모두 찾을 수 있을 때까지 질의 처리를 진행하여야 한다. 이를 위하여 다음 라인에서 범위를 1% 추가 확장하고 질의를 처리한다.
두 번째로 범위 질의가 입력된다면 범위에 포함되는 노드 node만을 처리에 참여하는 노드로 선택한다. 질의에 참여하는 노드를 필터링하여 시스템의 부하를 줄이고 처리 속도를 늘릴 수 있다. 선택된 노드들은 주어진 범위를 기반으로 범위 질의를 한번 수행하고 결과를 R에 기록한다. 처리된 결과는 슬레이브 노드에서 마스터 노드로 반환되고, 마스터 노드에서 병합되어 최종적으로 사용자에게 제공된다.
아이디스턴스(iDistance)의 k-최근접 질의 처리는 범위 질의 처리로 변환되어 처리된다. 기존에는 전체 색인 영역의 1%를 시작 탐색 범위로 지정하고, k개가 만족할 때까지 탐색 영역을 확장해가며 질의 처리를 수행한다. 기존 탐색 기법은 k 값의 변화나 색인 데이터의 분포를 반영하지 않기에 k-최근접 질의 처리에 부하가 발생하고, 불필요한 노드의 참여와 최적화가 되지 않은 범위가 주어지는 문제점이 발생한다. 그래서 k 값의 변화나 데이터의 분포를 반영하여 질의 처리를 최적화하여 부하를 줄이고 탐색시간을 줄여서 효율적으로 처리하는 것이 필요하다. 이를 위해 본 발명에서는 아이디스턴스(iDistance)에서 k-최근접 질의처리를 위한 효율적인 최적화 방법을 제안한다.
k-최근접 질의는 범위 질의로 변환되어 처리된다. k개가 포함될만한 범위로 변환되어 범위를 기반으로 k개를 찾는다. 이때, 최소한의 범위를 탐색해야 질의 처리 시간을 줄일 수 있다. 기존 기법은 전체 색인 영역의 1%를 시작 탐색 범위로 지정하여 k개를 찾을 때까지 영역을 확장하는 방법을 사용하고 있다. 기존 기법은 k 값의 변화 또는 분포를 반영하지 않으므로 질의 처리의 부하가 발생할 수 있고 성능이 더 나아지는 현상이 발생되지 않는다. 최적의 범위를 찾기 위해서는 k-최근접 질의의 최소 범위를 찾는 최적화 기법이 추가되어야 한다.
본 발명에서는 k 값의 변화 및 데이터 분포를 반한 k-최근접 질의 처리의 최적화 기법에 대해서 세 가지 방법에 관해 설명한다. 제안한 방법을 이용하여 최적의 범위를 도출하면 탐색 후보군의 개수를 줄여 데이터 간의 유사도 계산의 횟수를 줄일 수 있다. 그리고, 성능 평가를 통해 제안하는 최적화 기법의 타당성을 입증한다.
본 발명에서 k-최근접 질의 최적화 방법으로 총 3가지를 제안한다.
첫째, 밀집도 기반의 최적화 기법은 데이터 분포를 기반으로 밀집도를 계산하고 최적의 질의 범위를 도출한다.
둘째, 탐색 비용 기반의 최적화 기법은 임곗값을 이용하여 범위의 확장 및 축소를 조절하여 범위 질의를 수행한다.
마지막으로 기계 학습 기반의 최적화 기법은 DNN(Deep Neural Network) 모델을 이용하여 최적의 범위를 도출한다. 밀집도 기반의 최적화 기법은 단순히 데이터의 분포만을 반영하여 통계를 내고 최적화를 진행한다. 이에 반해 탐색 비용 기반의 최적화 기법은 전체 질의 처리의 통계를 반영할 수 있다. 탐색 비용의 최적화 기법은 일정 값에 수렴할 때까지 약간의 시간이 필요하다. 이에 반해 기계 학습을 이용하면 과거 데이터를 학습하여 최적의 범위를 안정성 있게 도출할 수 있다.
거리 공간으로 변화된 데이터는 데이터의 전체 영역 분포에 따라 데이터의 밀집도가 다르다. 따라서 데이터의 밀집도에 따라서 k-최근접 질의를 수행할 때 탐색 영역을 변형하는 것이 효율적인 질의를 처리할 수 있게 한다.
본 발명에서는 데이터의 전체 영역 분포를 반영하기 위해서 밀집도 기반의 최적화 기법을 제안한다. 밀집도 기반의 범위 값 최적화 기법은 데이터의 전체 영역을 기반으로 k 값에 따른 초기 탐색 범위 값을 계산하여 처리하는 방법이다.
밀집도 기반의 최적화 기법은 효율적인 처리를 위하여 질의를 처리하는 온라인과 최적의 범위를 도출하는 오프라인으로 나뉜다.
도 12는 본 발명의 일 실시예에 따른 밀집도 기반의 최적화 기법의 순서도를 나타낸다.
도 12를 참조하면, 오프라인에서는 데이터 분포에 따른 밀집도를 계산하여 초기 k 값을 도출한다. 만약 2차원상의 데이터가 존재하고, 최댓값이 (100,100)이고, 최솟값이 (0, 0)일 때, 거리 계산 식에 의해 영역 최대 거리(약 141)를 계산할 수 있다. 이때, 해당 영역에 데이터가 100개 존재한다면 영역의 크기와 데이터 개수를 기반으로 범위당 데이터의 분포를 계산할 수 있다. 만약 데이터가 표준 정규 분포로 존재한다고 할 때는 100/141 = 0.7이라는 값을 얻을 수 있고, 이를 이용하여 범위 1당 데이터 개수 1.4개라는 값을 얻을 수 있다(DPR: one Data Per one Range).
온라인 단계에서 k-최근접 질의가 발생 되면, DPR을 기반으로 (k 값/범위당 데이터의 개수) 식을 이용하여 초기 탐색 범위 값을 계산한다. 예를 들어, k가 1이라면 (1/1.4) = 0.71이라는 초기 탐색 범위 값을 지정할 수 있고, k가 2라면 (2/1.4) = 1.42라는 값으로 초기 탐색 범위 값을 계산할 수 있다. 밀집도 기반의 초기 탐색 범위 계산을 통해 데이터 분포에 따른 k-최근접 질의의 초기 탐색 범위를 최적화하여 도출할 수 있다.
밀집도 기반의 범위 최적화 기법은 데이터 밀집도를 반영할 수 있지만, 질의 처리의 통계를 반영할 수는 없다. 본 발명에서 제안하는 두 번째 최적화 기법은 질의 탐색의 횟수와 탐색 범위에 존재하는 후보군의 개수를 기반으로 질의 확장 범위를 최적화한다.
도 13은 본 발명의 일 실시예에 따른 질의 탐색 비용을 기반으로 하는 k-최근접 최적화 기법의 전체 처리 과정을 나타낸다.
도 13을 참조하면, 본 발명의 일 실시예에 따른 질의 탐색 비용을 기반으로 하는 k-최근접 최적화 기법은 기존의 아이디스턴스(iDistance)의 초기 탐색 범위인 1%를 활용하여 질의를 처리하고, 이후에 같은 질의의 초기 탐색 범위의 최적화를 위해 상승 값 α(increase factor)과 하강 값 β(decrease factor)을 이용한다.
최적화는 최적의 범위 값에 수렴될 때까지 임계 값을 이용하여 계산하는 일련의 과정을 거친다.
먼저 질의 탐색의 횟수를 반영하여 최적화하는 방법은 기존 탐색 기법으로 질의 처리가 완료되면 1-NN의 통계 범위 값을 탐색 범위 값(2%)으로 지정한다. 이후에 같은 1-NN이 다시 입력되면 이전에 저장한 통계 범위 값(2%)을 기반으로 질의 처리를 수행하고 질의 결과를 생성한다. 이를 통해 통계적인 범위 값이 k 값에 따라 생성이 되고 누적되어 초기 탐색 범위를 특정 값에 수렴하게 할 수 있다. 만약, k-최근접 질의의 탐색 횟수가 두 번 이상이라면 탐색 횟수만큼 상승 값 α(increase factor)을 통계 범위 값에 추가로 적용한다. 만약, 2% 범위 탐색에 두 번 추가로 범위 값을 증가시켰다면 다음 탐색 범위 값은 2% * (2 * α)가 된다.
탐색 후보군의 개수를 반영하여 최적화하는 방법은 탐색 범위 횟수가 처음 지정한 통계탐색 범위 2%로 끝났다면, 탐색 후보군의 개수를 확인한다. 후보군의 개수가 임곗값(예를 들어, 첫 1-NN의 후보군 수 5개)보다 많다면 처음보다 많은 탐색을 수행하였다는 의미이다. 그러므로 통계 범위 값을 하강 값 β(decrease factor)만큼 줄인다. 즉, 다음 1-NN의 통계 범위 값은 2% * β가 된다. 상승 값과 하강 값을 이용하여 임곗값의 허용 범위를 지정하는 방법을 통해 통계 범위 값은 적정한 값에 수렴하게 될 것이다.
마지막으로 본 발명에서 제안하는 최적화 기법은 안전성 있는 최적 범위 도출을 위하여 심층 신경망인 DNN 모델을 사용한다. DNN 모델은 입력층(Input Layer)과 출력층(Output Layer) 사이에 여러 개의 은닉층(Hidden Layer)이 존재하는 모델이다. DNN 모델의 깊이(depth)는 n개로 각 계층 간에 ReLu(Rectified Linear Unit) 함수를 통해 가중치 값을 학습한다. 본래 이진 분류(Binary Classification)를 위해 사용되었던 시그모이드(Sigmoid) 함수의 문제점을 해결하기 위해 기계 학습의 은닉층을 활성화하는 함수로 사용되는 것이 ReLu 활성화 함수이다. ReLU 활성화 함수는 0 < n < 1의 사이 값만 다루던 시그모이드(Sigmoid) 함수와 달리, 0보다 작은 값은 0으로 반환하고, 0보다 큰 값은 그대로 반환한다.
도 14는 거리 기반 색인에 제안하는 k-최근접 질의를 위해 기계 학습 모델을 추가한 질의처리 시스템의 전체적인 구조이다.
도 14를 참조하면, DNN 모델을 사용한 최적화 기법의 전체 구조는 효율적인 처리를 위하여 온라인/오프라인 구조를 가진다. 온라인에서는 본 발명에서 앞서 제안한 색인 구조인 k-d 트리와 아이디스턴스(iDistance) 그리고 마지막으로 B+-트리를 이용하여 색인을 구축한다. 오프라인에서는 질의점, 탐색 범위, k 값 등을 기반으로 학습을 진행한다. 학습 모델의 입력 값은 질의점과 k 값이다. 사전에 질의 처리로 기록된 로그의 탐색 범위 값을 정답 셋으로 활용하고, 지도(Supervised) 학습을 진행한다. 학습된 모델은 온라인 단계에서 전달되는 k 값과 질의 점을 기반으로 처리한 결괏값을 탐색 범위 값으로 변환시켜 반환한다. 온라인 모드에서 다시 DNN 모델을 통해 전달받은 범위 값을 각 슬레이브 노드에 할당시키고 슬레이브 노드에서는 할당받은 범위를 이용하여 질의를 진행한다.
최적 범위 도출을 위한 본 학습의 목표는 정답 셋과 예측 셋의 차이를 평균 제곱 오차인 MSE(Mean Squared Error)를 통해 반복적으로 줄여나가는 것이다. MSE는 다음 수학식 1과 같이 계산하며, 오차의 제곱에 평균을 취한 것으로 작은 값일수록 정답과의 오차가 적은 것을 의미한다.
[수학식 1]
Figure pat00001
반복된 학습 과정에서 모델의 깊이를 변경시키면서 MSE값이 가장 최소로 나타나는 깊이를 도출하고, 해당 깊이로 모델을 사용한다.
본 발명에서는 이상에서 살펴본 기존 기법의 문제점을 해결하기 위하여 대용량의 고차원 데이터를 효과적으로 검색할 수 있는 분산 인-메모리의 색인 검색 시스템 구조를 제안한다. 본 발명에서 제안하는 기법은 대용량 데이터를 처리하기 위해서 분산 인-메모리 처리 플랫폼인 스파크를 활용하여 색인 구축 및 질의 처리를 수행한다. 분산 인-메모리 시스템을 통해 실시간으로 질의에 참여하는 노드 수를 최소화하여 질의 결과 후보군을 줄여 질의 결과 도출을 위한 계산의 횟수를 현저하게 감소시킬 수 있다.
본 발명에서 제안하는 기법에서는 색인과 질의 처리의 부하를 분산시키기 위해서 마스터/슬레이브 모델을 채택한다. 마스터 노드에서는 k-d 트리를 이용하여 색인을 구축하고, 슬레이브 노드에서는 아이디스턴스(iDistance)를 이용하여 색인을 구축한다. 마스터 노드에서는 전체 데이터를 거리 공간에 표현하고, 데이터의 분포를 기반으로 골고루 데이터가 분배될 수 있도록 영역 분할을 수행한다. 그리고, 분할된 영역을 기반으로 특징 데이터가 슬레이브 노드에 균등하게 분배될 수 있도록 한다. k-d 트리 인덱스는 스파크의 RDD 데이터를 파티셔닝 할 수 있는 파티셔너로 사용한다. k-d 트리 파티셔너를 이용하여 데이터는 균등하게 각 슬레이브 노드에 전달된다. 슬레이브 노드에서는 마스터 노드에서 전달받은 데이터를 기반으로 원본 특징 데이터를 색인한다. 본 발명에서는 슬레이브의 색인을 기존의 아이디스턴스(iDistance)를 분산으로 구현한다.
효율적인 범위 질의 처리를 위해서는 질의점과 유사도 검색의 대상이 되는 후보군의 개수를 줄여야 한다. k-d 트리를 이용하여 질의에 참여할 노드를 필터링하여 후보군의 개수를 줄일 수 있다. k-최근접 질의는 범위질의로 변형되어 질의처리가 된다. 그러므로 k개가 포함될만한 가장 최소의 범위를 도출하여야 한다. 기존 k-최근접 질의 처리보다 더 나은 범위를 얻기 위하여 아이디스턴스(iDistance)에서 효율적인 분산 k-최근접 처리의 최적화 기법을 제안한다. 본 발명에서 제안하는 최적화 기법에는 특징 데이터의 밀도를 기반으로 하는 최적화 기법, 질의 처리 비용을 기반으로 한 최적화 기법 그리고 기계 학습을 기반으로 한 최적화 기법이 있다.
최근 실시간으로 처리되는 영상 처리 기술의 발달로 실시간으로 작동되는 CCTV와 같은 장치에서 추출되는 영상에서의 객체 인식 및 객체를 검색하는 기술이 활발하게 진행되고 있다. 이러한 기술들은 각종 분야에서 적용될 수 있다. 예를 들어, 범죄 행위에 대한 모니터링 및 추적과 같은 범죄 예방, 시설의 안전 및 화재를 예방을 위한 모니터링 시스템, 교통 정보를 수집하여 분석하거나 실시간 교통 정보를 이용하여 단속을 수행하는 등 다양한 분야에서 발전하고 응용되고 있다. 본 발명에서 제안된 기술은 내용 기반 이미지 검색을 위한 원천 기술이며, 위에 서술한 다양한 분야에서 활용될 수 있다. 최근에는 딥러닝 기술과 결합하여 이전보다 진보된 내용 기반 이미지 검색이 연구되면서 다양한 분야에 활용될 전망이다.
이상 본 발명을 몇 가지 바람직한 실시 예를 사용하여 설명하였으나, 이들 실시 예는 예시적인 것이며 한정적인 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
100 마스터 노드 200 슬레이브 노드

Claims (7)

  1. 고차원 데이터의 분배와 질의 처리를 할당하기 위한 슬레이브를 선정하되, 고차원 데이터를 양자화하고, 차원별 모 분산을 계산한 후, 분할 축과 값을 선택하여 데이터를 영역별로 분할하고, 분할된 영역 정보를 이용하여 k-d 트리를 구축하는 마스터 노드; 및
    상기 마스터 노드에서 전달받은 데이터를 기반으로 원본 특징 데이터를 색인하고 질의를 처리하되, 상기 k-d 트리의 분할 영역을 기반으로 색인을 구축하는 하나 이상의 슬레이브 노드
    를 포함하는 분산 인-메모리 고차원 색인 시스템.
  2. 청구항 1에 있어서,
    상기 마스터 노드는 전체 데이터를 거리 공간에 표현하고, 데이터의 분포를 기반으로 특징 데이터가 각 슬레이브 노드에 균등하게 분배되도록 영역을 분할하는 것을 특징으로 하는 분산 인-메모리 고차원 색인 시스템.
  3. 청구항 1에 있어서,
    상기 슬레이브 노드는 상기 k-d 트리의 분할 영역을 기반으로 아이디스턴스(iDistance)를 구축하여 차원을 감소하고, 참조점을 선별한 후, B+- 트리의 키-값으로 변환하여 색인을 구축하는 것을 특징으로 하는 분산 인-메모리 고차원 색인 시스템.
  4. 청구항 3에 있어서,
    상기 슬레이브 노드는 아이디스턴스의 k-최근접 질의 처리 방식으로 질의를 처리하는 것을 특징으로 하는 분산 인-메모리 고차원 색인 시스템.
  5. 청구항 4에 있어서,
    상기 슬레이브 노드는 k-최근접 질의 처리를 최적화하기 위하여, 데이터 분포를 기반으로 밀집도를 계산하고 최적의 질의 범위를 도출하는 밀집도 기반의 최적화 기법을 수행하는 것을 특징으로 하는 분산 인-메모리 고차원 색인 시스템.
  6. 청구항 4에 있어서,
    상기 슬레이브 노드는 k-최근접 질의 처리를 최적화하기 위하여, 임곗값을 이용하여 범위의 확장 및 축소를 조절하여 범위 질의를 수행하는 탐색 비용 기반의 최적화 기법을 수행하는 것을 특징으로 하는 분산 인-메모리 고차원 색인 시스템.
  7. 청구항 4에 있어서,
    상기 슬레이브 노드는 k-최근접 질의 처리를 최적화하기 위하여, DNN(Deep Neural Network) 모델을 이용하여 최적의 범위를 도출하는 기계학습 기반의 최적화 기법을 수행하는 것을 특징으로 하는 분산 인-메모리 고차원 색인 시스템.
KR1020200187203A 2020-12-30 2020-12-30 이미지 객체 검색을 위한 효율적인 분산 인-메모리 고차원 색인 시스템 KR102437799B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200187203A KR102437799B1 (ko) 2020-12-30 2020-12-30 이미지 객체 검색을 위한 효율적인 분산 인-메모리 고차원 색인 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200187203A KR102437799B1 (ko) 2020-12-30 2020-12-30 이미지 객체 검색을 위한 효율적인 분산 인-메모리 고차원 색인 시스템

Publications (2)

Publication Number Publication Date
KR20220095562A true KR20220095562A (ko) 2022-07-07
KR102437799B1 KR102437799B1 (ko) 2022-08-29

Family

ID=82398534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200187203A KR102437799B1 (ko) 2020-12-30 2020-12-30 이미지 객체 검색을 위한 효율적인 분산 인-메모리 고차원 색인 시스템

Country Status (1)

Country Link
KR (1) KR102437799B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117312325A (zh) * 2023-11-28 2023-12-29 中国科学技术大学 基于知识蒸馏的量化索引构建方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110115281A (ko) * 2010-04-15 2011-10-21 성균관대학교산학협력단 고차원 데이터의 유사도 검색을 위한 데이터 분할방법
KR20180099337A (ko) * 2017-02-28 2018-09-05 서울과학기술대학교 산학협력단 다차원 데이터에 대한 색인 생성 장치
KR20200026373A (ko) 2018-08-30 2020-03-11 십일번가 주식회사 검색 히스토리를 이용한 이미지 검색 방법 및 이를 위한 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110115281A (ko) * 2010-04-15 2011-10-21 성균관대학교산학협력단 고차원 데이터의 유사도 검색을 위한 데이터 분할방법
KR20180099337A (ko) * 2017-02-28 2018-09-05 서울과학기술대학교 산학협력단 다차원 데이터에 대한 색인 생성 장치
KR20200026373A (ko) 2018-08-30 2020-03-11 십일번가 주식회사 검색 히스토리를 이용한 이미지 검색 방법 및 이를 위한 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
최도진외 8 명, 거리 기반 색인에서 데이터 분포 및 질의 처리 비용을 이용한 k-최근접 질의 최적화 기법, 중견연구자지원사업 성과 세션, 2019.05.17. 1부.* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117312325A (zh) * 2023-11-28 2023-12-29 中国科学技术大学 基于知识蒸馏的量化索引构建方法、装置及设备
CN117312325B (zh) * 2023-11-28 2024-03-29 中国科学技术大学 基于知识蒸馏的量化索引构建方法、装置及设备

Also Published As

Publication number Publication date
KR102437799B1 (ko) 2022-08-29

Similar Documents

Publication Publication Date Title
CN109739849B (zh) 一种数据驱动的网络敏感信息挖掘与预警平台
Malkov et al. Efficient and robust approximate nearest neighbor search using hierarchical navigable small world graphs
Weston et al. Label partitioning for sublinear ranking
Yagoubi et al. Dpisax: Massively distributed partitioned isax
US8463045B2 (en) Hierarchical sparse representation for image retrieval
JP6216467B2 (ja) 視覚・意味複合ネットワーク、および当該ネットワークを形成するための方法
US20100161614A1 (en) Distributed index system and method based on multi-length signature files
JPWO2013129580A1 (ja) 近似最近傍探索装置、近似最近傍探索方法およびそのプログラム
CA2470899A1 (en) Method and system for similarity search and clustering
US20150120750A1 (en) System and method to store video fingerprints on distributed nodes in cloud systems
KR20220119745A (ko) 콘텐츠를 검색하는 방법, 장치, 기기 및 컴퓨터 판독 가능 저장 매체
Naidu et al. Feature selection algorithm for improving the performance of classification: A survey
KR102437799B1 (ko) 이미지 객체 검색을 위한 효율적인 분산 인-메모리 고차원 색인 시스템
CN105183845B (zh) 一种结合语义特征的ervq图片索引与检索方法
Gandhi et al. A survey on recommendation system with collaborative filtering using big data
Makris et al. Evaluating the effect of compressing algorithms for trajectory similarity and classification problems
El Handri et al. Parallelization of $ Top_ {k} $ Algorithm Through a New Hybrid Recommendation System for Big Data in Spark Cloud Computing Framework
KR101738809B1 (ko) IoT 기반 스마트 홈 커뮤니티에서 소셜 매칭 및 소통 서비스를 위한 다차원매트릭스 지역화 방법 및 시스템
Gandhi et al. Hybrid recommendation system with collaborative filtering and association rule mining using big data
Levchenko et al. Spark-parsketch: a massively distributed indexing of time series datasets
CN113536085A (zh) 基于组合预测法的主题词搜索爬虫调度方法及其系统
Sarkar et al. MIL: a data discretisation approach
Prasanth et al. Big data retrieval using HDFS with LZO compression
Rao et al. An Efficient Keyword Based Search of Big Data Using Map Reduce
Lu et al. Dynamic Partition Forest: An Efficient and Distributed Indexing Scheme for Similarity Search based on Hashing

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant