KR20210119487A - 사용자의 생체 특성을 가지는 이미지 내에서 객체를 식별하여 사용자를 식별하는 방법 및 그 방법을 실행하는 모바일 디바이스(Method for verifying the identify of a user by identifying an object within an image that has a biometric characteristic of the user and mobile device for executing the method) - Google Patents

사용자의 생체 특성을 가지는 이미지 내에서 객체를 식별하여 사용자를 식별하는 방법 및 그 방법을 실행하는 모바일 디바이스(Method for verifying the identify of a user by identifying an object within an image that has a biometric characteristic of the user and mobile device for executing the method) Download PDF

Info

Publication number
KR20210119487A
KR20210119487A KR1020217026927A KR20217026927A KR20210119487A KR 20210119487 A KR20210119487 A KR 20210119487A KR 1020217026927 A KR1020217026927 A KR 1020217026927A KR 20217026927 A KR20217026927 A KR 20217026927A KR 20210119487 A KR20210119487 A KR 20210119487A
Authority
KR
South Korea
Prior art keywords
user
biometric
image
matrix
identified
Prior art date
Application number
KR1020217026927A
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 아이덴티 인크.
Publication of KR20210119487A publication Critical patent/KR20210119487A/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/12Fingerprints or palmprints
    • G06V40/1347Preprocessing; Feature extraction
    • G06V40/1353Extracting features related to minutiae or pores
    • 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/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/806Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
    • G06K9/00073
    • G06K9/00228
    • G06K9/0061
    • G06K9/00885
    • G06K9/3241
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/255Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
    • 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
    • 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
    • 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
    • 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/18Eye characteristics, e.g. of the iris
    • G06V40/193Preprocessing; Feature extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Ophthalmology & Optometry (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)
  • Collating Specific Patterns (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)

Abstract

사용자의 생체 특성을 가지는 이미지 내에서 객체를 식별하여 사용자를 식별하는 방법 및 그 방법을 실행하는 모바일 디바이스
사용자의 생체 특성(biometric characteristic)을 가지는 상기 사용자의 객체(object) - 상기 객체는 상기 사용자의 손바닥(palm of the hand), 상기 사용자의 얼굴, 상기 사용자의 눈, 상기 사용자의 발의 바닥(bottom of a foot) 중 하나임 - 의 이미지(image) 사용하여 상기 사용자를 식별하는 방법으로서, 상기 방법은: 모바일 디바이스(mobile device)의 광학 센서(optical sensor)에 의해 상기 객체의 상기 이미지를 획득하는 단계; 뉴럴 네트워크(neural network)에 상기 이미지를 제공하는 단계; 상기 이미지 내의 상기 객체 및 상기 객체의 상기 위치를 식별하도록 상기 뉴럴 네트워크에 의해 상기 이미지를 처리하는(process) 단계; 식별된 상기 객체로부터 상기 생체 특성을 추출하는 단계; 상기 생체 특성을 저장 디바이스(storage device)에 저장하는 단계 및/또는 상기 생체 특성이 상기 사용자를 식별하는지 여부를 결정하기 위해 상기 입력을 처리하는 단계를 포함하는, 적어도 상기 생체 특성을 식별 수단(identification mean)들에 대한 입력(input)으로 제공하는 단계를 포함한다.

Description

