KR20170012287A - 효율적인 포레스트 감지 기반의 눈 트래킹 - Google Patents

효율적인 포레스트 감지 기반의 눈 트래킹 Download PDF

Info

Publication number
KR20170012287A
KR20170012287A KR1020167033886A KR20167033886A KR20170012287A KR 20170012287 A KR20170012287 A KR 20170012287A KR 1020167033886 A KR1020167033886 A KR 1020167033886A KR 20167033886 A KR20167033886 A KR 20167033886A KR 20170012287 A KR20170012287 A KR 20170012287A
Authority
KR
South Korea
Prior art keywords
eye
tracking
image
sub
face
Prior art date
Application number
KR1020167033886A
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 KR20170012287A publication Critical patent/KR20170012287A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • G06K9/0061
    • G06K9/00604
    • G06K9/00617
    • G06K9/00624
    • G06K9/46
    • G06K9/4609
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/467Encoded features or binary features, e.g. local binary patterns [LBP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • 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/19Sensors therefor
    • 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
    • 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/197Matching; Classification
    • G06K2009/4666

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)
  • Ophthalmology & Optometry (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)
  • Eye Examination Apparatus (AREA)

Abstract

신규한 눈 트래킹 방법론들을 위한 방법들, 시스템들, 컴퓨터 판독가능 매체들, 및 장치들이 제시된다. 구체적으로, 시야 (FOV) 내에서의 사람의 눈들의 초기 결정 후에, 본 개시들의 방법들은 심지어는 얼굴의 일부가 가려진 채로도 사람의 눈들을 트래킹할 수도 있고, 사람의 눈들이 FOV 를 벗어나더라도 눈들을 신속하게 재-획득할 수도 있다. 신규한 방법론으로 인한 눈 트래킹의 보다 빠른 레이트로 각각의 눈이 개별적으로 트래킹될 수도 있고, 심지어는 낮은 이미지 해상도 및/또는 품질에서도 성공적인 눈 트래킹이 가능하다. 일부 실시형태들에서, 본 개시들의 눈 트래킹 방법론은 일련의 서브-트래커 기법들을 포함하되, 각각은, 결합될 때, 다음의 이미지 프레임에서 눈이 이동한 곳의 최고-신뢰도의 위치를 생성하는, 상이한 눈-트래킹 기능들을 수행한다.

Description

