KR20210102039A - 전자 디바이스 및 이의 제어 방법 - Google Patents

전자 디바이스 및 이의 제어 방법 Download PDF

Info

Publication number
KR20210102039A
KR20210102039A KR1020200149577A KR20200149577A KR20210102039A KR 20210102039 A KR20210102039 A KR 20210102039A KR 1020200149577 A KR1020200149577 A KR 1020200149577A KR 20200149577 A KR20200149577 A KR 20200149577A KR 20210102039 A KR20210102039 A KR 20210102039A
Authority
KR
South Korea
Prior art keywords
node
clustering
nodes
neighboring
central
Prior art date
Application number
KR1020200149577A
Other languages
English (en)
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 US17/171,117 priority Critical patent/US11816149B2/en
Priority to PCT/KR2021/001837 priority patent/WO2021162481A1/en
Publication of KR20210102039A publication Critical patent/KR20210102039A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06K9/6267
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06K9/481
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)

Abstract

전자 디바이스 및 이의 제어 방법이 개시된다. 본 개시에 따른 전자 디바이스의 제어 방법은 클러스터링을 수행하기 위한 복수의 이미지를 획득하는 단계; 복수의 이미지 각각에 대응되는 복수의 타겟 영역을 획득하고, 복수의 타겟 영역에 대응되는 복수의 특징 벡터들을 획득하는 단계; 복수의 특징 벡터에 대응되는 복수의 중심 노드를 획득하고, 복수의 중심 노드 각각과 관련된 이웃 노드를 획득하는 단계; 복수의 중심 노드 및 이웃 노드를 바탕으로 서브 그래프를 획득하는 단계; 그래프 컨벌루션 네트워크를 바탕으로 서브 그래프의 복수의 중심 노드와 복수의 중심 노드 각각의 이웃 노드 간의 접속 확률을 식별하는 단계; 및 식별된 접속 확률을 바탕으로, 복수의 타겟 영역을 클러스터링하는 단계를 포함한다.

Description