사용자의 생체 특성을 가지는 이미지 내에서 객체를 식별하여 사용자를 식별하는 방법 및 그 방법을 실행하는 모바일 디바이스(Method for verifying the identify of a user by identifying an object within an image that has a biometric characteristic of the user and mobile device for executing the method)
본 발명은 청구항 1에 따른 사용자를 식별하는(identify) 생체 특성(biometric characteristic)을 가지는 이미지(image) 내의 객체(object)를 이용하여 사용자를 식별하는 방법 및 청구항 15에 따라 대응하는 방법(corresponding method)을 실행하도록 적응된(adapt) 모바일 디바이스(mobile device)에 관한 것이다.
일반적으로 이미지 인식(Image recognition)들은 널리 알려져 있고(widespread) 그리고 복수의 애플리케이션(application)들을 허용한다(allow for). 예를 들어, 이미지들 내 특정 인물들 및 얼굴들 또는 객체들을 인식하는데 있어서 소셜 네트워크(social networks) 및 기타 매체(other media)에 의해 과도한 방식(excessive manner)으로 사용된다. 추가적으로(Furthermore), 보다 최근의 스마트폰(smartphone)들에서는 예를 들어, 지문 센서(fingerprint-sensor)들에 의해 식별 기술(identification technology)들이 또한 사용자들을 식별하기 위해 사용된다. 이 기술은 사용자의 존재를 판단할 뿐만 아니라 지문을 높은 정확도로 식별하여 사용자에게 권한을 부여(authorize)하는 데 사용된다.
이전 기술들은 "무차별 대입(brute force)"을 사용하는지 또는 객체들을 식별하기 위해 특별히 훈련된 최신 네트워크들을 사용하는지에 관계없이 이미지들 내 객체들을 식별하기 위해 상당한 양의 컴퓨터 리소스(resource)들이 필요하다.
그러나, 최근에는 훨씬 더 빠르고 안정적으로 이미지들 내 객체들을 식별할 수 있는 "You Only Look Once" 기술이 제공되었다. 이 기술의 기본 원리들은 저자 Redmon 등의 "You Only Look Once: Unified, Real-Time Object Detection" 및 Redmon 등의 "YOLO9000: Better, Faster, Stronger"논문들에 설명되어 있다.
"You Only Look Once" 기술(여기에서는 “YOLO 기술”이라고 함)의 기본 컨셉(concept)은 획득된 이미지를 그리드(grid)들로 분리하고 그리고 획득된 이미지를 각각 처리하는 복수의 컨볼루션 레이어(convolutional layer)들 및 축소 레이어(reduction layer)들을 포함하는 뉴럴 네트워크를 사용하여 하나 이상의 그리드 셀(grid cell)들 내의 객체들을 식별하기 위해 훈련된 뉴럴 네트워크를 사용하는 것이다.
사용된 뉴럴 네트워크들은 복수의 객체들에 대한 움직이는 이미지들(영상들)에 대해서도 실시간 감지(real-time detection)를 수행하면서 적절한 결과들을 얻는 반면에, 사용자의 손바닥 또는 얼굴들과 같은 매우 특정한 객체들의 기타 식별들에 대해서는 아직 제대로 적응되지 못한다. 그 결과 상기 객체들을 식별하는 데 더 오랜 시간이 걸린다.
추가로(additionally), 비교적 복잡한 뉴럴 네트워크로 인해, 객체들의 실시간 식별을 허용하기 위해서는 상당한 컴퓨터 리소스들이 필요하며, 추가로 스마트폰들 및 태블릿들과 같은 현재 상태의 모바일 디바이스들에는 YOLO 기술의 애플리케이션은 적합하지 않다.
위의 관점에서, 본 발명의 목적은 상당한 검출 정확도를 제공하는 동안 사용자들을 빠르게 식별하고, 그리고 동시에 식별용 모바일 디바이스와 사용자의 상호 작용을 단순화시킬 수 있는 시스템들 및 방법들을 제공하는 것이다. 추가적으로, 식별이 현재 세대의 모바일 디바이스들에서 구현될 수 있도록 식별에 필요한 컴퓨터 리소스들을 줄이는 것이 유리할 것이다.
이 목적은 청구항 1에 따른 모바일 컴퓨팅 디바이스 및 청구항 15에 따른 모바일 컴퓨팅 디바이스에 구현된 방법에 의해 해결된다. 본 발명의 바람직한 실시예들은 종속항들에서 제공된다.
본 발명에 따른 사용자의 생체 특성(biometric characteristic)을 가지는 상기 사용자의 손바닥(palm of the hand), 사용자의 얼굴, 사용자의 눈, 사용자의 발의 바닥(bottom of a foot) 중 하나인 상기 사용자의 객체의 이미지 사용하여 상기 사용자를 식별하는 방법으로서, 상기 방법은:
모바일 디바이스의 시각 센서(optical sensor)에 의해 상기 객체의 상기 이미지를 획득하는 단계;
뉴럴 네트워크에 상기 이미지를 제공하는 단계;
상기 뉴럴 네트워크에 의해 상기 이미지 내의 상기 객체 및 상기 객체의 위치를 식별하여 상기 이미지를 처리하는(process) 단계;
식별된 상기 객체로부터 상기 생체 특성을 추출하는 단계;
상기 생체 특성을 저장 디바이스(storage device)에 저장하는 단계 및/또는 상기 생체 특성이 상기 사용자를 식별하는지 여부를 결정하기 위해 상기 입력을 처리하는 단계를 포함하는 적어도 상기 생체 특성을 식별 수단(identification mean)들에 대한 입력(input)으로 제공하는 단계를 포함한다.
여기서, 저장 디바이스(storage device)는 모바일 디바이스 자체와 관련된 임의의 디바이스이거나 또는 모바일 디바이스 외부에 제공되는 원격 저장 디바이스(remote storage device)일 수 있다. 예를 들어, 저장 디바이스는 모바일 인터넷(mobile internet) 또는 다른 전송 수단(transfer mean)들과 같은 데이터 전송 수단들을 통해 생체 특성이 포워딩(forward)될 회사의 서버(server)와 관련된 저장소일 수도 있다.
식별 수단들에 대해 생체 특성을 제공하는 단계는 마찬가지로 모바일 디바이스 내에, 예를 들어 특정 애플리케이션에 생체 특성을 또는 포워딩 하는 단계, 또는 적절한 전송 수단들을 통해 생체 특성을 모바일 디바이스의 은행, 소셜 네트워크 등의 로그인 서버(login server)와 같은 원격 식별 수단들에 포워딩 하는 단계를 포함할 수 있다.
"사용자(user)"가 모바일 디바이스의 실제 운영자일 필요는 없다. 사용자(즉, 식별되는 사람)는 다른 사람일 수도 있다. 예를 들어, 발바닥은 식별될 아기의 발바닥일 수 있다. 이에 따라(thus) 식별되는 "사용자"는 아기(baby)이다. 모바일 디바이스의 운영자(operator)는 예를 들어, 아기의 부모 또는 간호사와 같은 다른 사람일 수도 있다.
이미지를 획득하는 단계는 바람직하게는 자유롭게 촬영된 이미지 또는 손, 얼굴 또는 눈의 이미지를 자유롭게 촬영하는 것을 허용할 수 있는 애플리케이션을 통해 수행된다. 이는 식별용 이미지를 촬영하기 위해 손이나 얼굴 또는 눈을 정렬해야 하는 방식을 사용자에게 표시하는 그러한 애플리케이션에 의해 제공되는 마스크(mask)가 없다는 것을 의미한다.
이러한 방법을 사용하면 사용자가 식별을 위해 모바일 디바이스와 상호 작용 또는 행동하는 방법에 대한 임의의 제약(constraint)들이 없는 동안 사용자를 쉽고 안정적으로 식별할 수 있도록 허용한다.
일 실시예에서, 상기 객체는 상기 사용자의 상기 손바닥이며 상기 생체 특성은 적어도 하나의 손바닥 주름(palmar crease)이고, 상기 식별 수단들에 의해 상기 입력을 처리하는 단계는, 상기 손바닥 주름으로부터 예를 들어, 상기 손바닥 주름의 위치 또는 상기 길이와 같은 생체 특징(biometric feature)을 추출하는 단계, 및 상기 추출된 생체 특징을 저장 디바이스에 저장된 생체 특징과 비교하는 단계를 포함하고, 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값(threshold)보다 낮은(below) 경우, 상기 식별 수단들은 상기 손바닥 주름으로 상기 사용자가 식별됨을 결정하고, 그리고 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 높은(above) 경우, 상기 식별 수단들은 상기 손바닥 주름으로 상기 사용자가 식별되지 않음을 결정하거나; 또는
상기 객체는 상기 사용자의 상기 얼굴이며 상기 생체 특성은 상기 얼굴 내에 상기 사용자의 코, 입, 적어도 하나의 눈이고, 상기 생체 수단들에 의해 상기 입력을 처리하는 단계는, 상기 생체 특성으로부터 예를 들어, 상기 얼굴 내의 상기 입의 상기 위치와 같은 생체 특징을 추출하는 단계, 및 상기 추출된 생체 특징을 저장 디바이스에 저장된 생체 특징과 비교하는 단계를 포함하고, 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 낮은 경우, 상기 식별 수단들은 상기 생체 특성으로 상기 사용자가 식별됨을 결정하고, 그리고 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 높은 경우, 상기 식별 수단들은 상기 생체 특성으로 상기 사용자가 식별되지 않음을 결정하거나; 또는
상기 객체는 상기 사용자의 상기 눈이며 상기 생체 특성은 상기 사용자의 상기 눈의 홍채(iris)이고, 상기 생체 수단들에 의해 상기 입력을 처리하는 단계는, 상기 홍채로부터 예를 들어, 상기 홍채의 색소 패턴(pigment pattern)을 와 같은 생체 특징을 추출하는 단계, 및 상기 추출된 생체 특징을 저장 디바이스에 저장된 생체 특징과 비교하는 단계를 포함하고, 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 낮은 경우, 상기 식별 수단들은 상기 홍채로 상기 사용자가 식별됨을 결정하고, 그리고 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 높은 경우, 상기 식별 수단들은 상기 홍채로 상기 사용자가 식별되지 않음을 결정하거나; 또는
상기 객체는 상기 사용자의 상기 발의 바닥이며 상기 생체 특성은 상기 발의 발자국(footprint)이고, 상기 식별 수단들에 의해 상기 입력을 처리하는 단계는, 상기 발의 바닥으로부터 예를 들어 상기 발자국의 라인(line)의 위치 또는 길이와 같은 생체 특징을 추출하는 단계, 및 상기 추출된 생체 특징을 저장 디바이스에 저장된 생체 특징과 비교하는 단계를 포함하고, 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 낮은 경우, 상기 식별 수단들은 상기 발바닥으로 상기 사용자가 식별됨을 결정하고, 그리고 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 높은 경우, 상기 식별 수단들은 상기 발바닥으로 상기 사용자가 식별되지 않음을 결정한다.
따라서 생체 특성은 사용자의 생체 인식을 허용하거나 또는 생체 특성 및 잠재적으로(potentially) 다른 특성들로 사용자를 식별하는데 적어도 도움을 줄 수 있는 사용자의 발바닥 또는 사용자의 눈, 얼굴, 또는 손바닥의 임의의 특징일 수 있다.
임계값은 이미지를 사용하여 획득되거나 얻어지는(taken) 생체 특징이 저장된 생체 특징(biometric feature)에 얼마나 대응하는지 여부 및 그 정도(how much)를 나타내는 숫자 값일 수 있다. 예를 들어, 임계값은
Figure pct00001
인 실수 x일 수 있다. 여기서, x가 크다는 것은 획득된 생체 특징과 저장된 생체 특징이 사용자의 식별을 허용하면서도 크게 상이함을 의미한다. x가 작을수록 식별을 획득하기 위해 저장된 생체 특징에 획득된 생체 특징이 더 대응해야 한다.
임계값을 필요에 따라 값으로 설정하여 식별의 보안성을 높일 수 있다.
위의 실시예에서 언급된 제 1 또는 제 3 또는 제 4 대안의 보다 구체적인 구현에서 이미지는 하나 이상의 객체를 포함하고, 상기 방법은 이미지에서 각각의 생체 특징의 위치를 식별하고 식별 수단들에 의한 사용자의 식별을 위해 각 생체 특성의 생체 특징을 사용하는 단계를 더 포함한다.
예를 들어, 식별을 위해 모든 손바닥 주름(palmar crease)들을 사용함으로써 사용자 식별 방법은 하나 이상의 손바닥 주름을 위조하는 데 상당한 리소스가 필요하고 가능성이 적기 때문에 실패할 가능성이 적다.
실시예의 하나의 구현에서, 상기 식별 수단들은, 상기 이미지 내에 모든 객체들의 상기 생체 특징들의 조합된 식별 정확도(combined identification accuracy)가 주어진 임계값보다 높은 것으로 결정되어 사용자가 상기 객체들의 상기 생체 특징들에 의해 식별됨을 결정하거나; 또는 객체 각각에 대해 상기 객체의 상기 생체 특성의 생체 특징과 상기 객체의 상기 생체 특성의 저장된 생체 특징의 차이가 임계값보다 아래인지 여부를 결정하고, 그리고 결정된 모든 차이들이 대응하는 임계값보다 아래인 경우에만 상기 객체들의 상기 생체 특성들에 의해 상기 사용자가 식별되는 것으로 결정한다.
조합된 식별 정확도는 개별적으로(in isolation) 취해진(take) 각 생체 특징의 식별 정확도들의 조합으로 이해되어야 한다. 이것은 예를 들어, 각 손바닥 주름이나 홍채 또는 사용자 발바닥의 각 발자국의 생체 특징이 다른 것과 개별적으로 평가(evaluate)된다는 것을 의미한다. 상기 실시예에서, 그 차이가 주어진 임계값 미만인 경우, 생체 특징은 저장된 생체 특징에 대응할 것으로 간주될 것이다. 획득된 생체 특징과 저장된 생체 특징 간의 대응성(correspondence)의 상대값(relative value)은 식별 정확도를 나타낼 수 있다. 예를 들어, 손가락 끝(fingertip)의 저장된 생체 특성과 획득된 생체 특성이 99.9% 매칭하는 경우, 식별 정확도는 0.999의 값을 가질 수 있다. 이후에 모든 식별 정확도들의 합계를 구할 수 있고, 이것이 예를 들어 획득된 단일 생체 특징이 저장된 생체 특징에 대응하는 것으로 간주되는지 여부를 나타내는 임계값에 의존할 수 있는 임계값을 초과하는 경우, 사용자는 획득된 생체 특징으로 식별되는 것으로 간주된다.
일 실시예에서, 이미지는 모바일 디바이스의 시각 센서(optical sensor)로서 카메라에 의해 획득된다. 이것은 현재 사용 가능한 거의 모든 스마트폰이 적어도 하나의 카메라를 가지고 있기 때문에 스마트폰들과 같은 현재 세대의 모바일 디바이스들에 본 발명의 방법을 적용가능(applicable) 하도록 한다.
일 실시예에서, 입력으로 이미지를 뉴럴 네트워크에 의해 처리하는 단계는 제 1 중간 출력을 생성하도록 뉴럴 네트워크의 제 1 레이어에 의해 입력을 처리하는 단계 및 각 후속 레이어에 의해 선행 레이어의 출력을 처리하는 단계를 포함하고, 상기 뉴럴 네트워크는 복수의 레이어들을 포함하며, 각 레이어는 상기 입력의 처리 순서대로, 제 1 배치 노멀라이저(batch normalizer), 제 1 정류 선형 유닛(rectified linear unit), 포인트별(pointwise) 컨벌루션 레이어, 제 2 배치 노멀라이저 및 제 2 정류 선형 유닛을 포함하는 깊이별 분리 가능한 컨볼루션이고, 여기서 뉴럴 네트워크는 복수의 레이어를 사용하여 입력들을 처리함으로써 객체의 식별 및 이미지 내 객체의 위치를 출력으로 획득한다.
의도한 바에 따라 깊이별 컨볼루션 레이어는 추가 행렬을 계산하기 위해 예를 들어 3x3 사이즈의 행렬인 커널을 가지는 원본 이미지(original image)에 대응하는 특징 맵(행렬)의 곱셈 또는 내적을 사용한다. 이러한 레이어들을 사용하는 것이 식별 효율성 측면에서 더 효율적이다. 이것은 특히 최대-풀 레이어들이 정보 손실을 초래할(result in) 수 있기 때문에 더 많은 반복들이 필요할 것이다. 이러한 관점에서 볼 때, 상기 실시예에서 제안한 깊이별 컨볼루션 레이어들은 일반적으로 사용되는 컨볼루션 레이어들보다 그들의 파라미터 감도 측면에서 더 효율적이다.
깊이별 컨볼루션 레이어 및 포인트별 컨볼루션 레이어는 깊이별 컨볼루션 서브-레이어(sub-layer) 및 포인트별 컨볼루션 서브-레이어로도 지칭될 수도 있다. 사실, 그것들은 뉴럴 네트워크의 "레이어 내의 레이어들"이므로 서브-레이어들을 구성한다.
깊이별 컨볼루션 레이어의 이러한 특정 구현을 위의 실시예에서 제공된 정류 선형 유닛(rectified linear unit)들, 배치 노멀라이저(batch normalizer) 및 포인트별 컨볼루션 레이어(pointwise convolutional layer)와 함께 적용하여, 사용된 뉴럴 네트워크 내 레이어 그룹 중 하나로 최대 풀 레이어에 의존하는 YOLO 기술로 알려진 현재 기존의 뉴럴 네트워크 기술(neural technology)에 비해서 손바닥 주름이나 이미지의 홍채와 같은 생체 인식 특성을 가진 객체의 실시간 식별을 수행하기 위해 뉴럴 네트워크에 필요한 컴퓨터 리소스(resource)들은 크게 감소한다.
일 실시예에서, 출력을 생성하는 단계는 처리 단계(processing) 동안 이미지를 Q×R 그리드 셀(grid cell)들을 포함하는 그리드로 분리하는(separate) 단계를 포함하고, 적어도 하나의 바운딩 박스(bounding box)는 그리드 셀 각각 내에 생성되며, 상기 바운딩 박스는 사전 결정된 기하학 특성(predetermined geometrical characteristic)들 및 상기 그리드 셀 내 사전 결정된 위치(predetermined position)를 가지고, 상기 출력을 생성하는 단계는, 결과 바운딩 박스(resulting bounding box)를 획득하기 위해 바운딩 박스의 기하학 특성들 및 상기 위치들을 수정하는(modify) 단계를 더 포함하고, 상기 결과 바운딩 박스는 상기 객체의 상기 위치와 가장 가깝게 매칭되는 결과 기하학 특성들 및 결과 위치를 가지는 상기 바운딩 박스이다.
획득한 이미지를 사전 정의된 바운딩 박스들이 있는 그리드 셀들로 분리하는 단계는 객체의 위치 및 객체 그 자체를 마크(mark)하도록 최종 결과에서 바운딩 박스를 사용하여 식별된 객체들에 대한 피드백을 적절하게 제공하고, 그리고 디스플레이 하도록 허용할 수 있다.
이 실시예의 보다 더 구체적인 구현에서, 바운딩 박스의 위치는 2차원에서 그리드 셀의 중심에 대해 계산되고, 그리고 바운딩 박스의 기하학적 특성은 바운딩 박스의 높이(height) 및 너비(width)를 포함하며, 여기서, 객체가 바운딩 박스 내에 있을 확률은 바운딩 박스 각각과 연관된다.
바운딩 박스들을 대응하는 확률들과 연관시키면 바운딩 박스를 나타내는 행렬 또는 벡터를 제공하도록 허용할 수 있고, 그리고 행렬 또는 벡터의 형태로 표현되는 다른 객체들과 이것을 결합해야 하는 경우 정확한 효율성을 가지는 그래픽 처리 유닛에 의해 처리될(handled) 수 있다. 따라서, 필요한 컴퓨터 리소스들이 훨씬 더 감소된다.
보다 구체적으로, 출력은 차원(dimension) Q×R×B×A의 텐서(tensor) T일 수 있으며, 여기서 A는 각 그리드 셀의 상이한 바운딩 박스들의 개수이고, 그리고 B는 차원이 5인 바운딩 박스 각각과 연관된 벡터이고, 다음과 같이 표현된다.
Figure pct00002
결과 텐서는 매우 효율적인 방식으로 그래픽 처리 유닛들에 의해 처리될 수 있다. 또한, 이러한 텐서의 형태로 식별 결과를 제공하는 단계는 특정 객체를 식별할 확률이 가장 높은 결과들을 쉽게 추론(deduce)하도록 허용할 수 있다.
또한, 출력을 출력하는 단계는 그리드 셀의 바운딩 박스들 중에서 가장 높은 확률을 가지는 그리드 셀 각각 내에 결과 바운딩 박스들 및 이미지들을 디스플레이 하는 단계를 포함할 수 있다.
오직 가장 높은 확률을 가지는 그리드 셀들을 제공하여, 사용자는 쉽게 인식할 수 있는 피드백을 제공하는 각각 식별된 객체를 포함하는 바운딩 박스를 통해 객체 및 위치의 식별이 제공된다. 추가적으로, 결과 바운딩 박스는 이전 실시예에서 출력으로 제공된 결과 텐서 내에서 오직 하나의 벡터를 나타내고, 이에 따라 사용자 또는 다른 프로그램에 의해 쉽게 추출될 수 있고, 그리고 결과 바운딩 박스의 각 좌표들만을 취하여 추가 처리 단계에 사용될 수 있다.
이미지 내에서 발 바닥, 눈 또는 손 바닥의 위치를 식별하는 이러한 방법이 다른 방법들보다 리소스를 덜 소모하기 때문에 선호될 수 있지만, 다른 방법들도 고려될 수도 있다. 예를 들어, 손바닥이 존재할 수도 있는 영역에 대한 제안(proposal)이 처음에 만들어질 수 있다. 이후에 그 제안 영역 내에 손바닥과 같은 객체가 실제로 존재하는지 여부를 알아내기 위해 그 제안들은 추가로 처리된다.
추가적인 실시예에서, 뉴럴 네트워크에 의해 상기 이미지를 처리하는 단계는, 상기 이미지 내에 픽셀(pixel) 각각에 대한 컬러 값(color value)을 나타내는 적어도 하나의 행렬(matrix) I을 상기 이미지로부터 생성하는 단계 및 상기 뉴럴 네트워크에 대한 입력으로 상기 행렬에 제공하는 단계를 포함하고, 그리고 상기 이미지는
Figure pct00003
픽셀들을 포함하고, 상기 행렬 I은
Figure pct00004
값들을 포함하는 행렬이고, 상기 행렬 I의 상기 엔트리(entry)들은
Figure pct00005
로 주어지며, i 및 j는 정수들이고,
Figure pct00006
이고,
Figure pct00007
이다.
그렇게 이미지를 각 컬러 값들에 대해 행렬로 분리하는 것은 필요한 컴퓨터 리소스들을 줄이면서 식별 효율성을 유리하게 높일 수 있도록 컬러 값들을 각각 처리하는 단계를 허용한다.
보다 구체적으로, 깊이별 컨볼루션 레이어 각각은 사전 결정된 커널(kernel) K를 상기 행렬 I에 적용시키고, 상기 커널 K는
Figure pct00008
엔트리들을 포함하는
Figure pct00009
Figure pct00010
사이즈의 행렬이며, 여기서 상기 행렬에 상기 커널을 적용시키는 단계는, 행렬 Z의
Figure pct00011
사이즈의 각각 축소된(reduce) 행렬 R과의 행렬 K의 내적(inner product)을 계산하는 단계를 포함하고, 그리고 상기 행렬 R은 상기 커널 K와 동일한 사이즈를 가지고, 상기 행렬 Z는
Figure pct00012
사이즈를 가지며
Figure pct00013
인 상기 행렬
Figure pct00014
의 상기 엔트리들은 하기와 같이 주어지고,
Figure pct00015
행렬 P를 출력으로 제공하며, 상기 행렬 P는
Figure pct00016
의 상기 사이즈를 가지고,
Figure pct00017
Figure pct00018
는 상기 스트라이드 너비(stride width)를 정의하고, 상기 행렬 P의 엔트리
Figure pct00019
각각은 상기 커널 K와의 상기 ij번째 감소된 행렬 R의 상기 내적의 상기 값이고, 상기 행렬 P는 깊이별 컨벌루션 레이어에 의해 상기 제 1 배치 노멀라이저에 대한 출력으로 제공된다.
커널은 뉴럴 네트워크의 연속 레이어가 객체 식별을 지원할 수 있는 효율성을 높이도록 임의의 정보를 잃지 않으면서 특징 맵 내에 인접 픽셀(adjacent pixel)들로부터 획득된 정보에 적절한 가중치를 부여하는 것을 허용한다. 이를 위해 커널은 이미지를 수신하기 전에(즉, 뉴럴 네트워크를 훈련하는 동안), 얻은 특정 가중치(weight)들 또는 파라미터들에 대응하는 엔티티들로 구성된다.
본 발명의 결론(finding)은, 전술한 실시예들에 따른 각각의 방법을 수행할 수 있는 애플리케이션 또는 다른 프로그램이 모바일 디바이스에 실제로 장착되기 전에 이 훈련이 수행되는 경우, 모바일 디바이스에 필요한 컴퓨터 리소스들은 유리하게 감소될 수 있다는 것이다.
본 발명의 결론은 그러한 조합이 필요한 컴퓨터 리소스 및 식별에 대해 향상된 성능을 보여주기 때문에 깊이별 컨볼루션 레이어 및 포인트별 컨볼루션 레이어를 사용하여 분리 가능한 컨볼루션을 구현하는 것이 가장 유리하지만, 깊이별 컨볼루션 레이어가 손바닥들, 눈들 또는 얼굴들 또는 발바닥의 식별에 특별히 적응된(adapted) 컨볼루션 레이어로 대체되는 것을 여전히 고려할 수 있다. 따라서, 본 발명의 설명이 깊이별 컨볼루션 레이어의 사용에 초점을 맞추고 있다고 하더라도, 컨볼루션 레이어를 사용하여 본 발명을 구현하는 것도 가능하다.
추가적인 실시예에서, 배치 노멀라이저는
Figure pct00020
으로 계산되는 행렬 P로부터 평균 값 V를 계산하고, 그리고
Figure pct00021
엔트리들을 가지는 정규화 축소된(normalized reduced) 행렬 P'를 생성한다.
이러한 정규화를 적용하여, 과다 노출(over-exposition)과 같은 의도하지 않은 효과들을 각 레이어들을 통해 이미지를 처리하는 동안 필터링할 수 있으며, 이에 따라 이미지에서 객체를 식별하는 효율성을 높일 수 있다.
더욱이, 커널의 사이즈 S 및 T는 모든 컨볼루션 레이어에 대해 동일하거나 적어도 하나의 컨볼루션 레이어에 대해 상이할 수 있다.
각 컨볼루션 레이어들에 대해(즉, 깊이별 컨볼루션 레이어들 각각에 대해) 동일한 커널을 선택하여, 대응하는 모바일 디바이스에 설치되는 결과 프로그램의 사이즈를 줄일 수 있다. 한편으로는(On the other hand), 적어도 하나의 컨볼루션 레이어들에 대해 다른 커널을 사용하는 경우, 커널이 적절하게 적응되는 경우에 식별 실패와 관련된 알려진 문제들을 피할 수 있다. 예를 들어, 식별 절차를 시작하는 경우에 더 큰 커널(더 큰 사이즈의 S 및 T에 대응하는)을 사용하는 것은 이미지의 더 중요한 부분들에 초점을 맞추고(focus) 촬영하도록 허용하며, 이에 따라 식별 효율성이 증가한다.
특정 일 실리예에서, 사이즈 S,T=3이고, 모든 깊이별 컨볼루션 레이어에 대해 동일하고, 여기서 엔트리들 중 적어도 하나는
Figure pct00022
이다.
본 발명의 결론은 대응하는 커널이 각각의 방법을 구현하는 데 필요한 컴퓨터 리소스들과 식별 효율성, 커널의 사이즈 사이의 최상의 트레이드(trade)를 나타내며, 이에 따라 필요한 컴퓨터 리소스들 및 식별 효율성과 관련하여 전반적인 효율성이 증가한다.
추가적인 실시예에서, 배치 노멀라이저는 정규화 축소된(normalized reduced) 행렬 P'를 상기 정류 선형 유닛에 제공하고, 상기 정류 선형 유닛은 정류 함수(rectification function)를 엔트리
Figure pct00023
각각에 적용하고, 그리고 상기 정류 함수는 하기와 같이 엔트리들을 가지는 새로운 행렬
Figure pct00024
를 계산하고,
Figure pct00025
그리고 상기 행렬
Figure pct00026
는 상기 정류 선형 유닛이 상기 제 1 정류 선형 유닛인 경우 상기 포인트별 컨볼루션 레이어에 출력으로 제공되거나, 또는 상기 정류 선형 유닛이 상기 제 2 정류 선형 유닛인 경우 상기 뉴럴 네트워크의 상기 다음 레이어의 출력으로 제공된다.
이 정류 함수는 뉴럴 네트워크의 각 레이어 다음에, 식별 정확도에 잠재적으로 부정적인 영향을 미칠 수 있는 이미지 내의 부분들을 필터링하도록 허용할 수 있다. 그에 의해, 식별 실패(false identifications) 횟수 및 이에 대응되게 적절한 식별 정확도에 도달하기 위해 필요한 반복 횟수가 감소될 수 있으며, 이에 따라 컴퓨터 리소스들을 절약할 수 있다.
또한 상기 포인트별 컨볼루션 레이어는 상기 행렬 I, P, P' 또는
Figure pct00027
의 각각 엔트리에 가중치 α를 곱하여(multiply) 이전 레이어(preceding layer)로부터 수신된 상기 행렬 I, P, P' 또는
Figure pct00028
에 상기 가중치 α를 적용시키는 것이 제공될 수도 있다.
특징 맵의 포인트들 각각에 동일한 가중치 α가 적용되더라도, 이 실시예는 (식별에 크게 영향을 미치지 않을 행렬의 엔트리들에 대응하는) 이미지의 부분들을 효율적으로 댐핑(damp)시키는 것을 허용한다. 이러한 댐핑은 행렬에서 이러한 부분들의 절대적 기여도(absolute contribution)를 줄이고 그리고 정류 선형 유닛과 함께 다음 사이클에서 그 부분들을 분류하여 달성된다.
바람직한 실시예에서, 위에서 설명된 방법들의 각 단계는 모바일 디바이스에서 수행된다.
이것은 적어도 이미지의 처리 및 사용자의 식별을 포함하는 위에서 설명된 방법들의 단계들을 포함할 수도 있습니다. 이미지 또는 생체 특징 또는 생체 특성의 저장은 모바일 디바이스의 내부 또는 외부인 임의의 저장 디바이스에 의해 여전히 수행될 수 있다. 추가적으로, 사용자를 식별하는 식별 단계는 예를 들어 회사의 서버와 같은 모바일 디바이스와 상이한 디바이스에서 수행되는 것이 여전히 고려된다.
모바일 디바이스에서 각 단계들을 독점적으로 수행하여, 예를 들어 실제 식별 프로세스가 실행되는 서버 오픈(server open)에 대한 데이터 전송을 위한 채널(channel)을 더 이상 유지할 필요가 없다. 이에 따라, 모바일 네트워크 또는 근거리 통신망(local area network)에 액세스(access)할 수 없는 영역들에서도 객체 식별이 사용될 수 있다.
본 발명에 따른 모바일 디바이스는 광학 센서, 프로세서, 및 모바일 디바이스의 프로세서에 의해 실행되는 경우, 프로세서로 하여금 전술한 실시예들 중 임의의 방법을 실행하게 하는 실행 가능한 명령들을 저장하는 저장 유닛을 포함한다.
도 1은 본 발명에 따라 사용자를 식별하기 위한 방법의 전체적인 개요(overview)를 도시한다.
도 2는 이미지로부터 추출된 생체 특징을 사용하여 식별을 수행하는 것에 대한 보다 상세한 플로우 다이어그램(flow diagram)을 도시한다.
도 3은 일 실시예에 따라 이미지 내의 객체를 식별하는 것에 대한 전체적인 처리 플로우를 나타내는 개략도(schema)를 도시한다.
도 4는 일 실시예에 따라 뉴럴 네트워크 내의 하나의 레이어의 구조 및 이 레이어 내의 데이터 처리를 개략적으로 도시한다.
도 5는 바운딩 박스들을 사용하여 손의 이미지를 처리하는 것에 대한 개략도(schematic depiction) 이다.
도 6은 뉴럴 네트워크를 훈련시키는 것에 대한 프로세스(process)를 도시한다.
도 7은 일 실시예에 따라 이미지 내의 객체를 식별하기 하고 이미지를 획득하기 위한 모바일 디바이스를 도시한다.
도 1은 본 발명에 따라 사용자의 객체의 이미지를 사용하여 사용자를 식별하기 위한 방법의 전체적인 개요를 도시한다. 방법은 그러한 객체의 이미지가 획득되는 단계(11)부터 시작된다. 사용자의 이 객체는 이 생체 특성으로 사용자를 식별하게 하는 생체 특성을 가지게 될 것이다. 구체적으로, 객체는 사용자의 적어도 하나의 발의 바닥, 사용자의 얼굴, 사용자의 적어도 하나의 눈, 사용자의 적어도 하나의 손의 손바닥 중 하나일 수도 있다. 이에 따라, 이 이미지에서 획득되는 생체 특성은 예를 들어, 사용자 손바닥의 하나 이상의 손바닥 주름(palmar crease)들 또는 사용자 눈의 홍채(iris) 또는 사용자의 눈들, 입 또는 코(의 위치) 또는 후자의 조합, 발자국 또는 사용자의 복수의 발바닥일 수도 있다.
본 발명은 대상이 하나의 손가락 또는 복수의 손가락 또는 하나의 손가락 끝 또는 복수의 손가락 끝인 실시예들을 포괄하지(encompass) 않으며, 이에 따라 생체 특성이 각각의 손가락 끝(들) 또는 손가락(들)의 지문인 실시예들도 포괄하지 않는다.
이미지는 카메라와 같은 광학 센서를 사용하여 얻을 수도 있다. 가장 바람직하게는 이 광학 센서는 스마트 폰과 같은 모바일 디바이스에서 흔히 볼 수 있는 광학 센서이다.
카메라는 100만 화소(megapixel) 이상의 고화질 영상을 얻을 수 있는 카메라일 수도 있다.
획득된 이미지는 단계(12)에서 처리를 위해 이후에 더 자세히 설명되는 뉴럴 네트워크에 제공된다. 뉴럴 네트워크에 이미지를 제공하는 단계는 모바일 디바이스 내에서 뉴럴 네트워크를 구현하며 대응하는 애플리케이션(corresponding application)으로 이미지를 전송하는 단계 또는 포워딩하는(forwarding) 단계, 또는 원격 위치에 이미지를 제공하는 단계를 포함할 수 있다. 이것은 서버 또는 다른 컴퓨팅 엔티티일 수 있다. 다만, 모바일 디바이스에 상주하는 뉴럴 네트워크에 이미지를 제공하는 것이 바람직하다.
단계(13)에서 이미지는 도 3 내지 도 6과 관련하여 이후에서 더 자세히 설명되는 바와 같이 뉴럴 네트워크에 의해 처리된다. 임의의 경우에서 뉴럴 네트워크에 의한 이미지 처리는 이미지 내의 객체 그 자체 및 생체 특성을 가지는 객체의 위치 둘 다 식별하는 것을 초래한다. 이것은 예를 들어 객체가 손바닥인 경우에 뉴럴 네트워크가 이미지 내에서 손바닥을 식별할 것(즉, 손바닥이 이미지 내에 있는지 결정할 것)이고, 그리고 이미지 내에서 그것의 위치를 식별할 것임을 의미한다. 이미지 내에서 손바닥의 위치를 식별하는 것은 예를 들어 손바닥에 속하는 모든 픽셀들을 식별하거나 또는 적어도 전체 이미지와 동일하지 않은 이미지 내의 서브 섹션(subsection)(이에 따라, 하나의 섹션은 예를 들어 이미지 전체 영역의 10분의 1에 대응함)을 식별할 것이다.
다음 단계(14)에서, 식별된 객체로부터 생체 특성이 추출된다. 그러한 추출은, 예를 들어, 실제로 손바닥 주름들 또는 적어도 하나의 손바닥 주름들을 구성하는 식별된 손바닥의 부분들만을 추출하는 것을 포함할 수도 있다. 본 발명에 포함되는 다른 객체들에 대해, 대응하는 생체 특성들이 추출될 것이다.
이후에 이 생체 특성은 추가로 처리될 수 있다. 이것은 단계(15) 및 단계(16)에서 나타난다.
단계(15)에서 생체 특성은 단순히(merely) 저장된다. 생체 특성을 저장하는 것은 바람직하게 비휘발성 저장 디바이스(non-volatile storage device)에 생체 특성을 저장하는 것을 포함할 수 있다. 이 저장 디바이스는 원격 저장 위치(remote storage location) 또는 모바일 디바이스 그 자체의 솔리드 스테이트 저장소(solid-state storage)와 같은 저장 디바이스일 수 있다. 원격 저장 위치는 회사의 서버 또는 다른 임의의 원격 저장 위치일 수도 있다. 이 경우 생체 특성은 모바일 인터넷(mobile internet)을 통해 또는 LAN 연결이나 WLAN 연결과 같은 데이터 전송 수단(mean)들을 통해 데이터 패킷(data packet)(이미지, PDF 또는 수치(numerical value)들 등)의 형태로 포워딩 된다.
임의의 방식으로 생체 특성을 저장하는 것 또는 대안적으로 단계(15)에 따라 생체 특성을 저장하는 것에 추가적으로, 생체 특성은 입력으로서 식별 수단들에 단계(16)에 따라 포워딩될 수 있다. 이 식별 수단들은 생체 특성을 가지는 사용자의 객체 이미지를 촬영한 모바일 디바이스에 있는 애플리케이션일 수 있거나, 또는 사용자를 식별하기 위해 생체 특성을 사용하고 소셜 네트워크, 은행 계좌 등에 로그인하는 것과 같은 추가 단계들을 수행하는 다른 엔티티와 또는 서버 내의 로그(log)와 같은 원격 식별 수단들일 수도 있다.
도 2는 객체가 사용자의 한 손의 적어도 한 손바닥이 되는 손바닥 주름이 생체 특성인 경우에 생체 특성을 사용하여 사용자가 식별될 수도 있는 방법에 대한 보다 상세한 설명을 보여준다.
도 2의 방법은 생체 특징이 손바닥에서 추출되는 단계(21)로 시작하고, 그리고 결과적으로 이러한 단계들은 적어도 도 1에서 설명된 단계(14)의 생체 특징을 식별된 객체로부터 추출하는 단계 이후에 수행된다.
손바닥으로부터 생체 특징을 추출하는 것은, 예를 들어, 적어도 하나의 손바닥 주름 또는 손바닥 주름의 일부 또는 심지어 복수의 손바닥 주름의 곡률(curvature) 및/또는 방향 및/또는 길이 및/또는 위치를 추출하는 것을 포함할 수 있다. 그것은 또한 매우 특정한 종류들의 손바닥 주름들(예를 들어, 서로 교차하는 손바닥 주름들)만을 추출하는 것을 포함할 수 있다. 객체들이 전술한 다른 것들인 경우 대응하는 생체 특징들이 추출될 수도 있음을 유의한다(note).
예를 들어, 객체가 사용자의 적어도 하나의 눈인 경우, 홍채의 패턴을 생체 특징으로 추출할 수도 있다. 이 패턴은 홍채 내의 기하학적 패턴(geometrical pattern)들을 포함할 수 있을 뿐만 아니라 홍채 등의 색상 특성(color characteristic)들을 포함할 수 있다.
객체가 사용자의 얼굴인 경우, 추출된 생체 특징은 얼굴의 특정 부분의 위치 또는 서로에 대한 거리를 나타낼 수도 있다. 예를 들어, 얼굴 내에서 눈들, 코 또는 입의 위치가 추출될 수도 있다. 마찬가지로, 생체 특징으로 입, 코 및/또는 눈들 사이의 거리를 추출하는 것이 가능하다.
객체가 사용자의 발바닥인 경우, 생체 특성은 발바닥의 발자국일 수도 있다. 생체 특징을 추출하는 것은 발자국에서 하나 또는 복수의 라인들의 곡률, 방향, 길이, 위치 중 하나 이상을 추출하는 것을 포함할 수도 있다.
이 정보를 이용하여 사용자를 식별하기 위해서는 대응하는 생체 특징의 형태로 참조가 가능해야 하는 것은 당연히 필요하다. 이러한 이유로, 도 1과 관련하여 앞서 설명된 식별 수단들은 저장 디바이스와 연관되거나 또는 생체 특징들이 특정 사용자들에 대해 저장된 저장 디바이스를 포함하는 경우일 수도 있다. 예를 들어, 각 사용자에 대해, 하나 이상의 생체 특징들이 예를 들어 이미지들, 수치들 또는 기타 데이터 구조의 형태로 저장된 파일이 존재할 수도 있다. 이것은 사용자의 적어도 하나 또는 심지어 양손의 손바닥 주름들이 저장되는 것 그리고/또는 홍채의 적어도 하나의 패턴이 저장되는 것 그리고/또는 위에서 언급된 바와 같이 얼굴의 적어도 하나의 부분의 위치 또는 위에서 언급된 바와 같이 얼굴의 적어도 두 부분들의 거리가 저장되는 것 그리고/또는 사용자의 적어도 한 발의 바닥의 적어도 하나의 발자국이 저장되는 것을 포함할 수도 있다.
다음 단계(22)에서, 손바닥으로부터 획득된 생체 특징(또는 위에서 언급된 바와 같이 객체들 각각의 다른 생체 특징들 각각)은 대응하여 저장된 생체 특징과 비교된다. 이것은 저장된 생체 특징이 추출된 생체 특징의 대응하는 위치들을 비교하는 손바닥 주름들의 다수의 위치들에 의해 표현되는 경우를 포함할 수 있다. 물론, 획득된 생체 특징을 저장된 생체 특징과 비교하기 위한 다른 수단이 알려져 있고, 예를 들어 이미지 인식 기술, 주파수 변환 등이 사용될 수 있다. 획득된 생체 특징과 저장된 생체 특징을 비교하는 것은, 본 발명에 따르면, 획득된 생체 특징과 저장된 생체 특징 사이의 대응 정도(degree of correspondence)가 계산될 수 있는 그러한 방식(manner)으로 수행된다. 다시 말해, 이 비교는 저장된 생체 특징과 획득된 생체 특징 간의 차이가 계산되는 것을 초래할 것이다. 이 차이는 단일 실수(single real number) 또는 텐서 또는 벡터 또는 기타 수학적 구조일 수 있다. 또한, 그것은 저장된 생체 특징 이미지로부터 획득된 생체 특징 이미지를 픽셀 단위(pixel per pixel basis)로 빼서(subtract) 획득된 차분 이미지(difference image)일 수 있다.
획득된 생체 특징이 저장된 생체 특징에 대응하는지 여부를 결정하며 이에 따라 사용자를 식별하게 하도록 하는 임계값이 제공될 수 있다.
대응되게, 단계(23)에서, 획득된 생체 특징과 저장된 생체 특징 사이의 차이가 이 임계값 이하 또는 이상인지 여부가 결정된다. 그것이 임계값보다 미만인 경우, 단계(25)에서 사용자가 생체 특징에 의해 식별되는 것으로 결정된다. 차이가 임계값보다 높은 경우, 대신에 단계(24)에서 사용자가 생체 특징에 의해 식별되지 않는 것으로 결정된다.
그러면 이것은 식별 수단들이 사용자가 획득된 손바닥 주름들에 의해 식별되거나 또는 사용자가 획득된 손바닥 주름들에 의해 식별되지 않는 것으로 결정하는 것을 초래할 것이다. 생체 특성이 위에서 언급한 다른 것들 중 하나인 경우에 동일한 방식으로 해당 결정들이 제공될 수 있습니다.
도 1 및 도 2는 사용자를 식별하기 위해 하나의 손바닥만 사용하고 이 손바닥이 이미지에 존재하는 경우에 원래 촬영된 원본 이미지로부터 획득된 생체 특성을 이용하여 사용자를 식별하는 방법을 설명하였다.
다만, 식별 수단들은 단일 손바닥(또는 하나의 눈 또는 하나의 발의 바닥)을 평가할 수 있을 뿐만 아니라 사용자를 식별하기 위해 이미지에 사용할 수 있는 양쪽 손바닥들 또는 양쪽 눈들 또는 양쪽 발들(각각 동일한 바닥들)을 평가할 수 있다. 하나의 손바닥 또는 복수의 손바닥의 손바닥 주름으로부터 획득되는 생체 특징이 식별 수단들에 의해 저장된 생체 특징에 매칭(match)되는 방식은 도 2와 관련하여 설명된 바와 대응한다.
다만, 손바닥 주름(또는 발바닥의 발자국 또는 홍채)이 하나 이상 평가되는 경우, 생체 특징의 조합된 식별 정확도가 주어진 임계값을 초과하는 경우에만 사용자가 식별되거나, 또는 획득된 손바닥, 눈 또는 발바닥 각각에 대해 도 2의 단계(22) 및 단계(23)에서 설명된 바와 같이 획득된 생체 특징과 저장된 생체 특징의 비교가 단계(25)의 결과로 이어지는 경우에만 사용자가 식별된다.
마지막 경우는 이미지 내의 모든 손바닥 주름 또는 홍채에 대해 수행되고 그리고 획득된 생체 특징과 획득된 손바닥 주름 또는 홍채 각각에 대해 저장된 생체 특징 간의 차이가 주어진 임계값 미만인 경우에만 사용자가 식별되는 도 2와 관련하여 설명된 방법과 같이 용이하다(straightforward). 다른 임의의 경우에는 사용자가 식별되지 않을 수도 있다.
다만, 이미지 내 모든 손바닥들 또는 눈들 또는 발의 바닥들 또는 홍채들 또는 손바닥 주름의 조합된 식별 정확도가 위에서 주어진 임계값 초과인 경우에 이용자가 식별되는 경우, 각각의 손바닥 또는 눈에 대해, 획득한 생체 특징과 저장된 생체 특징을 비교하여 그 차이가 도 2의 단계(23)에 따라 임계값 미만이 되는 결과를 초래할 필요는 없다.
예를 들어, 0(식별 없음) 내지 1(획득한 생체 특징과 저장된 생체 특징이 완전히 매칭) 사이의 숫자인 생체 특징의 식별 정확도를 고려하면, 조합된 식별 정확도가 개별(alone) 생체 특징 각각에 대해 획득한 독립된 식별 정확도들의 합에 의해 결정되는 경우에 조합된 식별 정확도는 (각각 두 손바닥 또는 두 눈 또는 두 발에 대한 완벽한 식별 정확도에 대응하여) 2보다 작은 값을 가질 수도 있다.
예를 들어, 조합된 식별 정확도에 대해 대응하는 임계값은 1.75일 수도 있다. 이 경우, 예를 들어 각 손바닥 또는 눈(모든 손바닥 주름들 또는 홍채들 각각)에 대한 식별 정확도들이 그 식별 정확도들의 총합(즉, 조합된 식별 정확도)은 1.8이므로 상기 임계값보다 높은 경우에 사용자를 식별하기에 충분할 것이다. 또 다른 예로, 손바닥들 중 하나가 0.95의 식별 정확도로 식별되는 것을 고려하면, 다른 손바닥은 0.8의 정확도로만 식별되면 충분하다. 객체가 눈인 경우 대응하는 값들이 유지된다.
식별된 생체 특징 각각에 대한 식별 정확도를 참조하는 것도 가능하다. 이것은 예를 들어, 각 손바닥 주름(또는 각 발의 바닥의 발자국)에 대해 이러한 식별 정확도가 제공될 수 있음을 의미한다. 10개의 손바닥 주름들이 위에 설명된 방식으로 0 내지 1 사이의 값들을 가지는 손 각각에 대해 최대값으로 식별될 수 있다고 가정될 수도 있다. 그러면 두 손바닥들을 합친 도달 가능한 최대 식별 정확도는 20이 될 것이다. 이러한 경우에, 조합된 식별 정확도가 18.5이면 충분할 수 있다. 이러한 조합된 식별 정확도는 사용자의 얼굴에서 추출한 생체 특징들에도 사용될 수 있다. 예를 들어, 사용자의 얼굴 이미지 내에서 적어도 하나의 눈, 코 및 입의 위치뿐만 아니라 입에서 코까지의 거리가 사용자를 식별하기 위해 사용될 수 있다. 이러한 경우 이러한 생체 특징들 각각(위치 및 거리 각각)은 0 내지 1 사이의 식별 정확도와 연관될 수 있다. 조합된 식별 정확도는 값이 최대 4까지 도달할 수 있다. 3.8의 식별 정확도는 생체 특징 각각의 식별 정확도에 대응하는 결과들로 충분할 수 있다.
식별 정확도는 획득된 생체 특징과 저장된 생체 특징 사이의 상대적 유사성 또는 일치도로 볼 수 있다는 것에 유의한다. 이에 따라, 획득한 생체 특징이 저장된 생체 특징의 90%에 대응하는 경우, 식별 정확도(즉, 이 생체 특징으로 사용자가 얼마나 정확하게 식별될 수도 있는지)는 0.9가 될 것이다.
식별 정확도에 대한 다른 값들 또는 임계값에 대한 다른 값들 조차도 사용될 수 있다는 것이 자명하다(clear). 추가적으로, 조합된 식별 정확도를 결정할 수 있는 다른 수단들도 존재한다. 예를 들어, 조합된 식별 정확도는 식별 정확도들의 평균값을 결정하거나 또는 식별 정확도들의 곱(product)을 결정하여 계산될 수도 있다.
다음 도면들에서는 단계(12)에서 단계(14)에 따라 최종적으로 생체 특성을 추출하기 위해 원래 획득한 이미지의 처리를 더 자세히 설명하고, 그리고 추가적으로 높은 정확도로 손가락 끝들을 식별할 수 있도록 뉴럴 네트워크가 훈련될 수 있는 방법에 관한 설명이 주어질 것이다.
도 3은 일 실시예에 도 1의 단계(12) 내지 단계(14)의 구현의 플로우 개략도를 도시한다. 이제 설명된 방법은 획득된 이미지 내에서 사용자의 생체 특성을 지닌 객체를 식별하는 것을 허용하기 위한 것이다. 본 발명의 측면(in the sense of)에서, 이 이미지는 바람직하게는 모바일 컴퓨팅 디바이스의 광학 센서에 의해 제 1 단계(101)(도 1의 단계(11)에 대응함)에서 획득된다. 이 모바일 컴퓨팅 디바이스는 스마트폰, 태블릿 컴퓨터(tablet computer) 또는 기타 대응하는 디바이스일 수도 있다. 이에 따라, 광학 센서는 일반적으로 카메라이지만 적외선 카메라 또는 기타 광학 센서일 수도 있다. 이 카메라는 1메가픽셀(MP)의 해상도를 가진 카메라일 수 있거나, 또는 HD 카메라일 수도 있거나, 또는 더 낮은 해상도를 가질 수도 있다. 해상도는 임의적(arbitrary)일 수 있고, 예를 들어 카메라들과 같이 일반적으로 사용되는 광학 센서들에 의해 일반적으로 적용되는 임의의 해상도를 커버(cover)할 수 있다. 다만, 몇몇 예시적인 실시예들에서, 획득된 이미지의 해상도는 적어도 픽셀당 3개의 색상 값들을 가지는 104 x 104이거나, 또는 픽셀당 3개의 색상 값들을 가지는 224 x 224일 수 있다.
획득된 이미지는 본 발명에 따라 객체 그 자체(예: 손바닥, 눈 또는 얼굴 또는 발바닥)에 대해서 뿐만 아니라 이미지 내에서의 위치에 대해서도 식별되는 객체를 포함할 수도 있습니다. 객체는 사용자를 적절하게 식별할 수 있도록 허용하는 사용자의 생체 특성을 지니고 있거나 가지기 위한 것이다. 이것은 객체가 는 위에서 논의한 바와 같이 손바닥 주름 또는 다른 적절한 생체 특성을 가지고 있는 손바닥과 같은 객체(또는 위에서 언급한 다른 객체)여야 한다는 것을 의미한다. 손바닥 주름들이나, 예를 들어 홍채의 패턴은 사용자를 개별적으로 식별하기 위해 사용될 수 있고, 즉, 몇몇 아주 특별한 경우들을 제외하고, 손바닥 주름들은 각 사람마다 고유하며, 이에 따라 획득된 손바닥 주름들에 기초하여 두 사람들을 서로 구별하도록 허용한다는 것이 알려져 있다.
다음의 참조는 각각 사용자의 한 손바닥 또는 두 손바닥들에 대해서만 이루어질 것이라는 점에 유의한다. 다만, 임의의 다른 적합한 객체 또는 생체 특성 또는 생체 특징은 이미 위에서 논의된 바와 같은 방식으로 대체될 수 있다. 구체적으로, 본 발명은 마찬가지로 사용자의 양쪽 눈들 또는 적어도 하나의 눈 및/또는 사용자의 얼굴 및/또는 사용자의 적어도 한 발의 바닥을 각각 객체로 사용하여 구현될 수 있고, 그리고 대응하는 생체 특징들 및 생체 특성들은 이러한 객체들에 대해 위에서 설명되었다.
도 1 및 하기 도면들과 관련하여 "이미지"가 참조될 동안, 본 발명은 실시간 객체 식별을 허용하고, 따라서 영역에서 필요한 처리 시간은 몇 밀리초 정도이며, 그에 의해 광학 센서에 의해 획득된 비디오 또는 라이브-스트림(live-stream)과 같은 연속 이미지들에서 객체들을 적절하게 식별하도록 허용한다. 따라서, "이미지"라는 용어는 단일 이미지뿐만 아니라 비디오 스트림과 같이 매우 짧은 시간에 연속적으로 획득되는 이미지들을 의미하는 것으로 이해되어야 한다.
실제로 스마트폰에서 흔히 볼 수 있듯이 카메라를 활성화하는 경우, 스마트폰 사용자는 사진을 찍지 않고도 카메라의 실제 뷰(actual view)로 볼 수 있다. 따라서 이 "예비 뷰(preliminary view)"는 일반적으로 더 낮은 해상도로 카메라에 의해 촬영되는 복수의 이미지들로 구성된다. 이러한 이미지들에 대해서도 설명된 본 발명의 방법이 사용될 수 있다.
방법의 제 2 단계(102)에서, 획득된 이미지(또는 차례로 연속적으로(in succession one after the other) 획득된 이미지)는 도 1의 단계(12)에 따라 뉴럴 네트워크에 제공되며, 여기서 뉴럴 네트워크는 바람직하게는 모바일 디바이스에 있을 수 있으나, 반드시 그런 것은 아니다.
뉴럴 네트워크는 애플리케이션(앱,app) 또는 모바일 디바이스에서 실행되는 다른 임의의 프로그램에서 구현될 수도 있다. 본 발명의 바람직한 실시예에서, 뉴럴 네트워크에 의해 수행되는 추가적인 처리 및 본 발명의 방법에서 수행되는 임의의 다른 단계들은 모바일 디바이스 외부의 임의의 컴퓨팅 엔티티를 참조할 필요 없이 수행되며, 이에 따라 모바일 디바이스의 "오프라인(offline)" 모드에서 방법을 수행하도록 허용한다.
단계(102)는 이미지의 임의의 추가적인 처리 없이 또는 이미지의 추가적인 전처리(pre-processing) 없이 직접 뉴럴 네트워크로 이미지를 포워딩함으로써 실현될 수도 있다. 다만, 이 단계는 또한 예를 들어 원래 획득된 이미지의 해상도가 변경(특히, 감소)되는 이미지의 전처리 단계를 포함할 수도 있다. 이미지 내에서 손바닥을 식별하는 경우, 몇몇 예시들에서 104 x 104 x 3("3"은 이미지의 세 가지 색상 값, 즉 파란색, 빨간색 및 녹색에 대응함)의 비교적 낮은 해상도를 가지는 것으로 충분하며, 본 발명은 이와 관련하여 제한되지 않고 그리고 다른 해상도들이 선택될 수 있다. 획득된 이미지가 손바닥을 식별하는 데 필요한 104 x 104 이미지 해상도보다 훨씬 더 큰 해상도를 가지는 경우, 단계(102) 또는 단계(102)와 단계(103) 사이에 제공되는 단계는 이미지의 해상도를 줄이는 것을 포함할 수 있습니다. 이 전처리는 밝기 조건들 변경, 이미지 내의 감마 값 변경 또는 적절하다고 간주되는 임의의 다른 전처리 제공과 같은 다른 단계들을 포함할 수도 있다.
해당 해상도들은 이미지들 내에서 얼굴들과 눈들을 식별하기에 충분한 것으로 밝혀졌다.
이미지가 단계(102)에서 뉴럴 네트워크에 대한 입력으로 제공된 후, 이 입력은 이미지 내에서 객체의 위치 및/또는 객체를 식별하도록 허용하는 출력이 생성되는 그러한 방식으로 뉴럴 네트워크에 의해 단계(103)에서 처리된다. 객체가 손바닥인 경우, 이것은 이미지 내에 존재하는 적어도 하나의 손바닥이 식별됨(예를 들어, 레이블 형태로) 및 그것의 위치(예를 들어, 손바닥을 구성하는 픽셀들의 좌표들)가 출력에 임의의 방식(somehow)으로 제공된다는 것을 의미한다. 이후에 설명되는 바와 같이, 이것은 바운딩 박스가 손바닥 위에 중첩(superimpose)되고 그리고 손바닥에 대응하는 위치에서 식별된 손바닥을 포함하고, 그리고 둘러싸는 바운딩 박스를 제공하여 달성될 수 있다. 이후에 이미지에 대한 이 바운딩 박스의 좌표들은 손바닥의 위치로 사용될 수 있다.
단계(103)에서 입력(즉, 기본적으로(essentially) 수신된 이미지)을 처리하는 것은 뉴럴 네트워크를 사용하여 복수의 방식들로 가속화(facilitate)될 수 있다. 임의의 경우에서, 뉴럴 네트워크는 생체 특성을 지닌(carrying) 의도된 객체들을 식별하도록 특별히 훈련되는 훈련된 뉴럴 네트워크인 것이 의도된다. 더 바람직하게, 뉴럴 네트워크는 광학 센서가 적어도 하나의 손바닥의 이미지를 취할 수 있는 한, 광학 센서와 관련하여 그들의 위치 및 배열에 관계없이 입력 이미지 내에서 손바닥(들)을 식별하도록 훈련된다. 처리하는 단계는 후술되는 바와 같이 뉴럴 네트워크의 복수의 레이어들을 통한 입력의 처리 단계를 포함할 수도 있다.
본 발명에 따르면, 이것은 적어도 입력이 제 1 중간 출력을 생성하기 위해 뉴럴 네트워크의 제 1 레이어에 의해 처리되고, 이후에 제 1 중간 출력이 제 2 중간 출력을 생성하기 위해 뉴럴 네트워크의 처리 방향으로 제 1 레이어 다음의 레이어에 의해 처리되는 것을 포함한다. 제 2 중간 출력은 뉴럴 네트워크 내의 모든 레이어들이 대응되게 수신된 중간 출력을 처리하는 경우까지 제 3 중간 출력 등(so forth)을 생성하는 것이 처리되는 뉴럴 네트워크의 다음 레이어로 포워딩 된다. 뉴럴 네트워크 내의 최종 레이어는 이후에 설명될 단계(104)에서 출력될 수 있는 "최종" 출력을 제공할 것이다.
추가적으로, 본 발명에 따르면, 뉴럴 네트워크의 각 레이어는 2개의 컨볼루션 레이어들로 구성되어 뉴럴 네트워크의 각 레이어가 깊이별 분리 가능한(separable) 컨볼루션이라고도 하는 깊이별 분리 가능한 컨볼루션 필터(filter)를 나타낸다. 이 깊이별 분리 가능한 컨볼루션(즉, 뉴럴 네트워크의 레이어)은 깊이별 분리 가능한 콘볼루션을 통해 입력의 처리 순서대로 깊이별 콘볼루션 레이어, 제 1 배치 노멀라이저 및 제 1 정류 선형 유닛을 포함한다. 제 1 정류 선형 유닛 이후의 처리 순서대로 포인트별 컨볼루션 레이어, 제 2 배치 노멀라이저 및 제 2 정류 선형 유닛이 제공되며, 여기서 제 2 정류 선형 유닛 또는 정류 선형 유닛으로부터 출력을 수신하는 처리 모듈(processing module)은 중간 출력을 뉴럴 네트워크의 다음 레이어로 포워딩할 것이다.
뉴럴 네트워크의 모든 레이어들을 통해 이미지를 처리한 후에 최종적으로 객체 그 자체 및 위치를 식별할 출력이 생성된다.
이것은 뉴럴 네트워크의 출력이 출력되는 단계(104)에 따라 수행된다. 본 발명의 바람직한 실시예들에 따르면, 이 출력은 식별된 객체 및 그것의 위치에 대한 사용자 피드백을 제공하기 위해 식별된 손바닥을 둘러싸는 바운딩 박스로 이 이미지가 증강(augment)될 수도 있는 "수정된 이미지"일 수도 있다.
다만, 출력은 모바일 디바이스의 디스플레이 또는 모바일 디바이스와 관련된 다른 임의의 디스플레이 상에 표시될 필요는 없다. 실제로, 출력은 또한 이미지 내의 손바닥의 위치(특히 손바닥을 구성하는 이미지 내의 픽셀들의 좌표들)를 정확하게 식별하는 아래에 설명될 텐서 또는 행렬의 형태로 제공될 수 있고, 그리고 행렬 또는 텐서는 정보, 특히 손바닥을 식별하는 좌표들을 사용하여 식별된 손바닥에 추가적인 처리 단계를 적용하는 추가적인 처리 모듈로 포워딩될 수 있다. 출력은 나중에 도 1에 따른 단계(14)에 따라 식별된 객체에서 생체 특성을 추출하는 데 사용될 수 있다.
이러한 추가적인 처리 단계는 바람직하게 식별된 손바닥이 사용자의 적어도 하나의 손바닥 주름을 식별하기 위해 평가되는 단계를 포함할 수 있다. 예를 들어, 손바닥으로부터 촬영된 고해상도 이미지를 고려하면, 본 발명의 방법은 제 1 단계(a first step)에서 위에서 설명한 단계들(101-104)을 포함하는 방법을 사용하여 이미지 내에서 손바닥의 위치가 식별되는 것을 포함할 수 있고, 그리고 이후에 최종 출력은 손바닥 주름을 식별하기 위해 고해상도 이미지를 평가하는 손바닥 및 그것의 위치를 식별하는 출력을 사용하는 추가적인 이미지 처리 구성 요소(image processing component)로 포워딩 된다. 이것은 사용자를 식별하는 데 사용될 수 있으며, 이에 의해 예를 들어 도 2를 참조하여 설명된 바와 같이 추가적인 프로세스들의 보안을 증가시킨다. 예를 들어, 사용자가 모바일 디바이스로 은행 송금을 위해 그 자신을 식별하도록 본 발명의 방법을 사용하는 경우, 본 발명의 방법은 이 사람을 고유하게 식별하는 사용자의 손바닥 주름으로 사용자 각각의 정확하고 고유한 식별을 허용하여 은행 송금의 안정성을 증가시킬 수 있다.
본 발명은 손바닥을 식별하기 위해 대응하는 방법을 사용하여 은행 송금을 수행하는 것으로 제한되지 않으며, 예를 들어 모바일 디바이스의 기능들 또는 사용자의 인증(authentication) 및 식별이 필요한 임의의 기타 동작(activity)에 엑세스하도록 사용자를 식별하는 데에도 사용될 수도 있다.
도 4는 본 발명의 일 실시예에 따른 뉴럴 네트워크의 하나의 레이어(200)에서 수신된 입력의 내부적인 처리를 도시한다. 레이어(200)는 뉴럴 네트워크를 통한 원래 입력의 처리 순서에 따라 위에서 설명된 단계(102) 이후에 원래 입력을 수신하는 제 1 레이어, 또는 뉴럴 네트워크의 두 개의 추가적인 레이어들(240 및 250) 사이에 배치되는 임의의 중간 레이어인 레이어일 수 있거나, 또는 최종적으로 레이어(200)는 도 1을 참조하여 설명된 바와 같이 단계(104)에 따라 출력을 제공할 뉴럴 네트워크의 최종 레이어(the last layer)일 수도 있다.
임의의 경우에, 레이어(200)는 적어도 임의의 방식으로 원래 획득된 이미지에 대응하는 입력(230)을 수신할 것이다. 입력은 N×M 차원을 가지는 적어도 하나의 행렬 형태로 제공되는 것이 바람직하며, 여기서 N과 M은 0보다 큰 정수이다. 행렬은 예를 들어, 적어도 하나의 색상 값(예를 들어, 빨간색)에 대한 이미지의 픽셀들을 나타낼 수도 있다. 이에 따라 행렬의 엔트리들은 이 특정 픽셀의 각 색상(예시의 경우 빨간색)의 값에 대응하는 값들을 가질 수도 있다. 다음에서 명시될 바와 같이, 입력은 획득된 이미지와 동일하지 않을 수 있지만 뉴럴 네트워크의 레이어들을 통한 몇몇 처리 또는 심지어 몇몇 전처리(예를 들어, 위에서 설명한 해상도 감소)에 의해 원본 이미지를 나타내는 행렬에서 획득되는 행렬 P일 수 있다.
다만, 논의의 편의를 위해 입력(230)은 원래 획득된 이미지를 나타내는 N×M 행렬에 해당하는 것으로 가정하고 그리고 N×M 행렬의 각 엔트리은 각 이미지 내의 픽셀의 색상 값(예: 빨간색)에 대응한다. 이 교시(teaching)를 원래(original) N×M 행렬로부터 유래하고(originate) 뉴럴 네트워크의 레이어들에서 이 행렬을 처리하여 획득하는 임의의 다른 변환된 행렬에 적용하는 것은 용이하다.
이제 도 4에 예시된 프로세스에 이어, 처리를 위해 깊이별 컨볼루션 레이어(211)에 의해 입력(230)이 수신된다. 다음에서, 입력 행렬(230)이 깊이별 컨볼루션 레이어에 의해 처리될 수 있는 방법과 관련하여 비교적 간단한 예시가 제공될 것이다. 이것은 행렬을 사용하여 내적을 계산하는 데 커널 K가 사용되는 것을 포함할 것이다. 커널은 "스트라이드(stride)들"로 불리는 행렬에서 실행된다. 다음 예시에서는 가로 및 세로 스트라이드 너비(stride width)들에 대해 1의 값을 사용할 것이지만, 스트라이드 너비들이 0보다 큰 정수들인 한 1보다 큰 다른 임의의 값을 사용할 수 있다. 커널 K의 사이즈는 S×T이며, 여기서 S와 T는 정수들이고 N 및 M보다 작다.
추가적으로, 커널과의 내적을 계산하기 위해 사이즈가 N×M인 원래의 입력 행렬 I(즉, 입력 행렬(230))만이 사용된다고 가정될 것이다. 다만, 확장 행렬(extended matrix) Z가 커널과의 내적들을 계산하는 데 사용될 수 있다는 것도 고려된다. 이 확장 행렬 Z는 원래 행렬 I에 첫 번째 행에서 왼쪽 그리고 마지막 행에서 오른쪽뿐만 아니라 첫 번째 행의 위와 마지막 라인(line) 아래의 행들과 라인들을 "연결(attaching)"하여 획득된다.
이것을 "패딩(padding)"이라고 한다. 패딩은 일반적으로 라인들의 개수
Figure pct00029
가 라인 방향에 추가되고 행들의 수
Figure pct00030
가 행 방향에 추가되는 것으로 구성될 것이다. 숫자
Figure pct00031
는 S-1과 같을 수 있고 숫자
Figure pct00032
는 T-1과 같을 수 있어 Z와 커널 사이에서 계산된 임의의 내적은 원래 행렬 I의 엔티티가 적어도 하나 포함된다. 이에 따라 결과 행렬(resulting matrix) Z는 (N+
Figure pct00033
)×(M+
Figure pct00034
) 사이즈가 된다. 이를 고려하여 행렬 Z에는 다음 엔티티들을 가질 것이다:
Figure pct00035
이러한 맥락에서, 모든 내적들을 계산하고 라인들 및 행들에 따라 적절하게 배열하여 얻은 새로운 행렬은 일반적으로 사이즈가
Figure pct00036
이고, 여기서
Figure pct00037
Figure pct00038
는 각각 라인들의 방향과 행들의 방향의 스트라이드 너비를 정의한다. 새로운 행렬의 사이즈에 대한 정수를 생성하는 S×T 사이즈의 주어진 커널 K에 대해 패딩들 및 스트라이드 너비들만 허용된다는 것은 자명하다. 추가적으로, 스트라이드 너비들
Figure pct00039
Figure pct00040
는 바람직하게 각각 S 및 T보다 작으며, 그렇지 않은 경우 커널이 새로운 행렬을 계산하는 경우에 원래 행렬의 몇몇 라인들 또는 행들이 배제되는(left out) 방식으로 행렬 I 위로 이동될 것이기 때문이다.
논의의 편의를 위해 다음에서는 원래 행렬 I에 패딩이 제공되지 않고 가로 및 세로 스트라이드들에 대해 스트라이드 너비가 1이라고 가정될 것이다. 추가적으로, 커널은 사이즈가 S×S인 행렬, 즉 S=T가 가정되는 특수한 경우라고 가정될 것이다. 임의의 패딩과 스트라이드 너비뿐만 아니라 임의의 커널 사이즈에 다음에서 주어진 설명들을 적용하는 것은 다음에서 제공된 교시에 따라 용이하다.
깊이별 컨볼루션 레이어(211)에서, 수신된 입력 행렬(230)은 S<N,M인 S x S 사이즈를 갖는 커널 K와의 내적을 형성하는 데 사용된다. 내적은 축소된 행렬이 사이즈 S x S이고 원래 N x M 행렬의 일관된(coherent) 엔트리들을 포함하는 원래 N×M 행렬의 축소된 행렬 각각에 대해 계산된다. 예를 들어, S=3을 고려하면, 원래 N×M 행렬의 제 1 감소된 행렬 R은 감소된 행렬
Figure pct00041
가 9개의 엔트리들로 구성되며 커널 K를 가지는 내적이 계산되어 단일 숫자를 초래한다. 원래 N×M 행렬의 라인들의 방향들에서 다음 감소된 행렬은 i가 1만큼 증가하는 행렬이며, 이 방향의 다음 행렬은 원래 N×M 행렬의 아이템(item)들로 구성되고, 여기서 i= 2,3,4이고; j=1,2,3이다. 이 행렬은 커널과 함께 다음 내적을 계산하는 데 사용될 수도 있다. S = 3인 S x S 행렬의 주어진 예시는 하나의 예시일 뿐이며 다른 커널들도 사용될 수도 있다.
행들/열들의 방향으로 사이즈
Figure pct00042
의 다음 감소된 행렬 R을 계산하기 위해 원래 N×M 행렬에 있는 아이템들의 인덱스(index) j가 1만큼 증가된다. 이것은 S = 3인 경우에 i = N-S+1, N-S+2, N-S+3인 열들의 방향의 최종 감소된 행렬까지 수행된다. 행들의 경우 j = M-S+1, M-S+2, M-S+3인 대응하는 방식으로 수행된다. 이러한 내적들을 계산하여, 사이즈 (N-S+1)×(M-S+1)를 가지는 새 행렬인 행렬 P가 계산된다. 그것의 엔트리들
Figure pct00043
는 원래 N×M 행렬과 커널 K의 대응하는 감소된 행렬로 계산된 내적 각각에 대응한다. 이 사이즈의 행렬은 실제로 레이어(200)의 포인트별 컨볼루션 레이어로 전달된다는 것을 유의한다.
커널 K는 의도된 객체들을 적절하게 식별하기 위해 뉴럴 네트워크가 훈련되는 학습 프로세스를 통해 획득된 엔트리들로 구성된다. 뉴럴 네트워크의 레이어(200)에서 사용되는 커널 K는 뉴럴 네트워크 각각의 다른 레이어들에서 사용되는 커널들에 대해 사이즈 및 엔트리들이 반드시 동일할 필요는 없다. 추가적으로, 커널 내의 엔트리들은 서로 동일할 필요는 없지만 적어도 구성 숫자들은 0보다 크거나 같다. 엔트리들은 뉴럴 네트워크의 학습을 통해 얻은 "가중치들"을 나타내는 것으로 간주될 수도 있다.
깊이별 컨볼루션 레이어에 의해 행렬(230)을 처리한 결과는 위에서 설명한 바와 같이, 행들 방향으로 Δj =1이고 라인들 방향으로 Δi =1인 거리를 가지는 원래 N×M 행렬 위의 스트라이드들로 커널이 이동하는 경우에 커널은 사이즈가 (N-S+1)×(M-S+1)인 행렬(231)이 된다. 다만, 스트라이드들이 Δi =2 또는 Δi =3과 같이 (그리고 잠재적으로, 행들에 대응되게) 더 큰 거리를 가지는 경우 결과(231)의 차원은 위에서 설명된 바와 같이 대응되게 변경될 것이다.
추가적인 처리에서, 이 결과(231)는 깊이별 컨볼루션 레이어(211) 다음에 도 4에서 화살표들로 표시된 처리 순서로 이어지는 제 1 배치 노멀라이저(212)로 전달된다. 배치 노멀라이저는 수신된 결과 행렬(231)에 대해 정규화(normalize)를 시도한다. 이것은 (N-S+1)×(M-S+1) 행렬의 엔트리들 각각에 대한 총합을 계산하고 그리고 (N-S+1)×(M-S+1) 행렬의 엔트리들의 개수에 의해 그것을 나눈다. (대응하는 아이템들
Figure pct00044
를 가지는 다음에서 P로 표시되는)(N-S+1)×(M-S+1) 행렬에 대한 평균값 V는 다음처럼 주어진다.
Figure pct00045
여기서 n과 m은 N×M 행렬의 라인들 및 열(column)들/행들의 개수 또는 행렬 P의 라인들 및 행들의 개수를 나타낸다. 아이템들
Figure pct00046
는 행렬 P의 엔트리들이며 여기서 주어진 아이템
Figure pct00047
는 i라인 및 j열의 행렬 내의 요소(element)이다.
이후에 배치 노멀라이저는
Figure pct00048
가 되도록 원래 행렬의 각 엔트리
Figure pct00049
에서 평균값 V를 추출하여 축소된 행렬 P'를 계산한다. 그에 따라, 감소된 행렬 P'내의 값들은 정규화 되어 한 방향 또는 다른 방향의 어노말리(anomaly)들(매우 큰 값 또는 매우 낮은 값)이 필터링된다.
제 1 배치 노멀라이저(212)에 의해 생성된 결과(232)는 (도 4에 주어진 예시에서) 지금까지 더 이상 행렬의 차원 축소가 수행되지 않았기 때문에 여전히 크기가 (N-S+1)×(M-S+1)인 행렬이다.
그 다음, 결과(232)는 제 1 배치 노멀라이저(212)를 뒤따르는 제 1 정류 선형 유닛(213)에 제공된다.
정류 선형 유닛은 새로운 행렬 엔트리들
Figure pct00050
를 계산하여 행렬(232)의 각 엔트리를 추가로 수정하여 여기서 엔트리들
Figure pct00051
는 다음과 같다.
Figure pct00052
이것은 배치 노멀라이저를 통과한 후 0으로 설정되도록 0보다 작은 값들을 초래하여 다음에서 설명될 깊이별 컨볼루션 레이어의 추가적인 처리에 더 이상 영향을 미치지 않는다. 이것은 예를 들어 배치 노멀라이저에서 계산된 평균값보다 낮은 색상 값들은 더 이상 고려되지 않고 평균값 V에 대응하는 값들만 다음 단계의 계산 결과에 영향을 미친다는 것을 의미한다.
이에 따라, 제 1 정류 선형 유닛(213)에 의해 출력된 결과(233)는 여전히 형태(shape)/사이즈 (N-S+1)×(M-S+1)의 행렬이고 이 행렬은 포인트별 컨볼루션 레이어(221)로 포워딩 된다.
이 포인트별 컨볼루션 레이어(221)는 결과(234)를 생성한다. 이 결과(234)는 (N-S+1)×(M-S+1) 행렬(233)의 각 엔트리를 취하고 이 엔트리에 가중치 α를 곱하여(multiply) 포인트별 컨볼루션 레이어(221)에 의해 생성된다. α는 바람직하게 임의의 경우에서 0보다 큰 숫자이고, 이 숫자는 (N-S+1)×(M-S+1) 행렬의 각 엔트리에 대해 동일하다. 이에 따라 포인트별 컨볼루션 레이어(221)로부터 얻어지는 결과(234)는 동일한 사이즈 (N-S+1)×(M-S+1)를 가지지만 각 엔트리에 가중치 α가 곱해지는 행렬이다.
이후에 결과(234)는 제 2 배치 노멀라이저(222)에 제공되고, 여기서 그것은 1 배치 노멀라이저(212)에 대해 설명된 방식으로 정규화되고 그리고 결과(235)와 동일한 차원의 정규화된 행렬 P'가 계산되고, 행렬/결과(235)는 결과/행렬
Figure pct00053
(236)을 획득하기 위해 정류 함수가 적용되는 제 2 정류 선형 유닛(223)으로 전달된 다음 뉴럴 네트워크 내의 다음 레이어로 포워딩 되거나, 또는 뉴럴 네트워크에서 다른 레이어가 뒤따르지 않는 경우에 결과(236)가 출력으로 제공된다.
손바닥을 식별하기 위해 도 4에 설명된 레이어(200)과 동일한 13개의 레이어들은 모바일 디바이스들에 더 적합하게 만드는 각 방법의 구현을 위해 감소된 컴퓨터 리소스만 필요로 하는 그것의 위치 및 손바닥의 비교적 높은 식별 정확도를 초래함에 따라 가장 적합하다는 것이 본 발명의 결과이다.
도 5는 다수의 바운딩 박스들을 사용하여 손바닥(특히 손바닥을 구성하는 원본 이미지의 픽셀들)의 식별 및 원본 이미지를 그리드로 분리하도록 허용하기 위해 도 4에 설명된 컨셉(concept)을 확장하는 추가적인 실시예를 나타낸다. 다음에서 설명하는 단계들은 뉴럴 네트워크의 각 레이어에서 원본 이미지를 처리한 후에 수행될 수 있거나 또는 오직 뉴럴 네트워크의 최종 레이어에서 이미지가 처리된 후에, 즉 도 3의 단계(104)에 따라 출력을 출력하기 전에 즉시 수행될 수 있다는 것을 유의한다.
도 5에 설명된 실시예는 뉴럴 네트워크의 레이어로부터 수신된 출력에 기초하여 본 발명에 따라 높은 정확도로 손바닥들 또는 다른 객체들을 완벽하게 식별할 수 있는 이미 학습된 뉴럴 네트워크를 가정한다.
도 5의 실시예에 따르면, 뉴럴 네트워크의 레이어로부터 수신된 출력이 임의의 방식으로 여전히 손바닥을 포함하는 손(350)의 이미지(300)의 형태로 표현될 수 있다고 가정될 것이다. 이에 따라 이미지 대신 도 2에 설명된 출력 행렬들 중 하나가 또한 사용될 수 있음이 자명하지만 "이미지"만 참조될 것이다.
제 1 단계에서, 수신된 이미지(300)는 복수의 그리드 셀들(310, 311, 312, 313)로 분할된다. 여기서 4개의 그리드 셀들이 제공되지만, 2개 이상의 그리드 셀들만 제공될 수 있다. 각 방향의 그리드 셀들의 개수는 제한되지 않으나, 다른 바람직한 실시예에서, 이미지(300)는 수평 방향의 2개의 그리드 셀들과 수직 방향의 2개의 그리드 셀들로 분리되어 일반적인 Q×R 그리드 대신 2 x 2 그리드가 생성된다. 이 실시예는 손바닥, 얼굴 또는 아기 발과 같은 단일 객체들이 이미지에서 발견/식별되어야 하는 경우에 유리하다. 복수의 객체들이 식별되어야 하는 경우, Q=R=7 값들이 사용될 수도 있다.
다음 단계에서, 각 그리드 셀의 중심점(center point)(330)이 식별되고 그리고 임의의 다른 그리드 셀들과 분리된 그리드 셀들 각각에 대한 좌표계의 원점을 설정(establish)하는 데 사용된다. 이 중심점(330) 주위에, 그리드 셀(313) 내에서 볼 수 있듯이 초기 높이
Figure pct00054
및 너비 또는 폭(breadth)
Figure pct00055
을 가지는 곳에 일반적으로 직사각형의 형태를 가지는 적어도 하나의 바운딩 박스(331, 332)가 배열될 것이다. 그리드 셀 각각에 있는 복수의 바운딩 박스들에 대해 해당 값들은 상이할 수 있다. 예를 들어, 그리드 셀당(per) 가장 작은 바운딩 박스에 대해 초기 값들
Figure pct00056
Figure pct00057
가 취해질 수 있고, 그리고 그 값들은 그리드 셀 각각에 있는 다른 바운딩 박스들의 차원들을 계산하기 위해 1.5배 또는 2배 또는 다른 값만큼 증가될 수 있다.
바운딩 박스(331)의 위치, 예를 들어 그리드 셀 각각의 좌표계에서 바운딩 박스는 그리드 셀 각각에서 중심점(330)에 대한 바운딩 박스(331)의 중심점의 위치(즉 해당 좌표계의 원점)에 의해 나타난다. 이에 따라, 그리드 셀(311)에서 바운딩 박스 각각의 위치는 2개의 좌표들 x 및 y로 나타낼 수 있다. 바운딩 상자의 너비 및 높이는 0보다 큰 2개의 값들로 나타낼 수 있는 바운딩 박스의 기하학적 특성들을 나타내는 것으로 간주된다.
바운딩 박스들은 나중에 손바닥의 위치를 식별하는 데 사용되기 때문에, 또한 바운딩 박스들 각각과 식별될 손바닥 각각을 포함하는 바운딩 박스의 확률인 제 5 값을 연관시키는 것이 적절하다.
이에 따라 바운딩 박스 각각는 다음 형식의 5차원인 벡터로 나타낼 수 있다.
Figure pct00058
이것은 그리드 셀들이 그들의 바운딩 박스 각각과 함께 Q×R×B×A 차원들을 가지는 텐서 T의 형태로 표현될 수 있음을 의미하며, 여기서 A는 그리드 셀당 바운딩 박스들의 개수이다. Q 및 R의 값들이 본 발명에 따라 제한되지는 않지만, 몇몇 실시예들에서, 예를 들어 손바닥들, 얼굴 또는 눈들 또는 발바닥을 식별하는 경우 Q = R = 2 또는 Q = R = 7와 같은 값들, B = 5(벡터 b의 차원)가 선택될 수 있고 그리고 A는 3과 10 사이의 정수로 설정될 수 있으며 가장 바람직하게는 5이다.
위에서 설명된 바와 같이, 뉴럴 네트워크는 특정 객체, 바람직하게는 손바닥, 눈, 얼굴 또는 발바닥을 식별하기 위해 이미 완벽하게 학습되었다고 가정된다. 이것은 뉴럴 네트워크가 이러한 객체들 중 하나를 나타낼 가능성이 가장 높은 픽셀들의 특정 패턴을 식별할 수 있다는 것이 포함된다. 이것은 색상 값들의 특정 패턴이나 또는 스팟(spot)들의 밝기와 같은 기타 특성을 나타낼 수 있다. 그러나, 이미지(300)는 사이즈 및 배열이 뉴럴 네트워크 학습에 사용된 손바닥 또는 다른 객체들과 대응하지 않을 수도 있는 손바닥(또는 다른 객체)을 임의로 표시할 수도 있다는 것은 자명하다.
다만, 바운딩 박스들과 그리드의 도움으로 뉴럴 네트워크는 객체 각각을 구성할 가능성이 가장 높을 것인 특정 바운딩 박스를 식별할 수 있다. 이 특정 바운딩 박스를 식별하기 위해 뉴럴 네트워크(또는 이미지(300)을 처리하는 관련 구성 요소)는 각 그리드 셀의 각 바운딩 박스 내의 픽셀들의 값들을 뉴럴 네트워크에 의해 이전에 학습된 바와 같이 객체에 대응하는 픽셀들의 패턴과 비교한다. 이러한 제 1 단계에서 완벽한 매칭을 찾을 가능성은 거의 없을 것이지만, 다른 바운딩 박스들보다 이미 객체의 적어도 일부를 좀더 포함할 것 같은 바운딩 박스가 있을 것이다.
예를 들어, 도 5에 도시된 경우에, 그리드 셀(313)의 점 M 주위에 중심을 둔 바운딩 박스(341)는 손바닥(350)의 일부를 포함한다. 이와 대조적으로, 그리드 셀들(310,311,312) 중 어느 것도 손바닥의 일부를 포함하는 바운딩 박스들을 포함한다. 방법이 잠재적으로 바운딩 박스(340) 및 바운딩 박스(341) 내의 픽셀 값들을 계속 평가하는 경우, 프로세스는 바운딩 박스(341)가 바운딩 박스(340)보다 손바닥에 대응하는 패턴을 훨씬 더 포함한다고 결정할 수 있다.
이러한 관점에서, 방법은 바운딩 박스들(331 및 332)(및 잠재적으로 다른 그리드 셀들의 다른 바운딩 박스들) 중 어느 것도 손바닥을 포함하지 않으며, 대응하는 B-벡터에서 확률 값을 0으로 설정할 수 있다는 결론을 내릴 수 있다.
포인트 M을 중심으로(as centered around) 바운딩 박스들(340, 341) 둘 다는 손바닥의 적어도 일부를 포함하기 때문에, 그들은 실제로 손바닥을 포함할 가능성이 있는 것으로 간주될 수도 있으며 확률값은 제 1 단계에서 0보다 클 것이다.
더 작은 그리드 셀(340)은 손바닥에 대응할 수 있는 패턴으로 거의 완전히 채워져 있지만, 더 큰 바운딩 박스(341)의 왼쪽 경계(border)만 프로세스에 의해 손바닥에 대응하는 패턴을 포함하는 것으로 간주될 수도 있다.
이것으로, 본 방법은 각각의 바운딩 박스들(341, 340) 내에서 식별된 패턴과 실제로 손바닥과 대응하는 학습에서 획득된 패턴 사이의 차이를 결정하는 손실 함수(loss function)를 계속 계산할 수도 있다.
다음 단계에서, 방법은 바운딩 박스들 각각의 사이즈와 위치를 수정하여 이 차이를 최소화하려고 시도할 것이다. 이와 관련하여 학습된 패턴에 대한 차이를 최소화하기 위해 더 작은 바운딩 박스(340)가 시작점(starting point)으로 사용되며 그것의 위치들 및 사이즈가 수정되거나, 또는 더 큰 바운딩 박스(341)가 시작점으로 사용되며 그것의 위치 및 형태들이 수정되는 것이 예상될(envisage) 수 있다.
이 최소화 프로세스는 각 그리드 셀의 중심점 M 주위에 도 3에 도시된 바와 같이 먼저 x축을 따라서 그리고 그 다음에 y축을 따라서(또는 그 반대로) 수직 방향(orthogonal direction)들로 소량 이동시켜 바운딩 박스의 위치를 수정하는 것을 포함할 수 있다(이하에서는 바운딩 박스(341)가 추가적인 계산들에 사용된다고 가정될 것임).
이동은 양(positive) 및 음(negative)의 x축 및 y축을 따라 이루어질 것이며, 각 위치에서 학습으로 획득된 패턴과 이미지 내에서 식별된 실제 패턴 간의 차이 함수(difference function)를 결정하기 위해 비교가 이루어질 것이다. 이것은 좌표들에 따라 차이 d(x,y)를 나타내는 2차원 함수를 계산하도록 허용한다.
이것을 기반으로, 좌표계에서 바운딩 박스가 학습된 패턴과의 매칭을 증가시키고 바람직하게는 (함수 d(x,y)의 값 최소화에 대응하여) 최대화하기(maximize) 위해 이동되어야 하는 방향을 결정할 수 있도록 허용하는 기울기(gradient)
Figure pct00059
가 계산될 수 있다. 이것은
Figure pct00060
의 경우일 것이다.
이것은 바운딩 박스가 방향 r을 따라 함수 d(x,y)가 최소값을 갖는 새로운 중심점 M'으로 이동되는 것을 초래한다. 다음 단계에서, 위치 M'에 있는 각 바운딩 박스의 사이즈는 한 방향 또는 두 방향들(즉, 높이 및/또는 너비)으로 사이즈를 늘리거나 또는 줄이는 것이 높이 h와 너비 b에 따라 e(h,b)로 표시될 수 있는 원래 패턴과 비교하여 추가적인 차이 함수의 값을 변경시키는지 여부를 결정하기 위해 증가되거나 또는 감소될 수 있다. 위치가 M'이고 높이가
Figure pct00061
이고 너비가
Figure pct00062
인 특정 바운딩 박스에 대해 학습된 패턴과의 차이가 최소화되도록 이 함수는 최소화된다.
이후에 바운딩 박스는 각각의 손바닥(또는 다른 객체)을 포함하는 이미지(300)의 부분들을 식별할 가능성 p가 가장 큰 최종 바운딩 박스로 사용될 것이다. 이 바운딩 박스에 대한 출력 벡터는 다음 형식을 가질 것이다.
Figure pct00063
이 프로세스의 결과로, 차원이 Q×R×B×A인 텐서 T가 출력되며, 여기서 각 그리드 셀 내의 바운딩 박스 각각에 대해 그리드 셀의 중심에 대한 x 및 y 위치뿐만 아니라 바운딩 박스 각각의 너비 및 높이, 그리고 손바닥을 포함하거나 또는 구성할 그것의 확률이 제공된다.
인접한 그리드 셀의 바운딩 박스들의 이동이 같은 방향으로 이동되어 서로 오버랩하는(overlap) 것을 방지하기(prevent) 위해 그리고 상이한 그리드 셀들의 바운딩 박스들이 다른 그리드 셀들로 이동하는 것을 방지하기 위해, 바운딩 박스의 중심 이동이 원래 그리드 셀 내에서만 가능하도록 본 방법이 제공될 수 있다.
이에 따라 결과는 복수의 벡터들 B를 포함하는 텐서가 될 것이며, 여기서 하나 이상의 벡터들은 손바닥을 식별할 높은 확률을 가지는 반면에(whereas) 다른 것들은 낮은 확률을 가진다. 낮은 확률을 가지는 것들은 대응하는 값들을 모두 0으로 설정하여 완전히 무시(neglect)될 수 있어, 그로 인해 텐서를 처리하는 데 필요한 처리 수고(processing effort)를 줄일 수 있다.
이후에 가장 높은 확률을 가진 벡터들 B가 특히 예를 들어 손바닥 주름(들)을 식별하기 위해 손바닥을 처리하여 모바일 디바이스의 사용자를 식별하기 위해 손바닥을 식별하는 이미지의 부분들 및 이미지의 추가적인 처리를 허용하기 위해 사용될 것이다.
위의 접근 방식은 손바닥 주름 또는 눈의 홍채 또는 발바닥의 발자국과 같이, 식별된 생체 특성을 추가로 처리하는 데 사용될 바운딩 박스를 적절하게 식별하도록 허용하지만, 제거(discard)되어야 하는 바운딩 박스들에 대한 추가적인 설명은 주어질 것이다.
위에서 설명된 바와 같이, 바운딩 박스의 벡터 b는 각각의 바운딩 박스가 손바닥을 포함하거나 나타낼 가능성을 나타내는 확률(probability) p를 포함한다. 이것은 가장 높은 확률값 p를 가지는 벡터들 b부터 시작하여 내림차순으로(in descending order) 모든 바운딩 박스들(또는 그들 각각의 벡터들)을 정렬(sort)하는 데 사용될 수 있다.
그렇게 하면, 가장 높은 값 p를 가지는 바운딩 박스부터 시작하여 내림차순으로 리스트(list)를 탐색할(traverse) 수 있다. 이 탐색은 리스트에서 값 p를 가지는 특정 바운딩 박스를 선택하는 것과 이 특정 바운딩 박스에 대해 나머지 모든 바운딩 박스들과의 교차량(amount of intersection)을 계산하는 것을 포함할 수 있다. 이것은 선택된 특정 바운딩 박스의 영역이 나머지 바운딩 박스의 영역과 비교되고, 그리고 그들이 공통으로 가지는(즉, 바운딩 박스들이 교차하는) 임의의 영역이 계산된 교차에 기여한다는 것을 의미한다.
교차량은 선택된 바운딩 박스의 영역에 대한 비율(ratio)로 계산될 수 있다. 그에 의해, 0(교차 없음) 내지 1(고려된 나머지 바운딩 박스가 선택된 바운딩 박스의 영역과 완전히 교차하거나(intersect) 또는 커버함) 범위를 가지는(range) 계산된 교차 각각에 대해 무차원 값(dimensionless value)이 획득된다.
다음 단계에서, 사전 설정된(preset) 임계값은 바운딩 박스를 무시하거나 또는 삭제하거나 또는 분류하기 위해 사용될 수 있다. 위의 예시에서 임계값은 0.75의 계산된 교차일 수도 있다. 그 교차가 이 임계값을 초과하는 나머지 바운딩 박스 및 선택된 바운딩 박스의 계산된 모든 페어(pair)에 대해서, 더 낮은 값 p를 가지는 바운딩 박스는 무시되거나 또는 위에서 언급한 리스트에서 정렬될 수 있다.
결국 이것은 손바닥을 나타낼 바운딩 박스가 하나만 남게 된다. 물론, 이것은 이미지에서 볼 수 있는 관련 객체 또는 생체 특성의 개수에 따라 다수의 바운딩 박스들이 남는 결과를 초래할 수 있다. 예를 들어, 이미지에 대응하는 손바닥들이 있는 두 손들이나 또는 두 눈이 존재하는 경우에 2개의 바운딩 박스들이 남을 것이다.
커널 K의 가중치들 및 도 4에 대해 설명된 가중치 α뿐만 아니라 실제로 손바닥(또는 다른 객체) 패턴들이 신경망에 의해 학습되도록, 설명과 도 6에서 뉴럴 네트워크가 바람직하게 학습될 수 있는 방법에 대해 주어질 것이다.
주어진 예시들 및 실시예들은 또한 위에서 언급된 바와 같은 다른 객체들에 대해 구현될 수 있다는 점에 유의한다.
도 6의 방법은 훈련 데이터(401) 및 사전 설정된 바운딩 박스(408)들의 제공(provision)으로 시작한다. 훈련 데이터는, 예를 들면, 하나의 이미지에 다른 객체들과 함께 도시된 사용자의 하나 또는 두 개의 발바닥, 또는 사용자의 하나 또는 두 개의 눈, 또는 손바닥들이 있는 손들의 복수의 이미지들로 구성될 수도 있다. 동일한 이미지로부터 훈련 데이터로 도입되는(introduce) 회전되거나, 하이라이트 되거나, 어둡게 되거나, 확대되거나 또는 기타 수정된 복사본들을 이용하여 이미지들은 곱해질 수도 있다. 아이템(408)에 따라 제공되는 바운딩 박스들은 훈련 데이터 내의 각 이미지에 대응하는 바운딩 박스들이며, 여기서 바운딩 박스들은 식별될 객체와 올바르게 연관되는(즉, 도 5와 관련하여 설명된 바와 같이, 대응하는 확률 값 및 정답(correct) 사이즈 및 정답 포지션을 가지는) 바운딩 박스들이다. 이러한 바운딩 박스들은 훈련 데이터 내의 모든 이미지 및 각각에 대해 제공된다.
다음 단계에서, 하나의 특정 입력 이미지(402)는 최적화부(optimizer)(407) 및 손실 함수 계산기(loss function calculator)(406)가 뉴럴 네트워크에 추가적으로 제공되는 훈련 환경에서 뉴럴 네트워크에 제공된다.
입력 이미지는 제 1 라운드(round)에서 DCBR로 요약되는 제 1 정류 선형 유닛(403)뿐만 아니라 깊이별 컨볼루션 레이어 및 제 1 배치 노멀라이저를 사용하여 처리되고, 그리고 이후에 PCBR로 요약되는 제 2 정류 선형 유닛 및 제 2 배치 노멀라이저 및 포인트별 컨볼루션 레이어로 전달되며, 여기서 그들은 도 4에서 주어진 설명에 따라 처리된다. 이것은 도 6에 도시된 단계들 또는 섹션들(403 및 404)이 섹션(403 및 404) 각각에서 깊이별 컨볼루션 레이어(DC)의 커널 K 및 포인트별 컨볼루션 레이어(PC)에 대해 대응하는 가중치들을 사용하여 도 4를 참조하여 설명된 바와 같이 바람직하게는 13번 실행됨을 의미한다. 제 1 및 제 2 배치 노멀라이저들뿐만 아니라 아이템들(403 및 404)의 정류 선형 유닛들은 도 5와 관련하여 위에서 설명한 방식으로 작동한다.
결과적으로 도 5와 같이, 출력은 도 5의 제 1 엔트리들
Figure pct00064
가 있는 Q×R×B×A 크기의 제 1 텐서 T가 될 것이다. 이후에 이 결과는 결과(405)와 바운딩 박스(408)에서 획득된 정답 바운딩 박스들 간의 차이들을 식별하기 위해 사전 설정된 바운딩 박스들과 비교되는 손실 함수에 제공된다. 이후에 손실 함수(406)에 의해 획득된 차이는 차례로 각 포인트별 컨볼루션 레이어 및 각 깊이별 컨볼루션 레이어의 가중치(즉 커널 K 내의 엔트리들 및 α)를 수정할 것인 최적화부(407)에 제공된다. 이것은 한번에(at once) 네트워크 내의 모든 레이어들 각각에 대해 또는 개별적으로 레이어 각각에 대해, 포인트별 컨볼루션 레이어의 가중치 α와 깊이별 컨볼루션 레이어의 커널 K에 있는 엔트리들이 조작(manipulate)됨을 의미한다.
그 새로운 값들을 사용하여, 매우 동일한 이미지에 대해 사이클이 반복되고, 엔트리들
Figure pct00065
을 가지는 결과 텐서 T'가 손실 함수에 제공되고, 그리고 정답 바운딩 박스와 비교되어 그 결과는 다시 한번 가중치를 수정하는 최적화부(407)에 제공된다.
이 절차는 특히 사전 정의된(predefined) 바운딩 박스의 아이템(408)과 비교하여 식별된 바운딩 박스들과 결과 텐서
Figure pct00066
간의 차이가 본질적으로(in essence) 의도되는 식별 정확도에 대응하는 주어진 임계값을 초과하는 한 수행된다.
그 후에, 다음 입력 이미지(402)는 훈련 데이터(401)로부터 취해지며 대응하는 바운딩 박스들은 손실 함수에 제공된다. 이후에, 새로운 이미지에 대해 설명된 프로세스를 다시 반복하여 포인트별 컨볼루션 레이어와 깊이별 컨볼루션 레이어에 대한 최적의 가중치들이 획득된다. 이것은 가중치의 특정 조합이 모든 입력 이미지들에 대해 적절한 식별 정확도를 초래하는 경우까지 반복된다. 이후에 획득되는 가중치들의 조합은 최종 가중치(410)들로 출력된다.
이후에 최종 가중치들은 모바일 디바이스에서 본 발명의 방법을 실행하는 애플리케이션에 도입된다.
따라서, 본 발명의 컨셉에서, 모바일 디바이스에 제공되는 뉴럴 네트워크는 손바닥, 눈 또는 얼굴 또는 발바닥과 같이 생체 특성을 갖는 특정 객체의 식별에 대해 이미 완전히 적응되어 있으며, 이에 따라 필요한 임의의 추가적인 학습 없이 사용할 수 있어 모바일 디바이스들에 필요한 컴퓨터 리소스들을 추가로 감소시킨다.
전체적으로, 포인트별 컨볼루션 레이어들, 깊이별 컨볼루션 레이어들 및 배치 노멀라이저들뿐만 아니라 도 3 및 도 4를 참조하여 위에서 설명한 대로 정류 선형 유닛을 이용함으로써, 그리고 도 3의 설명에 따라 대응하는 바운딩 박스들을 식별하고 그리드 셀들로 분할된 원본 이미지를 이용함으로써, 1 메가바이트(megabyte)보다 작은 애플리케이션을 제공할 수 있으며, 이에 따라 인터넷 등을 통해 추가 데이터 소스(data source)들에 임의로 액세스하지 않고도 독립적인(in isolation) 모바일 디바이스에서 사용하도록 허용할 수 있다. 이는 그것을 무선 네트워크들 등에 액세스할 가능성이 없는 환경들에서의 애플리케이션에 적합하도록 만든다. 추가적으로, 이 애플리케이션을 실행하는 데 필요한 프로세서 파워는 최소한으로 감소시키면서 나중에 개체들 각각과 관련된 생체 특성들에 의해 사용자 식별을 수행하는 데 사용할 수 있는 지금까지 논의된 객체들의 적절한 식별 결과들을 산출(yield)한다.
위의 설명들은 손바닥을 가지는 손의 일면(side)을 보여주는 손 이미지들에 중점을 두고 있다. 다만, 사용자는 실수로 또는 의도적으로 손등(backhand)을 광학 센서에 제시할 수도 있다. 이러한 손의 이미지에서 손바닥은 보이지 않기 때문에 추출될 수 없다.
손바닥이 아닌 손톱이나 또는 손가락 관절들 및 손등을 보여주는 손의 이미지와 각각 손바닥 주름들이 있는 손바닥을 가지는 손의 이미지를 구분하도록, 위에서 설명된 방법들을 확장할 수 있는 다음의 절차는 식별 정확도를 높이기 위해 사용될 수 있다.
위의 예시들에서, 바운딩 상자는 다음 벡터에 의해 특성화(characterize)되었고,
Figure pct00067
그리고 훈련은 오직 손바닥을 가지는 손의 일면을 보이는 손들의 이미지들을 사용하여 수행되었다.
손들의 양면에서 이미지들을 촬영하도록 허용하는 경우(즉, 손바닥이 있는 일면과 손톱이나 손가락 관절들 또는 손등이 있는 일면), 이미지들에서 식별되는 2가지 클래스(class)의 객체들, 즉 손바닥 주름들이 있는 손바닥들을 보여주는 손들을 구성하는 객체들 및 손등을 보여주는 손들을 구성하는 객체들을 고려하는 것이 유리하다.
이 경우에, 위에서 언급된 벡터는 하나의 차원 c에 의해 다음과 같이 확장될 수도 있다.
Figure pct00068
여기서 c는 소위 클래스를 나타낸다. 제 1 클래스는 양성 식별(positive identification)(적어도 하나의 손바닥 주름이 있는 손바닥이 식별됨)을 나타낼 수도 있고 그리고 제 2 클래스는 음성 식별(negative identification)(손은 뒷면/뒷손을 나타냄)을 나타낼 수도 있다. 클래스는 예를 들어, 양성 식별에 대해 1로, 음성 식별에 대해 0으로 값들로 표시될 수도 있다. 벡터 b의 나머지 값들과 달리 클래스는 이산 값(discrete value)이고, 클래스들의 개수에 대응하는 제한된 수의 다른 값들만 취할 수 있음이 자명하다.
이후에 위에서 언급한 훈련은 이미지들을 제 1 클래스 또는 제 2 클래스 중 어디에 속하는지 구별할 수 있도록 뉴럴 네트워크에 양 및 음성 식별이 제공되는 방식(바운딩 박스(408)들 및 손바닥 주름들을 가지는 손바닥이 있는 이미지들을 나타내는 오직 훈련 데이터 대신에)으로 수행될 수도 있다. 이러한 맥락에서 손바닥이 아닌 것도 보여주는 손들의 복수의 이미지들을 상상할 수 있다. 이러한 모든 "객체"는 제 2 클래스(즉, 음성 식별)로 분류되어 뉴럴 네트워크는 손바닥을 가지는 손들의 이미지들을 손들의 “다른 것”에 대한 이미지와 구별하도록 훈련된다. 물론 훈련을 위해 제공된 바운딩 박스는 네트워크를 적절하게 훈련하도록 허용하기 위해 정답 클래스 c도 포함한다.
손바닥 주름들을 가지는 이미지의 모든 손바닥들을 식별하기 위해, 위에 설명된 프로세스는 손의 위치를 나타내고 제 2 클래스(즉, 음성 식별)에 속하는 것으로 간주되는 모든 바운딩 박스들을 무시하여, 그에 따라 생체 특성(이 경우 손바닥 주름)을 나타내지 않는 손들의 이미지들의 일부 또는 이미지들의 추가적인 처리를 방지한다.
위의 컨셉은 지금까지 언급된 다른 모든 객체에 적용될 수 있음이 자명하며, 여기서 클래스들은 의도된 생체 특성(예: 눈의 홍채 또는 얼굴의 눈들 또는 코 또는 입)을 나타내는 제 1 클래스 및 각각의 생체 특성을 나타내지 않는 제 2 클래스로 구분된다.
본 발명의 방법이 수행될 수 있는 맥락을 제공하기 위해, 도 7은 본 발명의 일 실시예에 따른 스마트폰 형태의 모바일 디바이스를 도시한다.
모바일 디바이스(500)는 현재 알려진 바와 같이 스마트폰으로 구현된다. 그것은 바람직하게 디스플레이(530)가 제공되는 모바일 디바이스(500)의 일면에 반대인(opposite) 후면(backside) 상의 카메라인 광학 센서(520)를 포함한다. 카메라는 1MP, 2MP 또는 그 이상의 해상도를 가지는 카메라, 예를 들어 HD 카메라일 수 있다. 그것은 필요하지는 않지만 손전등과 함께 제공될 수 있다. 그것은 또한 감소된 해상도로 실시간 이미지들을 촬영하도록 적응될 수 있고, 일단 카메라가 활성화되는 경우, 디스플레이(530)는 카메라가 실제로 "보는" 것의 표현(representation)을 나타낼 수도 있다. 이것은 예를 들어 손(510)일 수 있다.
본 발명의 일 실시예에서, 본 발명의 방법이 촬영된 이미지에 대해 일단 수행되는 경우, 손바닥을 식별하는 바운딩 박스(511)가 디스플레이(530)에 표시된 손의 이미지 위에 증강(augment)된다. 위에서 추가로 설명된 바와 같이, 식별된 바운딩 박스 또는 바운딩 박스들은 예를 들어, 손바닥과 관련된 손바닥 주름들을 식별하여 사용자가 식별되도록 손바닥에 대응하는 이미지의 부분들을 처리하기 위해, 디스플레이될 필요가 없지만 모바일 디바이스 내부에서 추가적으로 처리될 수 있다. 물론 이것은 위에서 언급한 임의의 다른 객체 및 생체 특성에 적용될 수 있다.