효율적인 포레스트 감지 기반의 눈 트래킹{EFFICIENT FOREST SENSING BASED EYE TRACKING}
본 개시의 실시형태들은 눈 트래킹 (eye tracking) 에 관한 것이다. 보다 구체적으로, 본 개시의 양태들은 에너지 및 시간 양자 모두에 있어서 효율적인 신규한 접근법을 이용하여 비디오에서 눈들을 트래킹하는 것에 관한 것이다.
최근 몇 년동안, 눈 트래킹 기술들에 대한 증가되는 정교함 및 액세스용이성은 상업적 부문에서 큰 관심을 불러 일으켜 왔다. 애플리케이션들은 웹 사용성, 광고, 후원, 패키지 설계, 게이밍 (gaming), 및 자동차 엔지니어링을 포함한다. 하지만, 현재의 눈 트래킹 알고리즘들은 다수의 제한들을 갖는다. 예를 들어, 현재의 눈 트래커들 (eye trackers) 은 전체 얼굴이 시야 (FOV: field of view) 내에 있을 것을 요구하는 경향이 있다. 얼굴의 일부가, 예컨대 머리카락에 의해 덮이는 경우, 또는 FOV 가 너무 가까워서 얼굴의 일부만이 보이는 경우, 문제점들이 발생할 수도 있다. 종래의 눈 트래커들은 얼굴에서 눈들을 위치결정하기 전에 전체 얼굴을 검출하는 것을 요구하기 때문에, 눈 트래킹의 레이트는 맨처음에 얼굴을 트래킹하는 부가적인 프로세싱으로 인해 느려지거나 방해받는다. 또한, 종래의 눈 트래커들은, 눈 트래킹을 놓칠 때마다, 예컨대 사람이 FOV 를 벗어나고 나서 되돌아 올 때마다, 또는 사람이 얼굴을 돌렸다가 되돌릴 때마다, 시기적절한 재-초기화 페이즈 (phase) 를 요구한다.
따라서, 개선된 눈 트래킹에 대한 필요가 존재한다.
에너지 및 시간 양자 모두에 있어서 효율적인 신규한 접근법을 이용하여 비디오에서 눈들을 트래킹하기 위한 특정 실시형태들이 설명된다.
일부 실시형태들에서, 눈을 트래킹하는 방법은 얼굴과 눈을 포함하는 제 1 이미지를 수신하는 단계를 포함한다. 방법은, 수신된 제 1 이미지에 기초하여 시야 (FOV) 에서의 눈의 초기 위치를 결정하는 단계를 또한 포함한다. 방법은, 눈을 포함한 얼굴의 일부분을 포함하는 제 2 이미지를 수신하는 단계를 추가적으로 포함한다. 방법은, 수신된 제 2 이미지에 기초하여 눈의 초기 위치로부터의 눈의 위치에 있어서의 변경을 트래킹하는 단계를 더 포함한다.
일부 실시형태들에서, 방법은 복수의 포지티브 (positive) 이미지 샘플들을 생성하는 단계를 또한 포함하되, 각각은 눈의 고-신뢰도 검출을 나타낸다.
일부 실시형태들에서, 방법은 복수의 네거티브 (negative) 이미지 샘플들을 생성하는 단계를 또한 포함하되, 각각은 눈을 제외한 제 1 이미지의 일부분의 고-신뢰도 검출을 나타낸다.
일부 실시형태들에서, 눈의 위치에 있어서의 변경을 트래킹하는 단계는 복수의 포지티브 이미지 샘플들 및 복수의 네거티브 이미지 샘플들에 추가로 기초한다.
일부 실시형태들에서, 방법은 얼굴의 일부분의 서브세트 및 눈을 포함하는 교차 바운딩 박스 (intersection bounding Box) 를 생성하는 단계를 또한 포함하며, 여기서 눈의 위치에 있어서의 변경을 트래킹하는 단계는 교차 바운딩 박스에 추가로 기초한다.
일부 실시형태들에서, 방법은 제 1 이미지와 제 2 이미지 사이에서의 눈의 모션 (motion) 을 검출하는 단계를 또한 포함한다.
일부 실시형태들에서, 눈의 위치에 있어서의 변경을 트래킹하는 단계는 눈의 검출된 모션에 추가로 기초한다.
일부 실시형태들에서, 트래킹하는 단계는 실시간으로 수행된다.
일부 실시형태들에서, 눈을 트래킹하는 장치는 하나 이상의 이미지들을 캡처하도록 구성된 카메라를 포함한다. 장치는 하나 이상의 트래킹 모듈들을 포함하는 메모리를 더 포함한다. 장치는 카메라 및 메모리에 커플링된 프로세서를 또한 포함한다. 프로세서는, 하나 이상의 트래킹 모듈들이 실행될 때, 카메라를 통해, 얼굴과 눈을 포함하는 제 1 이미지를 수신하고, 수신된 제 1 이미지에 기초하여 시야 (FOV) 에서의 눈의 초기 위치를 결정하고, 카메라를 통해, 눈을 포함한 얼굴의 일부분을 포함하는 제 2 이미지를 수신하며, 수신된 제 2 이미지에 기초하여 눈의 초기 위치로부터의 눈의 위치에 있어서의 변경을 트래킹하도록 동작가능하다.
일부 실시형태들에서, 눈을 트래킹하는 장치는 얼굴과 눈을 포함하는 제 1 이미지를 수신하는 수단을 포함한다. 장치는, 수신된 제 1 이미지에 기초하여 시야 (FOV) 에서의 눈의 초기 위치를 결정하는 수단을 더 포함한다. 장치는, 눈을 포함한 얼굴의 일부분을 포함하는 제 2 이미지를 수신하는 수단을 추가적으로 포함한다. 장치는, 수신된 제 2 이미지에 기초하여 눈의 초기 위치로부터의 눈의 위치에 있어서의 변경을 트래킹하는 수단을 또한 포함한다.
일부 실시형태들에서, 프로세서 판독가능 명령들을 포함하는 프로세서 판독가능 비일시적 매체는, 프로세서로 하여금, 얼굴과 눈을 포함하는 제 1 이미지를 수신하게 하고, 수신된 제 1 이미지에 기초하여 시야 (FOV) 에서의 눈의 초기 위치를 결정하게 하고, 눈을 포함한 얼굴의 일부분을 포함하는 제 2 이미지를 수신하게 하며, 수신된 제 2 이미지에 기초하여 눈의 초기 위치로부터의 눈의 위치에 있어서의 변경을 트래킹하게 하도록 구성된다.
본 개시의 양태들은 예로서 예시된다. 첨부 도면들에서, 동일한 참조 번호들은 유사한 엘리먼트들을 표시하며:
도 1 은 하나 이상의 실시형태들을 포함할 수도 있는 시스템의 단순화된 다이어그램을 나타내고;
도 2 는 일부 실시형태들에 따른, 포레스트 (forest) 감지 기반의 눈 트래커의 하이-레벨 아키텍처 및 프레임워크의 예시적인 프로세스 흐름을 나타내고;
도 3 은 일부 실시형태들에 따른, 눈-트래킹을 위한, 홍채-트래킹, 교차 바운딩 박스 트래킹, 및 모션 트래킹 기법들을 활용하기 위한 흐름도를 나타내고;
도 4 는 일부 실시형태들에 따른, 눈-트래킹 복구의 일 예를 나타내고;
도 5 는 CS 서브-트래커 (sub-tracker) 모듈에 의해 수행되는 홍채-트래킹 기법의 세부사항들을 나타내고;
도 6 은 일부 실시형태들에 따른, CS 서브-트래커 모듈을 통해 홍채-트래킹을 초기화하는 예시적인 방법의 플로우차트를 나타내고;
도 7 은 일부 실시형태들에 따른, CS 서브-트래커 모듈을 통한 홍채-트래킹의 예시적인 방법의 플로우차트를 나타내고;
도 8 은 일부 실시형태들에 따른, 사용자의 얼굴의 일부분이 가려졌을 때의 눈-트래킹을 나타내고;
도 9 는 일부 실시형태들에 따른, 복수의 프레임들 상에서의 눈-트래킹을 나타내고;
도 10 은 일부 실시형태들에 따른, 눈을 트래킹하는 예시적인 방법의 플로우차트를 나타내며;
도 11 은 하나 이상의 실시형태들이 구현될 수도 있는 컴퓨팅 시스템의 일 예를 나타낸다.
몇몇 예시적인 실시형태들은 이제, 실시형태들의 일부를 형성하는 첨부 도면들에 대해, 설명될 것이다. 본 개시의 하나 이상의 양태들이 구현될 수도 있는 특정 실시형태들이 아래에서 설명되지만, 다른 실시형태들이 이용될 수도 있고, 다양한 수정들이 본 개시의 범위 또는 첨부된 청구항들의 사상으로부터 벗어나지 않으면서 이루어질 수도 있다.
본 개시들은 전술한 문제점들 및 그 밖의 문제점들을 해결하는 신규한 눈 트래킹 방법론들을 논의한다. 구체적으로, FOV 내에서의 사람의 눈들의 초기 결정 후에, 본 개시들의 방법들은 심지어는 얼굴의 일부가 가려진 채로도 사람의 눈들을 트래킹할 수도 있고, 사람의 눈들이 FOV 를 벗어나고 나서 FOV 에 재-진입하더라도 눈들을 신속하게 재-획득할 수도 있다. 부가적인 혜택들은, 개별적으로 각각의 눈을 트래킹하는 것, 신규한 방법론으로 인한 눈 트래킹의 보다 빠른 레이트, 및 심지어는 낮은 이미지 해상도 및/또는 품질에서의 성공적인 눈 트래킹을 포함할 수도 있다. 일부 실시형태들에서, 본 개시들의 눈 트래킹 방법론은 일련의 서브-트래커 기법들을 포함하되, 각각은, 결합될 때, 다음의 이미지 프레임에서 눈이 이동한 곳의 최고-신뢰도 위치를 생성하는, 상이한 눈-트래킹 기능들을 수행한다.
도 1 은 하나 이상의 실시형태들을 포함할 수도 있는 시스템 (100) 의 단순화된 다이어그램을 나타낸다. 일부 실시형태들에서, 시스템 (100) 은 스마트폰, 태블릿 컴퓨터 등과 같은 휴대용 디바이스일 수도 있다. 시스템 (100) 은 프로세서 (110), 디스플레이 (130), 입력 디바이스 (140), 스피커 (150), 메모리 (160), 카메라 (170), 및 컴퓨터 판독가능 매체 (180) 를 포함할 수도 있다.
프로세서 (110) 는 시스템 (100) 상에서 명령들을 수행하도록 동작가능한 임의의 범용 프로세서일 수도 있다. 프로세서 (110) 는 디스플레이 (130), 입력 디바이스 (140), 스피커 (150), 메모리 (160), 카메라 (170), 및 컴퓨터 판독가능한 매체 (180) 를 포함하는 시스템 (100) 의 다른 유닛들에 커플링된다.
디스플레이 (130) 는 사용자에게 정보를 디스플레이하는 임의의 디바이스일 수도 있다. 예들은 LCD 스크린, CRT 모니터, 또는 7-세그먼트 디스플레이를 포함할 수도 있다.
입력 디바이스 (140) 는 사용자로부터의 입력을 수용하는 임의의 디바이스일 수도 있다. 예들은 키보드, 키패드, 마우스 또는 터치 입력을 포함할 수도 있다.
스피커 (150) 는 사용자에게 사운드를 출력하는 임의의 디바이스일 수도 있다. 예들은 빌트-인 스피커 또는 전기적 오디오 신호에 응답하여 사운드를 생성하는 임의의 다른 디바이스를 포함할 수도 있다.
메모리 (160) 는 임의의 자기적, 전자적, 또는 광학적 메모리일 수도 있다. 메모리 (160) 는 두 개의 메모리 모듈들, 즉 모듈 1 (162) 및 모듈 2 (164) 를 포함한다. 메모리 (160) 가 임의의 수의 메모리 모듈들을 포함할 수도 있다는 것은 이해될 수 있다. 메모리 (160) 의 일 예는 동적 랜덤 액세스 메모리 (DRAM) 일 수도 있다.
카메라 (170) 는 이미지들을 캡처하도록 구성된 이미지 캡처 디바이스일 수도 있다. 카메라 (170) 는 정지 이미지들 또는 연속 이미지들 (비디오) 중 어느 일방을 캡처할 수도 있다. 일부 실시형태들에서, 카메라 (170) 는 눈 트래킹을 위해 이미지들을 캡처하도록 구성될 수도 있다.
컴퓨터 판독가능 매체 (180) 는 임의의 자기적, 전자적, 광학적, 또는 다른 컴퓨터 판독가능 저장 매체일 수도 있다. 컴퓨터 판독가능한 매체 (180) 는 프로세서 (110) 에 의해 실행가능한 하나 이상의 소프트웨어 모듈들을 포함할 수도 있다. 컴퓨터 판독가능 매체 (180) 는, 압축 감지 (CS: compressive sensing) 서브-트래커 모듈 (182), 결정 포레스트 (DF: decision forest) 서브-트래커 모듈 (184), 광학 흐름 (OF: optical flow) 서브-트래커 모듈 (186), 및 눈-트래킹 모듈 (188) 을 포함할 수도 있다.
CS 서브-트래커 모듈 (182) 은 눈의 홍채 부분을 트래킹하도록 구성될 수도 있다. CS 서브-트래커 모듈 (182) 은, 아래에 보다 상세히 설명되는 바와 같은 눈-트래킹 모듈 (188) 을 통해, 카메라 (170) 와 인터페이싱할 수도 있다. 일부 실시형태들에서, CS 서브-트래커 모듈 (182) 은 눈이 무엇처럼 보이는 것 같은지를 나타내는 이미지들의 데이터세트 ("포지티브 데이터세트" 로 지칭됨), 및 눈이 무엇처럼 보이지 않는 것 같은지를 나타내는 이미지들의 다른 데이터세트 ("네거티브 데이터세트" 로 지칭됨) 를 구축 (build) 한다. 포지티브 및 네거티브 데이터세트의 조합은, 그 밖의 모든 것과 비교했을 때 이미지의 어떤 부분이 눈일 것 같은지를 CS 서브-트래커 모듈 (182) 이 보다 용이하게 구별하는 것을 허용한다. 이들 데이터세트들을 구축하는 것은, 본 개시들로 하여금, 비효율성의 주요 근원인, 다수의 프레임들에서 반복적으로 전체 얼굴을 검출할 필요가 없게 한다. 오히려, 포지티브 및 네거티브 데이터세트들이 액세스되어 나중의 프레임들에서의 이미지 데이터와 비교되어, 이미지의 어떤 부분들이 눈일 것 같은지 그리고 어떤 부분들이 아닌지를 신속하게 인식할 수 있다. 일부 실시형태들에서, 포지티브 및 네거티브 데이터세트들은, 눈 그 자체의 홍채 부분의, 포지티브 및 네거티브 식별 각각에 초점을 맞춘다.
DF 서브-트래커 모듈 (184) 은 그 안에 적어도 하나의 눈 및 일관된 피처들을 갖는 주변 영역 (이를테면, 피부, 눈썹들, 콧마루, 안경 프레임) 을 포함하는 얼굴의 일부분을 생성하도록 구성될 수도 있다. 이것은 "교차 바운딩 박스" 또는 "포위하는 (encompassing) 바운딩 박스" 로 지칭될 수도 있다. 유리하게도, 교차 바운딩 박스는 전체 얼굴을 포함할 필요가 없다. 예를 들어, 교차 바운딩 박스는, 눈썹들, 광대 뼈들의 맨 위, 및 콧마루를 포함하는, 양쪽 눈들 주위에서의 직사각형 영역만을 포함할 수도 있다. DF 서브-트래커 모듈 (184) 은, 홍채들 그 자체들을 트래킹하는 CS 서브-트래커 모듈 (182) 만큼 세밀한 디테일을 보유하지 못할 수도 있지만, 컴퓨팅하는 데 신속할 수도 있고, 예컨대 어느 눈이 왼쪽이고 어느 눈이 오른쪽인지를 증명하는, 한쪽 또는 양쪽 눈들을 연루시킨 관계를 제공한다. DF 서브-트래커 모듈 (184) 은 또한, 눈들이 실제로 어디에 존재하는지를 확증하기 위한 경계로서의 역할을 하여, 눈이 교차 바운딩 박스의 외측에 있다고 보고할 수도 있는 잘못된 포지티브들을 최소화할 수도 있다. DF 서브-트래커 모듈 (184) 은 또한, 눈들의 일반 영역을 복구할 때 효과적일 수도 있으며, 이것은 눈들이 FOV 를 떠나고 다시 되돌아올 때 특히 유용하다. 일부 실시형태들에서, 눈들의 교차를 위한 상이한 포지티브 및 네거티브 데이터세트는, 교차 바운딩 박스가 후속 이미지들 내에서 어디에 있어야 하는지를 결정하는 것을 돕도록 구축된다. 일부 실시형태들에서, DF 서브-트래커 모듈은 모션 트래커로서 기능할 수도 있다.
OF 서브-트래커 모듈 (186) 은 카메라 (170) 에 의해 캡처된 이미지에서의 모션을 검출하기 위해 최적화될 수도 있다. OF 서브-트래커 모듈 (186) 은 이미지들의 쌍들 사이에서의 차이들을 비교할 수도 있고, 따라서, 어떠한 포지티브 또는 네거티브 데이터세트들도 생성할 필요가 없을 수도 있다. 이 OF 서브-트래커 모듈 (186) 은, 일반적으로 눈들이 어디로 이동하였는지를, 특히, 일 프레임으로부터 그 다음 프레임으로의 눈들의 위치들에 있어서의 급격한 변경들이 존재하는지를, 신속하게 식별하는 데 이용될 수도 있다.
눈-트래킹 모듈 (188) 은 눈-트래킹 기능들을 수행하기 위해 카메라 (170) 와 인터페이싱하도록 구성될 수도 있다. 눈-트래킹 모듈 (188) 은 CS 서브-트래커 모듈 (182), DF 서브-트래커 모듈 (184), 및/또는 OF 서브-트래커 모듈 (186) 중 적어도 하나로부터 데이터를 수신하거나 상기 적어도 하나에 데이터를 전송할 수도 있다. 예를 들어, 눈-트래킹 모듈 (188) 은 사용자의 얼굴 또는 사용자의 얼굴의 일부의 이미지(들)를 캡처하기 위해 카메라 (170) 와 인터페이싱할 수도 있다. 다음으로, 눈-트래킹 모듈 (188) 은, CS 서브-트래커 모듈 (182), DF 서브-트래커 모듈 (184) 및/또는 OF 서브-트래커 모듈 (186) 에게 캡처된 이미지(들)로의 액세스를 제공할 수도 있어서, 다양한 모듈들이 캡처된 이미지(들) 상에 그들의 각각의 서브-트래킹 (sub-tracking) 기법들을 수행할 수도 있다. 이런 의미에서, 눈-트래킹 모듈 (188) 은, 다양한 서브-트래킹 모듈들과 카메라 (170) 사이에서의 촉진 (facilitating) 모듈로서 동작할 수도 있다.
일부 실시형태들에서, 이들 세 개의 전술한 서브-트래커들 (예컨대, CS 서브-트래커 모듈 (182), DF 서브-트래커 모듈 (184), 및 OF 서브-트래커 모듈 (186)) 의 조합이 결합되어, 눈을 성공적으로 트래킹하고 종래의 눈 트래커들의 전술한 문제점들을 해결하기에 충분히 견고한 솔루션을 생성할 수 있다. 유의할 점으로는, 종래의 눈-트래킹 방법들과는 달리, 설명된 서브-트래커들 중 어떠한 것도 전체 얼굴의 인식을 요구하지 않으며, 따라서 본 개시들의 방법들이 성공하기 위해 (눈들을 포함한) 단지 얼굴의 일부분만이 FOV 내에서 이용가능할 필요가 있다. 또한, 서브-트래커들은, 얼굴 (또는 얼굴의 일부분) 이 FOV 를 떠나서 나중에 FOV 에 재진입하는지를 트래킹하기 전에 눈을 검출하는 프로세스를 재시작할 필요가 없을 수도 있다. 세 개의 서브-트래커들의 조합은 이들 이점들, 및 전체 얼굴이 항상 트래킹될 필요는 없기 때문에 현재의 기법들과 비교할 때 보다 낮은 전력 사용 및 보다 빠른 프로세싱과 같은 추가적인 이점들을 제공한다.
시스템 (100) 은 또한, 보다 많은 데이터베이스들 (190) 을 포함할 수도 있다. 데이터베이스들 (190) 은 전술한 포지티브 및 네거티브 데이터세트들을 저장하도록 동작가능할 수도 있다. 다양한 서브-트래커들은 눈-트래킹 모듈 (188) 을 통해 하나 이상의 데이터베이스들 (190) 과 인터페이싱하여 포지티브 및 네거티브 데이터세트들에 액세스할 수도 있다.
도 2 는 일부 실시형태들에 따른, 포레스트 감지 기반의 눈 트래커의 하이-레벨 아키텍처 및 프레임워크의 예시적인 프로세스 흐름 (200) 을 나타낸다. 프로세스 흐름 (200) 은 하나 이상의 입력 프레임들 (201) 로 시작한다. 입력 프레임(들) (201) 은 카메라 (170) (도 1) 에 의해 캡처될 수도 있다. 입력 프레임(들) (201) 을 캡처 시, 입력 프레임(들)은 사전-프로세싱 단계 (202) 에서 이용될 수도 있다. 각각의 서브-트래커 (예컨대, CS 서브-트래커 모듈 (182), DF 서브-트래커 모듈 (184), 및 OF 서브-트래커 모듈 (186)) 에 의해 수행되는 다양한 이미지 프로세싱 단계들에 대한 각각의 이미지 프레임(들) (201) 을 준비하기 위해 사전-프로세싱 단계 (202) 가 실행될 수도 있다. 이들 다양한 이미지 프로세싱 단계들은 그레이 스케일 (grey scale) 로의 변환, OF 서브-트래커 모듈 (186) 에 대한 다수의 스케일링된 이미지들의 생성 등을 포함할 수 있지만, 이에 한정되지 않는다. 일부 실시형태들에서, 사전-프로세싱 단계 (202) 는 눈-트래킹 모듈 (188) 에 의해 수행될 수도 있다. 사전-프로세싱 단계 (202) 의 완료 시, 사전-프로세싱된 이미지 프레임(들)은, 다양한 서브-트래킹 모듈들에 제공될 수도 있고, 또는 이 모듈들에 의해 액세스될 수도 있다. 일부 실시형태들에서, 눈-트래킹 모듈 (188) 은, 다양한 이미지 프레임(들)로의 액세스를, 다양한 서브-트래킹 모듈들에게 제공 또는 승인할 수도 있다.
CS 서브-트래커 모듈 (182) 은 이미지 프레임(들) 내에서의 눈의 홍채 부분을 트래킹할 수도 있다. CS 서브-트래커 모듈 (182) 은 눈이 무엇처럼 보이는 것 같은지를 나타내는 이미지들의 데이터세트 ("포지티브 데이터세트" 로 지칭됨), 및 눈이 무엇처럼 보이지 않는 것 같은지를 나타내는 이미지들의 다른 데이터세트 ("네거티브 데이터세트" 로 지칭됨) 를 구축할 수도 있다. 포지티브 및 네거티브 데이터세트의 조합은, CS 서브-트래커 모듈 (182) 로 하여금 이미지 프레임(들) 내에서의 그 밖의 모든 것과 비교했을 때 이미지 프레임(들)의 어떤 부분이 눈일 것 같은지를 보다 용이하게 구별하는 것을 허용한다. 포지티브 및 네거티브 데이터세트들이 액세스되어 나중의 프레임들에서의 이미지 데이터와 비교되어, 이미지의 어떤 부분들이 눈일 것 같은지 그리고 어떤 부분들이 아닌지를 신속하게 인식할 수 있다. 일부 실시형태들에서, 포지티브 및 네거티브 데이터세트들은, 눈 그 자체의 홍채 부분의, 포지티브 및 네거티브 식별 각각에 초점을 맞춘다.
DF 서브-트래커 모듈 (184) 은, 그 안에 적어도 하나의 눈 및 일관된 피처들을 갖는 주변 영역 (이를테면, 피부, 눈썹들, 콧마루, 안경 프레임) 을 포함하는 이미지 프레임(들) 내에서의 얼굴의 일부분을 생성할 수도 있다. 이것은 "교차 바운딩 박스" 또는 "포위하는 바운딩 박스" 로 지칭될 수도 있다. 교차 바운딩 박스는 전체 얼굴을 포함할 필요가 없다. 일부 실시형태들에서, DF 서브-트래커 모듈 (184) 은 각각의 눈에 대한 별개의 교차 바운딩 박스를 생성할 수도 있다. 예를 들어, 첫 번째로 생성된 교차 바운딩 박스는 이미지 프레임(들) 내에서의 왼쪽 눈을 포위할 수도 있고, 두 번째로 생성된 교차 바운딩 박스는 이미지 프레임(들) 내에서의 오른쪽 눈을 포위할 수도 있다.
OF 서브-트래커 모듈 (186) 은 이미지 프레임(들)에서의 모션을 검출할 수도 있다. OF 서브-트래커 모듈 (186) 은 이미지들의 쌍들 사이에서의 차이들을 비교할 수도 있고, 따라서, 어떠한 포지티브 또는 네거티브 데이터세트들도 생성할 필요가 없을 수도 있다. 이 OF 서브-트래커 모듈 (186) 은, 일반적으로 눈들이 어디로 이동하였지를, 특히, 일 프레임으로부터 그 다음 프레임으로의 눈들의 위치들에 있어서의 급격한 변경들이 존재하는지를, 신속하게 식별하는 데 이용될 수도 있다.
다양한 서브-트래커 모듈들은, 데이터세트 (208) 로부터의 데이터를, 이미지 프레임(들) 상에서 수행되는 분석의 일부로서 이용할 수도 있다. 데이터세트 (208) 는 하나 이상의 데이터베이스들 (190) (도 1) 내에 저장될 수도 있고, 포지티브 및 네거티브 데이터세트들을 포함할 수도 있다.
전술한 바와 같이, 서브-트래커 모듈들의 각각을 통한 분석 및 프로세싱 시에, 각각의 서브-트래킹 모듈 (예컨대, CS 서브-트래커 모듈 (182), DF 서브-트래커 모듈 (184), 및 OF 서브-트래커 모듈 (186)) 은 이미지 프레임(들) 내에서의 눈의 고-신뢰도의 위치 또는 일련의 고-신뢰도의 위치들을 생성할 수도 있으며, 그리고 나서 이것은 컨버전스 (convergence) 모듈 (204) 로 피드된다. 눈의 고-신뢰도의 위치는 이미지 프레임(들)에서의 눈(들)의 가장 가능성있는 위치를 표시할 수도 있다. 일부 실시형태들에서, 이미지 프레임(들)은 이전 이미지 프레임(들)에 후속하는 이미지 프레임(들)일 수도 있다. 컨버전스 페이즈 동안, 컨버전스 모듈 (204) 은 서브-트래커들의 각각에 의한 분석 및 프로세싱의 결과들을 지능적으로 결합하여 최종 결정을 생성할 수도 있다. 최종 결정은 이미지 프레임(들) 내에서의 눈들의 결정된 위치를 반영할 수도 있다.
다음으로, 컨버전스 모듈 (204) 은 최종 결정의 결과들 (210) 을 보고할 수도 있다. 그 결과들은 또한, 시간을 이용하여 트래킹하는 것을 개선하고 데이터세트 (208) 를 갱신하기 위해, 트래킹되는 오브젝트의 새로운 특성들을, 활성 러닝 (learning) 모듈 (206) 을 통해, 계속 러닝하는 데 이용될 수도 있다. 러닝 능력은 배향, 변형, 밝기, 가림 (occlusion) 등의 원인으로 인한, 하지만 이에 한정되는 것은 아닌 원인으로 인한 변경들의 허용오차를 제공할 수도 있다. 최종 결정의 결과들 (210) 은 시스템 (100) (도 1) 의 일 애플리케이션, 또는 임의의 다른 컴포넌트에 의해 이용될 수도 있다. 일부 실시형태들에서, 최종 결정의 결과들 (210) 은 외부 시스템에 의해 이용될 수도 있다.
DF 서브-트래커 모듈 (184) 및 OF 서브-트래커 모듈 (186) 은 교차 신뢰도를 트래킹할 때 최적화될 수도 있으며, 신속할 수도 있음은 이해될 수 있다. 하지만, 이들은 아주 작은 홍채를 트래킹할 때에는 신뢰할 만하지 않을 수도 있다. OF 서브-트래커 모듈 (186) 및 CS 서브-트래커 모듈 (182) 이 요구할 수도 있는 것처럼 DF 서브-트래커 모듈 (184) 은 이전의 프레임에서의 시드 (seed) 위치를 요구하지 않으므로, 교차를 복구할 수 있다. CS 서브-트래커 모듈 (182) 은 아주 작은 홍채를 신뢰성 있게 트래킹하기 위해 최적화될 수도 있다. 하지만, 홍채 트래킹을 신뢰성 있게 복구하는 것이 가능하지 않을 수도 있고, 교차의 검증 없이 매우 유사한 두 개의 홍채를 구별하는 것이 가능하지 않을 수도 있다. 이전의 프레임 내에서 트래킹을 놓쳤더라도, 오브젝트가 (블러 (blur) 를 야기할 만큼) 너무 빠르게 이동하지 않는다면, OF 서브-트래커 모듈 (186) 은 움직이고 있는 오브젝트를 트래킹하기 위해 최적화될 수도 있다. CS 서브-트래커 모듈 (182) 은 일관된 색상을 갖는 작은 오브젝트들을 위해 신뢰할 만할 수도 있지만, 트래킹을 놓칠 가능성은 존재할 수도 있다. 이와 같이, CS 서브-트래커 모듈 (182) 은 적합한 트래킹 결과들을 제공하기에 충분히 강력하지는 않을 수도 있다. 하지만, CS 서브-트래커 모듈 (182), DF 서브-트래커 모듈 (184), 및 OF 서브-트래커 모듈 (186) 의 능력들의 조합이 결합되어 정확하고 신뢰할 만하며 보다 견고한 트래킹 결과들을 제공할 수도 있다.
도 3 은 일부 실시형태들에 따른, 눈-트래킹을 위한, 홍채-트래킹, 교차 바운딩 박스 트래킹, 및 모션 트래킹 기법들을 활용하기 위한 흐름도 (300) 를 나타낸다. 여기에, (CS 서브-트래커 모듈 (182) (도 1) 에 의해 수행되는) 홍채-트래킹 기법 및 (DF 서브-트래커 모듈 (184) (도 1) 및 OF 서브-트래커 모듈 (186) (도 1) 에 의해 수행되는) 교차 바운딩 박스 트래킹 기법을 위한 프로세스들이 나타나 있다. 프로세스는 눈들의 알려진 위치들을 갖는 초기의 프레임을 이용하여 시작할 수도 있고, 전술한 바와 같은 포지티브 및 네거티브 데이터세트들을 계속해서 구축한다. (OF 서브-트래커 모듈 (186) (도 1) 에 의해 수행되는) 모션 트래킹 기법은 또한, 그 다음 프레임으로부터의 데이터의 비교에 기초하여 통합되며, 모션 트래킹 기법을 위해 데이터세트들이 구축될 필요가 없기 때문에, 나타낸 바와 같은 초기 단계들에 포함되지 않는다.
단계 (301) 에서, 홍채가 제 1 이미지 프레임 내에서 검출되고 홍채의 위치들이 눈-트래킹 프레임워크에 전달된다. 홍채 검출은 다수의 상이한 방식들로 달성될 수도 있다. 통상적으로, 현재의 솔루션들은 얼굴 검출기를 이용하여 얼굴 위치를 결정하고 추가적인 필터들을 이용하여 눈들을 발견함으로써 홍채 검출을 달성한다. 이 프로세스는 일반적으로 매우 느리며, 전체 얼굴이 FOV 내에 있을 것을 요구한다. 이 홍채 검출 기법 및 다른 홍채 검출 기법들은 본 기술분야에서 잘 알려져 있다. 본 실시형태에서는, 일단 홍채 위치가 결정되면, 홍채 검출에 대한 필요가 더 이상 존재하지 않을 수도 있다. 각각의 홍채의 위치는 작은 바운딩 박스에 의해 포위될 수도 있고 바운딩 박스들은 초기화를 위해 눈-트래킹 프레임워크에 전달될 수도 있다.
단계 (302) 에서, 제 1 프레임들 (초기화 프레임들) 에서의 입력된 홍채의 위치에 기초하여, 프레임워크는 눈들 중 홍채 부분을, CS 서브-트래커 모듈 (182) (도 1) 을 위한 초기 트래킹 바운딩 박스로서 등록한다. CS 서브-트래커 모듈 (182) (도 1) 을 위한 초기 트래킹 바운딩 박스는 이미지 (304) 에 도시된다. 단계 (303) 에서, 프레임워크는 교차 바운딩 박스를, DF 서브-트래커 모듈 (184) (도 1) 및 OF 서브-트래커 모듈 (186) (도 1) 을 위한 초기 트래킹 바운딩 박스로서 등록한다. 전술한 바와 같이, 교차 바운딩 박스는 그 안에 적어도 하나의 눈 및 일관된 피처들을 갖는 주변 영역 (이를테면, 피부, 눈썹들, 콧마루, 안경 프레임) 을 포함할 수도 있다. 일부 실시형태들에서, 교차 바운딩 박스는 눈들 및 이들의 주변 영역들 양방 모두를 포함할 수도 있다. DF 서브-트래커 모듈 (184) (도 1) 및 OF 서브-트래커 모듈 (186) (도 1) 을 위한 교차 바운딩 박스의 예는 이미지 (305) 에 도시된다.
단계 (306) 에서, 홍채에 근접해 있는 포지티브 바운딩 박스들 및 홍채로부터 떨어져 있는 네거티브 바운딩 박스들이 샘플링된다. 하르 피처들 (Haar features) 은, 초기의 CS 포지티브 데이터세트 (318) 및 CS 네거티브 데이터세트 (320) 를 구축하기 위해, 샘플링된 바운딩 박스들 (포지티브 바운딩 박스들 및 네거티브 바운딩 박스들) 을 특성화하는 데 이용된다 (단계 308). CS 포지티브 데이터세트 (318) 및 CS 네거티브 데이터세트 (320) 는, (이하에서 보다 상세히 설명되는) 실시간으로 갱신될 수 있는 러닝 데이터세트들일 수도 있다.
단계 (307) 에서, 교차 바운딩 박스에 근접해 있는 포지티브 바운딩 박스들 및 교차 바운딩 박스로부터 떨어져 있는 네거티브 바운딩 박스들이 샘플링된다. 바이너리 피처들 (Binary features) 은, 초기의 DF 포지티브 데이터세트 (314) 및 DF 네거티브 데이터세트 (316) 를 구축하기 위해, 샘플링된 바운딩 박스들 (포지티브 바운딩 박스들 및 네거티브 바운딩 박스들) 을 특성화하는 데 이용된다 (단계 309). 초기의 DF 포지티브 데이터세트 (314) 및 DF 네거티브 데이터세트 (316) 를 구축하는 것은, 교차 바운딩 박스에 근접해 있는 포지티브 바운딩 박스들 및 교차 바운딩 박스로부터 떨어져 있는 네거티브 바운딩 박스들을 분석하는 것을 포함할 수 있다. 픽셀 강도 (pixel intensity) 차이들인 바이너리 피처들은, 샘플링된 바운딩 박스들을 특성화하여, 초기의 DF 포지티브 데이터세트 (314) 및 DF 네거티브 데이터세트 (316) 를 구축하는 데 이용될 수도 있다. DF 포지티브 데이터세트 (314) 및 DF 네거티브 데이터세트 (316) 는, (이하에서 보다 상세히 설명되는) 실시간으로 갱신될 수 있는 러닝 데이터세트들일 수도 있다.
일부 실시형태들에서, 두 개의 DF 관련 바운딩 박스들이 존재할 수도 있으며, 여기서 각각은 단일의 눈 주위의 이미지 데이터를 포함한다. 이 기법은, 예컨대, 다른 눈이 덮여있거나 FOV 내에 있지 않은 경우, 단일의 눈에 대한 트래킹을 개선할 수도 있다. 용어 "교차 바운딩 박스" 는 두 개의 눈들 또는 단지 하나의 눈만을 포함하는 교차 바운딩 박스를 지칭할 수도 있다.
단계 (310) 에서, 규칙적으로 진행 중인 트래킹 페이즈 (사후 초기화) 동안, 교차 바운딩 박스는 DF 서브-트래커 모듈 (184) (도 1) 및 OF 서브-트래커 모듈 (186) (도 1) 에 의해 트래킹될 수도 있다. 단계 (311) 에서, 규칙적으로 진행 중인 트래킹 페이즈 (사후 초기화) 동안, 홍채 바운딩 박스들은 CS 서브-트래커 모듈 (182) (도 1) 에 의해 트래킹될 수도 있다. 단계들 (310 및 311) 은, 예시적인 이미지 (322) 에 나타낸 바와 같이, 후속 이미지 프레임(들) 상에서, 교차 바운딩 박스 및 홍채 바운딩 박스들을 트래킹할 수도 있다.
단계 (312) 에서, 새로운 홍채 바운딩 박스들은 CS 서브-트래커 모듈 (182) (도 1) 로부터 출력될 수도 있고, 새로운 교차 바운딩 박스들은 DF 서브-트래커 모듈 (184) (도 1) 및 OF 서브-트래커 모듈 (186) (도 1) 로부터 출력될 수도 있다. 출력된 홍채 바운딩 박스들 및 출력된 교차 바운딩 박스는 새로운 홍채 바운딩 박스들의 결과들을 검증하는 데 이용될 수도 있다. CS 서브-트래커 모듈 (182) (도 1) 이 트래킹을 놓치는 (예컨대, 눈들이 FOV 를 떠나는) 경우들에서는, DF 서브-트래커 모듈 (184) (도 1) 은 전체 이미지 프레임(들)을 스캔하고 교차 바운딩 박스를 복구할 수 있다. 다음으로, (예시적인 이미지 (324) 에 도시된 바와 같이) CS 서브-트래커 모듈 (182) (도 1) 이 홍채를 복구하는 데 이용될 수도 있다.
다음으로, DF 포지티브 데이터세트 (314), DF 네거티브 데이터세트 (316), CS 포지티브 데이터세트 (318), 및 CS 네거티브 데이터세트 (320) 는, 다양한 서브-트래커 모듈들에 의한 후속 이미지 프레임(들)의 분석에 기초하여 갱신될 수도 있다. 이러한 의미에서, DF 포지티브 데이터세트 (314), DF 네거티브 데이터세트 (316), CS 포지티브 데이터세트 (318), 및 CS 네거티브 데이터세트 (320) 는 각각의 후속 이미지 프레임(들) 상에서 개선할 수도 있는 러닝 데이터세트들이다.
도 4 는 일부 실시형태들에 따른, 눈-트래킹 복구의 일 예를 나타낸다. 여기서, 도면은 눈/홍채 트래킹이 실패한 경우 눈-트래커가 홍채 트래킹을 어떻게 복구하는지를 보여준다. 눈/홍채 트래킹이 실패하는 하나의 공통적인 이유는 눈 또는 눈들이 FOV 를 떠나는 것이다. 통상적으로, 그 후에 곧바로 눈 또는 눈들이 FOV 로 돌아올 수도 있는데, 예컨대, 사용자는 모바일 디바이스를 잠깐동안 내려놓았다가 다시 집어들 수도 있다.
초기의 이미지 프레임 (410) 에서, 두 개의 홍채는 CS 서브-트래커 모듈 (182) (도 1) 을 통해 바운딩 박스들을 이용하여 트래킹되며, 눈들은 DF 서브-트래커 모듈 (184) (도 1) 및 OF 서브-트래커 모듈 (186) (도 1) 을 통해 교차 바운딩 박스를 이용하여 트래킹된다. 이들 방법들은 위에서 상세히 설명된다.
이어서, 홍채 및/또는 눈 트래킹은 그 다음 이미지 프레임 (420) 에서 놓칠 수도 있다. 통상적으로, 이것은 전술한 바와 같은 사용자 동작의 결과일 수도 있다. DF 서브-트래커 모듈 (184) (도 1) 은 그 다음 이미지 프레임 (420) 내에서 눈들을 탐색할 수도 있지만, FOV 내에서 임의의 눈들을 발견하지 못할 수도 있다. 이후, 몇몇 지점에서, 홍채 및/또는 눈은 후속 이미지 프레임 (430) 에서 FOV 내로 돌아올 수도 있다. 예를 들어, 사용자는 모바일 디바이스를 그들의 앞으로 위치변경할 수도 있다. CS 서브-트래커 모듈 (182) (도 1) 은 그 자체로 복구 능력들을 갖지 않음에 따라, 눈들을 탐색하기 위해 교차 바운딩 박스가 이용된다. 이 검출은 매우 신속하며, 러닝된 DF 포지티브 데이터세트 (314) (도 3) 및 DF 네거티브 데이터세트 (316) (도 3) 를 이용하여 다른 사람의 얼굴의 혼동 없이 눈 또는 눈들을 복구할 수도 있다. 다음으로, 홍채 트래킹은 복구된 눈 트래킹 영역들로부터 복구될 수도 있다. 눈 또는 눈들을 복구하기 위해 DF 포지티브 데이터세트 (314) (도 3) 및 DF 네거티브 데이터세트 (316) (도 3) 를 이용함으로써, 눈-트래킹 시스템은 후속 이미지 프레임 (430) 내에서의 고유한 사용자 피처들 (이를테면, 피부, 눈썹들, 콧마루, 안경 프레임 등) 을 이용하고 있을 수도 있음이 이해될 수 있다.
DF 서브-트래커 모듈 (184) (도 1) 은, 일단 사용자가 FOV 에 재-진입한다면 신속하고 신뢰성 있는 교차의 검출을 수행할 수 있고, 전체 얼굴이 FOV 내에 있을 것을 요구하지 않기 때문에, DF 서브-트래커 모듈 (184) (도 1) 에 의해 맨처음에 구축된 러닝 데이터세트들은 눈들의 교차 바운딩 박스를 복구하는 데 이용될 수 있음이 이해될 수 있다.
교차 바운딩 박스는 다양한 목적들에 기여할 수도 있음이 이해될 수 있다. 교차 바운딩 박스는 생체인증 데이터에 기초하여 홍채를 검증하는 데 이용될 수도 있다. 또한, 교차 바운딩 박스는 홍채 트래킹을 복구하는 데 이용될 수도 있다. 또한, 교차 바운딩 박스는 각각의 홍채의 트래킹 윈도우를 제한하는 데 이용될 수도 있다.
도 5 는 CS 서브-트래커 모듈 (182) 에 의해 수행되는 홍채-트래킹 기법의 세부사항을 나타낸다. 여기서, 홍채의 포지티브 및 네거티브 샘플들을 생성하는 CS 서브-트래커 모듈 (182) 에 대한 세부사항이 설명된다. 도면은 포지티브 샘플들 (504) 과 네거티브 샘플들 (506) 양자 모두를 도시한다. 일부 실시형태들에서, 포지티브 샘플들 (504) 은 눈(들)의 (알려진) 위치에 근접해 있는 이미지의 부분들을 무작위로 샘플링함으로써 생성될 수도 있다. 다음으로, 후속 입력 프레임들에서, 홍채-트래커는 홍채가 이들 샘플들과 비슷해야 한다는 것을 알 수도 있다. 유사하게, 일부 실시형태들에서, 네거티브 샘플들 (506) 은 눈(들)의 (알려진) 위치로부터 더 멀리 떨어져 있는 이미지의 부분들을 무작위로 샘플링함으로써 생성될 수도 있다. 여기서, 사람의 피부 및 눈썹들의 샘플들은 네거티브 데이터베이스에 기록될 수도 있다. 따라서, 다음으로, 홍채-트래커는 사람의 피부 및/또는 눈썹들과 비슷한 부분들이 눈(들)일 것 같지 않을 수도 있음을 후속 이미지들에서 알 수도 있다.
이들 기법들은 압축 감지 이론을 이용하여 수행될 수도 있다. 이미지 신호 프로세싱에 있어서, 압축 감지 이론은 전체 신호로 하여금 상대적으로 적은 측정치들로부터 결정될 수 있게 한다. 존슨-린덴스트라우스 레마 (Johnson-Lindenstrauss lemma) 는 벡터 공간에서의 포인트들 사이의 거리들은, 이 포인트들이 적합하게 높은 차원들을 갖는, 무작위로 선택된 부분공간 (subspace) 에 투영된다면, 높은 확률로 유지될 수 있다고 언급하고 있다. 따라서, 고-차원의 이미지 공간에서, 무작위 매트릭스 이 존슨-린덴스트라우스 레마를 만족시킨다면, χ 는 χ 가 압축적이면 높은 확률로 ν로부터 최소의 오류로 재구성될 수 있으며, 이것은 ν 가 χ 에서의 거의 모든 정보를 유지할 수 있음을 의미한다. 이 이론은 저-차원의 무작위 투영들을 통해 고-차원의 이미지 신호들을 분석할 때 도움을 줄 수 있다. 식 (1) 에서의 매우 희소한 무작위 매트릭스 (very sparse random matrix) (512) 을 이용하면 존슨-린덴스트라우스 레마를 만족시킬 뿐만 아니라 실시간의 눈/홍채 트래킹을 위해 효율적으로 컴퓨팅될 수 있다.
Figure pct00001
통상적인 무작위 매트릭스는 무작위 가우시안 매트릭스
Figure pct00002
이며, 여기서
Figure pct00003
이다. 하지만, m 이 크고 매트릭스가 밀집해 있다면, 컴퓨테이션 및 메모리는 여전히 크다. 따라서, 매우 희소한 무작위 매트릭스 (512) 는 다음과 같이 정의되는 엔트리들로 채택된다.
Figure pct00004
Achlioptas, D., "Database-friendly random projections: Johnson-Lindenstrauss with binary coins". J. Comput. Syst. Sci 66, 671-687 (2003) 은, s=2 또는 3 을 갖는 이런 유형의 매트릭스가 존슨-린덴스트라우스 레마를 만족시킨다는 것을 증명했다. 오직 균일한 무작위 생성기만을 요구하는, 이 매트릭스를 컴퓨팅하는 것은 매우 용이할 수도 있다. S=3 인 경우, 그것은 매우 희소하며, 컴퓨테이션의 3분의 2 는 절약될 수 있다.
Figure pct00005
일 때, 무작위 투영들은 거의 종래의 무작위 투영들만큼 정확하며, 여기서,
Figure pct00006
이다.
Figure pct00007
라면, 매우 희소한 무작위 매트릭스를 생성하며, 이것은 컴퓨테이션 복잡도가 매우 낮음을 의미하고, 메모리 요건을 또한 매우 가볍게 하는 영이 아닌 R 의 엔트리들을 저장할 필요만이 있을 뿐이다.
각각의 샘플
Figure pct00008
에 있어서 저 차원의 표현은
Figure pct00009
이며, 여기서
Figure pct00010
이다. ν 에서의 모든 엘리먼트들이 독립적으로 불신된다고 가정하면, 이들은 원조격의 베이즈 분류기 (Bayes classifier) 를 이용하여 모델링될 수도 있다:
Figure pct00011
여기서, 균일한
Figure pct00012
을 가정하며,
Figure pct00013
는 샘플 라벨을 표현하는 이진 변수이다. 분류기
Figure pct00014
에서의 조건 분포들
Figure pct00015
Figure pct00016
는 파라미터들
Figure pct00017
에 대해 가우시안 분포형인 것으로 가정될 수도 있으며, 여기서,
Figure pct00018
이다.
(4) 에서의 파라미터들은 (5) 에 의해 증분적으로 갱신될 수도 있다:
Figure pct00019
여기서,
Figure pct00020
는 러닝 파라미터이며,
Figure pct00021
이고,
Figure pct00022
이다.
따라서, 식 (3) 으로부터, 몇몇의 샘플 BB 들은 최대 우도 추정법을 이용하여 발견될 수도 있다. 다음으로, 새로운 트래킹 BB 는 이들을 클러스터링함으로써 출력될 수 있다. 그 후, 식 (5) 로부터, = CS 러닝 데이터세트 (CS 포지티브 데이터세트 (318) 및 CS 네거티브 데이터세트 (320)) 는 포지티브 샘플들 (504) 및 네거티브 샘플들 (506) 에 의해 갱신될 수 있다.
또한, 도 5 는 CS 서브-트래커 모듈 (182) (도 1) 에 의해 이용되는 이론의 주요 컴포넌트들 중 하나를 나타낸다. 입력 프레임 (502) 에서, 이전 프레임에서 홍채에 근접해 있는 포지티브 바운딩 박스들 (504) 및 이전 프레임에서 홍채와 멀리 떨어져 있는 네거티브 바운딩 박스들 (506) 양방 모두가 샘플링된다. 블록 (508) 에서, 샘플링된 포지티브 바운딩 박스들 (504) 및 네거티브 바운딩 박스들 (506) 로부터 다중 스케일의 이미지 피처들이 생성된다. 이어서, 포지티브 피처 벡터들 (511) 및 네거티브 피처 벡터들 (513) 양자 모두를 포함하는 다중 스케일의 이미지 피처들 (508) 은 저장되고 희소한 매트릭스 투영 (512) 으로의 입력으로서 이용된다. 전술한 바와 같이, 매우 희소한 측정 매트릭스는 제한된 균등 특성을 충족시킬 수 있고, 이미지 피처 벡터 공간으로부터 저 차원의 압축형 감지 부분공간으로의 효율적인 투영을 용이하게 한다. 따라서, 포지티브 및 네거티브 피처 벡터들은 동일한 희소한 측정 매트릭스를 이용하여 투영 또는 압축되며 (514), 상기 설명된 베이즈 분류기에 의해 판별된다. 러닝 분류기 (516) 는 후속 프레임들의 샘플링된 바운딩 박스를 분류하여, 도 7 에 대해 설명되는 최고-신뢰도의 새로운 눈들의 위치를 반환하는 데 이용된다.
도 6 은 일부 실시형태들에 따른, CS 서브-트래커 모듈을 통해 홍채-트래킹을 초기화하는 예시적인 방법의 플로우차트 (600) 를 나타낸다. 박스 (610) 에서, 초기화 페이즈 동안, 홍채 검출기가 각각의 홍채의 초기 바운딩 박스에서 패스하여, CS 서브-트래커 모듈이 '새로운' 홍채 위치를 '발견' 할 필요가 없도록 홍채 위치가 알려진다. 예를 들어, 우리가 선택했던 피처들의 수는, 2-4 개 사이의 바운딩 박스들 각각을 이용하면, 10 일 수도 있다. 이들 수들은 순전히 예시적인 것이며 변경될 수 있음은 이해될 수 있다.
블록 (620) 에서, 하르 피처들을 생성하기 위해 10 개의 피처들이 선정될 수도 있다. 각각의 피처는 가중치를 갖는 한 세트의 직사각형들일 수도 있다. 각각의 직사각형은 0 으로부터 폭/높이 까지 무작위로 선정될 수도 있다. 시작 좌표들은 0 과 오브젝트 직사각형 사이일 수도 있다. '오브젝트' 는 초기 오브젝트 위치 및 차원들일 수도 있다. 직사각형들의 수는 예컨대, 2-4 사이에서 무작위로 선택될 수도 있다. 가중치는 다음의 공식을 이용하여 결정될 수 있다:
Figure pct00023
.
블록 (630) 에서, 박스들은 포지티브 샘플들을 샘플링하기 위해 초기 바운딩 박스 주변에 생성될 수도 있다. 생성된 박스들 중, 무작위 수의 박스들이 maxSampleNum 까지 선택될 수도 있다. 박스들은 0 과 초기 바운딩 박스의 높이 사이에서 무작위로 선택된 폭 및 높이, 그리고 (박스가 선택된다고 가정하면) (i,j) 의 for loop 들에 기초한 초기 위치를 가질 수도 있다. 선택 기준들은 0 으로부터 약간의 반지름 (예컨대, 16 픽셀들) 까지의 유클리드 거리를 갖는 박스들에 기초할 수도 있다. 다음으로, 이들 박스들은 samplePositiveBoxSize 수의 박스들을 갖는 어레이 samplePositiveBox 로서 기록될 수도 있다. 일부 경우들에서, 어레이가 가득 찬다면, 기준들을 충족시키는 잔존하는 박스들은 드롭될 수도 있다.
블록 (640) 에서, 박스들은 네거티브 샘플들을 샘플링하기 위해 초기 바운딩 박스 주변에 생성될 수도 있다. 생성된 박스들 중, 무작위 수의 박스들이 maxSampleNum 까지 선택될 수도 있다. 박스들은 패스된 초기 바운딩 박스의 폭 및 높이, 그리고 (박스가 선택된다고 가정하면) (i,j) 의 for loop 들에 기초한 초기 위치를 가질 수도 있다. 선택된 박스들은 어떤 최소 거리로부터 어떤 최대 거리까지의 유클리드 거리를 가질 것이 요구될 수도 있다. 최소 거리가 0 이 아니라는 점에서 이것이 블록 (630) 과 상이하다는 것은 이해될 수 있다. 다음으로, 이들 박스들은 sampleNegativeBoxSize 수의 박스들을 갖는 어레이 sampleNegativeBox 로서 기록될 수도 있다.
블록 (650) 에서, 현재 픽셀의 상부 좌측으로부터의 이전 픽셀 값들 모두가 함께 합산될 수도 있다. 결과 값은 현재 픽셀에 저장될 수도 있다. 이것은 적분 이미지 (integral image) 를 계산할 수도 있다.
블록 (660) 에서, 10 개의 피처 매트릭스에서의 각각의 엔트리에 있어서, 블록 (630) 에서 선정된 각각의 직사각형의 적분 값이 획득될 수도 있다. 각각의 값은 일시적 sampleFVBuf 에 저장될 수도 있다. 이것은 포지티브 박스 샘플들 및 적분 이미지에 기초하여 피처들을 생성할 수도 있다.
블록 (670) 에서, 가우시안 공식을 위한 뮤 (mu) 및 시그마 (sigma) 는 블록 (660) 에 기초하여 결정될 수도 있다. 피처 매트릭스의 각각의 로우 (row) 를 위한 적분 값들은 로우를 위한 표준 편차 및 평균 값을 계산하는 데 이용될 수도 있다. 따라서, 이로 인해 로우 당 1 개의 표준 편차 변수 및 1 개의 평균 값 (예컨대, 통틀어 10 개의 값들) 의 결과가 발생할 수도 있다. 다음으로, 이들 값들은 각각의 로우를 위한 시그마 를 계산하는 데 이용될 수도 있다 (예컨대, 이로 인해 10 개의 시그마 값들 및 10 개의 값들이 발생).
블록 (680) 에서, 피처들은 네거티브 박스 샘플들 및 적분 이미지에 기초하여 생성될 수도 있다. 10 개의 피처 매트릭스에서의 각각의 엔트리에 있어서, 블록 (640) 에서 선정된 각각의 직사각형의 적분 값이 획득될 수도 있다. 각각의 값은 일시적 sampleFVBuf 에 저장될 수도 있다.
블록 (690) 에서, 블록 (680) 에 기초하여 가우시안 공식을 위해 시그마 가 결정될 수도 있다. 10 개의 피처 매트릭스에서의 각각의 엔트리에 있어서, 표준 편차 및 평균이 결정될 수도 있다.
도 7 은 일부 실시형태들에 따른, CS 서브-트래커 모듈을 통한 홍채-트래킹의 예시적인 방법의 플로우차트 (700) 를 나타낸다. 새로운 프레임의 홍채 위치는 알려져 있지 않을 수도 있지만 CS 서브-트래킹 모듈에 의한 분석의 결과로서 결정될 수도 있다. 블록 (705) 에서, 이전 이미지 프레임으로부터의 바운딩 박스들은, 탐색을 시드하기 위해 홍채 위치가 어디인지에 대한 개략적인 아이디어를 제공하는 데 이용될 수도 있다. 또한, 새로운 이미지 프레임이 안에서 패스될 수도 있다.
블록 (710) 에서, 다수의 샘플들이 오브젝트의 마지막 위치 주변에서 선택될 수도 있다. 박스들은 이전 바운딩 박스들 주변에 생성될 수도 있다. 이 루틴은 탐색 창 내에서의 모든 박스들을 생성할 수 있으며, 직사각형 정보를 기록한다. 박스들은 패스된 이전 박스의 폭 및 높이, 그리고 (i,j) 의 for loop 들에 기초한 초기 위치를 가질 수도 있다. 일부 실시형태들에서, 선택된 박스들은 0 으로부터 약간의 반지름 (예컨대, 16 픽셀들) 까지의 유클리드 거리를 가질 수도 있음이 요구될 수도 있다. 이들 박스들은 detectBoxSize 수의 박스들을 갖는 어레이 detectBox 로서 기록될 수도 있다.
블록 (715) 에서, 적분 이미지가 계산된다. 이것은 현재 픽셀의 상부 좌측으로부터의 이전 픽셀 값들 전부를 합산하고 현재 픽셀에서의 값을 저장함으로써 행해질 수도 있다.
블록 (720) 에서, 피처들은 블록 (710) 으로부터의 샘플 박스들 및 블록 (715) 으로부터의 적분 이미지에 기초하여 생성될 수도 있다. 피처들 (예컨대, 10 개의 피처들) 의 각각에 있어서, 블록 (710) 에서 선택된 각각의 직사각형에 대한 적분 값이 획득될 수도 있고, 각각의 값은 일시적 sampleFVBuf 에 저장될 수도 있다.
블록 (725) 에서, 최고의 신뢰도를 갖는 직사각형이 반환될 수도 있다. 피처들 (예컨대, 10 개의 피처들) 의 각각에 있어서, 베이지안 확률 (Bayesian probability) 계산법이 이하의 공식에 따라 채용될 수도 있다: P(B|A)=P(B)P(AB)/P(A). 단계 (720) 로부터의 입력에 기초하여 가장 가능성있는 바운딩 박스 결과를 선정하기 위해 가우시안 확률 함수를 이용할 때, 포지티브 및 네거티브 시그마들뮤들 이 이용될 수도 있다.
블록 (730) 에서, 박스들은 포지티브 샘플들을 샘플링하기 위해 새롭게 발견된 바운딩 박스 주변에 생성될 수도 있다. 생성된 박스들 중, 무작위 수의 박스들이 maxSampleNum 까지 선택될 수도 있다. 박스들은 0 과 패스된 바운딩 박스의 높이 사이에서 무작위로 선택된 폭 및 높이, 그리고 (박스가 선택된다고 가정하면) (i,j) 의 for loop 들에 기초한 초기 위치를 가질 수도 있다. 선택 기준들은 0 으로부터 약간의 반지름 (예컨대, 16 픽셀들) 까지의 유클리드 거리를 갖는 박스들에 기초할 수도 있다. 다음으로, 이들 박스들은 samplePositiveBoxSize 수의 박스들을 갖는 어레이 samplePositiveBox 로서 기록될 수도 있다.
블록 (735) 에서, 박스들은 네거티브 샘플들을 샘플링하기 위해 초기 바운딩 박스 주변에 생성될 수도 있다. 생성된 박스들 중, 무작위 수의 박스들이 maxSampleNum 까지 선택될 수도 있다. 박스들은 패스된 초기 바운딩 박스의 폭 및 높이, 그리고 (박스가 선택된다고 가정하면) (i,j) 의 for loop 들에 기초한 초기 위치를 가질 수도 있다. 선택된 박스들은 어떤 최소 거리로부터 어떤 최대 거리까지의 유클리드 거리를 가질 것이 요구될 수도 있다. 최소 거리가 0 이 아니라는 점에서 이것이 블록 (730) 과 상이하다는 것은 이해될 수 있다. 다음으로, 이들 박스들은 sampleNegativeBoxSize 수의 박스들을 갖는 어레이 sampleNegativeBox 로서 기록될 수도 있다. 피처들 (예컨대, 10 개의 피처들) 의 각각에 있어서, 각각의 직사각형에 대한 적분 값은 일시적 sampleFVBuf 에 저장될 수도 있다.
블록 (740) 에서, 피처들은 포지티브 박스 샘플들 및 적분 이미지에 기초하여 생성될 수도 있다. 피처들 (예컨대, 10 개의 피처들) 의 각각에 있어서, 선정된 각각의 직사각형에 대한 적분 값이 획득될 수도 있으며, 각각의 값을 일시적 sampleFVBuf 에 저장한다.
블록 (745) 에서, 시그마 가 가우시안 공식을 위해 결정된다. 피처들 (예컨대, 10 개의 피처들) 의 각각에 있어서, 표준 편차가 수행될 수도 있고 평균이 획득될 수도 있다. 평균은 러닝해야 하는 레이트 (러닝레이트 (learnRate)) 뿐만 아니라 이 새로운 값에 기초하여 각각의 피처를 위해 조정될 수도 있다. 즉, 새로운 값들은 임의의 급격한 변경들을 회피하기 위해 오직 15% 만 이용될 수도 있음은 이해될 수 있다.
블록 (750) 에서, 피처들은 네거티브 박스 샘플들 및 적분 이미지에 기초하여 생성될 수도 있다. 피처들 (예컨대, 10 개의 피처들) 의 각각에 있어서, 선정된 각각의 직사각형에 대한 적분 값이 획득될 수도 있으며, 각각의 값을 일시적 sampleFVBuf 에 저장한다.
블록 (755) 에서는, 단계 (750) 에 기초하여 가우시안 공식을 위해 시그마 가 결정된다. 피처들 (예컨대, 10 개의 피처들) 의 각각에 있어서, 표준 편차가 수행될 수도 있고 평균이 획득될 수도 있다. 평균은 이 새로운 값 및 러닝해야 하는 레이트 (러닝레이트) 에 기초하여 각각의 피처를 위해 조정될 수도 있다. 즉, 새로운 값들은 임의의 급격한 변경들을 회피하기 위해 오직 15% 만 이용될 수도 있음은 이해될 수 있다.
도 8 은 일부 실시형태들에 따른, 사용자의 얼굴의 일부분이 가려졌을 때의 눈-트래킹을 나타낸다. 여기서, 도면은 4 개의 이미지 프레임들, 즉 프레임 1 (810), 프레임 2 (820), 프레임 3 (830), 및 프레임 4 (840) 를 도시한다. 프레임 1 (810) 에서, 사용자의 눈들의 양쪽 모두가 FOV 내에 있으며, 눈들 및 눈들을 둘러싸는 피처들 양방 모두를 포위하는 단일의 교차 바운딩 박스 (802) 가 생성된다. 또한, 두 개의 개별적인 홍채 바운딩 박스들 (804) 이 생성되되, 각각의 박스는 눈들 중 하나를 포위한다. 프레임 1 (810) 에 나타낸 이 바운딩 박스 기법은 상기 설명된 기법들을 예시한다. 그러나, 종종, 사용자의 얼굴이 시스템 (100) (도 1) 에 매우 근접해 있어서, 얼굴 중 단지 일부분만 또는 단지 한 쪽 눈만이 카메라 (170) (도 1) 의 FOV 내에 있을 수도 있다.
기존의 솔루션들은, 트래킹 목적들을 위해 오로지 FOV 내에 있는 전체 얼굴에만 의존함에 따라, 홍채를 정확히 트래킹하는 것이 가능하지 않을 수도 있다. 반대로, 시스템 (100) (도 1) 은 오로지 적어도 하나의 눈이 FOV 내에 있을 것만을 요구할 수도 있고, 사용자의 얼굴의 임의의 가림을 용인할 수 있다. 눈들 중 하나만이 FOV 내에 있는 시나리오들에서는, 교차는 하나의 눈에만 기초하여 등록될 수 있기 때문에 시스템 (100) (도 1) 이 홍채를 트래킹하는 것이 여전히 가능할 수도 있다. 두 개의 눈들이 FOV 내에 있는 경우들에서는, 교차는 얼굴 상에서의 크로스오버 영역들일 수도 있다. 단지 하나의 눈만이 FOV 내에 있는 경우들에서는, 하나의 눈이 제 2 눈과는 독립적으로 트래킹, 발견, 및 복구될 수 있다.
프레임 2 (820) 에서, 단지 얼굴의 일부분 및 하나의 눈만이 FOV 내에 있다. CS 서브-트래커 모듈 (182) (도 1) 은 단일의 홍채를 트래킹하고 홍채 바운딩 박스 (808) 내에 홍채를 포위할 수도 있다. 유사하게, DF 서브-트래커 모듈 (184) (도 1) 은, 상기 설명된 방법들 및 기법들을 이용하여, 단일의 눈 및 단일의 눈을 둘러싼 피처들을 포위하는 단일의 교차 바운딩 박스 (806) 를 생성할 수도 있다. 교차 바운딩 박스에 의해 포위된 피처들은, 얼굴 중 얼마나 많은 부분이 FOV 내에 존재하느냐에 의존할 수도 있다. 프레임 3 (830) 에서, 얼굴은 카메라 (170) (도 1) 에 훨씬 더 근접해 있고, 따라서 얼굴 중 훨씬 적은 부분이 FOV 내에 존재한다. 프레임 2 (820) 와 유사하게, CS 서브-트래커 모듈 (182) (도 1) 은 단일의 홍채를 트래킹하고 홍채를 홍채 바운딩 박스 (808) 내에 포위할 수도 있으며, DF 서브-트래커 모듈 (184) (도 1) 은, 단일의 눈 및 단일의 눈을 둘러싼 피처들을 포위하는 단일의 교차 바운딩 박스 (806) 를 생성할 수도 있다. 프레임 3 (830) 에서의 교차 바운딩 박스 (806) 및 홍채 바운딩 박스 (808) 는 프레임 2 (820) 에서의 교차 바운딩 박스 (806) 및 홍채 바운딩 박스 (808) 와는 상이한 크기일 수도 있음이 이해될 수 있다. 크기에 있어서의 차이는 FOV 내에서의 얼굴의 크기에 있어서의 차이에 기인할 수도 있다.
프레임 4 (840) 는 오브젝트 (842) 에 의해 부분적으로 가려진 사용자의 얼굴을 나타낸다. 두 개의 눈들이 통상적으로 검출되도록 얼굴의 대부분이 FOV 내에 있더라도, 얼굴의 거의 절반 및 하나의 눈이 오브젝트 (842) 에 의해 가려지므로, 단지 단일의 눈만이 시스템 (100) (도 1) 에 의해 검출될 수도 있다. 하지만, 시스템 (100) (도 1) 은 전술한 바와 같이 단일한 것을 여전히 정확히 트래킹할 수도 있다. 전술한 바와 같이, CS 서브-트래커 모듈 (182) (도 1) 은 단일의 홍채를 트래킹하고 홍채를 홍채 바운딩 박스 (808) 내에 포위할 수도 있으며, DF 서브-트래커 모듈 (184) (도 1) 은, 단일의 눈 및 단일의 눈을 둘러싼 피처들을 포위하는 단일의 교차 바운딩 박스 (806) 를 생성할 수도 있다.
홍채가 FOV 를 떠나고 FOV 에 재-진입한다면, 본원에 개시된 눈-트래킹 시스템은 홍채를 복구할 수도 있음이 이해될 수 있다. 복구는 DF 서브-트래커 모듈 (184) (도 1) 로부터 출력된 교차 바운딩 박스 (806) 에 기초할 수도 있다. 즉, 기존의 솔루션들에 의해 요구될 수도 있는 바와 같이 눈이 다시 검출될 필요는 없다.
도 9 는 복수의 프레임들 (902) 상에서의 눈-트래킹을 나타낸다. 도면은 6 개의 상이한 프레임들 (902) 을 나타낸다. 각각의 프레임 (902) 은 사용자의 얼굴 및 두 개의 눈들을 FOV 내에 포함한다. CS 서브-트래커 모듈 (182) (도 1) 은 프레임들 (902) 내에서의 눈의 홍채 부분을 트래킹할 수도 있다. 상기 설명한 바와 같이, CS 서브-트래커 모듈 (182) (도 1) 은 눈이 무엇처럼 보이는 것 같은지를 나타내는 이미지들의 데이터세트 ("포지티브 데이터세트" 로 지칭됨), 및 눈이 무엇처럼 보이지 않는 것 같은지를 나타내는 이미지들의 다른 데이터세트 ("네거티브 데이터세트" 로 지칭됨) 를 구축한다. 포지티브 및 네거티브 데이터세트의 조합은, CS 서브-트래커 모듈 (182) (도 1) 로 하여금 그 밖의 모든 것과 비교했을 때 이미지 중 어떤 부분이 눈일 것 같은지를 보다 용이하게 구별하는 것을 허용한다. 포지티브 및 네거티브 데이터세트들이 액세스되어 나중의 프레임들에서의 이미지 데이터와 비교되어, 이미지의 어떤 부분들이 눈일 것 같은지 그리고 어떤 부분들이 아닌지를 신속하게 인식할 수 있다. 일부 실시형태들에서, 포지티브 및 네거티브 데이터세트들은, 눈 그 자체 중 홍채 부분의, 포지티브 및 네거티브 식별 각각에 초점을 맞춘다.
또한, 이전에 논의된 바와 같이, DF 서브-트래커 모듈 (184) (도 1) 은 그 안에 적어도 하나의 눈 및 일관된 피처들을 갖는 주변 영역 (이를테면, 피부, 눈썹들, 콧마루, 안경 프레임) 을 포함하는 얼굴의 일부분을 생성하도록 구성될 수도 있다. 이것은 "교차 바운딩 박스" 또는 "포위하는 바운딩 박스" 로 지칭될 수도 있다.
추가적으로, 또한 이전에 논의된 바와 같이, OF 서브-트래커 모듈 (186) (도 1) 은 프레임들 (902) 에서 모션을 검출하기 위해 최적화될 수도 있다. OF 서브-트래커 모듈 (186) (도 1) 은 프레임들의 쌍들 사이에서의 차이들을 비교할 수도 있다. 이 OF 서브-트래커 모듈 (186) (도 1) 은, 일반적으로 눈들이 어디로 이동하였는지를, 특히, 일 프레임으로부터 그 다음 프레임으로의 눈들의 위치들에 있어서의 급격한 변경들이 존재하는지를, 신속하게 식별하는 데 이용될 수도 있다.
세 개의 서브-트래킹 모듈들의 조합은 프레임들 (902) 상에서 정확한 홍채 트래킹을 허용할 수도 있다. 보이는 바와 같이, 좌측 홍채 바운딩 박스 (904) 는 좌측 홍채를 포위하고 우측 홍채 바운딩 박스 (906) 는 우측 홍채를 포위한다. 홍채가 복수의 프레임들 (902) 상에서의 위치들을 변경시킴에 따라, 좌측 홍채 바운딩 박스 (904) 및 우측 홍채 바운딩 박스 (906) 도 또한 위치들을 변경시켜서 대응하는 홍채를 트래킹한다. 심지어 홍채 전부가 FOV 내에 있지 않더라도, 예컨대, 홍채가 눈꺼풀 등에 의해 부분적으로 가려지더라도, 트래킹이 정확함은 이해될 수 있다.
도 10 은 일부 실시형태들에 따른, 눈을 트래킹하는 예시적인 방법의 플로우차트를 나타낸다. 블록 (1010) 에서, 얼굴과 눈을 포함하는 제 1 이미지가 수신된다. 예를 들어, 도 1 에서, 카메라는 얼굴과 눈을 포함하는 이미지를 캡처할 수도 있다. 다음으로, 눈-트래킹 모듈은, 추가적인 프로세싱을 위해 그리고/또는 이미지로의 액세스를 다양한 서브-트래커 모듈들에게 제공하기 위해, 캡처된 이미지를 수신할 수도 있다.
블록 (1020) 에서, 수신된 제 1 이미지에 기초하여 시야 (FOV) 에서의 눈의 초기 위치가 결정된다. 예를 들어, 도 1 에서, CS 서브-트래커 모듈은 FOV 에서의 눈의 초기 위치를 결정할 수도 있다. 또한, DF 서브-트래커 모듈은 FOV 에서의 눈과 연관된 피처들을 결정할 수도 있다. 일부 실시형태들에서, 복수의 포지티브 이미지 샘플들이 CS 서브-트래커 모듈에 의해 생성되되, 각각은 눈의 고-신뢰도 검출을 나타낸다. 일부 실시형태들에서, 복수의 네거티브 이미지 샘플들이 CS 서브-트래커 모듈에 의해 생성되되, 각각은 눈을 제외한 제 1 이미지의 일부분의 고-신뢰도 검출을 나타낸다. 일부 실시형태들에서, DF 서브-트래커 모듈은 얼굴의 일부분의 서브세트 및 눈을 포함하는 교차 바운딩 박스를 생성할 수도 있다.
블록 (1030) 에서, 눈을 포함한 얼굴의 일부분을 포함하는 제 2 이미지가 수신된다. 예를 들어, 도 1 에서, 카메라는 눈을 포함한 얼굴의 일부분을 포함하는 제 2 이미지를 캡처할 수도 있다. 다음으로, 눈-트래킹 모듈은, 추가적인 프로세싱을 위해 그리고/또는 이미지로의 액세스를 다양한 서브-트래커 모듈들에게 제공하기 위해, 캡처된 이미지를 수신할 수도 있다.
블록 (1040) 에서, 수신된 제 2 이미지에 기초하여 눈의 초기 위치로부터의 눈의 위치에 있어서의 변경이 트래킹된다. 예를 들어, 도 1 에서, CS 서브-트래커 모듈, DF 서브-트래커 모듈 및 OF 서브-트래커 모듈의 조합이 결합되어, 눈을 성공적으로 트래킹하고 종래의 눈 트래커들의 전술한 문제점들을 해결하기에 충분히 견고한 솔루션을 생성할 수도 있다. 유의할 점으로는, 종래의 눈-트래킹 방법들과는 달리, 설명된 서브-트래커들 중 어떠한 것도 전체 얼굴의 인식을 요구하지 않으며, 따라서 본 개시들의 방법들이 성공하기 위해 (눈들을 포함한) 단지 얼굴의 일부분만이 FOV 내에서 이용가능할 필요가 있다. 또한, 서브-트래커들은, 얼굴 (또는 얼굴의 일부분) 이 FOV 를 떠나서 나중에 FOV 에 재진입하는지를 트래킹하기 전에 눈을 검출하는 프로세스를 재시작할 필요가 없을 수도 있다. 세 개의 서브-트래커들의 조합은 이들 이점들, 및 전체 얼굴이 항상 트래킹될 필요는 없기 때문에 현재의 기법들과 비교할 때 보다 낮은 전력 사용 및 보다 빠른 프로세싱과 같은 추가적인 이점들을 제공한다. 일부 실시형태들에서, 트래킹하는 단계는 실시간으로 수행된다.
일부 실시형태들에서, 눈의 위치에 있어서의 변경을 트래킹하는 것은 복수의 포지티브 이미지 샘플들 및 복수의 네거티브 이미지 샘플들에 추가로 기초한다. 일부 실시형태들에서, 눈의 위치에 있어서의 변경을 트래킹하는 것은 교차 바운딩 박스에 추가로 기초한다.
일부 실시형태들에서, OF 서브-트래커 모듈은 제 1 이미지와 제 2 이미지 사이에서의 눈의 모션을 검출한다. 일부 실시형태들에서, 눈의 위치에 있어서의 변경을 트래킹하는 것은 눈의 검출된 모션에 추가로 기초한다.
예시적인 컴퓨팅 시스템
도 11 은 하나 이상의 실시형태들이 구현될 수도 있는 컴퓨팅 시스템의 일 예를 나타낸다. 도 11 에 나타낸 컴퓨터 시스템은 전술한 눈-트래킹 시스템의 일부로서 포함될 수도 있다. 예를 들어, 컴퓨터 시스템 (1100) 은 텔레비전, 컴퓨팅 디바이스, 서버, 데스크탑, 워크스테이션, 자동차에서의 제어 또는 상호작용 시스템, 태블릿, 넷북 또는 임의의 다른 적합한 컴퓨팅 시스템의 컴포넌트들 중 일부를 나타낼 수 있다. 컴퓨팅 디바이스는 이미지 캡처 디바이스 또는 입력 센서 (sensory) 유닛 및 사용자 출력 디바이스를 갖는 임의의 컴퓨팅 디바이스일 수도 있다. 이미지 캡처 디바이스 또는 입력 센서 유닛은 카메라 디바이스일 수도 있다. 사용자 출력 디바이스는 디스플레이 유닛일 수도 있다. 컴퓨팅 디바이스의 예들은 비디오 게임 콘솔들, 태블릿들, 스마트폰들, 및 임의의 다른 핸드헬드 디바이스들을 포함하지만 이에 한정되지 않는다. 도 11 은 본 명세서에 설명된 바와 같은 다양한 다른 실시형태들에 의해 제공되는 방법들을 수행할 수 있고, 그리고/또는 호스트 컴퓨터 시스템, 원격 키오스크/단말, 판매시점관리 (point-of-sale) 디바이스, 자동차에서의 전화기 또는 네비게이션 또는 멀티미디어 인터페이스, 컴퓨팅 디바이스, 셋톱 박스, 테이블 컴퓨터 및/또는 컴퓨터 시스템으로서 기능할 수 있는, 컴퓨터 시스템 (1100) 의 일 실시형태의 도식적인 예시를 제공한다. 도 11 은 적절하다면 그 전부 또는 일부가 활용될 수도 있는 다양한 컴포넌트들의 일반화된 예시를 제공하는 것만을 의미한다. 따라서, 도 11 은 개별적인 시스템 엘리먼트들이 상대적으로 분리된 방식으로 또는 상대적으로 보다 통합된 방식으로 어떻게 구현될 수도 있는지를 폭넓게 도시한다. 일부 실시형태들에서, 컴퓨터 시스템 (1100) 은 도 1 에서 설명된 시스템의 기능성을 구현하기 위해 사용될 수도 있다.
컴퓨터 시스템 (1100) 은 버스 (1105) 를 통해 전기적으로 커플링될 수 있는 (또는, 그렇지 않으면, 적절하다면, 통신할 수도 있는) 하드웨어 엘리먼트들을 포함하는 것으로 나타나 있다. 하드웨어 엘리먼트들은, 하나 이상의 범용 프로세서들 및/또는 (디지털 신호 프로세싱 칩들, 그래픽 가속 프로세서들, 및/또는 이와 유사한 것들과 같은) 하나 이상의 특수 목적의 프로세서들을 제한 없이 포함하는 하나 이상의 프로세서들 (1110); 하나 이상의 카메라들, 센서들, 마우스, 키보드, 초음파 또는 다른 사운드들을 검출하도록 구성되는 마이크로폰, 및/또는 이와 유사한 것들을 제한 없이 포함할 수 있는 하나 이상의 입력 디바이스들 (1115); 및 본 발명의 실시형태들에 사용된 디바이스와 같은 디스플레이 유닛, 프린터 및/또는 이와 유사한 것들을 제한 없이 포함할 수 있는 하나 이상의 출력 디바이스들 (1120) 을 포함할 수도 있다.
본 발명의 실시형태들의 일부 구현들에서, 다양한 입력 디바이스들 (1115) 및 출력 디바이스들 (1120) 은 디스플레이 디바이스들, 테이블들, 바닥들, 벽들, 및 윈도우 스크린들과 같은 인터페이스들에 내장될 수도 있다. 또한, 프로세서들에 커플링되는 입력 디바이스들 (1115) 과 출력 디바이스들 (1120) 은 다-차원의 트래킹 시스템들을 형성할 수도 있다.
컴퓨터 시스템 (1100) 은 로컬 및/또는 네트워크 액세스 가능한 저장소를 제한 없이 포함할 수 있고, 그리고/또는 프로그램가능하고 플래시-갱신가능하고 그리고/또는 이와 유사할 수 있는, 랜덤 액세스 메모리 ("RAM") 및/또는 판독 전용 메모리 ("ROM") 와 같은 고체-상태 저장 디바이스, 광학 저장 디바이스, 드라이브 어레이, 디스크 드라이브를 제한 없이 포함할 수 있는 하나 이상의 비일시적 (non-transitory) 저장 디바이스들 (1125) 을 더 포함 (및/또는 이와 통신할 수도 있음) 할 수도 있다. 이러한 저장 디바이스들은 다양한 파일 시스템들, 데이터베이스 구조들, 및/또는 이와 유사한 것들을 제한 없이 포함하는 임의의 적절한 데이터 저장소를 구현하도록 구성될 수도 있다.
컴퓨터 시스템 (1100) 은 또한, 모뎀, 네트워크 카드 (무선 또는 유선), 적외선 통신 디바이스, 무선 통신 디바이스 및/또는 칩셋 (이를테면, BluetoothTM 디바이스, 802.11 디바이스, WiFi 디바이스, WiMax 디바이스, 셀룰러 통신 시설들 등), 및/또는 이와 유사한 것들을 제한 없이 포함할 수 있는 통신 서브시스템 (1130) 을 포함할 수도 있다. 통신 서브시스템 (1130) 은 데이터로 하여금 네트워크, 다른 컴퓨터 시스템들, 및/또는 본원에 기술된 임의의 다른 디바이스들과 교환될 수 있게 할 수도 있다. 많은 실시형태들에서, 컴퓨터 시스템 (1100) 은 전술한 바와 같이 RAM 또는 ROM 디바이스를 포함할 수 있는 비일시적 작업 메모리 (1135) 를 더 포함할 것이다.
컴퓨터 시스템 (1100) 은 또한, 작업 메모리 (1135) 내에 현재 위치된 바와 같이 나타낸, 운영 시스템 (1140), 디바이스 드라이버들, 실행가능 라이브러리들, 및/또는 다른 코드, 이를테면, 본원에 설명된 바와 같이, 다양한 실시형태들에 의해 제공되는 컴퓨터 프로그램들을 포함할 수도 있고, 그리고/또는, 다른 실시형태들에 의해 제공되는 방법들을 구현하고 그리고/또는 시스템들을 구성하도록 설계될 수도 있는 하나 이상의 애플리케이션 프로그램들 (1145) 을 포함하는 소프트웨어 엘리먼트들을 포함할 수 있다. 단지 예로서, 상기 논의된 방법(들)에 대해 설명된 하나 이상의 프로시저들은 컴퓨터 (및/또는 컴퓨터 내의 프로세서) 에 의해 실행가능한 코드 및/또는 명령들로서 구현될 수도 있고; 그리고 나서, 일 양태에서, 이러한 코드 및/또는 명령들은 설명된 방법들에 따라 하나 이상의 동작들을 수행하도록 범용 컴퓨터 (또는 다른 디바이스) 를 구성 및/또는 적응시키기 위해 사용될 수 있다.
이들 명령들 및/또는 코드의 세트는 전술한 저장 디바이스(들) (1125) 과 같은 컴퓨터 판독가능 저장 매체 상에 저장될 수도 있다. 일부 경우들에서, 저장 매체는 컴퓨터 시스템 (1100) 과 같은 컴퓨터 시스템 내에 포함될 수도 있다. 다른 실시형태들에서, 저장 매체가 그곳에 저장된 명령들/코드를 이용하여 범용 컴퓨터를 프로그램하고, 구성하고 및/또는 적응시키기 위해 사용될 수 있도록, 저장 매체는 컴퓨터 시스템으로부터 분리될 수도 있고 (예컨대, 컴팩트 디스크와 같은 착탈가능 매체), 그리고/또는 설치 (installation) 패키지로 제공될 수도 있다. 이들 명령들은, 컴퓨터 시스템 (1100) 에 의해 실행될 수 있는, 실행가능한 코드의 형태를 취할 수 있고, 그리고/또는 컴퓨터 시스템 (1100) 상에서 컴파일 및/또는 설치를 하고 나서 (예컨대, 일반적으로 이용가능한 임의의 다양한 컴파일러들, 설치 프로그램들, 압축/압축해제 유틸리티들 등을 이용하고 나서) 실행가능한 코드의 형태를 취하는 소스 및/또는 설치가능한 코드의 형태를 취할 수도 있다.
특정 요구사항들에 따라 실질적인 변형들이 이루어질 수도 있다. 예를 들어, 고객맞춤형 (customized) 하드웨어가 또한 사용될 수 있고, 그리고/또는 특정 엘리먼트들이 하드웨어, (애플릿들 (applets) 등과 같은 휴대용 소프트웨어를 포함하는) 소프트웨어, 또는 양방 모두로 구현될 수도 있다. 또한, 네트워크 입력/출력 디바이스들과 같은 다른 컴퓨팅 디바이스들로의 접속이 채용될 수도 있다. 일부 실시형태들에서, 컴퓨터 시스템 (1100) 의 하나 이상의 엘리먼트들은 생략될 수도 있고 또는 도시된 시스템으로부터 분리되어 구현될 수도 있다. 예를 들어, 프로세서 (1110) 및/또는 다른 엘리먼트들은 입력 디바이스 (1115) 로부터 분리되어 구현될 수도 있다. 일 실시형태에서, 프로세서는 별도로 구현되는 하나 이상의 카메라들로부터 이미지들을 수신하도록 구성된다. 일부 실시형태들에서, 도 11 에 도시된 것들에 부가하여 엘리먼트들이 컴퓨터 시스템 (1100) 에 포함될 수 있다.
일부 실시형태들은 본 개시에 따른 방법들을 수행하기 위해 컴퓨터 시스템 (이를테면, 컴퓨터 시스템 (1100)) 을 채용할 수도 있다. 예를 들어, 작업 메모리 (1135) 에 포함된 하나 이상의 명령들 (운영 시스템 (1140) 및/또는 애플리케이션 프로그램 (1145) 과 같은 다른 코드 내에 포함될 수도 있음) 의 하나 이상의 시퀀스들을 실행하는 프로세서 (1110) 에 응답하여, 설명된 방법들의 프로시저들의 일부 또는 전부가 컴퓨터 시스템 (1100) 에 의해 수행될 수도 있다. 이러한 명령들은, 하나 이상의 저장 디바이스(들) (1125) 과 같은 다른 컴퓨터 판독가능 매체로부터 작업 메모리 (1135) 내로 판독될 수도 있다. 단지 예로서, 작업 메모리 (1135) 내에 포함된 명령들의 시퀀스들의 실행은 프로세서(들) (1110) 로 하여금 본원에 설명된 방법들의 하나 이상의 프로시저들을 수행하게 할 수도 있다.
본원에서 사용된 용어들 "머신 (machine) 판독가능 매체" 및 "컴퓨터 판독가능 매체"는 머신으로 하여금 특정한 방식으로 동작하게 하는 데이터를 제공하는 데 참여하는 임의의 매체를 지칭한다. 컴퓨터 시스템 (1100) 을 사용하여 구현된 일부 실시형태들에서, 다양한 컴퓨터 판독가능 매체들은 실행을 위해 프로세서(들) (1110) 에 명령들/코드를 제공하는 데 관여될 수도 있고, 그리고/또는 이러한 명령들/코드를 (예컨대, 신호들로서) 저장 및/또는 반송하는 데 사용될 수도 있다. 많은 구현들에서, 컴퓨터 판독가능 매체는 물리적 및/또는 유형의 (tangible) 저장 매체이다. 이러한 매체는 비-휘발성 매체들, 휘발성 매체들 및 송신 매체들을 포함하지만 이들에 한정되지 않는 많은 형태들을 취할 수도 있다. 비-휘발성 매체들은, 예를 들어, 저장 디바이스(들) (1125) 와 같은 광학적 및/또는 자기적 디스크들을 포함한다. 휘발성 매체들은 작업 메모리 (1135) 와 같은 동적 메모리를 제한 없이 포함한다. 송신 매체들은 버스 (1105) 를 포함하는 와이어들을 포함하는, 광 섬유들, 구리선 및 동축 케이블들뿐만 아니라 통신 서브시스템 (1130) 의 다양한 컴포넌트들 (및/또는 통신 서브시스템 (1130) 이 다른 디바이스들과의 통신을 제공하는 매체들) 을 제한 없이 포함한다. 그러므로, 송신 매체들은 또한, (전파 및 적외선 데이터 통신 중에 생성되는 것들과 같은 전파, 음파 및/또는 광파들을 제한 없이 포함하는) 파동들의 형태를 취할 수 있다.
물리적 및/또는 유형의 컴퓨터 판독가능 매체들의 통상적인 형태들은, 예를 들어, 플로피 디스크 (disk), 플렉시블 디스크 (disk), 하드 디스크 (disk), 자기 테이프, 또는 임의의 다른 자기적 매체, CD-ROM, 임의의 다른 광학적 매체, 펀치카드들 (punchcards), 종이 테이프, 홀들의 패턴들을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 이하에 설명되는 바와 같은 반송파, 또는 컴퓨터가 명령들 및/또는 코드를 판독할 수 있는 임의의 다른 매체를 포함한다.
컴퓨터 판독가능 매체들의 다양한 형태들은 실행을 위해 프로세서(들) (1110) 에게 하나 이상의 명령들의 하나 이상의 시퀀스들을 반송하는 것에 관여될 수도 있다. 단지 예로서, 명령들은 초기에 원격 컴퓨터의 광학적 디스크 (disc) 및/또는 자기적 디스크 (disk) 상에서 반송될 수도 있다. 원격 컴퓨터는 명령들을 자신의 동적 메모리에 로드할 수도 있고, 명령들이 컴퓨터 시스템 (1100) 에 의해 수신 및/또는 실행되도록 송신 매체를 통해 명령들을 신호들로서 전송할 수도 있다. 전자기적 신호들, 음향 신호들, 광학적 신호들 및/또는 이와 유사한 신호들의 형태일 수도 있는 이들 신호들은 본 발명의 다양한 실시형태들에 따라 명령들이 인코딩될 수 있는 반송파들의 모든 예들이다.
통신 서브시스템 (1130) (및/또는 그것의 컴포넌트들) 은 일반적으로 신호들을 수신할 것이고, 그리고 나서 버스 (1105) 는 신호들 (및/또는 신호들에 의해 반송되는 데이터, 명령들 등) 을, 프로세서(들) (1110) 가 명령들을 취출하고 실행하는 작업 메모리 (1135) 에 반송할 수도 있다. 작업 메모리 (1135) 에 의해 수신되는 명령들은 프로세서(들) (1110) 에 의한 실행 전 또는 후 중 어느 한 시점에 비일시적 저장 디바이스 (1125) 상에 선택적으로 저장될 수도 있다.
위에서 논의된 방법들, 시스템들, 및 디바이스들은 예들이다. 다양한 실시형태들은 적절하다면 다양한 프로시저들 또는 컴포넌트들을 생략, 치환, 또는 부가할 수도 있다. 예를 들어, 대안적 구성들에서, 설명된 방법들은 설명된 것과 상이한 순서로 수행될 수도 있고, 그리고/또는 다양한 스테이지들이 부가, 생략, 및/또는 결합될 수도 있다. 또한, 특정 실시형태들에 대해 설명된 피처들은 다양한 다른 실시형태들에서 결합될 수도 있다. 실시형태들의 상이한 양태들 및 엘리먼트들은 유사한 방식으로 결합될 수도 있다. 또한, 기술은 진화하고, 따라서, 엘리먼트들 중 다수가 이들 특정 예들에 대한 본 개시의 범위를 제한하지 않는 예들이다.
실시형태들에 대한 완전한 이해를 제공하기 위해 특정 세부사항들이 설명으로 주어진다. 하지만, 실시형태들은 이들 특정 세부사항들 없이 실시될 수도 있다. 예를 들어, 잘 알려진 회로들, 프로세스들, 알고리즘들, 구조들 및 기법들은 실시형태들을 모호하게 하는 것을 회피하기 위해 불필요한 세부사항 없이 나타냈다. 이 설명은 단지 예시적 실시형태들만을 제공하며, 본 발명의 범위, 적용가능성, 또는 구성을 제한하는 것으로 의도되지 않는다. 오히려, 실시형태들의 상기 설명은 본 발명의 실시형태들을 구현하기 위한 가능한 설명을 당업자에게 제공할 것이다. 본 발명의 사상 및 범위로부터 벗어나지 않으면서 엘리먼트들의 배열 및 기능에 있어서 다양한 변경들이 이루어질 수도 있다.
또한, 일부 실시형태들은 흐름도들 또는 블록도들로서 도시되는 프로세스들로서 설명된다. 각각은 순차적 프로세스로서 동작들을 설명할 수도 있지만, 동작들 중 다수는 병렬로 또는 동시에 수행될 수 있다. 또한, 동작들의 순서는 재배열될 수도 있다. 프로세스는 도면들에 포함되지 않는 추가적 단계들을 가질 수도 있다. 또한, 방법들의 실시형태들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술 언어들 (hardware description languages) 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 소프트웨어, 펌웨어, 미들웨어, 또는 마이크로코드로 구현되는 경우, 연관된 태스크들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들은 저장 매체와 같은 컴퓨터 판독가능 매체에 저장될 수도 있다. 프로세서들은 연관된 태스크들을 수행할 수도 있다. 따라서, 위에서의 설명에 있어서, 컴퓨터 시스템에 의해 수행되는 바와 같이 설명되는 기능들 또는 방법들은, 기능들 또는 방법들을 수행하도록 구성되는 프로세서, 예를 들어 프로세서 (1110) 에 의해 수행될 수도 있다. 또한, 이러한 기능들 또는 방법들은 하나 이상의 컴퓨터 판독가능 매체 상에 저장된 명령들을 실행하는 프로세서에 의해 수행될 수도 있다.
몇몇 실시형태들을 설명하였지만, 다양한 수정들, 대안적 구성들 및 등가들이 본 개시의 사상으로부터 벗어나지 않으면서 이용될 수도 있다. 예를 들어, 상기 엘리먼트들은 단지 더 큰 시스템의 컴포넌트일 수도 있고, 여기서 다른 규정들은 본 발명의 애플리케이션보다 우선권을 얻거나, 그렇지 않으면 본 발명의 애플리케이션을 수정할 수도 있다. 또한, 다수의 단계들은, 상기 엘리먼트들이 고려되기 전에, 고려되는 중에, 또는 고려된 후에 착수될 수도 있다. 따라서, 상기 설명은 본 개시의 범위를 제한하지 않는다.
다양한 예들이 설명되었다. 이들 및 다른 예들은 다음의 청구항들의 범위 내에 있다.

Claims (30)

  1. 눈을 트래킹하는 방법으로서,
    얼굴과 상기 눈을 포함하는 제 1 이미지를 수신하는 단계;
    수신된 상기 제 1 이미지에 기초하여 시야 (FOV) 에서의 상기 눈의 초기 위치를 결정하는 단계;
    상기 눈을 포함한 상기 얼굴의 일부분을 포함하는 제 2 이미지를 수신하는 단계; 및
    수신된 상기 제 2 이미지에 기초하여 상기 눈의 상기 초기 위치로부터의 상기 눈의 위치에 있어서의 변경을 트래킹하는 단계
    를 포함하는, 눈을 트래킹하는 방법.
  2. 제 1 항에 있어서,
    복수의 포지티브 이미지 샘플들을 생성하는 단계를 더 포함하고, 상기 복수의 포지티브 이미지 샘플들 각각은 상기 눈의 고-신뢰도 검출을 나타내는, 눈을 트래킹하는 방법.
  3. 제 2 항에 있어서,
    복수의 네거티브 이미지 샘플들을 생성하는 단계를 더 포함하고, 상기 복수의 네거티브 이미지 샘플들 각각은 상기 눈을 제외한 상기 제 1 이미지의 일부분의 고-신뢰도 검출을 나타내는, 눈을 트래킹하는 방법.
  4. 제 3 항에 있어서,
    상기 눈의 위치에 있어서의 변경을 트래킹하는 단계는 상기 복수의 포지티브 이미지 샘플들 및 상기 복수의 네거티브 이미지 샘플들에 추가로 기초하는, 눈을 트래킹하는 방법.
  5. 제 1 항에 있어서,
    상기 얼굴의 상기 일부분의 서브세트 및 상기 눈을 포함하는 교차 바운딩 박스를 생성하는 단계를 더 포함하고,
    상기 눈의 위치에 있어서의 변경을 트래킹하는 단계는 상기 교차 바운딩 박스에 추가로 기초하는, 눈을 트래킹하는 방법.
  6. 제 1 항에 있어서,
    상기 제 1 이미지와 상기 제 2 이미지 사이에서의 상기 눈의 모션을 검출하는 단계를 더 포함하는, 눈을 트래킹하는 방법.
  7. 제 6 항에 있어서,
    상기 눈의 위치에 있어서의 변경을 트래킹하는 단계는 상기 눈의 검출된 상기 모션에 추가로 기초하는, 눈을 트래킹하는 방법.
  8. 제 1 항에 있어서,
    상기 트래킹하는 단계는 실시간으로 수행되는, 눈을 트래킹하는 방법.
  9. 눈을 트래킹하는 장치로서,
    하나 이상의 이미지들을 캡처하도록 구성된 카메라;
    하나 이상의 트래킹 모듈들을 포함하는 메모리; 및
    상기 카메라 및 상기 메모리에 커플링된 프로세서
    를 포함하고, 상기 프로세서는, 상기 하나 이상의 트래킹 모듈들이 실행될 때,
    상기 카메라를 통해, 얼굴과 상기 눈을 포함하는 제 1 이미지를 수신하고;
    수신된 상기 제 1 이미지에 기초하여 시야 (FOV) 에서의 상기 눈의 초기 위치를 결정하고;
    상기 카메라를 통해, 상기 눈을 포함한 상기 얼굴의 일부분을 포함하는 제 2 이미지를 수신하고; 그리고
    수신된 상기 제 2 이미지에 기초하여 상기 눈의 상기 초기 위치로부터의 상기 눈의 위치에 있어서의 변경을 트래킹하도록
    동작가능한, 눈을 트래킹하는 장치.
  10. 제 9 항에 있어서,
    상기 프로세서는 또한, 상기 하나 이상의 트래킹 모듈들이 실행될 때, 복수의 포지티브 이미지 샘플들을 생성하도록 동작가능하고, 상기 복수의 포지티브 이미지 샘플들 각각은 상기 눈의 고-신뢰도 검출을 나타내는, 눈을 트래킹하는 장치.
  11. 제 10 항에 있어서,
    상기 프로세서는 또한, 상기 하나 이상의 트래킹 모듈들이 실행될 때, 복수의 네거티브 이미지 샘플들을 생성하도록 동작가능하고, 상기 복수의 네거티브 이미지 샘플들 각각은 상기 눈을 제외한 상기 제 1 이미지의 일부분의 고-신뢰도 검출을 나타내는, 눈을 트래킹하는 장치.
  12. 제 11 항에 있어서,
    상기 눈의 위치에 있어서의 변경을 트래킹하는 것은 상기 복수의 포지티브 이미지 샘플들 및 상기 복수의 네거티브 이미지 샘플들에 추가로 기초하는, 눈을 트래킹하는 장치.
  13. 제 9 항에 있어서,
    상기 프로세서는 또한, 상기 하나 이상의 트래킹 모듈들이 실행될 때, 상기 얼굴의 상기 일부분의 서브세트 및 상기 눈을 포함하는 교차 바운딩 박스를 생성하도록 동작가능하고,
    상기 눈의 위치에 있어서의 변경을 트래킹하는 것은 상기 교차 바운딩 박스에 추가로 기초하는, 눈을 트래킹하는 장치.
  14. 제 9 항에 있어서,
    상기 프로세서는 또한, 상기 하나 이상의 트래킹 모듈들이 실행될 때, 상기 제 1 이미지와 상기 제 2 이미지 사이에서의 상기 눈의 모션을 검출하도록 동작가능한, 눈을 트래킹하는 장치.
  15. 제 14 항에 있어서,
    상기 눈의 위치에 있어서의 변경을 트래킹하는 것은 상기 눈의 검출된 상기 모션에 추가로 기초하는, 눈을 트래킹하는 장치.
  16. 제 9 항에 있어서,
    상기 트래킹하는 것은 실시간으로 수행되는, 눈을 트래킹하는 장치.
  17. 눈을 트래킹하는 장치로서,
    얼굴과 상기 눈을 포함하는 제 1 이미지를 수신하는 수단;
    수신된 상기 제 1 이미지에 기초하여 시야 (FOV) 에서의 상기 눈의 초기 위치를 결정하는 수단;
    상기 눈을 포함한 상기 얼굴의 일부분을 포함하는 제 2 이미지를 수신하는 수단; 및
    수신된 상기 제 2 이미지에 기초하여 상기 눈의 상기 초기 위치로부터의 상기 눈의 위치에 있어서의 변경을 트래킹하는 수단
    을 포함하는, 눈을 트래킹하는 장치.
  18. 제 17 항에 있어서,
    복수의 포지티브 이미지 샘플들을 생성하는 수단을 더 포함하고, 상기 복수의 포지티브 이미지 샘플들 각각은 상기 눈의 고-신뢰도 검출을 나타내는, 눈을 트래킹하는 장치.
  19. 제 18 항에 있어서,
    복수의 네거티브 이미지 샘플들을 생성하는 수단을 더 포함하고, 상기 복수의 네거티브 이미지 샘플들 각각은 상기 눈을 제외한 상기 제 1 이미지의 일부분의 고-신뢰도 검출을 나타내는, 눈을 트래킹하는 장치.
  20. 제 19 항에 있어서,
    상기 눈의 위치에 있어서의 변경을 트래킹하는 것은 상기 복수의 포지티브 이미지 샘플들 및 상기 복수의 네거티브 이미지 샘플들에 추가로 기초하는, 눈을 트래킹하는 장치.
  21. 제 17 항에 있어서,
    상기 얼굴의 상기 일부분의 서브세트 및 상기 눈을 포함하는 교차 바운딩 박스를 생성하는 수단을 더 포함하고,
    상기 눈의 위치에 있어서의 변경을 트래킹하는 것은 상기 교차 바운딩 박스에 추가로 기초하는, 눈을 트래킹하는 장치.
  22. 제 17 항에 있어서,
    상기 제 1 이미지와 상기 제 2 이미지 사이에서의 상기 눈의 모션을 검출하는 수단을 더 포함하는, 눈을 트래킹하는 장치.
  23. 제 22 항에 있어서,
    상기 눈의 위치에 있어서의 변경을 트래킹하는 것은 상기 눈의 검출된 상기 모션에 추가로 기초하는, 눈을 트래킹하는 장치.
  24. 프로세서 판독가능 명령들을 포함하는 프로세서 판독가능 비일시적 컴퓨터 판독가능 매체로서,
    상기 프로세서 판독가능 명령들은, 프로세서로 하여금,
    얼굴과 눈을 포함하는 제 1 이미지를 수신하게 하고;
    수신된 상기 제 1 이미지에 기초하여 시야 (FOV) 에서의 상기 눈의 초기 위치를 결정하게 하고;
    상기 눈을 포함한 상기 얼굴의 일부분을 포함하는 제 2 이미지를 수신하게 하고; 그리고
    수신된 상기 제 2 이미지에 기초하여 상기 눈의 상기 초기 위치로부터의 상기 눈의 위치에 있어서의 변경을 트래킹하게 하도록
    구성되는, 프로세서 판독가능 비일시적 컴퓨터 판독가능 매체.
  25. 제 24 항에 있어서,
    상기 프로세서 판독가능 명령들은 또한, 상기 프로세서로 하여금, 복수의 포지티브 이미지 샘플들을 생성하게 하도록 구성되고, 상기 복수의 포지티브 이미지 샘플들 각각은 상기 눈의 고-신뢰도 검출을 나타내는, 프로세서 판독가능 비일시적 컴퓨터 판독가능 매체.
  26. 제 25 항에 있어서,
    상기 프로세서 판독가능 명령들은 또한, 상기 프로세서로 하여금, 복수의 네거티브 이미지 샘플들을 생성하게 하도록 구성되고, 상기 복수의 네거티브 이미지 샘플들 각각은 상기 눈을 제외한 상기 제 1 이미지의 일부분의 고-신뢰도 검출을 나타내는, 프로세서 판독가능 비일시적 컴퓨터 판독가능 매체.
  27. 제 26 항에 있어서,
    상기 눈의 위치에 있어서의 변경을 트래킹하는 것은 상기 복수의 포지티브 이미지 샘플들 및 상기 복수의 네거티브 이미지 샘플들에 추가로 기초하는, 프로세서 판독가능 비일시적 컴퓨터 판독가능 매체.
  28. 제 24 항에 있어서,
    상기 프로세서 판독가능 명령들은 또한, 상기 프로세서로 하여금, 상기 얼굴의 상기 일부분의 서브세트 및 상기 눈을 포함하는 교차 바운딩 박스를 생성하게 하도록 구성되고,
    상기 눈의 위치에 있어서의 변경을 트래킹하는 것은 상기 교차 바운딩 박스에 추가로 기초하는, 프로세서 판독가능 비일시적 컴퓨터 판독가능 매체.
  29. 제 24 항에 있어서,
    상기 프로세서 판독가능 명령들은 또한, 상기 프로세서로 하여금, 상기 제 1 이미지와 상기 제 2 이미지 사이에서의 상기 눈의 모션을 검출하게 하도록 구성되는, 프로세서 판독가능 비일시적 컴퓨터 판독가능 매체.
  30. 제 29 항에 있어서,
    상기 눈의 위치에 있어서의 변경을 트래킹하는 것은 상기 눈의 검출된 상기 모션에 추가로 기초하는, 프로세서 판독가능 비일시적 컴퓨터 판독가능 매체.