전자 디바이스 및 이의 제어 방법{ELECTRONIC DEVICE AND CONTROL METHOD THEREOF}
본 개시는 이미지 클러스터링 기술에 관한 것으로, 특히 이미지 클러스터링을 수행하는 전자 디바이스 및 이의 제어 방법에 관한 것이다.
클러스터링 알고리즘은 컴퓨터 기술, 데이터 분석 및 프로세싱 기술을 통해 동일한 물리적 또는 추상적 속성을 가진 개별적인 것을 동일한 카테고리로 그룹화하는 프로세스이다. 클러스터링 알고리즘에 의해 생성된 각각의 카테고리는 유사한 추상적 속성을 갖는다. 이는 이미지 프로세싱 및 다른 분야에서 널리 사용된다.
현재 상업적 클러스터링 알고리즘은 일반적으로 클러스터링 중심을 결정할 필요가 있는 유사도 측정(K-평균(mean))에 기초한 클러스터링 알고리즘과 같은 통상의 클러스터링 알고리즘을 사용하며, 클러스터링 중심의 대표성은 후속 클러스터링의 정확도에 직접적인 영향을 미친다. 따라서, 기존 이미지 클러스터링 방법을 최적화할 필요가 있다.
본 개시는 상술한 필요성에 의해 안출된 것으로, 데이터들의 특징 벡터를 획득하고, 특징 벡터에 대응되는 노드와 노드간 접속확률를 획득하여 데이터를 클러스터링하는 전자 디바이스 및 이의 제어 방법을 제안한다.
상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른, 전자 디바이스의 제어 방법은 클러스터링을 수행하기 위한 복수의 이미지를 획득하는 단계; 상기 복수의 이미지 각각에 대응되는 복수의 타겟 영역을 획득하고, 상기 복수의 타겟 영역에 대응되는 복수의 특징 벡터들을 획득하는 단계; 상기 복수의 특징 벡터에 대응되는 복수의 중심 노드를 획득하고, 상기 복수의 중심 노드 각각과 관련된 이웃 노드를 획득하는 단계; 상기 복수의 중심 노드 및 상기 이웃 노드를 바탕으로 서브 그래프를 획득하는 단계; 그래프 컨벌루션 네트워크를 바탕으로 상기 서브 그래프의 복수의 중심 노드와 상기 복수의 중심 노드 각각의 이웃 노드 간의 접속 확률을 식별하는 단계; 및 상기 식별된 접속 확률을 바탕으로, 상기 복수의 타겟 영역을 클러스터링하는 단계를 포함한다.
그리고, 상기 서브 그래프를 획득하는 단계는, 상기 복수의 특징 벡터 중 하나를 상기 중심 노드로 식별하고, 상기 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들을 바탕으로 상기 중심 노드의 이웃 노드를 획득하는 단계; 및 상기 중심 노드 및 상기 이웃 노드에 따라 상기 서브 그래프를 구성하는 단계를 포함할 수 있다.
그리고, 상기 이웃 노드를 획득하는 단계는, 상기 중심 노드에 대응되는 특징 벡터와 상기 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들 사이의 코사인(cosine) 거리들을 각각 획득하는 단계; 및 상기 코사인 거리들에 기초하여 상기 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들로부터 상기 이웃 노드를 스크리닝(screening)하는 단계를 포함할 수 있다.
그리고, 상기 접속 확률을 획득하는 단계는, 상기 그래프 컨벌루션 네트워크의 적어도 하나의 계층(layer)에 따라 상기 서브 그래프의 노드 임베딩(embedding)을 획득하는 단계; 및 상기 노드 임베딩에 기초하여 상기 서브 그래프의 상기 중심 노드와 그 이웃 노드 간의 접속 확률을 획득하는 단계를 포함할 수 있다.
그리고, 상기 노드 임베딩을 획득하는 단계는, 상기 서브 그래프에 대응하는 입력 특징을 획득하는 단계; 및 특징 추출을 위해 상기 그래프 컨벌루션 네트워크의 상기 적어도 하나의 계층에 상기 입력 특징을 입력하여 획득한 출력 결과를 상기 노드 임베딩으로서 사용하는 단계를 포함할 수 있다.
그리고, 상기 식별된 접속 확률에 따라 상기 타겟 영역들을 클러스터링하는 단계는, 클러스터링될 적어도 하나의 타겟 영역들에 대해, 상기 접속 확률에 따라 동일한 카테고리의 이웃 노드들의 세트를 획득하는 단계; 동일한 카테고리의 상기 이웃 노드들의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 상기 이웃 노드들의 세트의 상기 적어도 하나의 이웃 노드와 각각의 이웃 노드들의 접속 확률들에 따라 상기 적어도 하나의 이웃 노드와 상기 중심 노드의 접속 확률을 조정하는 단계; 상기 적어도 하나의 이웃 노드가 동일한 카테고리의 이웃 노드인지를 결정하기 위해 상기 조정된 접속 확률에 기초하여 상기 타겟 영역들을 클러스터링하는 단계; 및 클러스터링될 각각의 타겟 영역들에 대응하는 동일한 카테고리의 이웃 노드들에 따라 클러스터링될 각각의 타겟 영역들을 클러스터링하는 단계를 포함할 수 있다.
그리고, 상기 이웃 노드들의 세트를 획득하는 단계는, 클러스터링될 상기 적어도 하나의 타겟 영역에 대해, 상기 중심 노드와의 접속 확률들이 사전 설정된 임계값 이상인 이웃 노드들 결정하고, 상기 결정된 이웃 노드들을 상기 동일한 카테고리의 이웃 노드들의 세트로서 형성하는 단계를 포함할 수 있다.
그리고, 상기 접속 확률을 조정하는 단계는, 동일한 카테고리의 상기 이웃 노드들의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 상기 이웃 노드들의 세트의 상기 적어도 하나의 이웃 노드와 각각의 이웃 노드들의 평균 접속 확률을 상기 적어도 하나의 이웃 노드와 상기 중심 노드의 접속 확률로서 결정하는 단계를 포함할 수 있다.
그리고, 상기 각각의 타겟 영역들을 클러스터링하는 단계는, 클러스터링될 각각의 타겟 영역들에 대응하는 동일한 카테고리의 이웃 노드들에 따라 클러스터링될 각각의 타겟 영역들에 대응하는 중심 노드들 간의 접속 확률들을 결정하는 단계; 및 각각의 중심 노드들 간의 접속 확률들에 기초하여 클러스터링될 각각의 타겟 영역들을 클러스터링하는 단계를 포함할 수 있다.
그리고, 사용자에 의해 입력된 이미지 검색을 위한 키워드를 수신하는 단계; 상기 클러스터링 결과에 기초하여 상기 키워드와 연관된 카테고리를 식별하는 단계; 및 상기 식별된 카테고리의 이미지들 중 상기 키워드와 매칭되는 이미지들을 검색하는 단계를 더 포함할 수 있다.
한편, 상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른, 전자 디바이스는 적어도 하나의 명령어를 저장하는 메모리; 상기 메모리와 연결되어 상기 전자 디바이스를 제어하는 프로세서;를 포함하며, 상기 프로세서는, 상기 적어도 하나의 명령어를 실행함으로써, 클러스터링을 수행하기 위한 복수의 이미지를 획득하고, 상기 복수의 이미지 각각에 대응되는 복수의 타겟 영역을 획득하고, 상기 복수의 타겟 영역에 대응되는 복수의 특징 벡터들을 획득하고, 상기 복수의 특징 벡터에 대응되는 복수의 중심 노드를 획득하고, 상기 복수의 중심 노드 각각과 관련된 이웃 노드를 획득하고, 상기 복수의 중심 노드 및 상기 이웃 노드를 바탕으로 서브 그래프를 획득하고, 그래프 컨벌루션 네트워크를 바탕으로 상기 서브 그래프의 복수의 중심 노드와 상기 복수의 중심 노드 각각의 이웃 노드 간의 접속 확률을 식별하고, 상기 식별된 접속 확률을 바탕으로, 상기 복수의 타겟 영역을 클러스터링한다.
그리고, 상기 프로세서는, 상기 복수의 특징 벡터 중 하나를 상기 중심 노드로 식별하고, 상기 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들을 바탕으로 상기 중심 노드의 이웃 노드를 획득하고, 상기 중심 노드 및 상기 이웃 노드에 따라 상기 서브 그래프를 구성할 수 있다.
그리고, 상기 프로세서는, 상기 중심 노드에 대응되는 특징 벡터와 상기 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들 사이의 코사인(cosine) 거리들을 각각 획득하고, 상기 코사인 거리들에 기초하여 상기 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들로부터 상기 이웃 노드를 스크리닝(screening)할 수 있다.
그리고, 상기 프로세서는, 상기 그래프 컨벌루션 네트워크의 적어도 하나의 계층(layer)에 따라 상기 서브 그래프의 노드 임베딩(embedding)을 획득하고, 상기 노드 임베딩에 기초하여 상기 서브 그래프의 상기 중심 노드와 그 이웃 노드 간의 접속 확률을 획득할 수 있다.
그리고, 상기 프로세서는, 상기 서브 그래프에 대응하는 입력 특징을 획득하고, 특징 추출을 위해 상기 그래프 컨벌루션 네트워크의 상기 적어도 하나의 계층에 상기 입력 특징을 입력하여 획득한 출력 결과를 상기 노드 임베딩으로서 사용할 수 있다.
그리고, 상기 프로세서는, 클러스터링될 적어도 하나의 타겟 영역들에 대해, 상기 접속 확률에 따라 동일한 카테고리의 이웃 노드들의 세트를 획득하고, 동일한 카테고리의 상기 이웃 노드들의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 상기 이웃 노드들의 세트의 상기 적어도 하나의 이웃 노드와 각각의 이웃 노드들의 접속 확률들에 따라 상기 적어도 하나의 이웃 노드와 상기 중심 노드의 접속 확률을 조정하고, 상기 적어도 하나의 이웃 노드가 동일한 카테고리의 이웃 노드인지를 결정하기 위해 상기 조정된 접속 확률에 기초하여 상기 타겟 영역들을 클러스터링하고, 클러스터링될 각각의 타겟 영역들에 대응하는 동일한 카테고리의 이웃 노드들에 따라 클러스터링될 각각의 타겟 영역들을 클러스터링할 수 있다.
그리고, 상기 프로세서는, 클러스터링될 상기 적어도 하나의 타겟 영역에 대해, 상기 중심 노드와의 접속 확률들이 사전 설정된 임계값 이상인 이웃 노드들 결정하고, 상기 결정된 이웃 노드들을 상기 동일한 카테고리의 이웃 노드들의 세트로서 형성할 수 있다.
그리고, 상기 프로세서는, 동일한 카테고리의 상기 이웃 노드들의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 상기 이웃 노드들의 세트의 상기 적어도 하나의 이웃 노드와 각각의 이웃 노드들의 평균 접속 확률을 상기 적어도 하나의 이웃 노드와 상기 중심 노드의 접속 확률로서 결정할 수 있다.
그리고, 상기 프로세서는, 클러스터링될 각각의 타겟 영역들에 대응하는 동일한 카테고리의 이웃 노드들에 따라 클러스터링될 각각의 타겟 영역들에 대응하는 중심 노드들 간의 접속 확률들을 결정하고, 각각의 중심 노드들 간의 접속 확률들에 기초하여 클러스터링될 각각의 타겟 영역들을 클러스터링 할 수 있다.
그리고, 상기 프로세서는, 사용자에 의해 입력된 이미지 검색을 위한 키워드를 수신하고, 상기 클러스터링 결과에 기초하여 상기 키워드와 연관된 카테고리를 식별하고, 상기 식별된 카테고리의 이미지들 중 상기 키워드와 매칭되는 이미지들을 검색할 수 있다.
본 개시의 실시예의 기술적 해결책을 보다 명확하게 설명하기 위해, 본 개시의 실시예의 설명에 사용된 도면이 아래에 간략하게 설명될 것이다.
도 1은 디지털 그래픽의 구조화된 데이터의 개략도이다.
도 2는 음성/텍스트의 구조화된 데이터의 개략도이다.
도 3은 네트워크 구조에서 구조화되지 않은 데이터의 개략도이다.
도 4는 종래 기술에서 클러스터링 알고리즘을 얼굴 이미지에 적용하는 해결책의 개략도이다.
도 5는 종래 기술에서 클러스터링 알고리즘을 어휘에 적용하는 해결책의 개략도이다.
도 6은 종래 기술에서 클러스터링 알고리즘을 음성 정보에 적용하는 해결책의 개략도이다.
도 7은 종래 기술에서 클러스터링 알고리즘을 네트워크 단말 관리에 적용하는 해결책의 개략도이다.
도 8은 종래 기술에서 전체 클러스터링 해결책의 개략적인 흐름도이다.
도 9는 종래 기술에서 점진적 클러스터링 해결책의 개략적인 흐름도이다.
도 10은 종래 기술에서 k-평균 클러스터링 알고리즘의 해결책의 개략적인 흐름도이다.
도 11은 종래 기술에서 클러스터링 결과에 대한 임계값의 영향에 대한 개략도이다.
도 12a는 예에서 기존 클러스터링 방법을 사용하여 야기된 클러스터링 오류의 개략도이다.
도 12b는 예에서 기존 클러스터링 방법을 사용하여 한 사람을 상이한 사람으로 클러스터링하는 개략도이다.
도 12c는 예에서 기존 클러스터링 방법을 사용하여 상이한 사람을 동일한 사람으로 클러스터링하는 개략도이다.
도 13a는 예에서 기존 k- 평균 알고리즘을 사용하여 클러스터링 중심의 영향을 나타내는 개략도이다.
도 13b는 예에서 기존 클러스터링 방법을 사용하여 노이즈 노드를 제거하는 개략도이다.
도 14는 본 개시의 실시예에 의해 제공되는 이미지 클러스터링 방법의 개략적인 흐름도이다.
도 15는 유클리드 공간 데이터의 서브그래프 구조의 개략도이다.
도 16은 논-유클리드(non-Euclidean) 공간 데이터의 서브그래프 구조의 개략도이다.
도 17은 본 개시에 의해 제공된 예에서 서브그래프 G의 개략적인 구조도이다.
도 18은 가중치가 없는 도 17의 서브그래프 G의 인접 행렬을 나타내는 개략도이다.
도 19는 가중치를 갖는 도 17의 서브그래프 G의 인접 행렬을 나타내는 개략도이다.
도 20은 도 17의 서브그래프 G의 차수 행렬(degree matrix)의 개략도이다.
도 21은 도 17의 서브그래프 G의 라플라시안 행렬(Laplacian matrix)의 개략도이다.
도 22는 본 개시에 의해 제공되는 다른 예에서의 서브그래프 G의 개략적인 구조도이다.
도 23은 도 22의 서브그래프 G의 인접 행렬, 제1 계층의 노드 특징 및 제(l + 1) 계층의 노드 특징의 개략도이다.
도 24는 도 22의 서브그래프 G의 인접 행렬, 제(1 + 1) 계층의 노드 특징 및 제(l + 2) 계층의 노드 특징의 개략도이다.
도 25는 도 22의 서브그래프 G의 인접 행렬, 제(1 + 2) 계층의 노드 특징 및 제(l + 3) 계층의 노드 특징의 개략도이다.
도 26은 본 개시의 실시예에 의해 제공되는 이미지 클러스터링 방법의 개략적인 흐름도이다.
도 27a는 본 개시의 예에서의 이미지 클러스터링 방법의 개략적인 흐름도이다.
도 27b는 예에서 유클리드 거리와 코사인 거리를 비교하는 개략도이다.
도 27c는 예에서 유클리드 거리와 코사인 거리를 비교하는 개략도이다.
도 28a는 본 개시의 예에서의 이미지 클러스터링 방법의 개략적인 흐름도이다.
도 28b는 본 개시의 예에서의 데이터에 대한 특징 추출의 개략적인 흐름도이다.
도 29는 도 28b에서 사용되는 신경망의 개략적인 구조도이다.
도 30은 예에서의 코사인 거리의 개략도이다.
도 31은 본 개시의 예에서 이웃 노드를 획득하는 개략적인 흐름도이다.
도 32는 본 개시의 예에서 서브그래프를 구성하기 위한 해결책의 개략도이다.
도 33은 본 개시의 예에서 이웃 노드를 획득하는 개략적인 흐름도이다.
도 34는 본 개시의 예에서 서브그래프를 구성하기 위한 해결책의 개략도이다.
도 35는 유클리드 거리 및 코사인 거리를 사용한 유사도 결과 비교의 개략도이다.
도 36은 종래 기술에서의 그래프 컨벌루션 네트워크의 개략적인 구조도이다.
도 37a는 본 개시의 실시예에 의해 제공되는 샷-컷 메커니즘을 도입하는 그래프 컨벌루션 네트워크의 개략적인 구조도이다.
도 37b는 본 개시의 실시예에 의해 제공되는 샷-컷 메커니즘 및 계층적 클러스터링을 도입하는 그래프 컨벌루션 네트워크의 개략적인 구조도이다.
도 37c는 본 개시의 예에서의 이미지 클러스터링 방법의 개략적인 흐름도이다.
도 37d는 본 개시의 예에서 샷-컷 메커니즘 및 계층적 클러스터링을 도입하는 이미지 클러스터링 해결책의 개략도이다.
도 38은 본 개시의 예에서 샷-컷 메커니즘 및 계층적 클러스터링을 도입하는 이미지 클러스터링 해결책의 개략도이다.
도 39a는 본 개시의 예에서 계층적 클러스터링 동작을 도입하는 그래프 컨벌루션 네트워크를 사용하는 클러스터링의 개략도이다.
도 39b는 본 개시의 예에서 계층적 클러스터링 동작을 도입하는 그래프 컨벌루션 네트워크를 사용하는 클러스터링의 개략도이다.
도 40a는 본 개시의 예에서의 이미지 클러스터링 방법의 개략적인 흐름도이다.
도 40b는 본 개시의 예에서의 차원 복구 해결책의 개략도이다.
도 41은 본 개시의 예에서 접속 확률에 기초한 클러스터링 해결책의 개략도이다.
도 42a는 본 개시의 예에서 평균값 전략에 따라 노이즈 노드를 제거하기 위한 해결책의 개략도이다.
도 42b는 본 개시의 예에서 평균값 전략에 의해 노이즈 노드를 제거하는 방법의 개략적인 흐름도이다.
도 43은 본 개시의 실시예에 의해 제공되는, 클러스터링될 새로운 데이터를 클러스터링하는 개략적인 흐름도이다.
도 44는 본 개시의 실시예에 의해 제공되는 모바일 단말에 적용되는 이미지 클러스터링 방법의 개략적인 흐름도이다.
도 45는 본 개시의 실시예에서 모바일 단말에 적용되는 신경망 구조의 개략도이다.
도 46은 본 개시의 실시예에 의해 제공되는 서버에 적용되는 이미지 클러스터링 방법의 개략적인 흐름도이다.
도 47은 본 개시의 실시예에 의해 제공되는 이미지 클러스터링 장치의 개략적인 구조도이다.
도 48은 본 개시의 실시예에 의해 제공되는 전자 디바이스의 개략적인 구조도이다.
도 49는 본 개시에 따른 전자 디바이스의 제어 방법을 설명하기 위한 흐름도이다.
이하, 본 개시의 실시예가 상세히 설명될 것이다. 이러한 실시예의 예가 전체에 걸쳐 동일하거나 유사한 참조 번호가 동일하거나 유사한 요소 또는 동일하거나 유사한 기능을 갖는 요소를 지칭하는 도면에서 나타내어진다. 도면을 참조하여 이하에서 설명되는 실시예는 예시적인 것이며, 본 개시를 단지 설명하기 위해 사용될 뿐이며, 이에 대한 임의의 제한으로 간주되어서는 안된다.
단수 형태인 "어느(a)", "어떤(an)", "그(the)" 및 "상기(said)"는 달리 언급되지 않는 한 복수 형태도 포함하도록 의도될 수 있음이 본 기술 분야의 통상의 기술자에 의해 이해되어야 한다. 본 명세서에서 사용되는 "포함하다(include)"라는 용어는 언급된 특징, 정수, 단계, 동작, 요소 및/또는 구성 요소의 존재를 특정하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 구성 요소 및/또는 이들의 조합의 존재 또는 추가를 배제하지 않음이 또한 이해되어야 한다. 구성 요소가 다른 구성 요소에 "접속된" 또는 "커플링된"으로 언급될 때, 이는 다른 구성 요소에 직접 접속 또는 커플링되거나 그 사이에 개재되는 요소가 제공될 수 있음이 이해되어야 한다. 또한, 본원에서 사용되는 "접속된" 또는 "커플링된"은 무선 접속 또는 커플링을 포함할 수 있다. 본원에서 사용되는 "및/또는"이라는 용어는 하나 이상의 연관된 열거 유닛의 전부 또는 임의의 것 또는 이들의 조합을 포함한다.
본 개시의 목적, 기술적 해결책 및 이점을 보다 명확하게 하기 위해, 본 개시의 실시예가 첨부 도면을 참조하여 아래에서 상세하게 추가로 설명될 것이다.
클러스터링 알고리즘은 컴퓨터 기술, 데이터 분석 및 프로세싱 기술을 통해 동일한 물리적 또는 추상적인 속성을 가진 개별적인 것을 동일한 카테고리로 그룹화하는 프로세스이다. 클러스터링 알고리즘에 의해 생성된 각각의 카테고리는 유사한 추상적 속성을 갖는다. 클러스터링 알고리즘은 데이터 분석 및 마이닝을 위한 중요한 방법 중 하나이며, 이미지 프로세싱, 텍스트 분석, 음성 인식 및 네트워크 관리에 널리 사용되었다.
현재 상업적인 클러스터링 알고리즘 모두는 노이즈를 갖는 어플리케이션의 밀도-기반 공간 클러스터링(DBSCAN: Density-based Spatial Clustering of Application with Noise), 점진적 그리드 밀도-기반 클러스터링 알고리즘(IGDCA: Incremental Grid Density-Based Clustering Algorithm), 유사도 측정에 기초한 클러스터링 알고리즘(K-평균), 이웃 관계 측정에 기초한 클러스터링 알고리즘(공유된 최근접 이웃(Shared Nearest Neighbor)) 등과 같은 통상의 클러스터링 알고리즘을 참조한다. 실제 어플리케이션 및 연구에서, 기존의 통상의 클러스터링 알고리즘의 정확도는 상대적으로 낮고 실제 상업적 요구를 더 잘 충족시킬 수 없는 것으로 나타났다.
최근 몇 년 동안, 알고리즘의 향상, 보다 편리한 데이터 취득 및 컴퓨터 하드웨어 속도의 증가로, 딥 러닝은 다양한 작업에서 더 나은 정확도와 견고성을 얻을 수 있으며, 점차 통상의 알고리즘을 대체하여 주류가 되었다. 컨벌루션 신경망(CNN: Convolutional Neural Network)은 컨벌루션을 통해 특징 추출을 수행하며, 이는 이미지 프로세싱 작업에서 통상의 특징 추출 알고리즘보다 더 나은 특징을 추출할 수 있다. 순환 신경망(RNN: Recurrent Neural Network)은 시퀀스 데이터를 구체적으로 해결하는 딥 러닝 모델이며, 이를 통해 시퀀스 특징을 더 잘 캡처할 수 있다. 이미지 및 음성은 구조적 규칙을 특징으로 하는 유러피언(European) 공간 데이터에 속한다. CNN 및 RNN은 이미지 및 음성과 같은 구조화된 데이터를 잘 처리할 수 있다. 도 1은 디지털 그래픽의 구조화된 데이터의 개략도이다. 도 2는 음성/텍스트의 구조화된 데이터의 개략도이다. 도 3은 네트워크 구조에서 구조화되지 않은 데이터의 개략도이다.
도 1에 나타낸 디지털 그래픽(또한 디지털 이미지라고도 칭함) 및 도 2에 나타낸 음성 또는 텍스트는 모두 구조화된 데이터이지만; CNN 및 RNN은 는 도 3에 나타낸 소셜 관계 네트워크(또한 소셜 네트워크라고 칭함)와 같이 구조화되지 않은 데이터를 프로세싱할 수 없다. 그래프 컨벌루션 네트워크(GCN: Graph Convolutional Network)는 구체적으로 구조화되지 않은 데이터를 해결하기 위해 제안된다.
클러스터링 알고리즘은 (얼굴 클러스터링, 동물 클러스터링 및 객체 장면 클러스터링 등과 같은) 이미지 프로세싱, (텍스트 클러스터링 등과 같은) 텍스트 분석, (언어 분석 등과 같은) 음성 인식 및 (5G 단말 지능형 절전 관리 등과 같은) 네트워크 관리 및 다른 분야에서 널리 사용된다.
얼굴 클러스터링은 앨범 관리의 일반적인 어플리케이션 중 하나이며, 도 4에 나타낸 바와 같이, 앨범의 이미지에 대해 얼굴 검출, 얼굴 정렬 및 특징 추출이 수행된 후, 얼굴이 클러스터링 알고리즘을 통해 클러스터링된다(예시적인 사진은 YTB 데이터 세트로부터 온 것임). 도 4는 종래 기술에서 클러스터링 알고리즘을 얼굴 이미지에 적용하는 해결책의 개략도이다.
각각의 카테고리는 그 자체의 사진을 포함하며, 이는 사용자가 특정 사진을 관리하기에 편리하다.
본 개시의 그래프 컨벌루션 네트워크를 통한 클러스터링 및 얼굴 인식 시스템은 지도 학습(supervised learning)이며, 이는 주석이 달린 학습 데이터에 기초하여 훈련에 의해 획득될 수 있다. 한편, 이는 라벨링되지 않은 데이터 관리를 또한 구현할 수 있다. 실제 장면에서, 얼굴 이미지는 획득하기 매우 용이하지만, 얼굴 카테고리에 라벨링하기 위해서는 많은 인력과 재료 자원이 소요될 것이다. 라벨링되지 않은 데이터는 클러스터링 알고리즘을 통해 클러스터링 및 라벨링되며, 이는 많은 인력과 재료 자원을 절약할 수 있을 뿐만 아니라, 얼굴 인식의 정확도를 향상시킬 수 있다.
도 5는 종래 기술에서 클러스터링 알고리즘을 어휘에 적용하는 해결책의 개략도이다.
도 5에 나타낸 바와 같이, 어휘 클러스터링은 특징 추출 및 클러스터링을 위해 텍스트에서 특정 단어를 추출하여, 동일한 속성을 가진 어휘가 하나의 카테고리로 클러스터링되어 문서/텍스트 분석을 실현한다. 예를 들어 영화 리뷰에서, 각각의 영화 리뷰를 클러스터링하고, 클러스터링 결과를 통해 사용자의 영화 평가를 반영하고, 긍정적인 리뷰 수, 부정적인 리뷰 수, 중간 리뷰 수를 카운트할 수 있으며, 이는 영화 스코어링 등에 편리하다.
도 6은 종래 기술에서 클러스터링 알고리즘을 음성 정보에 적용하는 해결책의 개략도이다.
언어 분석은 도 6에 나타낸 바와 같이, 전 세계에 많은 언어가 있으며 각각의 언어는 추가적으로 상이한 방언들을 포함할 수 있다. 획득된 음성 정보는 클러스터링 알고리즘을 통해 복수의 하위 카테고리로 클러스터링될 수 있다. 예를 들어, 음성 인식에서, 각각의 언어 종류가 우선적으로 결정될 필요가 있으며, 그 후 음성 인식이 수행될 수 있고, 기계 번역과 같은 기능이 완성될 수 있다. 기록 데이터는 복수의 언어를 포함할 수 있으며, 우선 기록 데이터를 분석하고 클러스터링하여 언어가 어떠한 각각의 하위 카테고리에 속하는지를 결정한 후, 인식을 수행하여 음성 인식의 정확성을 향상시킬 수 있다.
도 7은 종래 기술에서 클러스터링 알고리즘을 네트워크 단말 관리에 적용하는 해결책의 개략도이다.
네트워크 단말 관리는 도 7에 나타낸 바와 같이, 5G가 상용화되어 있으며, 이는 사람들의 생활에 편리하지만, 5G 기지국의 전력 소비는 4G의 12배이므로, 5G 서비스 비용을 효과적으로 감소시키기 위해 기지국의 지능형 절전 관리가 필요할 수 있다. 예를 들어, 5G 기지국은 복수의 구성 요소로 구성되며, 각각의 구성 요소는 상이한 전력 소비를 갖는다. 클러스터링 알고리즘에 따르면, 동일한 전력 소비 속성을 가진 디바이스가 하위 카테고리로 그룹화되고, 전력 소비 속성이 타겟화된 방식으로 분석 및 관리되어 노드 관리 효율성을 높이고 자원의 낭비를 회피한다.
얼굴 클러스터링 기법에 있어서, A-카테고리 얼굴 사진이 B-카테고리 얼굴을 포함할 때, A-카테고리 얼굴과 B-카테고리 얼굴을 하나의 카테고리로 그룹화하는 문제를 해결하기 위해, 종래 기술은 풀(full) 클러스터링과 점진적 클러스터링을 결합한 2-단계 클러스터링 알고리즘을 제안한다. 우선 풀 클러스터링을 위해 얼굴 데이터의 일부가 선택된 다음, 풀 클러스터링에 기초하여 점진적 클러스터링이 수행된다. 구체적인 구현은 이하와 같다:
이름이 의미하듯, 풀 클러스터링은 모든 얼굴 데이터를 클러스터링하여 점진적 클러스터링 전에 클러스터링 카테고리의 일부를 결정하는 것이며, 이는 새로운 얼굴 데이터의 후속 클러스터링을 위한 카테고리 기초를 제공한다.
풀 클러스터링의 구현 흐름도를 도 8에 나타낸다. 구체적인 구현 프로세스는 이하와 같다:
도 8은 종래 기술에서 전체 클러스터링 해결책의 개략적인 흐름도이다.
1) 얼굴 검출, 얼굴 정렬 및 얼굴 특징 추출을 위해 N개의 사진을 선택하고(S810), 각각의 사진을 별도의 카테고리로서 사용 한다(S820);
2) N개의 얼굴 사진 중 모든 두 얼굴 카테고리 사이의 거리를 계산한다(S830);
3) 두 카테고리 사이의 거리가 주어진 임계값보다 작은지를 결정하고(S840); 주어진 임계값보다 작으면(840-Y), 두 카테고리를 융합하여(S850), 두 카테고리가 하나의 카테고리로 결합되고; 임계값보다 크면(840-N), 두 카테고리를 별도의 두 카테고리로 식별한다;
4) 얼굴 카테고리 사이의 모든 거리가 주어진 임계값보다 클 때까지 2) 단계를 반복하며, 모든 카테고리의 거리가 임계값 보다 작은지 판단한다(S860). 그리고, 모든 카테고리의 거리가 임계값 보다 작은 경우(S860-Y) 종료하며, 이는 풀 클러스터링이 완료되었음을 나타낸다.
풀 클러스터링은 점진적 클러스터링의 초기화와 동일하지만, 풀 클러스터링은 첫째로 얼굴 클러스터링에서 사용되며, 후속 클러스터링 작업은 점진적 클러스터링에 기초한다. 점진적 클러스터링의 구현 흐름도를 도 9에 나타낸다. 구체적인 구현은 이하와 같다:
도 9는 종래 기술에서 점진적 클러스터링 해결책의 개략적인 흐름도이다.
1) 최종 클러스터링에서 카테고리 M의 수를 카운트하고, M 카테고리 중 하나를 카테고리 A로서 획득하고, 새로 추가된 P 얼굴 특징 정보를 P 카테고리로서 사용하고, P 카테고리 중 하나를 카테고리 B로서 취한다; 즉, 카테고리 A의 얼굴 데이터 및 카테고리 B의 얼굴 데이터 획득한다(S910).
2) 밀도 클러스터링 알고리즘을 사용하여 카테고리 A에서 얼굴 특징을 다시 클러스터링하고, 하나 이상의 카테고리를 얻기 위해 더 낮은 임계값을 설정한다;
3) 카테고리 A에서 하위 카테고리의 수를 카운트하고, 가장 많은 수의 얼굴을 가진 하위 카테고리를 카테고리 A의 대표로서 선택한다; 즉 각각의 서브카테고리에서 얼굴의 수를 계산하고, 가장 큰 수를 갖는 서브카테고리를 카테고리 A의 대표로서 선택한다(S930).
4) 카테고리 A의 대표 하위 카테고리와 카테고리 B의 얼굴 데이터 사이의 거리를 계산한다(S940);
5) 모든 둘 사이의 거리가 주어진 임계값보다 작은지를 결정하고; 주어진 임계값보다 작으면, 모든 두 카테고리는 하나의 카테고리로 결합되고; 임계값보다 크면, 모든 두 카테고리는 별도의 두 카테고리이다; 즉, 임계값보다 큰 경우, 카테고리 A의 얼굴과 카테고리 B이 얼굴을 상이한 카테고리로 클러스터링한다(S950).
6) 클러스터링의 종료를 나타내는, 모든 카테고리에서 얼굴의 수가 더 이상 변하지 않을 때까지 1) 단계를 반복한다. 즉, 모든 카테고리의 얼굴 데이터가 더 이상 변하지 않는지 여부를 판단하고(S960), 모든 카테고리의 얼굴 데이터가 더 이상 변하지 않는 경우(S960-Y) 과정을 종료한다. 모든 카테고리의 얼굴 데이터가 적어도 하나 변하는 경우(S960-N) 1) 단계(S910)를 반복한다. 즉, 모든 카테고리 M 및 카테고리 P 에 대해 1) 단계를 반복한다(S970).
k-평균(means) 클러스터링 알고리즘은 통상적으로 사용되는 클러스터링 알고리즘이며, k는 데이터를 k 카테고리로 클러스터링하는 것을 지칭하고, 평균(means)은 각각의 하위 카테고리에서 모든 노드의 평균값(mean value)을 계산하여 하위 카테고리의 클러스터링 중심으로서 이를 사용한다는 것을 지칭한다. 통상의 클러스터링 알고리즘의 초기 클러스터링 중심이 클러스터링 중심의 대표성을 보장할 수 없으며, 이로 인해 불량한 클러스터링 알고리즘 및 불량한 클러스터링 결과가 발생되는 문제를 해결하기 위해, 종래 기술은 클러스터 수 k를 선택하기 어려운 문제에 대한 최적화된 알고리즘을 제안한다. 도 10에 나타낸 바와 같이, 구체적인 구현은 이하와 같다:
도 10은 종래 기술에서 k-평균 클러스터링 알고리즘의 해결책의 개략적인 흐름도이다. S1: 세트 M으로 클러스터링될 모든 노드를 형성하고, 클러스터링될 모든 노드의 밀도 함수 값을 계산한다. 즉, 데이터 세트를 획득하고 각각의 노드의 밀도 함수값 계산 한다(S1010), 밀도 함수 값이 세트의 평균 밀도 함수 값 이상인 노드를 결합하여 조밀한 포인트 세트 Y를 형성한다; 구체적으로, 밀도 함수값이 평균 밀도 함수값보다 작은 이상 포인트 제거한다(S1020).
S2: 조밀한 포인트 세트 Y로부터 2개의 노드를 선택하여 세트 Q를 형성한다; 구체적으로, 가장 큰 밀도 함수값을 갖는 2개의 데이터 포인트를 초기 클러스터 중심으로서 사용하고 이를 포인트 세트 Q에 둘 수 있다(S1030).
S3: 포커스 통계 방법에 의해 세트 M으로부터 m 노드를 선택하고, m 노드에 의해 대체 초기 클러스터링 중심의 세트 C를 형성한다; 즉, 후보 초기 클러스터 중심 포인트 세트 C 선택한다(S1040).
S4: 조밀한 포인트 세트 Y에서 노드를 세트 Q에서 각각의 초기 클러스터링 중심이 위치된 카테고리로 분할하고, 제1 클러스터의 평균 최대 유사도를 획득한다; 즉, 포인트 세트 Q의 클러스터링 중심에 따라 데이터 포인트를 클러스터링하고, 최대 유사도를 계산한다(S1050)
S5: 후보 초기 클러스터링 중심의 세트 C로부터 노드를 선택하고, 세트 Q에서 새로운 초기 클러스터링 중심으로서 세트 Q에 노드를 추가하고, 동시에 노드를 C로부터 삭제한다; 단계 S4-S5가 반복되고, 각각의 클러스터의 평균 최대 유사도를 비교함으로써 클러스터의 평균 최대 유사도의 최소값이 선택된다;
S6: 클러스터의 평균 최대 유사도의 최소값에 대응하는 세트 Q의 클러스터링 중심을 최적의 k-평균 클러스터링을 갖는 초기 클러스터링 중심으로 사용한 다음, k-평균 클러스터링을 수행하여 클러스터링 결과를 획득한다. 즉, 최대 유사도가 이전 최대 유사도 미만임을 판단하고(S1060), 최대 유사도가 이전 최대 유사도 미만이면(S1060-Y), 후보 초기 클러스터 중심으로부터 하나의 샘플 포인트를 선택하여 이를 포인트 세트 Q에 둔다(S1070). 그리고, 최대 유사도가 이전 최대 유사도 이상이면(S1060-N), 가장 작은 최대 유사도를 갖는 포인트 세트 Q를 클러스터 중심으로서 선택한다(S1080). 그리고, k 평균 클러스터링을 수행하고 결과를 출력한다(S1090).
기존 클러스터링 알고리즘에서의 문제점은 이하와 같다:
도 11은 종래 기술에서 클러스터링 결과에 대한 임계값의 영향에 대한 개략도이다.
(A) 도 11에 나타낸 바와 같이, 얼굴 클러스터링에서 A-카테고리 얼굴 사진이 B-카테고리 얼굴을 포함할 때, A-카테고리 얼굴과 B-카테고리 얼굴을 하나의 카테고리로 클러스터링하는 문제를 해결하기 위해, 풀 클러스터링과 점진적 클러스터링을 결합하는 2-단계 클러스터링 알고리즘이 제안된다. 우선, 풀 클러스터링을 위해 얼굴 데이터의 일부가 선택된 다음, 풀 클러스터링에 기초하여 점진적 클러스터링이 수행된다. 이 방법은 실제로 2개의 상이한 카테고리를 동일한 카테고리로 클러스터링하는 것을 어느 정도 회피할 수 있다. 그러나, 임계값이 너무 높으면, 클러스터링 알고리즘이 에지에서의 얼굴을 폐기 하게되고, 이로인해 하나의 카테고리가 2개의 카테고리로 클러스터링되는 문제점이 발생될 수 있다. 임계값이 너무 낮으면, 2개의 카테고리를 동일한 카테고리로 클러스터링하는 오류가 발생될 수 있다. 그리고, 이러한 오류는 이후의 클러스터링 과정에서 점차적으로 누적될 수 있다.
(B) 기존의 거의 모든 클러스터링 알고리즘은 클러스터 노드 간의 거리에 기초하여 2개의 클러스터 노드가 동일한 카테고리에 속하는지를 판정하지만, "내 이웃의 이웃이 반드시 내 이웃이지는 않다(my neighbor's neighbor is not necessarily my neighbor)"라는 상황이 있을 수 있어 부정확한 클러스터링 결과로 귀결될 수 있다. 도 12a는 예에서 기존 클러스터링 방법을 사용하여 야기된 클러스터링 오류의 개략도이다. 도 12a에 나타낸 바와 같이, 제12 노드는 노드 1의 카테고리에 속하고, 제6 노드는 제8 노드의 카테고리에 속한다. 그러나, 제12 노드와 제6 노드 사이의 거리는 비교적 작다. 통상의 거리 클러스터링 알고리즘에 따르면, 제12 노드와 제6 노드는 하나의 카테고리로 클러스터링된다. 제6 노드와 제7 노드, 제8 노드 및 제9 노드 사이의 거리가 더 작고 관계가 더 가까우며, 제6 노드는 제1 노드의 이웃(제12 노드)이며, 제1 노드의 카테고리가 아닌 제8 노드의 카테고리에 속해야 한다.
(C) 기존 클러스터링 알고리즘은 클러스터링을 위해 기존(original) 클러스터링 데이터를 직접 사용하며, 이로인해 불량한 클러스터링 효과와 낮은 정확도를 갖는 문제점이 발생될 수 있다. 예를 들어, 얼굴 클러스터링에서, 수집된 이미지에 대해 얼굴 검출, 얼굴 정렬 및 얼굴 특징 추출이 수행되지만, 조명과 정면 얼굴과 측면 얼굴 간의 차이로 인해 얼굴의 특징이 상당히 다르며, 대안적으로 단순히 기존 얼굴 특징을 사용하여 클러스터링하거나 유클리드 거리(Euclidean Distance)를 사용하여 클러스터링하는 것은 한 사람을 2개의 카테고리로 클러스터링하거나 다른 사람들을 하나의 카테고리로 클러스터링하는 것으로 귀결될 수 있다.
도 12b는 예에서 기존 클러스터링 방법을 사용하여 한 사람을 상이한 사람으로 클러스터링하는 개략도이다. 도 12b에 나타낸 바와 같이, 가장 좌측에 있는 원의 사진은 동일한 카테고리에 속하지만, 각각의 사진의 배경, 조명 조건, 이미지 품질 및 촬영 기간이 다르며, 대안적으로 클러스터링을 위해 유클리드 거리 또는 기존 사진 특징을 사용하는 것은 하나의 사람을 복수의 카테고리로 클러스터링하는 것으로 귀결될 수 있다.
도 12c는 예에서 기존 클러스터링 방법을 사용하여 상이한 사람을 동일한 사람으로 클러스터링하는 개략도이다. 도 12c에 나타낸 바와 같이, 조명과 자세의 영향 하에서 상이한 카테고리가 한 사람으로 클러스터링될 수 있다. 카테고리 A는 어린 소년의 사진이고, 카테고리 B는 어린 소녀의 사진이며, d1 및 d2는 각각 A3과 카테고리 A 및 B 사이의 유클리드 거리를 나타낸다. 외부 환경의 영향으로 인해, d2 < d1으로 귀결될 수 있으므로, 클러스터링 결과는 A와 B가 동일한 카테고리에 속하는 것일 수 있다.
(D) 통상의 k- 평균 클러스터링 알고리즘은 반복적 해결 클러스터링 분석 알고리즘이며, 이는 적절한 K 값과 초기 클러스터링 중심을 선택하기 위해 지속적인 반복을 필요로 하며, 이러한 알고리즘은 매우 복잡하고 효율성이 낮다.
(E) 통상의 k- 평균 알고리즘과 유사하게, 많은 클러스터링 알고리즘은 클러스터링 중심을 결정할 필요가 있으며, 클러스터링 중심의 대표성은 후속 클러스터링의 정확도에 직접적인 영향을 미친다. 특히 네거티브 샘플과 함께 도입되는 하위 카테고리에서, 네거티브 샘플의 존재로 인해 전체 클러스터 중심이 오프셋되어 클러스터링 알고리즘을 더욱 부정확하게 만든다. 도 13a는 예에서 기존 k- 평균 알고리즘을 사용하여 클러스터링 중심의 영향을 나타내는 개략도이다. 도 13a에 나타낸 바와 같이, 노드 13은 카테고리에서 클러스터링 중심을 나타내며, 여기서 왼쪽 도면은 네거티브 샘플이 도입되지 않은 경우의 클러스터링 중심을 나타내고, 네거티브 샘플을 갖는 제6 노드를 도입함으로 인해 클러스터링이 오류를 갖는 경우, 전체 클러스터링 중심은 오른쪽으로 오프셋될 것이며, 이는 확실하게 클러스터링이 더욱 부정확하게 되도록 할 것이다.
(F) 종래 기술은 서브그래프의 특징을 추출하기 위해 단순 그래프 컨벌루션 신경망(GCN: graph convolutional neural network)을 사용하는 것을 제안하고, GCN은 네트워크 전송 중에 노드 간의 특징을 클러스터링하여 특징 간의 차이를 감소시킨다. 서브그래프에 노이즈 노드가 있는 경우, 노이즈 노드와 다른 이웃 노드 간의 차이가 점점 더 작아질 것이고, 마지막으로 노이즈 노드가 이러한 카테고리로 클러스터링될 것이며, 이는 클러스터링 오류로 귀결된다.
(G) 종래 기술은 클러스터링을 위해 중심 노드와 이웃 노드 간의 확률을 예측하기 위해 GCN을 사용하는 것을 제안하지만, 어떠한 사후-프로세싱도 수행하지 않는다. 노이즈 노드가 있는 경우, 필연적으로 신경망 예측에서의 오류로 이어질 것이며, 이는 최종 클러스터링 오류로 귀결된다. 도 13b는 예에서 기존 클러스터링 방법을 사용하여 노이즈 노드를 제거하는 개략도이다. 도 13b에 나타낸 바와 같이, A, B, C, D 및 E는 동일한 카테고리에 속하며, 여기서 F와 A 사이의 접속 확률은 0.9이지만, F와 다른 노드들 사이에는 접속이 없으며, 이러한 F는 결과적으로 노이즈 노드로 간주될 수 있다. 그러나 사후-프로세싱이 없는 경우, F 및 다른 노드가 하나의 카테고리로 클러스터링될 것이며, 이는 클러스터링 오류로 귀결된다.
본 개시는 상술한 문제를 해결하기 위해 더 나은 정확도와 더 강력한 견고성을 가진 클러스터링 알고리즘을 제안한다. 본 개시가 제안하는 클러스터링 알고리즘은 이하와 같다.
A) GCN-기반 클러스터링 알고리즘이 제안되고, 본 개시에 따른 알고리즘의 정확도는 기존의 알고리즘에 비해 더 높지만, 복잡성은 상대적으로 낮다;
B) "내 이웃의 이웃이 반드시 내 이웃은 아니다(my neighbor's neighbor is not necessarily my neighbor)"라는 문제와 조명과 같은 외부 요인으로 인한 불량한 클러스터링 효과에 대해, 코덱 그래프 신경망이 제안되어 신경망 내의 인코더를 통해 노드 특징을 다른 차원 공간으로 매핑하며, 통상의 GCN 계층에서 계층적 클러스터링 모듈이 제안되어 강력한 관계를 가진 노드를 사전-클러스터링하고 특징을 정규화하여 노이즈 노드를 결정하고; 계층적 클러스터링 모듈은 서브그래프의 계층적 특징을 추출하여, 노이즈 노드와 다른 노드 간의 차이를 증가시킬 수 있다. 따라서, 계층적 클러스터링 모듈을 통해 동일한 속성을 가진 노드의 특징 간의 차이가 더 작아지고, 상이한 속성을 가진 노드 간의 차이가 더 커질 수 있다;
C) 클러스터링의 정확도와 안정성을 향상시키기 위해 이웃 관계에 따라 격리된 노드가 노이즈 노드인지를 결정하기 위해 평균 스코어-기반 사후-프로세싱 알고리즘이 제안된다;
D) 풀 클러스터링은 모든 노드를 동시에 클러스터링하는 것이며, 클러스터링된 노드의 수가 증가함에 따라 클러스터링 알고리즘의 복잡성이 증가하며; 알고리즘의 시간 복잡성을 감소시키기 위해, 알고리즘의 정확도를 보장할 뿐만 아니라 알고리즘 복잡성도 감소시킬 수 있는 효율적인 추가 로직이 제안된다;
E) 통상의 클러스터링 알고리즘은 클러스터링 중심을 결정할 필요가 있으며, 클러스터링 중심의 대표성은 후속 클러스터링의 정확도에 직접적인 영향을 미치고; 본 개시에서 제안되는 새로운 클러스터링 알고리즘은 클러스터링 중심을 결정할 필요가 없으므로, 클러스터링 중심의 오류로 인한 전체 클러스터링의 오류의 위험을 회피한다;
F) GCN 내에서 특징 간의 차이를 유지하기 위해 샷-컷(shot-cut)(잔류 접속) 메커니즘이 제안되며, 이는 노이즈 노드를 제거하고 클러스터링의 정확도를 향상시키는 데 유리하며, 샷-컷 메커니즘은 GCN의 과도한 평활 문제를 완화시킬 수 있다.
G) 유클리드 거리 대신 코사인 거리를 사용하는 프로세스에 의해, 유클리드 거리보다 코사인 거리가 더 정확하고, 동일한 카테고리에서 노드의 유사도를 판정할 수 있다.
본 개시의 기술적 해결책 및 본 개시의 기술적 해결책이 상술한 기술적 문제를 어떻게 해결하는지에 대해 구체적인 실시예와 함께 아래에서 상세히 설명될 것이다. 다음의 몇몇 구체적인 실시예는 서로 결합될 수 있으며, 일부 실시예에서는 동일하거나 유사한 개념 또는 프로세스가 반복되지 않을 수 있다. 이하, 도면을 참조하여 본 개시의 실시예를 설명할 것이다.
본 개시의 실시예는 가능한 구현 방식을 제공한다. 도 14에 나타낸 바와 같이, 이미지 클러스터링 방법이 제공되며, 이는 다음 단계를 포함할 수 있다: 도 14는 본 개시의 실시예에 의해 제공되는 이미지 클러스터링 방법의 개략적인 흐름도이다.
단계 S401: 클러스터링될 모든 이미지의 타겟 영역을 획득하고, 타겟 영역의 특징 벡터를 획득한다.
구체적으로, 타겟 영역은 검출될 타겟을 포함하는 영역일 수 있으며, 타겟은 이미지에서 사람의 얼굴, 특정의 객체 등일 수 있다.
본 개시의 일 실시 예에 따르면, 클러스터링될 적어도 하나의 타겟 영역에 대해, 타겟 영역은 이미지로부터 추출될 수 있고, 그 후 특징 벡터가 타겟 영역으로부터 추출될 수 있다.
단계 S402: 결과를 획득하기 위해 그래프 컨벌루션 네트워크에 기초하여 획득된 특징 벡터를 클러스터링한다.
여기서, 그래프 컨벌루션 네트워크(GCN: Graph Convolutional Network)는 최근 몇 년간 인기를 얻고 있는 신경망 구조이다. 그리드-기반 데이터에 대해서만 사용될 수 있는 통상의 네트워크 모델인 LSTM(Long Short-Term Memory) 및 CNN(Convolutional Neural Networks)과 달리, 그래프 컨벌루션 네트워크는 일반화된 토폴로지 그래프 구조로 데이터를 프로세싱할 수 있고, 일반화된 토폴로지 그래프 구조, 예를 들어, 페이지랭크(PageRank) 참조 네트워크, 소셜 네트워크, 통신 네트워크, 단백질 분자 구조 및 공간 토폴로지 그래프 구조를 갖는 불규칙 데이터의 다른 시리즈로 데이터의 특징 및 분야를 심도 있게 탐구할 수 있으며, 그래프 컨벌루션 네트워크에 대한 자세한 내용은 후술하도록 한다.
구체적으로, 적어도 하나의 특징 벡터에 대응하는 서브그래프가 우선 획득될 수 있으며, 그 후 서브그래프의 인접 행렬, 특징 행렬 및 1차 이웃 벡터 등이 획득되고; 서브그래프의 인접 행렬, 특징 행렬 및 1차 이웃 벡터 등은 순차적인 변환을 수행하기 위해 그래프 컨벌루션 네트워크의 적어도 하나의 계층(layer)에 입력되고(또한, 특징 추출을 수행하는 것으로 간주될 수 있음), 변환된 행렬은 서브그래프의 중심 노드와 각각의 이웃 노드 사이의 접속 확률을 획득하기 위해 분류(classification)를 위한 완전히 접속된 계층(fully connected layer) 중 적어도 하나의 계층에 입력된다.
본 개시의 일 실시 예에 따르면, 적어도 하나의 서브그래프에 대해, 서브그래프는 중심 노드 및 적어도 하나의 이웃 노드를 포함할 수 있고, 중심 노드와 각각의 1차 이웃 노드 사이의 접속 확률이 각각 획득되고; 접속 확률이 사전 설정된 임계값보다 크면, 접속 확률이 사전 설정된 임계값보다 큰 중심 노드와 1차 이웃 노드가 하나의 카테고리로 분류될 수 있다.
여기서, 1차 이웃 노드는 중심 노드에 직접 접속된 이웃 노드이고, 이웃 노드는 또한 중심 노드에 직접 접속된 이웃 노드가 아니라 2차 이웃 노드, 즉 중심 노드의 이웃에 인접한 이웃을 포함할 수 있다.
위의 실시 예에서, 클러스터링 중심을 결정하지 않고 그래프 컨벌루션 네트워크를 통해 모든 이미지의 타겟 영역이 클러스터링되고, 이에 의해 클러스터링 중심의 편차로 인해 발생될 수 있는 전체 클러스터링 결과의 편차를 회피할 수 있어, 클러스터링 결과의 정확도를 효과적으로 향상시킬 수 있다.
이하에서, 첨부 도면을 참조하여 서브그래프 및 그래프 컨벌루션 네트워크(그래프 컨벌루션 신경망이라고도 칭함)에 대해 더 상세히 설명한다.
1) 그래프의 정의
본 개시에서 그래프의 정의는 통상의 이미지의 정의가 아니라 수학적 개념의 그래프 정의이다.
디지털 이미지, 음성 및 텍스트는 유러피언(European) 공간 데이터에 속하고 고정된 차원을 가지므로, CNN 또는 RNN과 같은 신경망이 특징을 추출하는 데 사용될 수 있다. 소셜 네트워크와 같은 구조화되지 않은 데이터는 고정된 차원을 갖지 않으며, 이러한 종류의 구조화되지 않은 데이터를 처리하기 위해, 이전에는 그래프 컨벌루션 신경망(GCN: Graph Convolutional Neural Network)이 제안되었다.
도 15는 본 개시의 일 실시 예에 따른, 유클리드 공간 데이터의 서브그래프 구조의 개략도이다.
이미지의 각각의 픽셀을 그래프의 노드로 취하면, 도 15로부터 각각의 노드는 8개의 필드를 갖는 노드이며, 고정-크기의 컨벌루션 커널(fixed-size convolution kernel)이 이미지의 특징을 추출하는 데 사용될 수 있음을 알 수 있다. 예를 들어, 도 15에서 제1 노드의 이웃 노드는 {2, 3, 4, 5, 6, 7, 8, 9}이고 3 x 3 컨벌루션 커널이 그 특징을 추출하는 데 사용될 수 있다. 도 15에서 제2 노드의 이웃 노드는 {1, 3, 4, 8, 9, 10, 14, 15}이며, 3 x 3 컨벌루션 커널이 그 특징을 추출하는 데 사용될 수 있다. 경계의 위쪽 포인트에 대해, 0을 채워 제8 노드와 같은 8-이웃 특징을 충족하도록 할 수 있다.
도 16는 본 개시의 일 실시 예에 따른, 논-유클리드 공간 데이터의 서브그래프 구조를 나타내는 도면이다. 도 16에 나타낸 바와 같은, 논(non)-유클리드 공간 데이터의 경우, 각각의 노드의 이웃 노드의 수가 다르며, 이 경우 고정된 크기의 컨벌루션 커널이 논-유클리드 공간 데이터에 대한 특징 추출을 수행하는 데 사용될 수 없다. 예를 들어, 도 16에서 제1 노드의 이웃 노드는 {0, 3, 4, 5}이고, 이웃 노드의 수는 4이며, 이는 특징 추출을 수행하기 위해 크기가 4 노드인 블록을 갖는 컨벌루션 커널을 사용할 필요가 있음을 의미한다. 도 16에서 제2 노드의 이웃 노드는 {3}이며, 즉, 하나의 이웃만 있으며, 이는 특징 추출을 수행하기 위해서 크기가 2 노드인 블록을 갖는 컨벌루션 커널을 사용할 필요가 있음을 의미한다. 논-유클리드 공간의 데이터의 경우, 각각의 노드의 이웃의 상이한 수로 인해, 특징 추출을 위해 각각의 노드 마다 상이한 컨벌루션 커널이 사용될 필요가 있으며, 따라서, 통상의 CNN 및 RNN을 이용할 수 없음을 알 수 있다. 이에, 그래프 컨벌루션 신경망(GCN)은 그래프 인접 행렬과 라플라시안(Laplacian) 행렬을 통해 논-유클리드 공간 데이터 노드 간의 관계를 측정할 수 있다.
그래프 G = (V, E)가 정의되며, 여기서 V는 노드의 세트를 나타내고 E는 에지의 세트를 나타낸다. 그래프의 각각의 노드는 통상적으로 그래프의 인접 행렬로 나타내어지는 그래프의 결과를 계산하기 위해 차원 D의 벡터로 나타내어진다. 도 17은 본 개시의 일 실시 예에 따른, 서브그래프 G를 설명하기 위한 도면이다. 도 17에 나타낸 바와 같이, 구조는 그래프 G로 나타낼 수 있으며, 여기서 V는 노드의 세트 {0, 1, 2, 3, 4, 5}를 나타내고, E는 에지의 세트 {a, b, c, e, f, g, h}를 나타낼 수 있다. 그리고, {a, b, c, e, f, g, h}는 에지의 가중치를 나타낼 수 있다. N은 6개의 노드가 있음을 나타내고, A는 노드 4의 벡터 표현이며, 그 차원 D는 4이다.
그래프 이론에서, 그래프의 인접 행렬과 그래프의 라플라시안 행렬은 통상적으로 그래프에서 노드 간의 관계를 측정하는 데 사용된다. 도 18은 가중치가 없는 그래프 G의 인접 행렬의 표현을 나타내는 도면이다. 통상적으로 "1"은 2개의 노드 간에 접속이 있음을 나타내고, "0"은 2개의 노드 간에 접속이 없음을 나타내는 데 사용된다. 도 19는 가중치를 갖는 도 17의 서브그래프 G의 인접 행렬을 나타내는 개략도이다.
도 19에 나타낸 바와 같이, 도 19는 가중화된 인접 행렬의 표현이다.
도 20은 도 17의 서브그래프 G의 차수 행렬(degree matrix)의 개략도이다.
그래프 G에서 노드의 차수는 얼마나 많은 경로가 노드를 통과하는지를 나타내며, 예를 들어, 노드 0의 차수는 3이다. 그래프 G의 차수 행렬 D는 도 20에 나타내어져 있고, 차수 행렬은 대각선에만 값을 갖고, 이는 노드의 차수로 표현되며, 나머지 위치는 0이다.
도 21은 도 17의 서브그래프 G의 라플라시안 행렬(Laplacian matrix)의 개략도이다. 도 21에 나타낸 바와 같이, 그래프 G의 라플라시안 행렬은 L = D - A이다.
2) 그래프 컨벌루션의 정의
Figure pat00001
여기서,
Figure pat00002
은 제l 계층의 노드 특징을 나타내고; σ는 비선형 변환을 나타내고; A는 인접 행렬을 나타내고;
Figure pat00003
은 제l 계층의 가중치를 나타내고;
Figure pat00004
은 제l 계층의 절편을 나타내고;
Figure pat00005
은 제(l + 1) 계층의 노드 특징을 나타낸다.
그래프 상의 컨벌루션 연산은 본질적으로 그래프의 노드가 그 자체 특징과 이웃 노드 특징에 의해 나타내어지는 연산이다. 그래프 컨벌루션의 결과는 이웃 관계를 갖는 노드 특징 간의 차이가 점점 더 작아지고, 무관한 노드 간의 차이가 더욱 커지게 되는 것이며, 이는 그래프 컨벌루션 자체가 클러스터링 기능을 가지고 있음을 의미한다.
도 22는 본 개시에 따른, 다른 예에서의 서브그래프 G의 개략적인 구조도이다.
예를 들어, 그래프 G가 도 22에 나타내어져 있으며, 인접 행렬 A가 그래프 G를 나타내는 데 사용되며(통상적으로, 각각의 노드가 자신에게 접속되어 있는 것으로 고려), X는 그래프 G에서 각각의 노드의 특징 벡터를 나타낸다. 그래프 G로부터, 노드 0, 노드 1, 노드 2 및 노드 3이 동일한 카테고리의 노드에 속하고, 노드 4 및 노드 5가 동일한 카테고리의 노드에 속함을 알 수 있다.
가장 단순한 관점에서, GCN의 수학적 원리가 탐구된다. 가중치 W의 값이 모두 1이고, 절편(오프셋) b의 값이 모두 0이고, 비선형 변환이 선형 함수 y = x를 채용할 때, 그래프 컨벌루션 공식은 다음과 같이 표현될 수 있는 것으로 가정한다:
Figure pat00006
공식에서,
Figure pat00007
은 제l 계층의 노드 특징을 나타내고; A는 인접 행렬을 나타내고;
Figure pat00008
은 제(l + 1) 계층의 노드 특징을 나타낸다.
도 23은 도 22의 서브그래프 G의 인접 행렬, 제1 계층의 노드 특징 및 제(l + 1) 계층의 노드 특징의 개략도이다.
도 22의 그래프 G를 사용하여, 인접 행렬 A, 제l 계층의 노드 특징
Figure pat00009
및 제(l + 1) 계층의 노드 특징
Figure pat00010
이 도 23에 나타낸 바와 같이 획득될 수 있다.
위의 공식 (2)로부터 아래의 공식 (3)이 도출될 수 있다:
Figure pat00011
도 23에 나타낸 인접 행렬 A와 제(l + 1) 계층의 노드 특징
Figure pat00012
에 따라, 도 24에 나타낸 제(l + 2) 계층의 노드 특징
Figure pat00013
이 획득될 수 있다;
마찬가지로, 다음 공식이 도출될 수 있다:
Figure pat00014
도 24에 나타낸 인접 행렬 A와 제(l + 2) 계층의 노드 특징
Figure pat00015
에 따라, 도 25에 나타낸 제(l + 3) 계층의 노드 특징
Figure pat00016
이 획득될 수 있다;
Figure pat00017
를 통해, 그래프 G의 각각의 노드에 대한 새로운 특징 표현은 그 이웃과 그 자신 노드의 특징의 합이라는 것을 알게 된다. 각각의
Figure pat00018
은 GCN 네트워크의 계층을 나타내며, 위의 계산을 통해, 노드 간에 관계가 있는 경우, 즉, 이러한 노드가 동일한 카테고리의 노드에 속하는 경우, GCN 네트워크가 진행됨에 따라, 유사한 노드 간의 차이가 더 작아질 수 있다. 예를 들어, 노드 4와 노드 5는 동일한 카테고리에 속하며, 이러한 노드 간의 특징은 후속 GCN 계산에서 동일하며; 노드 0, 노드 1, 노드 2 및 노드 3은 동일한 카테고리의 노드에 속하며, 이러한 노드 간의 그 특징은 더 가까워질 것이다. 상이한 카테고리의 노드 간의 특징의 차이는 더 커질 것이다. GCN 자체가 노드 클러스터링의 기능을 가지고 있으므로, 본 개시은 GCN을 사용하여 엄격한 수학적 및 과학적 기반을 갖는 클러스터링 기능을 구현한다는 것을 알 수 있다.
위의 그래프에서 알 수 있는 바와 같이, 노드의 특징 값은 GCN 네트워크의 깊이에 따라 증가할 것이며, 역 전파(back propagation)에서 기울기를 계산할 때 기울기(gradient)가 사라지거나 폭발(explode)할 수 있으며, 이는 알고리즘의 효율성에 심각한 영향을 미친다. 따라서, 실제 적용 시, 특징은 통상적으로 정규화되지만, GCN의 특징은 변하지 않는다.
인접 행렬 A는 그래프의 차수 행렬 D에 의해 정규화 되며,
Figure pat00019
, GCN의 공식은 다음과 같다:
Figure pat00020
Figure pat00021
Figure pat00022
로 변환된다:
Figure pat00023
여기서,
Figure pat00024
은 제l 계층의 노드 특징을 나타내고; σ는 비선형 변환을 나타내고; D는 차수 행렬을 나타내고; A는 인접 행렬을 나타내고;
Figure pat00025
은 제l 계층의 가중치를 나타내고;
Figure pat00026
은 제l 계층의 절편을 나타내고;
Figure pat00027
은 제(l + 1) 계층의 노드 특징을 나타낸다.
일반적으로, 각각의 노드는 자신과의 접속을 갖고, 자체-순환에 연결되는 것으로 고려되므로, GCN의 계산 공식은 다음과 같다:
Figure pat00028
여기서:
Figure pat00029
은 제l 계층의 노드 특징을 나타내고; σ는 비선형 변환을 나타내고; A는 노드 i에 대응하는 인접 행렬을 나타내고;
Figure pat00030
는 A + I, 자체-순환을 나타내고, I는 1의 값을 갖는 대각 행렬을 나타내고;
Figure pat00031
Figure pat00032
에 대응하는 차수 행렬을 나타내고;
Figure pat00033
은 제1 계층의 가중치를 나타내고;
Figure pat00034
은 제1 계층의 절편을 나타내고;
Figure pat00035
은 제(l + 1) 계층의 노드 특징을 나타낸다.
이상은 그래프 및 그래프 컨벌루션 네트워크에 대한 상세한 소개이며, 서브그래프를 구성하는 구체적인 프로세스가 도면 및 실시예와 함께 아래에서 추가로 설명될 것이다.
본 개시의 실시예의 가능한 구현 방식에서, 단계 S401에서 타겟 영역의 특징 벡터를 획득하는 단계는 이하를 포함할 수 있다:
(1) 타겟 영역의 특징 포인트를 검출하고, 검출된 특징 포인트에 기초하여 타겟 영역을 정렬하고, 대응하는 타겟 변환 영역을 획득하는 단계; 및
(2) 타겟 영역의 특징 벡터를 획득하기 위해 타겟 변환 영역의 벡터를 추출하는 단계.
구체적인 구현 프로세스에서, 변환은 방향 변환 및 특징 포인트의 정렬의 프로세스일 수 있다. 예를 들어, 사람 얼굴의 경우, 사람의 얼굴을 포함하는 타겟 영역이 추출되지만 사람의 얼굴이 정방향이 아닌 경우, 사람 얼굴을 포함하는 타겟 영역의 특징 포인트가 추출될 필요가 있으며, 특징 포인트는 얼굴의 전방 이미지를 획득하기 위해 아핀(affine) 변환된다.
도 26은 본 개시의 실시예에 의해 제공되는 이미지 클러스터링 방법의 개략적인 흐름도이다. 본 개시의 실시예의 가능한 구현에서, 도 26에 나타낸 바와 같이, 클러스터링될 모든 이미지의 타겟 영역을 획득하고, 타겟 영역의 특징 벡터를 획득할 수 있다(S401). 그리고, 단계 S402에서 결과를 획득하기 위해 그래프 컨벌루션 네트워크에 기초하여 특징 벡터를 클러스터링하는 단계는 이하를 포함할 수 있다:
단계 S210: 특징 벡터에 대응하는 서브그래프를 구성하는 단계로서, 여기서 서브그래프는 특징 벡터에 대응하는 중심 노드 및 다른 특징 벡터에 대응하는 적어도 하나의 이웃 노드를 포함한다.
구체적으로, 특징 벡터가 중심 노드로서 사용될 수 있고, 중심 노드에 대응하는 이웃 노드가 획득될 수 있으며, 특징 벡터의 서브그래프가 구성될 수 있다.
구체적인 구현 프로세스에서, 특징 벡터와 다른 특징 벡터 간의 유사도가 각각 획득될 수 있으며, 여기서 다른 특징 벡터는 클러스터링될 타겟 영역에 대응하는 복수의 특징 벡터 중 특징 벡터 이외의 벡터를 지칭하며; 이웃 노드는 특징 벡터와 다른 특징 벡터 사이의 유사도에 따라 다른 특징 벡터로부터 결정될 수 있다.
단계 S220: 그래프 컨벌루션 네트워크에 기초하여 서브그래프의 중심 노드와 그 이웃 노드 사이의 접속 확률을 결정하고, 클러스터링 결과를 획득하기 위해 결정된 접속 확률에 따라 타겟 영역을 클러스터링한다.
여기서, 이웃 노드는 1차 이웃 노드, 즉, 중심 노드에 직접 접속된 이웃 노드일 수 있다.
구체적으로, 서브그래프에 기초하여 대응하는 입력 특징이 획득될 수 있고, 입력 특징이 변환을 위해 그래프 컨벌루션 네트워크에 입력된 후, 변환된 행렬이 서브그래프의 중심 노드와 각각의 이웃 노드의 접속 확률을 획득하기 위해 완전히 접속된 네트워크에 입력된다.
구체적인 구현 프로세스에서, 사전 설정된 임계값보다 큰 접속 확률을 갖는 1차 이웃 노드가 중심 노드와 동일한 카테고리로서 결정될 수 있다.
서브그래프를 구성하는 구체적인 프로세스가 구체적인 실시예와 함께 아래에서 상세히 설명될 것이다.
구체적인 구현 프로세스에서, 단계 S210에서 특징 벡터에 대응하는 서브그래프를 구성하는 단계는 이하를 포함할 수 있다:
(1) 특징 벡터를 중심 노드로 취함으로써, 다른 특징 벡터로부터 중심 노드의 이웃 노드를 획득하는 단계.
여기서, 다른 특징 벡터는 중심 노드 외의 데이터에 대응하는 특징 벡터를 지칭한다.
구체적으로, 중심 노드에 대응하는 특징 벡터와 다른 특징 벡터 사이의 유사도에 따라 이웃 노드가 다른 특징 벡터로부터 스크리닝(screening)될 수 있다.
구체적인 구현 프로세스에서, 특징 벡터를 중심 노드로서 사용하고 다른 특징 벡터로부터 중심 노드의 이웃 노드를 획득하는 단계는 이하를 포함할 수 있다:
a. 특징 벡터와 다른 특징 벡터 사이의 코사인 거리를 각각 획득하는 단계; 및
b. 특징 벡터와 다른 특징 벡터 사이의 코사인 거리에 기초하여 다른 특징 벡터로부터 특징 벡터의 이웃 노드를 스크리닝하는 단계.
이웃 노드를 스크리닝하는 구체적인 프로세스가 아래에서 상세하게 설명될 것이다.
여기서, 코사인 유사도라고도 칭해지는 코사인 거리는 2개의 얼굴 특징 벡터 사이의 각도의 코사인 값을 계산함으로써 유사도를 평가하는 알고리즘이며; 2개의 특징 A 및 B에 대해, 이들 사이의 유클리드 거리가 클수록 그 사이에 더 큰 차이가 있음을 의미하고; 코사인 거리가 클수록 그 사이에 더 작은 차이가 있음을 의미한다.
(2) 중심 노드와 이웃 노드에 따라 서브그래프를 구성하는 단계.
구체적으로, 다른 데이터에 대응하는 특징 벡터로부터 이웃 노드가 스크리닝된 후, 스크리닝에 의해 획득된 중심 노드 및 적어도 하나의 이웃 노드에 따라 서브그래프가 구성된다.
상술한 실시예는 서브그래프를 구성하는 구체적인 프로세스를 설명한다. 이하에서는 본 개시에서 제공되는 이미지 클러스터링 방법 및 서브그래프 구성의 구체적인 프로세스를 추가로 설명하기 위해 얼굴 이미지를 예로 들 것이다.
도 27a는 본 개시의 일 실시 예에 따른, 이미지 클러스터링 방법의 개략적인 흐름도이다.
도 27a에 나타낸 바와 같이, 얼굴 이미지를 예로 들면, 이미지 클러스터링 방법은 이하의 단계를 포함할 수 있다:
S1: 얼굴 검출을 수행하고 얼굴 이미지를 크로핑(cropping)하는 단계;
S2: 얼굴 이미지의 특징 벡터, 즉, 도면에 나타낸 얼굴 특징을 추출하기 위해 CNN을 사용하고, 추출된 얼굴 특징을 노드로서 사용하는 단계;
S3: 각각의 노드를 중심 노드로서 사용하고, 코사인 거리에 따라 적어도 하나의 이웃 노드를 결정하고, 중심 노드와 이웃 노드를 접속하여 서브그래프를 구성하는 단계;
여기서, 단계 S3은 이하를 포함할 수 있다:
(1) 2개의 노드 사이의 코사인 거리를 계산하는 단계(S2710);
(2) 각각의 노드를 중심 노드로서 사용하고, 코사인 거리에 따라 1차 이웃 노드를 선택하는 단계(S2720);
(3) 코사인 거리에 따라 1차 이웃 노드의 이웃 노드, 즉, 2차 이웃 노드를 선택하는 단계(S2730);
(4) 서브그래프를 구성하기 위해 각각의 노드에 대해 k개의 이웃 노드를 선택하는 단계(S2740)로서, k는 자연수임; 및
(5) 각각의 노드의 서브그래프가 구성될 때까지 위의 단계 (1) 내지 (4)를 반복하는 단계(S2750).
S4. GCN에 의해 각각의 서브그래프의 특징을 추출하고; 노이즈와 다른 노드 특징 사이의 차이를 유지하기 위해 계층적 클러스터링 모듈(hierarchical clustering module)을 사용한 다음, 소프트맥스 함수에 따라 중심 노드와 그 1차 이웃 노드의 접속 확률을 결정하는 단계; 및
S5. 중심 노드와 1차 이웃 노드의 접속 확률에 따라 얼굴 이미지를 분류하는 단계.
도 27a는 단계 S2 내지 S4만을 나타낸다. 노드 간 거리를 계산하기 위해 유클리드 거리를 사용하는 통상의 클러스터링 방법을 이용하는 경우에는 클러스터링 오류가 발생될 수 있다. 이 예에서, 유클리드 거리 대신 코사인 거리가 사용되며, 코사인 거리가 유클리드 거리보다 더욱 정확하며, 동일한 카테고리의 노드의 유사도가 판정될 수 있다.
위의 단계 S3에서, 유클리드 거리 대신 코사인 거리가 사용된다. 다수의 실험과 학계는 코사인 거리가 유클리드 거리보다 더욱 정확하고 동일한 카테고리에서 노드의 유사도를 더 정확하게 판정할 수 있음을 입증했다.
도 27b 및 도 27c는 본 개시에 따른 유클리드 거리와 코사인 거리를 비교하는 개략도이다. 도 27b 및 도 27c에 나타낸 바와 같이, 숫자 0 내지 9는 상이한 얼굴을 갖는 얼굴을 나타낸다. 도 27b의 A, B 및 C는 도 27c의 A, B 및 C에 대응한다. LAB는 A와 B 사이의 유클리드 거리를 나타내고, e는 A와 B 사이의 각도를 나타내고; LBC는 B와 C 사이의 유클리드 거리를 나타내고, d는 B와 C 사이의 각도를 나타낸다. 더 작은 각도는 더 큰 코사인 거리 및 2개의 특징 사이의 더 높은 유사도에 대응한다.
도 27b 의 A 및 B는 동일한 사람을 나타내고, C 및 A는 동일한 사람이 아닐 수 있다. 동일한 사람의 얼굴 특징은 자세, 조명 및 순간에 따라 다르기 때문에, 유클리드 거리가 사용되는 경우, 클러스터링 오류가 발생될 것이다. 예를 들어, 도 27c에서, A와 B 사이의 유클리드 거리는 1.45이고, B와 C 사이의 유클리드 거리는 1.22이며, B와 C는 하나의 카테고리로 클러스터링될 수 있으며, 따라서, 유클리드 거리에 기초한 클러스터링의 결과는 잘못될 수 있다. 이에, 코사인 거리는 유클리드 거리에 기초한 클러스터링과 달리 오류로 귀결되지 않을 수 있으며, 유사도 계산을 위해 코사인 거리를 사용하는 것이 더욱 정확할 수 있다. 동일한 카테고리에서, 특징 사이의 각도가 매우 작으므로, 코사인 거리가 더욱 정확하게 클러스터링하는 데 사용될 수 있다.
도 28a는 본 개시에 따른 이미지 클러스터링 방법의 개략적인 흐름도이다. 도 28a에 나타낸 바와 같이, 얼굴 이미지를 예로 들면, 이미지 클러스터링 방법은 이하의 단계를 포함할 수 있다:
S10: 수집된 데이터에 대한 특징 추출을 수행하는 단계 즉, 클러스터링될 데이터의 특징을 추출한다(S2810);
S20: 각각의 노드(얼굴) 사이의 코사인 거리를 계산하는 단계; 즉, 특징 간 코사인 거리 계산한다(S2820).
S30: 각각의 노드를 중심 노드로서 사용하고, k개의 이웃 노드를 찾고, 서브그래프를 구성하는 단계; 즉, 서브그래프를 구성하기 위해 코사인 거리에 따라 K개의 이웃 노드 선택한다(S2830).
S40: 각각의 서브그래프에 대해 이웃 노드와 중심 노드의 접속 확률을 계산하기 위해 GCN 신경망을 사용하고, 각각의 접속 쌍을 형성하는 단계; 및
S50: 2개의 노드 간의 접속 확률이 설정된 임계값보다 큰 경우 하나의 카테고리로 클러스터링하고; 그렇지 않으면, 2개의 카테고리로 클러스터링하는 단계. 구체적으로, 노드 간 접속 확률을 계산하기 위해 서브그래프를 GCN에 전송한다(S2840) 그리고, 설정된 임계값보다 큰지를 결정하고(S2850), 2개의 노드 간의 접속 확률이 설정된 임계값보다 큰 경우(S2850-Y) 하나의 카테고리로 클러스터링하고(S2860); 2개의 노드 간의 접속 확률이 설정된 임계값보다 크지 않으면(S2850-N), 2개의 상이한 카테고리로 클러스터링한다(S2870).
위의 예에서, 노드 간의 코사인 거리를 계산함으로써, 각각의 노드를 중심 노드로서 사용하는 서브그래프가 구성되고, 이에 의해 각각의 서브그래프의 중심 노드와 그 1차 이웃 노드 간의 접속 확률을 계산하고, 각각의 접속 쌍의 2개의 노드가 접속 확률에 따라 동일한 카테고리에 속하는지를 판정하며, 이는 클러스터링의 정확도를 향상시킬 수 있다.
도 28b는 본 개시에 따른 데이터에 대한 특징 추출의 개략적인 흐름도이다. 도 28b에 나타낸 바와 같이, 단계 S10에서 수집된 데이터에 대한 특징 추출을 수행하는 단계는 데이터 사전 프로세싱 서브모듈 및 특징 추출 서브모듈을 포함한다.
데이터 사전 프로세싱 모듈은 얼굴 검출 모듈, 얼굴 정렬 모듈 및 얼굴 특징 추출 모듈을 포함할 수 있다.
얼굴 검출 모듈은 수집된 이미지에서 얼굴을 찾기 위한 알고리즘이다.
원래(original) 이미지는 더 많은 배경 정보를 포함하고 있으며, 원래 이미지가 클러스터링에 사용되는 경우, 동일한 배경 조건 하에서 상이한 사람이 동일한 사람으로 클러스터링될 수 있으며; 얼굴 검출 알고리즘이 이미지에서 얼굴을 검출하고 얼굴을 크로핑 및 저장하는 데 사용되는 경우, 후속 클러스터링에서 얼굴만이 클러스터링되며, 이에 의해 배경 간섭으로 인한 클러스터링 오류를 피할 수 있다.
크로핑된 얼굴 이미지는 특정된 해상도 크기로 정규화된다.
얼굴 정렬 모듈은 틸팅(tilting)된 얼굴 이미지를 보정하기 위한 알고리즘이다. 얼굴 특징 포인트 검출 알고리즘은 얼굴의 특징 포인트를 검출하는 데 사용되고, 검출된 특징 포인트는 얼굴의 전방 이미지를 획득하기 위해 아핀 변환을 수행하는 데 사용된다.
특징 추출 모듈은 정렬된 얼굴에 대해 특징 추출을 수행하기 위해 딥 러닝 알고리즘을 사용한다. 이름이 의미하듯이, 특징 추출은 128-차원 벡터로 얼굴 이미지를 나타내는 것이다. 현재, 다른 차원의 벡터도 예에서 사용될 수 있으며, 이는 본원에서 구체적으로 제한되지 않는다.
얼굴 특징 추출은 많은 양의 얼굴 데이터로부터의 학습에 기초한다. 예를 들어, 니그로이드(Negroid), 코카시안(Caucasian) 및 몽골리안(Mongolian)의 3개 그룹의 10,000명의 사람을 포함하는 데이터 세트를 구성하며, 여기서 각각의 얼굴의 데이터는 450 이상이며, 각각의 그룹은 어린이, 청소년, 젊은이, 중년 및 노인의 데이터를 포함한다. 신경망은 이러한 데이터 세트에 대해 얼굴 특징 추출 훈련 및 학습을 수행한다. 훈련 후, 딥 러닝 모델이 각각의 얼굴 이미지의 특징 추출을 실현할 수 있다.
도 29는 도 28b에서 사용되는 신경망의 개략적인 구조도이다. 도 29에 나타낸 바와 같이, 얼굴 검출 및 얼굴 정렬 후에 얼굴 이미지에 대해 특징 추출이 수행되며, 여기서 박스 1은 컨벌루션 신경망 계층을 나타내고, 박스 2는 깊이 분리 가능한 컨벌루션 계층을 나타내고, 박스 6은 완전 접속 계층을 나타내고, 그 출력은 128-차원 얼굴 특징이다.
도 27a의 단계 S2에서, 얼굴은 128-차원 벡터로 표현되고, 도 27a의 단계 S3에서, 모든 2개의 얼굴 노드 사이의 코사인 거리가 계산된다.
코사인 유사도라고도 칭하는 코사인 거리는 2개의 얼굴 특징 벡터 사이의 각도의 코사인 값을 계산함으로써 유사도를 평가하는 알고리즘이다.
도 30은 본 개시에 따른 코사인 거리의 개략도이다. 도 30에 나타낸 바와 같이, f1은 얼굴 A의 특징 벡터를 나타내고, f2는 얼굴 B의 특징 벡터를 나타내고, a는 f1과 f2 벡터 사이의 각도를 나타낸다. 각도 a가 작을 수록 f1과 f2 사이의 유사도는 더 높을 수 있다. 각도 a가 0인 경우, 코사인 값은 1이며, 이는 f1과 f2가 최고 유사도를 갖는다는 것을 의미하며; 각도 a가 90인 경우, 코사인 값은 0이며, 이는 f1과 f2가 서로 독립적임을 의미하며, 즉, f1과 f2는 동일한 사람이 아니다. 계산 공식은 이하와 같다:
Figure pat00036
여기서, x 및 y는 각각 유사도가 계산될 2개의 벡터를 나타내고; sim(X, Y)는 2개의 벡터 간의 코사인 유사도를 나타낸다.
단계 S3에서, 각각의 노드는 중심 노드 P로서 사용되고, 중심 노드 P로부터 가장 큰 코사인 거리를 가진 m1 이웃 노드, 중심 노드 P로부터 가장 작은 코사인 거리를 가진 m2 이웃 노드, 및 중심 노드 P로부터 중간의 랜덤 코사인 거리를 가진 m3 이웃 노드가 검색되며, 여기서 P의 이웃 노드의 수는 k1 = m1 + m2 + m3이고; P의 각각의 이웃 노드에 대해, P의 각각의 이웃 노드로부터 가장 큰 코사인 거리를 갖는 n 노드가 발견되며, 여기서 k2 = k1 * n이다. 위의 단계를 통해, 중심 노드 P의 1차 이웃 노드의 수는 k1이고, 2차 이웃 노드의 수는 k2이고, P의 이웃 노드의 이론적 총 수는 k = k1 + k2인 것으로 결정될 수 있다. 실제로, 각각의 1차 이웃 노드 사이에 동일한 이웃이 있을 수 있으므로, P의 이웃 노드의 수는 k 이하이다;
각각의 중심 노드 P에 대해, 인접 행렬 A로 표현되는 서브그래프를 구성하기 위해 이들 사이의 접속을 구성하기 위해 p 이웃 노드가 선택되고, 차수 행렬 D를 획득하기 위해 계산이 수행된다.
서브그래프 구성을 완료하기 위해 모든 노드가 중심 노드로서 사용될 때까지 위의 단계가 반복된다.
단계 S4에서, 상이한 어플리케이션 시나리오와 컴퓨팅 플랫폼에 따라 상이한 GCN 신경망 모델이 설계되고, 이웃 노드와 중심 노드의 접속 확률을 계산하기 위해 GCN 신경망을 통해 각각의 서브그래프가 계산되어, 각각의 접속 쌍이 형성된다. 그리고 평균 스코어(Average Score) 알고리즘을 통해 알고리즘의 안정성이 향상된다. 마지막으로, 클러스터링 결과를 획득하기 위해 각각의 접속 쌍이 트래버싱(traversing)된다.
위의 공식 (7)로부터, 그래프에서 노드의 특징
Figure pat00037
을 추출하기 위해, 그래프의 차수 행렬 D와 인접 행렬 A를 계산할 필요가 있음을 알 수 있다. 가중치 W와 오프셋 b는 훈련을 통해 GCN에 의해 학습된 파라미터이고,
Figure pat00038
은 현재 상태에서의 노드의 특징 표현이다.
본 개시는 클러스터링 알고리즘 문제를 노드 접속 예측 문제로 변환하는 새로운 GCN-기반 클러스터링 알고리즘을 제안하며, 즉, 2개의 노드 사이에 접속이 있는지 판정하며, 이에 의해 2개의 노드가 동일한 카테고리에 속하는지를 판정한다. 2개의 노드가 접속될 확률이 설정된 임계값보다 크면, 2개의 노드 간에 접속이 있고 동일한 카테고리에 속하고, 그렇지 않으면 동일한 카테고리에 속하지 않는 것으로 간주된다. 따라서, 본 개시는 각각의 노드를 중심 노드로서 사용하고, 서브그래프를 구성하기 위해 가장 큰 코사인 거리를 갖는 k개의 이웃 노드를 검색한 후, GCN을 통해 중심 노드가 그 1차 이웃 노드에 접속될 확률을 판정한다.
본 개시는 서브그래프를 구성하는 2개의 방식: 고정된 수의 이웃 노드와 고정되지 않은 수의 노드를 제안한다.
이름이 의미하듯이, 고정된 수의 이웃 노드는 서브그래프를 구성하기 위해 고정된 수의 이웃 노드를 선택하는 것이다. 포지티브 샘플과 네거티브 샘플 수의 균형을 맞추기 위해, 본 개시는 네거티브 샘플로서 가장 가까운 노드를 찾을 뿐만 아니라, 가장 먼 노드를 찾는다.
도 31은 본 개시에 따른 이웃 노드를 획득하는 개략적인 흐름도이다. 도 31에 나타낸 바와 같이, 알고리즘 흐름은 이하와 같다:
S1: 2개의 노드 사이의 코사인 거리를 계산한다(S3110);
S2: 각각의 노드를 중심 노드 P로 사용하고 코사인 거리에 따라 k1 개의 이웃 노드를 선택한다(S3120). 구체적으로, 중심 노드 P로부터 가장 큰 코사인 거리를 갖는 m1 이웃 노드, 중심 노드 P로부터 가장 작은 코사인 거리를 갖는 m2 이웃 노드, 및 중심 노드 P로부터 중간의 랜덤 코사인 거리를 갖는 m3 이웃 노드를 검색하고, 여기서 P의 이웃 노드의 수는 k1 = m1 + m2 + m3이다;
S3: k1개의 이웃 노드에 대해, 코사인 거리에 따라 k2개의 이웃 노드를 선택한다(S3130). 구체적으로, P의 각각의 이웃 노드에 대해, P의 각각의 이웃 노드로부터 가장 큰 코사인 거리를 갖는 n 노드를 검색하며, 여기서 k2 = k1 * n이고; 위의 단계를 통해, 중심 노드 P의 1차 이웃 노드의 수는 k1이고, 2차 이웃의 수는 k2이고, P의 이웃 노드의 이론적인 총 수는 mp = k1 + k2인 것으로 결정될 수 있다. 실제로, 각각의 1차 이웃 노드 사이에 동일한 이웃이 있을 수 있으므로, P의 이웃 노드의 수는 mp 이하이다.
S4: 각각의 노드에 대해, 접속할 k개의 이웃을 선택 한다(S3140). 각각의 중심 노드 P에 대해, 인접 행렬 A로 표현되는 서브그래프를 구성하기 위해 이들 사이의 접속을 구성하기 위해 k개의 이웃 노드를 선택하고, 그 차수 행렬 D가 계산된다;
S5: 각각의 노드가 서브그래프 구성을 완료할 때까지 반복하여 서브그래프 구성이 완료되면 종료한다(S3150). 서브그래프 구성을 완료하기 위해 모든 노드가 중심 노드로서 사용될 때까지 위의 단계 S2 내지 S4를 반복한다.
도 32는 본 개시의 예에서 서브그래프를 구성하기 위한 해결책의 개략도이다. 도 32에 나타낸 바와 같이, 예를 들어, 각각의 노드는 1 내지 12로 라벨링되고, 12개의 노드 중 모든 2개 노드의 코사인 거리가 각각 계산되고; 중심 노드로부터 가장 큰 코사인 거리를 갖는 k1 = 2 이웃 노드가 각각의 노드를 중심 노드로 사용하여 계산된 다음; 이웃 노드가 k2 = 2인 이웃 노드가 계산되고; 마지막으로, 각각의 노드로부터 가장 가까운 k 노드가 접속을 위해 선택된다. 예를 들어, 제1 노드를 중심 노드로서 취하고, 그 후 가장 큰 코사인 거리를 갖는 2개의 이웃 노드, 제1 노드로부터 제2 노드 및 제12 노드가 검색되고; 그 후 제2 노드의 이웃 노드, 즉, 제6 노드 및 제12 노드가 계산 및 검색될 뿐만 아니라, 제12 노드의 이웃 노드, 즉, 제7 노드 및 제2 노드가 계산 및 검색되고; 중심 노드, 즉, 제1 노드 외의 모든 노드가 서브그래프 구성을 완료하기 위해 접속된다.
고정되지 않은 수의 노드의 방식은 또한 고정되지 않은 수의 선택된 이웃으로 서브그래프를 구성하는 방식이다. 본 개시는 중심 노드의 이웃 노드를 찾기 위해 코사인 거리 반경 방법을 사용한다. 코사인 거리 반경은 R로 설정되며, 중심 노드로부터의 거리가 반경 R보다 큰 경우, 해당 노드는 중심 노드의 이웃 노드로서 간주될 수 있다. 이러한 방식으로 검색되는 대부분의 이웃 노드는 중심 노드의 이웃 노드이다. 포지티브 샘플과 네거티브 샘플 수의 균형을 맞추기 위해, 더 큰 반경 R1이 재설정되고, R보다 작고 R1보다 큰 코사인 거리를 갖는 노드가 검색된다.
도 33은 본 개시에 따른 이웃 노드를 획득하는 개략적인 흐름도이다. 도 33에 나타낸 바와 같이, 알고리즘 흐름은 이하와 같다:
S1: 특징 간 코사인 거리 계산 한다(S3310). 즉, 2개의 노드 사이의 코사인 거리를 계산한다;
S2: 각각의 노드를 중심 노드 P로서 사용하고, 코사인 거리 반경 임계값을 R로 설정하고, 노드의 코사인 거리가 임계값보다 작으면 노드를 중심 노드 P의 이웃으로 사용한다(S3320);
S3: 검색 범위를 확장하고, 코사인 거리 반경 임계값을 R1로 재설정하고, 코사인 거리가 R보다 크고 R1보다 작은 노드를 선택한다(S3330).
S4: 각각의 노드에 대해, 접속할 k개의 이웃을 선택한다(S3340). 구체적으로, 접속할 각각의 노드에 대해 k개의 노드를 선택하고, 서브그래프를 구성하며; 여기서, 서브그래프는 인접 행렬 A로 표현되고, 그 차수 행렬 D가 계산된다;
S5: 서브그래프 구성을 완료하기 위해 모든 노드가 중심 노드로서 사용될 때까지 위의 단계 S2 내지 S4를 반복하고, 서브그래프 구성이 완료되면 종료한다(S3350).
도 34는 본 개시에 따른 서브그래프를 구성하기 위한 해결책의 개략도이다.
도 34에 나타낸 바와 같이, 예를 들어, 클러스터링될 노드는 1에서 10까지 넘버링되고, 10개의 노드 중 모든 2개의 노드의 코사인 거리가 계산되고; 각각의 노드는 중심 노드 P로서 사용되고, 코사인 거리 반경 임계값은 R로 설정되며, 값이 임계값 미만이면, 노드는 중심 노드 P의 이웃으로 간주되고; 검색 범위가 확장되고, 코사인 거리 반경 임계값이 R1로 재설정되고, R보다 크고 R1보다 작은 코사인 거리를 갖는 노드가 선택되고; 각각의 노드에 대해 k개의 노드가 선택되어 접속된다. 예를 들어, 제1번 노드를 중심 노드로 취하면, 코사인 거리 반경이 R1로 설정되고, 제2 노드, 제3 노드, 제4 노드 및 제5 노드가 이웃 노드로서 선택되고; 더 큰 반경이 R2로 재설정되고, 제6 노드가 제1 노드의 이웃 노드로서 추가로 선택된다. 그러나, 제6 노드의 가장 가까운 이웃 노드는 k1개의 이웃 노드 범위 내에 있지 않으므로, 제6 노드는 네거티브 샘플이며 어떤 노드에도 접속되지 않는다.
종래 기술은 또한 각각의 노드에 대해 서브그래프를 구성하기 위하여 고정된 수의 이웃 노드를 사용하지만, 노드 사이의 거리를 계산하기 위해 유클리드 거리를 사용하는 반면, 본 개시는 노드 사이의 거리를 계산하기 위하여 코사인 유사도를 사용한다. 유클리드 거리는 수치 특징 간의 절대 차이를 반영하며, 치수 값의 차이를 반영하는 데 더 많이 사용된다. 코사인 거리는 방향에서 특징 간의 차이를 나타낸다. 예를 들어, 하나의 동일한 사람의 경우, 다른 자세, 다른 조명 및 다른 순간에서의 얼굴 특징은 상당히 다르지만, 얼굴 특징은 여전히 동일한 사람을 나타낸다. 유클리드 거리를 사용하는 경우, 동일한 사람의 얼굴이 두 사람으로 클러스터링되게 할 것이다. 따라서, 본 개시에서 코사인 거리의 사용은 클러스터링의 정확도를 효과적으로 향상시킬 수 있다.
유클리드 거리는 각각의 차원에서 특징의 절대 수치 값에 기초하여 특징의 유사도를 측정한다. 계산 공식은 이하와 같다:
Figure pat00039
여기서, dist(X, Y)는 벡터 x와 y 사이의 유클리드 거리를 나타내고; xi는 벡터 x의 제i 차원의 값을 나타내고; yi는 벡터 y의 제i 차원의 값을 나타낸다.
특징 A와 B의 경우, 특징 A와 B 사이의 더 큰 유클리드 거리는 특징 A와 B 사이의 더 큰 차이에 대응하고; 더 큰 코사인 거리는 특징 A와 B 사이의 더 작은 차이에 대응한다.
도 35는 유클리드 거리 및 코사인 거리를 사용한 유사도 결과 비교의 개략도이다. 도 35에 나타낸 바와 같이, 상이한 자세, 상이한 조명 및 상이한 순간에서의 한 사람의 얼굴의 코사인 거리가 상대적으로 크다는 것을 알 수 있으며, 이들이 모두 동일한 사람임을 나타낸다. 유클리드 거리도 또한 비교적 커서, 얼굴이 동일한 사람에게 속하지 않을 수 있음을 나타낸다. 도 35에서 O는 유클리드 거리를 나타내고; C는 코사인 거리를 나타낸다.
이미지 클러스터링 방법의 서브그래프의 구성 프로세스는 첨부 도면 및 예를 참조하여 위에서 상세히 설명되었다. 서브그래프에 기초하여 중심 노드와 각각의 이웃 노드 간의 접속 확률을 획득하는 프로세스가 아래에서 추가로 설명될 것이다.
본 개시의 실시예의 가능한 구현 방식에서, 도 26의 단계 S220에서 그래프 컨벌루션 네트워크에 기초하여 서브그래프의 중심 노드와 그 이웃 노드 사이의 접속 확률을 결정하는 단계는 이하를 포함할 수 있다:
(1) 그래프 컨벌루션 네트워크의 적어도 하나의 계층에 따라 서브그래프의 노드 임베딩을 획득하는 단계.
본 개시에서, 노드 임베딩은 행렬의 형태일 수 있으며, 노드 임베딩은 또한 특징 표현 또는 특징 행렬로 지칭될 수 있다.
구체적으로, 서브그래프에 대응하는 입력 특징이 획득될 수 있다. 입력 특징은 특징 행렬, 인접 행렬 및 1차 이웃 벡터를 포함할 수 있으며; 입력 특징은 서브그래프의 노드 임베딩을 획득하기 위하여 그래프 컨벌루션 네트워크의 적어도 하나의 계층에 입력된다.
구체적인 실시예에서, 특징 행렬, 인접 행렬 및 1차 이웃 벡터는 특징 추출을 위해 그래프 컨벌루션 네트워크의 적어도 하나의 계층에 입력될 수 있으며, 그래프 컨벌루션 네트워크의 마지막 계층의 출력 결과는 노드 임베딩으로서 사용된다.
구체적으로, 행렬은 차례로 변환을 위해 그래프 컨벌루션 네트워크의 다중-계층에 입력될 수 있으며, 풀링(pooling) 추가 또는 그래프 컨벌루션 네트워크의 2개의 계층 간의 결과 융합과 같이 그래프 컨벌루션 네트워크의 구조가 또한 향상될 수 있으며, 이는 이하에서 그래프 컨벌루션 네트워크의 개선을 위해 상세히 설명될 수 있다.
(2) 노드 임베딩(또한 특징 표현 또는 특징 행렬이라고 칭함)에 기초하여 서브그래프의 중심 노드와 그 이웃 노드 사이의 접속 확률을 획득한다.
여기서, 이웃 노드는 1차 이웃 노드, 즉, 중심 노드에 직접 접속된 이웃 노드일 수 있다.
구체적으로, 노드 임베딩은 각각의 서브그래프의 중심 노드와 각각의 1차 이웃 노드 사이의 접속 확률을 획득하기 위하여 적어도 하나의 완전 접속 계층(소프트맥스 계층)에 입력될 수 있다.
본 개시에서 그래프 컨벌루션 네트워크의 구조 개선을 보다 쉽고 직관적으로 표현하기 위하여, 우선 종래 기술의 그래프 컨벌루션 네트워크가 설명될 것이다.
도 36은 종래 기술에서의 그래프 컨벌루션 네트워크의 개략적인 구조도이다. 종래 기술의 해결책에서, 도 36에 나타낸 바와 같이, 노드 특징을 추출하기 위하여 4-계층 GCN 쌍이 사용된다. 서브그래프의 인접 행렬, 특징 행렬 및 1차 이웃 벡터가 GCN 네트워크 계층에 입력으로서 전달된 다음, 1차 이웃 노드와 중심 노드 사이에 접속 확률이 있는지를 예측하기 위해 2-계층 완전 접속 계층과 소프트맥스 계층을 통과하며, 여기서 교차-엔트로피(cross-entropy)가 전체 신경망을 훈련시키기 위해 손실 함수로서 사용된다. 네트워크 구조가 도면에 나와 있다.
여기서, 박스 1은 서브그래프의 인접 행렬 A를 나타내고, A는 N * N 행렬이고, N은 노드 수를 나타내고; 박스 2는 서브그래프의 특징 행렬 F를 나타내고, F는 N * d 행렬이고, d는 특징의 차원을 나타내며, 여기서, 종래 기술에서 d = 512이고, 박스 3은 1차 이웃 벡터를 나타내고, 1차 이웃 벡터는 1 * k1 행렬이고, k1은 중심 노드의 1차 이웃의 수를 나타내고; 박스 4는 노드 특징을 추출하기 위한 GCN 네트워크 계층을 나타내고; 박스 5는 완전 접속 계층을 나타낸다.
도 36으로부터, 노드 간 관계가 있는 경우, 즉, 노드가 동일한 카테고리의 노드에 속할 때, GCN 네트워크에서 순방향 전달로, 동일한 카테고리의 노드 간의 차이가 작아질 것이고, 상이한 카테고리의 노드 간의 차이가 커질 것이다. 위에서 언급한 유클리드 거리를 사용하거나, 상이한 기간의 자세, 조명 및 얼굴 사진의 영향으로 인해, 2개의 상이한 카테고리의 노드의 특징이 매우 유사한 것으로 귀결될 수 있으며, 노드 간에 접속이 존재한다. GCN 네트워크의 순방향 전달로, 이러한 2개의 상이한 카테고리의 노드 간의 차이가 점점 작아져서, 후속 클러스터링 오류를 야기한다. 따라서, 본 개시는 이러한 오류의 발생을 감소시키기 위하여 이하의 네트워크 구조를 채용한다.
그래프 컨벌루션 네트워크의 개선이 도면 및 실시예와 함께 이하에서 더욱 상세히 설명될 것이다.
본 개시의 일 실시 예로, 그래프 컨벌루션 네트워크의 제1 계층 외의 그래프 컨벌루션 네트워크의 적어도 하나의 계층에 대해, 그래프 컨벌루션 네트워크의 이전 계층의 출력 결과가 그래프 컨벌루션 네트워크의 적어도 하나의 계층의 입력으로 사용되거나; 그래프 컨벌루션 네트워크의 이전 계층의 출력 결과와 이전 그래프 컨벌루션 네트워크 이전의 적어도 하나의 계층 그래프 컨벌루션 네트워크의 출력 결과가 그래프 컨벌루션 네트워크의 적어도 하나의 계층의 입력으로서 융합된다.
구체적으로, 임의의 2개의 그래프 컨벌루션 네트워크의 출력이 그 후의 하나의 그래프 컨벌루션 네트워크로 사용되는 다음 네트워크의 입력으로서 융합될 수 있다.
도 37a는 본 개시의 실시예에 의해 제공되는 샷-컷 메커니즘을 도입하는 그래프 컨벌루션 네트워크의 개략적인 구조도이다. 예에서, 도 37a에 나타낸 바와 같이, 본 개시는 종래 기술에 기초한 샷-컷(shot-cut) 메커니즘을 도입하며, 이는 위에 언급한 오류의 발생을 효과적으로 감소시키고 클러스터링의 정확도를 향상시킬 수 있다. 본 개시는 노드 특징을 추출하기 위해 (5-계층과 같은) 다중-계층 GCN을 사용한다. 서브그래프의 인접 행렬, 특징 행렬 및 1차 이웃 벡터는 GCN 네트워크 계층에 입력으로 전달된 다음, 1차 이웃 노드와 중심 노드 사이에 접속 확률이 존재하는지를 예측하기 위해 2-계층 완전 접속 계층과 소프트맥스 계층을 통과하며, 여기서 교차-엔트로피가 전체 신경망을 훈련시키기 위해 손실 함수로서 사용되며, 백(back) 계층의 특징 메모리와 얕은 계층의 특징을 융합한다. 따라서, GCN의 백 계층에 가까울수록, 동일한 카테고리의 노드 간 차이가 작아지고, 얕은 계층의 특징이 백 계층의 특징에 융합되며, 이는 상이한 노드 간의 차이를 유지하고 상이한 노드를 동일한 카테고리로 클러스터링하는 것을 회피할 수 있다. 예를 들어, GCN의 제1 계층으로부터 추출된 특징과 제3 계층으로부터 추출된 특징이 융합된 다음, 융합된 특징이 제4 계층에 입력되고, 제2 계층 및 제5 계층으로부터 추출된 특징이 융합되어 출력된다.
도 37a에 나타낸 그래프 컨벌루션 네트워크 구조는 5개의 계층을 가지며, 이는 단지 구조를 설명하기 위한 것으로 이해된다. 즉, 본 개시에 따르면, 그래프 컨벌루션 네트워크 구조의 구체적인 계층의 수는 제한되지 않으며, 임의의 2-계층 그래프 컨벌루션 네트워크의 출력이 융합되어 그 후의 하나의 그래프 컨벌루션 네트워크의 다음 계층 네트워크의 입력으로 사용되며, 이는 본원에서 구체적으로 제한되지 않는다.
아래의 표 1에 나타낸 바와 같이, 샷-컷 메커니즘이 도입되지 않은 그래프 컨벌루션 네트워크의 경우, 이러한 알고리즘은 클러스터링의 정확도, 리콜 비율 및 f1-스코어를 효과적으로 개선시킬 수 있다.
정확도 = 정확한 클러스터 수/클러스터 수
리콜 비율 = 정확한 클러스터 수/클러스터의 포지티브 샘플의 수
F1-스코어 = 정확도 * 리콜 스코어 * 2/(정확도 + 리콜 비율)
방법 정확도 리콜 비율 F1-스코어
종래 기술 0.8915 0.7669 0.8245
샷-컷 메커니즘 도입 0.9407 0.8297 0.8812
[표 1: 종래 기술과 샷-컷 메커니즘 도입 간의 효과 비교]
위의 실시예에서, 본 개시는 그래프 컨벌루션 네트워크의 출력 결과를 상이한 계층에 융합하기 위해 그래프 컨벌루션 네트워크에 샷-컷 메커니즘을 도입하고, 그래프 컨벌루션 네트워크의 백 계층에 가까울수록, 동일한 카테고리의 노드 간 차이가 더 작아져서, 상이한 노드 간 차이가 어느 정도 유지될 수 있고, 상이한 노드를 동일한 카테고리로 클러스터링하는 문제가 회피될 수 있고, 클러스터링의 정확도가 더욱 개선된다.또 다른 실시 예로, 계층적 클러스터링이 또한 도입되어 그래프 컨벌루션 네트워크의 구조를 개선할 수 있다.
구체적으로, 적어도 2개의 인접한 그래프 컨벌루션 네트워크는 그 사이에 클러스터링 계층을 포함하고, 클러스터링 계층은 그래프 컨벌루션 네트워크의 가치 있는 계층의 출력 결과에 포함된 각각의 노드의 특징 벡터를 클러스터링하고(이하, 계층적 클러스터링이라고도 칭함), 클러스터링 결과를 그래프 컨벌루션 네트워크의 다음 계층에 출력한다.
구체적으로, 각각의 노드의 특징 벡터는 제1 차원이고; 클러스터링 계층에 의해 출력된 클러스터링 결과는 제2 차원이고; 제2 차원이 제1 차원보다 작다.
구체적으로, 클러스터링 계층 후에 위치된 적어도 2개의 인접한 그래프 컨벌루션 네트워크 사이에 차원 복구 계층이 또한 제공될 수 있으며, 차원 복구 계층은 클러스터링 계층의 출력 결과에 대한 차원 복구를 수행하는 데 사용된다. 여기서, 차원 복구 계층에 입력된 특징은 제2 차원이고; 차원 복구 계층의 입력 특징은 제1 차원이며, 이는 그래프 컨벌루션 네트워크의 클러스터링 결과가 최종적으로 그래프 컨벌루션 네트워크에 입력된 차원과 일치하도록 하며, 전체 클러스터링의 작업 정확도와 효율성을 개선한다.
도 37b는 본 개시의 실시예에 의해 제공되는 샷-컷 메커니즘 및 계층적 클러스터링을 도입하는 그래프 컨벌루션 네트워크의 개략적인 구조도이다.
도 37b에 나타낸 바와 같이, 계층적 클러스터링 모듈은 GCN의 각각의 원래 계층 뒤에 도입된다. 본 개시는 계층적 클러스터링이 GCN의 임의의 계층에서 사용될 수 있는 차별화 가능한 계층적 클러스터링 동작을 도입한다. GCN 전달의 프로세스에서, 동일한 카테고리에 속한 노드가 융합되며, 이는 하나의 GCN 내의 노드에 대해 클러스터링 기능이 완료되었음을 의미하며, 이에 의해 전체 클러스터링 작업의 정확도과 효율성을 개선한다.
도 37b에 나타낸 계층적 클러스터링 모듈을 갖는 그래프 컨벌루션 네트워크 구조는 단지 구조를 설명하기 위한 4개의 계층을 갖는 것으로 이해된다. 구체적인 구현 프로세스에서, 그래프 컨벌루션 네트워크 구조의 계층의 구체적인 수는 제한되지 않으며, 임의의 2-계층 그래프 컨벌루션 네트워크의 출력이 융합되어 그 후의 하나의 그래프 컨벌루션 네트워크의 다음 계층 네트워크의 입력으로서 사용되고, 또한, 그래프 컨벌루션 네트워크의 각각의 계층은 계층적 클러스터링 동작을 가질 수 있으며, 그래프 컨벌루션 네트워크의 하나의 계층 또는 일부만이 계층적 클러스터링 동작을 가질 수 있으며, 이는 본원에서 구체적으로 제한되지 않는다.
통상의 GCN이 노드의 특징을 클러스터링하고, 노이즈 노드와 다른 노드 간의 차이를 감소시킬 수 있다는 것에 의해 야기될 수 있는 클러스터링 오류의 문제를 고려하여, 이하의 개선이 본 개시에서 GCN 구조에 대해 이루어진다:
1. 서브그래프에서 상이한 노드 간의 차이를 유지하기 위해 샷-컷 메커니즘을 사용하고;
2. 서브그래프의 계층적 특징을 추출하고 노이즈 노드와 다른 노드 간의 차이를 증가시키기 위해 GCN에서의 계층적 클러스터링 모듈을 제안한다.
도 37b 및 도 37c에 나타낸 바와 같이, 예에서, 얼굴 이미지를 예로 들면, 이미지 클러스터링 방법은 이하의 단계를 포함할 수 있다.
도 37c는 본 개시의 예에서의 이미지 클러스터링 방법의 개략적인 흐름도이다.
S1: 얼굴 검출, 및 얼굴 이미지 크로핑 및 정렬을 수행한다;
S2: CNN을 사용하여 얼굴 이미지의 특징 벡터, 즉, 도면에 나타낸 얼굴 특징을 추출하고, 추출된 얼굴 특징을 노드로 사용한다;
S3: 각각의 노드를 중심 노드로 사용하고, 코사인 거리에 따라 적어도 하나의 이웃 노드를 결정하고, 중심 노드와 이웃 노드를 접속하여 서브그래프를 구성한다;
S4: GCN에 의해 각각의 서브그래프의 특징을 추출하고; 샷-컷 메커니즘과 계층적 클러스터링 모듈을 사용하여 노이즈와 다른 노드 특징 간의 차이를 유지한 다음 소프트맥스 함수에 따라 중심 노드와 그 1차 이웃 노드의 접속 확률을 획득한다; 그리고
여기서, 단계 S4는 이하를 포함할 수 있다:
(1) GCN의 입력으로서 인접 행렬, 특징 행렬 및 이웃 노드(구체적으로 1차 이웃 노드일 수 있음) 벡터를 취한다(S3710);
(2) GCN의 제1 계층을 사용하여 서브그래프의 특징을 추출한다(S3720);
(3) 계층적 클러스터링 및 특징 추출을 위해 계층적 클러스터링 모듈을 사용한다(S3730);
(4) 제 제2 및 제3 계층에서, 노드의 계층적 클러스터링된 특징을 추출하고, 샷-컷 메커니즘을 통해 얕은 계층의 특징을 융합한다(S3740).(5) 차원 업그레이드 모듈을 통해 노드 수를 원래 차원으로 복구 한다(S3750). 즉, 차원 업그레이드 모듈을 통해 노드 수를 원래 차원에 업그레이드한다;
(6) GCN의 제4 계층을 사용하여 업그레이드된 서브그래프의 특징을 추출하고, 제4 계층으로부터 추출된 특징을 GCN의 제1 계층의 특징과 융합하여 노드 간의 차이를 유지한다(S3760); 그리고
(7) 소프트맥스를 사용하여 중심 노드와 그 1차 이웃 노드 간의 접속 확률을 예측한다(S3770).
S5: 중심 노드와 1차 이웃 노드의 접속 확률에 따라 얼굴 이미지를 분류한다.
각각의 노드와 그 이웃 노드 간의 접속 확률에 따라, 모든 노드 간의 접속 관계가 획득될 수 있으며, 그 후 모든 노드 간의 접속 관계에 따라 얼굴 이미지가 분류될 수 있으며, 여기서 평균(average) 스코어가 (상세히 후술하는) 노이즈 노드를 제거하는 데 사용될 수 있다.
도 37c는 단계 S3 내지 S5만을 나타낸다. GCN의 샷-컷 메커니즘은 상이한 계층의 특징을 융합하여 노이즈와 다른 노드 특징 간의 차이를 유지할 수 있다.
도 37d는 본 개시에 따른 샷-컷 메커니즘 및 계층적 클러스터링을 도입하는 이미지 클러스터링 해결책의 개략도이다. 도 37d에 나타낸 바와 같이, 도 37d는 예에서 GCN을 시뮬레이팅하는 프로세스를 나타내며, 여기서 G는 서브그래프를 나타내고, 제2 노드는 노이즈 노드를 나타낸다. A는 끝에서 두번째의 계층의 GCN으로부터 추출된 특징 행렬을 나타내고, B는 샷-컷 후의 특징 행렬을 나타낸다.
아래 표 2에 나타낸 바와 같이, AA는 샷-컷이 없는 특징 간의 코사인 거리를 나타내고, BB는 샷-컷 메커니즘을 사용한 후의 특징 간의 코사인 거리를 나타낸다. 샷-컷을 추가한 후에, 노이즈 노드와 다른 노드 간의 유사도가 감소하고, 클러스터링 성능이 개선된다.
[표 2]
Figure pat00040
[표 2: 샷-컷 메커니즘 도입 전후의 코사인 거리 비교]
표 1에서 알 수 있는 바와 같이, 샷-컷 메커니즘은 상이한 노드의 특징 간의 차이를 유지하고, 노이즈 노드를 효과적으로 제거하며, 후속 클러스터링의 정확도를 개선할 수 있다.
도 38은 본 개시에 따른 샷-컷 메커니즘 및 계층적 클러스터링을 도입하는 이미지 클러스터링 해결책의 개략도이다. 도 38에 나타낸 바와 같이, 예에서, 계층적 클러스터링 모듈이 강력한 관계를 갖는 노드를 클러스터링하기 위해 통상의 GCN 계층에 도입될 수 있으며, 노이즈 노드를 결정하기 위해 특징을 정규화할 수 있다.
GCN의 계층적 클러스터링 프로세스는 간단히 시뮬레이팅된다. B는 계층적 클러스터링의 결과를 나타내고, C는 노드가 동일한 카테고리에 속할 경우, 노드가 중심 노드의 특징에 의해 표시된다. 계층적 클러스터링 모듈은 노이즈 노드를 효과적으로 제거할 수 있고, 노이즈 노드와 다른 노드 간의 차이가 노드의 특징을 클러스터링하는 통상의 GCN에 의해 감소되고 궁극적으로 클러스터링 오류로 이어지는 문제점을 해결할 수 있다는 것을 알 수 있다.
도 39a는 본 개시에 따른 계층적 클러스터링 동작을 도입하는 그래프 컨벌루션 네트워크를 사용하는 클러스터링의 개략도이다.
도 39a에 나타낸 바와 같이, 박스 1과 박스 2의 노드는 동일한 카테고리의 노드 A에 속하고, 박스 3의 노드는 동일한 카테고리의 노드 B에 속하고, 박스 4의 노드는 동일한 카테고리의 노드 C에 속한다. 노드 A의 카테고리에 노드가 있으며, 그 거리는 박스 2의 노드에 가깝고, 이들 사이에 접속이 있다. GCN 네트워크를 적용한 후, 박스 2의 노드와 박스 3의 노드의 특징이 더 가까워질 것이고, 이는 후속 클러스터링 효과에 영향을 미칠 수 있다. 그러나, 본 개시의 계층적 클러스터링 모듈을 통해, GCN 내의 각각의 노드에 대해 작은 클러스터링이 완료되고, 유사한 노드 특징이 융합되고, 이에 의해 소수의 잘못된 노드의 영향을 감소시킨다.
도 39b는 본 개시에 따른 계층적 클러스터링 동작을 도입하는 그래프 컨벌루션 네트워크를 사용하는 클러스터링의 개략도이다.
도 39b에 나타낸 바와 같이, 제3 노드는 제0, 제1 및 제2 노드와 동일한 카테고리가 아니지만, 제0 노드와 제3 노드 사이의 코사인 거리는 조명과 자세로 인해 상대적으로 크다. 통상의 클러스터링 알고리즘이 사용되면, 제0 노드와 제3 노드 간의 높은 유사도로 인해, 2개의 카테고리가 하나의 카테고리로 클러스터링되어 클러스터링 오류가 발생한다. 그러나, 본 개시에서는, 계층적 클러스터링을 사용하여, 이웃 노드의 정보를 관찰함으로써 2개의 노드가 동일한 카테고리인지가 판정된다. 이들이 동일한 카테고리에 속하면, GCN에서 하나의 서브카테고리로 클러스터링되고, 그렇지 않으면 하나의 카테고리로 클러스터링되지 않으며, 한편, 차원 복구 모듈이 그 특징을 나타내는 이웃 노드의 특징을 사용하여 카테고리 간격을 증가시킨다. 예를 들어, 제0 노드와 제3 노드가 높은 유사도를 갖지만, 2개의 노드의 이웃 정보로부터 제0 노드와 제3 노드가 상이한 카테고리의 노드에 속한다는 것을 알 수 있다. 계층적 클러스터링을 통해, 이는 작은 카테고리로 클러스터링되고 이웃 노드 정보는 제0 노드와 제3 노드의 특징 간의 차이가 증가되었음을 나타낼 수 있다. 도 39b의 0.2는 제0 노드와 제3 노드 간의 평균 접속 확률을 나타내며, 이는 설정된 임계값보다 작기 때문에, 제0 노드와 제3 노드가 접속 해제할 수 있어, 후속 클러스터링이 제0 노드와 제3 노드를 하나의 카테고리로 클러스터링하는 것을 회피할 것이다.
위의 GCN 신경망 모델에 기초하여, 이러한 해결책은 GCN 네트워크 계층의 수를 하나씩 감소시키면서, 표 3에 나타낸 바와 같이, 계층적 클러스터링 모듈과 차원 복구 모듈을 각 GCN 계층 뒤에 추가하며, 이러한 모듈의 F1-스코어는 위의 개선된 모델에 비해 0.0126만큼 증가했다.
방법 정확도 리콜 비율 F1-스코어
종래 기술 0.8915 0.7669 0.8245
샷-컷 메커니즘 도입 0.9407 0.8297 0.8812
계층적 클러스터링 도입 0.8947 0.8929 0.8938
[표 3: 종래 기술, 계층적 클러스터링 및 샷-컷 메커니즘 도입의 효과 비교]
서브그래프 G가 정의된다. 각각의 서브그래프는 인접 행렬 A로 표시된다(도 37b의 블록 1). A는 내부 요소가 노드 간에 접속이 있는지와 관련되는 N * N 행렬이며, 예를 들어, 노드 간에 접속이 있으면, 이는 1이고 그렇지 않으면 0이므로, A ∈ {0,1}N×N이다. 그래프 G의 각각의 노드의 특징 벡터는 특징 행렬 F(도 37b의 블록 2)를 형성하는 데 사용되며, 여기서 F는 N * D 차원 행렬이고, D는 각각의 노드의 특징 벡터의 차원을 나타내고,
Figure pat00041
이다. 본 개시는 이웃 노드와 중심 노드 간의 확률을 예측하여 클러스터링을 수행하므로, 노드(Node)는 1차 이웃 노드 라벨(도 37b의 블록 3)을 나타내고, 노드는 1 * n1 차원 벡터이고, n1은 중심 노드의 1차 이웃 노드의 수를 나타내고,
Figure pat00042
이다. 도 37b의 박스 4는 GCN 계층을 나타내며, 공식은 이하와 같다:
Figure pat00043
여기서, Hl+1은 GCN의 다음 계층에서 각각의 노드의 특징을 나타내고, Hl은 현재 계층 노드의 특징 표현을 나타내고, GCN의 제1 계층에서 Hl = F이고; Wl은 제l 계층의 가중치 행렬을 나타내며, 이는 D × D1 차원의 행렬이고,
Figure pat00044
이고; bl은 제l 계층의 오프셋을 나타내고, M은 노드 인접 행렬의 정규화된 상태 값을 나타내고,
Figure pat00045
이고,
Figure pat00046
는 인접 행렬을 나타내고,
Figure pat00047
는 인접 행렬의 차수 행렬을 나타내고, σ는 비선형 활성화 계층을 나타내며, 본 개시는 활성화 함수로서 ReLU를 사용한다.
그래프 구조는 구조화되지 않은 데이터이기 때문에, 디지털 이미지에서의 풀링 동작이 직접 사용될 수 없다. 따라서, 본 개시는 학습 가능한 변환 팩터 S(1)을 통해 계층적 클러스터링 기능을 구현한다. S(l)은 N * N1 차원 행렬이며, 이는 각각의 노드가 상이한 카테고리에 속할 확률을 나타내고, N1은 그래프에서 N 노드를 N1 노드로 클러스터링하는 것을 나타낸다. S(l)은 GCN의 하나의 계층을 통해 학습되므로, 전체 GCN 신경망의 임의의 계층에 직접 임베딩될 수 있다. Zl은 노드 클러스터링 팩터를 나타낸다:
Figure pat00048
노드는 변환 팩터에 의해 클러스터링된다:
Figure pat00049
따라서, GCN 계층적 클러스터링 이후의 노드 특징 행렬은 Xl+1이며, 이는 차원 N1 * D의 행렬이다. Xl+1은 클러스터링 후 노드의 특징 행렬이므로, 노드 간의 인접 행렬 A(l+1)을 재구성할 필요가 있다:
Figure pat00050
여기서, S(l)은 변환 행렬, 그리고 또한 계층적 클러스터링 행렬을 나타낸다.
클러스터링 후 노드의 인접 행렬 Al+1과 특징 행렬 Xl+1은 위의 공식으로 획득될 수 있다.
위의 실시예에서, 계층적 클러스터링은 원래 그래프 컨벌루션 네트워크의 각각의 계층 뒤에 도입되며, 계층적 클러스터링은 그래프 컨벌루션 네트워크의 임의의 계층에서 사용될 수 있으며, 그래프 컨벌루션 네트워크의 전달 프로세스 중에 동일한 카테고리에 속하는 노드를 융합할 수 있으며, 즉, 하나의 그래프 컨벌루션 네트워크 내의 노드에 대해 각각의 클러스터링 기능이 완료되었고, 이에 의해 전체 클러스터링 작업의 정확도와 효율성을 개선한다.
도 40a는 본 개시에 따른 이미지 클러스터링 방법의 개략적인 흐름도이다.
도 40a에 나타낸 바와 같이, 예에서, 계층적 클러스터링 및 차원 복구 프로세스는 이하의 단계를 포함할 수 있다:
S1: 인접 행렬, 특징 행렬 및 이웃 노드(구체적으로 1차 이웃 노드일 수 있음)의 벡터를 GCN의 입력으로서 취한다(S4010);
S2: 서브그래프의 특징을 추출하기 위해 GCN의 제1 계층을 사용하고, 계층적 클러스터링 및 특징 추출을 수행하기 위해 계층적 클러스터링 모듈을 사용한다(S4020);
S3: GCN의 제2 및 제3 계층에서, 샷-컷 메커니즘을 통해 클러스터 노드의 특징과 얕은 계층의 클러스터 특징을 추출한다(S4030);
S4: 차원 업그레이드 모듈을 통해 노드 수를 원래 차원으로 업그레이드 한다(S4040). 즉, 차원 업그레이드 모듈을 통해 노드 수를 원래 차원으로 복구한다.
S1에서, 인접 행렬, 특징 행렬 및 1차 이웃 행렬이 GCN을 통해 노드 특징을 추출하는 데 사용한다. S2에서, 계층적 클러스터링 모듈이 동일한 아이덴티티를 가진 노드를 동일한 카테고리로 클러스터링하는 데 사용된다. S3에서, 클러스터링된 특징 노드는 원래 노드의 특징으로서 표시된다. S4에서, 차원 복구 모듈이 서브그래프의 차원을 복구하는 데 사용되고, 클러스터링된 특징이 동일한 서브카테고리의 노드의 특징을 나타내는 데 사용된다.
Figure pat00051
여기서, M(l)은 계층적 클러스터링 후에 각각의 노드가 속한 카테고리를 나타낸다.
차원 복구 모듈에서, M(l) 및 X(l+1)은 복구된 특징 행렬을 획득하는 데 사용된다. 예를 들어, 도 40a에서, 모든 노드 (0,1,2,3)이 계층적 클러스터링 모듈을 통해 2개의 카테고리(카테고리 0 및 1)로 클러스터링된다. 단계 S2에서, M(l) = {0,0,1,0}은 제0 노드, 제1 노드 및 제3 노드가 카테고리 0에 속하고, 제2 노드가 카테고리 1에 속함을 나타낸다. M(l)에 의해 제0 노드, 제1 노드 및 제3 노드가 동일한 아이덴티티를 가지므로, S4에서, 제4 노드의 특징이 제0 노드, 제1 노드 및 제3 노드를 나타낸다는 것을 알 수 있다.
도 40b는 본 개시에 따른 차원 복구 해결책의 개략도이다.
도 40b에 나타낸 바와 같이, 도 40b는 차원 복구의 프로세스를 나타낸다. 공식 15에 따르면, 각각의 노드가 속한 카테고리가 결정될 수 있으며, 대응 위치에서의 노드 특징 벡터가 차원이 복구될 때 복구된 위치의 특징 벡터로서 사용된다. 예를 들어, 계층적 클러스터링 모듈을 통해, 모든 노드 (0,1,2,3)이 2개의 카테고리(카테고리 0 및 1)로 클러스터링되고, 클러스터링에 의해 획득된 카테고리는 M(l) = {0,0,1,0}으로 표시되고, 이는 단계 S2에서, 제0 노드, 제1 노드 및 제3 노드가 카테고리 0에 속하고, 제2 노드가 카테고리 1에 속함을 나타내고; 클러스터링 후 제0 위치의 특징 벡터는 차원 복구 후 노드의 특징 벡터로서 사용되며, 이는 제0 노드, 제1 노드 및 제3 노드의 특징 벡터이며, 다른 노드에 대해서도 마찬가지이다. 공식 15에서 M(l)은 또한 차원 복구 모듈에서 복구된 이웃 행렬 표현을 계산하는 데 사용될 수 있다:
Figure pat00052
여기서, A(r)은 차원 복구 모듈 후의 서브그래프의 인접 행렬과 차원 복구 모듈의 최종 인접 행렬을 나타내는 이전 계층의 서브그래프의 인접 행렬의 합이고; A(l + 1)은 이전 계층에 대한 서브그래프의 인접 행렬을 나타내는 데 사용되고; A(')는 차원 복구 모듈 이후 서브그래프의 인접 행렬을 나타내는 데 사용되고; A(')[i][j]의 의미는 A(')의 의미와 일치한다.
위의 실시예는 샷-컷 메커니즘 및 계층적 클러스터링 모듈의 도입을 포함하여 그래프 컨벌루션 네트워크의 개선을 상세히 설명한다. 접속 확률에 따라 타겟 영역을 클러스터링하는 프로세스가 이하에서 설명될 것이다.
구현 프로세스에서, 도 26의 단계 S220에서 결정된 접속 확률에 따라 타겟 영역을 클러스터링하는 단계는 이하를 포함할 수 있다:
클러스터링될 적어도 하나의 타겟 영역에 대해, 타겟 영역에 대응하는 서브그래프에서 1차 이웃 노드와 중심 노드 간의 접속 확률이 사전 설정된 임계값보다 크면, 1차 이웃 노드에 대응하는 타겟 영역은 타겟 영역과 동일한 카테고리에 있다.
구체적으로, 1차 이웃 노드와 중심 노드 간의 접속 확률이 사전 설정된 임계값보다 크다면, 1차 이웃 노드에 대응하는 타겟 영역과 중심 노드에 대응하는 타겟 영역은 동일한 카테고리에 속한다.
GCN 신경망 후에, 각각의 중심 노드와 1차 이웃 노드 간의 확률 값 쌍이 획득되고; 그 후 각각의 예측 결과가 트래버싱되고, 설정된 임계값보다 낮으면, 중심 노드와 이웃 노드 간에 접속이 없음을 의미한다. 마지막으로, 너비-우선(breadth-first) 알고리즘이 각각의 에지를 트래버싱하는 데 사용되며, 그 확률이 임계값보다 큰 노드가 접속되고, 클러스터링이 완료된다.
도 41은 본 개시의 일 실시 예에 따른, 접속 확률에 기초한 클러스터링 해결책의 개략도이다.
도 41에 나타낸 바와 같이, 각각의 클러스터 노드가 중심 노드로서 사용되며, 중심 노드를 유닛으로서 갖는 서브그래프를 구성하기 위해 코사인 거리를 통해 이웃 노드를 찾으며; 각각의 서브그래프는 중심 노드와 1차 이웃 노드의 접속 확률을 예측하기 위해 GCN 신경망에 적용되고; 2개의 노드 간의 접속 확률이 임계값보다 크면, 이는 접속되고; 마지막으로, 각각의 접속 쌍을 트래버싱하여 클러스터링이 완료된다.
다른 구현 프로세스에서, 도 26의 단계 S220에서 결정된 접속 확률에 따라 타겟 영역을 클러스터링하는 단계는 이하를 포함할 수 있다:
(1) 클러스터링될 적어도 하나의 타겟 영역에 대해, 대응하는 중심 노드와 이웃 노드 간의 접속 확률에 따라 동일한 카테고리의 이웃 노드의 세트를 획득하는 단계.
여기서, 동일한 카테고리의 이웃 노드의 세트는 중심 노드와 동일한 카테고리에 있는 것으로 결정된 적어도 하나의 이웃 노드를 포함한다.
구체적으로, 클러스터링될 적어도 하나의 타겟 영역에 대해, 대응하는 중심 노드와 이웃 노드 간의 접속 확률에 따라 동일한 카테고리의 이웃 노드의 세트를 획득하는 단계는 이하를 포함할 수 있다:
클러스터링될 적어도 하나의 타겟 영역에 대해, 중심 노드와의 접속 확률이 사전 설정된 임계값 이상인 이웃 노드를 결정하고, 결정된 이웃 노드를 동일한 카테고리의 이웃 노드의 세트로서 형성하는 단계.
(2) 동일한 카테고리의 이웃 노드의 세트 중 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 이웃 노드의 세트 중 적어도 하나의 이웃 노드와 각각의 이웃 노드의 접속 확률에 따라 적어도 하나의 이웃 노드와 중심 노드의 접속 확률을 조정하는 단계.
구체적으로, 동일한 카테고리의 이웃 노드의 세트 중 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 이웃 노드의 세트의 적어도 하나의 이웃 노드와 각각의 이웃 노드의 평균 접속 확률이 결정될 수 있고, 평균 접속 확률은 적어도 하나의 이웃 노드와 중심 노드의 접속 확률로서 사용된다.
(3) 적어도 하나의 이웃 노드가 동일한 카테고리의 이웃 노드인지를 결정하기 위해 조정된 접속 확률에 기초하여 타겟 영역을 클러스터링하는 단계.
구체적으로, 조정된 접속 확률이 사전 설정된 제1 임계값 이상인 경우, 조정된 접속 확률에 대응하는 이웃 노드는 동일한 카테고리의 이웃 노드로서 설정될 수 있다.
(4) 클러스터링될 각각의 타겟 영역에 대응하는 동일한 카테고리의 이웃 노드에 따라 클러스터링될 각각의 타겟 영역을 클러스터링하는 단계.
구체적으로, 클러스터링될 각각의 타겟 영역에 대응하는 동일한 카테고리의 이웃 노드에 따라 클러스터링될 각각의 타겟 영역을 클러스터링하는 단계는 이하를 포함할 수 있다:
a: 클러스터링될 각각의 타겟 영역에 대응하는 동일한 카테고리의 이웃 노드에 따라 클러스터링될 각각의 타겟 영역에 대응하는 중심 노드 간의 접속 확률을 결정하는 단계; 및
b: 각각의 중심 노드 간의 접속 확률에 기초하여 클러스터링될 각각의 타겟 영역을 클러스터링하는 단계.
구체적으로, 중심 노드 간의 접속 확률이 사전 설정된 제2 임계값 이상인 경우, 중심 노드에 대응하는 타겟 영역은 동일한 카테고리로 설정될 수 있다.
구체적으로, 본 개시는 알고리즘의 안정성을 높이기 위해 평균 스코어(Average Score) 기반 알고리즘을 제안한다. 각각의 서브그래프에 대해, 중심 노드와 그 이웃 노드 간의 확률이 GCN을 통해 예측되며, A에 접속된 모든 노드(임계값보다 큰 임계값을 갖는 노드)의 세트 C가 획득된다. A와 B 사이의 접속 확률이 설정된 임계값보다 크면, 세트 C와 세트 B에 접속된 모든 노드의 확률의 평균값은 2개의 노드 A와 B가 접속될 확률 값으로서 계산된다. 마지막으로, 각각의 접속 쌍을 트래버싱함으로써 클러스터링이 완료된다. 복수의 노드와 B 간의 접속 정보를 고려하여, A와 B가 동일한 카테고리의 노드가 아니라는 안정성을 높일 수 있다.
도 42a는 본 개시에 따른 평균값 전략에 따라 노이즈 노드를 제거하기 위한 해결책의 개략도이다.
도 42a에 나타낸 바와 같이, 예를 들어, A, B, C, D 및 E는 동일한 카테고리의 노드이고, 노드 F와 A 간의 접속 확률은 0.9보다 크지만, F와 B, C, D 및 E 간의 접속 확률은 0.05, 0.1, 0.2, 0.15이다. 확률 0.1의 평균값을 노드 A와 F의 확률값으로 취하면, A와 F 사이의 접속 확률이 매우 작음을 나타낼 수 있고, 이에 의해 알고리즘의 정확도를 개선할 수 있다.
도 42b는 본 개시에 따른 평균값 전략에 의해 노이즈 노드를 제거하는 방법의 개략적인 흐름도이다.
도 42b에 나타낸 바와 같이, 예에서, 노이즈 노드를 결정하는 프로세스는 이하의 단계를 포함할 수 있다:
S1: 모든 노드를 트래버싱하고, 임의의 노드에 대해, 접속 확률이 사전 설정된 임계값보다 크고 노드의 이웃 노드의 수가 사전 설정된 노드의 수보다 적은 노드를 격리된 노드로서 설정하는 단계(S4210)로서, 사전 설정된 노드의 수는 2일 수 있음;
S2: 격리된 노드와 그 2차 이웃 노드(즉, 이웃 노드의 이웃)의 접속 확률에 따라 소팅하는 단계(S4220);
S3: 접속 확률의 평균을 격리된 노드와 그 이웃 노드의 접속 확률로서 사용하는 단계(S4230);
S4: 접속 확률이 설정된 임계값보다 작으면, 해당 노드는 노이즈 노드(노이즈)이다(S4240).
클러스터링의 정확도와 안정성을 개선하기 위해, 이웃 관계에 따라 격리된 노드가 노이즈 노드인지를 결정하기 위해 위의 예에서 평균 알고리즘이 제안되었다. A, B, C, D 및 E는 동일한 카테고리의 노드이다. F와 A 간의 접속 확률은 0.9보다 크지만, F와 B, C, D 및 E 사이의 접속 확률은 0.05, 0.1, 0 및 0으로 매우 작다. F와 A, B, C, D 및 E의 접속 확률의 평균이 F와 A의 접속 확률로서 취해진다. 이러한 알고리즘에 기초하여, F가 카테고리 A의 노이즈 노드인 것으로 결정될 수 있으며, 즉, F는 카테고리 A에 속하지 않는다. 평균값 알고리즘은 클러스터링 오류를 효과적으로 회피할 수 있으며, 클러스터링의 정확도와 안정성을 개선할 수 있다.
위에서는 접속 확률에 기초하여 상이한 방식의 클러스터링을 설명하였다. 상술한 클러스터링 프로세스는 클러스터링될 모든 얼굴 이미지를 클러스터링하는 것이다. 그러나, 제한된 컴퓨팅 자원을 갖는 모바일 폰과 같은 소형 디바이스에서는, 초기 클러스터링 및 사후-추가 클러스터링이 일반적으로 사용된다. 클러스터링될 얼굴의 수가 증가함에 따라, 본 개시에서 제안된 클러스터링 알고리즘의 시간 및 공간 복잡성도 증가하여, 더 많은 컴퓨팅 자원 소비를 필요로 한다. 한편, 사용자는 모바일 폰을 사용하여 사진을 찍을 때 모든 사진을 한번에 찍는 것이 아니라, 시간이 지남에 따라 점차적으로 이를 축적한다. 따라서, 추가 방법은 사용자가 클러스터링 결과를 빠르게 확인하고 사용자 경험을 향상시킬 수 있게 한다.
본 개시의 실시예의 가능한 구현 방식에서, 이미지 클러스터링 방법은 추가로 이하를 포함한다:
(1) 클러스터링될 새로운 타겟 영역을 획득하는 단계;
(2) 클러스터링된 적어도 하나의 카테고리에서 타겟 영역의 사전 설정된 수를 각각 획득하는 단계;
(3) 새로운 클러스터링 결과를 획득하기 위해 그래프 컨벌루션 네트워크에 기초하여 클러스터링된 획득된 타겟 영역과 클러스터링될 새로운 타겟 영역을 클러스터링하는 단계; 및
(4) 새로운 클러스터링 결과 및 클러스터링된 타겟 영역에 대응하는 카테고리에 기초하여 클러스터링될 새로운 타겟 영역의 카테고리를 결정하는 단계.
구체적으로, 획득된 클러스터링 결과에 기초하여, 클러스터링될 새로운 타겟 영역을 클러스터링할 때, 사전 설정된 수의 이미지가 각각의 클러스터링된 카테고리로부터 획득될 수 있으며, 클러스터링될 새로운 타겟 영역의 카테고리를 판정하기 위하여 새로운 클러스터링 결과가 클러스터링된 타겟 영역과 클러스터링될 새로운 타겟 영역에 따라 획득되며, 이는 클러스터링 효율을 개선하고 사용자가 클러스터링 결과를 신속하게 확인할 수 있도록 제한된 컴퓨팅 자원을 갖는 모바일 폰과 같은 소형 디바이스에 적용될 수 있으며, 이에 의해 사용자 경험을 향상시킨다.
도 43은 본 개시의 실시예에 의해 제공되는, 클러스터링될 새로운 데이터를 클러스터링하는 개략적인 흐름도이다.
도 43에 나타낸 바와 같이, 초기 클러스터링 노드에서, n개의 얼굴 카테고리, 즉, 클러스터링된 카테고리를 획득하기 위하여 사전 설정된 수의 N개의 얼굴이 선택되고; 새로운 사진이 검출되면, 각각의 얼굴의 특징을 획득하기 위하여 새로운 사진에 대해 얼굴 검출, 얼굴 정렬 및 얼굴 특징 추출이 수행되고(S4320); n개의 클러스터링된 카테고리로부터 n2개의 얼굴 이미지가 카테고리를 나타내는 것으로서 랜덤하게 선택되어 새로운 얼굴 이미지와 융합하고 동시에 융합된 이미지를 클러스팅하고; 기존 클러스터링 결과에 대한 새로운 클러스터링 결과의 새로운 사진의 비율이 계산되고, 설정된 비율 1(예를 들어, 0.5)보다 큰 경우, 기존의 클러스터링 결과로 융합되거나, 설정된 비율 2(예를 들어, 0.2)보다 작은 경우, 새로운 카테고리로 간주되고; 0.2보다 크고 0.5보다 작은 경우, 어떠한 동작도 수행하지 않고, 리-클러스터링(re-clustering)이 다음 클러스터링에서 수행될 수 있다..
본 개시의 이미지 클러스터링 방법의 어플리케이션을 보다 명확하게 이해하기 위해, 본 개시의 이미지 클러스터링 방법이 일 실시 예와 함께 이하에서 설명될 것이다.
본 개시의 실시예의 가능한 구현 방식에서, 이미지 클러스터링 방법은 이하의 과정을 추가로 포함할 수 있다:
(1) 사용자에 의해 입력된 이미지 검색용 키워드를 수신한다;
(2) 클러스터링 결과에 기초하여 키워드와 연관된 카테고리를 결정한다; 그리고
(3) 결정된 카테고리의 이미지 중 키워드와 매칭되는 이미지를 검색한다.
구체적으로, 사용자가 다수의 이미지에서 키워드와 매칭되는 이미지를 검색할 필요가 있는 경우, 직접 검색은 정확도가 떨어지며 시간-소모적이므로, 우선 키워드와 연관된 카테고리가 복수의 클러스터링된 카테고리로부터 결정될 수 있다.
예를 들어, 다양한 카테고리를 갖는 다수의 이미지에서 사람의 이름을 검색할 필요가 있는 경우, "여성 스타"의 카테고리가 클러스터링된 카테고리에서 결정될 수 있으며, 그 후 키워드가 결정된 카테고리로부터 검색이 수행될 수 있으며, 이러한 과정은 검색 효율성을 개선하고 검색 시간을 감소시키는 데 효과적일 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 이미지 클러스터링 방법은 이하의 과정을 추가로 포함할 수 있다:
(1) 마킹(marking)될 복수의 태그를 획득한다; 그리고
(2) 클러스터링 결과에 기초하여 각각의 클러스터링된 카테고리의 타겟 영역에 태그를 각각 마킹한다.
구체적으로, 다양한 카테고리의 다수의 이미지를 라벨링하는 프로세스에서, 우선 타겟 영역이 클러스터링되어 타겟 영역이 클러스터링될 수 있는 카테고리를 결정한 후, 라벨링될 각각의 라벨에 대해 가장 가까운 태그가 카테고리의 자동 라벨링을 위해 결정될 수 있다. 이러한 과정은 라벨링 효율성을 효과적으로 개선할 수 있다.
어플리케이션 시나리오 및 하드웨어 환경의 요건에 따라, 본 개시는 대응 작업을 완료하기 위해 다른 솔루션을 사용할 수 있다.
1) 모바일-엔드에 대한 고성능 클러스터링 솔루션
모바일-엔드 통합 방법은 낮은 컴퓨팅 자원 소비를 필요로 하며, 네트워크 모델 설계에서 낮은-채널, 낮은-차원 및 낮은-입력 솔루션을 사용한다. 초기 클러스터링 및 추가 클러스터링의 해결책이 클러스터링 논리에 사용되며, 도 44에 나타낸 바와 같이, 구체적인 작업 흐름은 이하와 같다:
도 44는 본 개시의 실시예에 의해 제공되는 모바일 단말에 적용되는 이미지 클러스터링 방법의 개략적인 흐름도이다.
S1: 모바일 앨범의 사진에 대해 얼굴 검출, 얼굴 정렬 및 얼굴 특징 추출(128-차원 얼굴 특징 추출)을 수행한다(S4400);
S2: 초기 클러스터링 결과를 획득하도록 사후-프로세싱 알고리즘을 통해 클러스터링을 완료하기 위하여 기존의 얼굴 특징에 대한 노드의 접속 확률을 예측하기 위해 GCN을 사용한다;
S3: 전자 디바이스는 클러스터링될 새로운 특징을 획득한다(S4405). 클러스터링될 새로운 얼굴 특징이 획득되면, 전자 디바이스는 S4400에서 기 추출된 특징과 S4405에서 새롭게 획득된 특징을 이용하여 클러스터링된 카테고리로부터 6개의 얼굴 특징을 그 대표로 선택하여 클러스터링될 새로운 세트를 형성하고, 클러스터링될 얼굴 특징의 수가 설정된 임계값(예를 들어, 20)보다 큰지 판정한다. 일 예로, 전자 디바이스는 클러스터링될 얼굴 특징의 수가 20 보다 큰지 여부를 판단한다(S4410).; 클러스터링될 얼굴 특징의 수가 20보다 작으면(S4415-N), 전자 디바이스는 모든 얼굴의 id를 -1로 설정하고 다음 클러스터링을 기다린다(S4415). 그리고, 클러스터링될 얼굴 특징의 수가 20보다 크면(S4415-Y) GCN 클러스터링을 수행한다(S4420).;
S4: 사후-프로세싱 알고리즘을 통해 클러스터링을 완료하도록 노드의 접속 확률을 예측하기 위하여 GCN을 사용한다;
S5: 클러스터링의 카테고리가 (5와 같은) 설정된 수보다 큰지를 결정한다. 일 예로, 전자 디바이스는 출력 클러스터 카테고리가 5보다 큰지 여부를 판단한다(S4425). 5보다 작으면(S4425-N), 전자 디바이스는 모든 얼굴의 ID를 -1로 설정하고 다음 클러스터링을 대기한다(S4430). 출력 클러스터 카테고리가 5보다 크면(S4425-Y), 다음 단계로 진행한다;
S6: 출력 클러스터 카테고리가 5보다 크면(S4425-Y), 전자 디바이스는 기존 클러스터링 결과에 대한 새로운 클러스터링 결과의 새로운 사진의 비율을 계산한다(S4435), 여기서, (0.5와 같은) 설정된 비율 1보다 크면, 전자 디바이스는 기존의 클러스터링 결과로 융합한다(S4440). (0.2와 같은) 설정된 비율 2보다 작으면, 새로운 카테고리로서 간주될 것이고, 전자 디바이스는 출력 클러스터 카테고리를 새로운 카테고리로 이용할 수 있다(S4445). 그리고, 0.2보다 크고 0.5보다 작으면, 전자 디바이스는 어떠한 동작도 수행하지 않고 다음 클러스터링에서 리-클러스터링이 수행될 수 있다(S4450).
그리고, 전자 디바이스는 20개 특징에 대응되는 각각의 카테고리를 업데이트하고(S4455), 새로운 클러스터링 결과를 획득할 수 있다(S4460). 그리고, 전자 디바이스는 클러스터링 결과를 업데이트하고(S4465), 상술한 과정을 반복할 수 있다.
도 45는 본 개시의 실시예에서 모바일 단말에 적용되는 신경망 구조의 개략도이다.
모바일 엔드의 신경망 모델이 도 45에 나와 있으며, 여기서 박스 1은 서브그래프의 인접 행렬 A를 나타내고, A는 N * N 행렬이고, N = 31은 노드 수를 나타내고; 박스 2는 서브그래프의 특징 행렬 F를 나타내고, F는 N * d 행렬이고, d = 128은 특징의 차원을 나타내고; 박스 3은 1차 이웃의 라벨 "노드"를 나타내고, "노드"는 1 * k1 행렬이고, k1 = 10은 중심 노드의 1차 이웃의 수를 나타내고; 박스 4, 박스 5 및 박스 6은 모두 노드 특징 추출을 위한 GCN 네트워크 계층을 나타내며, 상이한 컬러 음영은 GCN 네트워크 계층의 출력 채널이 상이하다는 것을 나타내고, 더 좁은 채널은 더 적은 대응 계산량을 가진 더 작은 채널에 대응하고; 박스 7은 중심 노드가 1차 이웃 노드에 접속될 확률을 예측하기 위한 완전 접속 계층을 나타낸다.
2) 서버-엔드 고성능 솔루션
대형 서버는 강력한 컴퓨팅 성능과 큰 메모리를 가지므로, 클러스터링의 정확도를 개선하기 위해 큰 신경망 모델이 사용될 수 있다. 계층적 클러스터링을 도입하는 신경망 구조, 즉, 도 37b에 나타낸 신경망 구조는 복수의 테스트 세트에서 높은 F1-스코어를 가지며, F1-스코어 표시기를 필요로 하는 작업에 사용될 수 있다. 샷-컷 메커니즘을 도입하는 신경망, 즉, 도 37a에 나타낸 신경망은 높은 정확도를 갖고, 정확도 표시기를 필요로 하는 작업에 적합하다. 도 46에 나타낸 바와 같이, 배치 흐름은 이하와 같다:
도 46은 본 개시의 실시예에 의해 제공되는 서버에 적용되는 이미지 클러스터링 방법의 개략적인 흐름도이다.
S1: 전자 디바이스는 앨범의 사진에 대해 얼굴 검출, 얼굴 정렬 및 얼굴 특징 추출을 수행한다(S4610);
S2: 초기 클러스터링 결과를 획득하도록 사후-프로세싱 알고리즘을 통해 클러스터링을 완료하기 위하여 기존의 얼굴 특징에 대한 노드의 접속 확률을 예측하기 위해 GCN을 사용한다; 즉, 전자 디바이스는 GCN을 클러스터링을 통해 초기 클러스터링 결과를 획득할 수 있다(S4620).
S3: 전자 디바이스는 새로운 얼굴 사진을 획득하는지 여부를 식별할 수 있다(S4630). 새로운 얼굴 사진이 획득되면(S4630-Y), 전자 디바이스는 새로운 얼굴 사진의 얼굴 특징을 추출하고 원래 얼굴 사진의 얼굴 특징과 융합하여 리-클러스터링을 수행한다(S4640). 그리고, 전자 디바이스는 상술한 S4620, S4630 및 S4640과정을 반복할 수 있다.
새로운 얼굴 사진이 더 이상 획득되지 않으면(S4630-N), 전자 디바이스는 클러스터링 결과를 출력할 수 있다(S4650).
상술한 이미지 클러스터링 방법에서, 본 개시는 클러스터링 중심을 결정하지 않고 그래프 컨벌루션 네트워크를 통해 각각의 이미지의 타겟 영역을 클러스터링하므로, 클러스터링 중심의 편차로 인한 전체 클러스터링 결과의 편차를 피할 수 있다. 결과적으로, 클러스터링 결과의 정확도가 효과적으로 개선될 수 있다.
또한, 노드 간 거리는 코사인 유사도를 사용하여 계산될 수 있다. 코사인 거리는 방향에서 특징 간의 차이를 구분한다. 한 사람의 다른 포즈, 다른 조명 및 다른 순간에 관해, 얼굴 특징의 차이가 상대적으로 크지만 여전히 같은 사람을 의미한다. 값의 관하여 특징의 절대 차이를 반영하는 유클리드 거리에 비해, 유클리드 거리가 사용되는 경우, 이는 같은 사람이 두 사람으로 클러스터링되게 할 것이다. 따라서, 본 개시에서의 코사인 거리의 사용은 클러스터링의 정확도를 더욱 향상시킬 수 있다.
또한, 본 개시는 상이한 계층에 대한 그래프 컨벌루션 네트워크의 출력 결과를 융합하기 위해 그래프 컨벌루션 네트워크에서 샷-컷 메커니즘을 도입하며, 그래프 컨벌루션 네트워크의 백 계층에 가까울수록, 동일한 카테고리의 노드 간의 차이가 작아져서, 상이한 노드 간의 차이가 어느 정도 유지될 수 있으며, 상이한 노드를 동일한 카테고리로 클러스터링하는 문제가 회피될 수 있으며, 클러스터링 정확도가 더욱 향상된다.
또한, 계층적 클러스터링이 원래 그래프 컨벌루션 네트워크의 적어도 하나의 계층 뒤에 도입되며, 계층적 클러스터링은 그래프 컨벌루션 네트워크의 임의의 계층에서 사용할 수 있으며, 그래프 컨벌루션 네트워크의 전달 프로세스 중에 동일한 카테고리에 속하는 노드를 융합할 수 있으며, 즉, 그래프 컨벌루션 네트워크 내의 노드에 대해 하나의 클러스터링 기능이 완성되고, 이에 의해 전체 클러스터링 작업의 정확도와 효율성을 향상시킨다.
또한, 클러스터링된 카테고리에 기초하여, 클러스터링될 새로운 타겟 영역이 획득되면, 각각의 클러스터링된 카테고리로부터 사전 설정된 수의 이미지가 획득될 수 있으며, 클러스터링될 새로운 타겟 영역의 카테고리를 판정하기 위하여 클러스터링된 이미지와 클러스터링될 새로운 타겟 영역에 따라 새로운 클러스터링 결과가 획득되며, 이는 제한된 컴퓨팅 자원을 갖는 모바일 폰과 같은 소형 디바이스에 적용될 수 있어 클러스터링 효율을 향상시키고 사용자가 클러스터링 결과를 신속하게 확인할 수 있게 하며, 이에 의해 사용자 경험을 향상시킨다.
상술한 실시예는 방법 흐름의 관점에서 이미지 클러스터링 방법을 도입한다. 이하는 가상 모듈의 관점에서 이미지 클러스터링 방법을 설명하며, 구체적으로 이하와 같다:
본 개시의 실시예는 이미지 클러스터링 장치(700)를 제공한다. 도 47은 본 개시의 실시예에 의해 제공되는 이미지 클러스터링 장치의 개략적인 구조도이다.
도 47에 나타낸 바와 같이, 이미지 클러스터링 장치(700)는 취득 모듈(701) 및 제1 클러스터링 모듈(702)을 포함할 수 있다.
취득 모듈(701)은 클러스터링될 모든 이미지의 타겟 영역을 획득하고 타겟 영역의 특징 벡터를 획득하도록 구성될 수 있다. 그리고, 제1 클러스터링 모듈(702)은 결과를 획득하기 위해 그래프 컨벌루션 네트워크에 기초하여 획득된 특징 벡터를 클러스터링하도록 구성될 수 있다.
본 개시의 실시예의 가능한 구현에서, 제1 클러스터링 모듈(702)은 결과를 획득하기 위해 그래프 컨벌루션 네트워크에 기초하여 획득된 특징 벡터를 클러스터링 할 수 있다, 구체적으로: 제1 클러스터링 모듈(702)은 특징 벡터에 대응하는 서브그래프를 구성하고, 여기서 서브그래프는 특징 벡터에 대응하는 중심 노드 및 다른 특징 벡터에 대응하는 적어도 하나의 이웃 노드를 포함하고; 그래프 컨벌루션 네트워크에 기초하여 서브그래프의 중심 노드와 그 이웃 노드 간의 접속 확률을 결정하고, 결과를 획득하기 위해 결정된 접속 확률에 따라 타겟 영역을 클러스터링하도록 구성될 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 특징 벡터에 대응하는 서브그래프를 구성할 때, 제1 클러스터링 모듈(702)은 구체적으로: 특징 벡터를 중심 노드로 취하여, 다른 특징 벡터로부터 중심 노드의 이웃 노드를 획득하도록 구성된다. 그리고, 제1 클러스터링 모듈(702)은 중심 노드와 이웃 노드에 따라 서브그래프를 구성한다.
본 개시의 실시예의 가능한 구현 방식에서, 특징 벡터를 중심 노드로 취함으로써 다른 특징 벡터로부터 중심 노드의 이웃 노드를 획득할 때, 제1 클러스터링 모듈(702)은 구체적으로: 특징 벡터와 다른 특징 벡터 사이의 코사인 거리를 각각 획득하고; 특징 벡터와 다른 특징 벡터 사이의 코사인 거리에 기초하여 다른 특징 벡터로부터 특징 벡터의 이웃 노드를 스크리닝하도록 구성될 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 그래프 컨벌루션 네트워크에 기초하여 서브그래프의 중심 노드와 그 이웃 노드 사이의 접속 확률을 결정할 때, 제1 클러스터링 모듈(702)은 구체적으로: 그래프 컨벌루션 네트워크의 적어도 하나의 계층에 따라 서브그래프의 노드 임베딩을 획득하고; 노드 임베딩에 기초하여 서브그래프의 중심 노드와 그 이웃 노드 간의 접속 확률을 획득하도록 구성될 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 그래프 컨벌루션 네트워크의 적어도 하나의 계층에 따라 서브그래프의 노드 임베딩을 획득할 때, 제1 클러스터링 모듈(702)은 구체적으로: 서브그래프에 대응하는 입력 특징을 획득하고; 특징 추출을 위해 그래프 컨벌루션 네트워크의 적어도 하나의 계층에 입력 특징을 입력하고, 그래프 컨벌루션 네트워크의 마지막 계층의 출력 결과를 노드 임베딩으로서 사용하도록 구성될 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 그래프 컨벌루션 네트워크의 제1 계층 이외의 그래프 컨벌루션 네트워크의 적어도 하나의 계층에 대해, 그래프 컨벌루션 네트워크의 이전 계층의 출력 결과가 그래프 컨벌루션 네트워크의 적어도 하나의 계층의 입력으로서 사용되거나; 그래프 컨벌루션 네트워크의 이전 계층의 출력 결과와 이전 그래프 컨벌루션 네트워크 이전의 그래프 컨벌루션 네트워크의 적어도 하나의 계층의 출력 결과가 그래프 컨벌루션 네트워크의 적어도 하나의 계층의 입력으로서 융합될 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 적어도 2개의 인접한 그래프 컨벌루션 네트워크는 그 사이에 클러스터링 계층을 포함하고, 클러스터링 계층은 그래프 컨벌루션 네트워크의 가치 있는 계층의 출력 결과에 포함된 각각의 노드의 특징 벡터를 클러스터링하고, 클러스터링 결과를 그래프 컨벌루션 네트워크의 다음 계층에 입력할 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 결정된 접속 확률에 따라 타겟 영역을 클러스터링 할 때, 제1 클러스터링 모듈(702)은 구체적으로: 클러스터링될 적어도 하나의 타겟 영역에 대해, 대응하는 중심 노드와 이웃 노드 간의 접속 확률에 따라 동일한 카테고리의 이웃 노드의 세트를 획득하고; 동일한 카테고리의 이웃 노드의 세트에서 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 이웃 노드의 세트에서 적어도 하나의 이웃 노드와 각각의 이웃 노드의 접속 확률에 따라 적어도 하나의 이웃 노드와 중심 노드의 접속 확률을 조정하고; 적어도 하나의 이웃 노드가 동일한 카테고리의 이웃 노드인지를 결정하기 위해 조정된 접속 확률에 기초하여 타겟 영역을 클러스터링하고; 클러스터링될 각각의 타겟 영역에 대응하는 동일한 카테고리의 이웃 노드에 따라 클러스터링될 각각의 타겟 영역을 클러스터링하도록 구성될 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 클러스터링될 적어도 하나의 타겟 영역에 대해, 대응하는 중심 노드와 이웃 노드 간의 접속 확률에 따라 동일한 카테고리의 이웃 노드의 세트를 획득할 때, 제1 클러스터링 모듈(702)은 구체적으로: 클러스터링될 적어도 하나의 타겟 영역에 대해, 중심 노드와의 접속 확률이 사전 설정된 임계값 이상인 이웃 노드를 결정하고, 결정된 이웃 노드를 동일한 카테고리의 이웃 노드의 세트로서 형성하도록 구성될 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 동일한 카테고리의 이웃 노드의 세트에서 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 이웃 노드의 세트의 적어도 하나의 이웃 노드와 각각의 이웃 노드의 접속 확률에 따라 적어도 하나의 이웃 노드와 중심 노드의 접속 확률을 조정할 때, 제1 클러스터링 모듈(702)은 구체적으로: 동일한 카테고리의 이웃 노드의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 이웃 노드의 세트의 적어도 하나의 이웃 노드와 각각의 이웃 노드의 평균 접속 확률을 적어도 하나의 이웃 노드와 중심 노드의 접속 확률로서 결정하도록 구성될 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 클러스터링될 각각의 타겟 영역에 대응하는 동일한 카테고리의 이웃 노드에 따라 클러스터링될 각각의 타겟 영역을 클러스터링할 때, 제1 클러스터링 모듈(702)은 구체적으로: 클러스터링될 각각의 타겟 영역에 대응하는 동일한 카테고리의 이웃 노드에 따라 클러스터링될 각각의 타겟 영역에 대응하는 중심 노드 간의 접속 확률을 결정하고; 각각의 중심 노드 간의 접속 확률에 기초하여 클러스터링될 각각의 타겟 영역을 클러스터링하도록 구성될 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 이미지 클러스터링 장치는 검색 모듈을 추가로 포함하며, 검색 모듈은: 사용자에 의해 입력된 이미지 검색을 위한 키워드를 수신하고; 클러스터링 결과에 기초하여 키워드와 연관된 카테고리를 결정하고; 결정된 카테고리의 이미지 중 키워드와 매칭되는 이미지를 검색하도록 구성될 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 이미지 클러스터링 장치는 추가로 라벨링 모듈을 포함하고, 라벨링 모듈은: 마킹(marking)될 복수의 태그를 획득하고; 클러스터링 결과에 기초하여 클러스터링된 각각의 카테고리의 이미지의 타겟 영역에 태그를 각각 마킹하도록 구성될 수 있다.
본 개시의 실시예의 가능한 구현 방식에서, 이미지 클러스터링 장치는 제2 클러스터링 모듈을 추가로 포함하고, 제2 클러스터링 모듈은: 클러스터링될 이미지의 새로운 타겟 영역을 획득하고; 클러스터링된 적어도 하나의 카테고리에서 사전 설정된 개수의 타겟 영역을 각각 획득하고; 새로운 클러스터링 결과를 획득하기 위해 그래프 컨벌루션 네트워크에 기초하여 클러스터링된 획득된 타겟 영역 및 클러스터링될 새로운 타겟 영역을 클러스터링하고; 새로운 클러스터링 결과 및 클러스터링된 타겟 영역에 대응하는 카테고리에 기초하여 클러스터링될 새로운 타겟 영역의 카테고리를 결정하도록 구성 될 수 있다.
상술한 이미지 클러스터링 장치에서, 본 개시는 클러스터링 중심을 결정하지 않고 그래프 컨벌루션 네트워크를 통해 모든 이미지의 타겟 영역을 클러스터링하여, 클러스터링 중심의 편차로 인한 전체 클러스터링 결과의 편차가 회피될 수 있다. 결과적으로, 클러스터링의 정확도가 효과적으로 향상될 수 있다.
또한, 노드 간 거리는 코사인 유사도를 사용하여 계산될 수 있다. 코사인 거리는 방향으로부터 특징 간 차이를 구분한다. 한 사람에 대한 다른 자세, 다른 조명 및 다른 순간에 대해, 얼굴 특징의 차이가 비교적 크지만, 여전히 동일한 사람을 의미한다. 값의 관점에서 특징의 절대 차이를 반영하는 유클리드 거리에 비해, 유클리드 거리를 사용하면, 이는 2명의 사람으로 클러스터링되게 할 것이다. 따라서, 본 개시에서 코사인 거리의 사용은 클러스터링의 정확도를 더욱 향상시킬 수 있다.
또한, 본 개시는 상이한 계층에 대한 그래프 컨벌루션 네트워크의 출력 결과를 융합하기 위해 그래프 컨벌루션 네트워크에서 샷-컷 메커니즘을 도입하며, 그래프 컨벌루션 네트워크의 백 계층에 가까울수록, 동일한 카테고리의 노드 간의 차이가 작아져서, 상이한 노드 간의 차이가 어느 정도 유지될 수 있으며, 상이한 노드를 동일한 카테고리로 클러스터링하는 것을 회피할 수 있으며, 클러스터링 정확도를 더욱 향상시킬 수 있다.
또한, 계층적 클러스터링이 원래 그래프 컨벌루션 네트워크의 적어도 하나의 계층 뒤에 도입되며, 계층적 클러스터링은 그래프 컨벌루션 네트워크의 임의의 계층에서 사용될 수 있으며, 그래프 컨벌루션 네트워크의 전달 프로세스 중에 동일한 카테고리에 속하는 노드를 융합할 수 있으며, 즉, 그래프 컨벌루션 네트워크 내의 노드에 대해 하나의 클러스터링 기능이 완성되고, 이에 의해 전체 클러스터링 작업의 정확도와 효율성을 향상시킬 수 있다.
또한, 클러스터링에 기초하여, 클러스터링될 새로운 타겟 영역이 획득되면, 각각의 클러스터링된 카테고리로부터 사전 설정된 수의 이미지가 획득될 수 있으며, 클러스터링될 새로운 타겟 영역의 카테고리를 판정하기 위하여 클러스터링된 이미지와 클러스터링될 새로운 타겟 영역에 따라 새로운 클러스터링 결과가 획득되며, 이는 제한된 컴퓨팅 자원을 갖는 모바일 폰과 같은 소형 디바이스에 적용될 수 있어 클러스터링 효율을 향상시키고 사용자가 클러스터링 결과를 신속하게 확인할 수 있게 하며, 이에 의해 사용자 경험이 향상될 수 있다.
본 개시의 실시예의 이미지 클러스터링 장치는 본 개시의 실시예에 의해 제공되는 이미지 클러스터링 방법을 실행할 수 있으며, 그 구현 원리는 유사하다. 본 개시의 각각의 실시예에서 이미지 클러스터링 장치의 모듈에 의해 실행되는 액션은 본 개시의 각각의 실시예에서 이미지 클러스터링 방법의 단계에 대응한다. 이미지 클러스터링 장치의 모듈에 대한 상세한 기능 설명에 대해, 선행 섹션에서 나타낸 대응하는 이미지 클러스터링 방법의 설명을 참조할 수 있으며, 여기서는 반복하지 않을 수 있다.
본 개시의 실시예에서 제공되는 장치에서, 복수의 모듈 중 적어도 하나의 모듈은 AI(인공 지능(Artificial Intelligence)) 모델을 통해 구현될 수 있다. AI와 연관된 기능은 비휘발성 메모리, 휘발성 메모리 및 프로세서를 통해 수행될 수 있다.
프로세서는 하나 이상의 프로세서를 포함할 수 있다. 이 때, 하나 이상의 프로세서는 (중앙 처리 장치(CPU), 어플리케이션 프로세서(AP) 등과 같은) 범용 프로세서, 또는 (그래픽 처리 장치(GPU), 시각 처리 장치(VPU)와 같은) 순수 그래픽 처리 장치 및/또는 (예를 들어, 신경 처리 장치(NPU))와 같은) AI 전용 프로세서일 수 있다.
하나 이상의 프로세서는 비휘발성 메모리 및 휘발성 메모리에 저장된 사전 정의된 동작 규칙 또는 인공 지능(AI) 모델에 따라 입력 데이터의 프로세싱을 제어한다. 훈련 또는 학습을 통해 사전 정의된 동작 규칙 또는 인공 지능 모델이 제공된다.
여기서, '학습에 의해 제공'된다는 것은 복수의 학습 데이터에 학습 알고리즘을 적용하여 사전 정의된 동작 규칙 또는 원하는 특징을 갖는 AI 모델을 획득하는 것을 지칭한다. 학습은 실시예에 따라 AI가 실행되는 장치 자체에서 수행될 수 있고 및/또는 별도의 서버/시스템에 의해 실현될 수 있다.
AI 모델은 복수의 신경망 계층으로 구성될 수 있다. 각각의 계층은 복수의 가중치를 가지며, 한 계층의 컴퓨테이션은 이전 계층의 컴퓨테이션 결과와 현재 계층의 복수의 가중치에 의해 수행된다. 신경망의 예는 컨벌루션 신경망(CNN: convolutional neural network), 심층 신경망(DNN: deep neural network), 순환 신경망(RNN: recurrent neural network), 제한된 볼츠만 머신(RBM: restricted Boltzmann machine), 심층 신념 네트워크(DBN: deep belief network), 양방향 순환 심층 신경망(BRDNN: bidirectional recurrent deep neural network), 생성적 적대 네트워크(GAN: generative adversarial network) 및 심층 Q 네트워크를 포함하지만 이에 한정되지 않는다.
학습 알고리즘은 복수의 학습 데이터를 사용하여 사전 결정된 타겟 디바이스(예를 들어, 로봇)를 훈련시켜 타겟 디바이스가 결정 또는 예측할 수 있도록 가능하게 하거나, 허용하거나 제어하는 방법이다. 학습 알고리즘의 예는 지도 학습, 비지도 학습, 반-지도 학습 또는 강화 학습을 포함하지만 이에 한정되지 않는다.
본 개시의 실시예에 의해 제공되는 이미지 클러스터링 장치는 기능적 모듈화의 관점에서 위에서 소개되었다. 다음으로, 본 개시의 실시예에 의해 제공되는 전자 디바이스가 하드웨어 구현의 관점에서 소개될 것이고, 전자 디바이스의 컴퓨팅 시스템이 동시에 소개될 것이다.
본 개시의 실시예에서 나타낸 방법과 동일한 원리에 기초하여, 본 개시의 실시예에서도 전자 디바이스가 제공된다. 전자 디바이스는 프로세서 및 메모리를 포함할 수 있지만 이에 한정되지 않으며, 메모리는 컴퓨터 동작 명령을 저장하기 위한 것이고, 프로세서는 컴퓨터 동작 명령을 호출하여 실시예에 나타낸 이미지 클러스터링 방법을 실행하기 위한 것이다. 종래 기술과 비교하여, 본 개시의 실시예에 의해 제공되는 이미지 클러스터링 방법은 클러스터링 중심의 편차로 인한 전체 클러스터링 결과의 편차를 회피할 수 있고, 클러스터링 결과의 정확도를 효과적으로 향상시킬 수 있다.
선택적 실시예에서, 전자 디바이스가 제공된다. 도 48은 본 개시의 실시예에 의해 제공되는 전자 디바이스의 개략적인 구조도이다.
도 48에 나타낸 바와 같이, 도 48에 나타낸 전자 디바이스(1000)는 프로세서(1001) 및 메모리(1003)를 포함한다. 여기서, 프로세서(1001) 및 메모리(1003)는 예를 들어, 버스(1002)를 통해 접속된다. 선택적으로, 전자 디바이스(1000)는 트랜시버(1004)를 추가로 포함할 수 있다. 실제 어플리케이션에서, 트랜시버(1004)는 하나로 제한되지 않고, 전자 디바이스(1000)의 구조는 본 개시의 실시예를 한정하지 않는다는 점에 유의해야 한다.
프로세서(1001)는 CPU(중앙 처리 장치), 범용 프로세서, DSP(데이터 신호 프로세서), ASIC(어플리케이션 특정 집적 회로) 또는 FPGA(필드 프로그래머블 게이트 어레이) 또는 기타 프로그래머블 논리 디바이스, 트랜지스터 논리 디바이스, 하드웨어 구성 요소 또는 이들의 임의의 조합일 수 있다. 이들은 본 개시의 개시와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈 및 회로를 구현하거나 실행할 수 있다. 프로세서(1001)는 또한 컴퓨팅 기능을 실현하는 조합, 예를 들어, 하나 이상의 마이크로 프로세서를 포함하는 조합, DSP와 마이크로프로세서의 조합 등일 수 있다.
버스(1002)는 상술한 구성 요소 간의 정보를 전송하기 위한 경로를 포함할 수 있다. 버스(1002)는 PCI(주변 구성 요소 인터커넥트) 버스 또는 EISA(확장된 산업 표준 아키텍처) 버스 등일 수 있다. 버스(1002)는 어드레스 버스, 데이터 버스, 제어 버스 등으로 나뉠 수 있다. 표현의 편의를 위해, 도 48에서는 단지 하나의 굵은 선이 사용되지만, 단지 하나의 버스 또는 하나의 버스 카테고리가 있다는 것을 의미하지는 않는다.
메모리(1003)는 ROM(판독 전용 메모리) 또는 정적 정보 및 명령을 저장할 수 있는 다른 카테고리의 정적 저장 디바이스, RAM(Random Access Memory, 랜덤 액세스 메모리) 또는 정보 및 명령을 저장할 수 있는 다른 카테고리의 동적 저장 디바이스일 수 있으며, 이는 또한 EEPROM(전기적 소거 가능 프로그래머블 판독 전용 메모리), CD-ROM(컴팩트 디스크 판독 전용 메모리) 또는 다른 광 디스크 저장소, 광 디스크 저장소(압축 광학 디스크, 레이저 디스크, 광 디스크, 디지털 버서타일 디스크, 블루-레이 디스크 등을 포함), 디스크 저장 매체 또는 다른 자기 저장 디바이스일 수 있거나, 데이터 구조의 형태로 명령 또는 원하는 프로그램 코드를 전달하거나 저장하는 데 사용되는 임의의 다른 매체일 수 있으며, 컴퓨터에서 액세스될 수 있으며, 이에 한정되지 않는다.
메모리(1003)는 본 개시의 해결책을 실행하기 위한 어플리케이션 프로그램 코드를 저장하도록 구성되고, 실행을 수행하도록 프로세서(1001)에 의해 제어된다. 프로세서(1001)는 메모리(1003)에 저장된 어플리케이션 프로그램 코드를 실행하여 상술한 방법 실시예 중 임의의 하나에 나타낸 컨텐츠를 구현하도록 구성된다.
특히, 본 개시에 따른, 프로세서(1001)는 클러스터링을 수행하기 위한 복수의 이미지를 획득할 수 있다. 복수의 이미지는 예로, 얼굴 사진을 포함할 수 있으나, 본 개시는 이에 한정되지 않는다.
복수의 이미지가 획득되면, 프로세서(1001)는 복수의 이미지 각각에 대응되는 복수의 타겟 영역들을 획득하고, 복수의 타겟 영역에 대응되는 복수의 특징 벡터들을 획득할 수 있다.
그리고, 프로세서(1001)는 복수의 특징 벡터들에 대응하는 복수의 중심 노드를 획득하고, 복수의 중심 노드 각각과 관련된 이웃 노드를 획득할 수 있다.
그리고, 프로세서(1001)는 복수의 중심 노드 및 이웃 노드를 바탕으로 서브 그래프를 획득할 수 있다. 구체적으로 프로세서(1001)는 복수의 특징 벡터 중 하나를 상기 중심 노드로 식별하고, 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들을 바탕으로 중심 노드의 이웃 노드를 획득하고, 중심 노드 및 이웃 노드에 따라 서브 그래프를 획득할 수 있다. 또한, 프로세서(1001)는 중심 노드에 대응되는 특징 벡터와 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들 사이의 코사인(cosine) 거리들을 각각 획득하고, 코사인 거리들에 기초하여 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들로부터 이웃 노드를 스크리닝(screening)함으로, 이웃 노드를 획득할 수 있다.
그리고, 프로세서(1001)는 그래프 컨벌루션 네트워크를 바탕으로 서브 그래프의 복수의 중심 노드와 복수의 중심 노드 각각의 이웃 노드 간의 접속 확률을 식별할 수 있다. 구체적으로, 프로세서(1001)는 그래프 컨벌루션 네트워크의 적어도 하나의 계층(layer)에 따라 서브 그래프의 노드 임베딩(embedding)을 획득하고, 노드 임베딩에 기초하여 서브 그래프의 중심 노드와 그 이웃 노드 간의 접속 확률을 획득할 수 있다. 일 실시 예로, 프로세서(1001)는 서브그래프에 대응하는 입력 특징을 획득하고, 특징 추출을 위해 그래프 컨벌루션 네트워크의 적어도 하나의 계층에 입력 특징을 입력하여 획득한 출력 결과를 상기 노드 임베딩으로서 사용함으로 노브 임베딩을 획득할 수 있다.
그리고, 프로세서(1001)는 식별된 접속 확률을 바탕으로, 타겟 영역들을 클러스터링할 수 있다. 구체적으로, 프로세서(1001)는 클러스터링될 적어도 하나의 타겟 영역들에 대해, 접속 확률에 따라 동일한 카테고리의 이웃 노드들의 세트를 획득하고, 동일한 카테고리의 이웃 노드들의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 이웃 노드들의 세트의 적어도 하나의 이웃 노드와 각각의 이웃 노드들의 접속 확률들에 따라 적어도 하나의 이웃 노드와 중심 노드의 접속 확률을 조정하고, 적어도 하나의 이웃 노드가 동일한 카테고리의 이웃 노드인지를 결정하기 위해 조정된 접속 확률에 기초하여 타겟 영역들을 클러스터링하고, 클러스터링될 각각의 타겟 영역들에 대응하는 동일한 카테고리의 이웃 노드들에 따라 클러스터링될 각각의 타겟 영역들을 클러스터링 할 수 있다.
본 개시의 일 실시 예로, 프로세서(1001)는 클러스터링될 적어도 하나의 타겟 영역에 대해, 중심 노드와의 접속 확률들이 사전 설정된 임계값 이상인 이웃 노드들 결정하고, 결정된 이웃 노드들을 동일한 카테고리의 이웃 노드들의 세트로서 형성함으로, 이웃 노드들의 세트를 획득할 수 있다.
본 개시의 일 실시 예로, 프로세서(1001)는 동일한 카테고리의 이웃 노드들의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 이웃 노드들의 세트의 적어도 하나의 이웃 노드와 각각의 이웃 노드들의 평균 접속 확률을 적어도 하나의 이웃 노드와 중심 노드의 접속 확률로서 결정할 수 있다. 본 개시의 일 실시 예로, 프로세서(1001)는 클러스터링될 각각의 타겟 영역들에 대응하는 동일한 카테고리의 이웃 노드들에 따라 클러스터링될 각각의 타겟 영역들에 대응하는 중심 노드들 간의 접속 확률들을 결정하고, 각각의 중심 노드들 간의 접속 확률들에 기초하여 클러스터링될 각각의 타겟 영역들을 클러스터링할 수 있다.
또한, 프로세서(1001)는 사용자에 의해 입력된 이미지 검색을 위한 키워드를 수신하고, 클러스터링 결과에 기초하여 키워드와 연관된 카테고리를 식별하고, 식별된 카테고리의 이미지들 중 키워드와 매칭되는 이미지들을 검색할 수 있다.
여기서, 전자 디바이스는 모바일 단말(예를 들어, 모바일 폰, 노트북 컴퓨터, 디지털 방송 수신기, PDA(퍼스널 디지털 어시스턴트), PAD(태블릿 컴퓨터), PMP(휴대용 멀티미디어 플레이어), (차량 내비게이션 단말과 같은) 차량 단말) 및 디지털 TV, 데스크탑 컴퓨터 등과 같은 고정 단말을 포함하지만, 이에 한정되지 않는다. 도 48에 나타낸 전자 디바이스는 단지 예일 뿐이며, 본 개시의 실시예의 기능 및 사용 범위에 어떠한 제한도 해서는 안된다.
도 49는 본 개시에 따른 전자 디바이스의 제어 방법을 설명하기 위한 흐름도이다. 본 개시에 따른 전자 디바이스(1000)는 클러스터링을 수행하기 위한 복수의 이미지를 획득할 수 있다(S4910). 복수의 이미지는 예로, 얼굴 사진을 포함할 수 있으나, 본 개시는 이에 한정되지 않는다.
복수의 이미지가 획득되면, 전자 디바이스(1000)는 복수의 이미지 각각에 대응되는 복수의 타겟 영역들을 획득하고, 복수의 타겟 영역에 대응되는 복수의 특징 벡터들을 획득할 수 있다(S4920).
그리고, 전자 디바이스(1000)는 복수의 특징 벡터들에 대응하는 복수의 중심 노드를 획득하고, 복수의 중심 노드 각각과 관련된 이웃 노드를 획득할 수 있다(S4930).
그리고, 전자 디바이스(1000)는 복수의 중심 노드 및 이웃 노드를 바탕으로 서브 그래프를 획득할 수 있다(S4940). 구체적으로 전자 디바이스(1000)는 복수의 특징 벡터 중 하나를 상기 중심 노드로 식별하고, 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들을 바탕으로 중심 노드의 이웃 노드를 획득하고, 중심 노드 및 이웃 노드에 따라 서브 그래프를 획득할 수 있다. 또한, 전자 디바이스(1000)는 중심 노드에 대응되는 특징 벡터와 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들 사이의 코사인(cosine) 거리들을 각각 획득하고, 코사인 거리들에 기초하여 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들로부터 이웃 노드를 스크리닝(screening)함으로, 이웃 노드를 획득할 수 있다.
그리고, 전자 디바이스(1000)는 그래프 컨벌루션 네트워크를 바탕으로 서브 그래프의 복수의 중심 노드와 복수의 중심 노드 각각의 이웃 노드 간의 접속 확률을 식별할 수 있다(S4950). 구체적으로, 전자 디바이스(1000)는 그래프 컨벌루션 네트워크의 적어도 하나의 계층(layer)에 따라 서브 그래프의 노드 임베딩(embedding)을 획득하고, 노드 임베딩에 기초하여 서브 그래프의 중심 노드와 그 이웃 노드 간의 접속 확률을 획득할 수 있다. 일 실시 예로, 전자 디바이스(1000)는 서브그래프에 대응하는 입력 특징을 획득하고, 특징 추출을 위해 그래프 컨벌루션 네트워크의 적어도 하나의 계층에 입력 특징을 입력하여 획득한 출력 결과를 상기 노드 임베딩으로서 사용함으로 노브 임베딩을 획득할 수 있다.
그리고, 전자 디바이스(1000)는 식별된 접속 확률을 바탕으로, 타겟 영역들을 클러스터링할 수 있다(S4960). 구체적으로, 전자 디바이스(1000)는 클러스터링될 적어도 하나의 타겟 영역들에 대해, 접속 확률에 따라 동일한 카테고리의 이웃 노드들의 세트를 획득하고, 동일한 카테고리의 이웃 노드들의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 이웃 노드들의 세트의 적어도 하나의 이웃 노드와 각각의 이웃 노드들의 접속 확률들에 따라 적어도 하나의 이웃 노드와 중심 노드의 접속 확률을 조정하고, 적어도 하나의 이웃 노드가 동일한 카테고리의 이웃 노드인지를 결정하기 위해 조정된 접속 확률에 기초하여 타겟 영역들을 클러스터링하고, 클러스터링될 각각의 타겟 영역들에 대응하는 동일한 카테고리의 이웃 노드들에 따라 클러스터링될 각각의 타겟 영역들을 클러스터링 할 수 있다.
본 개시의 일 실시 예로, 전자 디바이스(1000)는 클러스터링될 적어도 하나의 타겟 영역에 대해, 중심 노드와의 접속 확률들이 사전 설정된 임계값 이상인 이웃 노드들 결정하고, 결정된 이웃 노드들을 동일한 카테고리의 이웃 노드들의 세트로서 형성함으로, 이웃 노드들의 세트를 획득할 수 있다.
본 개시의 일 실시 예로, 전자 디바이스(1000)는 동일한 카테고리의 이웃 노드들의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 이웃 노드들의 세트의 적어도 하나의 이웃 노드와 각각의 이웃 노드들의 평균 접속 확률을 적어도 하나의 이웃 노드와 중심 노드의 접속 확률로서 결정할 수 있다. 본 개시의 일 실시 예로, 전자 디바이스(1000)는 클러스터링될 각각의 타겟 영역들에 대응하는 동일한 카테고리의 이웃 노드들에 따라 클러스터링될 각각의 타겟 영역들에 대응하는 중심 노드들 간의 접속 확률들을 결정하고, 각각의 중심 노드들 간의 접속 확률들에 기초하여 클러스터링될 각각의 타겟 영역들을 클러스터링할 수 있다.
또한, 전자 디바이스(1000)는 사용자에 의해 입력된 이미지 검색을 위한 키워드를 수신하고, 클러스터링 결과에 기초하여 키워드와 연관된 카테고리를 식별하고, 식별된 카테고리의 이미지들 중 키워드와 매칭되는 이미지들을 검색할 수 있다.
본 개시의 실시예는 컴퓨터 판독 가능 저장 매체에 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 저장 매체를 제공하며, 컴퓨터 상에서 실행되는 경우, 컴퓨터는 상술한 방법 실시예에서 대응하는 컨텐츠를 실행할 수 있다. 종래 기술과 비교하여, 본 개시의 실시예에 의해 제공되는 이미지 클러스터링 방법은 클러스터링 중심의 편차로 인한 전체 클러스터링 결과의 편차를 회피할 수 있고, 클러스터링 결과의 정확도를 효과적으로 향상시킬 수 있다.
도면의 흐름도에서 다양한 단계가 화살표로 표시된 대로 순차적으로 표시되지만, 이러한 단계가 반드시 화살표로 표시된 순서대로 실행될 필요가 없다는 것이 이해되어야 한다. 본원에 명시적으로 언급하지 않는 한, 이러한 단계의 실행은 엄격하게 제한되지 않으며, 다른 순서로 수행될 수 있다. 또한, 도면의 흐름도에서 단계의 적어도 일부는 복수의 하위-단계 또는 다중 스테이지를 포함할 수 있다. 이러한 하위-단계 또는 스테이지는 반드시 동시에 수행되는 것은 아니며, 다른 시간에 수행될 수 있으며, 이는 반드시 순차적으로 수행되지는 않지만, 차례로 수행될 수 있거나 다른 단계 또는 하위-단계 또는 다른 단계의 스테이지의 적어도 일부와 교대로 수행될 수 있다.
본 개시에서 상술한 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 신호 매체 또는 컴퓨터 판독 가능 저장 매체, 또는 이들 둘의 임의의 조합일 수 있다는 점에 유의해야 한다. 컴퓨터 판독 가능 저장 매체는 예를 들어, 전기적, 자기적, 광학적, 전자기적, 적외선 또는 반도체 시스템, 장치 또는 디바이스, 또는 이들의 임의의 조합일 수 있지만 이에 한정되지는 않는다. 컴퓨터 판독 가능 저장 매체의 보다 구체적인 예는, 하나 이상의 와이어를 갖는 전기 접속, 휴대용 컴퓨터 디스크, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 가능 프로그래머블 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 컴팩트 디스크 판독 전용 메모리(CD-ROM), 광 저장 디바이스, 자기 저장 디바이스 또는 상술한 것의 임의의 적절한 조합을 포함할 수 있지만, 이에 한정되지 않는다. 본 개시에서, 컴퓨터 판독 가능 저장 매체는 프로그램을 포함하거나 저장하는 임의의 유형의 매체일 수 있으며, 프로그램은 명령 실행 시스템, 장치 또는 디바이스에 의해 또는 이와 조합하여 사용될 수 있다. 본 개시에서, 컴퓨터 판독 가능 신호 매체는 기저 대역에서 또는 반송파의 일부로서 전파되는 데이터 신호를 포함할 수 있으며, 컴퓨터 판독 가능 프로그램 코드가 내부에 포함된다. 이러한 전파된 데이터 신호는 전자기 신호, 광 신호, 또는 이들의 임의의 적절한 조합을 포함하지만 이에 한정되지 않는 많은 형태를 취할 수 있다. 컴퓨터 판독 가능 신호 매체는 또한 컴퓨터 판독 가능 저장 매체 이외의 임의의 컴퓨터 판독 가능 매체일 수 있다. 컴퓨터 판독 가능 신호 매체는 명령 실행 시스템, 장치 또는 디바이스에 의해 또는 이와 결합하여 사용하기 위해 프로그램을 전송, 전파 또는 송신할 수 있다. 컴퓨터 판독 가능 매체에 포함된 프로그램 코드는 유선, 광 케이블, RF(무선 주파수) 등 또는 이들의 임의의 적절한 조합을 포함하지만 이에 한정되지 않는 임의의 적절한 매체에 의해 송신될 수 있다.
상술한 컴퓨터 판독 가능 매체는 상술한 전자 디바이스에 포함될 수 있거나; 전자 디바이스에 조립되지 않고 단독으로 존재할 수 있다.
상술한 컴퓨터 판독 가능 매체는 하나 이상의 프로그램을 운반하고, 상술한 하나 이상의 프로그램이 전자 디바이스에 의해 실행될 때, 전자 디바이스는 상술한 실시예에 나타낸 방법을 실행하게 된다.
본 개시의 동작을 수행하기 위한 컴퓨터 프로그램 코드는 하나 이상의 프로그래밍 언어 또는 이들의 조합으로 작성될 수 있다. 위에서 언급한 프로그래밍 언어에는 Java, Smalltalk, C++와 같은 객체-지향 프로그래밍 언어를 포함하며, 또한 "C" 언어 또는 유사한 프로그래밍 언어와 같은 통상의 순차적 프로그래밍 언어도 포함한다. 프로그램 코드는 전체적으로 사용자의 컴퓨터에서, 부분적으로 사용자의 컴퓨터에서 실행될 수 있으며, 독립적인 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터에서 실행될 수 있으며, 부분적으로 원격 컴퓨터에서 실행되거나, 전체적으로 원격 컴퓨터 또는 서버에서 실행될 수 있다. 원격 컴퓨터의 경우, 원격 컴퓨터는 근거리 네트워크(LAN: Local Area Network) 또는 광역 네트워크(WAN: Wide Area Network)를 포함한 임의의 종류의 네트워크를 통해 사용자 컴퓨터에 접속될 수 있거나, (예를 들어, 인터넷 접속을 전달하는 인터넷 서비스 공급자를 사용하여) 외부 컴퓨터에 접속될 수 있다.
첨부된 도면의 흐름도 및 블록도는 본 개시의 다양한 실시예에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현 아키텍처, 기능 및 동작을 나타낸다. 이와 관련하여, 흐름도 또는 블록도의 각각의 블록은 모듈, 프로그램 세그먼트 또는 코드의 일부를 나타낼 수 있으며, 모듈, 프로그램 세그먼트 또는 코드의 일부는 특정된 논리 기능을 실현하기 위한 하나 이상의 실행 가능한 명령을 포함한다. 또한, 일부 대안적인 구현에서, 블록에 마킹된 기능은 또한 도면에 마킹된 순서와 다른 순서로 발생할 수도 있다는 점에 유의해야 한다. 예를 들어, 연속적으로 표시된 2개의 블록은 실제로는 본질적으로 병렬로 실행될 수 있거나, 때로는 관련 기능에 따라 역순으로 실행될 수 있다. 또한, 블록도 및/또는 흐름도의 각각의 블록과 블록도 및/또는 흐름도의 블록의 조합은 특정된 기능 또는 동작을 수행하는 전용 하드웨어-기반 시스템에 의해 구현될 수 있거나, 전용 하드웨어와 컴퓨터 명령의 조합에 의해 실현될 수 있다는 점에 유의해야 한다.
본 개시에서 설명된 실시예에 포함된 모듈은 소프트웨어 또는 하드웨어로 구현될 수 있다. 여기서, 모듈의 이름은 특정 상황 하에서 모듈 자체에 대한 제한을 구성하지 않는다. 예를 들어, 제1 클러스터링 모듈은 또한 "이미지를 클러스터링하기 위한 모듈"로서 설명될 수 있다.
상술한 설명은 본 개시의 바람직한 실시예 및 적용된 기술 원리에 대한 설명일 뿐이다. 본 기술 분야의 통상의 기술자는 본 개시에 포함된 개시의 범위가 상술한 기술적 특징의 특정 조합에 의해 형성된 기술적 해결책에 한정되지 않고, 또한 상술한 개시된 개념으로부터 벗어나지 않고 상술한 기술적 특징 또는 그의 동등한 특징의 임의의 조합에 의해 형성된 다른 기술적 해결책을 포함해야 한다는 것을 이해해야 한다. 예를 들어, 상술한 특징과 본 개시에 개시된 유사한 기능을 갖는 기술적 특징(이에 한정되지 않음)은 상호 대체되어 기술적 해결책을 형성한다.
1000: 전자 디바이스 1001: 프로세서
1002: 버스 1003: 메모리
1004: 트랜시버

