KR20220145791A - 병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치 - Google Patents

병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치 Download PDF

Info

Publication number
KR20220145791A
KR20220145791A KR1020220050391A KR20220050391A KR20220145791A KR 20220145791 A KR20220145791 A KR 20220145791A KR 1020220050391 A KR1020220050391 A KR 1020220050391A KR 20220050391 A KR20220050391 A KR 20220050391A KR 20220145791 A KR20220145791 A KR 20220145791A
Authority
KR
South Korea
Prior art keywords
face
recognition
face recognition
region
line
Prior art date
Application number
KR1020220050391A
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 US18/033,185 priority Critical patent/US20230394875A1/en
Priority to PCT/KR2022/005815 priority patent/WO2022225375A1/ko
Publication of KR20220145791A publication Critical patent/KR20220145791A/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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0475Generative networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • 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/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • 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/172Classification, e.g. identification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (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

본 발명은 얼굴 인식 방법 및 장치에 관한 것으로, 다중 딥 뉴럴 네트워크(Deep Neural Network; DNN) 기반 얼굴 인식 알고리즘의 최적 수행을 위하여 콘텐츠-자원 적응적 병렬처리 파이프라인을 이용하는 얼굴 인식 방법 및 장치를 제공한다.

Description

병렬처리 파이프라인을 이용한 다중 DNN 기반 얼굴 인식 방법 및 장치{METHOD AND APPARATUS FOR MULTI-DNN-BASED FACE IDENTIFICATION USING PIPELINE FOR PARALLEL PROCESSING}
본 발명은 다중 DNN 기반 얼굴 인식 방법 및 장치에 관한 것으로, 다중 딥 뉴럴 네트워크(Deep Neural Network; DNN) 기반 얼굴 인식 알고리즘의 최적 수행을 위하여 콘텐츠 및 자원 적응적 병렬처리 파이프라인을 이용하는 얼굴 인식 방법 및 장치에 관한 것이다.
이하에서 기술되는 내용은 본 발명의 실시예와 관련되는 배경 정보를 제공할 목적으로 기재된 것일 뿐이고, 기술되는 내용들이 당연하게 종래기술을 구성하는 것은 아니다.
얼굴 인식 알고리즘은 입력 이미지에서 얼굴 탐지를 위한 DNN 수행 후 탐지된 얼굴 당 얼굴 인식을 위한 DNN을 수행하는 다중 DNN 연산을 수반한다.
최근 모바일 기기에서 DNN 연산을 수행할 수 있는 플랫폼들이 개발되고 있다. 하지만 이와 같은 플랫폼들은 단일 DNN 연산을 실행하는 데에 머물러 복잡한 도심 공간 속 얼굴 인식에 요구되는 다중 DNN의 동시 수행을 효율적으로 지원하지 못한다. 또한, 다수의 작은 얼굴 인식에 긴 지연 시간이 소요됨에 따라 이동 중인 대상의 얼굴 인식을 제 때에 신속하게 수행하기 어려운 한계점이 있다.
특히 모바일 기기의 카메라로 도심 공간을 촬영 시 장면 내에 사람 수와 구성이 매우 동적으로 변화하므로 효과적인 얼굴 인식을 위해서는 탐지된 다수의 작은 얼굴 인식을 어떠한 얼굴 인식 알고리즘으로 어느 장치에서 실행할 것인지에 대한 동적 스케쥴링이 매우 중요하다.
자원 한정적인 모바일 기기에서 다수의 저화질 얼굴 인식을 위한 다중 DNN 연산을 효과적으로 수행할 수 있도록 하는 기술이 필요하다.
한편, 전술한 선행기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명의 일 과제는 자원 한정적인 모바일 기기에서 다중 DNN 연산을 효과적으로 수행할 수 있는 얼굴 인식 방법 및 장치를 제공하는 것이다.
본 발명의 일 과제는 입력 이미지에 대한 다중 DNN 연산을 반복적으로 수행하는 얼굴 인식 알고리즘의 처리 속도를 최적화하기 위한 콘텐츠-적응적 병렬처리 파이프라인을 제공하는 것이다.
본 발명의 일 과제는 입력 이미지에 대한 다중 DNN 연산을 콘텐츠 및 자원 적응적(content and resource-adaptive) 병렬처리 파이프라인을 이용하여 동적으로 스케줄링하는 얼굴 인식 방법 및 장치를 제공하는 것이다.
본 발명의 목적은 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시 예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.
본 발명의 일 실시예에 따른 얼굴 인식 방법은, 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 방법으로서, 탐지 라인에 의해, 복수 개의 이미지 블록을 포함하는 입력 이미지로부터 이미지 블록 단위로 얼굴 영역을 탐지하는 단계, 제어 라인에 의해, 상기 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중 하나의 얼굴 인식 모델을 결정하는 단계, 상기 제어 라인에 의해, 상기 결정된 얼굴 인식 모델과 연계된 인식 라인으로 상기 탐지된 얼굴 영역을 분배하는 단계 및 상기 탐지된 얼굴 영역이 분배된 인식 라인에 의해, 상기 탐지된 얼굴 영역으로부터 얼굴 인식을 수행하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 얼굴 인식 장치는, 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 장치로서, 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 탐지 라인을 실행하여, 복수 개의 이미지 블록을 포함하는 입력 이미지로부터 이미지 블록 단위로 얼굴 영역을 탐지하고, 제어 라인을 실행하여, 상기 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중 하나의 얼굴 인식 모델을 결정하고, 상기 제어 라인을 실행하여, 상기 결정된 얼굴 인식 모델과 연계된 인식 라인으로 상기 탐지된 얼굴 영역을 분배하고, 상기 탐지된 얼굴 영역이 분배된 인식 라인을 실행하여, 상기 탐지된 얼굴 영역으로부터 얼굴 인식을 수행하도록 구성될 수 있다.
본 발명의 일 실시예에 따른 얼굴 인식 시스템은, 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 시스템으로서, 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부가 배치된 제 1 얼굴 인식 장치 및 상기 복수 개의 인식 라인 중 나머지가 배치된 제 2 얼굴 인식 장치를 포함하고, 상기 제 1 얼굴 인식 장치는, 상기 탐지 라인에 의해, 복수 개의 이미지 블록을 포함하는 입력 이미지로부터 이미지 블록 단위로 얼굴 영역을 탐지하고, 상기 제어 라인에 의해, 상기 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중 하나의 얼굴 인식 모델을 결정하고, 상기 제어 라인에 의해, 상기 탐지된 얼굴 영역을 상기 제 1 얼굴 인식 장치 및 상기 제 2 얼굴 인식 장치 중에서 상기 결정된 얼굴 인식 모델과 연계된 인식 라인이 배치된 장치로 분배하고, 상기 탐지된 얼굴 영역이 분배된 인식 라인에 의해 상기 탐지된 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 상기 탐지 라인에 의해 상기 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성될 수 있다.
본 발명의 일 실시예에 따른 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용하여 프로세서를 포함한 얼굴 인식 장치에 의해 실행되는 얼굴 인식 방법은, 탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하는 단계, 제어 라인에 의해, 상기 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하는 단계, 상기 제어 라인에 의해, 상기 예상 얼굴 인식 난이도에 기반하여 상기 복수 개의 인식 라인 중 상기 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하는 단계, 상기 제어 라인에 의해, 결정된 상기 인식 라인으로 상기 적어도 하나의 얼굴 영역을 분배하는 단계 및 상기 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해, 상기 적어도 하나의 얼굴 영역의 각각으로부터 얼굴 인식을 수행하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 장치는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 탐지 라인을 실행하여, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하고, 제어 라인을 실행하여, 상기 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하고, 상기 제어 라인을 실행하여, 상기 예상 얼굴 인식 난이도에 기반하여 상기 복수 개의 인식 라인 중 상기 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하고, 상기 제어 라인을 실행하여, 결정된 상기 인식 라인으로 상기 적어도 하나의 얼굴 영역을 분배하도록 구성될 수 있다.
본 발명의 일 실시예에 따른 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 시스템은, 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부가 배치된 제 1 얼굴 인식 장치 및 상기 복수 개의 인식 라인 중 나머지가 배치된 제 2 얼굴 인식 장치를 포함하고, 상기 제 1 얼굴 인식 장치는, 상기 탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하고, 상기 제어 라인에 의해, 상기 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하고, 상기 제어 라인에 의해, 상기 예상 얼굴 인식 난이도에 기반하여 상기 복수 개의 인식 라인 중 상기 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하고, 상기 제어 라인에 의해, 결정된 상기 인식 라인으로 상기 적어도 하나의 얼굴 영역을 분배하고, 상기 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 상기 탐지된 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 상기 탐지 라인에 의해 상기 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성될 수 있다.전술한 것 외의 다른 측면, 특징, 및 이점이 이하의 도면, 청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
실시예에 의하면, 자원 한정적인 모바일 기기에서 고화질 입력 이미지로부터 얼굴 인식을 효과적으로 수행할 수 있다.
실시예에 의하면, 다중 DNN 연산의 처리 속도가 제고된다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 실시예에 따른 얼굴 인식 시스템의 동작 환경의 개략적인 예시도이다.
도 2는 실시예에 따른 얼굴 인식 과정에서 실행되는 예시적인 다중 딥 뉴럴 네트워크(Deep Neural Network; DNN)를 설명하기 위한 도면이다.
도 3은 실시예에 따른 얼굴 인식 장치의 블록도이다.
도 4는 실시예에 따른 얼굴 인식 과정을 설명하기 위한 도면이다.
도 5는 실시예에 따른 얼굴 인식 방법의 흐름도이다.
도 6는 실시예에 따른 얼굴 인식 과정에서 이용하는 파이프라인을 설명하기 위한 도면이다.
도 7은 실시예에 따른 얼굴 인식 방법의 배경 제거를 예시적으로 보여주는 도면이다.
도 8은 실시예에 따른 얼굴 인식 방법의 얼굴 인식 모델 결정 과정을 설명하기 위한 도면이다.
도 9는 실시예에 따른 얼굴 인식 방법의 영역별 병렬처리 및 파이프라이닝 동작을 설명하기 위한 도면이다.
도 10은 실시예에 따른 얼굴 인식 방법의 성능을 보여주는 그래프이다.
도 11은 실시예에 따른 얼굴 인식 방법에서 사용하는 얼굴 인식 알고리즘의 신원 복원 모델을 예시적으로 설명하기 위한 도면이다.
도 12는 실시예에 따른 콘텐츠 및 자원 적응적 병렬처리 파이프라인을 설명하기 위한 도면이다.
도 13은 실시예에 따른 얼굴 인식 방법의 흐름도이다.
도 14는 얼굴 인식 과정의 모션 트래킹 과정을 설명하기 위한 도면이다.
도 15는 실시예에 따른 예상 얼굴 인식 난이도 결정 과정을 설명하기 위한 도면이다.
도 16은 실시예에 따른 얼굴 인식 난이도 결정에서 랜드마크 기반 얼굴 자세 결정의 예시도이다.
도 17은 실시예에 따른 얼굴 인식 난이도 결정에서 얼굴 블러 결정의 예시도이다.
도 18은 실시예에 따른 콘텐츠 및 자원 적응적 얼굴 인식 모델 선택 및 수행 스케줄링을 설명하기 위한 도면이다.
도 19는 실시예에 따른 다중 프로세서 병렬처리 및 영역별 파이프라이닝 동작의 예시도이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시 예들에 한정되지 않는다. 이하 실시 예에서는 본 발명을 명확하게 설명하기 위해서 설명과 직접적인 관계가 없는 부분을 생략하지만, 본 발명의 사상이 적용된 장치 또는 시스템을 구현함에 있어서, 이와 같이 생략된 구성이 불필요함을 의미하는 것은 아니다. 아울러, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조번호를 사용한다.
이하의 설명에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 되며, 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 또한, 이하의 설명에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하의 설명에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 실시예에 따른 얼굴 인식 시스템의 동작 환경의 개략적인 예시도이다.
실시예에 따른 얼굴 인식 시스템(1000)은 복잡한 도심 공간에서의 고속, 고정밀 얼굴 인식(예: 실종 아동 찾기, 범인 추적)을 제공한다. 얼굴 인식 시스템(1000)은 모바일 이기종 프로세서(예를 들어 CPU 및 GPU) 및 클라우드를 활용하여 입력 이미지에 대한 얼굴 인식 과정을 병렬적으로 수행하고, 인식 결과를 실시간으로 디스플레이에 표시(예를 들어 증강 현실(Augmented Reality; AR) 형태로 표시)하여 사용자의 인지를 돕는다.
실시예에 따른 얼굴 인식 기술은 복잡도가 높은 공간에서 고정밀 얼굴 인식을 위한 기술로서, 딥 뉴럴 네트워크(DNN) 기반의 얼굴 인식 알고리즘에 적용되어, 이미지 기반 얼굴 인식의 처리 속도를 제고할 수 있다. 예를 들어 복잡도가 높은 공간은 많은 사람으로 붐비는 공간, 예를 들어 유동 인구가 많은 도심 공간, 출퇴근 시간의 환승역, 다수의 관중이 들어찬 스포츠 경기장 및 쇼핑몰 등을 포함한다.
실시예에 따른 얼굴 인식 과정은 복잡도가 높은 공간에서 예를 들어 스마트폰, 웨어러블 글래스(wearable glasses) 또는 CCTV(Closed Circuit Television)와 같은 단말의 카메라로 획득한 영상에 포함된 먼 거리에 있는 다수의 작은 얼굴을 신속하게 인식할 수 있다.
실시예에 따른 얼굴 인식 시스템(1000)은 적어도 하나의 얼굴 인식 장치를 포함할 수 있다. 예를 들어 얼굴 인식 시스템(1000)은 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)를 포함할 수 있으며, 이제 제한되지 않는다. 얼굴 인식 시스템(1000)은 하나 이상의 얼굴 인식 장치를 포함할 수 있다.
제 1 얼굴 인식 장치(100)와 제 2 얼굴 인식 장치(200)는 서로 협업하여 입력 이미지에 대한 얼굴 인식 작업을 수행할 수 있다.
예를 들어, 입력 이미지에서 탐지된 얼굴 영역의 얼굴 인식 난이도에 따라 상대적으로 얼굴 인식 난이도가 낮은 얼굴 영역은 제 1 얼굴 인식 장치(100)에서 처리하고, 상대적으로 얼굴 인식 난이도가 높은 얼굴 영역은 제 2 얼굴 인식 장치(200)에서 처리할 수 있다. 이 과정에서 제 1 얼굴 인식 장치(100)와 제 2 얼굴 인식 장치는 서로 다른 얼굴 인식 모델을 실행할 수 있다.
제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)는 실시예에 따른 얼굴 인식 방법을 실행하여 입력 얼굴 이미지에 나타난 얼굴을 인식할 수 있다.
제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)는 기학습된 얼굴 인식 모델을 이용하여 실시예에 따른 얼굴 인식 방법을 실행할 수 있다. 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)는 기학습된 적어도 하나의 얼굴 인식 모델을 네트워크(400)를 통해 수신할 수 있다.
예를 들어 제 1 얼굴 인식 장치(100)는 제 2 얼굴 인식 장치(200)에서 학습된 얼굴 인식 모델을 네트워크(300)를 통해 수신할 수 있다. 예를 들어 제 1 얼굴 인식 장치(100)는 온디바이스 방식으로 얼굴 인식 모델을 학습시키고, 학습된 얼굴 인식 모델을 네트워크(300)를 통해 연결된 외부 장치, 예를 들어 제 2 얼굴 인식 장치(200)로 전송할 수 있다.
여기서 얼굴 인식 모델은 얼굴 탐지를 위한 DNN, 탐지된 얼굴에 대한 신원 복원 모델(Identity Clarification Network; ICN) 및 얼굴 인식 DNN을 포함하는 다중 DNN 구조를 가질 수 있다. 얼굴 인식 모델은 복수의 얼굴 인식 모델을 포함할 수 있다.
제 1 얼굴 인식 장치(100)는 입력 이미지를 직접 획득할 수 있다. 예를 들어, 제 1 얼굴 인식 장치(100)는 카메라를 포함한 단말로 구현될 수 있다. 제 1 얼굴 인식 장치(100)는 네트워크(300)를 통해 외부 장치로부터 입력 이미지를 획득할 수 있다.
여기서 입력 이미지는 일련의 이미지 프레임을 포함하는 동영상, 동영상의 각 프레임 또는 정지 영상을 의미한다.
일 예에서, 제 1 얼굴 인식 장치(100)는 단말로 구현될 수 있다. 일 예에서, 제 2 얼굴 인식 장치(200)는 서버로 구현될 수 있다.
여기서 단말은 사용자가 조작하는 데스크 탑 컴퓨터, 스마트폰, 노트북, 태블릿 PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 단말은 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다.
서버는 실시예에 따른 얼굴 인식 방법을 실행하는 어플리케이션 서버 또는 클라우드 서버일 수 있으나 이에 제한되지 않는다.
제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)는 실시예에 따른 얼굴 인식 방법을 실행하는 어플리케이션(application) 또는 앱(app)을 실행하여 입력 이미지에 대한 얼굴 인식을 수행할 수 있다.
네트워크(300)는 유선 및 무선 네트워크, 예를 들어 LAN(local area network), WAN(wide area network), 인터넷(internet), 인트라넷(intranet) 및 엑스트라넷(extranet), 그리고 모바일 네트워크, 예를 들어 셀룰러, 3G, LTE, 5G, WiFi 네트워크, 애드혹 네트워크 및 이들의 조합을 비롯한 임의의 적절한 통신 네트워크 일 수 있다.
네트워크(300)는 허브, 브리지, 라우터, 스위치 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(300)는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(300)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다.
도 2는 실시예에 따른 얼굴 인식 과정에서 실행되는 예시적인 다중 딥 뉴럴 네트워크(Multi-DNN)를 설명하기 위한 도면이다.
얼굴 인식 과정에서 실행되는 다중 딥 뉴럴 네트워크는 얼굴 탐지(face detection) 모델, 신원 복원(identity clarification) 모델 및 얼굴 인식(face recognition) 모델을 포함할 수 있다.
얼굴 탐지 모델은 이미지를 입력받고, 이미지에 포함된 적어도 하나의 얼굴 영역을 출력한다. 신원 복원 모델은 적어도 하나의 얼굴 영역의 각 얼굴 영역을 입력받고, 화질을 개선하여 출력한다. 얼굴 인식 모델은 각 얼굴 영역을 입력받고, 특징 벡터를 출력한다.
얼굴 탐지 모델은 입력 이미지에 대하여 실행되고, 신원 복원 모델 및 얼굴 인식 모델은 입력 이미지에 포함된 얼굴 영역마다 실행되므로 입력 이미지에 포함된 얼굴 영역이 증가함에 따라 다중 딥 뉴럴 네트워크의 연산 복잡도가 높아지게 된다.
실시예에 따른 얼굴 인식 시스템은 자원 제한적인 모바일 기기와 클라우드에서 실시예에 따른 얼굴 인식 과정을 동시에 병렬적으로 수행할 수 있다. 이를 위하여 입력 이미지를 복수의 이미지 블록으로 분할하고, 이미지 블록 단위로 얼굴 인식을 수행한다.
또한, 실시예에 따른 얼굴 인식 시스템은 입력 이미지의 얼굴 영역의 인식 난이도에 따라 개별 얼굴 영역에 적용할 얼굴 인식 모델을 적응적으로 결정한다. 예를 들어, 얼굴 인식 난이도가 높을수록 연산 복잡도가 높은 얼굴 인식 모델을 선택할 수 있다.
도 3은 실시예에 따른 얼굴 인식 장치의 블록도이다.
실시예에 따른 제 1 얼굴 인식 장치(100)는 메모리(120) 및 프로세서(110)를 포함할 수 있다. 이와 같은 구성은 예시적인 것이고, 제 1 얼굴 인식 장치(100)는 도 3에 도시된 구성 중 일부를 포함하거나, 도 3에 도시되지 않았으나 장치의 작동을 위해 필요한 구성을 추가로 포함할 수 있다.
프로세서(110)는 일종의 중앙처리장치로서, 메모리(120)에 저장된 하나 이상의 명령어를 실행하여 제 1 얼굴 인식 장치(100)의 동작을 제어할 수 있다.
프로세서(110)는 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 프로세서(110)는 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다.
이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로서, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), 그래픽 처리 유닛(Graphic Processing Unit; GPU), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 이에 한정되는 것은 아니다. 프로세서(110)는 하나 이상의 프로세서를 포함할 수 있다. 프로세서(110)는 이기종 프로세서, 예를 들어 CPU 및 GPU를 포함할 수 있다.
메모리(120)는 실시예에 따른 얼굴 인식 과정을 실행하기 위한 하나 이상의 명령을 포함하는 프로그램을 저장할 수 있다. 프로세서(110)는 메모리(120)에 저장된 프로그램, 명령어들에 기반하여 실시예에 따른 얼굴 인식 과정을 실행할 수 있다.
메모리(120)는 얼굴 인식을 위해 실행되는 DNN 기반 모델(예를 들어, 얼굴 탐지 모델, 신원 복원 모델 및/또는 복수의 얼굴 인식 모델)을 저장하고, 얼굴 인식을 위한 연산 과정에서 발생하는 중간 데이터 및 연산 결과 등을 더 저장할 수 있다. 예를 들어 메모리(120)는 도 4 및 도 8을 참조하여 후술할 저복잡도 얼굴 인식 모델(Lightweight Face Recognition Model)을 저장할 수 있다.
메모리(120)는 내장 메모리 및/또는 외장 메모리를 포함할 수 있으며, DRAM, SRAM, 또는 SDRAM 등과 같은 휘발성 메모리, OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, NAND 플래시 메모리, 또는 NOR 플래시 메모리 등과 같은 비휘발성 메모리, SSD, CF(compact flash) 카드, SD 카드, Micro-SD 카드, Mini-SD 카드, Xd 카드, 또는 메모리 스틱(memory stick) 등과 같은 플래시 드라이브, 또는 HDD와 같은 저장 장치를 포함할 수 있다. 메모리(120)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 이에 한정되는 것은 아니다.
실시예에 따른 제 1 얼굴 인식 장치(100)는 통신부(130)를 더 포함할 수 있다.
통신부(130)는 제 1 얼굴 인식 장치(100)의 데이터의 송신 및 수신을 위한 통신 인터페이스를 포함한다. 통신부(130)는 제 1 얼굴 인식 장치(100)에게 다양한 방식의 유무선 통신 경로를 제공하여 제 1 얼굴 인식 장치(100)를 도 1을 참조하여 네트워크(300)와 연결할 수 있다.
제 1 얼굴 인식 장치(100)는 통신부(130)를 통해 입력 이미지, 학습 데이터, 중간 데이터 및 얼굴 인식 결과 추출된 특징 벡터 등을 송/수신할 수 있다. 통신부(130)는 예를 들어 각종 무선 인터넷 모듈, 근거리 통신 모듈, GPS 모듈, 이동 통신을 위한 모뎀 등에서 적어도 하나 이상을 포함하도록 구성될 수 있다.
제 1 얼굴 인식 장치(100)는 프로세서(110), 메모리(120) 및 통신부(130) 간에 물리적/논리적 연결 경로를 제공하는 버스(140)를 더 포함할 수 있다.
실시예에 따른 얼굴 인식 과정은 파이프라인을 이용하여 병렬적으로 처리된다. 파이프라인은 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함할 수 있으며, 도 6을 참조하여 파이프라인에 대하여 구체적으로 살펴본다.
제 1 얼굴 인식 장치(100)는 적어도 하나의 프로세서(110)를 포함할 수 있다. 적어도 하나의 프로세서(110)는 탐지 라인을 실행하여, 복수 개의 이미지 블록을 포함하는 입력 이미지로부터 이미지 블록 단위로 얼굴 영역을 탐지하고, 제어 라인을 실행하여, 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중 하나의 얼굴 인식 모델을 결정하고, 제어 라인을 실행하여, 결정된 얼굴 인식 모델과 연계된 인식 라인으로 탐지된 얼굴 영역을 분배하고, 탐지된 얼굴 영역이 분배된 인식 라인을 실행하여, 탐지된 얼굴 영역으로부터 얼굴 인식을 수행하도록 구성될 수 있다. 이에 대하여는 도 5를 참조하여 후술한다.
적어도 하나의 프로세서(110)는, 얼굴 영역을 탐지하기 위하여, 입력 이미지를 복수 개의 이미지 블록으로 분할하고, 각 이미지 블록의 엣지 밀도에 기반하여 각 이미지 블록에서 배경 영역을 제거하도록 구성될 수 있다. 이에 대하여는 도 7을 참조하여 후술한다.
적어도 하나의 프로세서(110)는, 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중에서 하나의 얼굴 인식 모델을 결정하기 위하여, 탐지된 얼굴 영역에 나타난 얼굴 화질 및 얼굴 자세에 기반하여, 얼굴 인식 난이도를 결정하도록 구성될 수 있다. 적어도 하나의 프로세서(110)는, 얼굴 인식 난이도를 결정하기 위하여, 얼굴 영역으로부터 얼굴 랜드마크를 추출하고, 얼굴 랜드마크 간의 위치 관계에 기반하여 얼굴 자세를 결정하도록 구성될 수 있다. 이에 대하여는 도 8을 참조하여 살펴본다.
일 예에서 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부는 제 1 얼굴 인식 장치(100)에 배치되고, 복수 개의 인식 라인 중 나머지는 제 2 얼굴 인식 장치(200)에 배치될 수 있다. 적어도 하나의 프로세서(110)는, 탐지된 얼굴 영역을 분배하기 위하여, 탐지된 얼굴 영역에 대한 얼굴 인식을 제 1 얼굴 인식 장치로부터 제 2 얼굴 인식 장치로 오프로딩(offloading)하도록 구성될 수 있다.
예를 들어, 제 2 얼굴 인식 장치(200)에 배치된 인식 라인과 연계된 얼굴 인식 모델은 제 1 얼굴 인식 장치(100)에 배치된 인식 라인과 연계된 얼굴 인식 모델 보다 연산 복잡도가 더 높은 얼굴 인식 모델일 수 있다. 이에 대하여는 도 6, 도 8 및 도 9를 참조하여 후술한다.
적어도 하나의 프로세서(110)는, 얼굴 인식을 수행하기 위하여, 앞서 결정된 얼굴 인식 모델을 실행하여 탐지된 얼굴 영역에 나타난 얼굴의 특징 벡터를 추출하도록 구성될 수 있다.
적어도 하나의 프로세서(110)는, 얼굴 영역을 탐지하기 위하여, 인식 라인에 의해 탐지된 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 탐지 라인에 의해 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성될 수 있다. 이에 대하여는 도 6 및 도 9를 참조하여 후술한다.
적어도 하나의 프로세서(110)는, 입력 이미지에 대한 복수 개의 인식 라인의 얼굴 인식 결과에 기반하여 탐색 대상과 매칭되는 얼굴 영역을 결정하도록 구성될 수 있다.
한편, 제 2 얼굴 인식 장치(200)는 메모리(미도시) 및 프로세서(미도시)를 포함할 수 있다.
제 2 얼굴 인식 장치(200)는 제 1 얼굴 인식 장치(100)로부터 얼굴 영역 정보를 수신하고, 수신된 얼굴 영역 정보에 대한 얼굴 인식을 수행하고, 얼굴 인식 결과를 제 1 얼굴 인식 장치(100)로 전송할 수 있다.
이를 위하여, 제 2 얼굴 인식 장치(200)의 메모리는 도 4 및 도 8을 참조하여 후술할 신원 복원 모델(ICN) 및 고복잡도 얼굴 인식 모델(Heavy Face Recognition Model)을 저장할 수 있다.
제 2 얼굴 인식 장치(200)의 프로세서는 제 1 얼굴 인식 장치(100)로부터 오프로딩(offloading)된 개별 얼굴 영역에 대한 얼굴 인식을 수행할 수 있다.
이를 위하여, 제 2 얼굴 인식 장치(200)의 프로세서는 메모리에 저장된 신원 복원 모델(ICN) 및/또는 고복잡도 얼굴 인식 모델(Heavy Face Recognition Model)을 실행하여 제 1 얼굴 인식 장치(100)로부터 수신한 얼굴 영역 정보에 대한 얼굴 인식을 수행하도록 구성될 수 있다. 일 예에서 제 2 얼굴 인식 장치(200)의 프로세서는 복수의 GPU(Graphic Processing Unit)를 포함할 수 있다.
실시예에 따른 제 1 얼굴 인식 장치(100)에 있어서, 적어도 하나의 프로세서(110)를 포함하고, 적어도 하나의 프로세서(110)는, 탐지 라인을 실행하여, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하고, 제어 라인을 실행하여, 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하고, 제어 라인을 실행하여, 예상 얼굴 인식 난이도에 기반하여 복수 개의 인식 라인 중 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하고, 제어 라인을 실행하여, 결정된 인식 라인으로 적어도 하나의 얼굴 영역을 분배하도록 구성될 수 있다.
적어도 하나의 프로세서(110)는, 예상 얼굴 인식 난이도를 결정하기 위하여, 얼굴 영역의 얼굴 화질, 얼굴 자세 및 얼굴 블러 중 적어도 하나에 기반하여 적어도 하나의 얼굴 영역의 각각의 예상 얼굴 인식 난이도를 결정하도록 구성될 수 있다.
적어도 하나의 프로세서(110)는, 인식 라인을 결정하기 위하여, 예상 얼굴 인식 난이도의 오름차순으로 적어도 하나의 얼굴 영역의 각 얼굴 영역의 인식 라인을 결정하도록 구성될 수 있다.
적어도 하나의 프로세서(110)는, 인식 라인을 결정하기 위하여, 얼굴 영역의 예상 얼굴 인식 정확도 및 예상 연산 지연 시간에 따른 소정의 목표 함수에 기반하여 얼굴 영역에 적용할 얼굴 인식 모델 및 얼굴 인식 모델을 실행할 얼굴 인식 장치의 조합을 결정하도록 구성될 수 있다.
일 예에서, 탐지 라인, 상기 제어 라인 및 상기 복수 개의 인식 라인 중 적어도 일부는 제 1 얼굴 인식 장치(100)에 배치되고, 복수 개의 인식 라인 중 나머지는 제 2 얼굴 인식 장치(200)에 배치되고, 적어도 하나의 프로세서(110)는, 적어도 하나의 얼굴 영역을 분배하기 위하여, 적어도 하나의 얼굴 영역 중 적어도 일부에 대한 얼굴 인식을 제 1 얼굴 인식 장치(100)로부터 제 2 얼굴 인식 장치(200)로 오프로딩(offloading)하도록 구성될 수 있다.
적어도 하나의 프로세서(110)는, 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 적어도 하나의 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 탐지 라인에 의해 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성될 수 있다.
적어도 하나의 프로세서(110)는, 입력 이미지에 대한 복수 개의 인식 라인의 얼굴 인식 결과에 기반하여 탐색 대상과 매칭되는 얼굴 영역을 결정하도록 구성될 수 있다.
얼굴 인식 장치.
입력 이미지는 일련의 이미지 프레임을 포함하고, 적어도 하나의 프로세서는(110), 일련의 이미지 프레임의 연속한 이미지 프레임 간 얼굴 영역 이동 정보에 기반하여 적어도 하나의 얼굴 영역의 각각에 대응하는 기 인식 완료된 얼굴 영역을 탐색하고, 탐색의 결과에 따라 기 인식 완료된 얼굴 영역의 얼굴 인식 정보를 재사용하도록 구성될 수 있다.
실시예에 의하여, 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 시스템이 제공된다.
실시예에 따른 얼굴 인식 시스템은, 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부가 배치된 제 1 얼굴 인식 장치(100) 및 복수 개의 인식 라인 중 나머지가 배치된 제 2 얼굴 인식 장치(200)를 포함하고, 제 1 얼굴 인식 장치(100)는, 탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하고, 제어 라인에 의해, 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하고, 제어 라인에 의해, 예상 얼굴 인식 난이도에 기반하여 복수 개의 인식 라인 중 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하고, 제어 라인에 의해, 결정된 인식 라인으로 적어도 하나의 얼굴 영역을 분배하고, 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 탐지된 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 탐지 라인에 의해 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성될 수 있다.도 4는 실시예에 따른 얼굴 인식 과정을 설명하기 위한 도면이다.
실시예에 따른 얼굴 인식 방법은 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)에 의해 도 4에 도시된 단계(P1, P2, P3, P4, P5_1, P5_2, P5_3, P6)에 의하여 수행된다.
입력 이미지(Input frame)에 대한 얼굴 인식 과정에서 도 4에 도시된 단계(P1, P2, P3, P4, P5_1, P5_2, P5_3, P6)의 전부 또는 일부가 수행될 수 있다. 도 4에 도시된 단계(P1, P2, P3, P4, P5_1, P5_2, P5_3, P6)의 수행 순서는 변경될 수 있다. 예를 들어, 단계(P2)를 단계(P1) 보다 먼저 수행하거나 또는 반대일 수 있다.
단계(P1)에서 제 1 얼굴 인식 장치(100)는 입력 이미지(Input Frame)를 획득한다. 예를 들어 AR 글래스 또는 스마트폰이 촬영한 카메라 프레임 입력을 실시간으로 획득할 수 있다.
단계(P1)에서 제 1 얼굴 인식 장치(100)는 입력 이미지(Input frame)를 복수의 이미지 블록으로 분할하고, 이미지 블록 단위로 콘텐츠-적응적 병렬처리 파이프라인(예를 들어 탐지 라인)에 페치(fetch)한다. 예를 들어 입력 이미지를 n x m 개(n, m은 양의 정수)의 이미지 블록으로 분할할 수 있다. 예를 들어 입력 이미지를 동일한 폭과 너비의 이미지 블록으로 분할할 수 있다.
이에 따라 이미지 영역별 병렬처리 및 파이프라이닝이 시작되며, 입력 프레임을 이미지 블록별로 나누어 얼굴 탐지를 수행하고, 탐지된 얼굴 영역별로 모바일 CPU, GPU 및 클라우드 GPU를 활용한 병렬처리 및 파이프라이닝을 제공하여 얼굴 인식에 소요되는 시간을 최적화할 수 있게 된다.
단계(P2)에서 제 1 얼굴 인식 장치(100)는 단계(P1)에서 페치(fetch)된 이미지 블록에 대하여 얼굴 탐지 DNN을 수행하기 전 엣지 탐지 알고리즘을 수행하여 얼굴이 존재하지 않는 배경 영역을 제거(Edge-Based Background Filtering)한다.
단계(P2)는 입력 프레임의 이미지블록별로 엣지(윤곽선)를 탐지하여, 엣지 밀도가 낮은 영역은 배경 영역으로 간주 및 후속 처리에서 배제하여 불필요한 연산을 줄이도록 한다.
다른 예에서, 단계(P1)에 앞서 단계(P2)를 실행할 수 있다. 예를 들어, 제 1 얼굴 인식 장치(100)는 단계(P2)에서 입력 이미지에 대하여 엣지 탐지 알고리즘을 수행하여 배경 영역을 제거한 나머지 영역에 대하여 단계(P1)에서 복수의 이미지 블록으로 분할하여 파이프라인(예를 들어 탐지 라인)에 페치할 수 있다.
단계(P3)에서 제 1 얼굴 인식 장치(100)는 배경 영역이 제거된 이미지 블록에 대하여 얼굴 탐지 모델을 실행하여 얼굴 영역을 탐지한다. 여기서 얼굴 탐지 모델은 RetinaFace 구조를 활용할 수 있다.
일 예에서 단계(P3)는 파이프라인의 탐지 라인에서 실행될 수 있다. 예를 들어 탐지 라인은 제 1 얼굴 인식 장치(100)의 적어도 하나의 프로세서(110) 중 CPU에서 실행될 수 있다.
단계(P3)에서 탐지된 얼굴 영역은 얼굴 영역 단위로 파이프라인의 제어 라인으로 전달된다.
단계(P4)에서 제 1 얼굴 인식 장치(100)는 탐지된 얼굴 영역에 대하여 얼굴 인식 난이도(예를 들어 탐지된 얼굴의 화질 및 자세에 기반하여 예측)에 따라 탐지된 얼굴 영역에 대한 얼굴 인식 연산을 수행할 얼굴 인식 모델을 결정(Variation-Adaptive Face Recognition)한다. 이로써 얼굴 인식 난이도에 따라 얼굴 인식 DNN의 복잡도를 적응적으로 조절할 수 있고, 높은 얼굴 인식 정확도를 얻는 동시에 수행 시간을 최적화할 수 있다.
일 예에서 단계(P4)는 파이프라인의 제어 라인에서 실행될 수 있다. 예를 들어 제어 라인은 제 1 얼굴 인식 장치(100)의 적어도 하나의 프로세서(110) 중 CPU에서 실행될 수 있다.
단계(P4)는 탐지된 얼굴 영역의 얼굴 인식 난이도에 따라 연산복잡도를 달리하는 복수 개의 얼굴 인식 모델 중 하나를 결정한다. 파이프라인은 복수 개의 인식 라인을 포함하며, 각 인식 라인은 각 얼굴 인식 모델과 연계되어 할당된다.
단계(P4)에서 결정된 얼굴 인식 모델과 연계된 인식 라인으로 얼굴 영역을 분배한다. 예를 들어 단계(P4)에서 단계(P5_1), 단계(P5_2) 및 단계(P5_3) 중 하나와 연계된 인식 라인으로 얼굴 영역을 분배한다. 이로써, 입력 이미지의 서로 다른 영역에 대한 얼굴 인식 연산을 제 1 얼굴 인식 장치(100)의 이기종 프로세서(예를 들어, 모바일 CPU 및 GPU)와 제 2 얼굴 인식 장치(200)의 프로세서(예를 들어 클라우드 서버의 GPU)에서 병렬적으로 수행하게 된다.
한편, 단계(P5_1) 및 단계(P5_2)는 제 2 얼굴 인식 장치(200)에 의해 수행될 수 있다. 이를 위하여 제 1 얼굴 인식 장치(200)는 단계(P5_1) 또는 단계(P5_2)로 분배된 얼굴 영역을 단계(P5_1)과 연계된 인식 라인 또는 단계(P5_2)과 연계된 인식 라인으로 전송한다. 일 예에서 인식 라인은 인식 라인이 배치된 얼굴 인식 장치의 GPU에서 실행될 수 있다.
단계(P5_1)는 얼굴 영역의 화질을 개선하는 신원 복원 모델을 실행하고, 단계(P5_2)는 각각 얼굴 인식 난이도가 높은 얼굴 영역을 처리하는 고복잡도 얼굴 인식 모델(Heavy Face Recognition Model)을 실행한다. 단계(5_3)은 얼굴 인식 난이도가 낮은 얼굴 영역을 처리하는 저복잡도 얼굴 인식 모델(Lightweight Face Recognition Model)을 실행한다.
예를 들어 신원 복원 모델은 후술할 도 11에 도시된 네트워크 구조를 활용할 수 있다. 예를 들어, 고복잡도 얼굴 인식 모델(Heavy Face Recognition Model)은 잔차 블록(Residual block) 기반 ArcFace 네트워크 구조를 활용할 수 있다. 예를 들어, 저복잡도 얼굴 인식 모델(Lightweight Face Recognition Model)은 경량 MobileFaceNets 구조를 활용할 수 있다.
최신 스마트폰에서 고복잡도 얼굴 인식 모델과 저복잡도 인식 모델은 약 20배 정도의 복잡도 차이를 보인다(예: LG V50에서 ArcFace 모델의 경우 287 ms 수행 시간이 소요되며, MobileFaceNets의 경우 14 ms의 수행 시간이 소요된다).
단계(P6)에서 각 얼굴 인식 모델의 인식 결과를 통합하고 탐색 대상과 매칭되는 얼굴 영역 및/또는 탐색 대상과 얼굴 영역들 간의 유사도를 입력 이미지(Input Frame)에 렌더링하여 표시한다.
도 5는 실시예에 따른 얼굴 인식 방법의 흐름도이다.
실시예에 따른 얼굴 인식 방법은, 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용하고, 탐지 라인에 의해, 복수 개의 이미지 블록을 포함하는 입력 이미지로부터 이미지 블록 단위로 얼굴 영역을 탐지하는 단계(S1), 제어 라인에 의해, 단계(S1)에서 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중 하나의 얼굴 인식 모델을 결정하는 단계(S2), 제어 라인에 의해, 단계(S2)에서 결정된 얼굴 인식 모델과 연계된 인식 라인으로 단계(S1)에서 탐지된 얼굴 영역을 분배하는 단계(S3) 및 탐지된 얼굴 영역이 분배된 인식 라인에 의해, 탐지된 얼굴 영역으로부터 얼굴 인식을 수행하는 단계(S4)를 포함할 수 있다.
단계(S1) 내지 단계(S3)은 제 1 얼굴 인식 장치(100)에 의해 실행되고, 제 1 얼굴 인식 장치(100)는 파이프라인의 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부를 실행 및 관리한다.
단계(S1)에서 제 1 얼굴 인식 장치(100)는 탐지 라인에 의해, 복수 개의 이미지 블록을 포함하는 입력 이미지로부터 이미지 블록 단위로 얼굴 영역을 탐지한다. 단계(S1)은 도 4를 참조하여 단계(P1), 단계(P2) 및 단계(P3)에 대응한다.
단계(S1)은 입력 이미지를 복수 개의 이미지 블록으로 분할하는 단계(도 4를 참조하여 단계(P1)) 및 각 이미지 블록의 엣지 밀도에 기반하여 각 이미지 블록에서 배경 영역을 제거하는 단계(도 4의 단계(P2))를 포함할 수 있다.
이하에서 도 7을 참조하여 배경 영역 제거에 대하여 살펴본다.
도 7은 실시예에 따른 얼굴 인식 방법의 배경 제거를 예시적으로 보여주는 도면이다.
복잡한 도심 공간 이미지에 얼굴 탐지 DNN을 수행하는 경우, 고화질 이미지를 처리해야 하기 때문에 긴 지연 시간이 발생한다. 이를 최적화하기 위해, 이미지 내에서 얼굴이 존재하지 않는 영역을 걸러낸 후 나머지 영역에 대해 얼굴 탐지를 수행한다. 이미지 내에서 얼굴이 존재하지 않는 영역을 걸러내는 과정을 엣지 탐지 기반 배경 영역 제거(Edge-Based Background Filtering)이라고 한다.
입력 이미지에서 엣지 탐지를 수행하는 경우, 얼굴이 존재하지 않는 배경 영역을 탐지할 수 있다.
일 예에서, 입력 이미지를 블록 단위로 나누어, 엣지 밀도가 기준 이하인 블록은 제거하고, 나머지 영역에 대해 얼굴 탐지를 수행한다.
도 7(a), (b), (c)는 엣지 탐지 및 배경 영역 제거의 예시적인 결과를 보여준다. (a)는 원본 입력 이미지, (b)는 (a)에 대한 엣지 탐지 결과 이미지, (c)는 엣지 탐지 결과에 기반하여 배경 영역을 제거한 이미지를 나타낸다.
평균적으로, 엣지 탐지를 활용하여 얼굴 탐지 정확도를 8.7% 희생하여 속도를 1.76배 향상할 수 있음을 확인하였다.
도 5로 돌아와서, 단계(S2)에서 제 1 얼굴 인식 장치(100)는 제어 라인에 의해, 단계(S1)에서 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중 하나의 얼굴 인식 모델을 결정한다.
단계(S2) 및 후술할 단계(S3)는 도 4를 참조하여 단계(P4)에 대응한다.
단계(S2)는 단계(S1)에서 탐지된 얼굴 영역에 나타난 얼굴 화질(resolution) 및 얼굴 자세에 기반하여, 얼굴 인식 난이도를 결정하는 단계를 포함한다.
이를 위하여, 얼굴 인식 난이도를 결정하는 단계는, 탐지된 얼굴 영역으로부터 얼굴 랜드마크를 추출하는 단계 및 추출된 얼굴 랜드마크 간의 위치 관계에 기반하여 얼굴 자세를 결정하는 단계를 포함할 수 있다.
탐지된 얼굴 영역으로부터 얼굴 랜드마크를 추출하는 단계는 탐지된 얼굴 영역에서 얼굴 랜드마크(예를 들어 눈, 코, 입 위치 정보)를 추출한다.
추출된 얼굴 랜드마크 간의 위치 관계에 기반하여 얼굴 자세를 결정하는 단계는 랜드마크 간의 위치 관계에 따라 얼굴 자세(예를 들어 정면 자세 또는 측면 자세)를 결정한다.
단계(S2)는 얼굴 화질 및 얼굴 자세에 기반하여 얼굴 인식 난이도를 결정하고, 결정된 얼굴 인식 난이도에 따라 서로 다른 얼굴 인식 DNN 모델들을 적응적으로 결정한다. 이에 따라 최적의 얼굴 인식 정확도 및 지연 시간 성능을 달성할 수 있다.
이하에서 도 8을 참조하여 단계(S2)를 예시적으로 살펴본다.
도 8은 실시예에 따른 얼굴 인식 방법의 얼굴 인식 모델 결정 과정을 설명하기 위한 도면이다.
다수의 얼굴이 포함된 도심 공간 이미지에서 얼굴을 탐지하는 경우, 개별 얼굴이 캡처된 환경에 따른 얼굴 인식 난이도에 큰 편차가 발생한다. 일례로, 카메라와 가까이 있어 크게 찍힌 얼굴의 경우 가벼운 얼굴 인식 DNN으로도 정확한 인식이 가능한 반면, 멀리 있는 저화질 얼굴의 경우 신원 화질 개선(identity clarification)에 의한 신원 복원 후에 복잡한 얼굴 인식 DNN을 적용해야 정확한 인식이 가능하다.
따라서, 도 5의 단계(S2)는 탐지된 얼굴 영역의 얼굴 변화에 따라 적응적으로 얼굴 인식 모델을 결정한다(Variation-Adaptive Face Recognition).
예를 들어, 얼굴 화질(resolution)이 소정의 기준값보다 작은 경우 얼굴 인식 난이도를 '상'으로 결정하고, 신원 복원 모델(P5_1) 및 고복잡도 얼굴 인식 모델(P5_2)을 선택할 수 있다.
예를 들어, 얼굴 화질이 소정의 기준값 이상인 경우, 얼굴 자세에 따라 측면 자세이면 얼굴 인식 난이도를 '중'으로 결정하고, 고복잡도 얼굴 인식 모델(P5_2)를 선택할 수 있다.
예를 들어, 얼굴 화질이 소정의 기준값 이상이고, 얼굴 자세가 정면 자세이면 얼굴 인식 난이도를 '하'로 결정하고, 저복잡도 얼굴 인식 모델(P5_3)을 선택할 수 있다.
일 예에서 얼굴 자세는 눈(번호 2)과 입(번호 5)를 연결한 선과 눈(번호 2)와 코(번호 3)을 연결한 선이 눈(번호 2)에서 이루는 각도(θ)의 크기에 따라 정면 자세 및 측면 자세 중 하나로 결정될 수 있다.
다시 도 5로 돌아와서, 단계(S3)에서 제 1 얼굴 인식 장치(100)는 제어 라인에 의해, 단계(S2)에서 결정된 얼굴 인식 모델과 연계된 인식 라인으로 단계(S1)에서 탐지된 얼굴 영역을 분배한다.
일 예에서, 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부는 제 1 얼굴 인식 장치(100)에 배치되고, 복수 개의 인식 라인 중 나머지는 제 2 얼굴 인식 장치(200)에 배치된다.
일 예에서 제 2 얼굴 인식 장치(200)에 배치된 인식 라인과 연계된 얼굴 인식 모델은 제 1 얼굴 인식 장치(100)에 배치된 인식 라인과 연계된 얼굴 인식 모델 보다 연산 복잡도가 더 높은 얼굴 인식 모델일 수 있다.
예를 들어, 제 1 얼굴 인식 장치(100)에 배치된 인식 라인과 연계된 얼굴 인식 모델은 저복잡도 얼굴 인식 모델이고, 제 2 얼굴 인식 장치(200)에 배치된 인식 라인과 연계된 얼굴 인식 모델은 신원 복원 모델 및 고복잡도 얼굴 인식 모델일 수 있다.
단계(S3)는 탐지된 얼굴 영역에 대한 얼굴 인식을 제 1 얼굴 인식 장치(100)로부터 제 2 얼굴 인식 장치(200)로 오프로딩(offloading)하는 단계를 포함할 수 있다.
예를 들어, 제 1 얼굴 인식 장치(100)는 자원 제한적인 단말이고, 제 2 얼굴 인식 장치(200)는 연산 자원이 풍부한 클라우드 서버이고, 제 1 얼굴 인식 장치(100)는 고복잡도 얼굴 인식 모델에 의한 얼굴 인식이 필요한 얼굴 영역을 제 2 얼굴 인식 장치(200)로 전송하여 제 2 얼굴 인식 장치(200)가 해당 얼굴 영역에 대한 얼굴 인식을 수행하도록 얼굴 인식 작업을 전달할 수 있다.
단계(S4)에서 탐지된 얼굴 영역이 분배된 인식 라인에 의해, 탐지된 얼굴 영역으로부터 얼굴 인식을 수행한다.
단계(S4)는 탐지된 얼굴 영역에 대하여 단계(S2)에서 결정된 얼굴 인식 모델을 실행하여 탐지된 얼굴 영역에 나타난 얼굴의 특징 벡터(feature vector)를 추출한다.
단계(S4)는 도 4를 참조하여 단계(P5_1), 단계(P5_1) 및 단계(P5_3)에 대응한다.
실시예에 따른 얼굴 인식 방법은, 단계(S4)에서 인식 라인에 의해 탐지된 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 탐지 라인에 의해 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하는 단계를 더 포함할 수 있다. 즉, 파이프 라인의 탐지 라인, 제어 라인 및 복수 개의 인식 라인은 병렬적으로 작동한다. 파이프라인의 병렬 처리는 도 6 및 도 9를 참조하여 후술한다.
실시예에 따른 얼굴 인식 방법은 입력 이미지에 대한 복수 개의 인식 라인의 얼굴 인식 결과에 기반하여 탐색 대상과 매칭되는 얼굴 영역을 결정하는 단계(S5)를 더 포함할 수 있다.
단계(S5)는 도 4를 참조하여 단계(P6)에 대응한다.
단계(S5)에서 각 얼굴 인식 모델에 의한 인식 결과 통합 및 렌더링이 수행된다. 단계(S5)에 의해 입력 이미지로부터 인식된 개별 얼굴들을 탐색 대상과 비교하여, 탐색 대상과 매칭되는 얼굴의 위치를 화면에 렌더링하여 사용자에게 보여줄 수 있다.
도 6는 실시예에 따른 얼굴 인식 과정에서 이용하는 파이프라인을 설명하기 위한 도면이다.
실시예에 따른 얼굴 인식을 위해 입력 이미지의 장면 구성에 따라 다양한 얼굴 인식 모델을 적응적으로 선택하여 모바일 이기종 프로세서 및 클라우드에서 병렬처리하는 콘텐츠-적응적 병렬처리 파이프라인을 개발하였다.
파이프라인은 탐지 라인(D) 및 복수의 인식 라인(R_1, R_2, R_3; R)을 포함한다. 파이프라인은 추가적으로 제어 라인(C)을 더 포함할 수 있다. 도 6에서 예시적으로 세 개의 인식 라인(R_1, R_2, R_3)을 도시하였고, 얼굴 인식 모델의 유형에 따라 더 많거나 더 적은 수의 인식 라인을 포함할 수 있다.
입력 이미지로부터 분할된 복수의 이미지 블록(B1, B2, B3)은 이미지 블록 단위로 파이프라인의 탐지 라인(D)에 페치된다. 예를 들어 이미지 블록(B1)은 탐지 라인(D)의 탐지 블록(D1)에서 처리된다. 이미지 블록(B2) 및 이미지 블록(B3)는 각각 탐지 블록(D2) 및 탐지 블록(D3)에서 처리된다.
탐지 라인(D)의 탐지 블록(D1)은 얼굴 탐지 모델을 실행하여 이미지 블록(B1)에서 얼굴 영역을 탐지한다. 탐지된 얼굴 영역은 제어 라인(C)으로 전달되어 제어 블록(C1)에서 얼굴 인식 난이도에 기반하여 얼굴 인식 모델을 결정하고, 결정된 얼굴 인식 모델과 연계된 인식 라인(R_1, R_2 및 R_3 중 하나)로 전달된다.
예를 들어 인식 라인(R_1)은 얼굴 영역에 대한 저복잡도 얼굴 인식 모델을 실행(L)하고, 인식 라인(R_2)는 고복잡도 얼굴 인식 모델을 실행(H)하고, 인식 라인(R_3)는 신원 복원 모델 및 고복잡도 얼굴 인식 모델을 실행(I+H)할 수 있다.
다른 예에서, 인식 라인(R_2) 및 인식 라인(R_3)는 하나의 인식 라인으로 통합되어 고복잡도 얼굴 인식 모델의 실행(H)과 함께 신원 복원 모델 및 고복잡도 얼굴 인식 모델의 실행(I+H)을 담당하도록 구성될 수 있다. 그밖에 실행 환경에 따라 다양한 조합으로 인식 라인의 개수 및 실행 모델을 구성할 수 있다.
탐지 라인(D)은 탐지 블록(D1)의 실행이 완료되면 이미지 블록(B2)에 대한 탐지 블록(D2)를 실행한다. 즉, 탐지 라인(D)은 인식 라인(R)에서 이미지 블록(B1)에 대한 탐지 블록(D1)으로부터 탐지된 얼굴 영역에 대한 얼굴 인식이 인식 라인(R)에서 진행되는 동안 다음 이미지 블록(D2)에 대한 탐지 블록(D2)를 실행한다. 이러한 방식으로 탐지 라인(D), 제어 라인(C) 및 인식 라인(R)은 병렬처리 파이프라인을 형성하고, 입력 이미지에 대한 얼굴 인식을 병렬적으로 처리한다.
이와 같은 파이프라인을 도입함으로써, 고화질 카메라 입력에 다중 DNN 연산을 반복적으로 수행해야 하는 얼굴 인식 알고리즘(고화질 이미지에 대한 얼굴 탐지 DNN 수행 후 탐지된 저화질 얼굴 당 얼굴 화질 개선 및 얼굴 인식 DNN 수행)의 처리 속도를 최적화할 수 있다.
도 9는 실시예에 따른 얼굴 인식 방법의 영역별 병렬처리 및 파이프라이닝 동작을 설명하기 위한 도면이다.
고화질 도심 공간 이미지에서 각 영역별로 얼굴을 탐지하고 인식하는 과정은 서로 간에 독립적인 작업으로, 병렬처리 및 파이프라이닝을 통해 최적화된 수행이 가능하다. 이미지 영역별(이미지 블록별) 병렬처리 및 파이프라이닝 기법은 이기종 모바일 프로세서(CPU, GPU) 및 클라우드 GPU를 동시 활용하여 다중 DNN 얼굴 인식 지연 시간을 최적화한다.
도 9는 영역별 병렬처리 및 파이프라이닝 동작의 예시를 나타낸다. 입력 이미지의 하나의 이미지 영역(이미지 블록)에 대한 얼굴 탐지를 모바일 CPU에서 수행한 후, 해당 영역에서 탐지된 적어도 하나의 얼굴에 대한 얼굴 인식 DNN 연산을 모바일 GPU 및 클라우드 GPU에서 병렬 수행한다.
이와 동시에, 다음 이미지 영역(이미지 블록)에 대한 얼굴 탐지를 모바일 CPU에서 동시 수행하여, 모바일 GPU 및 클라우드 GPU에서 연속적으로 얼굴 인식 DNN 연산을 수행할 수 있도록 한다.
도 9에 도시된 예에서 모바일 CPU는 도 6을 참조하여 탐지 라인(D)에 대응하고, 모바일 GPU는 인식 라인(R_1)에 대응하고, 클라우드 GPU는 인식 라인(R_2) 및 인식 라인(R_3)가 통합된 인식 라인에 대응한다. 도 6의 제어 라인(C)은 모바일 CPU에 의해 실행될 수 있다.
모바일 CPU는 탐지 라인(D)를 따라 이미지 블록별로 얼굴 탐지 모델을 실행한다. 이미지 블록 1 내지 이미지 블록 4가 예시적으로 도시되어 있고, 각각 탐지 블록 1 내지 탐지 블록 4에서 순차적으로 얼굴 탐지 모델을 실행하게 된다.
모바일 GPU는 탐지된 얼굴 영역의 얼굴 인식 난이도가 상대적으로 낮은 얼굴 영역에 대하여 저복잡도 얼굴 인식 모델을 실행한다. 클라우드 GPU는 탐지된 얼굴 영역의 얼굴 인식 난이도가 상대적으로 높은 얼굴 영역에 대하여 고복잡도 얼굴 인식 모델을 실행하거나 신원 복원 모델 및 고복잡도 얼굴 인식 모델을 실행한다.
도 10은 실시예에 따른 얼굴 인식 방법의 성능을 보여주는 그래프이다.
도 10은 기존 온-디바이스 순차적 수행 기법 대비 실시예에 따른 컨텐츠 적응적 병렬처리 파이프라인 기법의 성능을 비교하여 보여준다.
도 10의 그래프로부터 실시예에 따른 콘텐츠-적응적 병렬처리 파이프라인은 이미지 내 서로 다른 영역에 대한 처리를 모바일 CPU, GPU 및 클라우드에서 병렬처리(Spatial Pipelining)하여 모바일 기기 기반 순차적 DNN 연산 실행 기술에 비해 현저한 지연 시간 성능 감소를 달성함을 알 수 있다.
즉, 콘텐츠-적응적 병렬처리 파이프라인을 다수의 포함된 복잡한 도심 공간 이미지에 적용한 결과, 기존의 온-디바이스 순차적 DNN 연산 실행 기술 대비 약 9.07배의 지연 시간 가속 성능을 달성함을 확인하였다.
도 11은 실시예에 따른 얼굴 인식 방법에서 사용하는 얼굴 인식 알고리즘의 신원 복원 모델을 예시적으로 설명하기 위한 도면이다.
먼 거리에서 찍힌 작은 얼굴을 정확히 인식하기 위해 저화질 입력 얼굴의 화질을 개선하여 고화질 얼굴로 재구성하는 딥 뉴럴 네트워크(Deep Neural Network, DNN) 신원 복원 모델(Identity Clarification Network; ICN)을 설계하였다.
신원 복원 모델은 생성적 적대 신경망 구조에 기반한 딥 뉴럴 네트워크를 포함한다. 신원 복원 모델은 입력된 얼굴 이미지(LR)로부터 재구성된 얼굴 이미지(Reconstructed
Figure pat00001
)를 생성하는 생성기(G)와 입력된 얼굴 이미지(LR)에 대한 정답 얼굴 이미지(Ground Truth
Figure pat00002
)에 기초하여 생성기(G)가 생성한 재구성된 얼굴 이미지(Reconstructed
Figure pat00003
)가 정답 얼굴 이미지(Ground Truth
Figure pat00004
)에 대응하는 지 여부를 판별하는 판별기(D)를 포함한다.
생성기(G)와 판별기(D)는 생성적 적대 신경망(GAN)의 경쟁 함수로, 생성기(G)에 대한 GAN 손실 함수(LGAN) 및 판별기(D)에 대한 GAN 손실 함수(LDiscriminator)를 정의한다.
생성기(Generator)(G)는 얼굴 랜드마크 예측기(Face Landmark Estimator)(G_FLE)를 포함한다. 얼굴 랜드마크 예측기(G_FLE)는 생성기(G)에 입력되는 저화질 얼굴 이미지(LR)으로부터 적어도 하나의 얼굴 랜드마크(landmark
Figure pat00005
)를 추출할 수 있다. 여기서 예를 들어 얼굴 랜드마크는 얼굴의 윤곽 정보 및 이목구비 정보를 포함한다.
얼굴 랜드마크 예측기(G_FLE)가 예측한 얼굴 랜드마크와 정답 얼굴 이미지로부터 추출된 얼굴 랜드마크에 기반하여 후술할 랜드마크 정확도 함수(Llandmark)가 정의된다.
신원 복원 모델에 얼굴 랜드마크 예측기(G_FLE)를 도입함으로써 생성기(G)가 고화질 얼굴을 재구성하는 과정에서, 고화질 얼굴 이미지(Reconstructed
Figure pat00006
)의 재구성 정확도가 향상될 수 있다.
생성기(D)는 얼굴 업샘플러(Face Upsampler)(G_FUP)를 포함한다. 얼굴 업샘플러(G_FUP)는 얼굴 랜드마크 예측기(G_FLE)로부터 추출된 적어도 하나의 얼굴 랜드마크에 기초하여 저화질 얼굴 이미지(LR)로부터 재구성된 고화질 얼굴 이미지(Reconstructed
Figure pat00007
)를 생성한다.
얼굴 업샘플러(G_FUP)가 재구성한 얼굴 이미지와 정답 얼굴 이미지의 픽셀값에 기반하여 후술할 픽셀 정확도 함수(Lpixel)가 정의된다.
판별기(D)는 GAN 학습을 위한 잔차 블록(Residual block) 기반 구조를 포함하여 구성될 수 있다.
추가적으로 신원 복원 모델은 얼굴 특징 추출기(Face Feature Extractor)(
Figure pat00008
)를 포함한다. 얼굴 특징 추출기(
Figure pat00009
)는 재구성된 얼굴 이미지(Reconstructed
Figure pat00010
)의 특징맵(feature map) 및 정답 얼굴 이미지(Ground Truth
Figure pat00011
)의 특징맵을 추출한다.
얼굴 특징 추출기(
Figure pat00012
)는 재구성된 얼굴 이미지(Reconstructed
Figure pat00013
)의 특징맵(feature map) 및 정답 얼굴 이미지(Ground Truth
Figure pat00014
)의 특징맵에 기반하여 후술할 얼굴 특징 유사도 함수(Lface)가 정의된다.
얼굴 특징 추출기(
Figure pat00015
)는 예를 들어 잔차 블록 기반 ArcFace 네트워크 구조의 얼굴 인식 네트워크를 적용할 수 있으며, 이에 제한되지 않고 얼굴 인식을 위한 다양한 신경망 구조를 포함할 수 있다.
일 예에서, 생성기(G)가 사실적인 얼굴을 재구성하도록 하는 제 1 목표 함수(Ltotal)와 판별기(D)가 생성기(G)가 재구성한 얼굴과 정답 얼굴을 잘 구분할 수 있도록 하는 제 2 목표 함수(LDiscriminator)를 번갈아 최소화하도록 학습하여, 신원 복원 모델이 높은 재구성 정확도를 얻을 수 있도록 한다.
이하에서는 도 12 내지 도 19를 참조하여 실시예에 따른 콘텐츠 및 자원 적응적 병렬처리 파이프라인을 이용한 얼굴 인식 방법에 대하여 살펴본다.
도 12는 실시예에 따른 콘텐츠 및 자원 적응적 병렬처리 파이프라인을 설명하기 위한 도면이다.
실시예에 따른 얼굴 인식 방법 및 장치는 고화질 카메라 입력에 다중 DNN 연산을 반복적으로 수행해야 하는 얼굴 인식 알고리즘(도 2 참조, 고화질 이미지에 대한 얼굴 탐지 DNN 수행 후 탐지된 저화질 얼굴 당 얼굴 화질 개선 및 얼굴 인식 DNN 수행)의 처리 속도를 최적화하기 위해, 입력 비디오의 장면 구성에 따라 다양한 DNN을 적응적으로 선택하여 모바일 이기종 프로세서 및 클라우드에서 병렬처리하는 콘텐츠-적응적 병렬처리 파이프라인을 이용한다.
최근 모바일 기기에서 DNN 연산을 수행할 수 있는 플랫폼들이 개발되고 있으나, 단일 DNN 연산을 실행하는데 머물러 복잡한 도심 공간 속 얼굴 인식을 위한 다중 DNN 동시 수행을 지원하지 못한다.
실시예에서 제공하는 콘텐츠-적응적 병렬처리 파이프라인은 (i) 고화질 이미지에 얼굴 탐지 DNN을 수행하기 전 엣지 탐지 알고리즘을 수행하여 얼굴이 존재하지 않는 배경 영역을 제거하고(Edge-Based Background Filtering)(도 7 참조), (ii) 탐지된 얼굴의 화질, 자세 및 블러(blur)를 기반으로 얼굴 인식의 난이도를 예측하여 얼굴 인식 DNN의 복잡도를 적응적으로 조절하며(Variation-Adaptive Face recognition)(도 15 참조), (iii) 이미지 내 서로 다른 영역에 대한 처리를 모바일 CPU, GPU 및 클라우드에서 병렬처리(Spatial Pipelining)한다(도 12 참조).
실시예에 따른 얼굴 인식 방법은 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)에 의해 도 12에 도시된 단계(PP1, PP2, PP3, PP4, PP5, PP6_1, PP6_2, PP7)에 의하여 수행된다.
입력 이미지(Input frame)에 대한 얼굴 인식 과정에서 도 12에 도시된 단계(PP1, PP2, PP3, PP4, PP5, PP6_1, PP6_2, PP7)의 전부 또는 일부가 수행될 수 있다. 도 12에 도시된 단계(PP1, PP2, PP3, PP4, PP5, PP6_1, PP6_2, PP7)의 수행 순서는 변경될 수 있다. 예를 들어, 단계(PP2)를 단계(PP1) 보다 먼저 수행하거나 또는 반대일 수 있다.
단계(PP1), 단계(PP2) 및 단계(PP3)는 도 4를 참조하여 단계(P1), 단계(P2) 및 단계(P3)에 각각 대응한다. 단계(PP7)은 도 4를 참조하여 단계(P6)에 대응한다.
단계(PP1)에서 제 1 얼굴 인식 장치(100)는 카메라 프레임 입력(Input frame)을 획득한다. 예를 들어, AR 글래스 또는 스마트폰 카메라로부터 실시간 카메라 프레임 입력을 획득한다.
단계(PP2)에서 제 1 얼굴 인식 장치(100)는 엣지 탐지 기반 배경 영역 제거한다. 예를 들어, 입력 프레임을 영역으로 나누고, 각 영역별로 엣지(윤곽선)을 탐지하여, 엣지 밀도가 낮은 배경 영역은 처리에서 제거하여 불필요한 연산을 줄이도록 한다.
단계(PP3)에서 제 1 얼굴 인식 장치(100)는 입력 프레임의 이미지 블록에서 적어도 하나의 얼굴 영역을 탐지한다.
추가적으로 단계(PP3)에서 제 1 얼굴 인식 장치(100)는 모션 트래킹 기반 인식 결과 캐싱을 수행하여 연속된 프레임 내 얼굴들의 움직임을 예측할 수 있다. 예를 들어, 현재 프레임에서 탐지된 얼굴이 이전 프레임에서 인식 모델을 이미 수행한 얼굴과 대응된다고 판단되는 경우, 인식 결과를 캐싱 및 재사용한다.
단계(PP4)에서 제 1 얼굴 인식 장치(100)는 얼굴 인식 난이도를 예측한다. 일 예에서 제 1 얼굴 인식 장치(100)는 단계(PP2)에서 필터링된 영역에 대해 단계(PP3)에서 얼굴 탐지를 수행 후, 탐지된 개별 얼굴의 인식 난이도를 예측 후, 난이도 별로 정렬한다.
단계(PP5)에서 제 1 얼굴 인식 장치(100)는 자원 적응적 얼굴 인식 모델 선택 및 수행 스케줄을 결정한다.
예를 들어 제 1 얼굴 인식 장치(100)는 단계(PP4)에서 분석된 얼굴의 인식 난이도 및 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)의 가용 자원 현황을 예측하여, 얼굴 인식 정확도 및 처리 시간을 종합적으로 최적화할 수 있는 인식 모델을 선택할 수 있다.
단계(PP6_1) 및 단계(PP6_2)에 의해 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)는 다중 프로세서 병렬처리 및 영역별 파이프라이닝을 실행한다. 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)는 이미지 내 영역별 얼굴 탐지 및 인식 태스크의 독립성, 개별 얼굴별 인식 태스크의 독립성을 활용하여 모바일 CPU, GPU, 클라우드 GPU에 할당된 연산을 병렬적으로 처리한다.
단계(PP7)에서 제 1 얼굴 인식 장치(100)는 인식 결과 통합 및 렌더링을 제공한다. 단계(PP5)를 통해 인식된 개별 얼굴들을 탐색 대상과 비교하여, 탐색 대상과 일치하는 얼굴의 위치를 사용자 단말, 예를 들어 제 1 얼굴 인식 장치(100)의 화면에 렌더링하여 사용자에게 보여준다.
도 13은 실시예에 따른 얼굴 인식 방법의 흐름도이다.
실시예에 따른 얼굴 인식 방법은 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용하여 프로세서를 포함한 얼굴 인식 장치에 의해 실행되는 얼굴 인식 방법에 있어서, 탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하는 단계(SS1), 제어 라인에 의해, 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하는 단계(SS2), 제어 라인에 의해, 예상 얼굴 인식 난이도에 기반하여 복수 개의 인식 라인 중 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하는 단계(SS3), 제어 라인에 의해, 결정된 인식 라인으로 적어도 하나의 얼굴 영역을 분배하는 단계(SS4) 및 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해, 적어도 하나의 얼굴 영역의 각각으로부터 얼굴 인식을 수행하는 단계(SS5)를 포함할 수 있다.
단계(SS1)에서 얼굴 인식 장치(100)의 프로세서(110)는 탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지한다. 단계(SS1)은 도 5를 참조하여 단계(S1)에 대응한다.
단계(SS1) 이후에, 프로세서(110)는 모션 트래킹 기반 인식 결과 캐싱을 수행하여 연속된 프레임 내 얼굴들의 움직임을 예측할 수 있다. 예를 들어, 현재 프레임에서 탐지된 얼굴이 이전 프레임에서 인식 모델을 이미 수행한 얼굴과 대응된다고 판단되는 경우, 인식 결과를 캐싱 및 재사용한다. 이에 대하여는 도 14를 참조하여 후술한다.
단계(SS2)에서 프로세서(110)는 제어 라인에 의해, 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정한다.
단계(SS2)에서 프로세서(110)는 얼굴 영역의 얼굴 화질, 얼굴 자세 및 얼굴 블러(blur) 중 적어도 하나에 기반하여 적어도 하나의 얼굴 영역의 각각의 예상 얼굴 인식 난이도를 결정할 수 있다. 이에 대하여는 도 15를 참조하여 후술한다.
단계(SS3)에서 프로세서(110)는 제어 라인에 의해, 예상 얼굴 인식 난이도에 기반하여 복수 개의 인식 라인 중 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정한다.
단계(SS3)은 예상 얼굴 인식 난이도의 오름차순으로 적어도 하나의 얼굴 영역의 각 얼굴 영역의 인식 라인을 결정하는 단계를 포함할 수 있다.
단계(SS3)은 얼굴 영역의 예상 얼굴 인식 정확도 및 예상 연산 지연 시간에 따른 소정의 목표 함수에 기반하여 각 얼굴 영역에 적용할 얼굴 인식 모델 및 해당 얼굴 인식 모델을 실행할 얼굴 인식 장치의 조합을 결정하는 단계를 포함할 수 있다. 이에 대하여는 도 18 및 19를 참조하여 후술한다.
단계(SS4)에서 프로세서(110)는 제어 라인에 의해, 결정된 인식 라인으로 적어도 하나의 얼굴 영역을 분배한다.
일 예에서, 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부는 제 1 얼굴 인식 장치(100)에 배치되고, 복수 개의 인식 라인 중 나머지는 제 2 얼굴 인식 장치(200)에 배치되고, 단계(SS4)는 적어도 하나의 얼굴 영역 중 적어도 일부에 대한 얼굴 인식을 제 1 얼굴 인식 장치(100)로부터 제 2 얼굴 인식 장치(200)로 오프로딩(offloading)하는 단계를 포함할 수 있다. 이는 도 5를 참조하여 단계(S3)의 오프로딩 관련 내용과 대응된다.
단계(SS5)에서 프로세서(110) 및/또는 프로세서(210)는 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해, 적어도 하나의 얼굴 영역의 각각으로부터 얼굴 인식을 수행한다.
추가적으로 실시예에 따른 얼굴 인식 방법은 입력 이미지에 대한 복수 개의 인식 라인의 얼굴 인식 결과에 기반하여 탐색 대상과 매칭되는 얼굴 영역을 결정하는 단계(SS6)를 더 포함할 수 있다. 단계(SS6)는 도 5를 참조하여 단계(S5)에 대응한다.
추가적으로 실시예에 다른 얼굴 인식 방법은 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 적어도 하나의 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 탐지 라인에 의해 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하는 단계를 더 포함할 수 있다. 이에 대하여는 도 19를 참조하여 예를 들어 살펴본다.
도 14는 얼굴 인식 과정의 모션 트래킹 과정을 설명하기 위한 도면이다.
단계(SS1)에서 프로세서(110)는 도심 공간을 캡쳐한 비디오 프레임들로부터 다양한 신원(identity)를 가진 사람들의 얼굴을 탐지한다.
입력 이미지가 일련의 프레임을 포함한 비디오인 경우, 얼굴 인식 장치(100)는 동일 신원을 가진 사람의 얼굴 프레임 시퀀스를 입력으로 받을 수 있다. 즉, 입력 비디오의 프레임별로 얼굴을 탐지하지만, 연속된 프레임 간에는 카메라 움직임, 장면 내 대상의 움직임 등으로 인해 동일 신원을 가진 사람의 얼굴이 시간에 따라 다른 위치에 나타날 수 있다.
여기서, 카메라 움직임, 장면 내 얼굴 움직임 등이 포함된 연속된 프레임들로부터 탐지된 얼굴 이미지들이 동일 신원으로 매핑되는 경우 기 저장된 얼굴 인식 결과를 재사용할 수 있다. 예를 들어, 얼굴 인식이 이미 완료된 얼굴 이미지와 동일 신원인 것으로 판단된 얼굴 이미지에 대하여는 기 저장된 얼굴 인식 결과를 재사용하고 단계(SS2) 내지 단계(SS6)을 실행하지 않을 수 있다.
이를 위하여 실시예에 따른 얼굴 인식 방법은 단계(SS1) 이후에 입력 비디오의 연속된 프레임 간 얼굴의 움직임을 고려하여 프레임별로 탐지된 얼굴들을 같은 신원끼리 매핑하기 위해, 특징점 기반 얼굴 트래킹 기법을 사용할 수 있다.
일 예에서, 실시예에 따른 얼굴 인식 방법은, 일련의 이미지 프레임의 연속한 이미지 프레임 간 얼굴 영역 이동 정보(즉, 모션 트래킹 정보)에 기반하여 단계(SS1)에서 탐지된 적어도 하나의 얼굴 영역의 각각에 대응하는 기 인식 완료된 얼굴 영역을 탐색하는 단계 및 이와 같은 탐색의 결과에 따라 기 인식 완료된 얼굴 영역의 얼굴 인식 정보를 재사용하는 단계를 더 포함할 수 있다.
비디오 컨텐츠의 연속된 프레임 간 시간적 연속성(temporal correlation)을 활용하여, 현재 프레임에서 탐지된 얼굴이 이전 프레임에서 이미 처리 완료된 경우 인식 모델 연산을 새로 수행하지 않고 이전 결과를 재사용한다. 연속된 프레임에서 탐지된 얼굴들 간 대응 관계를 파악하기 위해, 아래의 얼굴 트래킹 과정을 거친다.
(i) 단계(TR1) - 얼굴 탐지(Face Detection): 먼저, 연속된 두 입력 프레임(frame t, frame t+1)에서 각각 얼굴을 탐지한다.
(ii) 단계(TR2) - 랜드마크 추출(Landmark Estimation): 탐지된 개별 얼굴들로부터 랜드마크(예를 들어 눈, 코, 입의 위치)를 특징점으로 추출한다. 이를 위하여 예를 들어 얼굴 탐지 및 특징점 추출을 동시에 수행 가능한 RetinaFace detector(J. Deng et al., "RetinaFace: Single-stage Dense Face Localisation in the Wild," CVPR 2020.)를 사용할 수 있다.
(iii) 단계(TR3) - 광학 흐름 트래킹(Optical Flow Tracking): 이후, frame t와 frame t+1 사이에서 대응되는 랜드마크를 찾기 위해 광학 흐름(Optical Flow)을 계산한다. 예를 들어, Lukas-Kanade Optical Flow Tracker(B. D. Lucas, T. Kanade et al., "An iterative image registration technique with an application to stereo vision." Vancouver, British Columbia, 1981.)를 사용할 수 있다.
(iv) 단계(TR4) - 움직임 보상(Motion Compensation): 단계(TR3)에서 계산된 랜드마크(예를 들어 눈, 코, 입)의 특징점들의 광학 흐름(Optical Flow)의 평균을 구한다. 해당 평균을 프레임 간 물체의 움직임으로 가정하고, frame t의 얼굴 바운딩 박스(bounding box) 좌표들을 변환한다.
(v) 단계(TR5) - IoU-based Bounding Box Matching: 단계(TR4)의 과정을 거친 frame t의 바운딩 박스들과 frame t+1의 바운딩 박스들 간 IoU (Intersection over Union)를 계산하여 겹치는 영역의 면적을 계산한다. IoU가 일정 값 이상인 두 바운딩 박스가 탐지되는 경우, 해당 두 얼굴을 동일 신원으로 판단한다.
도 15는 실시예에 따른 예상 얼굴 인식 난이도 결정 과정을 설명하기 위한 도면이다.
다수의 얼굴이 포함된 도심 공간 이미지에서 얼굴을 탐지하는 경우, 개별 얼굴이 캡처된 환경에 따른 얼굴 인식 난이도에 큰 편차가 발생한다. 탐지된 얼굴의 인식 난이도를 분석하고, 이를 기반으로 최적의 인식 모델을 선택하는 경우 자원 소모 및 인식 지연시간을 최적화할 수 있다.
일례로, 카메라와 가까이 있어 크게 찍힌 얼굴의 경우 인식 난이도가 낮아 가벼운 얼굴 인식 DNN 모델을 선택하면 낮은 자원 소모로도 높은 정확도를 얻을 수 있다(예: Residual block (K. He et al., “Deep residual learning for image recognition,” CVPR 2016.) 기반 ArcFace 모델(J. Deng et al., “ArcFace: Additive Angular Margin Loss for Deep Face Recognition,” CVPR 2019.)과 경량 MobileFaceNets 모델(S. Chen et al., “MobileFaceNets: Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices,” CCBR 2018.)는 최신 LG V50 스마트폰에서 수행 시간이 20배 가량 차이나나(287 vs. 14 ms), 동일한 정확도를 가진다). 반면, 멀리 있는 저화질 얼굴의 경우 인식 난이도가 높아 정확한 인식을 위해서는 신원 화질 개선(identity clarification) 이후 복잡한 얼굴 인식 DNN 선택이 필수적이다.
실시예에서는 최적의 얼굴 인식 정확도 및 지연 시간 성능을 달성하기 위해, 탐지된 얼굴에 대한 인식 난이도를 예측하고, 이를 기반으로 최적의 인식 모델을 선택한다.
도 15는 얼굴 인식 난이도 분석 구조도로서, 얼굴 인식 난이도를 분석하기 위해 인식 정확도에 영향을 미치는 다양한 요소들을 폭넓게 고려한다.
구체적으로, 얼굴 특징 분석기(Face Attribute Analyzer)(FA_A)는 탐지된 얼굴별로 아래의 세 가지 요소들을 경량 이미지 처리 기법들을 기반으로 분석한다.
(i) 포즈 분석기(Pose Estimator)(P_E): 얼굴의 자세는 탐지된 얼굴의 눈, 코, 입과 같은 랜드마크 위치를 통해 분석 가능하다. 예를 들어 얼굴 자세는 도 16을 참조하여 얼굴 각도 θ에 따라 결정될 수 있다. 이에 대하여는 도 16을 참조하여 살펴본다.(ii) 화질 분석기(Resolution Estimator)(R_E): 탐지된 얼굴의 바운딩 박스 크기로부터, 얼굴 화질을 수학식 1과 같이 예측한다.
Figure pat00016
(r: 얼굴 화질, H, W: 바운딩 박스 height, width)
(iii) 움직임 블러 예측기(Motion Blur Estimator)(B_E): 얼굴 이미지의 움직임에 따른 블러를 탐지하기 위해, 입력 RGB 이미지를 Grayscale로 변환 후, 픽셀 값들의 2차 미분값을 얻을 수 있는 Laplacian filter L(수학식 2)를 적용한다. 이후, 변환된 이미지의 평균 intensity를 수학식 3과 같이 계산하여 blur intensity B를 얻는다.
Figure pat00017
Figure pat00018
(X: Grayscale 변환 및 Laplacian filter 적용된 이미지)
즉, 얼굴 이미지를 그레이 스케일 변환 및 라플라스 필터를 적용하여 얼굴 이미지의 블러 강도(blur intensity)를 획득한다. 예를 들어 블러 강도가 낮을수록 예상 얼굴 인식 난이도가 높아지도록 예측한다. 이에 대한 예시는 도 17에서 살펴본다.
(iv) 최종적으로, 인식 난이도 예측기(Recognition Diffculty Estimator)(RD_E)는 위 세 가지 요소를 결합하여 최종 예측된 인식 난이도 D를 수학식 4와 같이 계산한다.
Figure pat00019
예를 들어, 난이도 예측 함수 f는 Support Vector Macnine(C. Cortes et al., "Support-vector networks." Machine learning 20.3 (1995): 273-297.)을 활용할 수 있으며, 이에 제한되지 않는다.
이후, 탐지된 얼굴들을 예측된 얼굴 인식 난이도에 따라 정렬하여 자원 적응적 얼굴 인식 모델 선택 및 수행 스케줄링에 활용한다.
도 16은 실시예에 따른 얼굴 인식 난이도 결정에서 랜드마크 기반 얼굴 자세 결정의 예시도이다.
탐지된 얼굴 랜드마크가 도 16과 같이 주어졌을 때, 얼굴 각도 θ를 [수학식 5]와 같이 예측할 수 있다. 예를 들어, 얼굴이 옆모습일수록 θ가 음수가 된다.
Figure pat00020
도 17은 실시예에 따른 얼굴 인식 난이도 결정에서 얼굴 블러 결정의 예시도이다.
도 17은 전술한 Laplacian filtering 기반 blur estimation 동작 예시를 보여준다.
블러가 없는 얼굴 이미지(FACE1)의 변환 결과(T_FACE1)로부터 얻은 블러 강도 값이 블러가 있는 얼굴 이미지(FACE2)의 변환 결과(T_FACE2)에서 얻은 블러 강도 값보다 높게 나타난 예시를 보여준다.
도 18은 실시예에 따른 콘텐츠 및 자원 적응적 얼굴 인식 모델 선택 및 수행 스케줄링을 설명하기 위한 도면이다.
도 12를 참조하여 단계(PP5)에서 얼굴 인식 장치(100)의 프로세서(110)는 예측된 얼굴 인식 난이도에 따라 정렬(예를 들어 난이도의 오름차순으로 정렬)된 얼굴들에 대해, 현재 가용 자원을 고려하여 인식 정확도 및 지연 시간을 종합적으로 최적화할 수 있는 인식 모델 선택 및 수행 스케줄링을 진행한다. 이는 도 13을 참조하여 전술한 단계(SS3) 및 단계(SS4)에 대응한다.
구체적으로, 탐지된 얼굴
Figure pat00021
에 대해 인식 모델
Figure pat00022
를 선택한다고 가정했을 때, 얼굴 인식 정확도
Figure pat00023
를 예측한다.
모델의 얼굴 인식 정확도는 다양한 난이도를 가진 얼굴 인식 벤치마크 데이터셋(예: 다양한 자세 변화를 포함한 Cross-Pose LFW 데이터셋 (T. Zheng et al., “Cross-Pose LFW: A Database for Studying Cross-Pose Face Recognition in Unconstrained Environments,“ Beijing University of Posts and Telecommunications, Tech. Rep 2018.), 다양한 화질 변화를 포함하는 VGGFace2 데이터셋(Q. Cao et al., “VGGFace2: A dataset for recognising faces across pose and age,” F&G 2018.), 다양한 조명 환경 변화를 포함한 UHDB31 데이터셋(H. Le et al., “UHDB31: A Dataset for Better Understanding Face Recognition across Pose and Illumination Variation,“ ICCV 2017.))에 대하여 개별 얼굴별로 전술한 수학식 4를 통해 얼굴 인식 난이도를 예측하고, 얼굴 인식 모델을 활용하여 실제 인식 정확도를 측정한다. 이를 통해, <얼굴 인식 난이도, 인식 정확도> 간 매핑 테이블을 만들고, 실제 테스트 단계에서 입력으로 들어오는 얼굴 이미지의 인식 난이도를 예측 후, 매핑 테이블 상의 대응되는 값을 읽어 인식 정확도를 예측한다.
또한, 해당 인식 모델
Figure pat00024
를 프로세서
Figure pat00025
에서 수행하였을 때 지연 시간
Figure pat00026
를 예측한다. 예를 들어, 연산 지연 시간은 해당 모델의 추론 시간과 해당 프로세서에서 현재 수행 중인 태스크가 모두 끝나는 시간의 합으로 예측할 수 있다. 말하자면, 연산 지연 시간은 후술할 도 18을 참조하여 프로세서
Figure pat00027
에서의 해당 모델의 추론 시간과 프로세서
Figure pat00028
의 작업 큐Qi에 대기 중인 태스크가 모두 끝나는 시간의 합으로 예측할 수 있다.
위를 종합하여, 탐지된 얼굴들에 대해 목표 함수인 [수학식 6]를 최대화하도록 최적의 (
Figure pat00029
,
Figure pat00030
,
Figure pat00031
) 조합을 결정한다. 이때, 전체 연산 지연 시간이 [수학식 7]의 응용 요구사항
Figure pat00032
을 넘지 않도록 스케줄링한다.
Figure pat00033
Figure pat00034
실시예에서, 인식 모델 집합(SET_MDL)은 고-연산 인식 모델(Heavy Recognition Model; H), 저-연산 인식 모델(Lightweight recognition model; L) 및 얼굴 화질 개선 모델(Identity Clarification Model; ICN)과 고-연산 인식 모델(H)이 연계된 모델(I+H)을 포함할 수 있다.
예를 들어, heavy recognition 모델의 경우 Residual block 기반 ArcFace 네트워크 구조, lightweight recognition 모델의 경우 경량 MobileFaceNets 구조(S. Chen et al., “MobileFaceNets: Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices,” CCBR 2018.), 저화질 얼굴 화질 개선 모델의 경우 도 11을 참조하여 ICN 구조를 활용할 수 있으며 이에 제한되는 것은 아니다.
실시예에서, 선택가능한 프로세서 집합(SET_PU)은 이기종 프로세서(heterogeneous processors)를 포함할 수 있다.
예를 들어 선택 가능한 프로세서 집합(SET_PU)는 Mobile CPU(PU1), Mobile GPU(PU2) 및 Cloud GPU(PU3)을 포함할 수 있으며, 이에 제한되지 않고 다양한 형태 및 연산 방식의 프로세싱 유닛을 포함할 수 있다.
도 13을 참조하여 전술한 단계(SS3)은 얼굴 영역의 예상 얼굴 인식 정확도 및 예상 연산 지연 시간에 따른 소정의 목표 함수에 기반하여 얼굴 영역에 적용할 얼굴 인식 모델 및 해당 얼굴 인식 모델을 실행할 얼굴 인식 장치의 조합을 결정하는 단계를 포함한다. 즉, 인식 라인을 결정한다는 것은 주어진 얼굴 영역에 대한 얼굴 인식에 사용할 얼굴 인식 모델과 해당 얼굴 인식 모델을 실행할 얼굴 인식 장치를 결정하는 것을 의미한다.
프로세서 집합(SET_PU)의 프로세서는 각각 자신의 작업 큐(예를 들어 Q1, Q2 및 Q3)를 운영하며, 작업 큐로부터 FIFO 방식으로 작업(태스크)를 페치(fetch) 및 실행한다.
단계(S33)에서 인식 라인이 결정되면, 도 13을 참조하여 전술한 단계(SS4)는 단계(SS3)에서 결정된 인식 라인을 따라 해당 얼굴 영역의 얼굴 인식 작업을 분배한다. 예를 들어, 프로세서(110)는 해당 얼굴 영역의 얼굴 인식을 실행할 프로세서(예를 들어 PU1이라고 하자)의 작업 큐(예를 들어 Q1)에 대상 얼굴 영역 및 사용할 얼굴 인식 모델(예를 들어 L)을 포함한 작업 정보를 추가한다.
도 19는 실시예에 따른 다중 프로세서 병렬처리 및 영역별 파이프라이닝 동작의 예시도이다.
실시예에 따른 얼굴 인식 기술은 (i) 고화질 도심 공간 이미지에서 각 영역별로 얼굴을 탐지하고, (ii) 개별 얼굴들을 인식하는 과정은 서로 간에 독립적인 작업으로, 병렬처리 및 파이프라이닝을 통해 최적화된 수행이 가능하다.
영역별 병렬처리 및 파이프라이닝 기법은 이기종 모바일 프로세서(CPU, GPU) 및 클라우드 GPU를 동시 활용하여 다중 DNN 얼굴 인식 지연 시간을 최적화한다.
구체적으로, 도 19는 영역별 병렬처리 및 파이프라이닝 동작 예시를 나타낸다. 제 1 이미지 영역에 대한 얼굴 탐지를 모바일 CPU에서 수행(예를 들어, Detection on 1)한 후, 제 1 이미지 영역에서 탐지된 얼굴들에 대한 얼굴 인식 DNN 연산을 모바일 및 클라우드 GPU에서 병렬 수행(예를 들어, Recognition on 1)한다.
이와 동시에, 다음 이미지 영역인 제 2 이미지 영역 및 제 3 이미지 영역에 대한 얼굴 탐지를 모바일 CPU에서 수행(예를 들어, Detection on 2 및 Detection on 3)하여, 모바일 및 클라우드 GPU에서 연속적으로 얼굴 인식 DNN 연산을 수행(예를 들어, Recognition on 2)할 수 있도록 한다.
실시예에 따른 얼굴 인식 기법은, 얼굴 인식 기반의 여러 유용한 모바일 AR 응용(예: 실종 아동 찾기, 범인 추적)에 적용가능하고, 모바일 기기에서 다중 DNN 및 렌더링 연산을 동시 수행해야 하는 AR 응용을 위한 모바일 딥러닝 플랫폼에 적용될 수 있다.
한편, 제안한 모바일 이기종 프로세서 및 클라우드 기반 다중 DNN 연산 수행 기법은 얼굴 인식 분야 뿐만 아니라 공항 얼굴 인식 기반 자동 출입국 시스템, IoT, 자율주행 등 최근 떠오르고 있는 다중 DNN 기반의 다양한 모바일/임베디드 AI 시스템에서도 활용할 수 있다.
실시예에 따른 얼굴 인식 방법은 안드로이드 기기에서 수행될 수 있는 Java 기반 소프트웨어로 구현되어, 다수의 상용 안드로이드 스마트폰에 탑재되어 활용될 수 있다. 실시예에 따른 DNN 기반 얼굴 인식 기술은 Google TensorFlow로 구현되어, 안드로이드용 Google TensorFlow-Lite로 변환하여 실행할 수 있다.
전술한 본 발명의 일 실시예에 따른 방법은 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
실시예에 따른 얼굴 인식 방법은 이를 실행하기 위한 하나 이상의 명령어를 포함하는 컴퓨터 프로그램을 기록한 컴퓨터 판독가능한 비-일시적인 기록매체에 저장될 수 있다.
이상 설명된 본 발명의 실시 예에 대한 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 청구범위에 의하여 나타내어지며, 청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 제 1 얼굴 인식 장치
200: 제 2 얼굴 인식 장치
300: 네트워크

Claims (17)

  1. 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용하여 프로세서를 포함한 얼굴 인식 장치에 의해 실행되는 얼굴 인식 방법에 있어서,
    탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하는 단계;
    제어 라인에 의해, 상기 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하는 단계;
    상기 제어 라인에 의해, 상기 예상 얼굴 인식 난이도에 기반하여 상기 복수 개의 인식 라인 중 상기 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하는 단계;
    상기 제어 라인에 의해, 결정된 상기 인식 라인으로 상기 적어도 하나의 얼굴 영역을 분배하는 단계; 및
    상기 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해, 상기 적어도 하나의 얼굴 영역의 각각으로부터 얼굴 인식을 수행하는 단계를 포함하는,
    얼굴 인식 방법.
  2. 제 1 항에 있어서,
    상기 예상 얼굴 인식 난이도를 결정하는 단계는,
    얼굴 영역의 얼굴 화질, 얼굴 자세 및 얼굴 블러(blur) 중 적어도 하나에 기반하여 상기 적어도 하나의 얼굴 영역의 각각의 예상 얼굴 인식 난이도를 결정하는 단계
    를 포함하는,
    얼굴 인식 방법.
  3. 제 1 항에 있어서,
    상기 인식 라인을 결정하는 단계는, 상기 예상 얼굴 인식 난이도의 오름차순으로 상기 적어도 하나의 얼굴 영역의 각 얼굴 영역의 인식 라인을 결정하는 단계를 포함하는,
    얼굴 인식 방법.
  4. 제 1 항에 있어서,
    상기 인식 라인을 결정하는 단계는,
    얼굴 영역의 예상 얼굴 인식 정확도 및 예상 연산 지연 시간에 따른 소정의 목표 함수에 기반하여 상기 얼굴 영역에 적용할 얼굴 인식 모델 및 상기 얼굴 인식 모델을 실행할 얼굴 인식 장치의 조합을 결정하는 단계를 포함하는,
    얼굴 인식 방법.
  5. 제 1 항에 있어서,
    상기 탐지 라인, 상기 제어 라인 및 상기 복수 개의 인식 라인 중 적어도 일부는 제 1 얼굴 인식 장치에 배치되고,
    상기 복수 개의 인식 라인 중 나머지는 제 2 얼굴 인식 장치에 배치되고,
    상기 분배하는 단계는,
    상기 적어도 하나의 얼굴 영역 중 적어도 일부에 대한 얼굴 인식을 상기 제 1 얼굴 인식 장치로부터 상기 제 2 얼굴 인식 장치로 오프로딩(offloading)하는 단계
    를 포함하는,
    얼굴 인식 방법.
  6. 제 1 항에 있어서,
    상기 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 상기 적어도 하나의 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 상기 탐지 라인에 의해 상기 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하는 단계
    를 더 포함하는,
    얼굴 인식 방법.
  7. 제 1 항에 있어서,
    상기 입력 이미지에 대한 상기 복수 개의 인식 라인의 얼굴 인식 결과에 기반하여 탐색 대상과 매칭되는 얼굴 영역을 결정하는 단계
    를 더 포함하는,
    얼굴 인식 방법.
  8. 제 1 항에 있어서,
    상기 입력 이미지는 일련의 이미지 프레임을 포함하고,
    상기 일련의 이미지 프레임의 연속한 이미지 프레임 간 얼굴 영역 이동 정보에 기반하여 상기 적어도 하나의 얼굴 영역의 각각에 대응하는 기 인식 완료된 얼굴 영역을 탐색하는 단계; 및
    상기 탐색의 결과에 따라 상기 기 인식 완료된 얼굴 영역의 얼굴 인식 정보를 재사용하는 단계를 더 포함하는,
    얼굴 인식 방법.
  9. 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 장치에 있어서,
    적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    탐지 라인을 실행하여, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하고,
    제어 라인을 실행하여, 상기 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하고,
    상기 제어 라인을 실행하여, 상기 예상 얼굴 인식 난이도에 기반하여 상기 복수 개의 인식 라인 중 상기 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하고,
    상기 제어 라인을 실행하여, 결정된 상기 인식 라인으로 상기 적어도 하나의 얼굴 영역을 분배하도록 구성되는,
    얼굴 인식 장치.
  10. 제 9 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 예상 얼굴 인식 난이도를 결정하기 위하여,
    얼굴 영역의 얼굴 화질, 얼굴 자세 및 얼굴 블러 중 적어도 하나에 기반하여 상기 적어도 하나의 얼굴 영역의 각각의 예상 얼굴 인식 난이도를 결정하도록 구성되는,
    얼굴 인식 장치.
  11. 제 9 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 인식 라인을 결정하기 위하여, 상기 예상 얼굴 인식 난이도의 오름차순으로 상기 적어도 하나의 얼굴 영역의 각 얼굴 영역의 인식 라인을 결정하도록 구성되는,
    얼굴 인식 장치.
  12. 제 9 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 인식 라인을 결정하기 위하여, 얼굴 영역의 예상 얼굴 인식 정확도 및 예상 연산 지연 시간에 따른 소정의 목표 함수에 기반하여 상기 얼굴 영역에 적용할 얼굴 인식 모델 및 상기 얼굴 인식 모델을 실행할 얼굴 인식 장치의 조합을 결정하도록 구성되는,
    얼굴 인식 장치.
  13. 제 9 항에 있어서,
    상기 탐지 라인, 상기 제어 라인 및 상기 복수 개의 인식 라인 중 적어도 일부는 상기 얼굴 인식 장치에 배치되고,
    상기 복수 개의 인식 라인 중 나머지는 제 2 얼굴 인식 장치에 배치되고,
    상기 적어도 하나의 프로세서는, 상기 적어도 하나의 얼굴 영역을 분배하기 위하여,
    상기 적어도 하나의 얼굴 영역 중 적어도 일부에 대한 얼굴 인식을 상기 얼굴 인식 장치로부터 상기 제 2 얼굴 인식 장치로 오프로딩(offloading)하도록 구성되는,
    얼굴 인식 장치.
  14. 제 9 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 상기 적어도 하나의 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 상기 탐지 라인에 의해 상기 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성되는,
    얼굴 인식 장치.
  15. 제 9 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 입력 이미지에 대한 상기 복수 개의 인식 라인의 얼굴 인식 결과에 기반하여 탐색 대상과 매칭되는 얼굴 영역을 결정하도록 구성되는,
    얼굴 인식 장치.
  16. 제 9 항에 있어서,
    상기 입력 이미지는 일련의 이미지 프레임을 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 일련의 이미지 프레임의 연속한 이미지 프레임 간 얼굴 영역 이동 정보에 기반하여 상기 적어도 하나의 얼굴 영역의 각각에 대응하는 기 인식 완료된 얼굴 영역을 탐색하고,
    상기 탐색의 결과에 따라 상기 기 인식 완료된 얼굴 영역의 얼굴 인식 정보를 재사용하도록 구성되는,
    얼굴 인식 장치.
  17. 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 시스템에 있어서,
    탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부가 배치된 제 1 얼굴 인식 장치; 및
    상기 복수 개의 인식 라인 중 나머지가 배치된 제 2 얼굴 인식 장치
    를 포함하고,
    상기 제 1 얼굴 인식 장치는,
    상기 탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하고,
    상기 제어 라인에 의해, 상기 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하고,
    상기 제어 라인에 의해, 상기 예상 얼굴 인식 난이도에 기반하여 상기 복수 개의 인식 라인 중 상기 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하고,
    상기 제어 라인에 의해, 결정된 상기 인식 라인으로 상기 적어도 하나의 얼굴 영역을 분배하고,
    상기 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 상기 탐지된 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 상기 탐지 라인에 의해 상기 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성되는,
    얼굴 인식 시스템.
KR1020220050391A 2021-04-22 2022-04-22 병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치 KR20220145791A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US18/033,185 US20230394875A1 (en) 2021-04-22 2022-04-22 Method and device for multi-dnn-based face recognition using parallel-processing pipelines
PCT/KR2022/005815 WO2022225375A1 (ko) 2021-04-22 2022-04-22 병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210052382 2021-04-22
KR1020210052382 2021-04-22

Publications (1)

Publication Number Publication Date
KR20220145791A true KR20220145791A (ko) 2022-10-31

Family

ID=83803182

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220050391A KR20220145791A (ko) 2021-04-22 2022-04-22 병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20220145791A (ko)

Similar Documents

Publication Publication Date Title
CN110378264B (zh) 目标跟踪方法及装置
US11783491B2 (en) Object tracking method and apparatus, storage medium, and electronic device
US10713472B2 (en) Face location tracking method, apparatus, and electronic device
US20210090327A1 (en) Neural network processing for multi-object 3d modeling
KR102319177B1 (ko) 이미지 내의 객체 자세를 결정하는 방법 및 장치, 장비, 및 저장 매체
JP2022518322A (ja) ソフトクロスエントロピー損失を用いたセマンティックセグメンテーション
KR20200040885A (ko) 타겟 추적 방법 및 장치, 전자 기기, 저장 매체
CN113286194A (zh) 视频处理方法、装置、电子设备及可读存储介质
US20230042187A1 (en) Behavior recognition method and system, electronic device and computer-readable storage medium
CN108491763B (zh) 三维场景识别网络的无监督训练方法、装置及存储介质
CN113807361B (zh) 神经网络、目标检测方法、神经网络训练方法及相关产品
CN107959798B (zh) 视频数据实时处理方法及装置、计算设备
CN111382647B (zh) 一种图片处理方法、装置、设备及存储介质
US11790661B2 (en) Image prediction system
CN110232418B (zh) 一种语义识别方法、终端及计算机可读存储介质
Hambarde et al. Single image depth estimation using deep adversarial training
CN112529904A (zh) 图像语义分割方法、装置、计算机可读存储介质和芯片
KR20200028317A (ko) 증강 현실 응용들을 위한 비디오들 내의 실 시간 오버레이 배치
CN111709471A (zh) 对象检测模型的训练方法以及对象检测方法、装置
CN116486250A (zh) 一种基于嵌入式的多路图像采集与处理方法及系统
CN108229281B (zh) 神经网络的生成方法和人脸检测方法、装置及电子设备
US20230394875A1 (en) Method and device for multi-dnn-based face recognition using parallel-processing pipelines
WO2020019353A1 (zh) 跟踪控制方法、设备、计算机可读存储介质
KR20220145791A (ko) 병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치
Che et al. Traffic light recognition for real scenes based on image processing and deep learning