KR20160044668A - 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램 - Google Patents

얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램 Download PDF

Info

Publication number
KR20160044668A
KR20160044668A KR1020140139096A KR20140139096A KR20160044668A KR 20160044668 A KR20160044668 A KR 20160044668A KR 1020140139096 A KR1020140139096 A KR 1020140139096A KR 20140139096 A KR20140139096 A KR 20140139096A KR 20160044668 A KR20160044668 A KR 20160044668A
Authority
KR
South Korea
Prior art keywords
face
image
face identification
processing units
patch
Prior art date
Application number
KR1020140139096A
Other languages
English (en)
Other versions
KR101656373B1 (ko
Inventor
이영민
이새한슬
Original Assignee
서울시립대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서울시립대학교 산학협력단 filed Critical 서울시립대학교 산학협력단
Priority to KR1020140139096A priority Critical patent/KR101656373B1/ko
Priority to US14/877,938 priority patent/US9633251B2/en
Publication of KR20160044668A publication Critical patent/KR20160044668A/ko
Application granted granted Critical
Publication of KR101656373B1 publication Critical patent/KR101656373B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing 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/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06V10/7747Organisation of the process, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • 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/467Encoded features or binary features, e.g. local binary patterns [LBP]

Abstract

본 발명은, (a) 얼굴 식별을 위한 이미지의 크기를 변경하는 단계, (b) 변경된 크기의 이미지를 LBP(Local Binary Pattern) 도메인상으로 변환하는 단계 및 (c) 변환된 이미지를 스캐닝하여 얼굴을 검출하는 단계를 포함하고 단계 (b) 및 (c) 중 하나 이상은 복수의 프로세싱 유닛에 의해서 수행되는 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램에 관한 것이다.
본 발명을 이용함으로써, 실시간으로 얼굴 인식 및 검출이 가능하다.

Description

얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램{FACE IDENTIFYING METHOD, FACE IDENTIFYING APPARATUS AND COMPUTER PROGRAM EXECUTING THE METHOD}
본 발명은 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램에 관한 것으로서, 구체적으로는 다수의 프로세싱 코어를 고려하여 얼굴 식별 알고리즘을 병렬화하여 실기간으로 얼굴의 검출 및 인식이 가능하도록 하는 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램에 관한 것이다.
얼굴 검출(Face Detection)은 주어진 이미지 프레임에서 얼굴을 찾고 얼굴 이미지를 다루는 여러 응용에서의 첫번째 단계에 해당한다. 반면 얼굴 인식(Face Recognition)은 주어진 테스트 얼굴 이미지 또는 검출된 얼굴 이미지를 DB(Database)에 저장된 얼굴들과 비교하여 DB를 통해 특정 얼굴 또는 대상자를 찾는 과정이다.
얼굴 검출 및 얼굴 인식은 최근래에 이르러 다양한 분야에서 널리 사용되기 시작하였다. 예를 들어 얼굴 검출 및 얼굴 인식은 빌딩 및 도어 액세스를 위한 생체 인증 및 보안 분야에서, 지능형 보안 분야에서, 잠재적 고객의 나이들을 고려한 맞춤 상품 제공 분야에서, 차량에서의 졸음 방지 등을 위해서 이용되고 있다.
CCTV 카메라 등에서는 보안 관련하여 얼굴 검출이나 얼굴 인식 기술의 적용이 필요하나 여러 다양한 장소나 다양한 위치의 CCTV 카메라들로부터 수작업으로 영상을 모니터링하고 있는 실정이다. 이러한 CCTV 카메라를 활용한 보안 시스템상에서 실시간 및 자동으로 얼굴을 검출 및 인식하고 얼굴 인식에 따른 트랙킹이 가능하도록 하면 많은 유용한 점을 제공할 수 있을 것이다.
한편 얼굴 검출 및 얼굴 인식은 또한 휴대폰, 스마트폰, 태블릿 PC, 노트북 등에서의 사용자 인식을 위해서도 이용될 수 있다.
기존의 얼굴 검출 및 얼굴 인식 방법은 처리해야할 데이터 양이 방대하고 연산양이 방대하여 실시간 처리가 힘든 부분이 있다. 이에 따라 다양한 분야(특히 보안 분야)에서 활용되기에는 그 한계가 존재한다.
나아가 얼굴 검출에 이용되는 입력 이미지의 해상도는 날로 커지고 있고(예를 들어 SD에서 HD) 실시간 처리를 위해서는 더 많은 컴퓨팅 파워를 요구한다. 또한 얼굴 인식에 이용되는 DB의 이미지 개수가 증가함에 따라 얼굴 인식 과정은 더 많은 시간을 요구하고 있다.
한편 그래픽 처리의 극대화를 위해, 범용(General Purpose) 그래픽 처리 유닛(Graphics Processing Units, 이하 'GPU'라고도 함)이 널리 활용되고 있다. 애플리케이션이 높은 병렬성을 가지는 경우에 일반 CPU에 비해 더 빨리 해당 애플리케이션을 수행할 수 있다. 이러한 그래픽 처리 유닛은 일반적으로 서버나 개인용 컴퓨터를 위해 고안되어 활용되었다.
스마트폰이나 태블릿 PC 등과 같은 휴대형 단말기에서의 성능 극대화와 다양한 병렬 처리 애플리케이션의 출현과 요구로 인해 최근래에 이르러 내장용 GPU(embedded GPU)가 양산되고 휴대형 단말기에 적용되고 있다. 이러한 내장용 GPU는 일반적으로 AP(Application Processor)와 함께 단일 칩셋으로 패키징되어 휴대형 단말기 등에서 다양한 병렬 처리 애플리케이션을 처리할 수 있다. 내장용 GPU는 예를 들어 Tegra K1, Adreno, Mali, PowerVR 등일 수 있다. 내장용 GPU는 내장형 GPU 상에서 실행가능한 다양한 분야의 응용을 지원할 수 있는 OpenCL 프레임워크나 CUDA 프레임워크를 지원하고 다수의 마이크로 프로세싱 유닛을 포함한다. 내장형 GPU에 포함되는 마이크로 프로세싱 유닛은 예를 들어 192 개등이 있을 수 있고 프로그램 처리 단위인 쓰레드를 수행할 수 있다. 마이크로 프로세싱 유닛들은 클러스터링될 수 있고 클러스터링된 마이크로 프로세싱 유닛들은 매크로 프로세싱 유닛을 구성한다. 내장형 GPU는 또한 다수의 매크로 프레세싱 유닛을 포함할 수 있다. 매크로 및 마이크로 프로세싱 유닛은 각 GPU의 유형에 따라 달리 지칭될 수 있다.
GPU의 활용은 CPU 또는 AP의 처리 부하를 경감시킬 수 있고 특화된 병렬 처리 능력으로 처리 성능을 향상시킬 수 있다. 그러나 애플리케이션이 순차 처리 방식으로 구성된 경우에 GPU의 활용은 CPU나 AP와의 데이터 송수신과 메모리 관리로 인해서 처리 성능이 악화되는 요인이 된다.
얼굴 검출 및 인식에 이용되는 처리 방식은 Haar 특징(features)에 기초한 처리 방식과 LBP(Local Binary Pattern) 특징에 기초한 처리 방식이 있다. LBP에 기초한 얼굴 식별 방식이 Haar 특징에 비해 LBP 특징의 분별성과 계산 효율성이 높아 추세적으로 Haar 특징에 기초한 처리 방식을 대체하고 있는 실정이다.
LBP 특징에 기초한 얼굴 식별 방식은 순차 처리 방식을 가정한 알고리즘으로서 GPU 등에 적용하여 GPU 적용에 따른 성능 향상을 위해서는 다양한 최적화 기술의 적용이 필요하다.
이와 같이, 다수의 프로세싱 유닛을 가진 장치나 칩셋 상에서 얼굴 식별에 이용되는 LBP 특징에 기초한 처리 방식의 성능 향상을 이룰 수 있도록 하는 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램이 필요하다.
본 발명은, 상술한 문제점을 해결하기 위해서 안출한 것으로서, 병렬적으로 수행 가능한 복수의 프로세싱 유닛을 이용하여 얼굴 식별이 가능하도록 하는 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램을 제공하는 데 그 목적이 있다.
또한 본 발명은 내장형 GPU를 활용하여 실시간으로 얼굴 검출 및 얼굴 인식이 가능하도록 하는 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램을 제공하는 데 그 목적이 있다.
또한 본 발명은 LBP 특징에 기초한 처리 방식을 분석하고 내장형 GPU에 최적화되도록 변경하여 고해상도의 입력 영상으로부터 실시간으로 얼굴 검출 및 얼굴 인식이 가능하도록 하는 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램을 제공하는 데 그 목적이 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 목적을 달성하기 위한 얼굴 식별 방법은 (a) 얼굴 식별을 위한 이미지의 크기를 변경하는 단계, (b) 변경된 크기의 이미지를 LBP(Local Binary Pattern) 도메인상으로 변환하는 단계 및 (c) 변환된 이미지를 스캐닝하여 얼굴을 검출하는 단계를 포함하고 단계 (b) 및 (c) 중 하나 이상은 복수의 프로세싱 유닛에 의해서 수행된다.
또한 상기와 같은 목적을 달성하기 위한 얼굴 식별 장치는 얼굴 식별 프로그램을 로딩하여 수행하는 프로세서 및 프로세서에 연결되고 복수의 프로세싱 유닛을 포함하는 GPU(Graphics Processing Units)를 포함하고, 얼굴 식별 프로그램은 얼굴 식별을 위한 이미지 크기를 변경하고 변경된 크기의 이미지를 LBP 도메인상으로 변환하고 변환된 이미지를 스캐닝하여 얼굴을 검출하도록 구성되고, GPU의 복수의 프로세싱 유닛은 LBP 도메인상으로의 변환 및 스캐닝에 따른 얼굴 검출 중 하나 이상의 기능을 프로세서와 연계하여 수행한다.
또한 상기와 같은 목적을 달성하기 위한 컴퓨터 프로그램은 하드웨어와 결합되어 얼굴 식별 방법의 각 단계를 실행시키기 위하여 매체에 저장되고 얼굴 식별 방법은 (a) 얼굴 식별을 위한 이미지의 크기를 변경하는 단계, (b) 변경된 크기의 이미지를 LBP(Local Binary Pattern) 도메인상으로 변환하는 단계 및 (c) 변환된 이미지를 스캐닝하여 얼굴을 검출하는 단계를 포함하고 단계 (b) 및 (c) 중 하나 이상은 복수의 프로세싱 유닛에 의해서 수행된다.
상기와 같은 본 발명에 따른 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램은 병렬적으로 수행 가능한 복수의 프로세싱 유닛을 이용하여 얼굴 식별이 가능하도록 하는 효과가 있다.
또한 상기와 같은 본 발명에 따른 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램은 내장형 GPU를 활용하여 실시간으로 얼굴 검출 및 얼굴 인식이 가능하도록 하는 효과가 있다.
또한 상기와 같은 본 발명에 따른 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램은 LBP 특징에 기초한 처리 방식을 분석하고 내장형 GPU에 최적화되도록 변경하여 고해상도의 입력 영상으로부터 실시간으로 얼굴 검출 및 얼굴 인식이 가능하도록 하는 효과가 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 얼굴 식별 장치의 예시적인 하드웨어 블록도를 도시한 도면이다.
도 2는 얼굴 검출을 위한 예시적인 흐름을 도시한 도면이다.
도 3은 LBP 도메인상으로의 이미지 변환을 위한 동작 예를 도시한 도면이다.
도 4는 LBP 도메인상으로의 이미지 변환을 위한 도 3의 대안적인 예를 도시한 도면이다.
도 5는 테스트 이미지의 크기 변경, 스캐닝 과정 및 스캐닝 과정에서 이루어지는 다단계 분류기의 처리 과정을 도시한 도면이다.
도 6은 테스트 이미지의 패치 이미지들을 다단계 분류기에 적용시 각 패치 이미지들의 통과 단계의 수를 나타내는 도면이다.
도 7은 인접하는 패치 이미지의 상관 관계와 프로세싱 유닛들의 병렬성을 모두 고려한 복수의 패치 이미지의 결정 및 얼굴 분류를 수행하는 예를 도시한 도면이다.
도 8은 기존의 다단계 분류기와 본 발명에 따른 다단계 분류기에서의 LBP 특징의 위치의 예를 도시한 도면이다.
도 9는 얼굴 검출 이후에 수행될 수 있는 얼굴 인식을 위한 예시적인 흐름도를 도시한 도면이다.
도 10은 카이스퀘어 거리 계산을 위한 예시적인 기능 할당 방식을 도시한 도면이다.
도 11은 카이스퀘어 거리 계산을 위한 또다른 예시적인 기능 할당 방식을 도시한 도면이다.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술 되어 있는 상세한 설명을 통하여 더욱 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명하기로 한다.
도 1은 얼굴 식별 장치(100)의 예시적인 하드웨어 블록도를 도시한 도면이다.
도 1에 따르면 얼굴 식별 장치(100)는 프로세서(150), GPU(160)(Graphics Processing Units), 내부 메모리(140), 저장 매체(110), 영상 인터페이스(120), 입/출력 인터페이스(130)를 포함한다. 이 중 일부의 블록은 설계 변경에 따라 또는 얼굴 식별 장치(100)의 용도에 따라 생략될 수 있고 더 추가될 수 있다. 예를 들어 얼굴 식별 장치(100)가 스마트폰인 경우 얼굴 식별 장치(100)는 근거리 네트워크 또는 이동 통신 네트워크에 연결가능한 통신 인터페이스 등을 더 포함한다.
여기서 본 발명에서 이용되고 있는 용어 '얼굴 식별'은 적어도 얼굴 검출 및/또는 얼굴 인식을 포함하거나 나타낸다. 따라서 본 명세서에서 '얼굴 식별'은 적어도 얼굴 검출을 나타내거나 얼굴 인식을 나타내거나 이 둘 모두를 나타낸다.
얼굴 식별 장치(100)는 예를 들어 핸드폰, 스마트폰, 태블릿 PC, 노트북, CCTV 카메라 또는 CCTV 카메라 등에 연결되는 셋탑박스, 출입문의 사용자 출입을 제어하기 위한 출입통제기기 등일 수 있다. 얼굴 식별 장치(100)에 포함되는 프로세서(150), GPU(160) 및 내부 메모리(140)는 바람직하게는 하나의 칩셋을 구성한다. 이 칩셋은 예를 들어 AP(Application Processor)로 불리는 칩셋일 수 있다. 칩셋 내의 프로세서(150)와 GPU(160)는 내부 버스(예를 들어 ARM 버스)를 통해 서로 데이터를 송수신할 수 있고 내부 메모리(140)를 이용하여 데이터를 공유할 수 있다.
각 블록들을 좀 더 구체적으로 살펴보면, 저장 매체(110)는 휘발성 메모리, 비휘발성 메모리 및 하드디스크 중 하나 이상으로 구성된다. 저장 매체(110)는 각종 프로그램을 저장하거나 프로그램에 의해서 액세스되는 각종 데이터를 임시로 저장한다. 저장 매체(110)는 본 발명에 따른 얼굴 식별 방법을 수행하는 얼굴 식별 프로그램을 저장하고 얼굴 식별 프로그램에서 이용되고 얼굴 검출 및 인식에 이용되는 각종 데이터를 저장하고 있다. 저장되어 있는 데이터에는 얼굴 검출에 이용되는 데이터, 얼굴 인식에 이용되는 데이터를 포함한다. 또한 저장 매체(110)는 얼굴 식별의 대상인 테스트 이미지 또는 하나 이상의 테스트 이미지를 포함하는 비디오 영상을 더 포함할 수 있다.
영상 인터페이스(120)는 비디오 신호를 수신한다. 영상 인터페이스(120)는 예를 들어 아날로그 또는 디지털의 비디오 신호를 수신하고 비디오 신호의 이미지 (데이터)는 저장 매체(110) 등에 프로세서(150)에 의한 제어에 따라 저장될 수 있다. 영상 인터페이스(120)는 예를 들어 CCD, CMOS 등의 카메라 센서를 포함하여 프레임별로 비디오 신호의 이미지를 프레임별로 캡쳐링한다. 캡쳐링된 프레임별 이미지는 프로세서(150)의 제어에 의해 저장 매체(110)에 비디오 영상 또는 단일 이미지로 저장된다.
입/출력 인터페이스(130)는 얼굴 식별 장치(100)의 사용자 입력을 수신하고 사용자에게 각종 데이터 등을 출력하기 위한 인터페이스이다. 입/출력 인터페이스(130)는 터치 패널, 버튼, 마이크 등을 구비하여 사용자 입력을 수신하고 수신된 사용자 입력을 프로세서(150) 등에 전달할 수 있다. 사용자 입력 중 하나는 예를 들어 얼굴 식별 프로그램의 구동 또는 시작을 요청하는 입력일 수 있다. 입/출력 인터페이스(130)는 또한 스피커, 디스플레이 등을 구비하여 사용자에게 각종 데이터를 출력할 수 있다. 예를 들어 입/출력 인터페이스(130)는 검출된 얼굴 이미지를 테스트 이미지 상에서 표시하거나 검출된 얼굴 이미지를 이미지 프레임별로 트랙킹하고 그 트래킹 과정의 검출된 얼굴 이미지를 표시할 수 있다.
내부 메모리(140)는 프로세서(150)와 GPU(160)가 서로 액세스 가능한 메모리이다. 이 내부 메모리(140)는 바람직하게는 칩셋 내에 내장되어 있기에 저장 매체(110)에 비해 프로세서(150)나 GPU(160)가 빨리 액세스할 수 있다. 내부 메모리(140)는 예를 들어 휘발성 메모리이거나 혹은 비휘발성 메모리를 더 포함할 수 있다.
프로세서(150)는 얼굴 식별 장치(100) 내의 각 블록들을 제어한다. 프로세서(150)는 바람직하게는 저장 매체(110) 또는 내부 메모리(140)에 저장되어 있는 각종 프로그램에 의해 다른 블록들을 제어한다. 프로세서(150)는 자동으로 프로그램을 내부 메모리(140)에 로딩하거나 저장 매체(110)의 특정 메모리에 로딩할 수 있다. 또는 프로세서(150)는 입/출력 인터페이스(130)를 통한 사용자 입력으로 특정 프로그램을 내부 메모리(140) 등에 로딩할 수 있다.
프로세서(150)는 적어도 저장 매체(110)에 저장되어 있는 얼굴 식별 프로그램을 내부 메모리(140) 등에 로딩하고 얼굴 식별 프로그램을 수행할 수 있도록 구성된다. 프로세서(150)는 다수의 프로세싱 유닛(151)과 L2 캐쉬 메모리(153)를 내장할 수 있다. L2 캐쉬 메모리(153)는 내부 메모리(140) 또는 저장 매체(110)의 임의 데이터를 캐쉬 라인 크기 단위로 저장하며 하나 혹은 복수의 프로세싱 유닛(151)은 저장 매체(110) 등에 저장된 프로그램 등을 수행할 수 있도록 구성된다.
프로세서(150)는 얼굴 식별 프로그램을 내부 메모리(140), L2 캐쉬 메모리(163)에 로딩하여 이 얼굴 식별 프로그램의 명령어에 따라 영상 인터페이스(120), 입/출력 인터페이스(130)를 액세스하고 GPU(160)를 구동하고 제어할 수 있다.
GPU(160)는 내부 버스를 통해 프로세서(150)에 연결된다. GPU(160)는 프로세서(150)의 부하를 줄일 수 있도록 구성되고 높은 수준의 병렬성을 제공한다. GPU(160)는 또한 CUDA나 OpenCL에 기초한 응용 프로그램을 프로세서(150)의 제어에 따라 프로세서(150)와 연동하여 수행할 수 있다. GPU(160)는 예를 들어 알려져 있는 Mali GPU이거나 Tegra K1 GPU 등일 수 있다. 이러한 GPU(160)는 프로세서(150)와 함께 단일 칩셋으로 내장되어 내장형 GPU로 지칭되기도 한다.
GPU(160)는 내부에 다수의 프로세싱 유닛(161)과 L2 캐쉬 메모리(163)를 내장하고 있다. 다수의 프로세싱 유닛(161)은 독립적으로 또는 병렬적으로 프로그램의 코드 블록(예를 들어 쓰레드, 쓰레드 블록(그룹))을 수행할 수 있다. 각각의 프로세싱 유닛(161)은 내부에 작은 단위의 마이크로 프로세싱 유닛을 더 포함할 수 있다. L2 캐쉬 메모리(163)는 내부 메모리(140) 또는 저장 매체(110)의 임의 데이터를 캐쉬 라인 크기 단위로 저장하고 프로세싱 유닛(161)들에 의해서 액세스 될 수 있다.
GPU(160)의 프로세싱 유닛(161) 또는 마이크로 프로세싱 유닛은 바람직하게는 SIMD(Single Instruction Multiple Data) 명령어를 처리하도록 구성되고 또한 벡터 엔진을 포함하도록 구성된다. 프로세싱 유닛(161)이 마이크로 프로세싱 유닛을 포함하는 경우 프로세싱 유닛(161)은 소위 WARP이라고 지칭되는 쓰레드(thread) 그룹을 수행할 수 있고 마이크로 프로세싱 유닛은 쓰레드를 수행할 수 있다. GPU(160)의 타입(예를 들어 Mali GPU , Tegra K1 GPU 등)에 따라 프로세싱 유닛(161)이 마이크로 프로세싱 유닛을 포함하지 않을 수 있고 GPU(160)의 내부 구조는 상이할 수 있다.
GPU(160) 또는 GPU(160) 내의 프로세싱 유닛(161)은 적어도 얼굴 식별 프로그램의 전체 또는 일부 기능을 수행하는 프로그램 코드(쓰레드 그룹 또는 쓰레드)를 병렬적으로 수행할 수 있다.
얼굴 식별에 관련된 GPU(160)에서의 수행 방법은 이하에서 상세히 살펴보도록 한다.
도 2는 얼굴 검출을 위한 예시적인 흐름을 도시한 도면이다.
도 2의 흐름도는 얼굴 식별 장치(100)에서 수행된다. 바람직하게는 도 2의 흐름도는 얼굴 식별 프로그램을 프로세서(150)가 로딩하여 얼굴 식별 프로그램의 특정 기능을 프로세서(150)와 연계하여 GPU(160)의 프로세싱 유닛(161)들에 할당하여 병렬로 수행되도록 구성된다. GPU(160)의 프로세싱 유닛(161)에서의 각 기능의 할당은 프로세서(150)에 의해서 수행되고 바람직하게는 얼굴 식별 프로그램에 의해서 이루어진다. 도 2의 흐름도는 하나의 테스트 이미지에 대해서 수행되는 예를 도시하였으나 복수의 테스트 이미지의 프레임들로 구성된 비디오 영상에 대해서도 반복적으로 수행될 수 있다. 본 도 2의 흐름 이후에 바로 얼굴 인식을 위한 흐름이 바람직하게 또한 진행된다.
도 2의 흐름도에서 단계 간의 전이는 바람직하게는 프로세서(150)에 의해서 이루어지고 각 단계의 수행은 프로세서(150)나 GPU(160)에 의해서 수행되며 병렬로 수행될 수 있는 부분은 프로세서(150)의 프로세싱 유닛(151)들에 의해서 또는 GPU(160)의 프로세싱 유닛(161)들에 의해서 병렬적으로 수행될 수 있다. 특정 단계들(예를 들어 단계 S103, 단계 S105, 단계 S107 등)은 바람직하게는 GPU(160)의 프로세싱 유닛(161)들에 의해서 수행될 수 있다. 이하 특별한 언급이 없는 한, 특정 단계는 프로세서(150) 또는 GPU(160)에 의해서 수행된다. 이하에서는 병렬 수행시 GPU(160)의 프로세싱 유닛(161)에서 특정 기능이 수행되는 것으로 설명하도록 한다.
먼저 프로세서(150)는 얼굴 식별 프로그램을 로딩하고 저장 매체(110) 또는 영상 인터페이스(120)로부터 얼굴 검출을 위한 대상 이미지인 테스트 이미지를 내부 메모리(140) 등에 로딩하여 시작(S100)한다.
얼굴 식별 장치(100)는 컬러 이미지인 테스트 이미지를 무채색 이미지로 그레이 스케일(gray scale)링(S101)한다.
이후 얼굴 식별 장치(100)는 그레이 스케일링된 테스트 이미지의 크기를 스케일링 인자에 따라 변경(S103)한다(도 5의 (a) 참조). 단계 S101의 수행 다음의 이 변경 단계(S103)은 생략될 수도 있다. 스케일링 인자는 특정 실수 값(예를 들어 1.2 등)으로 지정되고 이 스케일링 인자 값에 따라 테스트 이미지의 크기는 축소되고 적어도 단계 S103 내지 단계 S107이 반복된다. 일반적으로 테스트 이미지 상에 얼굴이 얼마 만큼의 크기로 나타나 있는 지를 알 수 없기에 다양한 크기의 테스트 이미지에 대해서 얼굴 검출이 필요하다.
이후 얼굴 식별 장치(100)는 스케일링되어 변경된 크기의 테스트 이미지를 LBP 도메인상으로 변환(S105)한다. 이에 따라 LBP 도메인 상으로 변환된 테스트 이미지를 얼굴 식별 장치(100)가 획득할 수 있다.
도 3은 LBP 도메인상으로의 이미지 변환을 위한 동작 예를 도시한 도면이다. 도 3의 예는 테스트 이미지의 LBP 도메인으로의 변환 대상 픽셀인 센터 픽셀(54)에 대한 LBP 특징을 계산하기 위한 예로서 이러한 변환 예는 테스트 이미지의 모든 픽셀에 대해서 이루어진다. LBP 도메인상으로 변환을 위한 각 픽셀의 변환은 다른 픽셀과 독립적으로 이루어질 수 있어 바람직하게는 GPU(160)의 프로세싱 유닛(161)들 각각에 의해서 또는 프로세싱 유닛(161)의 마이크로 프로세싱 유닛들 각각에 의해서 수행된다.
도 3의 동작 예를 구체적으로 살펴보면, 센터 픽셀(54)은 인접하는 8개의 픽셀들과 비교되고 인접 픽셀이 큰 경우에는 1로 작은 경우에는 0으로 설정하고 설정된 일련의 1과 0의 결합(예를 들어 시계 반대 방향)으로 바이너리 패턴이 계산된다. 이 바이너리 패턴은 LBP 특징을 나타낸다. 도 3의 동작 예는 하나의 픽셀에 대한 계산 예를 나타내는 것이므로 테스트 이미지의 모든 픽셀에 대해서 LBP 특징이 계산되어야 하고, 1개의 대상 픽셀인 센터 픽셀과 인접하는 8개의 인접 픽셀만 데이터로서 필요하기에 프로세싱 유닛(161)들 또는 마이크로 프로세싱 유닛들 각각에 의해서 병렬적으로 수행될 수 있다.
프로세싱 유닛(161)들 각각에, 바람직하게는 마이크로 프로세싱 유닛들 각각에, 각각의 센터 픽셀이 할당되어 센터 픽셀별로 인접하는 8개의 픽셀들을 이용하여 그 비교에 따라 센터 픽셀별 LBP 특징인 바이너리 패턴이 계산된다. 각각의 마이크로 프로세싱 유닛들은 적어도 9개의 픽셀들을 L2 캐쉬 메모리(163) 또는 마이크로 프로세싱 유닛들 내부의 메모리(예를 들어 L1 캐쉬 메모리 또는 레지스터)에 로딩하여야 하기에 메모리 등으로의 픽셀 데이터 로딩에 많은 처리 시간이 요한다.
한편, 도 4는 도 3의 대안적인 예를 도시한 도면이다.
도 3과는 달리 도 4는 하나의 프로세싱 유닛(161) 또는 마이크로 프로세싱 유닛이 복수개의 센터 픽셀들에 대해서 바이너리 패턴들을 계산하는 예를 도시한 도면이다.
(마이크로) 프로세싱 유닛(161)이 하나의 센터 픽셀에 대해서 바이너리 패턴을 계산하는 것 대신에 서로 인접하는 센터 픽셀 영역의 센터 픽셀들에 대해서 각 센터 픽셀들의 인접하는 픽셀들을 이용하여 바이너리 패턴을 계산할 수 있다.
예를 들어 프로세싱 유닛(161)은 2*2의 센터 픽셀 영역과 이 센터 픽셀 영역 주위의 12개의 인접 픽셀들을 프로세싱 유닛(161) 내부의 메모리 또는 L2 캐쉬 메모리(163)에 로딩하여 이 인접 픽셀들을 이용하여 센터 픽셀 영역의 4개의 바이너리 패턴을 계산할 수 있다. 이에 따라 56% 이상의 메모리 액세스를 줄일 수 있다.
프로세싱 유닛(161)들 각각에 할당된 센터 영역의 크기는 다양하게 구성될 수 있고 센터 영역은 적어도 두 개의 인접하는 센터 픽셀을 포함한다. 이에 따라 인접 픽셀들과 센터 픽셀 영역의 그레일 스케일된 픽셀 데이터는 단일의 프로세싱 유닛(161)에 의해서 액세스 될 수 있는 단일 메모리에 로딩되고 이 단일 메모리는 예를 들어 L2 캐쉬 메모리(163), L1 캐쉬 메모리 또는 레지스터일 수 있다.
이러한 과정을 통해, 얼굴 식별 장치(100)는 LBP 도메인으로 테스트 이미지를 변환한다.
단계 S105 이후에 얼굴 식별 장치(100)는 LBP 도메인으로 변환된 테스트 이미지를 스캐닝하여 특정 크기에서의 얼굴을 검출(S107)한다.
도 5는 테스트 이미지의 크기 변경, 스캐닝 과정 및 스캐닝 과정에서 이루어지는 다단계 분류기(P. Viola, M. Jones, "Rapid Object Detection using a Boosted Cascade of Simple Features", Computer Vision and Pattern Recognition (CVPR), 2001 참조)의 처리 과정을 도시한 도면이다.
본 발명에 따른 얼굴 식별 방법의 이미지 크기는 변경(단계 S103))되나 변경된 테스트 이미지 내에서 얼굴 검출을 위한 패치 이미지는 고정(도 5의 (a) 참조)된다. 일반적으로 알려져 있는 얼굴 검출을 위한 스캐닝 과정은 도 5의 (b)와 같이 패치 이미지를 좌측에서 우측으로(X축으로) 위에서 아래 방향으로(Y축으로) 순차적으로 스캐닝 과정을 수행한다. 순차적으로 스캐닝되는 각 패치 이미지에 대하여 다단계 분류기로부터 출력되는 결과에 따라 해당 패치 이미지가 얼굴인지를 검출한다. 이와 같이 기존의 스캐닝 과정은 순차적인 과정으로 수행되나 본 발명에 따른 다수의 프로세싱 유닛(161)에서 병렬로 수행하기 위해서는 병렬화 작업이 필요하다. 여기서 패치 이미지는 검색 윈도우(search window)로 지칭될 수도 있다.
단계 S107의 과정을 병렬화하기 위해서, 얼굴 식별 장치(100)는 동시에 수행 가능하도록 할 수 있는 복수의 패치 이미지를 결정한다. 예를 들어 얼굴 식별 장치(100)는 X축 방향으로의 패치 이미지들과 Y축 방향으로의 패치 이미지들을 결정한다. 각각의 패치 이미지들은 순차적 스캐닝에서 스캐닝되는 패치 이미지들로서 병렬로 수행될 수 있다. 서로 인접하는 패치 이미지들은 이미지들의 일부가 서로 중복된다.
X축 방향의 인접 패치 이미지들은 예를 들어 X축의 스캐닝 인자(예를 들어 2 픽셀)에 의해서 X축의 스캐닝 인자의 패치 이미지의 부분만큼만 서로 다르다. 또한 Y축 방향의 인접 패치 이미지들은 예를 들어 Y축의 스캐닝 인자(예를 들어 2 픽셀)에 의해서 Y축의 스캐닝 인자의 패치 이미지의 부분만큼만 서로 다르다. 이와 같이 결정된 패치 이미지들의 인접 패치 이미지들은 X축 또는 Y축으로 서로 중복되고 스캐닝 인자만큼만, 즉 스캐닝 인자의 픽셀 개수만큼의, 서로 다른 이미지 부분을 가진다. 중복되는 부분의 픽셀 개수는 스캐닝 인자에 의해서 결정되고 지정된다. 각각의 패치 이미지들에 대해서 이 패치 이미지가 얼굴인지 아닌지를 다단계 분류기를 통해 분류된다. 각 패치 이미지들에 대한 분류 과정은 적어도 프로세싱 유닛(151, 161)들(바람직하게는 GPU(160)의 프로세싱 유닛(161)들)에 의해서 수행되어 병렬성을 확보하고 얼굴 검출 과정을 최선으로 빨리 수행할 수 있다.
결정된 패치 이미지들의 개수는 테스트 이미지의 크기와 X축과 Y축의 스캐닝 인자에 의해서 결정된다. 따라서 테스트 이미지의 크기가 클수록 스캐닝 인자가 작을 수록 패치 이미지들의 개수는 많아지고 비록 병렬성을 확보하더라도 처리 시간이 많이 요한다. 따라서 얼굴 검출의 성능 저하없이도 처리 시간을 줄일 수 있는 방안이 필요하다.
얼굴 인식과 관련하여 다단계 분류기를 살펴보면, 다단계 분류기는 복수의 테스트 단계로 구성되어 있고(도 5의 (c) 참조) 각 단계는 패치 이미지의 특정 LBP 특징들의 합을 미리 지정된 임계치와 비교하고 임계치를 초과하는 경우에 해당 단계를 통과한다. 만일 임계치 이하인 경우에는 얼굴 분류 실패를 나타내는 결과 값을 반환한다. 통과에 따라 다음 단계에서, 패치 이미지의 특정 LBP 특징들의 합과 지정된 임계치를 비교하여 이전 단계와 동일하게 통과 여부를 결정한다. 이전 단계에서 이용되는 LBP 특징들의 위치들과 다음 단계에서 이용되는 LBP 특징들의 위치들은 일반적으로 서로 다르다.
도 6은 테스트 이미지의 패치 이미지들을 다단계 분류기에 적용시 각 패치 이미지들의 통과 단계의 수를 나타내는 도면이다. 도 6에서 알 수 있는 바와 같이, X축으로(또는 Y축으로) 인접하는 패치 이미지들은 다단계 분류기의 통과 단계의 수에 있어서 서로 상관 관계가 있음을 알 수 있다. 즉, 하나의 패치 이미지가 통과 단계의 수가 작을 수록 바로 인접하는 패치 이미지의 통과 단계 또한 작아 얼굴이 아닐 가능성이 높은 것을 도 6을 통해서 알 수 있다. 이러한 특성을 이용하여 현재 패치 이미지가 얼굴이 아닐 가능성이 높다면(즉 다단계 분류기의 통과 단계의 수가 작다면) 바로 인접하고 중복되는 다음 패치 이미지 또한 얼굴이 아닐 가능성이 높다. 이러한 특성의 적용은 또한 이전 패치 이미지에서의 결과를 반영해야 하기에 순차적인 수행이 필요하고 이에 따라 독립적으로 수행할 수 있는 프로세싱 유닛(161)의 병렬성을 이용하기 힘들어진다.
도 7은 이러한 특성과 프로세싱 유닛(161)들의 병렬성을 모두 고려한 복수의 패치 이미지의 결정 및 얼굴 분류를 수행하는 예를 도시한 도면이다.
도 7을 참조하여 좀 더 구체적으로 살펴보면, 얼굴 식별 장치(100)는 복수의 패치 이미지의 결정 과정 동안에 N(N은 2 이상의 정수)개의 그룹으로 X축과 Y축의 스캐닝 인자에 따른 패치 이미지들을 그룹핑한다. 그룹핑된 각 그룹의 패치 이미지들은 예를 들어 하나의 축(예를 들어 Y축)에 대해서만 서로 중복된다. i(0<=i<N-2)번째 그룹과 i+1 번째 그룹의 패치 이미지들은 스캐닝 인자에 의해서 일부 이미지가 서로 중복된다. 그룹핑의 N의 값과 스캐닝 인자의 값에 따라서는 특정 축(Y축)에서의 동일한 X값의 범위를 가지는 패치 이미지들을 복수개 가질 수 있고 소위 모듈러(modular) 연산을 이용하여 각 그룹의 패치 이미지들이 결정된다.
각 그룹의 패치 이미지들이 얼굴인지를 분류하기 위해서 복수의 프로세싱 유닛(161)은 0번째(i=0) 그룹의 패치 이미지들 각각을 프로세싱 유닛(161)에서 구현된 다단계 분류기로 얼굴인지 분류한다. 이후 다단계 분류기에서의 결과 값을 내부 메모리(140), L2 캐쉬 메모리(163) 등에 저장한다. 이미 0번째 그룹의 패치 이미지들이 스캐닝 인자에 의해서 많은 개수(예를 들어 100개 이상)로 구성되어 있기 때문에 복수의 프로세싱 유닛(161)들 각각을 충분히 활용할 수 있다.
이후 복수의 프로세싱 유닛(161)은 1번째(i=1) 그룹의 패치 이미지들 각각을 로딩하여 다단계 분류기로 해당 패치 이미지들이 얼굴인지를 분류한다. 이 과정에서 각 패치 이미지들을 수행하는 프로세싱 유닛(161)은 0번째(i-1) 그룹의 인접하고 중복되는 패치 이미지의 결과 값에 기초하여 다단계 분류기를 통한 얼굴 이미지의 분류를 생략할 수 있다. 예를 들어 0번째 그룹의 인접 패치 이미지가 첫번째 단계에서 얼굴 인식에 실패한 경우, 1번째 그룹의 패치 이미지는 다단계 분류기를 통한 단계 테스트 없이도 얼굴이 아님을 프로세싱 유닛(161)이 결정할 수 있다.
다단계 분류기는 다수의 단계로 구성된다. 첫번째 단계 테스트를 통해서 다음 패치 이미지의 테스트를 생략하도록 구성되는데, 더 높은 단계 테스트의 실패를 이용할 수도 있다. 이 경우에는 처리 속도를 높일 수 있으나 오탐율이 높아지는 문제점이 있다. 따라서 첫번째 단계 테스트를 통해 테스트를 생략하는 것이 처리 속도 향상과 정확도를 높일 수 있다.
이와 같이 복수의 프로세싱 유닛(161)은 각 그룹들을 순차적으로 수행하고 각 그룹의 수행에서 이전 그룹의 결과 값에 기초하여 테스트를 생략하여 얼굴 분류의 처리 속도를 향상 시킬 수 있다.
다단계 분류기로 얼굴 이미지의 분류 과정을 좀 더 살펴보면, 다단계 분류기의 다수의 단계는 약한 분류기(weak clasifier)로 구성(도 5의 (c) 참조)되어 있고 각 단계 분류기는 패치 윈도우의 특정 위치들의 LBP 특징들을 로딩하고 이를 합산하여 미리 지정된 임계치와 비교하도록 구성된다.
각 단계에서의 LBP 특징의 특정 위치들은 분별 능력(discriminative power)에 따라 미리 결정되어 있고 산재되어 있다. GPU(160)의 프로세싱 유닛(161) 또는 L2 캐쉬 메모리(163) 등은 다수의 연속적인 위치의 데이터를 처리(SIMD)하거나 로딩할 수 있도록 구성된다. 따라서 특정 위치들이 산재되어 있는 경우 프로세싱 유닛(161) 또는 L2 캐쉬 메모리(163)의 처리 능력을 충분히 활용하지 못해 성능 저하의 요인이 된다.
이러한 문제점을 고려하여 본 발명에 따른 다단계 분류기는 패치 이미지의 연속적인 위치에 LBP 특징들이 위치하도록 수정되었다. 기존의 다단계 분류기의 각 단계와 동일한 얼굴 검출 성능을 가지기 위해서 기존의 산재된 특정 위치들의 개수보다 더 많은 LBP 특징들이 이용된다.
도 8은 기존의 다단계 분류기와 본 발명에 따른 다단계 분류기에서의 LBP 특징의 위치의 예를 도시한 도면이다. 도 8에서 알 수 있는 바와 같이 다단계 분류기에 의한 얼굴 이미지 분류는 각 단계에서 한 그룹(i)의 패치 이미지의 특정 위치에 지정되고 연속적인 LBP 특징의 바이너리 패턴들을 메모리의 순차적인 메모리 주소(예를 들어 내부 메모리(140), 저장 매체(110) 등의 메모리 주소)로부터 로딩하고 순차적으로 로딩된 바이너리 패턴들을 합산하여 임계치와 비교하고 임계치 이하인 경우에 얼굴 분류 실패를 나타내는 결과 값을 반환하고 반환된 결과 값은 다음 그룹(i+1)에 이용되기 위해서 저장된다. 특히 첫번째 단계에서의 분류 실패를 나타내는 결과 값에 따라 다음 그룹의 패치 이미지에 대한 얼굴 이미지 분류를 생략할 수 있다. 이전 그룹(i)과 다음 그룹(i+1)의 패치 이미지는 서로 인접하고 지정된 픽셀만큼 중복된다.
이러한 과정을 통해 그룹간 상관관계를 활용하여 특정 패치 이미지의 테스트를 생략할 수 있고 프로세싱 유닛(161)의 메모리 액세스 특징을 활용해서 성능 저하 없이 고속으로 얼굴인지의 분류가 가능하다.
도 2의 단계 S107의 수행 이후에 얼굴 식별 장치(100)는 이미지 크기의 변경이 가능한지를 확인(S109)한다. 예를 들어 얼굴 식별 장치(100)는 현재 단계 S103에서 변경된 이미지가 다시 스케일링 인자의 비율로 축소한 경우에 패치 이미지의 크기보다 큰지로 변경가능한지를 확인할 수 있다. 여기서 패치 이미지는 바람직하게는 직사각형의 형태를 띠고 그 크기는 적어도 이 패치 이미지 상에서 얼굴을 식별할 수 있는 최소 크기에 해당한다.
단계 S109에서의 확인에 따라 변경가능한 경우에는 단계 S103으로 전이하여 얼굴 식별 장치(100)는 단계 S103 내지 단계 S107을 반복 수행하고 그렇지 않은 경우에는 단계 S111로 전이한다.
단계 S103 내지 단계 S107의 반복 수행과 단계 S107에서의 스캐닝에 따라 다수의 얼굴이 검출될 수 있다. 다수의 얼굴의 패치 이미지는 동일한 픽셀 영역을 포함하고 단지 이미지의 스케일링만 다를 뿐 동일한 얼굴을 나타낼 수 있다. 따라서 동일한 얼굴을 나타내는 패치 이미지들은 하나의 그룹으로 그룹핑되고 이중 하나의 패치 이미지만이 이후 얼굴 인식 과정에서 이용된다. 얼굴 인식 과정에서 이용되는 패치 이미지 또는 검색 윈도우의 크기는 고정되어 있다. 따라서 하나의 패치 이미지 선택 과정에서 얼굴 인식 과정에서 이용되는 이미지의 크기와 동일한 크기의 패치 이미지가 선택된다. 만일 동일한 크기의 패치 이미지가 없는 경우에는 임의로 선택된 특정 패치 이미지(바람직하게는 해상도가 가장 높은 패치 이미지)가 동일한 크기로 스케일링된다.
단계 S111이후에 얼굴 검출 과정이 종료(S113)된다.
도 2의 얼굴 검출 흐름은 반복적으로 수행될 수 있고 예를 들어 비디오 영상의 각 프레임 이미지에 대해서 반복적으로 수행될 수 있다.
도 2의 흐름도에서 LBP 과정(S105)과 스캐닝 과정(S107) 중 하나 이상이 GPU(160)의 복수의 프로세싱 유닛(161)에서 수행되도록 하였다. 얼굴 검출의 프로파일링 결과 스캐닝 과정은 약 47% 내외의 수행 시간 또는 성능 점유율을 가지고 LBP 과정이 31% 내외의 수행 시간 또는 성능 점유율을 가지고 있기에 이 두 기능을 중심으로 수행 시간을 줄이고 성능을 향상시켜 기존 방식에 비해 최소 3배 이상의 성능 향상을 가질수 있었다.
도 9는 얼굴 검출 이후에 수행될 수 있는 얼굴 인식을 위한 예시적인 흐름도를 도시한 도면이다. 도 9의 흐름도는 얼굴 인식을 위한 전형적인 알고리즘을 도시한 도면으로서 LBP 특징에 기반한 LBPH 알고리즘(T.Ahonen, A. Hadid, M. Pietikainen, "Face Description With Local Binary Patterns: Application to Face Recognition", IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.28, no.12, Dec.2006 참조)을 나타낸다. 도 9의 흐름도는 얼굴 식별 장치(100)에서 수행되며 얼굴 식별 프로그램에 의해서 수행된다. 바람직하게는 도 9의 흐름도는 얼굴 식별 프로그램을 프로세서(150)가 로딩하여 얼굴 식별 프로그램의 특정 기능을 GPU(160)의 프로세싱 유닛(161)들에 할당하여 병렬로 수행되도록 구성된다. GPU(160)의 프로세싱 유닛(161)의 각 기능의 할당은 프로세서(150)에 의해서 수행되고 바람직하게는 얼굴 식별 프로그램에 의해서 이루어진다. 또한 도 9의 특정 단계는 생략될 수 있다 예를 들어 단계 S301과 단계 S303은 얼굴 검출의 과정(도 2 참조)에 따라 생략된다. 이해를 위해 단계 S301 및 단계 S303도 여기서 살펴보도록 한다.
먼저 단계 S301에서 얼굴 식별 장치(100)는 인식 대상인 테스트 이미지를 일정한 크기의 이미지로 변경(S301)한다. 이미지 크기의 변경은 얼굴 식별 장치(100)의 저장 매체(110) 등에 저장된 트레이닝된 얼굴 이미지들과 동일한 크기로의 변경을 위한 것이다. 얼굴 식별 장치(100)는 저장 매체(110)에 DB 등을 활용하여 트레이닝된 이미지들을 저장하고 바람직하게는 해당 이미지들의 히스토그램을 저장한다. 각각의 트레이닝된 이미지는 동일성 판단을 위한 특정 대상자의 얼굴이다. 검출 과정을 통해 테스트 이미지가 특정인 인지를 판단할 수 있다.
이후 단계 S303에서 도 2의 단계 S105와 동일하게 테스트 이미지를 LBP 도메인상으로 변환한다. 이에 따라 테스트 이미지는 일련의 LBP특징들의 바이너리 패턴들로 변환된다.
LBP 특징들로 변환된 테스트 이미지를 얼굴 식별 장치(100)는 히스토그램화(S305)한다. 히스토그램화 과정에서 얼굴 식별 장치(100)는 변환된 테스트 이미지를 그리드 영역들로 분할하고 각각의 분할된 그리드 영역에 대해서 히스토그램화하고 각 그리드 영역의 히스토그램을 결합해서 단일의 히스토그램 특징을 구성한다. 히스토그램은 예를 들어 256개의 빈(bin)으로 구성되고 그리드 영역은 예를 들어 이미지의 X축으로 7개, Y축으로 7개로 분할되어 총 49개로 구성된다.
이후 단계 S307에서 이미 저장되어 있는 트레이닝 이미지 각각과 테스트 이미지에 대해서 카이스퀘어 거리(Chi-square distance)를 계산한다. 각각의 이미지는 각각의 그리드 영역에 대해서 히스토그램화되어 있다.
카이스퀘어 거리의 계산후에 가장 낮은 카이스퀘어 거리를 가지고 카이스퀘어 거리가 지정된 임계치 이하인 트레이닝된 이미지의 특정인을 테스트 이미지의 얼굴의 신원으로 결정하고 이후 종료(S400)한다.
얼굴 검출에 있어서는 카이스퀘어 거리의 계산에 총 실행 시간 중 약 99% 정도를 차지하는 것으로 알 수 있었다. 따라서 카이스퀘어 거리의 계산에 소요되는 시간을 줄이는 것이 중요하다.
카이스퀘어 거리의 계산을 살펴보면, 카이스퀘어 거리는
Figure pat00001
이다. 여기서,
Figure pat00002
Figure pat00003
는 비교될 특징 히스토그램을 나타내고 예를 들어
Figure pat00004
는 테스트 이미지의 히스토그램을 나타내고
Figure pat00005
는 하나의 트레이닝된 이미지의 히스토그램을 나타낸다. 인덱스 i는 히스토그램의 빈들 중 하나를 나타내고, 인덱스 j는 특정 하나의 그리드 영역을 나타낸다. 예를 들어 i는 0에서 255의 값을 가지고, j는 0에서 48 사이의 값을 가진다.
Figure pat00006
는 j번째 그리드 영역의 가중치를 나타낸다. 그리드 영역 각각은 상이한 가중치를 가질 수 있는 데, 얼굴 검출에 분별력을 가지는 특정 그리드 영역은 다른 그리드 영역보다 더 높은 가중치를 가질 수 있다. 예를 들어 눈이나 입의 그리드 영역은 다른 영역에 비해서 더 높은 가중치를 가질 수 있다.
테스트 이미지는 모든 트레이닝된 이미지들과 카이스퀘어 거리가 계산되고 가장 낮은 카이스퀘어 거리를 가지고 카이스퀘어 거리가 미리 지정된 임계치 이하인 트레이닝된 이미지와 동일한 얼굴인 것으로 식별될 수 있다.
카이스퀘어 거리 계산의 병렬화는 수학식 1에 따라 합산 과정(sum reduction)이 필요하다. 이 합산 과정은 테스트 이미지와 트레이닝된 이미지에서 각 그리드 영역에 대해 각 히스토그램의 두개의 빈사이에서의 모든 부분적인 카이스퀘어 거리를 합산하는 과정으로 이루어진다.
카이스퀘어 거리 계산을 병렬화함으로써 얼굴 인식에 소요되는 실행시간을 획기적으로 줄일 수 있는 데, GPU(160)의 복수의 프로세싱 유닛(161)을 이용하여 이루어지고 바람직하게는 프로세싱 유닛(161)의 복수의 마이크로 프로세싱 유닛을 이용하여 이루어진다. 카이스퀘어 거리 계산은 복수의 프로세싱 유닛(161) 또는 복수의 마이크로 프로세싱 유닛에 의해서 프로세서(150)와 연계하여 수행된다.
여기서, 카이스퀘어 거리 계산을 위해 3종류의 카이스퀘어 거리 계산의 기능과 프로세싱 유닛(161)으로의 맵핑 방법이 제안된다.
첫번째 방식은 트레이닝 이미지 하나를 프로세싱 유닛(161)내의 마이크로 프로세싱 유닛에 프로세서(150)가 얼굴 식별 프로그램을 이용하여 할당하고 각 마이크로 프로세싱 유닛이 트레이닝 이미지 하나에 대하여 카이스퀘어 거리를 계산하는 것이다. 이 방식은 저장 매체(110)에 아주 많은 트레이닝 이미지가 존재하여 카이스퀘어 거리를 계산할 트레이닝 이미지가 많을 때 유리하다.
두번째 방식은 각각의 히스토그램을 마이크로 프로세싱 유닛에 할당하는 방식이다.
도 10은 이러한 두번째 방식의 프로세싱 유닛(161)과 마이크로 프로세싱 유닛의 할당 방식을 도식화한 예를 도시하고 있다.
도 10에서 알 수 있는 바와 같이 하나의 프로세싱 유닛(161)은 테스트 이미지와 트레이닝된 이미지 사이의 카이스퀘어 거리를 계산하고 다른 프로세싱 유닛(161)은 테스트 이미지와 다른 트레이닝된 이미지 사이의 카이스퀘어 거리를 계산한다. 프로세싱 유닛(161)내의 마이크로 프로세싱 유닛 각각은 이미지의 분할된 각 그리드 영역(예를 들어 0~48)에 대해서 부분적인 카이스퀘어 거리를 계산한다. 이에 따라 하나의 마이크로 프로세싱 유닛은 특정 하나의 그리드 영역에 대한 부분적인 카이스퀘어 거리를 계산하고 다른 마이크로 프로세싱 유닛은 특정 다른 하나의 그리드 영역에 대한 부분적인 카이스퀘어 거리를 계산한다. 각각의 부분적인 카이스퀘어 거리는 또한 각 그리드 영역의 가중치(
Figure pat00007
)로 곱해지고, 가중치가 부여된 부분적인 카이스퀘어 거리는 원자단위 덧셈을 이용하여 합산한다. 합산단계는 각 그리드 영역을 처리하는 마이크로 프로세싱 유닛에 의해서 서로 독립적으로 수행되거나 모든 마이크로 프로세싱 유닛의 처리 이후에, 특정 하나의 마이크로 프로세싱 유닛에 의해서 수행될 수 있다.
도 10의 방식에 따라 마이크로 프로세싱 유닛은 빈 개수만큼 반복 수행하고 마이크로 프로세싱 유닛들은 하나 이상의 그리드 영역을 할당받아 카이스퀘어 거리의 계산을 위해 서로 협업한다.
여기서, 도 10의 m은 마이크로 프로세싱 유닛의 인덱스를 나타낸다. 예를 들어 49개의 마이크로 프로세싱 유닛을 프로세싱 유닛(161)이 가지는 경우 각각의 마이크로 프로세싱 유닛은 하나의 그리드 영역에 대한 부분적인 카이스퀘어 거리를 계산한다. 만일 마이크로 프로세싱 유닛이 8개로 구성된 경우, 각각의 마이크로 프로세싱 유닛은 7개 또는 8개의 그리드 영역에 대해서 순차적으로 부분적인 카이스퀘어 거리를 계산한다.
세번째 방식은 히스토그램의 각 빈들을 하나의 마이크로 프로세싱 유닛에 할당하는 방식이다. 도 11은 이러한 방식을 나타내고 있는 데, 하나의 프로세싱 유닛(161)은 하나의 그리드 영역에 대한 부분적인 카이스퀘어 거리를 계산하고 다른 하나의 프로세싱 유닛(161)은 다른 하나의 그리드 영역에 대한 카이스퀘어 거리를 계산한다. 프로세싱 유닛(161)에 의해서 계산된 부분적인 카이스퀘어 거리를 프로세서(150)나 하나의 프로세싱 유닛(161)을 이용하여 테스트 이미지와 트레이닝된 이미지의 카이스퀘어 거리를 계산한다.
세번째 방식에서 프로세싱 유닛(161) 내의 마이크로 프로세싱 유닛들은 히스토그램의 하나의 빈에 대한 부분적인 카이스퀘어 거리를 계산한다. 예를 들어 하나의 마이크로 프로세싱 유닛은 특정 하나의 빈(예를 들어 0번째 빈)에 대한 부분적인 카이스퀘어 거리를 계산하고 동일한 프로세싱 유닛(161) 내의 다른 하나의 마이크로 프로세싱 유닛은 다른 특정 하나의 빈(예를 들어 1번째 빈)에 대한 부분적인 카이스퀘어 거리를 계산한다. 각각의 마이크로 프로세싱 유닛은 계산된 부분적 카이스퀘어 거리를 원자단위 덧셈 또는 합산 과정(sum reduction)을 통해 각 그리드 영역에 대한 부분적인 카이스퀘어 거리를 계산한다.
여기서, 도 11의 m은 프로세싱 유닛(161)의 인덱스를 나타낸다. 예를 들어 49개의 프로세싱 유닛(161)을 GPU(160)가 가지는 경우, 각각의 프로세싱 유닛(161)은 하나의 그리드 영역에 대한 부분적인 카이스퀘어 거리를 계산한다. 만일 GPU(160)의 프로세싱 유닛(161)이 8개로 구성된 경우, 각각의 프로세싱 유닛(161)은 7개 또는 8개의 그리드 영역에 대해서 순차적으로 부분적인 카이스퀘어 거리를 계산한다.
두번째 방식 및 세번째 방식은 GPU(160)의 병렬성을 극대화할 수 있도록 구성되고 이에 따라 실행 시간을 줄일 수 있는 장점이 존재한다. 예를 들어 두번째 방식은 첫번째 방식에 비해 적어도 2배 이상의 실행 시간을 줄일 수 있고 세번째 방식은 적어도 3배 이상의 실행 시간을 줄일 수 있었다.
이상의 도 2 및 도 9을 통해서 얼굴 검출 및 인식 방법에 대해서 살펴보았다. 본 발명에 따른 얼굴 검출 및 인식 방법은 LBP 특징에 기반으로 하고 있고 GPU(160)의 프로세싱 유닛(161)의 하드웨어 구조를 활용하여 실행 성능을 극대화할 수 있도록 구성된다. Mali GPU에서는 HD 해상도의 프레임 이미지에 대해 초당 22 프레임 이상의 얼굴 검출 및 인식이 가능하였고 Tegra K1 GPU에서는 HD 해상도의 프레임 이미지에 대해 초당 38 프레임 이상의 얼굴 검출 및 인식이 가능하여 실시간 비디오 영상의 수신과 함께 수신된 비디오 영상의 프레임별로 프레임 시간 내에서 처리가 가능하다.
도 2 및/또는 도9의 얼굴 검출 및 인식 방법은 컴퓨터 프로그램으로 구성될 수 있다. 이 컴퓨터 프로그램은 도 1의 얼굴 식별 장치의 예시적인 하드웨어 블록들과 결합하여 도 2 및/또는 도 9의 각 단계를 실행시킬수 있도록 구성되고 이 컴퓨터 프로그램은 각종 매체에 저장된다. 예를 들어 얼굴 식별 프로그램은 하드디스크, USB, DVD, CD 등과 같은 저장 매체에 저장되어 이동가능하거나 온라인을 통해 배포될 수 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니다.
100 : 얼굴 식별 장치
110 : 저장 매체 120 : 영상 인터페이스
130 : 입/출력 인터페이스 140 : 내부 메모리
150 : 프로세서 151 : 프로세싱 유닛
153 : L2 캐쉬 메모리
160 : GPU 161 : 프로세싱 유닛
163 : L2 캐쉬 메모리

Claims (18)

  1. (a) 얼굴 식별을 위한 이미지의 크기를 변경하는 단계;
    (b) 변경된 크기의 상기 이미지를 LBP(Local Binary Pattern) 도메인상으로 변환하는 단계; 및
    (c) 변환된 상기 이미지를 스캐닝하여 얼굴을 검출하는 단계;를 포함하며,
    상기 단계 (b) 및 (c) 중 하나 이상은 복수의 프로세싱 유닛에 의해서 수행되는,
    얼굴 식별 방법.
  2. 제1항에 있어서,
    (d) 검출된 얼굴 영역에 대응하고 LBP 도메인상으로 변환된 상기 이미지의 영역에 대해 히스토그램을 생성하는 단계; 및
    (e) 생성된 히스토그램과 복수의 히스토그램 각각과 카이스퀘어 거리(Chi-square Distance)를 계산하는 단계;를 더 포함하며,
    상기 단계 (d) 내지 단계 (e)는 얼굴 인식에 이용되어지고 상기 단계 (e)는 상기 복수의 프로세싱 유닛에 의해서 수행되는,
    얼굴 식별 방법.
  3. 제1항에 있어서,
    상기 단계 (a) 내지 (c)는 상기 이미지의 크기를 변경하는 인자인 스케일링 인자(scaling factor)에 따라 반복 수행되는,
    얼굴 식별 방법.
  4. 제1항에 있어서,
    상기 단계 (b)는 LBP 도메인으로의 변환전의 이미지의 각 센터 픽셀 영역에 대해서 상기 각 센터 픽셀 영역에 인접한 픽셀들을 이용하여 센터 픽셀별 바이너리 패턴(binary pattern)을 계산하는 단계;를 포함하고,
    상기 센터 픽셀별 바이너리 패턴의 계산 단계는 상기 복수의 프로세싱 유닛에 각 센터 픽셀 영역을 할당하여 상기 복수의 프로세싱 유닛에 의해 독립적으로 수행되며,
    상기 센터 픽셀 영역은 적어도 인접하는 2개 이상의 픽셀을 포함하는,
    얼굴 식별 방법.
  5. 제4항에 있어서,
    상기 인접한 픽셀 및 상기 센터 픽셀 영역의 픽셀 데이터는 단일의 프로세싱 유닛에 의해서 액세스될 수 있는 단일 메모리에 바이너리 패턴의 계산을 위해 로딩되는,
    얼굴 식별 방법.
  6. 제1항에 있어서,
    상기 단계 (c)는 (c-1) 변환된 상기 이미지에서 스캐닝을 위한 복수의 패치 이미지를 결정하는 단계; 및 (c-2) 상기 복수의 패치 이미지 각각에 대해 상기 패치 이미지가 얼굴인지를 분류하는 단계;를 포함하며,
    상기 복수의 패치 이미지 각각에 대해 상기 패치 이미지가 얼굴인지를 분류하는 단계는 상기 복수의 프로세싱 유닛에 의해서 수행되는,
    얼굴 식별 방법.
  7. 제6항에 있어서,
    상기 단계 (c-1)은, N(N>=2) 개의 그룹으로 패치 이미지들을 그룹핑하고 그룹핑된 각 i(0<=i<N-2)번째 그룹과 i+1번째 그룹의 패치 이미지들의 일부 이미지가 서로 중복되도록 복수의 패치 이미지를 결정하며 ,
    상기 단계 (c-2)는 상기 복수의 프로세싱 유닛에서 i번째 그룹의 패치 이미지들 각각을 다단계 분류기(cascaded classifier)로 얼굴 이미지인지 분류하는 단계; 및 상기 다단계 분류기의 결과 값에 기초하여 상기 복수의 프로세싱 유닛에서 i+1번째 그룹의 패치 이미지들 중 하나 이상의 패치 이미지들에 대해 다단계 분류기에서의 얼굴 이미지 분류를 생략하는 단계;를 포함하는,
    얼굴 식별 방법.
  8. 제7항에 있어서,
    상기 다단계 분류기로 얼굴 이미지인지 분류하는 단계는 제1 단계에서 상기 패치 이미지의 지정된 바이너리 패턴들을 메모리의 순차적인 메모리 주소로부터 로딩하는 단계; 상기 바이너리 패턴들을 임계치와 비교하는 단계; 및 만일 임계치 이하인 경우에 제1 단계에서 얼굴 분류 실패를 나타내는 결과 값을 반환하는 단계;를 포함하며,
    상기 다단계 분류기에서의 얼굴 이미지 분류를 생략하는 단계는 제1 단계에서의 얼굴 분류 실패를 나타내는 결과 값에 따라 i+1 번째 그룹의 인접하고 지정된 픽셀 만큼 중복되는 패치 이미지에 대한 분류를 생략하는,
    얼굴 식별 방법.
  9. 제2항에 있어서,
    상기 복수의 프로세싱 유닛 각각은 복수의 마이크로 프로세싱 유닛을 포함하고,
    상기 단계 (e)는 상기 카이스퀘어 거리의 계산을 위해 상기 복수의 마이크로 프로세싱 유닛 중 제1 유닛에서 히스토그램의 제1 영역에 대해 부분적인 카이스퀘어 거리를 계산하는 단계; 상기 복수의 마이크로 프로세싱 유닛 중 제2 유닛에서 다른 영역인 제2 영역에 대해 부분적인 카이스퀘어 거리를 계산하는 단계; 및 상기 부분적인 카이스퀘어 거리를 원자단위(atomic) 덧셈(add)을 이용하여 합산하는 단계;를 포함하는,
    얼굴 식별 방법.
  10. 제2항에 있어서,
    상기 복수의 프로세싱 유닛 각각은 복수의 마이크로 프로세싱 유닛을 포함하고,
    상기 단계 (e)는 상기 카이스퀘어 거리의 계산을 위해 상기 복수의 마이크로 프로세싱 유닛 중 제1 유닛에서 히스토그램의 제1 빈(bin)에 대해 부분적인 카이스퀘어 거리를 계산하는 단계; 상기 복수의 마이크로 프로세싱 유닛 중 제2 유닛에서 히스토그램의 제2 빈에 대해 부분적인 카이스퀘어 거리를 계산하는 단계; 및 상기 부분적인 카이스퀘어 거리를 상기 제1 유닛 및 상기 제2 유닛에 의해 합산하는 단계;를 포함하는,
    얼굴 식별 방법.
  11. 얼굴 식별 프로그램을 로딩하여 수행하는 프로세서; 및
    상기 프로세서에 연결되고 복수의 프로세싱 유닛을 포함하는 GPU(Graphics Processing Units);를 포함하고,
    상기 얼굴 식별 프로그램은 얼굴 식별을 위한 이미지 크기를 변경하고 변경된 크기의 이미지를 LBP 도메인상으로 변환하고 변환된 이미지를 스캐닝하여 얼굴을 검출하도록 구성되고,
    상기 GPU의 복수의 프로세싱 유닛은 상기 LBP 도메인상으로의 변환 및 스캐닝에 따른 얼굴 검출 중 하나 이상의 기능을 상기 프로세서와 연계하여 수행하는,
    얼굴 식별 장치.
  12. 제11항에 있어서,
    상기 GPU의 복수의 프로세싱 유닛은 상기 변환된 이미지로부터 결정된 복수의 패치 이미지 각각에 대해 패치 이미지가 얼굴인지를 분류하는,
    얼굴 식별 장치.
  13. 제12항에 있어서,
    상기 프로세서 또는 상기 GPU는, 복수의 패치 이미지의 결정을 위해, N(N>=2) 개의 그룹으로 패치 이미지들을 그룹핑하고 그룹핑된 각 i(0<=i<N-2)번째 그룹과 i+1번째 그룹의 패치 이미지들의 일부 이미지가 서로 중복되도록 하여 상기 복수의 패치 이미지를 결정하며,
    상기 복수의 프로세싱 유닛은 i번째 그룹의 패치 이미지들 각각을 다단계 분류기(cascaded classifier)로 얼굴 이미지인지 분류하고 상기 다단계 분류기의 결과 값에 기초하여 i+1번째 그룹의 패치 이미지들 중 하나 이상의 패치 이미지들에 대해 다단계 분류기에서의 얼굴 이미지 분류를 생략하는,
    얼굴 식별 장치.
  14. 제13항에 있어서,
    상기 복수의 프로세싱 유닛은 상기 다단계 분류기의 제1 단계에서 상기 패치 이미지의 지정된 바이너리 패턴들을 메모리의 순차적인 메모리 주소로부터 로딩하고 상기 바이너리 패턴들을 임계치와 비교하며 만일 임계치 이하인 경우에 제1 단계에서 얼굴 분류 실패를 나타내는 결과 값으로 i+1 번째 그룹의 인접하고 지정된 픽셀 만큼 중복되는 패치 이미지에 대한 분류를 생략하는,
    얼굴 식별 장치.
  15. 제11항에 있어서,
    얼굴 검출에 후속하여 얼굴 인식을 위해, 얼굴 식별 프로그램은 검출된 얼굴 영역에 대응하고 LBP 도메인상으로 변환된 이미지의 영역에 대해 히스토그램을 생성하고 생성된 히스토그램과 저장된 복수의 히스토그램 각각과 카이스퀘어 거리를 계산하도록 구성되고,
    상기 복수의 프로세싱 유닛은 적어도 생성된 히스토그램과 저장된 복수의 히스토그램 각각과 카이스퀘어 거리를 계산하는,
    얼굴 식별 장치.
  16. 제15항에 있어서,
    상기 복수의 프로세싱 유닛 각각은 복수의 마이크로 프로세싱 유닛을 포함하고,
    상기 복수의 마이크로 프로세싱 유닛 중 제1 유닛은 상기 카이스퀘어 거리의 계산을 위해 히스토그램의 제1 영역에 대해 부분적인 카이스퀘어 거리를 계산하고 상기 복수의 마이크로 프로세싱 유닛 중 제2 유닛은 다른 영역인 제2 영역에 대해 부분적인 카이스퀘어 거리를 계산하며, 상기 제1 유닛 및 상기 제2 유닛은 부분적인 카이스퀘어 거리를 원자단위(atomic) 덧셈(add)을 이용하여 합산하는,
    얼굴 식별 장치.
  17. 제15항에 있어서,
    상기 복수의 프로세싱 유닛 각각은 복수의 마이크로 프로세싱 유닛을 포함하고,
    상기 복수의 마이크로 프로세싱 유닛 중 제1 유닛은 카이스퀘어 거리의 계산을 위해 히스토그램의 제1 빈에 대해 부분적인 카이스퀘어 거리를 계산하고 상기 복수의 마이크로 프로세싱 유닛 중 제2 유닛은 히스토그램의 제2 빈에 대해 부분적인 카이스퀘어 거리를 계산하며,
    부분적으로 계산된 카이스퀘어 거리는 상기 복수의 프로세싱 유닛에 의해서 합산되는,
    얼굴 식별 장치.
  18. 하드웨어와 결합되어 제1항에 따른 얼굴 식별 방법의 각 단계를 실행시키기 위하여 매체에 저장된 컴퓨터프로그램.
KR1020140139096A 2014-10-15 2014-10-15 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램 KR101656373B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140139096A KR101656373B1 (ko) 2014-10-15 2014-10-15 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램
US14/877,938 US9633251B2 (en) 2014-10-15 2015-10-08 Facial identification method, facial identification apparatus and computer program for executing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140139096A KR101656373B1 (ko) 2014-10-15 2014-10-15 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램

Publications (2)

Publication Number Publication Date
KR20160044668A true KR20160044668A (ko) 2016-04-26
KR101656373B1 KR101656373B1 (ko) 2016-09-12

Family

ID=55749313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140139096A KR101656373B1 (ko) 2014-10-15 2014-10-15 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램

Country Status (2)

Country Link
US (1) US9633251B2 (ko)
KR (1) KR101656373B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101727432B1 (ko) * 2016-05-24 2017-04-14 (주)베라시스 단계별 영상을 이용한 객체 인식 성능 향상 장치 및 방법
CN110084135A (zh) * 2019-04-03 2019-08-02 平安科技(深圳)有限公司 人脸识别方法、装置、计算机设备及存储介质
CN111126190A (zh) * 2019-12-10 2020-05-08 武汉大学 一种基于自由能理论和动态纹理分析的伪装人脸识别方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101737619B1 (ko) * 2016-11-30 2017-05-19 윈스로드(주) 얼굴 인식 장치 및 방법
CN106886746B (zh) * 2016-12-27 2020-07-28 浙江宇视科技有限公司 一种识别方法及后端服务器
US10565671B2 (en) * 2017-04-24 2020-02-18 Intel Corporation Reduce power by frame skipping
CN107239783B (zh) * 2017-06-13 2020-09-18 中国矿业大学(北京) 基于扩展局部二值模式和回归分析的煤岩识别方法
KR102299847B1 (ko) 2017-06-26 2021-09-08 삼성전자주식회사 얼굴 인증 방법 및 장치
CN109753848B (zh) * 2017-11-03 2021-01-26 杭州海康威视数字技术股份有限公司 执行人脸识别处理的方法、装置和系统
US11308188B2 (en) * 2017-12-29 2022-04-19 KeyLemon S.A Method used in a mobile equipment with a trusted execution environment for authenticating a user based on his face
US11055344B2 (en) 2018-03-21 2021-07-06 Walmart Apollo, Llc Product image evaluation system and method
CN108564095A (zh) * 2018-04-25 2018-09-21 河南科技大学 一种基于对比度局部二值模式的图像纹理分类方法
CN108446682A (zh) * 2018-05-11 2018-08-24 深圳尊豪网络科技股份有限公司 一种全自动化的人脸识别校准检测方法
CN108764153A (zh) * 2018-05-30 2018-11-06 深圳市飞瑞斯科技有限公司 人脸识别方法、装置、系统和存储介质
CN109086692A (zh) * 2018-07-16 2018-12-25 北京建筑大学 一种人脸识别装置和方法
CN109165554B (zh) * 2018-07-24 2021-09-24 高新兴科技集团股份有限公司 一种基于cuda技术的人脸特征比对方法
CN109726626A (zh) * 2018-09-27 2019-05-07 合肥博焱智能科技有限公司 基于gpu的人脸识别系统
CN111624261A (zh) * 2020-03-23 2020-09-04 梁帆 一种钢轨探伤超声信号数据质量检测方法
CN116188808B (zh) * 2023-04-25 2023-07-25 青岛尘元科技信息有限公司 图像特征提取方法和系统、存储介质及电子设备
CN117037343B (zh) * 2023-10-09 2023-12-12 深圳市高盾电子有限公司 一种全自动人脸生物识别智能锁解锁方法及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101727432B1 (ko) * 2016-05-24 2017-04-14 (주)베라시스 단계별 영상을 이용한 객체 인식 성능 향상 장치 및 방법
CN110084135A (zh) * 2019-04-03 2019-08-02 平安科技(深圳)有限公司 人脸识别方法、装置、计算机设备及存储介质
CN110084135B (zh) * 2019-04-03 2024-04-23 平安科技(深圳)有限公司 人脸识别方法、装置、计算机设备及存储介质
CN111126190A (zh) * 2019-12-10 2020-05-08 武汉大学 一种基于自由能理论和动态纹理分析的伪装人脸识别方法
CN111126190B (zh) * 2019-12-10 2022-07-05 武汉大学 一种基于自由能理论和动态纹理分析的伪装人脸识别方法

Also Published As

Publication number Publication date
US9633251B2 (en) 2017-04-25
KR101656373B1 (ko) 2016-09-12
US20160110590A1 (en) 2016-04-21

Similar Documents

Publication Publication Date Title
KR101656373B1 (ko) 얼굴 식별 방법, 얼굴 식별 장치 및 이 방법을 실행시키는 컴퓨터 프로그램
CN111401177B (zh) 基于自适应时空注意力机制的端到端行为识别方法及系统
US9008365B2 (en) Systems and methods for pedestrian detection in images
Liao et al. Modeling pixel process with scale invariant local patterns for background subtraction in complex scenes
US9053384B2 (en) Feature extraction unit, feature extraction method, feature extraction program, and image processing device
AU2019343959B2 (en) Region proposal with tracker feedback
JP6393230B2 (ja) オブジェクト検出方法及び画像検索システム
KR20100065677A (ko) 고해상도 영상에서의 효과적인 움직이는 다중 물체 검출 방법 및 시스템
CN110598638A (zh) 模型训练方法、人脸性别预测方法、设备及存储介质
Yi et al. Real-time integrated face detection and recognition on embedded GPGPUs
Mekonnen et al. Comparative evaluations of selected tracking-by-detection approaches
US20110182497A1 (en) Cascade structure for classifying objects in an image
JP2020119154A (ja) 情報処理装置、情報処理方法、及びプログラム
US7403636B2 (en) Method and apparatus for processing an image
JP2007025902A (ja) 画像処理装置、画像処理方法
US9036873B2 (en) Apparatus, method, and program for detecting object from image
CN115861675A (zh) 对象分类方法和设备
Elhariri et al. Performance analysis of using feature fusion for crack detection in images of historical buildings
Ranjan et al. Parallelizing a face detection and tracking system for multi-core processors
Chae et al. An efficient face detection based on color-filtering and its application to smart devices
Messom et al. Stream processing of integral images for real-time object detection
Selvi et al. FPGA implementation of a face recognition system
Yang et al. G2P: a new descriptor for pedestrian detection
Mišić et al. Improving performance of background subtraction on mobile devices: a parallel approach
Lipetski et al. A combined HOG and deep convolution network cascade for pedestrian detection

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 4