Claims (15)

  1. 사용자의 생체 특성(biometric characteristic)을 가지는 상기 사용자의 객체(object) - 상기 객체는 상기 사용자의 손바닥(palm of the hand), 상기 사용자의 얼굴, 상기 사용자의 눈, 상기 사용자의 발의 바닥(bottom of a foot) 중 하나임 - 의 이미지(image) 사용하여 상기 사용자를 식별하는 방법으로서, 상기 방법은:
    모바일 디바이스(mobile device)의 광학 센서(optical sensor)에 의해 상기 객체의 상기 이미지를 획득하는 단계;
    뉴럴 네트워크(neural network)에 상기 이미지를 제공하는 단계;
    상기 이미지 내의 상기 객체 및 상기 객체의 상기 위치를 식별하도록 상기 뉴럴 네트워크에 의해 상기 이미지를 처리하는(process) 단계;
    식별된 상기 객체로부터 상기 생체 특성을 추출하는 단계;
    상기 생체 특성을 저장 디바이스(storage device)에 저장하는 단계 및/또는 상기 생체 특성이 상기 사용자를 식별하는지 여부를 결정하기 위해 상기 입력을 처리하는 단계를 포함하는, 적어도 상기 생체 특성을 식별 수단(identification mean)들에 대한 입력(input)으로 제공하는 단계;
    를 포함하는,
    사용자를 식별하는 방법.
  2. 제 1 항에 있어서,
    상기 객체는 상기 사용자의 상기 손바닥이며 상기 생체 특성은 적어도 하나의 손바닥 주름(palmar crease)이고, 상기 식별 수단들에 의해 상기 입력을 처리하는 단계는, 상기 손바닥 주름으로부터 예를 들어, 상기 손바닥 주름의 위치 또는 상기 길이와 같은 생체 특징(biometric feature)을 추출하는 단계, 및 상기 추출된 생체 특징을 저장 디바이스에 저장된 생체 특징과 비교하는 단계를 포함하고, 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값(threshold)보다 낮은(below) 경우, 상기 식별 수단들은 상기 손바닥 주름으로 상기 사용자가 식별됨을 결정하고, 그리고 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 높은(above) 경우, 상기 식별 수단들은 상기 손바닥 주름으로 상기 사용자가 식별되지 않음을 결정하거나; 또는
    상기 객체는 상기 사용자의 상기 얼굴이며 상기 생체 특성은 상기 얼굴 내에 상기 사용자의 코, 입, 적어도 하나의 눈이고, 상기 생체 수단들에 의해 상기 입력을 처리하는 단계는, 상기 생체 특성으로부터 예를 들어, 상기 얼굴 내의 상기 입의 상기 위치와 같은 생체 특징을 추출하는 단계, 및 상기 추출된 생체 특징을 저장 디바이스에 저장된 생체 특징과 비교하는 단계를 포함하고, 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 낮은 경우, 상기 식별 수단들은 상기 생체 특성으로 상기 사용자가 식별됨을 결정하고, 그리고 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 높은 경우, 상기 식별 수단들은 상기 생체 특성으로 상기 사용자가 식별되지 않음을 결정하거나; 또는
    상기 객체는 상기 사용자의 상기 눈이며 상기 생체 특성은 상기 사용자의 상기 눈의 홍채(iris)이고, 상기 생체 수단들에 의해 상기 입력을 처리하는 단계는, 상기 홍채로부터 예를 들어, 상기 홍채의 색소 패턴(pigment pattern)을 와 같은 생체 특징을 추출하는 단계, 및 상기 추출된 생체 특징을 저장 디바이스에 저장된 생체 특징과 비교하는 단계를 포함하고, 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 낮은 경우, 상기 식별 수단들은 상기 홍채로 상기 사용자가 식별됨을 결정하고, 그리고 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 높은 경우, 상기 식별 수단들은 상기 홍채로 상기 사용자가 식별되지 않음을 결정하거나; 또는
    상기 객체는 상기 사용자의 상기 발의 바닥이며 상기 생체 특성은 상기 발의 발자국(footprint)이고, 상기 식별 수단들에 의해 상기 입력을 처리하는 단계는, 상기 발의 바닥으로부터 예를 들어 상기 발자국의 라인(line)의 위치 또는 길이와 같은 생체 특징을 추출하는 단계, 및 상기 추출된 생체 특징을 저장 디바이스에 저장된 생체 특징과 비교하는 단계를 포함하고, 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 낮은 경우, 상기 식별 수단들은 상기 발바닥으로 상기 사용자가 식별됨을 결정하고, 그리고 상기 추출된 생체 특징과 상기 저장된 생체 특징 간의 차이가 임계값보다 높은 경우, 상기 식별 수단들은 상기 발바닥으로 상기 사용자가 식별되지 않음을 결정하는,
    사용자를 식별하는 방법.
  3. 제 2 항에 있어서,
    제 1 및/또는 제 3 및/또는 제 4 대안으로, 상기 이미지는 하나 이상의 객체를 포함하고, 상기 방법은,
    상기 이미지 내 생체 특성 각각의 상기 위치를 식별하는 단계; 및
    상기 식별 수단들에 의해 상기 사용자 식별을 위한 생체 특성 각각의 상기 생체 특징을 사용하는 단계;
    를 더 포함하는,
    사용자를 식별하는 방법.
  4. 제 3 항에 있어서,
    상기 식별 수단들은,
    상기 이미지 내에 모든 객체들의 상기 생체 특징들의 조합된 식별 정확도(combined identification accuracy)가 주어진 임계값보다 높은 것으로 결정하여, 사용자가 상기 객체들의 상기 생체 특징들에 의해 식별됨을 결정하거나; 또는
    객체 각각에 대해 상기 객체의 상기 생체 특성의 생체 특징과 상기 객체의 상기 생체 특성의 저장된 생체 특징의 차이가 임계값보다 아래인지 여부를 결정하고, 그리고 결정된 모든 차이들이 대응하는 상기 임계값보다 아래인 경우에만 상기 객체들의 상기 생체 특성들에 의해 상기 사용자가 식별되는 것으로 결정하여, 사용자가 상기 객체들의 상기 생체 특징들에 의해 식별됨을 결정하는,
    사용자를 식별하는 방법.
  5. 제 1 항에 있어서,
    상기 이미지는 상기 모바일 디바이스의 광학 센서로서 카메라에 의해 획득되는,
    사용자를 식별하는 방법.
  6. 제 1 항에 있어서,
    상기 뉴럴 네트워크에 의해 입력으로서 상기 이미지를 처리하는 단계는,
    상기 뉴럴 네트워크의 제 1 레이어(layer)에 의해 제 1 중간 출력(intermediate output)을 생성하기 위해 상기 입력을 처리하는 단계; 및
    후속 레이어 각각에 의해 상기 이전 레이어(preceding layer)의 상기 출력을 처리하는 단계;
    를 포함하고, 그리고
    상기 뉴럴 네트워크는 복수의 레이어(layer)들을 포함하며, 깊이별 분리 가능한 컨볼루션(depthwise separable convolution)인 레이어 각각은 상기 레이어 내에 상기 입력의 상기 처리 순서대로 깊이별 컨볼루션 레이어, 제 1 배치 노멀라이저(batch normalizer), 제 1 정류 선형 유닛(rectified linear unit), 포인트별(pointwise) 컨벌루션 레이어, 제 2 배치 노멀라이저 및 제 2 정류 선형 유닛을 포함하고,
    상기 복수의 레이어들을 이용하여 상기 입력을 처리하여, 상기 뉴럴 네트워크는 상기 이미지 내의 상기 객체의 상기 위치 및 상기 객체의 식별을 출력으로 획득하는,
    사용자를 식별하는 방법.
  7. 제 1 항에 있어서,
    상기 객체의 상기 위치를 식별하는 단계는, 상기 이미지를
    Figure pct00069
    그리드 셀(grid cell)들을 포함하는 그리드로 분할하는(separate) 단계;를 포함하고,
    적어도 하나의 바운딩 박스(bounding box)는 그리드 셀 각각 내에 생성되며, 상기 바운딩 박스는 사전 결정된 기하학 특성(predetermined geometrical characteristic)들 및 상기 그리드 셀 내 사전 결정된 위치(predetermined position)를 가지고,
    상기 출력을 생성하는 단계는, 결과 바운딩 박스(resulting bounding box)를 획득하기 위해 상기 바운딩 박스의 상기 기하학 특성들 및 상기 위치들을 수정하는(modify) 단계;를 더 포함하고,
    상기 결과 바운딩 박스는 상기 객체의 상기 위치와 가장 가깝게 매칭되는 결과 기하학 특성들 및 결과 위치를 가지는 상기 바운딩 박스인,
    사용자를 식별하는 방법.
  8. 제 7 항에 있어서,
    상기 바운딩 박스의 상기 위치는 2차원(two dimensions) 내에 상기 그리드 셀의 중심에 상대적으로(relative to) 계산되고, 상기 바운딩 박스의 상기 기하학 특성들은 상기 바운딩 박스의 너비(width) 및 높이(height)를 포함하고, 그리고
    추가적으로 상기 바운딩 박스 내에 상기 객체가 있을 확률(probability)은 바운딩 박스 각각과 연관되는,
    사용자를 식별하는 방법.
  9. 제 8 항에 있어서,
    상기 객체의 상기 위치를 식별하는 상기 바운딩 박스들 및 상기 이미지를 디스플레이 하는(display) 단계;
    를 더 포함하는,
    사용자를 식별하는 방법.
  10. 제 6 항에 있어서,
    상기 뉴럴 네트워크에 의해 상기 이미지를 처리하는 단계는,
    상기 이미지 내에 픽셀(pixel) 각각에 대한 컬러 값(color value)을 나타내는 적어도 하나의 행렬(matrix) I을 상기 이미지로부터 생성하는 단계; 및
    상기 뉴럴 네트워크에 대한 입력으로 상기 행렬에 제공하는 단계;
    를 포함하고, 그리고
    상기 이미지는
    Figure pct00070
    픽셀들을 포함하고, 상기 행렬 I은
    Figure pct00071
    값들을 포함하는 행렬이고, 상기 행렬 I의 상기 엔트리(entry)들은
    Figure pct00072
    로 주어지며, i 및 j는 정수들이고,
    Figure pct00073
    이고,
    Figure pct00074
    인,
    사용자를 식별하는 방법.
  11. 제 10 항에 있어서,
    깊이별 컨볼루션 레이어 각각은 사전 결정된 커널(kernel) K - 상기 커널 K는
    Figure pct00075
    엔트리들을 포함하는
    Figure pct00076
    Figure pct00077
    사이즈의 행렬임 - 를 상기 행렬 I에 적용시키고,
    상기 행렬에 상기 커널을 적용시키는 단계는,
    행렬 Z의
    Figure pct00078
    사이즈의 각각 축소된(reduce) 행렬 R과의 상기 행렬 K의 상기 내적(inner product)을 계산하는 단계;
    를 포함하고, 그리고
    상기 행렬 R은 상기 커널 K와 동일한 사이즈를 가지고,
    상기 행렬 Z는
    Figure pct00079
    사이즈를 가지며
    Figure pct00080
    인 상기 행렬
    Figure pct00081
    의 상기 엔트리들은 하기와 같이 주어지고,
    Figure pct00082

    행렬 P를 출력으로 제공하며, 상기 행렬 P는
    Figure pct00083
    의 상기 사이즈를 가지고,
    Figure pct00084
    Figure pct00085
    는 상기 스트라이드 너비(stride width)을 정의하고, 상기 행렬 P의 엔트리
    Figure pct00086
    각각은 상기 커널 K와의 상기 ij번째 감소된 행렬 R의 상기 내적의 상기 값이고, 상기 행렬 P는 깊이별 컨벌루션 레이어에 의해 상기 제 1 배치 노멀라이저에 대한 출력으로 제공되는,
    사용자를 식별하는 방법.
  12. 제 11 항에 있어서,
    상기 커널의 S 및 T의 상기 사이즈는,
    모든 깊이별 컨볼루션 레이어들에 대해 동일하거나, 또는
    적어도 하나의 깊이별 컨볼루션 레이어 및/또는 상기 커널 K 내의 상기 엔트리들 중 적어도 하나와 상이한
    Figure pct00087
    ,
    사용자를 식별하는 방법.
  13. 제 10 항에 있어서,
    상기 배치 노멀라이저는 정규화 축소된(normalized reduced) 행렬 P'를 상기 정류 선형 유닛에 제공하고, 상기 정류 선형 유닛은 정류 함수(rectification function)를 엔트리
    Figure pct00088
    각각에 적용하고, 그리고
    상기 정류 함수는 하기와 같이 엔트리들을 가지는 새로운 행렬
    Figure pct00089
    를 계산하고, 그리고
    Figure pct00090

    상기 행렬
    Figure pct00091
    는 상기 정류 선형 유닛이 상기 제 1 정류 선형 유닛인 경우 상기 포인트별 컨볼루션 레이어에 출력으로 제공되거나, 또는 상기 정류 선형 유닛이 상기 제 2 정류 선형 유닛인 경우 상기 뉴럴 네트워크의 상기 다음 레이어의 출력으로 제공되고; 그리고/또는
    상기 포인트별 컨볼루션 레이어는 상기 행렬 I, P, P' 또는
    Figure pct00092
    의 각각 엔트리에 가중치 α를 곱하여(multiply) 상기 이전 레이어(preceding layer)로부터 수신된 상기 행렬 I, P, P' 또는
    Figure pct00093
    에 상기 가중치 α를 적용시키는,
    사용자를 식별하는 방법.
  14. 제 1 항에 있어서,
    상기 방법의 각 단계는 상기 모바일 디바이스에서 수행되는,
    사용자를 식별하는 방법.
  15. 모바일 디바이스로서, 상기 모바일 디바이스는 시각 센서, 프로세서 및 실행가능한 명령들을 저장한 저장 유닛을 포함하고, 상기 명령들이 상기 모바일 디바이스의 상기 프로세서에 의해 실행되는 경우, 상기 프로세서에서 제 1 항 내지 제 14 항의 어느 한 항의 방법을 실행하도록 하는,
    모바일 디바이스.