KR1020167033886A 2014-05-29 2015-04-14 효율적인 포레스트 감지 기반의 눈 트래킹 KR20170012287A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/290,408 2014-05-29
US14/290,408 US9514364B2 (en) 2014-05-29 2014-05-29 Efficient forest sensing based eye tracking
PCT/US2015/025773 WO2015183420A1 (en) 2014-05-29 2015-04-14 Efficient forest sensing based eye tracking

Publications (1)

Publication Number Publication Date
KR20170012287A true KR20170012287A (ko) 2017-02-02

Family

ID=53015939

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167033886A KR20170012287A (ko) 2014-05-29 2015-04-14 효율적인 포레스트 감지 기반의 눈 트래킹

Country Status (6)

Country Link
US (1) US9514364B2 (ko)
EP (1) EP3149654A1 (ko)
JP (1) JP2017523498A (ko)
KR (1) KR20170012287A (ko)
CN (1) CN106471440A (ko)
WO (1) WO2015183420A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220086940A (ko) * 2020-12-17 2022-06-24 주식회사 파인더스에이아이 하이브리드 사물 추적 시스템 및 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102287751B1 (ko) * 2014-09-25 2021-08-09 삼성전자 주식회사 전자 장치의 홍채 인식 방법 및 장치
US20180068449A1 (en) 2016-09-07 2018-03-08 Valve Corporation Sensor fusion systems and methods for eye-tracking applications
JP6725381B2 (ja) * 2016-09-20 2020-07-15 株式会社東芝 画像照合装置および画像照合方法
TWI685772B (zh) * 2018-11-23 2020-02-21 國立臺灣大學 取得眼球追蹤位置的影像運算方法和其系統
CN112580423A (zh) * 2019-09-30 2021-03-30 托比股份公司 处理用户眼睛的图像的方法、相关联系统和计算机程序
US11442543B1 (en) * 2021-01-29 2022-09-13 Apple Inc. Electronic devices with monocular gaze estimation capabilities
GB2608705B (en) * 2021-06-30 2023-11-01 Apple Inc Eye tracking data filtering

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263088B1 (en) 1997-06-19 2001-07-17 Ncr Corporation System and method for tracking movement of objects in a scene
JP3549725B2 (ja) 1998-04-13 2004-08-04 シャープ株式会社 画像処理装置
KR100361497B1 (ko) 1999-01-08 2002-11-18 엘지전자 주식회사 얼굴영역 추출방법
US6590999B1 (en) 2000-02-14 2003-07-08 Siemens Corporate Research, Inc. Real-time tracking of non-rigid objects using mean shift
US6937744B1 (en) 2000-06-13 2005-08-30 Microsoft Corporation System and process for bootstrap initialization of nonparametric color models
US7058209B2 (en) 2001-09-20 2006-06-06 Eastman Kodak Company Method and computer program product for locating facial features
CA2521791C (en) * 2003-04-11 2011-03-15 Bjorn Kahlen System and method for acquiring data and aligning and tracking of an eye
US20050063568A1 (en) * 2003-09-24 2005-03-24 Shih-Ching Sun Robust face detection algorithm for real-time video sequence
US7702425B2 (en) 2004-06-07 2010-04-20 Ford Global Technologies Object classification system for a vehicle
US7817822B2 (en) 2005-10-14 2010-10-19 Microsoft Corporation Bi-directional tracking using trajectory segment analysis
US7840061B2 (en) 2007-02-28 2010-11-23 Mitsubishi Electric Research Laboratories, Inc. Method for adaptively boosting classifiers for object tracking
US7756296B2 (en) 2007-03-27 2010-07-13 Mitsubishi Electric Research Laboratories, Inc. Method for tracking objects in videos using forward and backward tracking
KR100947990B1 (ko) 2008-05-15 2010-03-18 성균관대학교산학협력단 차영상 엔트로피를 이용한 시선 추적 장치 및 그 방법
FR2951565B1 (fr) 2009-10-20 2016-01-01 Total Immersion Procede, programme d'ordinateur et dispositif de suivi hybride de representations d'objets, en temps reel, dans une sequence d'images
US8600166B2 (en) 2009-11-06 2013-12-03 Sony Corporation Real time hand tracking, pose classification and interface control
CN101866215B (zh) * 2010-04-20 2013-10-16 复旦大学 在视频监控中采用视线跟踪的人机交互装置和方法
CN102236899B (zh) 2010-05-07 2013-12-04 株式会社理光 物体检测方法和装置
US8385632B2 (en) 2010-06-01 2013-02-26 Mitsubishi Electric Research Laboratories, Inc. System and method for adapting generic classifiers for object detection in particular scenes using incremental training
US10321892B2 (en) 2010-09-27 2019-06-18 Siemens Medical Solutions Usa, Inc. Computerized characterization of cardiac motion in medical diagnostic ultrasound
GB2484133B (en) 2010-09-30 2013-08-14 Toshiba Res Europ Ltd A video analysis method and system
US9619035B2 (en) 2011-03-04 2017-04-11 Microsoft Technology Licensing, Llc Gesture detection and recognition
US9141196B2 (en) 2012-04-16 2015-09-22 Qualcomm Incorporated Robust and efficient learning object tracker
KR20140019950A (ko) 2012-08-07 2014-02-18 성균관대학교산학협력단 단말기의 모노 카메라에 입력된 손가락 영상을 이용한 3차원 좌표 생성 방법 및 모노 카메라에 입력된 손가락 영상을 이용하여 3차원 좌표를 생성하는 이동 단말기
CN103677226B (zh) * 2012-09-04 2016-08-03 北方工业大学 表情识别输入方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220086940A (ko) * 2020-12-17 2022-06-24 주식회사 파인더스에이아이 하이브리드 사물 추적 시스템 및 방법

Also Published As

Publication number Publication date
WO2015183420A1 (en) 2015-12-03
JP2017523498A (ja) 2017-08-17
US20150347814A1 (en) 2015-12-03
CN106471440A (zh) 2017-03-01
EP3149654A1 (en) 2017-04-05
US9514364B2 (en) 2016-12-06

Similar Documents

Publication Publication Date Title
KR20170012287A (ko) 효율적인 포레스트 감지 기반의 눈 트래킹
US10943126B2 (en) Method and apparatus for processing video stream
US10579865B2 (en) Facial verification method and apparatus
EP3872689B1 (en) Liveness detection method and device, electronic apparatus, storage medium and related system using the liveness detection method
US20190130580A1 (en) Methods and systems for applying complex object detection in a video analytics system
JP6288530B2 (ja) 視線追跡のための方法
US20210055545A1 (en) Pose prediction with recurrent neural networks
US9646200B2 (en) Fast pose detector
KR102433931B1 (ko) 움직임 인식 방법 및 움직임 인식 장치
CN110136224A (zh) 图像融合方法和设备
Xu et al. Sensor-assisted multi-view face recognition system on smart glass
KR20140109901A (ko) 오브젝트 추적 및 프로세싱
WO2016077000A1 (en) Systems and methods for tracking an object
CN112149615A (zh) 人脸活体检测方法、装置、介质及电子设备
US11720745B2 (en) Detecting occlusion of digital ink
US20180165517A1 (en) Method and apparatus to recognize user
US20230130355A1 (en) Image processing method and apparatus
KR102415507B1 (ko) 영상 처리 방법 및 영상 처리 장치
US20240046487A1 (en) Image processing method and apparatus
CN111310595B (zh) 用于生成信息的方法和装置
Wang Real-time face detection and recognition based on deep learning
CN112541418A (zh) 用于图像处理的方法、装置、设备、介质和程序产品
CN112906597A (zh) 用户身份的识别方法、装置和刷脸设备
KR102617213B1 (ko) 소프트웨어 기반의 객체 트래킹 제공 방법 및 그를 위한 컴퓨팅 장치
CN111986230A (zh) 一种视频中目标物的姿态跟踪方法及装置