Claims (20)

  1. 전자 디바이스의 제어 방법에 있어서,
    클러스터링을 수행하기 위한 복수의 이미지를 획득하는 단계;
    상기 복수의 이미지 각각에 대응되는 복수의 타겟 영역을 획득하고, 상기 복수의 타겟 영역에 대응되는 복수의 특징 벡터들을 획득하는 단계;
    상기 복수의 특징 벡터에 대응되는 복수의 중심 노드를 획득하고, 상기 복수의 중심 노드 각각과 관련된 이웃 노드를 획득하는 단계;
    상기 복수의 중심 노드 및 상기 이웃 노드를 바탕으로 서브 그래프를 획득하는 단계;
    그래프 컨벌루션 네트워크를 바탕으로 상기 서브 그래프의 복수의 중심 노드와 상기 복수의 중심 노드 각각의 이웃 노드 간의 접속 확률을 식별하는 단계; 및
    상기 식별된 접속 확률을 바탕으로, 상기 복수의 타겟 영역을 클러스터링하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 서브 그래프를 획득하는 단계는,
    상기 복수의 특징 벡터 중 하나를 상기 중심 노드로 식별하고, 상기 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들을 바탕으로 상기 중심 노드의 이웃 노드를 획득하는 단계; 및
    상기 중심 노드 및 상기 이웃 노드에 따라 상기 서브 그래프를 구성하는 단계를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 이웃 노드를 획득하는 단계는,
    상기 중심 노드에 대응되는 특징 벡터와 상기 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들 사이의 코사인(cosine) 거리들을 각각 획득하는 단계; 및
    상기 코사인 거리들에 기초하여 상기 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들로부터 상기 이웃 노드를 스크리닝(screening)하는 단계를 포함하는, 방법.
  4. 제1항에 있어서,
    상기 접속 확률을 획득하는 단계는,
    상기 그래프 컨벌루션 네트워크의 적어도 하나의 계층(layer)에 따라 상기 서브 그래프의 노드 임베딩(embedding)을 획득하는 단계; 및
    상기 노드 임베딩에 기초하여 상기 서브 그래프의 상기 중심 노드와 그 이웃 노드 간의 접속 확률을 획득하는 단계를 포함하는, 방법.
  5. 제4항에 있어서,
    상기 노드 임베딩을 획득하는 단계는,
    상기 서브 그래프에 대응하는 입력 특징을 획득하는 단계; 및
    특징 추출을 위해 상기 그래프 컨벌루션 네트워크의 상기 적어도 하나의 계층에 상기 입력 특징을 입력하여 획득한 출력 결과를 상기 노드 임베딩으로서 사용하는 단계를 포함하는, 방법.
  6. 제1항에 있어서,
    상기 식별된 접속 확률에 따라 상기 복수의 타겟 영역을 클러스터링하는 단계는,
    클러스터링될 적어도 하나의 타겟 영역들에 대해, 상기 접속 확률에 따라 동일한 카테고리의 이웃 노드들의 세트를 획득하는 단계;
    동일한 카테고리의 상기 이웃 노드들의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 상기 이웃 노드들의 세트의 상기 적어도 하나의 이웃 노드와 각각의 이웃 노드들의 접속 확률들에 따라 상기 적어도 하나의 이웃 노드와 상기 중심 노드의 접속 확률을 조정하는 단계;
    상기 적어도 하나의 이웃 노드가 동일한 카테고리의 이웃 노드인지를 결정하기 위해 상기 조정된 접속 확률에 기초하여 상기 복수의 타겟 영역을 클러스터링하는 단계; 및
    클러스터링될 각각의 타겟 영역에 대응하는 동일한 카테고리의 이웃 노드들에 따라 클러스터링될 각각의 타겟 영역을 클러스터링하는 단계를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 이웃 노드들의 세트를 획득하는 단계는,
    클러스터링될 상기 적어도 하나의 타겟 영역에 대해, 상기 중심 노드와의 접속 확률들이 사전 설정된 임계값 이상인 이웃 노드들 결정하고, 상기 결정된 이웃 노드들을 상기 동일한 카테고리의 이웃 노드들의 세트로서 형성하는 단계를 포함하는, 방법.
  8. 제6항에 있어서,
    상기 접속 확률을 조정하는 단계는,
    동일한 카테고리의 상기 이웃 노드들의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 상기 이웃 노드들의 세트의 상기 적어도 하나의 이웃 노드와 각각의 이웃 노드들의 평균 접속 확률을 상기 적어도 하나의 이웃 노드와 상기 중심 노드의 접속 확률로서 결정하는 단계를 포함하는, 방법.
  9. 제6항에 있어서,
    상기 각각의 타겟 영역을 클러스터링하는 단계는,
    클러스터링될 각각의 타겟 영역에 대응하는 동일한 카테고리의 이웃 노드들에 따라 클러스터링될 각각의 타겟 영역에 대응하는 중심 노드들 간의 접속 확률들을 결정하는 단계; 및
    각각의 중심 노드들 간의 접속 확률들에 기초하여 클러스터링될 각각의 타겟 영역을 클러스터링하는 단계를 포함하는, 방법.
  10. 제1항에 있어서,
    사용자에 의해 입력된 이미지 검색을 위한 키워드를 수신하는 단계;
    상기 클러스터링 결과에 기초하여 상기 키워드와 연관된 카테고리를 식별하는 단계; 및
    상기 식별된 카테고리의 이미지들 중 상기 키워드와 매칭되는 이미지들을 검색하는 단계를 더 포함하는, 방법.
  11. 전자 디바이스에 있어서,
    적어도 하나의 명령어를 저장하는 메모리;
    상기 메모리와 연결되어 상기 전자 디바이스를 제어하는 프로세서;를 포함하며,
    상기 프로세서는, 상기 적어도 하나의 명령어를 실행함으로써,
    클러스터링을 수행하기 위한 복수의 이미지를 획득하고,
    상기 복수의 이미지 각각에 대응되는 복수의 타겟 영역을 획득하고, 상기 복수의 타겟 영역에 대응되는 복수의 특징 벡터들을 획득하고,
    상기 복수의 특징 벡터에 대응되는 복수의 중심 노드를 획득하고, 상기 복수의 중심 노드 각각과 관련된 이웃 노드를 획득하고,
    상기 복수의 중심 노드 및 상기 이웃 노드를 바탕으로 서브 그래프를 획득하고,
    그래프 컨벌루션 네트워크를 바탕으로 상기 서브 그래프의 복수의 중심 노드와 상기 복수의 중심 노드 각각의 이웃 노드 간의 접속 확률을 식별하고,
    상기 식별된 접속 확률을 바탕으로, 상기 복수의 타겟 영역을 클러스터링하는 전자 디바이스.
  12. 제11항에 있어서,
    상기 프로세서는,
    상기 복수의 특징 벡터 중 하나를 상기 중심 노드로 식별하고, 상기 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들을 바탕으로 상기 중심 노드의 이웃 노드를 획득하고,
    상기 중심 노드 및 상기 이웃 노드에 따라 상기 서브 그래프를 구성하는 전자 디바이스.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 중심 노드에 대응되는 특징 벡터와 상기 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들 사이의 코사인(cosine) 거리들을 각각 획득하고,
    상기 코사인 거리들에 기초하여 상기 중심 노드에 대응되는 특징 벡터와 상이한 특징 벡터들로부터 상기 이웃 노드를 스크리닝(screening)하는 전자 디바이스.
  14. 제11항에 있어서,
    상기 프로세서는,
    상기 그래프 컨벌루션 네트워크의 적어도 하나의 계층(layer)에 따라 상기 서브 그래프의 노드 임베딩(embedding)을 획득하고,
    상기 노드 임베딩에 기초하여 상기 서브 그래프의 상기 중심 노드와 그 이웃 노드 간의 접속 확률을 획득하는 전자 디바이스.
  15. 제14항에 있어서,
    상기 프로세서는,
    상기 서브 그래프에 대응하는 입력 특징을 획득하고,
    특징 추출을 위해 상기 그래프 컨벌루션 네트워크의 상기 적어도 하나의 계층에 상기 입력 특징을 입력하여 획득한 출력 결과를 상기 노드 임베딩으로서 사용하는 전자 디바이스.
  16. 제11항에 있어서,
    상기 프로세서는,
    클러스터링될 적어도 하나의 타겟 영역에 대해, 상기 접속 확률에 따라 동일한 카테고리의 이웃 노드들의 세트를 획득하고,
    동일한 카테고리의 상기 이웃 노드들의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 상기 이웃 노드들의 세트의 상기 적어도 하나의 이웃 노드와 각각의 이웃 노드들의 접속 확률들에 따라 상기 적어도 하나의 이웃 노드와 상기 중심 노드의 접속 확률을 조정하고,
    상기 적어도 하나의 이웃 노드가 동일한 카테고리의 이웃 노드인지를 결정하기 위해 상기 조정된 접속 확률에 기초하여 상기 타겟 영역을 클러스터링하고,
    클러스터링될 각각의 타겟 영역에 대응하는 동일한 카테고리의 이웃 노드들에 따라 클러스터링될 각각의 타겟 영역을 클러스터링하는 전자 디바이스.
  17. 제16항에 있어서,
    상기 프로세서는,
    클러스터링될 상기 적어도 하나의 타겟 영역에 대해, 상기 중심 노드와의 접속 확률들이 사전 설정된 임계값 이상인 이웃 노드들 결정하고, 상기 결정된 이웃 노드들을 상기 동일한 카테고리의 이웃 노드들의 세트로서 형성하는 전자 디바이스.
  18. 제16항에 있어서,
    상기 프로세서는,
    동일한 카테고리의 상기 이웃 노드들의 세트의 적어도 하나의 이웃 노드에 대해, 동일한 카테고리의 상기 이웃 노드들의 세트의 상기 적어도 하나의 이웃 노드와 각각의 이웃 노드들의 평균 접속 확률을 상기 적어도 하나의 이웃 노드와 상기 중심 노드의 접속 확률로서 결정하는 전자 디바이스.
  19. 제16항에 있어서,
    상기 프로세서는,
    클러스터링될 각각의 타겟 영역에 대응하는 동일한 카테고리의 이웃 노드들에 따라 클러스터링될 각각의 타겟 영역에 대응하는 중심 노드들 간의 접속 확률들을 결정하고,
    각각의 중심 노드들 간의 접속 확률들에 기초하여 클러스터링될 각각의 타겟 영역을 클러스터링하는 전자 디바이스.
  20. 제11항에 있어서,
    상기 프로세서는,
    사용자에 의해 입력된 이미지 검색을 위한 키워드를 수신하고,
    상기 클러스터링 결과에 기초하여 상기 키워드와 연관된 카테고리를 식별하고,
    상기 식별된 카테고리의 이미지들 중 상기 키워드와 매칭되는 이미지들을 검색하는 전자 디바이스.
KR1020200149577A 2020-02-11 2020-11-10 전자 디바이스 및 이의 제어 방법 KR20210102039A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/171,117 US11816149B2 (en) 2020-02-11 2021-02-09 Electronic device and control method thereof
PCT/KR2021/001837 WO2021162481A1 (en) 2020-02-11 2021-02-10 Electronic device and control method thereof

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202010087492.8 2020-02-11
CN202010087492 2020-02-11
CN202010726065.X 2020-07-24
CN202010726065 2020-07-24

Publications (1)

Publication Number Publication Date
KR20210102039A true KR20210102039A (ko) 2021-08-19

Family

ID=77180614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200149577A KR20210102039A (ko) 2020-02-11 2020-11-10 전자 디바이스 및 이의 제어 방법

Country Status (2)

Country Link
KR (1) KR20210102039A (ko)
CN (1) CN113255714A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117153260A (zh) * 2023-09-18 2023-12-01 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 基于对比学习的空间转录组数据聚类方法、装置及介质

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116017562A (zh) * 2021-10-21 2023-04-25 华为技术有限公司 数据重传方法及相关产品
CN113689431B (zh) * 2021-10-27 2022-02-11 常州微亿智造科技有限公司 工业产品外观缺陷检测方法和装置
CN114078277A (zh) * 2022-01-19 2022-02-22 深圳前海中电慧安科技有限公司 一人一档的人脸聚类方法、装置、计算机设备及存储介质
CN114637873B (zh) * 2022-03-30 2022-12-23 徐州大工电子科技有限公司 基于图像相似性的门窗智能推荐方法及系统
CN114462558A (zh) * 2022-04-13 2022-05-10 南昌工程学院 一种数据增广的监督学习图像缺陷分类方法与系统
CN116935083B (zh) * 2023-09-12 2023-12-12 深圳须弥云图空间科技有限公司 一种图像聚类方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117153260A (zh) * 2023-09-18 2023-12-01 哈尔滨工业大学(深圳)(哈尔滨工业大学深圳科技创新研究院) 基于对比学习的空间转录组数据聚类方法、装置及介质

Also Published As

Publication number Publication date
CN113255714A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
KR20210102039A (ko) 전자 디바이스 및 이의 제어 방법
US11816149B2 (en) Electronic device and control method thereof
WO2020073507A1 (zh) 一种文本分类方法及终端
CN112199375A (zh) 跨模态的数据处理方法、装置、存储介质以及电子装置
JP5282658B2 (ja) 画像学習、自動注釈、検索方法及び装置
Zhao et al. Hi-Fi: Hierarchical feature integration for skeleton detection
CN114389966B (zh) 基于图神经网络和流时空关联的网络流量识别方法和系统
CN112215837B (zh) 多属性图像语义分析方法和装置
CN106503656A (zh) 一种图像分类方法、装置和计算设备
CN110188210B (zh) 一种基于图正则化与模态独立的跨模态数据检索方法及系统
CN110751027B (zh) 一种基于深度多示例学习的行人重识别方法
CN113886571A (zh) 实体识别方法、装置、电子设备及计算机可读存储介质
CN112000763B (zh) 兴趣点竞争关系确定方法、装置、设备和介质
WO2021169301A1 (zh) 一种选取样本图像的方法、装置、存储介质和服务器
WO2021169453A1 (zh) 用于文本处理的方法和装置
CN112232300A (zh) 全局遮挡自适应的行人训练/识别方法、系统、设备及介质
CN113111657A (zh) 一种跨语言知识图谱对齐与融合方法、装置及存储介质
CN115858848A (zh) 图文互检方法及装置、训练方法及装置、服务器、介质
CN114549845A (zh) 一种基于特征融合的Logo图像检测方法及系统
CN113821657A (zh) 基于人工智能的图像处理模型训练方法及图像处理方法
CN113221523A (zh) 处理表格的方法、计算设备和计算机可读存储介质
CN116796288A (zh) 一种面向工业文档的多模态信息提炼方法和系统
CN116883740A (zh) 相似图片识别方法、装置、电子设备和存储介质
CN115410185A (zh) 一种多模态数据中特定人名及单位名属性的提取方法
CN114610922A (zh) 图像处理方法及装置、存储介质及电子设备

Legal Events

Date Code Title Description
A201 Request for examination