KR1020217026927A 2019-01-24 2020-01-22 사용자의 생체 특성을 가지는 이미지 내에서 객체를 식별하여 사용자를 식별하는 방법 및 그 방법을 실행하는 모바일 디바이스(Method for verifying the identify of a user by identifying an object within an image that has a biometric characteristic of the user and mobile device for executing the method) KR20210119487A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19153461.9 2019-01-24
EP19153461.9A EP3686771A1 (en) 2019-01-24 2019-01-24 Method for verifying the identify of a user by identifying an object within an image that has a biometric characteristic of the user and mobile device for executing the method
PCT/IB2020/050494 WO2020152599A1 (en) 2019-01-24 2020-01-22 Method for verifying the identity of a user by identifying an object within an image that has a biometric characteristic of the user and mobile device for executing the method

Publications (1)

Publication Number Publication Date
KR20210119487A true KR20210119487A (ko) 2021-10-05

Family

ID=65228433

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217026927A KR20210119487A (ko) 2019-01-24 2020-01-22 사용자의 생체 특성을 가지는 이미지 내에서 객체를 식별하여 사용자를 식별하는 방법 및 그 방법을 실행하는 모바일 디바이스(Method for verifying the identify of a user by identifying an object within an image that has a biometric characteristic of the user and mobile device for executing the method)

Country Status (8)

Country Link
US (2) US11875597B2 (ko)
EP (1) EP3686771A1 (ko)
JP (1) JP7270304B2 (ko)
KR (1) KR20210119487A (ko)
BR (1) BR112021014579A2 (ko)
MX (1) MX2021008676A (ko)
WO (1) WO2020152599A1 (ko)
ZA (1) ZA202104984B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112183408B (zh) * 2020-09-30 2023-09-29 重庆天智慧启科技有限公司 基于案场图像的客户画像系统及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10339362B2 (en) * 2016-12-08 2019-07-02 Veridium Ip Limited Systems and methods for performing fingerprint based user authentication using imagery captured using mobile devices
US11341222B1 (en) * 2018-08-21 2022-05-24 Smart Eye Technology, Inc. System and method for securely viewing, editing and sharing documents and other information
US10726302B2 (en) * 2018-11-29 2020-07-28 Qualcomm Incorporated Edge computing
WO2021048777A1 (en) * 2019-09-12 2021-03-18 Identy Inc. A method for obtaining data from an image of an object of a user that has a biometric characteristic of the user

Also Published As

Publication number Publication date
US20220114808A1 (en) 2022-04-14
JP7270304B2 (ja) 2023-05-10
US20230394870A1 (en) 2023-12-07
MX2021008676A (es) 2021-10-13
BR112021014579A2 (pt) 2021-10-05
US11875597B2 (en) 2024-01-16
JP2022518036A (ja) 2022-03-11
WO2020152599A1 (en) 2020-07-30
EP3686771A1 (en) 2020-07-29
ZA202104984B (en) 2022-09-28

Similar Documents

Publication Publication Date Title
KR102554724B1 (ko) 이미지 내 객체를 식별하기 위한 방법 및 상기 방법을 실행하기 위한 모바일 디바이스
US11657525B2 (en) Extracting information from images
US11941918B2 (en) Extracting information from images
JP7286010B2 (ja) 人体属性の認識方法、装置、電子機器及びコンピュータプログラム
CN105912126B (zh) 一种手势运动映射到界面的增益自适应调整方法
US20230394870A1 (en) Method for verifying the identity of a user by identifying an object within an image that has a biometric characteristic of the user and mobile device for executing the method
US20230394871A1 (en) Method for verifying the identity of a user by identifying an object within an image that has a biometric characteristic of the user and separating a portion of the image comprising the biometric characteristic from other portions of the image
US20220383663A1 (en) Method for obtaining data from an image of an object of a user that has a biometric characteristic of the user
JP6789676B2 (ja) 画像処理装置、画像処理方法およびプログラム
Harini et al. A novel static and dynamic hand gesture recognition using self organizing map with deep convolutional neural network

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal