KR102632588B1 - 평균-피쳐를 이용한 클러스터링 방법, 장치 및 컴퓨터 프로그램 - Google Patents
평균-피쳐를 이용한 클러스터링 방법, 장치 및 컴퓨터 프로그램 Download PDFInfo
- Publication number
- KR102632588B1 KR102632588B1 KR1020210013100A KR20210013100A KR102632588B1 KR 102632588 B1 KR102632588 B1 KR 102632588B1 KR 1020210013100 A KR1020210013100 A KR 1020210013100A KR 20210013100 A KR20210013100 A KR 20210013100A KR 102632588 B1 KR102632588 B1 KR 102632588B1
- Authority
- KR
- South Korea
- Prior art keywords
- cluster
- average
- feature
- clustering
- clusters
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000004590 computer program Methods 0.000 title claims abstract description 18
- 238000004364 calculation method Methods 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims description 16
- 239000013598 vector Substances 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process 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
- 238000013441 quality evaluation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/172—Classification, e.g. identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/28—Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 평균-피쳐를 이용한 클러스터링 방법, 장치 및 컴퓨터 프로그램에 관한 것으로서, 보다 구체적으로는 클러스터링 장치에서 복수의 객체 샘플에 대한 클러스터링을 수행하는 방법에 있어서, 상기 복수의 객체 샘플을 분류하여 복수의 클러스터를 생성하는 클러스터 생성 단계; 상기 복수의 각 클러스터에 대하여, 상기 객체 샘플을 분류하는데 사용되는 복수의 피쳐에 대한 각 평균치를 포함하는 평균-피쳐를 산출하는 평균-피쳐 산출 단계; 및 상기 복수의 클러스터에 대한 평균-피쳐를 이용하여, 새롭게 추가된 하나 이상의 제2 객체 샘플에 대한 클러스터링을 수행하는 추가 샘플 클러스터링 단계;를 포함하는 것을 특징으로 하는 클러스터링 방법을 개시한다.
Description
본 발명은 평균-피쳐를 이용한 클러스터링 방법, 장치 및 컴퓨터 프로그램에 관한 것으로서, 보다 구체적으로는 사진이나 동영상 등에 포함되는 얼굴 등의 객체에 대한 클러스터링을 수행함에 있어, 복수의 객체 샘플에 대한 피쳐들의 평균치에 대응하는 평균-피쳐를 이용하여 클러스터링을 수행함으로써, 상기 피쳐들을 저장하고 처리하는데 소요되는 저장 공간과 연산량을 줄이면서도 보다 신속하고 효과적으로 클러스터링을 수행할 수 있는 클러스터링 방법, 장치 및 컴퓨터 프로그램에 관한 것이다.
최근 스마트폰 등 디지털 장치의 사용이 폭넓게 확산되면서, 사용자들은 다수의 사진이나 동영상 등 컨텐츠를 생성하거나, 나아가 다른 사용자들이 생성하여 서버 등에 업로드한 다량의 컨텐츠들을 검색하여 자신이 원하는 컨텐츠를 선택하여 사용하는 경우가 일상적으로 이루어지고 있다.
그런데, 사용자가 다량의 컨텐츠에서 자신이 원하는 인물이나 사물 등의 객체가 포함된 컨텐츠를 찾아내는 것은 매우 번거로운 작업이 될 수 있다. 즉, 사용자는 상기 다량의 컨텐츠를 일일이 열어 자신이 원하는 인물이나 사물 등이 포함되어 있는지 여부를 확인할 수 있겠으나, 이러한 경우 사용자는 다량의 컨텐츠에서 자신이 원하는 컨텐츠를 찾기 위하여 매우 많은 시간과 노력을 들여야 하는 어려움이 따른다.
이에 대하여, 서버 등에서 기계 학습 등을 이용해 상기 사진이나 동영상 등에 포함되는 객체를 미리 인식하거나 분류하여 두고, 사용자가 입력하는 검색어 등에 대응하여 제공함으로써, 사용자가 자신이 원하는 객체를 포함하는 사진이나 동영상 등을 보다 용이하게 사용할 수 있도록 하는 서비스가 시도되고 있다. 예를 들어, 대한민국 공개특허 제 10-2012-0064581호에서는 주어진 영상에 포함된 인물의 얼굴 영역을 검출하고, 검출된 얼굴 영역에서 얼굴 특징 기술자를 추출한 후, 상기 영상에 포함된 인물이 누구인지 인식하거나 분류하여 사용자에게 제공하는 영상 분류 방법 및 장치를 개시하고 있다.
그런데, 기계 학습 등을 이용해 다량의 사진이나 동영상을 분석하여 객체를 정확히 인식하고 분류하기 위해서 많은 전산 자원(computing resource)가 소요되는 문제가 따르게 된다.
특히, 사진이나 동영상 등에 포함된 사람의 얼굴을 정확히 분류하는 것은 매우 어려운 작업으로서 이를 위해서는 다수의 피쳐(예를 들어, 512 차원의 피쳐)를 사용하여야 하고, 이에 따라 다량의 사진이나 동영상 등에 포함된 얼굴의 피쳐들을 저장하고 처리하기 위해서는 막대한 저장 공간 및 연산량이 요구된다.
이로 인하여, 서비스 제공자의 입장에서는 사람의 얼굴 등과 같이 분류가 어려운 객체를 클러스터링(clustering)하기 위해서는 시스템의 구축 및 운영을 위해 막대한 비용이 소요되는 어려움이 초래될 수 있으며, 나아가 다량의 자료를 분석하고 처리하는데 상당한 시간이 소요되는 문제도 따르게 된다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위해 창안된 것으로, 사람의 얼굴 등의 객체에 대한 클러스터링(clustering)을 수행함에 있어 소요되는 저장 공간 및 연산량 등의 전산 자원(computing resource)을 획기적으로 줄이고 신속하고 효과적으로 처리할 수 있는 클러스터링 방법, 장치 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
특히, 본 발명에서는 사람의 얼굴 등과 같이 분류가 어려운 객체를 클러스터링하기 위한 시스템의 구축 및 운용에 막대한 비용이 소요되는 문제를 해결하고, 다량의 객체를 처리하는데 상당한 시간이 소요되는 문제를 개선할 수 있는 클러스터링 방법, 장치 및 컴퓨터 프로그램을 제공하는 것을 목적으로 한다.
상기 과제를 해결하기 위한 본 발명의 한 측면에 따른 클러스터링 방법은, 클러스터링 장치에서 복수의 객체 샘플에 대한 클러스터링을 수행하는 방법에 있어서, 상기 복수의 객체 샘플을 분류하여 복수의 클러스터를 생성하는 클러스터 생성 단계; 상기 복수의 각 클러스터에 대하여, 상기 객체 샘플을 분류하는데 사용되는 복수의 피쳐에 대한 각 평균치를 포함하는 평균-피쳐를 산출하는 평균-피쳐 산출 단계; 및 상기 복수의 클러스터에 대한 평균-피쳐를 이용하여, 새롭게 추가된 하나 이상의 제2 객체 샘플에 대한 클러스터링을 수행하는 추가 샘플 클러스터링 단계; 를 포함하는 것을 특징으로 한다.
본 발명의 다른 측면에 따른 컴퓨터 프로그램은 상기 기재된 클러스터링 방법의 각 단계를 컴퓨터에서 실행시키기 위한 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램인 것을 특징으로 한다.
본 발명의 또 다른 측면에 따른 클러스터링 장치는, 복수의 객체 샘플에 대한 클러스터링을 수행하는 클러스터링 장치에 있어서, 상기 복수의 객체 샘플을 분류하여 복수의 클러스터를 생성하는 클러스터 생성부; 상기 복수의 각 클러스터에 대하여, 상기 객체 샘플을 분류하는데 사용되는 복수의 피쳐에 대한 각 평균치를 포함하는 평균-피쳐를 산출하는 평균-피쳐 산출부; 및 상기 복수의 클러스터에 대한 평균-피쳐를 이용하여, 새롭게 추가된 하나 이상의 제2 객체 샘플에 대한 클러스터링을 수행하는 추가 샘플 클러스터링 수행부;를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따르면, 사람의 얼굴 등의 객체에 대한 클러스터링(clustering)을 수행함에 있어 소요되는 저장 공간 및 연산량 등의 전산 자원(computing resource)을 획기적으로 줄이고 신속하고 효과적으로 처리할 수 있게 된다.
또한, 본 발명의 일 실시예에 따르면, 특히 사람의 얼굴 등과 같이 분류가 어려운 객체를 클러스터링하기 위한 시스템의 구축 및 운용에 막대한 비용이 소요되는 문제를 해결하고, 다량의 객체를 처리하는데 상당한 시간이 소요되는 문제를 개선할 수 있게 된다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.
도 1은 본 발명의 일 실시예에 따른 클러스터링 서비스 제공 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 클러스터링 서비스 제공의 구체적인 실시예이다.
도 3은 본 발명의 일 실시예에 따른 클러스터링 방법의 순서도이다.
도 4 내지 도 5는 본 발명의 일 실시예에 따른 객체의 피쳐 및 이를 이용한 클러스터 생성을 예시하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 클러스터에 대한 평균-피쳐 산출을 예시하는 도면이다.
도 7과 도 8에서는 본 발명의 일 실시예에 따른 클러스터의 병합을 예시하는 도면이다.
도 9는 본 발명의 일 실시예에 따른 해싱 함수를 이용한 유사도 판단을 설명하는 도면이다.
도 10 내지 도 11은 본 발명의 일 실시예에 따른 클러스터링 방법의 구체적인 실시예를 도시하는 도면이다.
도 12는 본 발명의 일 실시예에 따른 클러스터링 서비스 제공 시스템의 구체적인 실시예를 도시하는 도면이다.
도 13 내지 도 14는 본 발명의 일 실시예에 따른 클러스터링 방법에 대한 의사 코드를 예시하는 도면이다.
도 15 내지 도 17은 본 발명의 일 실시예에 따른 클러스터링 방법의 효과를 설명하는 도면이다.
도 18은 본 발명의 일 실시예에 따른 클러스터링 장치의 구성도이다.
도 1은 본 발명의 일 실시예에 따른 클러스터링 서비스 제공 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 클러스터링 서비스 제공의 구체적인 실시예이다.
도 3은 본 발명의 일 실시예에 따른 클러스터링 방법의 순서도이다.
도 4 내지 도 5는 본 발명의 일 실시예에 따른 객체의 피쳐 및 이를 이용한 클러스터 생성을 예시하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 클러스터에 대한 평균-피쳐 산출을 예시하는 도면이다.
도 7과 도 8에서는 본 발명의 일 실시예에 따른 클러스터의 병합을 예시하는 도면이다.
도 9는 본 발명의 일 실시예에 따른 해싱 함수를 이용한 유사도 판단을 설명하는 도면이다.
도 10 내지 도 11은 본 발명의 일 실시예에 따른 클러스터링 방법의 구체적인 실시예를 도시하는 도면이다.
도 12는 본 발명의 일 실시예에 따른 클러스터링 서비스 제공 시스템의 구체적인 실시예를 도시하는 도면이다.
도 13 내지 도 14는 본 발명의 일 실시예에 따른 클러스터링 방법에 대한 의사 코드를 예시하는 도면이다.
도 15 내지 도 17은 본 발명의 일 실시예에 따른 클러스터링 방법의 효과를 설명하는 도면이다.
도 18은 본 발명의 일 실시예에 따른 클러스터링 장치의 구성도이다.
본 발명에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명의 권리범위를 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 발명에서 사용되는 기술적 용어는 본 발명에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 발명에서 사용되는 기술적인 용어가본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 해당 분야의 통상의 기술자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
또한, 본 발명에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함한다. 본 발명에서, "구성된다" 또는 "포함한다" 등의 용어는 발명에 기재된 여러 구성요소들, 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 발명에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 아니된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 제2구성 요소로 명명될 수 있고, 유사하게 제2구성 요소도 제1 구성요소로 명명될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시 예들을 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
또한, 본 발명을 설명함에 있어서 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 기술사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 기술사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.
이하에서는, 본 발명에 따른 클러스터링 방법, 장치 및 컴퓨터 프로그램의 예시적인 실시형태들을 첨부된 도면을 참조하여 상세히 설명한다.
먼저, 도 1에서는 본 발명의 일 실시예에 따른 클러스터링 서비스 제공 시스템(100)의 구성도를 보여주고 있다. 도 1에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 클러스터링 서비스 제공 시스템 (100)은 사진이나 동영상 등에 포함되는 인물이나 사물 등의 객체에 대한 클러스터링을 수행하는 클러스터링 장치(120)와 사용자 단말(110)을 포함하여 구성될 수 있다.
이때, 상기 사용자 단말(110)로서는 스마트폰, 태블릿 PC, PDA, 휴대전화 등 휴대 단말기가 사용될 수 있고, 그외에도 퍼스널 컴퓨터(PC), 노트북 PC 등 다양한 종류의 단말들이 채택될 수 있다.
또한, 본 발명에서는 사진이나 동영상 등에 포함되는 사람의 얼굴 등 객체(object)를 분류하여 클러스터링(clustering)을 수행할 수 있으나, 본 발명이 반드시 이에 한정되는 것을 아니며 이외에도 다양한 객체에 대한 클러스터링을 위하여 사용될 수도 있다.
이에 따라, 본 발명의 일 실시예에 따른 클러스터링 장치(120)에서는, 도 2에서 볼 수 있는 바와 같이, 사진이나 동영상 등에 포함되는 사람의 얼굴 등 객체(도 2의 (a))를 분류하여 클러스터(cluster)를 생성하여 두고(도 2의 (b)), 이를 이용하여 사용자의 요청 등에 따라 사용자 단말(110)로 특정한 사람을 포함하는 사진이나 동영상 등의 컨텐츠를 사용자 단말(110)로 제공할 수도 있다(도 2의 (c)).
이때, 상기 클러스터링 장치(120)는 하나 혹은 둘 이상의 서버(server)를 이용하여 구현될 수 있으나, 본 발명이 반드시 이에 한정되는 것은 아니며 이외에도 전용 장치로 구현되거나, 다수의 정보 처리 장치가 연동되는 클라우드 시스템 등 정보 처리가 가능한 다양한 장치를 이용하여 구현될 수도 있다.
또한, 상기 사용자 단말(110)과 클러스터링 장치(120)를 연결하는 네트워크(130)로서는 유선 네트워크와 무선 네트워크를 포함할 수 있으며, 구체적으로, 근거리 통신망 (LAN: Local Area Network), 도시권 통신망 (MAN: Metropolitan Area Network), 광역 통신망 (WAN: Wide Area Network) 등의 다양한 통신망을 포함할 수 있다. 또한, 상기 네트워크(130)는 공지의 월드 와이드 웹(WWW: World Wide Web)을 포함할 수도 있다. 그러나, 본 발명에 따른 통신 네트워크(130)는 상기 열거된 네트워크에 국한되지 않고, 공지의 무선 데이터 네트워크나 공지의 전화 네트워크 또는 공지의 유무선 텔레비전 네트워크를 적어도 일부로 포함할 수도 있다.
도 3에서는 본 발명의 일 실시예에 따른 클러스터링 방법의 순서도를 도시하고 있다. 도 3에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 클러스터링 방법은, 클러스터링 장치(120)에서 복수의 객체 샘플에 대한 클러스터링을 수행하는 방법에 있어서, 상기 복수의 객체 샘플을 분류하여 복수의 클러스터를 생성하는 클러스터 생성 단계(S110), 상기 복수의 각 클러스터에 대하여, 상기 객체 샘플을 분류하는데 사용되는 복수의 피쳐에 대한 각 평균치를 포함하는 평균-피쳐를 산출하는 평균-피쳐 산출 단계(S120) 및 상기 복수의 클러스터에 대한 평균-피쳐를 이용하여, 새롭게 추가된 하나 이상의 제2 객체 샘플에 대한 클러스터링을 수행하는 추가 샘플 클러스터링 단계(S130)를 포함할 수 있다.
아래에서는 도 3을 참조하여 본 발명의 일 실시예에 따른 클러스터링 방법을 각 단계별로 나누어 자세하게 검토한다.
먼저, 상기 클러스터 생성 단계(S110)에서는 상기 복수의 객체 샘플을 분류하여 복수의 클러스터를 생성하게 된다.
이때, 본 발명의 일 실시예로서 상기 클러스터 생성 단계(110)에서는, 도 4에서 볼 수 있는 바와 같이, DBSCAN 등 종래의 클러스터링 알고리즘을 사용하여 상기 복수의 객체 샘플에 대한 클러스터링을 수행할 수 있다. 그러나, 본 발명이 반드시 이에 한정되는 것은 아니며 이외에도 사람의 얼굴 등 객체를 적절히 클러스터링 할 수 있는 다양한 알고리즘이 사용될 수 있다.
보다 구체적으로, 도 5에서 볼 수 있는 바와 같이, 상기 클러스터 생성 단계(S110)에서는, 먼저 사진(501)이나 동영상 등에 포함되는 사람의 얼굴 등 객체(도 5의 502, 503)를 식별할 수 있다.
이어서, 상기 식별된 객체(도 5의 502, 503)에 대하여 피쳐(feature)를 산출하게 된다. 특히, 사람의 얼굴 등과 같이 분류가 어려운 객체의 경우는 정확도를 확보하기 위하여 다수의 피쳐를 사용하는 것이 필요하게 된다.
이에 대하여, 상기 객체에 대한 피쳐는 복수 차원의 피쳐 벡터(feature vector)로 구현될 수 있다(도 5의 504, 505).
보다 구체적인 예를 들어, 본 발명의 일 실시예에 따른 클러스터링 방법에서는, 사람의 얼굴에 대한 정확한 분류를 위하여 512 차원의 피쳐 벡터를 사용할 수 있으며, 이러한 경우 각 객체 샘플에 대한 512차원의 피쳐 벡터를 저장하기 위한 저장 공간 및 연산을 위한 연산량이 크게 증가할 수 있다.
이에 대하여, 본 발명의 일 실시예에 따른 클러스터링 방법에서는, 상기 각 객체 샘플에 대한 피쳐 벡터를 대신하여 복수의 객체 샘플을 포함하는 각 클러스터에 대한 평균-피쳐(mean-feature)를 사용함으로써, 객체에 대한 클러스터링(clustering)을 수행함에 있어 소요되는 저장 공간 및 연산량 등의 전산 자원(computing resource)을 획기적으로 줄이고 신속하고 효과적으로 처리할 수 있을 뿐만 아니라, 특히 사람의 얼굴 등과 같이 분류가 어려운 객체를 클러스터링하기 위한 시스템의 구축 및 운용에 막대한 비용이 소요되는 문제를 해결하고, 다량의 객체를 처리하는데 상당한 시간이 소요되는 문제도 개선할 수 있게 된다.
이에 따라, 상기 평균-피쳐 산출 단계(S120)에서는, 상기 복수의 각 클러스터에 대하여, 상기 객체 샘플을 분류하는데 사용되는 복수의 피쳐에 대한 각 평균치를 포함하는 평균-피쳐를 산출하게 된다.
이때, 상기 평균-피쳐 산출 단계(S120)에서는, 상기 객체 샘플을 분류하는데 사용되는 N차원의 피쳐 벡터에 대하여, 각 차원에 대한 복수의 객체 샘플의 평균치를 산출하여 N차원의 평균-피쳐를 산출할 수 있다.
보다 구체적으로, 상기 평균-피쳐는 하기 수학식 1을 사용하여 산출될 수 있다.
[수학식 1]
수학식 1에서는 512차원을 가지는 n개의 피쳐 벡터에 대하여, 각 차원에 대한 평균치를 산출하여 평균-피쳐를 산출하는 경우를 예시하고 있다.
그러나, 본 발명이 이에 한정되는 것은 아니며, 사용되는 객체의 특성 등에 따라 차원 등이 달라질 수 있고, 나아가 피쳐 벡터 이외의 다른 형식으로 상기 평균-피쳐를 구성하는 것도 가능하다.
보다 구체적으로, 도 6에서 볼 수 있는 바와 같이, 5개의 객체 샘플에 대한 복수의 피쳐(도 6(a)의 F1-F5)가 존재하는 경우, 상기 클러스터 생성 단계(S110)에서는 DBSCAN 등의 알고리즘을 이용하여 각 피쳐들간의 유사도 비교를 통해(도 6의 (a)-(d)) 유사한 객체들의 군집인 클러스터를 생성할 수 있다(도 6의 (e)).
이어서, 상기 평균-피쳐 산출 단계(S120)에서는, 상기 클러스터에 포함되는 복수의 피쳐(도 6(e)의 F1-F5)에 대한 평균치를 산출하여 상기 클러스터에 대한 평균-피쳐를 산출할 수 있게 된다(도 6(f)의 M1).
나아가, 본 발명의 일 실시예에 따른 클러스터링 방법에서는, 상기 평균-피쳐 산출 단계(S120)에서, 제1 클러스터에 대한 평균-피쳐와 제2 클러스터의 평균-피쳐의 거리가 미리 정해진 기준치 이내에 있는 경우, 상기 제1 클러스터와 상기 제2 클러스터를 병합하여 제3 클러스터를 생성할 수 있다.
보다 구체적으로, 도 7에서 볼 수 있는 바와 같이, 복수의 피쳐에 대한 클러스터링을 수행하여 제1 클러스터(도 7(a)의 F2-F5)와 제2 클러스터(도 7(a)의 F3-F4)가 산출되고, 상기 제1 클러스터에 대한 평균 피쳐(도 7(b)의 M1)와 상기 제2 클러스터의 평균-피쳐(도 7(b)의 M2)의 거리가 미리 정해진 기준치 이내에 있는 경우, 본 발명에서는 상기 제1 클러스터와 상기 제2 클러스터를 병합하여 제3 클러스터를 생성하고 이에 대한 평균 피쳐(도 7(c)의 M3)를 산출하여 클러스터링에 사용할 수 있으며, 이를 통해 평균-피쳐의 개수가 증가하는 것을 방지하여 보다 효과적으로 저장 공간과 연산량의 증가를 억제할 수 있게 된다.
나아가, 본 발명의 일 실시예에 따른 클러스터링 방법에서, 상기 제3 클러스터에 대한 평균-피처는, 상기 제1 클러스터에 포함되는 객체 샘플의 갯수와 상기 제2 클러스터에 포함되는 객체 샘플의 갯수를 고려하여, 상기 제1 클러스터의 평균-피쳐와 상기 제2 클러스터의 평균-피쳐를 가중 평균하여 산출될 수 있다.
보다 구체적인 예를 들어, 도 8에서 볼 수 있는 바와 같이, DBSCAN 등의 알고리즘을 이용하여 복수의 클러스터를 생성하고, 각 클러스터에 대한 평균-피쳐를 생성하는 경우(도 8(a)의 M1-M4), 상기 복수의 클러스터 중 일부 클러스터들의 평균-피쳐의 거리가 미리 정해진 기준치 이내에 있는 경우, 상기 일부 클러스터들을 병합하여 새로운 클러스터를 생성할 수 있으며(도 8(b)의 M1-M3), 이때 상기 새로운 클러스터에 대한 평균-피처(도 8(b)의 C1)는, 상기 제1 클러스터에 포함되는 객체 샘플의 개수(도 8(b)에서 M1에 대응하는 3개)와 상기 제2 클러스터에 포함되는 객체 샘플의 갯수(도 8(b)에서 M2에 대응하는 4개) 및 제3 클러스터(도 8(b)에서 M3에 대응하는 4개)를 고려하여, 상기 각 클러스터의 평균-피쳐를 가중 평균하여 산출될 수 있다(도 8(b)에서 C1 = 3/11 * M1 + 4/11 * M2 + 4/11 * M3).
나아가, 본 발명의 일 실시예에 따른 클러스터링 방법에서, 기존의 클러스터에 대한 평균-피쳐와 병합하여 생성된 클러스터의 평균-피쳐의 거리가 미리 정해진 기준치 이내에 있는 경우, 상기 기존의 클러스터와 상기 새롭게 생성된 클러스터를 다시 병합하여 새로운 클러스터를 생성하는 과정을 반복하여 수행할 수 있다.
보다 구체적인 예를 들어, 도 8의 (c)에서 상기 제1 내지 제3 클러스터가 병합되어 생성된 제5 클러스터의 평균-피쳐(도 8(c)의 C1)와 기존에 존재하던 제4 클러스터의 평균-피쳐(도 8(c)의 M4) 간의 거리가 미리 정해진 기준치 이내에 있는 경우, 상기 클러스터들을 병합하여 제6 클러스터를 생성할 수 있으며(도 8(c)의 M1-M4), 이때 상기 제6 클러스터에 대한 평균-피처(도 8(c)의 C2)는, 상기 제5 클러스터에 포함되는 객체 샘플의 개수(도 8(c)에서 11개)와 상기 제4 클러스터에 포함되는 객체 샘플의 갯수(도 8(c)에서 M4에 대응하는 4개)를 고려하여, 상기 각 클러스터의 평균-피쳐를 가중 평균하여 산출될 수 있다(도 8(c)에서 C2 = 11/15 * C1 + 4/15 * M4).
이에 따라, 본 발명의 일 실시예에 따른 클러스터링 장치(120) 및 방법에서는, 클러스터링을 수행하기 위하여 복수의 클러스터에 속하는 각 객체 샘플에 대한 피쳐를 저장하지 않고 각 클러스터에 대한 평균-피쳐를 저장하여 사용할 수 있으며, 이로 인해 객체에 대한 클러스터링(clustering)을 수행함에 있어 소요되는 저장 공간 및 연산량 등의 전산 자원을 획기적으로 줄이고 신속하고 효과적인 클러스터링을 수행할 수 있게 된다.
다음으로, 상기 추가 샘플 클러스터링 단계(S130)에서는, 상기 복수의 클러스터에 대한 평균-피쳐를 이용하여, 새롭게 추가된 하나 이상의 제2 객체 샘플에 대한 클러스터링을 수행하게 된다.
이때, 상기 추가 샘플 클러스터링 단계(S130)에서는, 상기 제2 객체 샘플에 의하여 하나 이상의 새로운 클러스터가 생성되는 경우, 상기 새로운 클러스터에 대한 평균-피처를 산출하여 클러스터링에 사용할 수 있다.
또한, 상기 추가 샘플 클러스터링 단계(S130)에서는, 상기 제2 객체 샘플에 의하여 하나 이상의 클러스터에 포함되는 객체 샘플의 갯수가 변경되는 경우, 상기 하나 이상의 클러스터에 대한 평균-피처를 갱신하여 클러스터링에 사용할 수도 있다.
이에 따라, 본 발명의 일 실시예에 따른 클러스터링 방법에서는, 사람의 얼굴 등의 객체에 대한 클러스터링을 수행함에 있어 필요한 연산량을 효과적으로 감축하여 신속하게 클러스터링 작업을 처리할 수 있게 된다.
또한, 본 발명의 일 실시예에 따른 클러스터링 방법에서, 상기 추가 샘플 클러스터링 단계(S130)에서는, 기존의 제1 클러스터에 대한 평균-피쳐와, 상기 제2 객체 샘플에 의하여 추가되거나 변경된 제2 클러스터의 평균-피쳐의 거리가 미리 정해진 기준치 이내에 있는 경우, 상기 제1 클러스터와 상기 제2 클러스터를 병합하여 제3 클러스터를 생성할 수도 있다.
나아가, 상기 추가 샘플 클러스터링 단계(S130)에서, 상기 병합에 의해 생성되는 제3 클러스터에 대한 평균-피처는, 상기 제1 클러스터에 포함되는 객체 샘플의 갯수와 상기 제2 클러스터에 포함되는 객체 샘플의 갯수를 고려하여, 상기 제1 클러스터의 평균-피쳐와 상기 제2 클러스터의 평균-피쳐를 가중 평균하여 산출될 수 있다.
또한, 상기 추가 샘플 클러스터링 단계(S130)에서, 기존의 제4 클러스터에 대한 평균-피쳐와, 상기 병합된 제3 클러스터의 평균-피쳐의 거리가 미리 정해진 기준치 이내에 있는 경우, 상기 제4 클러스터와 상기 제3 클러스터를 다시 병합하여 새로운 클러스터를 생성하는 과정을 반복하여 수행될 수도 있다.
또한, 본 발명의 일 실시예에 따른 클러스터링 방법에서, 상기 추가 샘플 클러스터링 단계(S130)에서는, 상기 제2 객체 샘플에 대한 해싱(hasging) 함수값에 대응되는 객체 샘플 또는 클러스터에 한정하여 유사도를 판단하여 클러스터링을 수행할 수도 있다.
보다 구체적인 예를 들어, 도 9에서 볼 수 있는 바와 같이, 제1 클러스터(도 9의 910)에 대응하는 해싱 함수값이 제1 값(Bucket 1)에 해당하고, 새롭게 추가된 제2 객체 샘플(도 9의 940)의 해싱 함수값도 상기 제1 값(Bucket 1)에 해당하는 경우, 상기 추가 샘플 클러스터링 단계(S130)에서는 상기 제1 값(Bucket 1)에 대응되는 객체 샘플 또는 클러스트에 한정하여 유사도를 판단하여 클러스터링을 수행하여 연산량을 효과적으로 감축할 수 있게 된다.
나아가, 도 9에서 제2 클러스터(도 9의 920)와 같이 서로 다른 복수의 해싱 함수값에 대응하는 경우(Bucket 3 및 Bucket 4), 상기 복수의 해싱 함수값에 대응하는 경우를 모두 고려하여 상기 추가되는 객체 샘플에 대한 유사도를 판단할 수도 있다.
또한, 도 10과 도 11에서는 본 발명의 일 실시예에 따른 클러스터링 방법 및 장치의 구체적인 실시예를 도시하고 있다.
먼저, 도 10에서 볼 수 있는 바와 같이, 클러스터링 프로세스가 개시되면 LSH(Local Sensitive Hashing) 블록(1010)에서는 앞서 도 9에서 설명한 바와 같이 처리하고자 하는 객체 샘플에 대한 해싱(hasging) 함수값에 대응되는 객체 샘플 또는 클러스터에 한정하여 유사도를 비교할 수 있도록 비교 후보를 추출하게 된다.
또한, DBSCAN 블록(1020)에서는 DBSCAN 알고리즘을 사용하여 상기 비교 후보로 추출된 객체 샘플 또는 클러스터의 평균-피쳐와의 유사도 비교를 통해 클러스터링 작업을 수행하게 된다. 이때, 앞서 설명한 바와 같이 DBSCAN 알고리즘 이외에 다양한 클러스터링 알고리즘이 사용될 수도 있다.
이어서, 평균-피쳐(Mean-feature) 블록(1030)에서는 생성된 클러스터에 대한 평균-피쳐를 산출하거나 갱신하게 된다.
또한, 평균-피쳐 병합(Merge Mean-feature) 블록(1040)에서는 소정의 거리 이내에 위치하는 유사한 평균-피쳐들을 병합할 수 있다.
나아가, 이러한 과정들은 반복하여 수행되면서 클러스터 및 평균-피쳐(mean-feature)가 추가적으로 병합하면서, 클러스터링에 소요되는 저장 공간 및 연산량을 더욱 감소시킬 수도 있다.
또한, 도 11에서 볼 수 있는 바와 같이, 종래에는(도 11의 (a)) 하나의 객체 샘플(도 11(a)의 A1)에 대한 클러스터링을 위하여 복수의 객체 샘플(도 11(a)의 F2-F8) 각각에 대한 연산이 수행되어야 하였으나, 본 발명의 일 실시예에 따른 클러스터링 방법에서는 상기 DBSCAN 블록(1020)을 통해 복수의 객체 샘플(도 11의 (b3))에 대하여 클러스터를 생성하고, 상기 평균-피쳐(Mean-feature) 블록(1030)을 통해 평균-피쳐를 산출한 후(도 11의 (b2)), 상기 LSH 블록(1010)을 통해 비교 후보로 추출된 객체 샘플 또는 클러스터에 한정하여 유사도를 비교함으로써, 클러스터링에 소요되는 저장 공간과 연산량을 획기적으로 감축할 수 있게 된다.
또한, 도 12는 본 발명의 일 실시예에 따른 클러스터링 서비스 제공 시스템(100)의 구체적인 실시예를 도시하고 있다.
도 12에서 볼 수 있는 바와 같이, 본 발명의 일 실시예에 따른 클러스터링 서비스 제공 시스템(100)에서, 데이터셋(1210)은 이미지 데이터(1211)와 레이블 정보(1212) 등으로 구성될 수 있으며, 특정한 스토리지(1220)에 저장될 수 있다.
이에 대하여, 이미지 데이터 추출 서버(1230)는 상기 데이터셋(1210)의 이미지에서 각종 메타 데이터와 피쳐 정보를 추출하는 기능(1231)을 구비하게 되며, 추출된 메타 데이터와 피쳐 정보는 데이터베이스(1240)에 저장될 수 있다.
이어서, 클러스터링 시뮬레이터(1250)에서는 도 10 내지 도 11에서 설명한 바와 같이 본 발명에 따른 클러스터링 방법을 적용하여 클러스터링 작업을 수행하게 된다.
이때, 사용자는 웹 UI(1260)를 통해 시뮬레이터를 실행하고(1261), 산출된 결과에 대한 시각화(1262)와 품질 평가(1263)를 수행할 수 있게 된다.
또한, 도 13 내지 도 14는 본 발명의 일 실시예에 따른 클러스터링 방법에 대한 의사 코드를 예시하고 있다.
먼저, 도 13에서는 본 발명의 일 실시예에 따른 클러스터링 방법에서 복수의 클러스터의 병합에 대한 평균-피쳐의 산출을 위한 의사 코드를 예시하고 있다.
도 13에서 볼 수 있는 바와 같이, 상기 복수의 클러스터의 병합에 대한 새로운 평균-피쳐(도 13의 new_feature)를 산출함에 있어, 각 클러스터에 포함되는 객체 샘플의 갯수를 고려하여(weight := cluster.elements), 각 클러스터의 평균-피쳐를 가중 평균하여 산출할 수 있게 된다.
또한, 도 14에서는 본 발명의 일 실시예에 따른 클러스터링 방법에서 평균-피쳐를 사용하여 새로운 객체 샘플(element)를 분류하는 의사 코드를 예시하고 있다.
도 14에서 볼 수 있는 바와 같이, 상기 복수의 클러스터에 각각에 대하여 어, 각 클러스터의 평균-피쳐와 상기 새로운 객체 샘플 간의 거리를 고려하여(getDistance(cluster, element)) 상기 새로운 객체 샘플이 속하게 되는 타겟 클러스터(target_cluster)를 산출할 수 있다.
나아가, 도 15 내지 도 17에서는 본 발명의 일 실시예에 따른 클러스터링 방법에서의 저장 공간 및 연산량의 감축 정도와 클러스터링 성능을 각각 보여주고 있다.
이때, 도 15 내지 도 17에서 S1은 종래의 DBSCAN 알고리즘에 의한 결과이고, S2는 DBSCAN 알고리즘에 본 발명에 따른 평균-피쳐(mean-feature)를 적용한 결과이며, S3는 DBSCAN 알고리즘에 본 발명에 따른 평균-피쳐(mean-feature) 및 평균-피쳐 병합(merged mean-feature)을 적용한 결과이고, S4는 DBSCAN 알고리즘에 본 발명에 따른 평균-피쳐(mean-feature), 평균-피쳐 병합(merged mean-feature) 및 LSH(Local Sensitive Hashing)를 모두 적용한 결과를 말한다.
또한, 도 15 내지 도 17에서 PRESET1은 인물수 12명에 대하여, PRESET2는 인물수 30명에 대하여, PRESET3은 인물수 60명에 대하여, PRESET4는 인물수 90명에 대하여 각각 얼굴당 이미지 개수를 10 또는 20으로 하여 테스트용 데이터 셋을 구성해 시뮬레이션을 수행한 경우를 말한다.
먼저, 도 15에서 볼 수 있는 바와 같이, 소요되는 저장 공간을 비교해 보면, 종래 DBSCAN알고리즘(S1)에서 소요되는 저장 공간을 100으로 하여 비교할 경우, 본 발명에 따른 S2-S4에서는 각각 22.83 내지 31.64의 범위를 가지는 바, 소요되는 저장 공간을 획기적으로 줄일 수 있음을 확인할 수 있다. 나아가, 저장 공간의 측면에서는 S3가 상대적으로 더욱 우수한 결과치를 보여주었다.
또한, 도 16에서 볼 수 있는 바와 같이, 소요되는 연산량을 비교해 보면, 종래 DBSCAN알고리즘(S1)에서 소요되는 연산량을 100으로 하여 비교할 경우, 본 발명에 따른 S2-S4에서는 각각 14.26 내지 48.23의 범위를 가지는 바, 소요되는 연산량도 획기적으로 줄일 수 있음을 확인할 수 있다. 나아가, 연산량의 측면에서는 S4가 상대적으로 더욱 우수한 결과치를 보여주었다.
또한, 도 17에서 볼 수 있는 바와 같이, 클러스터링 성능을 비교해보면, 종래 DBSCAN알고리즘(S1)에서의 클러스터링 성능(Jaccard Index 기준)을 100으로 하여 비교할 경우, 본 발명에 따른 S2-S4에서는 각각 103.23 내지 115.44의 범위를 가지는 바, 클러스터링 성능의 저하도 크지 않아 감내할 만한 수준임을 확인할 수 있다.
또한, 본 발명의 또 다른 측면에 따른 컴퓨터 프로그램은 앞서 살핀 클러스터링 방법의 각 단계를 컴퓨터에서 실행시키기 위하여 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램인 것을 특징으로 한다. 상기 컴퓨터 프로그램은 컴파일러에 의해 만들어지는 기계어 코드를 포함하는 컴퓨터 프로그램뿐만 아니라, 인터프리터 등을 사용해서 컴퓨터에서 실행될 수 있는 고급 언어 코드를 포함하는 컴퓨터 프로그램일 수도 있다. 이때, 상기 컴퓨터로서는 퍼스널 컴퓨터(PC)나 노트북 컴퓨터 등에 한정되지 아니하며, 서버, 스마트폰, 태블릿 PC, PDA, 휴대전화 등 중앙처리장치(CPU)를 구비하여 컴퓨터 프로그램을 실행할 수 있는 일체의 정보처리 장치를 포함한다.
또한, 상기 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
또한, 도 18에서는 본 발명의 일 실시예에 따른 클러스터링 장치(120)의 구성도를 예시하고 있다.
도 18에서 볼 수 있는 바와 같이 본 발명의 일 실시예에 따른 클러스터링 장치(120)는 클러스터 생성부(121), 평균-피쳐 산출부(122) 및 추가 샘플 클러스터링 수행부(123)를 포함하여 구성될 수 있다.
이어서, 아래에서는 본 발명의 일 실시예에 따른 클러스터링 장치(120)를 각 구성요소 별로 나누어 살핀다. 본 발명의 일 실시예에 따른 클러스터링 장치 (120)에 대한 보다 자세한 내용은 앞서 설명한 본 발명의 일 실시예에 따른 클러스터링 방법에 대한 설명으로부터 유추될 수 있는 바, 아래에서 보다 자세한 설명은 생략한다.
먼저, 상기 클러스터 생성부(121)에서는 상기 복수의 객체 샘플을 분류하여 복수의 클러스터를 생성하게 된다.
또한, 상기 평균-피쳐 산출부(122)에서는 상기 복수의 각 클러스터에 대하여, 상기 객체 샘플을 분류하는데 사용되는 복수의 피쳐에 대한 각 평균치를 포함하는 평균-피쳐를 산출하게 된다.
마지막으로, 상기 추가 샘플 클러스터링 수행부(123)에서는 상기 복수의 클러스터에 대한 평균-피쳐를 이용하여, 새롭게 추가된 하나 이상의 제2 객체 샘플에 대한 클러스터링을 수행하게 된다.
나아가, 본 발명의 일 실시예에 따른 클러스터링 장치(120)에서, 상기 평균-피쳐 산출부(122)에서는, 상기 객체 샘플을 분류하는데 사용되는 N차원의 피쳐 벡터에 대하여, 각 차원에 대한 복수의 객체 샘플의 평균치를 산출하여 N차원의 평균-피쳐를 산출할 수 있다.
또한, 상기 평균-피쳐 산출부(122)에서는, 제1 클러스터에 대한 평균-피쳐와 제2 클러스터의 평균-피쳐의 거리가 미리 정해진 기준치 이내에 있는 경우, 상기 제1 클러스터와 상기 제2 클러스터를 병합하여 제3 클러스터를 생성할 수 있다.
나아가, 기존의 제4 클러스터에 대한 평균-피쳐와, 상기 병합된 제3 클러스터의 평균-피쳐의 거리가 미리 정해진 기준치 이내에 있는 경우, 상기 제4 클러스터와 상기 제3 클러스터를 다시 병합하여 새로운 클러스터를 생성하는 과정을 반복할 수도 있다.
또한, 상기 추가 샘플 클러스터링 수행부(123)에서는, 상기 제2 객체 샘플에 대한 해싱(hasging) 함수값에 대응되는 객체 샘플 또는 클러스터에 한정하여 유사도를 판단하여 클러스터링을 수행할 수도 있다.
이에 따라, 본 발명의 일 실시예에 따른 클러스터링 방법, 장치 및 컴퓨터 프로그램에서는, 사람의 얼굴 등의 객체에 대한 클러스터링(clustering)을 수행함에 있어 소요되는 저장 공간 및 연산량 등의 전산 자원(computing resource)을 획기적으로 줄이고 신속하고 효과적으로 처리할 수 있게 된다.
또한, 본 발명의 일 실시예에 따른 클러스터링 방법, 장치 및 컴퓨터 프로그램에서는, 특히 사람의 얼굴 등과 같이 분류가 어려운 객체를 클러스터링하기 위한 시스템의 구축 및 운용에 막대한 비용이 소요되는 문제를 해결하고, 다량의 객체를 처리하는데 상당한 시간이 소요되는 문제를 개선할 수 있게 된다.
본 명세서에서 설명된 위 실시예 및 도면들은 단지 예시적인 것일 뿐, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 또한, 도면에 도시된 구성요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 또한 본 발명 중 방법 발명에서 제시하는 단계들은 반드시 그 선후의 순서에 대한 구속을 의도한 것이 아니며, 각 공정의 본질에 따라 반드시 어느 단계가 선행되어야 하는 것이 아닌 한 순서는 필요에 따라 적절히 변경될 수 있다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해본 발명의 범위가 한정되는 것은 아니다. 또한, 통상의 기술자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등 범주 내에서 설계 조건 및 요소에 따라 구성될 수 있음을 이해할 수 있다.
100 : 클러스터링 서비스 제공 시스템
110, 110a, 110b : 사용자 단말
120 : 클러스터링 장치
121 : 클러스터 생성부
122 : 평균-피쳐 산출부
123 : 추가 샘플 클러스터링 수행부
130 : 네트워크
110, 110a, 110b : 사용자 단말
120 : 클러스터링 장치
121 : 클러스터 생성부
122 : 평균-피쳐 산출부
123 : 추가 샘플 클러스터링 수행부
130 : 네트워크
Claims (16)
- 클러스터링 장치에서 복수의 객체 샘플에 대한 클러스터링을 수행하는 방법에 있어서,
상기 복수의 객체 샘플을 분류하여 복수의 클러스터를 생성하는 클러스터 생성 단계;
상기 복수의 각 클러스터에 대하여, 상기 객체 샘플을 분류하는데 사용되는 복수의 피쳐에 대한 각 평균치를 포함하는 평균-피쳐를 산출하는 평균-피쳐 산출 단계; 및
상기 복수의 클러스터에 대한 평균-피쳐를 이용하여, 새롭게 추가된 하나 이상의 제2 객체 샘플에 대한 클러스터링을 수행하는 추가 샘플 클러스터링 단계;를 포함하며,
상기 평균-피쳐 산출 단계에서는,
제1 클러스터에 대한 평균-피쳐와 제2 클러스터의 평균-피쳐의 거리가 미리 정해진 기준치 이내에 있는 경우, 상기 제1 클러스터와 상기 제2 클러스터를 병합하여 제3 클러스터를 생성하고,
상기 추가 샘플 클러스터링 단계에서는,
상기 제2 객체 샘플이 구성하는 클러스터 중 일부 샘플에 대한 해싱(hasging) 함수값이 제1 해싱 함수값에 대응하고 다른 일부 샘플에 대한 해싱 함수값이 상기 제1 해싱 함수값과 상이한 제2 해싱 함수값에 대응하는 경우, 상기 제1 해싱 함수값 및 상기 제2 해싱 함수값에 대응하는 경우를 모두 고려하여 클러스터링을 수행하는 것을 특징으로 하는 클러스터링 방법. - 제1항에 있어서,
상기 평균-피쳐 산출 단계에서는,
상기 객체 샘플을 분류하는데 사용되는 N차원의 피쳐 벡터에 대하여,
각 차원에 대한 복수의 객체 샘플의 평균치를 산출하여 N차원의 평균-피쳐를 산출하는 것을 특징으로 하는 클러스터링 방법. - 제1항에 있어서,
상기 추가 샘플 클러스터링 단계에서는,
상기 제2 객체 샘플에 의하여 하나 이상의 새로운 클러스터가 생성되는 경우, 상기 새로운 클러스터에 대한 평균-피처를 산출하는 것을 특징으로 하는 클러스터링 방법. - 제1항에 있어서,
상기 추가 샘플 클러스터링 단계에서는,
상기 제2 객체 샘플에 의하여 하나 이상의 클러스터에 포함되는 객체 샘플의 갯수가 변경되는 경우, 상기 하나 이상의 클러스터에 대한 평균-피처를 갱신하는 것을 특징으로 하는 클러스터링 방법. - 삭제
- 제1항에 있어서,
상기 제3 클러스터에 대한 평균-피처는,
상기 제1 클러스터에 포함되는 객체 샘플의 갯수와 상기 제2 클러스터에 포함되는 객체 샘플의 갯수를 고려하여,
상기 제1 클러스터의 평균-피쳐와 상기 제2 클러스터의 평균-피쳐를 가중 평균하여 산출되는 것을 특징으로 하는 클러스터링 방법. - 제1항에 있어서,
기존의 제4 클러스터에 대한 평균-피쳐와, 상기 병합된 제3 클러스터의 평균-피쳐의 거리가 미리 정해진 기준치 이내에 있는 경우,
상기 제4 클러스터와 상기 제3 클러스터를 다시 병합하여 새로운 클러스터를 생성하는 과정을 반복하는 것을 특징으로 하는 클러스터링 방법. - 제1항에 있어서,
상기 추가 샘플 클러스터링 단계에서는,
기존의 제1 클러스터에 대한 평균-피쳐와, 상기 제2 객체 샘플에 의하여 추가되거나 변경된 제2 클러스터의 평균-피쳐의 거리가 미리 정해진 기준치 이내에 있는 경우,
상기 제1 클러스터와 상기 제2 클러스터를 병합하여 제3 클러스터를 생성하는 것을 특징으로 하는 클러스터링 방법. - 삭제
- 제1항에 있어서,
상기 클러스터링 장치에서는,
클러스터링을 수행하기 위하여 복수의 클러스터에 속하는 각 객체 샘플에 대한 피쳐를 저장하지 않고 각 클러스터에 대한 평균-피쳐를 저장하여 사용하는 것을 특징으로 하는 클러스터링 방법. - 컴퓨터에서 제1항 내지 제4항, 제6항 내지 제8항, 제10항 중 어느 한 항에 기재된 클러스터링 방법의 각 단계를 실행시키기 위한 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터 프로그램.
- 복수의 객체 샘플에 대한 클러스터링을 수행하는 클러스터링 장치에 있어서,
상기 복수의 객체 샘플을 분류하여 복수의 클러스터를 생성하는 클러스터 생성부;
상기 복수의 각 클러스터에 대하여, 상기 객체 샘플을 분류하는데 사용되는 복수의 피쳐에 대한 각 평균치를 포함하는 평균-피쳐를 산출하는 평균-피쳐 산출부; 및
상기 복수의 클러스터에 대한 평균-피쳐를 이용하여, 새롭게 추가된 하나 이상의 제2 객체 샘플에 대한 클러스터링을 수행하는 추가 샘플 클러스터링 수행부;를 포함하며,
상기 평균-피쳐 산출부에서는,
제1 클러스터에 대한 평균-피쳐와 제2 클러스터의 평균-피쳐의 거리가 미리 정해진 기준치 이내에 있는 경우, 상기 제1 클러스터와 상기 제2 클러스터를 병합하여 제3 클러스터를 생성하고,
상기 추가 샘플 클러스터링 수행부에서는,
상기 제2 객체 샘플이 구성하는 클러스터 중 일부 샘플에 대한 해싱(hasging) 함수값이 제1 해싱 함수값에 대응하고 다른 일부 샘플에 대한 해싱 함수값이 상기 제1 해싱 함수값과 상이한 제2 해싱 함수값에 대응하는 경우, 상기 제1 해싱 함수값 및 상기 제2 해싱 함수값에 대응하는 경우를 모두 고려하여 클러스터링을 수행하는 것을 특징으로 하는 클러스터링 장치. - 제12항에 있어서,
상기 평균-피쳐 산출부에서는,
상기 객체 샘플을 분류하는데 사용되는 N차원의 피쳐 벡터에 대하여,
각 차원에 대한 복수의 객체 샘플의 평균치를 산출하여 N차원의 평균-피쳐를 산출하는 것을 특징으로 하는 클러스터링 장치. - 삭제
- 제12항에 있어서,
기존의 제4 클러스터에 대한 평균-피쳐와, 상기 병합된 제3 클러스터의 평균-피쳐의 거리가 미리 정해진 기준치 이내에 있는 경우,
상기 제4 클러스터와 상기 제3 클러스터를 다시 병합하여 새로운 클러스터를 생성하는 과정을 반복하는 것을 특징으로 하는 클러스터링 장치. - 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210013100A KR102632588B1 (ko) | 2021-01-29 | 2021-01-29 | 평균-피쳐를 이용한 클러스터링 방법, 장치 및 컴퓨터 프로그램 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210013100A KR102632588B1 (ko) | 2021-01-29 | 2021-01-29 | 평균-피쳐를 이용한 클러스터링 방법, 장치 및 컴퓨터 프로그램 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220109731A KR20220109731A (ko) | 2022-08-05 |
KR102632588B1 true KR102632588B1 (ko) | 2024-02-01 |
Family
ID=82826432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210013100A KR102632588B1 (ko) | 2021-01-29 | 2021-01-29 | 평균-피쳐를 이용한 클러스터링 방법, 장치 및 컴퓨터 프로그램 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102632588B1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080205774A1 (en) * | 2007-02-26 | 2008-08-28 | Klaus Brinker | Document clustering using a locality sensitive hashing function |
JP2011175587A (ja) * | 2010-02-25 | 2011-09-08 | Nippon Telegr & Teleph Corp <Ntt> | ユーザ判定装置、方法、プログラム及びコンテンツ配信システム |
JP2012014269A (ja) * | 2010-06-29 | 2012-01-19 | Canon Inc | クラスタリング処理装置、クラスタリング処理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120064581A (ko) | 2010-12-09 | 2012-06-19 | 한국전자통신연구원 | 영상 분류 방법 및 이를 위한 장치 |
-
2021
- 2021-01-29 KR KR1020210013100A patent/KR102632588B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080205774A1 (en) * | 2007-02-26 | 2008-08-28 | Klaus Brinker | Document clustering using a locality sensitive hashing function |
JP2011175587A (ja) * | 2010-02-25 | 2011-09-08 | Nippon Telegr & Teleph Corp <Ntt> | ユーザ判定装置、方法、プログラム及びコンテンツ配信システム |
JP2012014269A (ja) * | 2010-06-29 | 2012-01-19 | Canon Inc | クラスタリング処理装置、クラスタリング処理方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20220109731A (ko) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022126971A1 (zh) | 基于密度的文本聚类方法、装置、设备及存储介质 | |
CN107436875B (zh) | 文本分类方法及装置 | |
CN108229419B (zh) | 用于聚类图像的方法和装置 | |
CN103608826B (zh) | 利用网络信息挖掘的视频内产品注释 | |
WO2022105129A1 (zh) | 内容数据推荐方法、装置、计算机设备及存储介质 | |
US11941087B2 (en) | Unbalanced sample data preprocessing method and device, and computer device | |
CN112000822B (zh) | 多媒体资源排序方法、装置、电子设备及存储介质 | |
US8983179B1 (en) | System and method for performing supervised object segmentation on images | |
CN104077723B (zh) | 一种社交网络推荐系统及方法 | |
JP2019519009A (ja) | データソースに基づく業務カスタマイズ装置、方法、システム及び記憶媒体 | |
CN113255370A (zh) | 基于语义相似度的行业类型推荐方法、装置、设备及介质 | |
CN112257801B (zh) | 图像的增量聚类方法、装置、电子设备及存储介质 | |
CN113821657A (zh) | 基于人工智能的图像处理模型训练方法及图像处理方法 | |
CN113657087A (zh) | 信息的匹配方法及装置 | |
CN110941978A (zh) | 一种未识别身份人员的人脸聚类方法、装置及存储介质 | |
CN111768242A (zh) | 下单率预测方法、设备及可读存储介质 | |
CN111062431A (zh) | 图像聚类方法、图像聚类装置、电子设备及存储介质 | |
Yang et al. | Unsupervised feature selection based on reconstruction error minimization | |
JP7276483B2 (ja) | 学習装置、分類装置、学習方法及び学習プログラム | |
KR102632588B1 (ko) | 평균-피쳐를 이용한 클러스터링 방법, 장치 및 컴퓨터 프로그램 | |
CN116597443A (zh) | 素材标签处理方法、装置、电子设备及介质 | |
CN115495606A (zh) | 一种图像聚档方法和系统 | |
JP2023152270A (ja) | 人工知能によるデータラベリング方法、装置、電子デバイス、記憶媒体、及びプログラム | |
CN114897290A (zh) | 业务流程的演化识别方法、装置、终端设备以及存储介质 | |
CN114818627A (zh) | 一种表格信息抽取方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |