KR20200071838A - 특징 벡터를 이용한 얼굴 검색이 가능한 얼굴 인식 방법 및 장치 - Google Patents
특징 벡터를 이용한 얼굴 검색이 가능한 얼굴 인식 방법 및 장치 Download PDFInfo
- Publication number
- KR20200071838A KR20200071838A KR1020180153917A KR20180153917A KR20200071838A KR 20200071838 A KR20200071838 A KR 20200071838A KR 1020180153917 A KR1020180153917 A KR 1020180153917A KR 20180153917 A KR20180153917 A KR 20180153917A KR 20200071838 A KR20200071838 A KR 20200071838A
- Authority
- KR
- South Korea
- Prior art keywords
- feature vector
- image
- vector
- face
- similarity
- Prior art date
Links
- 239000013598 vector Substances 0.000 title claims abstract description 371
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000013139 quantization Methods 0.000 claims description 44
- 238000013507 mapping Methods 0.000 claims description 36
- 238000004364 calculation method Methods 0.000 claims description 35
- 238000009826 distribution Methods 0.000 claims description 8
- 238000013136 deep learning model Methods 0.000 claims description 7
- 230000011218 segmentation Effects 0.000 claims description 4
- 230000001815 facial effect Effects 0.000 claims description 2
- 238000013135 deep learning Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/168—Feature extraction; Face representation
- G06V40/171—Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
-
- G06K9/00268—
-
- G06K9/00288—
-
- G06K9/38—
-
- G06K9/481—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/46—Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
- G06V10/469—Contour-based spatial representations, e.g. vector-coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/50—Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/7715—Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/168—Feature extraction; Face representation
- G06V40/169—Holistic features and representations, i.e. based on the facial image taken as a whole
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/172—Classification, e.g. identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
- G06T2207/30201—Face
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
Abstract
얼굴 인식 방법 및 장치가 제공된다. 얼굴 인식 장치가, 입력되는 얼굴 이미지를 복수의 영역으로 분할하고, 상기 입력된 얼굴 이미지의 영역별로 실수값으로 이루어지는 특징 벡터를 생성하고, 생성된 영역별 특징 벡터들을 이용하여 이미지 특징 벡터를 생성한다. 또한, 이미지 특징 벡터를 이용하여, 입력되는 얼굴 이미지가 누구의 얼굴 이미지인지를 나타내는지를 찾는 검색을 수행한다.
Description
본 발명은 얼굴 인식에 관한 것으로, 이미지를 처리하여 얼굴 인식 및 얼굴 검색을 수행하는 방법 및 장치에 관한 것이다.
최근 기계 학습의 한 방법인 심층 학습(deep learning, 이하, 딥러닝)의 기술로 인해 얼굴 인식 성능이 비약적으로 향상되었으며, 딥러닝을 이용한 얼굴 인식 기술이 모바일 단말 잠금 기능, 출입 제어 등 여러 분야에서 활용되고 있다. 딥러닝을 이용한 얼굴 인식 기술은 주로 얼굴 인증에 활용되고 있지만, 대용량 데이터베이스에서 얼굴 소유자를 검색하는 분야에서도 연구되고 있다.
얼굴 이미지는 카메라의 종류, 시간, 배경, 얼굴 각도 등 여러 요소에 영향을 받는다. 또한, 얼굴의 다양한 표정과 안경, 선글라스, 귀걸이 등 여러 가지 장신구가 얼굴 인식에 영향을 미친다. 이런 다양한 요소는 얼굴 인식을 위한 얼굴 인증 및 검색을 어렵게 한다.
최근 얼굴 인식 방법은 입력 얼굴 이미지에서 특징 벡터를 추출하고 등록되어 있는 얼굴 이미지의 특징 벡터와 비교하여 유사도를 계산하고, 이러한 유사도를 토대로 얼굴 인식을 수행한다.
그러나 얼굴 인식에 있어서 위와 같은 얼굴 인증 및 검색을 어렵게 하는 얼굴 이미지의 다양성으로 인하여, 여전히 얼굴 인식 및 얼굴 검색이 정확하게 이루어지지 않는 어려움이 있다.
관련 선행 문헌으로는 대한민국 특허 출원 공개 번호 제2004-0034342호에 기재된 "얼굴 인식 및 검색용 특징벡터 추출방법 및 장치"가 있다.
본 발명이 해결하고자 하는 기술적 과제는, 얼굴 이미지의 일부가 장신구 등의 물체로 인하여 가려진 상황에서도 얼굴을 인식할 수 있는 방법 및 장치를 제공하는 것이다.
또한, 본 발명이 해결하고자 하는 기술적 과제는 얼굴 인식을 위해 대용량 얼굴 데이터베이스에서 검색 시간을 감소시키면서 효율적으로 얼굴을 검색할 수 있는 방법 및 장치를 제공하는 것이다.
본 발명의 특징에 따른 방법은 얼굴 인식을 수행하는 방법으로서, 얼굴 인식 장치가, 입력되는 얼굴 이미지를 복수의 영역으로 분할하는 단계; 및 상기 얼굴 인식 장치가, 상기 입력된 얼굴 이미지의 영역별로 실수값으로 이루어지는 특징 벡터를 생성하고, 생성된 영역별 특징 벡터들을 이용하여 이미지 특징 벡터를 생성하는 단계를 포함한다.
일 실시 예에서, 상기 이미지 특징 벡터를 생성하는 단계는, 상기 얼굴 이미지의 분할된 복수의 영역 각각에 대응하는 영역 이미지를 입력으로 하여 해당 영역 이미지에 대한 특징 벡터를 생성하는 복수의 분할 모델들과, 상기 분할 모델들의 출력을 입력으로 하여 학습을 수행하여 얼굴 이미지에 대응하는 혼합 특징 벡터를 출력하는 연결 모델을 포함하는 딥러닝 모델을 이용하여 상기 이미지 특징 벡터를 생성할 수 있으며, 상기 이미지 특징 벡터는 상기 분할된 영역별 이미지에 대한 특징 벡터들과 상기 혼합 특징 벡터를 포함할 수 있다.
일 실시 예에서, 상기 방법은, 상기 얼굴 인식 장치가, 상기 이미지 특징 벡터를 양자화 처리하여 비트열로 이루어지는 양자화 특징 벡터를 생성하는 단계; 상기 얼굴 인식 장치가, 상기 양자화 특징 벡터를 이용하여 데이터베이스를 검색하여 후보군을 검색하는 단계; 및 상기 얼굴 인식 장치가, 상기 검색된 후보군에 포함된 특징 벡터와 상기 이미지 특징 벡터를 이용하여, 상기 입력된 얼굴 이미지가 누구의 얼굴 이미지인지를 나타내는 클래스를 찾는 상세 검색을 수행하는 단계를 더 포함할 수 있다.
상기 후보군 검색 및 상기 상세 검색시, 상기 입력된 얼굴 이미지에 해당하는 양자화 특징 벡터 또는 이미지 특징 벡터와, 상기 데이터베이스에 저장된 특징 벡터들 사이의 유사도 계산을 토대로 검색을 수행할 수 있으며, 상기 유사도 계산은 상기 영역별로 수행될 수 있다.
일 실 시예에서, 상기 양자화 특징 벡터 또는 이미지 특징 벡터와, 상기 데이터베이스에 저장된 특징 벡터들 사이의 유사도 계산시, 각 영역별로 특징 벡터간의 유사도를 계산하고 계산된 값에 선택적으로 부여되는 가중치를 이용하여 영역별 유사도를 획득하고, 각 영역별 유사도를 모두 합하여 최종 유사도를 획득하며, 각 영역에 대하여 가려짐 정도에 따라 가중치가 선택적으로 부여될 수 있다.
일 실시 예에서, 상기 후보군을 검색하는 단계는, 복수의 얼굴 이미지들이 양자화 특징 벡터를 토대로 그룹화된 군집 매핑 테이블로부터 상기 입력된 얼굴 이미지의 양자화 특징 벡터와 가장 높은 유사도를 가지는 그룹을 후보군으로 선택하는 단계를 포함할 수 있다.
일 실시 예에서, 상기 군집 매핑 테이블은 그룹별로 부여되는 대표 벡터 그리고, 상기 대표 벡터에 매핑하여 해당 그룹에 속하는 얼굴 이미지들의 일련 번호를 나타내는 소속 벡터를 포함할 수 있으며, 상기 대표 벡터는 상기 복수의 얼굴 이미지들의 양자화 특징 벡터들 중에서 하나일 수 있다. 상기 후보군으로 선택하는 단계는, 상기 그룹별 대표 벡터와 상기 입력된 얼굴 이미지의 양자화 특징 벡터 사이의 유사도 계산을 각각 수행하고, 각 대표 벡터별 유사도 계산 결과를 토대로 가장 큰 유사도를 가지는 대표 벡터를 상기 후보군으로 선택할 수 있다.
일 실시 예에서, 상기 상세 검색을 수행하는 단계는, 상기 복수의 얼굴 이미지들의 이미지 특징 벡터가 일련 번호에 매핑되어 있는 특징 벡터 테이블로부터, 상기 후보군에 포함되는 일련 번호에 대응하는 이미지 특징 벡터들 중에서, 상기 입력된 얼굴 이미지의 이미지 특징 벡터와 가장 높은 유사도를 가지는 이미지 특징 벡터를 찾을 수 있다.
일 실시 예에서, 상기 특징 벡터 테이블은 상기 일련 번호에 대응하여 해당 얼굴 이미지가 누구의 얼굴 이미지인지를 나타내는 클래스가 매핑될 수 있으며, 상기 상세 검색을 수행하는 단계는, 상기 후보군에 포함되는 일련 번호에 대응하는 이미지 특징 벡터들과 상기 입력된 얼굴 이미지의 이미지 특징 벡터 사이의 유사도 계산을 각각 수행하고, 각각의 유사도 계산 결과를 토대로 가장 큰 유사도를 가지는 임의 일련 번호에 대응하는 이미지 특징 벡터에 매핑된 클래스를 최종적으로 선택할 수 있다.
일 실시 예에서, 상기 양자화 특징 벡터를 생성하는 단계는 상기 이미지 특징 벡터에 포함되는 특징 벡터별로 미리 설정된 복수의 구간들을 이용하여, 임의 특징 벡터의 값이 상기 구간에 포함되는 지의 여부에 따라 해당 특징 벡터의 값을 "1" 또는 "0"으로 변환하는 양자화 처리를 수행할 수 있다.
일 실시 예에서, 하나의 특징 벡터는 d 차원의 실수값들로 이루어지고, 실수값을 구성하는 항마다 복수의 구간들이 정해지며, 항별로 정해진 구간들을 이용하여 해당 항의 값을 비트로 변환하는 양자화 처리를 수행할 수 있다.
일 실시 예에서, 이산균등분포가 되도록 특징 벡터별로 획득되는 값들의 분포를 복수의 구간으로 나누고, 상기 구간별로 임계값이 정해질 수 있다.
본 발명의 다른 특징에 따른 장치는, 얼굴 인식을 수행하는 장치로서, 얼굴 이미지를 입력받도록 구성되는 입력 인터페이스 장치; 데이터베이스를 포함하도록 구성되는 저장 장치; 및 상기 입력 인터페이스 장치로부터 제공되는 얼굴 이미지에 대한 얼굴 인식 처리를 수행하는 프로세서를 포함하며, 상기 프로세서는 상기 얼굴 이미지를 복수의 영역으로 분할하고, 상기 입력된 얼굴 이미지의 영역별로 실수값으로 이루어지는 특징 벡터를 생성하고, 생성된 영역별 특징 벡터들을 이용하여 이미지 특징 벡터를 생성하도록 구성된다.
일 실시 예에서, 상기 프로세서는 상기 얼굴 이미지의 분할된 복수의 영역 각각에 대응하는 영역 이미지를 입력으로 하여 해당 영역 이미지에 대한 특징 벡터를 생성하는 복수의 분할 모델들과, 상기 분할 모델들의 출력을 입력으로 하여 학습을 수행하여 얼굴 이미지에 대응하는 혼합 특징 벡터를 출력하는 연결 모델을 포함하는 딥러닝 모델을 이용하여 상기 이미지 특징 벡터를 생성하도록 구성될 수 있으며, 상기 이미지 특징 벡터는 상기 분할된 영역별 이미지에 대한 특징 벡터들과 상기 혼합 특징 벡터를 포함할 수 있다.
일 실시 예에서, 상기 프로세서는 추가로, 상기 이미지 특징 벡터를 양자화 처리하여 비트열로 이루어지는 양자화 특징 벡터를 생성하고, 상기 양자화 특징 벡터를 이용하여 상기 데이터베이스를 검색하여 후보군을 검색하고, 상기 검색된 후보군에 포함된 특징 벡터와 상기 이미지 특징 벡터를 이용하여, 상기 입력된 얼굴 이미지가 누구의 얼굴 이미지인지를 나타내는 클래스를 찾는 상세 검색을 수행하도록 구성될 수 있다.
일 실시 예에서, 상기 프로세서는 구체적으로, 상기 후보군 검색 및 상기 상세 검색시, 상기 입력된 얼굴 이미지에 해당하는 양자화 특징 벡터 또는 이미지 특징 벡터와, 상기 데이터베이스에 저장된 특징 벡터들 사이의 유사도 계산을 토대로 검색을 수행하도록 구성될 수 있으며, 상기 유사도 계산은 상기 영역별로 수행될 수 있다.
일 실시 예에서, 상기 프로세서는 구체적으로, 상기 양자화 특징 벡터 또는 이미지 특징 벡터와, 상기 데이터베이스에 저장된 특징 벡터들 사이의 유사도 계산시, 각 영역별로 특징 벡터간의 유사도를 계산하고 계산된 값에 선택적으로 부여되는 가중치를 곱하여 영역별 유사도를 획득하고, 각 영역별 유사도들을 모두 합하여 최종 유사도를 획득하도록 구성될 수 있으며, 각 영역에 대하여 가려짐 정도에 따라 가중치가 선택적으로 부여될 수 있다.
일 실시 예에서, 상기 데이터베이스는, 복수의 얼굴 이미지들이 양자화 특징 벡터를 토대로 그룹화된 군집 매핑 테이블과 상기 복수의 얼굴 이미지들의 이미지 특징 벡터가 일련 번호에 매핑되어 있는 특징 벡터 테이블을 포함할 수 있으며, 상기 군집 매핑 테이블은 그룹별로 부여되는 대표 벡터 그리고, 상기 대표 벡터에 매핑하여 해당 그룹에 속하는 얼굴 이미지들의 일련 번호를 나타내는 소속 벡터를 포함할 수 있으며, 상기 대표 벡터는 상기 복수의 얼굴 이미지들의 양자화 특징 벡터들 중에서 하나일 수 있다. 상기 특징 벡터 테이블은 추가적으로, 상기 일련 번호에 매핑되어 있으며, 해당 얼굴 이미지가 누구의 얼굴 이미지인지를 나타내는 클래스를 포함할 수 있다.
일 실시 예에서, 상기 프로세서는 구체적으로, 상기 군집 매핑 테이블의 그룹별 대표 벡터와 상기 입력된 얼굴 이미지의 양자화 특징 벡터 사이의 유사도 계산을 각각 수행하고, 각 대표 벡터별 유사도 계산 결과를 토대로 가장 큰 유사도를 가지는 대표 벡터를 상기 후보군으로 선택하고, 상기 특징 벡터 테이블을 토대로 상기 후보군에 포함되는 일련 번호에 대응하는 이미지 특징 벡터들과 상기 입력된 얼굴 이미지의 이미지 특징 벡터 사이의 유사도 계산을 각각 수행하고, 각각의 유사도 계산 결과를 토대로 가장 큼 유사도를 가지는 임의 일련 번호에 대응하는 이미지 특징 벡터에 매핑된 클래스를 최종적으로 선택하도록 구성될 수 있다.
일 실시 예에서, 상기 프로세서는 구체적으로, 상기 이미지 특징 벡터에 포함되는 특징 벡터별로 미리 설정된 복수의 구간들을 이용하여, 임의 특징 벡터의 값이 상기 구간에 포함되는 지의 여부에 따라 해당 특징 벡터의 값을 "1" 또는 "0"으로 변환하는 양자화 처리를 수행하도록 구성될 수 있으며, 하나의 특징 벡터는 d 차원의 실수값들로 이루어지고, 실수값을 구성하는 항마다 복수의 구간들이 정해지며, 항별로 정해진 구간들을 이용하여 해당 항의 값을 비트로 변환하는 양자화 처리가 수행될 수 있다.
본 발명의 실시 예에 따르면, 입력되는 얼굴 이미지가 임의 물체 등에 의해 가려진 경우에도 효과적으로 얼굴 이미지를 인식할 수 있다.
또한, 대용량 데이터베이스에서 군집 매핑 테이블을 이용하여 얼굴 이미지에 대응하는 후보군을 선택하고, 선택된 후보군에서 실수값으로 이루어지는 특징 벡터들 사이의 유사도 판단을 통해 최종적으로 입력된 얼굴 이미지의 소유자를 찾음으로써, 얼굴 인식을 위한 검색 시간을 감소시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 얼굴 인식을 위한 특징 벡터를 획득하는 것을 나타낸 예시도이다.
도 2는 본 발명의 실시 예에 따른 이미지 특징 벡터를 나타낸 예시도이다.
도 3은 본 발명의 실시 예에 따른 양자화 처리를 나타낸 예시도이다.
도 4는 본 발명의 실시 예에 따른 군집 매핑 테이블과 특징 벡터 테이블을 나타낸 예시도이다.
도 5는 본 발명의 실시 예에 따른 얼굴 인식 장치의 구조를 나타낸 도이다.
도 6은 본 발명의 실시 예에 따른 얼굴 인식 방법의 흐름도이다.
도 7은 본 발명의 다른 실시 예에 따른 얼굴 인식 장치의 구조를 나타낸 도이다.
도 2는 본 발명의 실시 예에 따른 이미지 특징 벡터를 나타낸 예시도이다.
도 3은 본 발명의 실시 예에 따른 양자화 처리를 나타낸 예시도이다.
도 4는 본 발명의 실시 예에 따른 군집 매핑 테이블과 특징 벡터 테이블을 나타낸 예시도이다.
도 5는 본 발명의 실시 예에 따른 얼굴 인식 장치의 구조를 나타낸 도이다.
도 6은 본 발명의 실시 예에 따른 얼굴 인식 방법의 흐름도이다.
도 7은 본 발명의 다른 실시 예에 따른 얼굴 인식 장치의 구조를 나타낸 도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.
이하, 본 발명의 실시 예에 따른 얼굴 인식 방법 및 장치에 대하여 설명한다.
도 1은 본 발명의 실시 예에 따른 얼굴 인식을 위한 특징 벡터를 획득하는 것을 나타낸 예시도이다.
본 발명의 실시 예에서는 얼굴 이미지를 복수의 영역을 분할하고, 분할된 영역(이하, 설명의 편의상, 얼굴 영역이라고 명명함)들을 기반으로 얼굴 인식 처리를 수행한다.
예를 들어, 첨부한 도 1에서와 같이, 얼굴 이미지를 6개의 영역들로 분할한다. 영역의 개수는 구현에 따라 다를 수 있다. 영역은 사람의 얼굴 모습, 얼굴 각도 등에 따라 다르다. 얼굴 이미지를 영역들로 분할할 경우, 얼굴 검출(Face detection) 알고리즘을 이용하여 찾은 눈과, 입을 기준으로 분할할 수 있다.
본 발명의 실시 예에서는 얼굴 이미지를 복수의 영역으로 분할하고, 복수의 영역들을 토대로 얼굴 인식을 수행한다.
얼굴 인식 또는 인증을 위해서는 이미지 정보로부터 특징 벡터 값을 추출하여야 한다. 본 발명의 실시 예에서는 분할된 영역에 대한 특징 벡터 값들과 전체 특징 벡터 값을 추출한다.
얼굴 이미지에 대한 특징 벡터를 획득하기 위해, 본 발명의 실시 예에서는 딥러닝(deep learning) 모델을 이용할 수 있다. 도 1에 예시된 바와 같이, 분할된 영역별 이미지(영역 이미지라고 명명될 수 있음)를 각각 입력으로 하는 복수의 분할 모델들과, 이러한 분할 모델들의 출력을 하나로 연결(concatenate)하는 연결 모델을 포함하는 딥러닝 모델을 이용할 수 있다. 각 모델은 동시 또는 개별적으로 학습을 수행할 수 있다.
각각의 분할 모델은 입력되는 소정 영역의 이미지를 입력으로 하여 대응하는 특징 벡터를 출력하며, 분할 모델들의 출력은 연결되어 연결 모델의 입력으로 들어간다. 즉, 연결 모델은 각각의 분할 모델로부터 출력되는 영역별 특징 벡터들을 입력으로 하여 출력을 생성한다. 예를 들어, 얼굴 이미지를 도 1에서와 같이, 6개의 영역으로 나눈 경우, 영역 1의 이미지가 분할 모델 1로 입력되고, 영역 2의 이미지가 분할 모델 2로 입력되는 등의 방식으로, 6개의 영역의 이미지들이 각각 6개의 분할 모델들로 입력되어 처리된다. 각각의 분할 모델은 해당 영역 이미지에 대응하는 특징 벡터를 출력하며, 연결 모델은 영역별 특징 벡터들을 학습하여 얼굴 이미지에 대응하는 특징 벡터(설명의 편의상, 혼합 특징 벡터라고 명명함)를 생성한다. 여기서 연결 모델을 통해 최종적으로 출력되는 값은 얼굴 이미지가 어떤 클래스(class)에 대응하는 것인지를 값 즉, 얼굴 이미지가 누구의 이미지인지를 나타내는 값일 수 있다. 이 경우, 연결 모델을 구성하는 복수의 계층에서 최종 계층에서 출력되는 값이 아니라, 최종 계층 이전의 계층 중에서 얼굴 특징을 잘 표현하는 계층의 출력 값을 혼합 특징 벡터로 사용한다. 혼합 특징 벡터는 얼굴 전체적인 특징을 표현한다.
따라서, 얼굴 이미지에 대한 특징 벡터(이미지 특징 벡터)는 영역별 특징 벡터와 혼합 특징 벡터로 구성된다.
도 2는 본 발명의 실시 예에 따른 이미지 특징 벡터를 나타낸 예시도이다.
본 발명의 실시 예에 따라 획득되는 특징 벡터는 도 2에서와 같이 실수 값이다. 도 2에서, 영역 0은 연결 모델을 통해 획득한 혼합 특징 벡터의 값을 나타낸다. 영역1은 얼굴 이미지의 영역 1에 대응하는 특징 벡터의 값을 나타낸다. 따라서, 이미지 특징 벡터는 영역 0의 특징 벡터, 영역1의 특징 벡터, 영역2의 특징 벡터,…, 영역 6의 특징 벡터로 이루어질 수 있다.
이미지 특징 벡터는 얼굴 인식, 얼굴 식별, 얼굴 인증 등에 활용될 수 있다.
발명의 실시 예에서는 위와 같이 딥러닝 모델을 이용하여 이미지 특징 벡터를 획득하지만, 본 발명은 반드시 이에 한정되는 것은 아니다.
특징 벡터간의 유사도는 기본적으로 코사인 유사도를 이용한다. 특징 벡터간의 유사도가 크면 같은 사람의 얼굴일 확률이 높고 유사도가 작으면 다른 사람의 얼굴일 확률이 높다. 한편, 본 발명의 실시 예에서는 얼굴 영역별로 특징 벡터간 유사도 계산이 수행될 수 있으며, 얼굴 영역의 가려짐 정도를 특징 벡터간 유사도 계산에 이용한다. 얼굴 이미지는 장신구 등의 다른 물체로 인하여 일부가 가려질 수 있다. 이를 고려하여, 본 발명의 실시 예에서는 얼굴 영역 별로 가려진 정도에 따라 가중치를 선택적으로 부여한다. 예를 들어, 6개의 얼굴 영역 중 임의 영역의 가려진 정도를 나타내는 값이 설정 값이 이상인 경우에는 가중치를 해당 영역에 부여하고, 설정값보다 작은 경우에는 가중치를 부여하지 않을 수 있다. 또는 각 영역의 가려진 정도에 따라 상이한 값을 가지는 가중치를 각 영역에 대해 부여할 수 있다. 얼굴 영역에서 가려진 정도가 클수록 가중치를 0에 가까운 값으로 설정하여, 가중치가 유사도 계산에 영향을 덜 끼치도록 할 수 있다. 가중치를 부여하는 방식은 이러한 것에 한정되지 않는다. 각 영역별 가려진 정도를 나타내는 값은 해당 영역을 구성하는 픽셀 값들을 이용하여 산출되는 등 다양한 방법을 통해 계산될 수 있다.
예를 들어, 두 개의 얼굴 이미지의 특징 벡터 p, q 간의 유사도를 계산하는 경우, 유사도는 다음과 같이 나타낼 수 있다.
얼굴 이미지를 예를 들어, 6개의 영역으로 분할한 경우, 두 개의 얼굴 이미지에 대하여 각 영역별로 특징 벡터간의 유사도를 계산하고, 선택적으로 부여되는 가중치 ω i 를 곱한 값을 합하여 유사도를 계산한다. 여기서, i=0은 연결 모델의 특징 벡터(혼합 특징 벡터)를 나타낼 수 있으며, i가 1부터 n까지는 각 분할 모델의 특징 벡터를 나타낼 수 있다. 가중치 ω는 0에서 1사이의 값을 가질 수 있다. 얼굴 영역이 가려지는 부분이 클수록 ω가 0에 가깝게 하여 유사도 계산에 영향을 덜 끼치도록 한다. 유사도 알고리즘 sim( )은 cosine 유사도 또는 다른 알고리즘 등이 사용될 수 있다. 수학식 1에서는 시그마 연산으로 표시되어 있지만, ω 적용을 위해 다른 방식의 연산 또는 추가적인 연산이 포함될 수 있다.
한편, 서버 기반의 얼굴 식별을 수행하는 경우, 서버에는 복수 개의 특징 벡터를 소유하게 된다. 특징 벡터의 수가 많으면(예, 수십만 개 이상) 특징 벡터의 소유자를 찾는데 많은 시간을 소요하게 된다. 본 발명의 실시 예에서는 검색 시간을 줄이기 위해 2단계의 과정을 거치게 되는데, 특징 벡터의 양자화 처리와 군집 매핑 테이블과 특징 벡터 테이블을 이용한 검색이 수행된다.
도 3은 본 발명의 실시 예에 따른 양자화 처리를 나타낸 예시도이다.
본 발명의 실시 예에서는 도 3에 예시된 바와 같은 양자화 방법 q(x)을 사용할 수 있다. 특징 벡터 x는 d차원의 실수값 x i 로 구성된다. 이를 수식으로 나타내면 다음과 같다.
양자화 벡터 c는 q(x)의 결과로 비트열이다. 이를 수식으로 나타내면 다음과 같다.
특징 벡터 x를 구성하는 각 항에 대해 모든 데이터들에 대한 분포를 계산하여, 하나의 항을 임의의 개수의 구간으로 구분하고, 이산균등분포(discrete uniform distribution)가 되도록 각 구간의 임계값을 설정한다. 특징 벡터의 값이 포함되는 구간에는 1을 부여하고, 특징 벡터의 값이 포함되지 않는 구간에는 0을 부여하는 방식으로, 특징 벡터의 값을 양자화할 수 있다. 이와는 달리, 특징 벡터의 값이 포함되는 구간에는 0을 부여하고, 특징 벡터의 값이 포함되지 않는 구간에는 1을 부여할 수 있으며, 이외에도 복수의 구간을 이용한 다양한 방식으로 "1" 또는 "0"의 값을 부여할 수 있다.
예를 들어, 특징 벡터 x를 구성하는 임의 항 x i 에 대한 1000개의 데이터들이 주어지는 경우, x i 에 대한 분포를 계산하여 이산균등분포가 되도록 x i 의 분포를 복수의 구간 예를 들어, 4개의 구간으로 나누고, 각 구간에 데이터가 250개씩 균등하게 분포되도록 임계값을 설정하여 구분한 결과가 아래의 수학식 3과 같다고 가정한다.
만약, x i 값이 0.1214이면, 위의 수학식 3에서, 세번째 구간에 해당하므로, 세번째 비트를 1로 하고 나머지 비트는 0으로 하여, 최종 비트열 c i 가 0010이 되도록 한다. 양자화 특징 벡터는 특징 벡터에 대해 이러한 양자화 처리를 통해 획득한 비트열들로 이루어진다.
특징 벡터들은 각 항마다 다른 분포 성향을 가지므로, 각 특징 벡터를 구성하는 x i 마다 독립적으로 구간들을 정하고, 정해진 구간들을 이용하여 x i 의 값을 비트열로 변환한다. d 차원인 특징 벡터 x에 대해 각 항별로 l 개의 비트열로 변환되면 d 길이의 특징 벡터 x는 d x l 길이의 양자화 벡터 c가 된다.
본 발명의 실시 예에서는 얼굴 인식을 위한 대량의 데이터들이 저장되어 있는 데이터베이스를 검색하는 경우, 보다 빠른 검색을 위해, 군집 매핑 테이블과 특징 벡터 테이블을 구성한다.
도 4는 본 발명의 실시 예에 따른 군집 매핑 테이블과 특징 벡터 테이블을 나타낸 예시도이다.
본 발명의 실시 예에 따른 데이터베이스는 군집 매핑 테이블과 특징 벡터 테이블을 포함한다.
특징 벡터 테이블은 일련번호, 특징 벡터, 클래스로 구성된다. 데이터베이스에 저장되어 있는 모든 사용자의 특징 벡터를 저장하고 있다. 일련 번호는 데이터베이스의 레코드의 식별자이다. 여기서 클래스는 얼굴 이미지가 누구의 얼굴 이미지인지를 나타내는 정보로서, 예를 들어 얼굴 이미지에 대응하는 사람의 정보를 나타낼 수 있다.
특징 벡터 테이블만을 이용하여 얼굴을 검색하는 과정은 특징 벡터 테이블의 레코드 수만큼 유사도 계산을 해야 하므로 시간이 오래 걸린다. 효율적인 처리를 위해 군집화하여 2단계로 검색을 수행한다.
군집화를 위해 우선, 특징 벡터 테이블의 모든 특징 벡터들을 양자화하여 양자화 특징 벡터를 획득한다. 양자화 특징 벡터는 특징 벡터에 비하여 엔트로피가 축소되었으므로, 특징 벡터가 서로 다름에도 불구하고 양자화 특징 벡터는 동일할 수 있다.
동일한 양자화 특징 벡터를 갖는 특징 벡터들을 하나의 레코드로 표현한 것이 군집 매핑 테이블이다.
군집 매핑 테이블은 대표 벡터와 소속 벡터로 이루어진다. 대표 벡터는 양자화 특징 벡터이다. 소속 벡터는 동일한 양자화 특징 벡터를 갖는 특징 벡터 테이블의 일련 번호이다.
군집 매핑 테이블의 크기가 너무 크면 검색에 비효율적일 수 있다. 이 경우에는 대표 벡터간에 군집화를 수행하여 군집 매핑 테이블을 축소할 수 있다.
예를 들어, 복수의 얼굴 이미지들에 대하여 획득된 양자화 특징 벡터들 중에서, 동일한 값을 가지는 양자화 특징 벡터들을 하나의 그룹으로 하는 그룹화를 수행한다. 다음에, 그룹별로 대표 벡터를 부여하고, 대표 벡터에 대응하여 소속 벡터를 매핑하는 방식으로 도 4와 같이 군집 매핑 테이블을 구성한다. 예를 들어, "00101001…10"의 양자화 특징 벡터들을 가지는 얼굴 이미지들을 하나의 그룹으로 하고, "00101001…10"를 해당 그룹의 대표 벡터로 설정한다. 그리고 "00101001…10"의 양자화 특징 벡터들을 가지는 얼굴 이미지들에 대한 소속 벡터를 대표 벡터에 매핑시킨다. 여기서, 소속 벡터로서 해당 그룹에 속하는 얼굴 이미지들의 일련 번호를 사용하지만, 반드시 이에 한정되는 것은 안다. 따라서, "00101001…10"의 대표 벡터에 대응하여 해당 그룹에 속하는 얼굴 이미지들의 일련 번호인 "1, 3, 212"가 소속 벡터로서 매핑된다.
이러한 군집 매핑 테이블과 특징 벡터 테이블을 이용하여 얼굴 인식을 위한 검색을 수행한다. 이에 대해서는 추후에 보다 상세하게 설명하기로 한다.
다음에는 위에 기술된 바와 같은 얼굴 이미지의 영역 분할, 특징 벡터 획득, 특징 벡터의 양자화 처리, 군집 매핑 테이블과 특징 벡터 테이블을 기반으로, 얼굴 이미지를 처리하여 특징 벡터를 획득하고 이를 토대로 얼굴 검색을 수행하는 얼굴 인식 방법 및 장치에 대하여 설명한다.
도 5는 본 발명의 실시 예에 따른 얼굴 인식 장치의 구조를 나타낸 도이다.
첨부한 도 5에서와 같이, 본 발명의 실시 예에 따른 얼굴 인식 장치(1)는 이미지 입력부(10), 영역 분할 처리부(20), 특징 벡터 생성부(30), 양자화 처리부(40), 얼굴 검색부(50) 그리고 데이터베이스(60)를 포함한다.
이미지 입력부(10)는 얼굴 인식을 위한 얼굴 이미지를 입력받도록 구성된다.
영역 분할 처리부(20)는 입력된 얼굴 이미지를 복수의 영역으로 분할하도록 구성된다.
특징 벡터 생성부(30)는 입력된 얼굴 이미지의 영역별 특징 벡터와 혼합 특징 벡터를 포함하는 이미지 특징 벡터를 생성하도록 구성된다
양자화 처리부(40)는 실수값으로 이루어지는 이미지 특징 벡터를 양자화 처리하여 비트열로 이루어지는 양자화 특징 벡터를 생성하도록 구성된다.
얼굴 검색부(50)는 양자화 특징 벡터를 이용하여 데이터베이스(60)에 저장된 기본 데이터들에서 입력된 얼굴 이미지에 대응하는 데이터를 찾는 검색 즉, 입력된 얼굴 이미지가 누구의 얼굴인지를 찾는 검색을 수행하도록 구성된다. 이러한 검색에 대해서는 추후에 보다 구체적으로 설명하기로 한다.
데이터베이스(60)는 얼굴 인식을 위한 기본 데이터들을 저장하도록 구성되며, 특히, 기본 데이터들에 대응하는 각각의 얼굴 이미지들에 대한 특징 벡터 테이블(T1) 및 군집 매핑 테이블(T2)을 포함한다.
이러한 구조로 이루어지는 얼굴 인식 장치(1)의 각 부(10~40) 및 데이터베이스(60)는 하나의 디바이스내에 포함되는 형태로 구현될 수 있고, 또는 서로 다른 디바이스내에 포함되는 형태로 구현될 수도 있다. 예를 들어, 서버/클라이언트의 구조에서, 얼굴 인식 장치(1)의 일부 부(데이터베이스 포함)가 서버 또는 클라이언트에 포함되는 형태로 구현되고, 나머지가 클라이언트 또는 서버에 포함되는 형태로 구현될 수 있다. 예를 들어, 클라이언트가 이미지 입력부(10)를 포함하는 형태로 구현되고, 서버가 영역 분할 처리부(20), 특징 벡터 생성부(30), 양자화 처리부(40), 얼굴 검색부(50) 그리고 데이터베이스(60)를 포함하는 형태로 구현될 수 있다. 또는 클라이언트가 이미지 입력부(10), 영역 분할 처리부(20), 특징 벡터 생성부(30)를 포함하는 형태로 구현되고, 서버가 양자화 처리부(40), 얼굴 검색부(50) 그리고 데이터베이스(60)를 포함하는 형태로 구현될 수 있다
다음에는 본 발명의 실시 예에 따른, 얼굴 이미지를 처리하여 특징 벡터를 획득하고 이를 토대로 얼굴 검색을 수행하는 얼굴 인식 방법에 대하여 설명한다.
도 6은 본 발명의 실시 예에 따른 얼굴 인식 방법의 흐름도이다.
첨부한 도 6에서와 같이, 얼굴 인식을 위해 임의 얼굴 이미지가 입력되면(S100), 얼굴 인식 장치(1)는 입력된 얼굴 이미지를 복수의 영역으로 분할한다(S110).
그리고 얼굴 인식 장치(1)는 입력된 얼굴 이미지의 영역별로 특징 벡터를 생성하고, 생성된 영역별 특징 벡터들을 이용하여 이미지 특징 벡터를 생성한다(S120).
얼굴 인식 장치(1)는 실수값으로 이루어지는 이미지 특징 벡터를 양자화 처리하여 비트열로 이루어지는 양자화 특징 벡터를 생성한다(S130).
이후, 얼굴 인식 장치(1)는 입력된 얼굴 이미지의 양자화 특징 벡터를 이용하여 데이터베이스(60)를 검색하며, 먼저, 입력된 얼굴 이미지에 대응하는 후보군을 검색한다(S140). 그리고 검색된 후보군에 대해서 입력된 얼굴 이미지가 누구의 이미지인지를 찾는 상세 검색을 수행한다(S150).
도 4를 참조로 하여, 검색 과정을 보다 구체적으로 설명하면 다음과 같다. 예를 들어, 입력된 얼굴 이미지의 이미지 특징 벡터(도 4에서 입력 특징 벡터)를 양자화한 양자화 특징 벡터(도 4에서 입력 양자화 특징 벡터)를 이용하여, 군집 매핑 테이블(T1)을 검색하여 후보군을 검색한다. 이를 위해, 입력된 얼굴 이미지의 양자화 특징 벡터 즉, 입력 양자화 특징 벡터와 군집 매핑 테이블(T1)의 대표 벡터들 사이의 유사도를 판단하여, 군집 매핑 테이블(T1)의 대표 벡터들 중에서 입력 양자화 특징 벡터와 유사한 대표 벡터를 후보군으로 검색한다.
단계(S140)에서의 후보군 검색시, 입력 양자화 특징 벡터와 군집 매핑 테이블(T1)의 대표 벡터들 사이의 유사도 계산을 각각 수행하여 유사도를 획득하고, 군집 매핑 테이블의 대표 벡터들 중에서 가장 높은 유사도를 가지는 대표 벡터를 후보군으로 선택한다. 유사도 계산에 있어, 양자화 특징 벡터들은 비트열로 구성되어 있으므로 sim() 함수는 양자화 특징 벡터와 대표 벡터 간에는 bitwise XOR 연산(Bitwise Hamming Distance)을 이용한다. Bitwise XOR 연산은 실수 계산에 비해 빠른 연산 속도를 갖는다.
그리고 단계(S150)에서, 검색된 후보군에서 상세 검색을 수행하여 입력된 얼굴 이미지가 누구의 이미지인지를 찾는데, 구체적으로, 후보군으로 선택된 대표 벡터에 포함되는 소속 벡터들에 대하여 상세 검색을 수행한다. 상세 검색시에도 후보군으로 선택된 대표 벡터에 포함되는 소속 벡터들과 입력된 얼굴 이미지의 특징 벡터를 사이의 유사도를 기반으로, 입력된 얼굴 이미지가 누구의 이미지인지를 찾는다. 이러한 상세 검색시에는 양자화 특징 벡터가 아닌 실수값 특징 벡터를 이용한다. 유사도 계산은 similarity(p, q, w)를 이용한다.
예를 들어, 도 4의 군집 매핑 테이블(T1)에서 "00101001…10"의 대표 벡터가 후보군으로 선택된 경우, "00101001…10"에 속하는 소속 벡터들 "1, 3, 212"에 대응하는 특징 벡터들을 특징 벡터 테이블(T2)로부터 획득한다. 그리고 소속 벡터별로 특징 벡터와 입력된 얼굴 이미지의 이미지 특징 벡터(입력 특징 벡터) 사이의 유사도를 계산한다. 즉, 소속 벡터 "1"에 대응하는 특징 벡터 (1.1001, -0.123, …, -1.921)와 입력 특징 벡터 사이의 유사도 계산을 수행하여 유사도 1을 획득하고, 소속 벡터 "3"에 대응하는 특징 벡터 (-0.121, 0.399, …, 0.002)와 입력 특징 벡터 사이의 유사도 계산을 수행하여 유사도 2를 획득하며, 또한 소속 벡터 "212"에 대응하는 특징 벡터(도시되지 않음)와 입력 특징 벡터 사이의 유사도 계산을 수행하여 유사도 3을 획득한다. 소속 벡터별 유사도 1, 유사도 2, 유사도 3은 위에 기술된 수학식 1을 토대로 계산될 수 있다.
입력된 얼굴 이미지의 이미지 특징 벡터와 소속 벡터들의 특징 벡터들 사이의 유사도 계산을 각각 수행하여 복수의 유사도를 획득하고, 획득된 유사도들을 이용하여 이미지 특징 벡터에 가장 가까운 클래스를 선택한다. 예를 들어, 소속 벡터별 유사도 1, 유사도 2, 유사도 3들 중에서 가장 큰 값을 가지는 유사도에 대응하는 소속 벡터를 선택하고, 선택된 소속 벡터의 클래스를 입력된 얼굴 이미지에 대응하는 클래스로 최종 결정한다. 본 발명에서 클래스를 결정하는 방법은 이에 한정되지 않는다.
위에 기술된 바와 같이, 데이터베이스(60)로부터 입력된 얼굴 이미지에 대응하는 얼굴 이미지를 검색하는 경우, 얼굴 이미지들의 실수값으로 이루어진 특징 벡터들을 모두 비교하는 대신에, 군집 매핑 테이블을 이용하여 후보군을 먼저 검색한 다음에, 검색된 후보군에 포함되는 특징 벡터들과 입력된 얼굴 이미지의 특징 벡터들 사이의 유사도 계산을 수행하여 최종적으로 입력된 얼굴 이미지에 대응하는 클래스를 찾음으로써, 검색 시간을 효과적으로 감소시킬 수 있다.
도 7은 본 발명의 다른 실시 예에 따른 얼굴 인식 장치의 구조도이다.
첨부한 도 7에 도시되어 있듯이, 본 발명의 다른 실시 예에 따른 얼굴 인식 장치(100)는, 프로세서(110), 메모리(120), 입력 인터페이스 장치(130), 출력 인터페이스 장치(140), 네트워크 인터페이스(150) 및 저장 장치(160)를 포함하며, 이들은 버스(170)를 통해 통신할 수 있다.
프로세서(110)는 위의 도 1 내지 도 6을 토대로 설명한 방법들을 구현하도록 구성될 수 있다. 프로세서(110)는 예를 들어, 영역 분할 처리부, 특징 벡터 생성부, 양자화 처리부, 얼굴 검색부 중 적어도 하나의 기능을 수행하도록 구성될 수 있다. 프로세서(110)는 중앙 처리 장치(central processing unit, CPU)이거나, 또는 메모리(120) 또는 저장 장치(160)에 저장된 명령을 실행하는 반도체 장치일 수 있다.
메모리(120)는 프로세서(110)와 연결되고 프로세서(110)의 동작과 관련한 다양한 정보를 저장한다. 메모리(120)는 프로세서(110)에서 수행하기 위한 명령어(instructions)를 저장하고 있거나 저장 장치(160)로부터 명령어를 로드하여 일시 저장할 수 있다. 프로세서(110)는 메모리(120)에 저장되어 있거나 로드된 명령어를 실행할 수 있다. 메모리는 ROM(read only memory)(121) 및 RAM(random access memory)(122)를 포함할 수 있다.
저장 장치(160)는 본 발명의 실시 예에 따른 군집 매핑 테이블과 특징 벡터 테이블을 포함하도록 구성될 수 있다.
본 발명의 실시 예에서 메모리(120) 및 저장 장치(160)는 프로세서(110)의 내부 또는 외부에 위치할 수 있고, 메모리(120) 및 저장 장치(160)는 이미 알려진 다양한 수단을 통해 프로세서(110)와 연결될 수 있다.
입력 인터페이스 장치(130)는 프로세서(110)로 제공되는 데이터를 입력받도록 구성될 수 있다. 예를 들어, 입력 인터페이스 장치(130)는 얼굴 이미지를 입력받아 프로세서(110)로 전달하도록 구성될 수 있다.
출력 인터페이스 장치(140)는 프로세서(110)의 처리 결과를 출력하도록 구성될 수 있다. 예를 들어, 출력 인터페이스 장치(140)는 프로세서(110)에 의해 제공되는, 입력된 얼굴 이미지가 누구의 얼굴 이미지인지를 나타내는 클래스에 대한 정보를 출력하도록 구성될 수 있다.
네트워크 인터페이스 장치(150)는 네트워크에 연결되어 신호를 송수신하도록 구성된다. 예를 들어, 네트워크 인터페이스 장치(150)는 프로세서(110)에 의해 제공되는, 입력된 얼굴 이미지가 누구의 얼굴 이미지인지를 나타내는 클래스에 대한 정보를 네트워크를 통해 송신하도록 구성될 수 있다.
본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시 예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시 예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 사업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.
Claims (20)
- 얼굴 인식을 수행하는 방법으로서,
얼굴 인식 장치가, 입력되는 얼굴 이미지를 복수의 영역으로 분할하는 단계; 및
상기 얼굴 인식 장치가, 상기 입력된 얼굴 이미지의 영역별로 실수값으로 이루어지는 특징 벡터를 생성하고, 생성된 영역별 특징 벡터들을 이용하여 이미지 특징 벡터를 생성하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 이미지 특징 벡터를 생성하는 단계는,
상기 얼굴 이미지의 분할된 복수의 영역 각각에 대응하는 영역 이미지를 입력으로 하여 해당 영역 이미지에 대한 특징 벡터를 생성하는 복수의 분할 모델들과, 상기 분할 모델들의 출력을 입력으로 하여 학습을 수행하여 얼굴 이미지에 대응하는 혼합 특징 벡터를 출력하는 연결 모델을 포함하는 딥러닝 모델을 이용하여 상기 이미지 특징 벡터를 생성하며,
상기 이미지 특징 벡터는 상기 분할된 영역별 이미지에 대한 특징 벡터들과 상기 혼합 특징 벡터를 포함하는, 방법. - 제1항에 있어서,
상기 얼굴 인식 장치가, 상기 이미지 특징 벡터를 양자화 처리하여 비트열로 이루어지는 양자화 특징 벡터를 생성하는 단계;
상기 얼굴 인식 장치가, 상기 양자화 특징 벡터를 이용하여 데이터베이스를 검색하여 후보군을 검색하는 단계; 및
상기 얼굴 인식 장치가, 상기 검색된 후보군에 포함된 특징 벡터와 상기 이미지 특징 벡터를 이용하여, 상기 입력된 얼굴 이미지가 누구의 얼굴 이미지인지를 나타내는 클래스를 찾는 상세 검색을 수행하는 단계
를 더 포함하는, 방법. - 제3항에 있어서,
상기 후보군 검색 및 상기 상세 검색시, 상기 입력된 얼굴 이미지에 해당하는 양자화 특징 벡터 또는 이미지 특징 벡터와, 상기 데이터베이스에 저장된 특징 벡터들 사이의 유사도 계산을 토대로 검색을 수행하며, 상기 유사도 계산은 상기 영역별로 수행되는, 방법. - 제3항에 있어서,
상기 양자화 특징 벡터 또는 이미지 특징 벡터와, 상기 데이터베이스에 저장된 특징 벡터들 사이의 유사도 계산시, 각 영역별로 특징 벡터간의 유사도를 계산하고 계산된 값에 선택적으로 부여되는 가중치를 이용하여 영역별 유사도를 획득하고, 각 영역별 유사도를 모두 합하여 최종 유사도를 획득하며, 각 영역에 대하여 가려짐 정도에 따라 가중치가 선택적으로 부여되는, 방법. - 제3항에 있어서,
상기 후보군을 검색하는 단계는
복수의 얼굴 이미지들이 양자화 특징 벡터를 토대로 그룹화된 군집 매핑 테이블로부터 상기 입력된 얼굴 이미지의 양자화 특징 벡터와 가장 높은 유사도를 가지는 그룹을 후보군으로 선택하는 단계
를 포함하는, 방법. - 제6항에 있어서,
상기 군집 매핑 테이블은 그룹별로 부여되는 대표 벡터 그리고, 상기 대표 벡터에 매핑하여 해당 그룹에 속하는 얼굴 이미지들의 일련 번호를 나타내는 소속 벡터를 포함하며, 상기 대표 벡터는 상기 복수의 얼굴 이미지들의 양자화 특징 벡터들 중에서 하나이고,
상기 후보군으로 선택하는 단계는,
상기 그룹별 대표 벡터와 상기 입력된 얼굴 이미지의 양자화 특징 벡터 사이의 유사도 계산을 각각 수행하고, 각 대표 벡터별 유사도 계산 결과를 토대로 가장 큰 유사도를 가지는 대표 벡터를 상기 후보군으로 선택하는, 방법. - 제3항에 있어서,
상기 상세 검색을 수행하는 단계는, 상기 복수의 얼굴 이미지들의 이미지 특징 벡터가 일련 번호에 매핑되어 있는 특징 벡터 테이블로부터, 상기 후보군에 포함되는 일련 번호에 대응하는 이미지 특징 벡터들 중에서, 상기 입력된 얼굴 이미지의 이미지 특징 벡터와 가장 높은 유사도를 가지는 이미지 특징 벡터를 찾는, 방법. - 제8항에 있어서,
상기 특징 벡터 테이블은 상기 일련 번호에 대응하여 해당 얼굴 이미지가 누구의 얼굴 이미지인지를 나타내는 클래스가 매핑되어 있으며,
상기 상세 검색을 수행하는 단계는,
상기 후보군에 포함되는 일련 번호에 대응하는 이미지 특징 벡터들과 상기 입력된 얼굴 이미지의 이미지 특징 벡터 사이의 유사도 계산을 각각 수행하고, 각각의 유사도 계산 결과를 토대로 가장 큰 유사도를 가지는 임의 일련 번호에 대응하는 이미지 특징 벡터에 매핑된 클래스를 최종적으로 선택하는, 방법. - 제1항에 있어서,
상기 양자화 특징 벡터를 생성하는 단계는
상기 이미지 특징 벡터에 포함되는 특징 벡터별로 미리 설정된 복수의 구간들을 이용하여, 임의 특징 벡터의 값이 상기 구간에 포함되는 지의 여부에 따라 해당 특징 벡터의 값을 "1" 또는 "0"으로 변환하는 양자화 처리를 수행하는, 방법. - 제10항에 있어서,
하나의 특징 벡터는 d 차원의 실수값들로 이루어지고, 실수값을 구성하는 항마다 복수의 구간들이 정해지며, 항별로 정해진 구간들을 이용하여 해당 항의 값을 비트로 변환하는 양자화 처리를 수행하는, 방법. - 제10항에 있어서,
이산균등분포가 되도록 특징 벡터별로 획득되는 값들의 분포를 복수의 구간으로 나누고, 상기 구간별로 임계값이 정해지는, 방법. - 얼굴 인식을 수행하는 장치로서,
얼굴 이미지를 입력받도록 구성되는 입력 인터페이스 장치;
데이터베이스를 포함하도록 구성되는 저장 장치; 및
상기 입력 인터페이스 장치로부터 제공되는 얼굴 이미지에 대한 얼굴 인식 처리를 수행하는 프로세서
를 포함하며,
상기 프로세서는 상기 얼굴 이미지를 복수의 영역으로 분할하고, 상기 입력된 얼굴 이미지의 영역별로 실수값으로 이루어지는 특징 벡터를 생성하고, 생성된 영역별 특징 벡터들을 이용하여 이미지 특징 벡터를 생성하도록 구성되는, 장치 - 제13항에 있어서,
상기 프로세서는 상기 얼굴 이미지의 분할된 복수의 영역 각각에 대응하는 영역 이미지를 입력으로 하여 해당 영역 이미지에 대한 특징 벡터를 생성하는 복수의 분할 모델들과, 상기 분할 모델들의 출력을 입력으로 하여 학습을 수행하여 얼굴 이미지에 대응하는 혼합 특징 벡터를 출력하는 연결 모델을 포함하는 딥러닝 모델을 이용하여 상기 이미지 특징 벡터를 생성하도록 구성되며, 상기 이미지 특징 벡터는 상기 분할된 영역별 이미지에 대한 특징 벡터들과 상기 혼합 특징 벡터를 포함하는, 장치. - 제13항에 있어서,
상기 프로세서는 추가로, 상기 이미지 특징 벡터를 양자화 처리하여 비트열로 이루어지는 양자화 특징 벡터를 생성하고, 상기 양자화 특징 벡터를 이용하여 상기 데이터베이스를 검색하여 후보군을 검색하고, 상기 검색된 후보군에 포함된 특징 벡터와 상기 이미지 특징 벡터를 이용하여, 상기 입력된 얼굴 이미지가 누구의 얼굴 이미지인지를 나타내는 클래스를 찾는 상세 검색을 수행하도록 구성되는, 장치. - 제15항에 있어서,
상기 프로세서는 구체적으로, 상기 후보군 검색 및 상기 상세 검색시, 상기 입력된 얼굴 이미지에 해당하는 양자화 특징 벡터 또는 이미지 특징 벡터와, 상기 데이터베이스에 저장된 특징 벡터들 사이의 유사도 계산을 토대로 검색을 수행하도록 구성되며, 상기 유사도 계산은 상기 영역별로 수행되는, 장치. - 제16항에 있어서,
상기 프로세서는 구체적으로, 상기 양자화 특징 벡터 또는 이미지 특징 벡터와, 상기 데이터베이스에 저장된 특징 벡터들 사이의 유사도 계산시, 각 영역별로 특징 벡터간의 유사도를 계산하고 계산된 값에 선택적으로 부여되는 가중치를 곱하여 영역별 유사도를 획득하고, 각 영역별 유사도들을 모두 합하여 최종 유사도를 획득하도록 구성되며, 각 영역에 대하여 가려짐 정도에 따라 가중치가 선택적으로 부여되는, 장치. - 제15항에 있어서,
상기 데이터베이스는, 복수의 얼굴 이미지들이 양자화 특징 벡터를 토대로 그룹화된 군집 매핑 테이블과 상기 복수의 얼굴 이미지들의 이미지 특징 벡터가 일련 번호에 매핑되어 있는 특징 벡터 테이블을 포함하고,
상기 군집 매핑 테이블은 그룹별로 부여되는 대표 벡터 그리고, 상기 대표 벡터에 매핑하여 해당 그룹에 속하는 얼굴 이미지들의 일련 번호를 나타내는 소속 벡터를 포함하며, 상기 대표 벡터는 상기 복수의 얼굴 이미지들의 양자화 특징 벡터들 중에서 하나이고,
상기 특징 벡터 테이블은 추가적으로, 상기 일련 번호에 매핑되어 있으며, 해당 얼굴 이미지가 누구의 얼굴 이미지인지를 나타내는 클래스를 포함하는, 장치. - 제18항에 있어서,
상기 프로세서는 구체적으로, 상기 군집 매핑 테이블의 그룹별 대표 벡터와 상기 입력된 얼굴 이미지의 양자화 특징 벡터 사이의 유사도 계산을 각각 수행하고, 각 대표 벡터별 유사도 계산 결과를 토대로 가장 큰 유사도를 가지는 대표 벡터를 상기 후보군으로 선택하고,
상기 특징 벡터 테이블을 토대로 상기 후보군에 포함되는 일련 번호에 대응하는 이미지 특징 벡터들과 상기 입력된 얼굴 이미지의 이미지 특징 벡터 사이의 유사도 계산을 각각 수행하고, 각각의 유사도 계산 결과를 토대로 가장 큼 유사도를 가지는 임의 일련 번호에 대응하는 이미지 특징 벡터에 매핑된 클래스를 최종적으로 선택하도록 구성되는, 장치. - 제15항에 있어서,
상기 프로세서는 구체적으로, 상기 이미지 특징 벡터에 포함되는 특징 벡터별로 미리 설정된 복수의 구간들을 이용하여, 임의 특징 벡터의 값이 상기 구간에 포함되는 지의 여부에 따라 해당 특징 벡터의 값을 "1" 또는 "0"으로 변환하는 양자화 처리를 수행하도록 구성되며,
하나의 특징 벡터는 d 차원의 실수값들로 이루어지고, 실수값을 구성하는 항마다 복수의 구간들이 정해지며, 항별로 정해진 구간들을 이용하여 해당 항의 값을 비트로 변환하는 양자화 처리가 수행되는, 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180153917A KR20200071838A (ko) | 2018-12-03 | 2018-12-03 | 특징 벡터를 이용한 얼굴 검색이 가능한 얼굴 인식 방법 및 장치 |
US16/583,343 US20200175259A1 (en) | 2018-12-03 | 2019-09-26 | Face recognition method and apparatus capable of face search using vector |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180153917A KR20200071838A (ko) | 2018-12-03 | 2018-12-03 | 특징 벡터를 이용한 얼굴 검색이 가능한 얼굴 인식 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20200071838A true KR20200071838A (ko) | 2020-06-22 |
Family
ID=70849202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180153917A KR20200071838A (ko) | 2018-12-03 | 2018-12-03 | 특징 벡터를 이용한 얼굴 검색이 가능한 얼굴 인식 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20200175259A1 (ko) |
KR (1) | KR20200071838A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220004327A (ko) * | 2020-07-03 | 2022-01-11 | 한국전력공사 | 얼굴인식 기술을 활용한 공사현장 인력 실시간 자격판독 방법 |
KR20220011100A (ko) * | 2020-07-20 | 2022-01-27 | 펄스나인 주식회사 | 얼굴 이미지 검색을 통한 가상 인물 생성 시스템 및 방법 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102225022B1 (ko) * | 2019-08-27 | 2021-03-08 | 연세대학교 산학협력단 | 사람 재식별 장치 및 방법 |
CN111814028B (zh) * | 2020-09-14 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 一种信息搜索方法及装置 |
CN112668632B (zh) * | 2020-12-25 | 2022-04-08 | 浙江大华技术股份有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN114003752B (zh) * | 2021-11-24 | 2022-11-15 | 重庆邮电大学 | 基于粒球人脸聚类图像质量评估的数据库精简方法及系统 |
US20230351558A1 (en) * | 2022-04-29 | 2023-11-02 | Microsoft Technology Licensing, Llc | Generating an inpainted image from a masked image using a patch-based encoder |
-
2018
- 2018-12-03 KR KR1020180153917A patent/KR20200071838A/ko unknown
-
2019
- 2019-09-26 US US16/583,343 patent/US20200175259A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220004327A (ko) * | 2020-07-03 | 2022-01-11 | 한국전력공사 | 얼굴인식 기술을 활용한 공사현장 인력 실시간 자격판독 방법 |
KR20220011100A (ko) * | 2020-07-20 | 2022-01-27 | 펄스나인 주식회사 | 얼굴 이미지 검색을 통한 가상 인물 생성 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20200175259A1 (en) | 2020-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20200071838A (ko) | 특징 벡터를 이용한 얼굴 검색이 가능한 얼굴 인식 방법 및 장치 | |
CN109344731B (zh) | 基于神经网络的轻量级的人脸识别方法 | |
CN107918636B (zh) | 一种人脸快速检索方法、系统 | |
KR101183391B1 (ko) | 메트릭 임베딩에 의한 이미지 비교 | |
CN112949740B (zh) | 一种基于多级度量的小样本图像分类方法 | |
CN111177438B (zh) | 图像特征值的搜索方法、装置、电子设备及存储介质 | |
JP2013206187A (ja) | 情報変換装置、情報検索装置、情報変換方法、情報検索方法、情報変換プログラム、情報検索プログラム | |
CN113254687B (zh) | 图像检索、图像量化模型训练方法、装置和存储介质 | |
Chen | Scalable spectral clustering with cosine similarity | |
EP3655862B1 (en) | Multiscale quantization for fast similarity search | |
CN113033507A (zh) | 场景识别方法、装置、计算机设备和存储介质 | |
CN110442749B (zh) | 视频帧处理方法及装置 | |
CN116796038A (zh) | 遥感数据检索方法、装置、边缘处理设备及存储介质 | |
KR102305575B1 (ko) | 이미지 간 유사도를 이용한 유사 영역 강조 방법 및 시스템 | |
CN115168326A (zh) | Hadoop大数据平台分布式能源数据清洗方法及系统 | |
CN111324766A (zh) | 一种基于lbp特征的加密图像检索方法 | |
CN112307243A (zh) | 用于检索图像的方法和装置 | |
CN113762019B (zh) | 特征提取网络的训练方法、人脸识别方法和装置 | |
Gao et al. | Efficient view-based 3-D object retrieval via hypergraph learning | |
CN110209895B (zh) | 向量检索方法、装置和设备 | |
Karthik et al. | Evolutionary Optimization Algorithm on Content based Image Retrieval System using Handcrafted features with Squeeze Networks | |
JP6601965B2 (ja) | 探索木を用いて量子化するプログラム、装置及び方法 | |
CN111160077A (zh) | 一种大规模人脸动态聚类方法 | |
CN111784787B (zh) | 图像生成方法和装置 | |
CN111241826B (zh) | 实体名称识别方法、装置、设备及存储介质 |