KR102385874B1 - 3차원 시선 벡터를 이용한 차량 탑승자 참여 - Google Patents

3차원 시선 벡터를 이용한 차량 탑승자 참여 Download PDF

Info

Publication number
KR102385874B1
KR102385874B1 KR1020207016245A KR20207016245A KR102385874B1 KR 102385874 B1 KR102385874 B1 KR 102385874B1 KR 1020207016245 A KR1020207016245 A KR 1020207016245A KR 20207016245 A KR20207016245 A KR 20207016245A KR 102385874 B1 KR102385874 B1 KR 102385874B1
Authority
KR
South Korea
Prior art keywords
vehicle
driver
interest
determining
occupant
Prior art date
Application number
KR1020207016245A
Other languages
English (en)
Other versions
KR20200145825A (ko
Inventor
안킷 아로라
블레이즈 마이클 켈러
구루 나가라잔
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20200145825A publication Critical patent/KR20200145825A/ko
Application granted granted Critical
Publication of KR102385874B1 publication Critical patent/KR102385874B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/08Interaction between the driver and the control system
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/08Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to drivers or passengers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/12Details of acquisition arrangements; Constructional details thereof
    • G06V10/14Optical characteristics of the device performing the acquisition or on the illumination arrangements
    • G06V10/143Sensing or illuminating at different wavelengths
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/59Context or environment of the image inside of a vehicle, e.g. relating to seat occupancy, driver state or inner lighting conditions
    • G06V20/597Recognising the driver's state or behaviour, e.g. attention or drowsiness
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • G06V40/171Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • H04N13/383Image reproducers using viewer tracking for tracking with gaze detection, i.e. detecting the lines of sight of the viewer's eyes
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo, light or radio wave sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera
    • B60W2420/42
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2540/00Input parameters relating to occupants
    • B60W2540/225Direction of gaze
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10048Infrared image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30268Vehicle interior

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Automation & Control Theory (AREA)
  • Mathematical Physics (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Software Systems (AREA)
  • Ophthalmology & Optometry (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Traffic Control Systems (AREA)
  • Image Analysis (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 개시의 기술에 따르면, 방법은 차량의 카메라 시스템을 사용하여, 차량 탑승자의 적어도 하나의 이미지를 캡처하는 단계와, 탑승자의 적어도 하나의 이미지에 기초하여, 차량 내 탑승자의 하나 이상의 눈 위치를 결정하는 단계와, 탑승자의 적어도 하나의 이미지에 기초하여 시선 벡터를 결정하는 단계를 포함한다. 방법은 또한 시선 벡터에 기초하여, 탑승자의 하나 이상의 눈 위치 및 차량의 차량 데이터 파일, 탑승자가 응시하는 차량의 복수의 관심 영역으로부터 관심 영역을 결정하는 단계와, 차량 데이터 파일은 복수의 관심 영역 각각의 개별 위치를 지정하고, 관심 영역에 기초하여 동작을 선택적으로 수행하는 단계를 포함할 수 있다.

Description

3차원 시선 벡터를 이용한 차량 탑승자 참여
반자율 주행 특징을 갖는 차량이 점점 일반화되고 있다. 차량에는 차선 경계 내로 차량을 유지하거나 코너 주위로 차량을 안내하거나 다른 차량의 존재에 기초하여 자동으로 가속 및 제동하는 기능이 포함될 수 있다. 이러한 운전 보조 기능은 적절하게 사용될 때 유용하지만 일부 운전자는 이러한 기능에 의존하여 장시간 동안 차량을 전적으로 제어한다. 운전자는 차량의 헤드 유닛과 상호 작용하거나, 창 밖으로 풍경을 보거나, 휴대폰을 보거나, 식사하거나, 차량을 적극적으로 운전하지 않고 다른 작업을 수행할 수 있다. 불행하게도, 이러한 운전 보조 시스템은 사용자 상호 작용을 요구하도록 설계되었기 때문에 부주의한 운전자는 사고를 일으킬 수 있다.
일반적으로, 본 개시는 컴퓨팅 시스템이 사용자가 차량 운전에 참여하고 있는지 또는 3차원 차량 캐빈 공간 내에서 3차원 시선 벡터를 사용하여 다른 무언가에 주의를 기울이고 있는지 여부를 결정할 수 있게 하는 기술에 관한 것이다. 핸들을 터치하도록 사용자에게 요구하고, 운전자의 눈이 떠(open) 있는지 결정하고, 얼굴 표정 또는 깜빡임 속도를 분석하지 않고, 본 개시의 기술은 컴퓨팅 시스템이 사용자가 응시하는 차량 내의 위치를 보다 정확하게 결정하여 차량내의 해당 위치에 실제로 위치하는 것으로 결정할 수 있다. 예를 들어, 컴퓨팅 시스템은 3차원 차량 캐빈 내에서 탑승자의 머리 및/또는 눈의 위치를 결정하고 탑승자의 안면에 적어도 부분적으로 기초하여 3차원 시선 벡터를 결정할 수 있다. 캐빈 공간 내의 탑승자의 머리/눈의 3차원 배치와 3차원 시선 벡터를 사용하여, 컴퓨팅 시스템은 백미러, 차량의 헤드 유닛, 차량의 계기 디스플레이, 차량의 전면 유리창과 같이 사용자가 응시하는 3차원 캐빈 공간 내의 위치를 보다 정확하게 결정할 수 있다. 일부 사례에서, 컴퓨팅 시스템은 (예를 들어, 탑승자가 응시하는 위치가 창과 관련되어 있기 때문에) 탑승자가 차량 외부의 무언가를 보고 있다고 결정할 수 있다. 그러한 사례에서, 컴퓨팅 시스템은 탑승자가 측면 창을 바라 보고 있어 차량 운전에 충분한 주의를 기울이지 않을 수 있다고 결정할 수 있다. 사용자가 응시하는 위치를 사용하여, 컴퓨팅 시스템은 다양한 안전 관련 또는 다른 동작(조치)(예를 들어, 사용자가 창 밖에서 응시하는 것을 촬영하고, 승객의 헤드 유닛과의 상호 작용 능력을 제한하지 않고 운전자의 차량 헤드 유닛과의 상호 작용 능력을 제한하고, 운전자가 도로 규칙을 얼마나 잘 준수하고 있는지 평가하는 것 등)을 취할 수 있다.
이러한 방식으로, 본 개시의 기술은 컴퓨팅 시스템이 탑승자와 차량의 참여 수준을 보다 잘 확인하기 위해 차량 탑승자가 어디를 응시하는지를 보다 정확하게 결정할 수 있게 한다. 탑승자가 응시하는 위치를 보다 정확하게 결정함으로써, 컴퓨팅 시스템은 탑승자가 도로에 주의를 기울이고 있는지의 여부를 결정할 수 있을 뿐만 아니라 탑승자가 응시하는 객체와 관련된 다양한 다른 동작을 수행할 수도 있다. 따라서, 본 명세서에 기술된 시선 검출 시스템은 컴퓨팅 시스템이 전형적인 운전자 주의 시스템과 비교하여 추가 기능을 제공할 수 있게 한다.
하나 이상의 예의 세부 사항은 첨부 도면 및 이하의 설명에 기재되어 있다. 본 개시의 다른 특징, 목적 및 이점은 상세한 설명 및 도면 및 청구 범위로부터 명백할 것이다.
도 1은 본 개시의 하나 이상의 양태에 따른, 3차원 시선 벡터를 사용하여 운전자 참여를 결정하도록 구성된 예시적인 차량 컴퓨팅 시스템을 포함하는 차량 내부를 도시하는 개념도이다.
도 2는 본 개시의 하나 이상의 양태에 따른, 내부 카메라 시스템을 구비한 예시적인 차량을 도시하는 개념도이다.
도 3은 본 개시의 하나 이상의 양태에 따른 운전자의 예시적인 안면을 도시하는 개념도이다.
도 4는 본 개시의 하나 이상의 양태에 따른 관심 영역을 갖는 차량의 예시적인 내부를 도시하는 개념도이다.
도 5는 본 개시의 하나 이상의 양태에 따른, 3차원 시선 벡터를 사용하여 운전자 참여를 결정하도록 구성된 예시적인 컴퓨팅 디바이스를 도시하는 블록도이다.
도 6a 내지 6e는 본 개시의 하나 이상의 양태에 따른 예시적인 기계 학습 모델의 양태를 도시하는 개념도이다.
도 7은 본 개시의 하나 이상의 양태에 따른, 3차원 시선 벡터를 사용하여 운전자 참여를 결정하도록 구성된 컴퓨팅 시스템의 예시적인 동작들을 도시하는 흐름도이다.
도 1은 본 개시의 하나 이상의 양태에 따른, 3차원(3D) 시선(eye gaze) 벡터를 사용하여 운전자 참여(engagement)를 결정하도록 구성된 예시적인 차량 컴퓨팅 시스템을 포함하는 차량의 내부를 도시하는 개념도이다. 도 1은 카메라(102A 및 102B)(통칭하여, "카메라(102)") 외에 차량(100)의 내부(본 명세서에서 차량(100)의 "캐빈"으로도 지칭됨) 및 차량 컴퓨팅 시스템(104)의 단면도를 도시한다. 도 1에 도시된 차량은 자동차일 수 있지만, 본 개시의 양태는 트럭, 모터 싸이클, 항공기, 선박, 기차 또는 다른 차량을 포함하여 다른 유형의 차량에도 적용될 수 있다. 도 1에서, 운전자는 일반적으로 좌석을 차지할 수 있고 그 좌석의 뒤 또는 옆에 다른 승객 좌석이 위치될 수 있다.
카메라(102)는 카메라 또는 고체 촬상 디바이스와 같은 임의의 적절한 유형의 이미지 획득 디바이스 중 하나 이상일 수 있다. 일부 예에서, 카메라(102)는 높은 시야 및 얕은 초점 심도를 갖는 하나 이상의 적외선 카메라일 수 있고, 일반적으로 차량(100)의 하나 이상의 좌석을 향하도록 배향된 백라이트 적외선 카메라일 수 있다. 다른 예에서, 카메라(102)는 하나 이상의 다른 적외선 카메라, 열 화상 카메라, 열 이미지 카메라, 감광성 카메라, 레인지 센서, 깊이(depth) 카메라, 단층 촬영 디바이스, 레이더 디바이스 또는 초음파 카메라를 포함할 수 있는 하나 이상의 다른 유형의 카메라 또는 이미지 센서일 수 있거나 추가로 포함할 수 있다. 일부 예에서, 카메라(102)는 컴퓨터 비전 기술의 적용에 적합한 임의의 이미지 캡처 디바이스일 수 있다. 사용된 센서 또는 카메라의 유형에 따라 결과 이미지는 2차원 이미지, 3차원 볼륨 또는 이미지 시퀀스를 포함할 수 있다. 픽셀 값은 일반적으로 하나 이상의 스펙트럼 대역에서의 광 강도에 대응하지만, 음파 또는 전자기파의 심도, 흡수 또는 반사, 또는 핵 자기 공명과 같은 다양한 물리적 측정과 관련될 수도 있다. 도 1에는 2대의 카메라(102)만이 도시되어 있지만. 차량(100)은 차량(100)의 내부에 위치된 둘 이상의 카메라(102)를 포함할 수 있으며, 본 개시의 기술은 임의의 수의 카메라(102)에 의해 캡처된 임의의 수의 이미지를 사용할 수 있다.
일반적으로, 차량 컴퓨팅 시스템(104)은 차량 탑승자와의 사용자 상호 작용을 요구하는 다른 작업을 보조하고, 통지하고, 즐겁게 하고(entertain) 또는 수행하도록 동작할 수 있다. 차량 컴퓨팅 시스템(104)은 차량 헤드 유닛, 인포테인먼트 시스템 또는 그의 서브 컴포넌트로 지칭될 수 있다. 예를 들어, 차량 컴퓨팅 시스템(104)은 차량의 하나 이상의 탑승자를 대신하여 기능을 수행하거나 정보를 처리하는 다양한 애플리케이션을 실행할 수 있다. 예를 들어, 차량 컴퓨팅 시스템(104)은 목적지에 대한 방향을 제공하는 내비게이션 서비스를 제공할 수 있다. 차량 컴퓨팅 시스템(104)은 또한 질의에 응답하여 및/또는 선제적 보조 또는 권고로서 정보를 제공하는 정보 검색 서비스를 제공할 수 있다. 차량 컴퓨팅 시스템(104)은 또한 차량에 관한 차량 데이터, 또는 오디오 또는 비디오와 같은 멀티미디어를 제공할 수 있다. 차량 컴퓨팅 시스템(104)에 의해 제공될 수 있는 기능의 몇몇 예만 언급되고, 차량 컴퓨팅 시스템(104)은 많은 추가 기능을 제공할 수 있다. 이러한 방식 및 다른 방식으로, 차량 컴퓨팅 시스템(104)은 차량의 하나 이상의 탑승자에 대한 운전 또는 승차 경험을 개선할 수 있다.
카메라들(102)에 의한 이미지 캡처를 사용하여, 카메라 시스템 및/또는 차량 컴퓨팅 시스템(104)은 차량(100) 내부의 탑승자의 위치를 결정할 수 있고, 탑승자의 3D 시선 벡터(예를 들어, 3D 시선 벡터(112))를 결정할 수 있다. 카메라들(102)은 탑승자(예를 들어, 차량(100)의 운전자)가 차량(100)을 운전할 때 차량(100)의 탑승자의 이미지를 캡처할 수 있다. 일부 사례(instance)에서, 카메라들(102)은 차량(100)의 다른 탑승자의 이미지를 캡처하는 카메라를 포함할 수 있다. 카메라들(102)은 적어도 하나 이상의 프로세서 및 메모리를 포함하는 카메라 시스템의 일부일 수 있다. 카메라들(102)에 의해 캡처된 이미지는 카메라 시스템 또는 차량 컴퓨팅 시스템(104) 또는 둘 다에 의해 분석될 수 있다. 다양한 예에서, 차량 컴퓨팅 시스템(104)과 관련하여 본 명세서에 설명된 기술들은 또한 컴퓨팅 시스템에 의해 전체적으로 또는 부분적으로 수행될 수 있다.
탑승자의 머리 및/또는 눈을 차량(100)의 내부에 위치시키기 위해, 차량 컴퓨팅 시스템(104)은 하나 이상의 카메라(102)에 의해 캡처된 이미지를 이용하여 하나 이상의 카메라(102)로부터 탑승자의 눈(또는 머리)까지의 거리를 결정한다. 일부 사례에서, 적어도 2대의 카메라(102)가 탑승자의 이미지를 캡처한다. 차량 컴퓨팅 시스템(104)은 적어도 2대의 카메라(102) 각각의 위치가 알려져 있다면 주어진 이미지들 사이의 시차 각도를 분석할 수 있다. 시차 각도와 카메라간 거리를 사용하여, 차량 컴퓨팅 시스템(104)은 적어도 2대의 카메라(102) 중 하나 이상과 탑승자 눈 사이의 거리를 결정한다. 다른 예로서, 카메라들(102) 중 하나는 적외선 카메라일 수 있다. 카메라들(102) 중 하나를 사용하여, 차량 컴퓨팅 시스템(104)은 적외선 카메라에 의해 캡처된 이미지의 왜곡을 분석하여 적외선 카메라(102)와 탑승자 눈 사이의 거리를 결정할수 있다.
카메라들(102)과 탑승자의 눈 사이의 이러한 결정된 거리뿐만 아니라 캡처 된 이미지에서 탑승자의 눈의 위치를 사용하여, 차량 컴퓨팅 시스템(104)은 카메라(102)에 대하여 탑승자의 눈을 3D 공간에 배치할 수 있다. 즉, 차량 컴퓨팅 시스템(104) 및/또는 카메라 시스템은 하나 이상의 카메라(102)에 대한 차량(100) 내부의 운전자의 눈 위치를 결정할 수 있다. 탑승자의 눈 위치는 하나 이상의 카메라(102)에 대해 정의된 3D 공간 내의 위치이다. 예를 들어, 3D 공간은 구일 수 있고 카메라(102) 중 하나의 위치에 대응하는 중심을 가질 수 있다. 이러한 예에서, 탑승자의 눈 위치는 (x, y, z) 좌표에 의해 정의될 수 있으며, 여기서 (0,0,0)는 구의 중심으로 사용되는 카메라(102) 중 하나의 위치이다. 이러한 좌표는 "카메라 기반 좌표계"내에 위치하는 것으로 지칭될 수 있다.
차량 컴퓨팅 시스템(104)은 또한 차량(100) 탑승자의 눈을 추적할 수 있다. 예를 들어, 카메라들(102)을 사용하여, 차량 컴퓨팅 시스템(104)은 카메라들(102)에 의해 캡처된 다수의 상이한 이미지에 걸쳐 탑승자의 눈 위치 및 움직임을 추적할 수 있다. 눈 위치 및 눈동자의 움직임 또는 눈의 다른 특징(즉, 시선 추적)을 사용하여, 차량 컴퓨팅 시스템(104)은 제1 초기 3D 시선 벡터를 결정할 수 있다. 그러나, 다양한 사례에서, 탑승자의 눈은 폐색될(가려질) 수 있으므로, 카메라들 (102)에 의해 캡처된 이미지는 탑승자 눈의 선명한 이미지를 포함하지 않을 수 있다. 따라서, 탑승자 눈의 위치 및 움직임을 추적하는 것에 의존하기 보다, 차량 컴퓨팅 시스템(104)은 캡처된 이미지를 추가로 분석하여 탑승자의 안면(facial plane)을 결정할 수 있다.
탑승자의 안면을 계산할 때, 차량 컴퓨팅 시스템(104)은 하나 이상의 카메라(102)에 의해 캡처된 하나 이상의 이미지에서 복수의 얼굴 랜드마크를 식별할 수 있다. 얼굴 랜드마크는 입의 가장자리, 눈, 코, 귀, 눈썹, 턱 또는 다른 얼굴 특징을 포함할 수 있다. 식별된 얼굴 랜드마크를 사용하여, 차량 컴퓨팅 시스템(104)은 이미지에 포함된 탑승자의 얼굴이 다양한 얼굴 랜드마크 사이의 기하학적 일관성에 기초하여 임의의 피치, 롤 또는 요를 나타내는지 결정할 수 있다. 예를 들어, 탑승의 입과 눈 사이의 전체 거리에 대한 탑승자의 두 눈 사이의 거리가 탑승자가 똑바로 앞을 바라보고 있을 때보다 작으면, 차량 컴퓨팅 시스템(104)은 탑승자가 왼쪽 또는 오른쪽을 보고 있다고 결정한다. 차량 컴퓨팅 시스템(104)이 이미지가 탑승자의 오른쪽 귀를 포함하지만 탑승자의 왼쪽 귀를 포함하지 않는다고 결정하면, 차량 컴퓨팅 시스템(104)은 탑승자가 왼쪽을 바라보고 있다고 결정한다. 안면의 피치, 롤 및 요 각도는 얼굴 랜드마크 사이의 거리의 상대적인 변화에 기초하여 결정될 수 있다. 결정된 안면의 피치, 롤 및 요 각도를 사용하여, 차량 컴퓨팅 시스템(104)은 제2 초기 3D 시선 벡터를 결정할 수 있다. 본 명세서에 설명된 바와 같이, 피치, 롤 및 요는 특정 축을 중심으로 사용자의 머리 회전을 지칭할 수 있다. 일반적으로, 롤은 수직축을 중심으로 회전하는 머리를 지칭할 수 있으며, 머리를 좌우로 회전시키는 것으로도 지칭된다. 피치는 마치 사람이 끄덕이는 것처럼 머리를 위아래로 움직이는 것을 지칭한다. 요는 사용자가 수직축을 통해 머리를 좌우로 회전시키는 것을 의미하며 이 회전은 사용자의 한쪽 귀를 다른 쪽 귀로 움직이는 수평면과 일치할 수 있다.
다양한 사례에서, 차량 컴퓨팅 시스템(104)은 이미지에 트레이닝된 기계 학습 모델을 적용하여 안면을 결정할 수 있다. 기계 학습 모델은 이미 식별된 얼굴 랜드마크 및 이미 결정된 안면 각도를 갖는 다른 사람의 이미지를 사용하여 트레이닝될 수 있다. 기계 학습 모델은 사용자 피드백 및 차량 컴퓨팅 시스템(104)에 의해 제공되는 피드백에 기초하여 지속적으로 학습될 수 있다. 예를 들어, 차량 컴퓨팅 시스템(104)은 안면을 사용하여 결정된 제2 초기 3D 시선 벡터와 비교할 때 시선 추적을 사용하여 결정된 제1 초기 3D 시선 벡터에 기초하여 기계 학습 모델의 파라미터를 랭킹(순위 매김)하거나 조정할 수 있다. 기계 학습 시스템이 동작하는 방법에 대한 추가적인 세부 사항은 도 6a-6e와 관련하여 아래에서 설명된다.
일단 제1 및 제2 초기 3D 시선 벡터가 결정되면, 차량 컴퓨팅 시스템(104)은 제1 및 제2 초기 3D 시선 벡터 모두에 기초하여, 탑승자의 3D 시선 벡터(112)를 결정할 수 있다. 다양한 사례에서, 차량 컴퓨팅 시스템(104)은 제1 및 제2 초기 3D 시선 벡터의 평균을 사용하여 3D 시선 벡터(112)를 결정할 수 있다. 차량 컴퓨팅 시스템(104)은 다른 예에서, 제1 및 제2 3D 시선 벡터 중 하나 이상에 가중을 적용하고 3D 시선 벡터(112)를 결정하기 위해 그 가중된 값을 사용할 수 있다. 차량 컴퓨팅 시스템(104)은 제1 또는 제2 초기 3D 시선 벡터가 정확하게 결정되었다는 신뢰도에 기초하여 제1 및 제2 초기 3D 시선 벡터에 적용할 가중치를 결정할 수 있다. 예를 들어, 차량 컴퓨팅 시스템(104)이 얼굴 랜드마크의 일부만을 검출하면(예를 들어, 눈과 코는 있지만 입이나 턱은 없음), 안면의 피치, 롤 및 요 각도에 대해 에러 범위가 증가될 수 있다. 이와 같이, 차량 컴퓨팅 시스템(104)은 제2 초기 3D 시선 벡터에 감소된 가중치를 적용하고 시선 추적을 사용하여 결정된 제1 초기 3D 시선 벡터에 증가된 가중치를 적용할 수 있다.
제1 및 제2 초기 3D 시선 벡터 모두를 요구하는 것으로 기술되었지만, 차량 컴퓨팅 시스템(104)은 또한 제1 및 제2 초기 3D 시선 벡터 중 하나를 사용하여 3D 시선 벡터(112)를 결정할 수 있다. 예를 들어, 카메라들(102)에 의해 캡처된 이미지에서 탑승자의 눈이 감기져 있거나 탑승자가 선글라스를 착용하고 있다면, 차량 컴퓨팅 시스템(104)은 제2 초기 3D 시선 벡터(즉, 탑승자의 안면의 피치, 롤 및 요에 기초하여 결정된 3D 시선 벡터)를 3D 시선 벡터(112)로서 사용할 수 있다. 다른 예로서, 카메라들(102)에 의해 캡처된 이미지가 (예를 들어, 탑승자의 손에 의해) 부분적으로 가려진 탑승자의 얼굴을 포함하면, 차량 컴퓨팅 시스템(104)은 제1 초기 3D 시선 벡터(즉, 시선 추적을 사용하여 결정된 3D 시선 벡터)를 3D 시선 벡터(112)로서 사용할 수 있다.
3D 시선 벡터(112)를 결정하는 차량 컴퓨팅 시스템(104) 대신 또는 이에 부가하여, 카메라 시스템은 3D 시선 벡터(112)를 결정할 수 있다. 즉, 카메라들(102)로부터 하나 이상의 이미지를 수신하는 차량 컴퓨팅 시스템(104) 대신에, 카메라 시스템은 (예를 들어, 각각의 카메라(102) 내에서 또는 차량 컴퓨팅 시스템(104)과 구별되는 컴퓨팅 디바이스를 사용하여) 이미지를 분석하고, 3D 시선 벡터(112)를 결정하고, 그 3D 시선 벡터(112)의 값을 차량 컴퓨팅 시스템(104)으로 제공할 수 있다. 일부 사례에서, 카메라 시스템은 제1 및 제2 초기 3D 시선 벡터를 결정하고 이를 차량 컴퓨팅 시스템(104)에 제공한다. 이어서 차량 컴퓨팅 시스템(104)은 카메라 시스템으로부터 수신된 제1 및 제2 초기 3D 시선 벡터를 이용하여 3D 시선 벡터(112)를 결정할 수 있다.
3D 시선 벡터(112) 및 하나 이상의 카메라(102)에 대한 탑승자의 눈 위치를 사용하여, 차량 컴퓨팅 시스템(104)은 탑승자가 응시하는(보고 있는) 하나 이상의 관심 영역을 결정한다. 이러한 결정을 하기 위해, 차량 컴퓨팅 시스템(104)은 3D 시선 벡터(112)가 차량(100) 내부의 하나 이상의 위치와 교차하는 곳을 결정한다. 일 예로서, 차량(100)은 예시적인 제2 차량(100)과 상이할 수 있으며, 차량 컴퓨팅 시스템(104)에는 차량-특정 데이터 파일이 제공된다. 차량 데이터 파일은 차량(100)의 내부에서 각 관심 영역에 대한 개별(respective) 좌표 세트를 포함하는데, 여기서 각각의 개별 좌표 세트는 차량의 내부의 중심(즉, 차량 기반 좌표계를 사용하여)에 대해 정의되고, 각각의 개별 좌표 세트는 관심 영역에 대한 2 차원 평면을 정의한다. 또한, 다양한 차량의 내부 특징을 정의하는 차량 데이터 파일을 사용함으로써, 본 개시의 기술은 프로그래머가 각각의 상이한 차량에 대한 계산을 커스터마이즈할 필요없이 다양한 차량에 걸쳐 보다 쉽게 적용될 수 있다.
탑승자의 위치는 초기에 하나 이상의 카메라(102)에 대해(즉, 카메라 기반 좌표계 내에서) 결정될 수 있기 때문에, 차량 컴퓨팅 시스템(104)은 탑승자의 눈의 초기 위치 좌표를 차량 데이터 파일에 지정된 중심에 대해 정의된 좌표 세트로 변환할 수 있다. 즉, 하나 이상의 카메라(102)에 대해 정의된 구의 좌표를 사용하는 대신, 차량 컴퓨팅 시스템(104)은 탑승자의 눈 위치를 조정하여 차량(100)의 내부를 포함하는 구의 중심에 대한 위치를 정의한다. 차량(100)의 내부를 포함하고 카메라들(102) 중 하나의 위치 이외의 다른 곳에 위치된 중심을 갖는 구 내의 좌표 위치는 본 명세서에서 "차량 기반 좌표계"내의 좌표를 갖는 것으로 지칭될 수 있다. 일부 사례에서, 차량 기반 좌표계의 중심은 차량(100) 내부의 중심점에 위치할 수 있다. 다른 사례에서, 중심은 운전자 좌석과 차량(100)의 대시 보드 또는 핸들 사이의 공간의 중심점에 위치될 수 있다.
차량 데이터 파일은 차량 기반 좌표계을 사용하여 차량(100) 내의 하나 이상의 카메라(102)의 위치(예를 들어,(x, y, z) 좌표로)를 정의할 수 있다. 차량 컴퓨팅 시스템(104)은 하나 이상의 카메라(102)의 좌표 위치 및 카메라 기반 좌표계을 사용하여 정의된 탑승자 눈의 좌표 위치를 사용하여 차량 기반 좌표계에서 탑승자 눈의 새로운 좌표 위치를 생성한다.
탑승자 눈의 차량 기반 좌표계 위치를 사용하여, 차량 컴퓨팅 시스템(104)은 관심 영역과 관련된 평면과 교차할 때까지 운전자의 눈으로부터 3D 시선 벡터(112)를 투사한다. 차량 컴퓨팅 시스템(104)은 3D 시선 벡터(112)에 의해 교차되는 평면이 차량(100)의 탑승자가 응시하는 관심 영역인 것으로 결정한다. 도 1에 도시된 바와 같이, 3D 시선 벡터(112)는 차량(100)의 전면 유리창쪽으로 투사된다. 따라서, 차량 컴퓨팅 시스템(104)은 탑승자가 차량(100)의 전면 유리창을 바라보고 있고 차량(100) 운전에 열중하고 있다고 결정할 수 있다.
일부 사례에서, 차량 컴퓨팅 시스템(104)은 차량(100)의 탑승자가 어느 관심 영역에서 오랜 시간에 걸쳐 응시하는지 주기적으로 또는 연속적으로 결정할 수 있다. 탑승자가 응시하는 관심 영역들을 모니터링함으로써, 차량 컴퓨팅 시스템(104)은 탑승자의 참여 레벨을 결정할 수 있고 탑승자가 도로 규칙 및 안전 운전 모범 사례를 얼마나 잘 준수하고 있는지 결정할 수 있다. 예를 들어, 탑승자가 사이드 미러를 보지 않고 차선을 변경하거나 후방 창을 보지 않고 차량(100)을 후진시키는 경우, 차량 컴퓨팅 시스템(104)은 탑승자가 안전 모범 사례에 따라 차량(100)을 운전하고 있지 않다고 결정할 수 있다. 다른 예로서, 탑승자가 차량(100)이 움직이고 있는 동안에 장기간 동안 차량 컴퓨팅 시스템(104)의 디스플레이를 응시하는 경우, 차량 컴퓨팅 시스템(104)은 탑승자가 차량 컴퓨팅 시스템(104)과 상호 작용하는 것을 잠그거나 금지할 수 있다.
이러한 방식으로, 본 개시의 기술은 차량 컴퓨팅 시스템이 차량의 탑승자가 어디를 응시하는지를 보다 정확하게 결정할 수 있고, 탑승자가 차량의 운전자인 사례에서, 운전자 참여를 보다 정확하게 결정할 수 있게 할 수 있다. 또한, 차량 컴퓨팅 시스템(104)은 운전자가 무엇을 응시하는지에 대한 보다 정확한 결정을 사용하여 다양한 안전 관련 동작 또는 임의의 수의 다른 동작을 자동으로 취할 수 있다. 따라서, 본 개시의 기술은 개선된 차량 안전 시스템을 가능하게 할 수 있다.
도 2는 본 개시의 하나 이상의 양태에 따른, 내부 카메라 시스템을 갖는 예시적인 차량을 도시하는 개념도이다. 차량 내부(200)는 도 2에 도시된 바와 같이, 차량 내부(200)의 다양한 다른 위치에 배치된 4대의 카메라(202A-202D)(통칭하여, "카메라(202)")를 포함한다. 각각의 카메라(202)는 도 1과 관련하여 도시되고 설명된 카메라(102)의 예일 수 있다.
차량 내부(200)내의 상이한 카메라 배치는 본 명세서에 기술된 바와 같이 탑승자의 이미지를 캡처하기 위한 상이한 장점 또는 단점을 제공할 수 있다. 예를 들어, 카메라(202A)는 차량 내부(200)의 계기판 내에 위치된다. 카메라(202A)가 차량 운전자의 헤드 위치 바로 앞에 위치하므로, 카메라(202A)에 의해 캡처된 이미지는 운전자의 안면의 피치, 롤 및 요를 결정하기 위한 고품질 이미지를 제공할 수 있다. 차량 헤드 유닛 디스플레이 위에 위치된 카메라(202C)는 차량의 운전자 및 승객 모두의 얼굴을 포함하는 이미지를 캡처할 수 있다. 이러한 이미지는 차량 승객의 3D 시선 벡터를 결정하는데 사용될 수 있고, 차량의 운전자 또는 승객이 차량 헤드 유닛 디스플레이와 상호 작용하는지의 여부를 구별하는데 사용될 수 있다. 다른 예로서, 운전자 측의 A-필러(pillar) 내에 위치된 카메라(202D)는 카메라(202D)로부터 운전자의 눈까지의 거리를 결정하는데 사용되는 이미지를 캡처하는 적외선 카메라일 수 있다. 대안적으로 또는 추가적으로, 차량 컴퓨팅 시스템(104)은 카메라(202B 및 202D) 둘 다에 의해 캡처된 이미지를 사용하여 운전자의 눈에 대한 시차 각도를 결정할 수 있고, 그 시차 각도를 사용하여 카메라(202B 및 202D) 중 하나 또는 둘 모두(또는 카메라(202B 및 202D) 사이의 중심점)로부터 운전자의 눈까지의 거리를 결정할 수 있다. 차량 내부(200)는 좌측 운전 차량이지만, 다른 예에서, 도 1의 차량 내부(200) 또는 차량(100)은 우측 운전 차량일 수 있다. 그러한 예들에서, 카메라들(202)의 배치는 반전될 수 있다(예를 들어, 카메라(202D)는 우측 A 필러상에 있을 수 있다).
도 3은 본 개시의 하나 이상의 양태에 따른 운전자의 예시적인 안면을 나타내는 개념도이다. 도 3에 도시된 바와 같이, 차량 컴퓨팅 시스템(104)은 하나 이상의 얼굴 랜드마크(302) 및 안면(304)을 식별하여, 3D 시선 벡터(306)를 결정한다.
얼굴 랜드마크(302)는 운전자의 입의 2개의 가장자리, 운전자의 코의 맨 아래 부분(base) 및 운전자 눈 각각의 가장자리를 포함한다. 차량 컴퓨팅 시스템(104)은 이들 얼굴 랜드마크(302)를 사용하여 안면(facial plane)을 정의할 수 있다. 예를 들어, 차량 컴퓨팅 시스템(104)은 하나 이상의 얼굴 랜드마크(302) 사이의 거리를 결정할 수 있다. 일부 사례에서, 차량 컴퓨팅 시스템(104)은 운전자의 입의 두 모서리 사이 및/또는 상이한 눈의 모서리 사이의 거리를 결정할 수 있다. 이들 거리를 운전자의 기준 거리 또는 학습 거리와 비교함으로써, 차량 컴퓨팅 시스템(104)은 안면(304)을 정의하는 좌표를 결정할 수 있다.
안면(304)을 사용하여, 차량 컴퓨팅 시스템(104)은 3D 시선 벡터(306)(예를 들어, 도 1과 관련하여 기술된 제2 초기 3D 시선 벡터)를 결정할 수 있다. 운전자의 두 눈에서 나오는 화살표로 도시되어 있지만, 3D 시선 벡터(306)는 운전자의 눈 중 하나 또는 둘 모두의 위치로부터 바깥쪽으로 투사될 수 있는 단일 벡터일 수 있다. 또한, 3D 시선 벡터(306)는 시선 추적을 사용하여 차량 컴퓨팅 시스템에 의해 결정된 다른 3D 시선 벡터와 결합될 수 있다.
도 4는 본 개시의 하나 이상의 양태에 따른 관심 영역을 갖는 예시적인 차량 내부를 도시하는 개념도이다. 도 4에 도시된 바와 같이, 차량 내부는 관심 영역(400A-400G)(통칭하여 "관심 영역(400)")을 포함한다. 관심 영역(400)은 도 4에 도시된 차량 내부의 특정 제조사 및 모델에 대해 차량 데이터 파일에 정의될 수 있다. 차량 데이터 파일은 차량 기반 좌표계내의 평면을 정의하는 각 관심 영역(400)에 대한 좌표를 지정한다. 일반적으로, 차량 데이터 파일은 XML(Extensible Markup Language)과 같은 구조화된 데이터 포멧을 사용하여 정의된다. 그러나, 차량 데이터 파일에 포함된 정보는 차량 컴퓨팅 시스템(104)이 처리하도록 구성된 임의의 포맷으로 인코딩될 수 있다.
관심 영역(400) 각각은 차량의 물리적 엘리먼트와 관련될 수 있다. 차량 내부의 관심 영역인 것으로 기술되었지만, 다양한 사례에서, 관심 영역은 차량 외부에 위치한 객체와 관련될 수 있다. 예를 들어, 관심 영역(400A 및 400G)은 각각 차량의 사이드 미러(예를 들어, 운전자 측 및 승객 측 사이드 미러)와 관련될 수 있다.
다른 관심 영역은 차량의 단일 물리적 엘리먼트의 다른 영역과 관련될 수 있다. 예를 들어, 관심 영역(400B 및 400D)은 차량의 전면 유리창과 모두 관련될 수 있다. 이 예에서, 전면 유리창의 상이한 부분은 상이한 레벨의 운전자 참여와 관련될 수 있다. 따라서, 차량 컴퓨팅 시스템(104)이 운전자가 관심 영역(400B)을 보고 있다고 결정하면, 차량 컴퓨팅 시스템(104)은 사용자가 차량 앞의 도로를 보고 있을 가능성이 있고 차량 운전에 참여하고 있다고 결정할 수 있다. 그러나, 차량 컴퓨팅 시스템(104)이 운전자가 관심 영역(400D)을 보고 있다고 결정하면, 차량 컴퓨팅 시스템(104)은 운전자가 도로가에 떨어진 무언가를 바라보고 있어, 운전자가 차량 전방 도로를 응시하는 경우보다 차량 운전에 덜 참여(열중)한다고 결정할 수 있다. 차량 컴퓨팅 시스템(104)이 운전자가 운전 안전 모범 사례(safety best practices)를 따르는지 여부를 결정하는 사례에서, 차량 컴퓨팅 시스템(104)은 차량이 방금 녹색으로 변한 신호등에 있다고 결정할 수 있다. 차량 컴퓨팅 시스템(104)은 예를 들어 운전자가 관심 영역(400D)을 보았는지 여부를 결정함으로써 운전자가 적색등을 켰을 수 있는 다른 차량들을 체크했는지 여부를 결정할 수 있다.
일부 예에서, 차량 컴퓨팅 시스템(104)은 운전자가 응시하는 관심 영역을 사용하여 운전자가 운전자에 의해 수행되는 동작(action)과 승객에 의해 수행되는 동작 사이를 구별할 수 있다. 예를 들어, 차량 컴퓨팅 시스템(104)이 인포테인먼트 시스템과 상호 작용하는 사용자로부터 사용자 입력을 수신하는 경우(예를 들어, 내비게이션 애플리케이션에서 주소 입력, 음악 선택, 차량 조정 또는 승객 설정 등), 차량 컴퓨팅 시스템(104)은 운전자가 관심 영역(400F)을 응시하는지를 결정할 수 있다. 차량 컴퓨팅 시스템(104)이 운전자가 관심 영역(400F)을 보고 있지 않다고 결정하면, 차량 컴퓨팅 시스템(104)은 승객이 입력을 제공하고 있다고 결정하고 승객이 제한없이 인포테인먼트 시스템을 계속 사용할 수 있게 할 수 있다.
그러나, 운전자가 관심 영역(400F)을 응시하는 경우, 차량 컴퓨팅 시스템(104)은 운전자가 사용자 입력을 제공하고 있다고 결정할 수 있다. 만약 운전자가 사전 결정된 시간 기간 내에 임계값 이상의 사용자 입력을 제공하거나 사전 결정된 시간 기간이상 인포테인먼트 시스템과 계속 상호 작용하는 경우, 차량 컴퓨팅 시스템(104)은 운전자가 도로에 주의를 다시 기울이도록 고취할 다양한 동작을 취할 수 있다. 예를 들어, 차량 컴퓨팅 시스템(104)은 비제한적인 예로서 추가 사용자 입력의 처리를 중단할 수 있고, 디스플레이에서 그래픽 사용자 인터페이스의 출력을 중단하거나, 운전자에게 도로에 주의를 기울이도록 리마인드하는 메시지를 출력할 수 있다.
일부 사례에서, 차량 컴퓨팅 시스템(104)은 결정된 관심 영역을 사용하여 다양한 통지를 출력할 위치를 결정할 수 있다. 예를 들어, 차량 컴퓨팅 시스템(104)이 운전자가 관심 영역(400E)(즉, 계기판에 대응하는)을 보고 있다고 결정하면, 차량 컴퓨팅 시스템(104)은 계기판을 사용하여 차량의 연료가 부족하다는 경고 메시지를 출력할 수 있다. 만약 차량 컴퓨팅 시스템(104)이 운전자가 400E가 아닌 관심 영역(400B)을 보고 있다고 결정하면, 차량 컴퓨팅 시스템(104)은 관심 영역(400B) 내의 차량의 전면 유리창에 투사되도록 헤드 업 디스플레이를 사용하여 경고 메시지를 출력할 수 있다.
도 5는 본 개시의 하나 이상의 양태에 따른, 3D 시선 벡터를 사용하여 운전자 참여를 결정하도록 구성된 예시적인 컴퓨팅 디바이스를 도시하는 블록도이다. 컴퓨팅 디바이스(500)는 도 1의 차량 컴퓨팅 시스템(104)의 보다 상세한 예이다. 도 5는 컴퓨팅 디바이스(500)의 하나의 특정 예만을 도시하며, 컴퓨팅 디바이스(500)의 많은 다른 예는 다른 사례에서 사용될 수 있고, 예시적인 컴퓨팅 디바이스(500)에 포함된 컴포넌트의 서브 세트를 포함하거나 도 5에 도시되지 않은 추가 컴포넌트를 포함할 수 있다.
도 5의 예에 도시된 바와 같이, 컴퓨팅 디바이스(500)는 존재-감지 디스플레이(512), 하나 이상의 프로세서(540), 하나 이상의 통신 유닛(542), 하나 이상의 입력 컴포넌트(544), 하나 이상의 출력 컴포넌트(546) 및 하나 이상의 저장 디바이스(548)를 포함한다. 컴퓨팅 디바이스(500)의 저장 디바이스들(548)은 시선 모듈(522), 눈 위치 모듈(524), 관심 영역 모듈(526) 및 차량 데이터(528)를 포함한다.
통신 채널들(550)은 (물리적, 통신적, 및/또는 동작적) 컴포넌트 간 통신을 위해 컴포넌트(512, 540, 542, 546 및/또는 548) 각각을 상호 연결할 수 있다. 일부 예에서, 통신 채널(550)은 시스템 버스, 네트워크 연결, 하나 이상의 프로세스 간 통신 데이터 구조, 또는 데이터를 통신하기 위한 임의의 다른 컴포넌트(정보라고도 지칭됨)를 포함할 수 있다.
컴퓨팅 디바이스(500)의 하나 이상의 통신 유닛(542)은 데이터를 전송 및/또는 수신함으로써 외부 디바이스들과 통신할 수 있다. 예를 들어, 컴퓨팅 디바이스(500)는 하나 이상의 통신 유닛(542)을 사용하여 셀룰러 무선 네트워크와 같은 무선 네트워크상에서 무선 신호를 송신 및/또는 수신할 수 있다. 일부 예에서, 통신 유닛(542)은 GPS(Global Positioning System) 네트워크와 같은 위성 네트워크상에서 위성 신호를 송신 및/또는 수신할 수 있다. 통신 유닛(542)의 예는 네트워크 인터페이스 카드(예를 들어, 이더넷 카드), 광 송수신기, 무선 주파수 송수신기, GPS 수신기, 또는 정보를 전송 및/또는 수신할 수 있는 임의의 다른 유형의 디바이스를 포함한다. 통신 유닛(542)의 다른 예는 단파 라디오(예를 들어, NFC, 블루투스(BLE 포함)), GPS, 3G, 4G, 5G 및 WIFI 라디오뿐만 아니라 USB 컨트롤러 등을 포함할 수 있다.
컴퓨팅 디바이스(500)의 하나 이상의 입력 컴포넌트(544)는 입력을 수신할 수 있다. 입력의 예는 몇 가지 예만을 들면 촉각, 오디오, 운동(kinetic) 및 광학 입력일 수 있다. 컴퓨팅 디바이스(500)의 입력 컴포넌트(544)는 일 예로 마우스, 키보드, 터치 패드, 음성 응답 시스템, 비디오 카메라, 버튼, 스크롤 휠, 다이얼, 제어 패드, 마이크로폰 또는 사람 또는 기계로부터의 입력을 검출하기 위한 임의의 다른 유형의 디바이스를 포함한다. 입력 컴포넌트(544)는 도 1의 카메라들(102)과 같은 카메라를 포함할 수 있다. 일부 예에서, 입력 컴포넌트(544)는 존재-감지 스크린, 터치-감지 스크린 등을 포함할 수 있는 존재-감지 입력 컴포넌트일 수 있다.
컴퓨팅 디바이스(500)의 하나 이상의 출력 컴포넌트(546)는 출력을 생성할 수 있다. 출력의 예는 촉각, 오디오 및 비디오 출력이다. 일부 예에서, 컴퓨팅 디바이스(500)의 출력 컴포넌트(546)는 존재-감지 스크린, 사운드 카드, 비디오 그래픽 어댑터 카드, 스피커, CRT(Cathode Ray Tube) 모니터, LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diode) 또는 인간 또는 기계에 촉각, 오디오 및/또는 시각적 출력을 생성하기 위한 임의의 다른 유형의 디바이스를 포함한다.
일부 예에서, 컴퓨팅 디바이스(500)의 존재-감지 디스플레이(512)는 입력 컴포넌트(544) 및/또는 출력 컴포넌트(546)의 기능을 포함할 수 있다. 도 5의 예에서, 존재-감지 디스플레이(512)는 존재-감지 스크린 또는 터치-감지 스크린과 같은 존재-감지 입력 컴포넌트(504)를 포함할 수 있다. 일부 예에서, 존재-감지 입력 컴포넌트(504)는 존재-감지 입력 컴포넌트에서 및/또는 그 근처에서 객체를 검출할 수 있다. 하나의 예시적인 범위로서, 존재-감지 입력 컴포넌트(504)는 존재-감지 입력 컴포넌트(504)의 2인치 이하 내에 있는 손가락 또는 스타일러스와 같은 객체를 검출할 수 있다. 존재-감지 입력 컴포넌트(504)는 객체가 검출된 존재-감지 입력 컴포넌트의 위치(예를 들어, (x, y) 좌표)를 결정할 수 있다. 다른 예시적인 범위에서, 존재-감지 입력 컴포넌트(504)는 존재-감지 입력 컴포넌트(504)로부터 2 인치 이하의 객체를 검출할 수 있고 다른 범위 또한 가능하다. 존재-감지 입력 컴포넌트(504)는 용량성, 유도성 및/또는 광학 인식 기술을 사용하여 사용자의 손가락에 의해 선택된 존재-감지 입력 컴포넌트(504)의 위치를 결정할 수 있다.
일부 예에서, 존재-감지 디스플레이(512)는 또한 출력 컴포넌트(546)와 관련하여 설명된 바와 같이 촉각, 오디오 또는 비디오 자극을 사용하여 사용자에게 출력을 제공할 수 있다. 예를 들어, 존재-감지 디스플레이(512)는 그래픽 사용자 인터페이스를 디스플레이하는 디스플레이 컴포넌트(502)를 포함할 수 있다. 디스플레이 컴포넌트(502)는 출력 컴포넌트(546)와 관련하여 기술된 바와 같이 시각적 출력을 제공하는 임의의 유형의 출력 컴포넌트일 수 있다. 컴퓨팅 디바이스(500)의 통합 컴포넌트로서 도시되어 있지만, 존재-감지 디스플레이(512)는 일부 예에서 입력 및 출력을 전송 및/또는 수신하기 위해 컴퓨팅 디바이스(500)의 다른 컴포넌트와 데이터 또는 정보 경로를 공유하는 외부 컴포넌트일 수 있다. 예를 들어, 존재-감지 디스플레이(512)는 컴퓨팅 디바이스(500)의 외부 패키징(예를 들어, 차량의 대시 보드에 장착된 차내 스크린) 내에 위치되고 물리적으로 연결된 컴퓨팅 디바이스(500)의 빌트-인(내장) 컴포넌트일 수 있다. 다른 예에서, 존재-감지 디스플레이(512)는 컴퓨팅 디바이스(500)의 패키징(예를 들어, 차량의 전자 제어 장치와 유선 및/또는 무선 데이터 경로를 공유하는 모니터, 프로젝터 등)의 외부에 위치하고 물리적으로 분리된 컴퓨팅 디바이스(500)의 외부 컴포넌트일 수 있다. 일부 예에서, 존재-감지 디스플레이(512)는 컴퓨팅 디바이스(500)의 패키징 외부에 위치하고 물리적으로 분리될 때, 2개의 개별 컴포넌트, 즉 입력을 수신하기 위한 존재-감지 입력 컴포넌트(504) 및 출력을 제공하기 위한 디스플레이 컴포넌트(502)에 의해 구현될 수 있다.
컴퓨팅 디바이스(500) 내의 하나 이상의 저장 컴포넌트(548)는 컴퓨팅 디바이스(500)의 동작 중에 처리하기 위한 정보를 저장할 수 있다(예를 들어, 컴퓨팅 디바이스(500)는 컴퓨팅 디바이스(500)에서 실행되는 동안 모듈(522, 524, 526)에 의해 액세스된 데이터를 저장할 수 있다). 일부 예에서, 저장 컴포넌트(548)는 임시 메모리인데, 이는 저장 컴포넌트(548)의 주요 목적이 장기간 저장이 아님을 의미한다. 컴퓨팅 디바이스(500)상의 저장 컴포넌트(548)는 정보를 휘발성 메모리로서 단기 저장하도록 구성될 수 있으므로, 전원이 꺼진 경우 저장된 컨텐츠를 유지하지 않을 수 있다. 휘발성 메모리의 예는 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM) 및 당 업계에 공지된 다른 형태의 휘발성 메모리를 포함한다.
일부 예에서, 저장 컴포넌트(548)는 또한 하나 이상의 컴퓨터 판독 가능 저장 매체를 포함한다. 일부 예에서 저장 컴포넌트(548)는 하나 이상의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다. 저장 컴포넌트들(548)은 휘발성 메모리에 의해 기본적으로 저장되는 것보다 많은 양의 정보를 저장하도록 구성될 수 있다. 저장 컴포넌트들(548)은 또한 비-휘발성 메모리 공간으로서 정보를 장기간 저장하고 전원 온/오프 사이클 후에 정보를 유지하도록 구성될 수 있다. 비-휘발성 메모리의 예는 자기 하드 디스크, 광 디스크, 플래시 메모리, 또는 EPROM (Electrical Programmable Memory) 또는 EEPROM(Electrically Erasable and Programmable) 메모리의 형태를 포함한다. 저장 컴포넌트(548)는 모듈(522, 524 및 526)과 관련된 프로그램 명령 및/또는 정보(예를 들어, 데이터)를 저장할 수 있다. 저장 컴포넌트(548)는 522, 524 및 526과 관련된 다른 정보 및 차량 데이터(528)를 저장하도록 구성된 메모리를 포함할 수 있다.
하나 이상의 프로세서(540)는 기능을 구현하고 및/또는 컴퓨팅 디바이스(500)와 관련된 명령들을 실행할 수 있다. 프로세서(540)의 예는 애플리케이션 프로세서, 디스플레이 컨트롤러, 보조 프로세서, 하나 이상의 센서 허브, 및 프로세서, 프로세싱 유닛 또는 프로세싱 디바이스로서 기능하도록 구성된 임의의 다른 하드웨어를 포함한다. 모듈(522, 524 및 526)은 컴퓨팅 디바이스(500)의 다양한 액션, 동작 또는 기능을 수행하기 위해 프로세서(540)에 의해 동작 가능할 수 있다. 예를 들어, 컴퓨팅 디바이스(500)의 프로세서(540)는 프로세서(540)로 하여금 모듈(522, 524 및 526)에 기인한 본 명세서에 기술된 동작을 수행하게 하는 저장 컴포넌트(548)에 의해 저장된 명령들을 검색하고 실행할 수 있다. 명령들은 프로세서(540)에 의해 실행될 때 컴퓨팅 디바이스(500)로 하여금 저장 컴포넌트(548) 내에 정보를 저장하게 할 수 있다.
눈 위치 모듈(524)은 차량에 위치한 하나 이상의 카메라로부터 탑승자의 머리 또는 눈의 거리를 결정할 수 있고, 하나 이상의 카메라에 대한 3D 공간에서의 운전자의 머리 또는 눈 위치를 결정할 수 있다. 눈 위치 모듈(524)은 도 1과 관련하여 설명된 기술과 일치하여 탑승자의 머리 및/또는 눈의 거리 및/또는 위치를 결정할 수 있다. 또한, 시선 모듈(522)과 유사하게, 눈 위치 모듈(524)의 기능의 전부 또는 일부는 차량의 카메라 시스템, 컴퓨팅 디바이스(500) 또는 이들의 조합에 의해 수행될 수 있다.
눈 위치 모듈(524)은 2대 이상의 카메라 각각의 위치가 알려진 경우 2대 이상의 상이한 카메라에 의해 캡처된 이미지 사이의 시차 각도를 분석할 수 있다. 시차 각도와 카메라 사이의 거리를 사용하여, 눈 위치 모듈(524)은 둘 이상의 카메라 중 하나 이상과 탑승자 눈 사이의 거리를 결정한다. 다른 예로서, 눈 위치 모듈(524)은 단일 적외선 카메라에 의해 캡처된 이미지를 분석하여 적외선 카메라에 의해 캡처된 이미지의 왜곡을 결정하여, 적외선 카메라와 운전자의 눈 사이의 거리를 결정할 수 있다.
2대 이상의 카메라와 탑승자 눈 사이의 거리 및 캡처된 이미지내의 탑승자 눈의 위치를 이용하여, 눈 위치 모듈(524)은 탑승자의 눈을 2대 이상의 카메라에 대한 3D 공간에 배치할 수 있다. 즉, 눈 위치 모듈(524)은 적어도 하나의 카메라의 위치에 대한 차량 내부에서의 탑승자의 눈 위치를 결정할 수 있다. 탑승자의 눈 위치는 적어도 하나의 카메라에 대해 정의된 3D 공간 내의 위치이다. 예를 들어, 3D 공간은 구일 수 있고 카메라의 위치에 대응하는 중심을 가질 수 있다. 이러한 예에서, 탑승자의 눈 위치는 (x, y, z) 좌표로 정의될 수 있는데, 여기서(0,0,0)은 구의 중심으로 사용되는 카메라의 위치이다. 이러한 좌표는 "카메라 기반 좌표계"내에 위치하는 것으로 지칭될 수 있다.
시선 모듈(522)은 도 1 및 도 3과 관련하여 설명된 기술과 일치하는 차량 탑승자의 3D 시선 벡터를 결정할 수 있다. 컴퓨팅 디바이스(500)의 컴포넌트인 것으로 도시되어 있지만, 다양한 예에서, 시선 모듈(522)의 기능은 컴퓨팅 디바이스(500)에 의해 수행되는 대신에 또는 추가로 차량의 카메라 시스템에 의해 수행될 수 있다. 또한, 카메라 시스템과 시선 모듈(522)은 3D 시선 벡터 결정 프로세스의 개별 부분을 수행할 수 있다.
다양한 사례에서, 시선 모듈(522)은 시선 추적을 수행하여 제1 초기 3D 시선 벡터를 결정할 수 있고 탑승자의 안면을 결정하여 제2 초기 3D 시선 벡터를 결정할 수 있다. 시선 모듈(522)은 제1 및 제2 초기 3D 시선 벡터를 결합하여 탑승자를 위한 최종 3D 시선 벡터를 결정할 수 있다. 눈 위치 및 눈동자의 움직임 또는 눈의 다른 특징(즉, 시선 추적)을 이용하여, 시선 모듈(522)은 제1 초기 3D 시선 벡터를 결정할 수 있다. 그러나, 다양한 사례에서, 탑승자의 눈은 가려질 수 있으므로, 카메라에 의해 캡처된 이미지는 탑승자의 눈의 선명한 이미지를 포함하지 않을 수 있다. 따라서, 탑승자의 눈의 위치 및 움직임을 추적하는 것에 의존하기 보다, 시선 모듈(522)은 캡처된 이미지를 추가로 분석하여 탑승자의 안면을 결정할 수 있다.
탑승자의 안면을 계산할 때, 시선 모듈(522)은 하나 이상의 카메라(102)에 의해 캡처된 하나 이상의 이미지에서 복수의 얼굴 랜드마크를 식별할 수 있다. 얼굴 랜드마크는 입의 가장자리, 눈, 코, 귀, 눈썹, 턱 또는 다른 얼굴 특징을 포함할 수 있다. 식별된 얼굴 랜드마크를 사용하여, 시선 모듈(522)은 이미지에 포함된 탑승자의 얼굴이 다양한 얼굴 랜드마크 사이의 기하학적 일관성에 기초하여 임의의 피치, 롤 또는 요를 나타내는지 여부를 결정할 수 있다. 예를 들어, 탑승자의 입과 눈 사이의 전체 거리에 대한 탑승자의 두 눈 사이의 거리가 탑승자가 똑바로 앞을보고 있을 때 보다 작으면, 시선 모듈(522)은 탑승자가 왼쪽 또는 오른쪽을 보고 있다고 결정한다. 시선 모듈(522)이 이미지가 탑승자의 오른쪽 귀를 포함하지만 탑승자의 왼쪽 귀를 포함하지 않는다고 결정하면, 시선 모듈(522)은 탑승자가 왼쪽을 보고 있다고 결정한다. 안면의 피치, 롤 및 요 각도는 얼굴 랜드마크 사이의 거리의 상대적인 변화에 기초하여 결정될 수 있다. 결정된 안면의 피치, 롤 및 요 각도를 사용하여, 시선 모듈(522)은 제2 초기 3D 시선 벡터를 결정할 수 있다.
다양한 사례에서, 시선 모듈(522)은 이미지에 기계 학습 모델을 적용하여 안면을 결정할 수 있다. 기계 학습 모델은 이미 식별된 얼굴 랜드마크 및 이미 결정된 안면 각도를 갖는 다른 사람들의 이미지를 사용하여 트레이닝될 수 있다. 기계 학습 모델은 사용자 피드백 및 시선 모듈(522)에 의해 제공되는 피드백에 기초하여 지속적으로 학습할 수 있다. 예를 들어, 시선 모듈(522)은 안면을 사용하여 결정된 제2 초기 3D 시선 벡터와 비교하여 시선 추적을 사용하여 결정된 제1 초기 3D 시선 벡터에 기초하여 기계 학습 모델의 파라미터를 랭킹하거나 조정할 수 있다.
일단 제1 및 제2 초기 3D 시선 벡터가 결정되면, 시선 모듈(522)은 제1 및 제2 초기 3D 시선 벡터 모두에 기초하여 탑승자의 3D 시선 벡터를 결정할 수 있다. 다양한 사례에서, 시선 모듈(522)은 제1 및 제2 초기 3D 시선 벡터의 평균을 사용하여 3D 시선 벡터를 결정할 수 있다. 시선 모듈(522)은 다른 예에서, 제1 및 제2 3D 시선 벡터 중 하나 이상에 가중을 적용하고, 그 가중된 값을 결정 3D 시선 벡터에 사용할 수 있다. 시선 모듈(522)은 제1 또는 제2 초기 3D 시선 벡터가 정확하게 결정되었다는 신뢰도에 기초하여 제1 및 제2 초기 3D 시선 벡터에 적용할 가중치를 결정할 수 있다. 예를 들어, 시선 모듈(522)이 얼굴 랜드마크의 일부만을 검출하면(예를 들어, 눈과 코만 있고 입이나 턱은 없음), 안면의 피치, 롤 및 요 각도에 대해 에러 범위가 증가될 수 있다. 이와 같이, 시선 모듈(522)은 시선 추적을 사용하여 상기 결정된 제2 초기 3D 시선 벡터에 감소된 가중값을 적용하고 제1 초기 3D 시선 벡터에 증가된 가중값을 적용할 수 있다.
제1 및 제2 초기 3D 시선 벡터를 모두 요구하는 것으로 설명되었지만, 시선 모듈(522)은 제1 및 제2 초기 3D 시선 벡터 중 하나를 사용하여 3D 시선 벡터를 결정할 수도 있다. 예를 들어, 2대 이상의 카메라로 캡처된 이미지에서 탑승자의 눈이 감기거나 탑승자가 선글라스를 착용하고 있는 경우, 시선 모듈(522)은 결정된 3D 시선 벡터로서 제2 초기 3D 시선 벡터(즉, 탑승자의 안면의 피치, 롤 및 요에 기초하여 결정된 3D 시선 벡터)를 사용할 수 있다. 다른 예로서, 2대 이상의 카메라로 캡처된 이미지가 (예를 들어, 운전자의 손에 의해) 부분적으로 가려진 운전자의 얼굴을 포함하는 경우, 시선 모듈(522)은 결정된 3D 시선 벡터로서 제1 초기 3D 시선 벡터(즉, 시선 추적을 사용하여 결정된 3D 시선 벡터)를 사용할 수 있다.
관심 영역 모듈(526)은 도 1 및 도 4와 관련하여 설명된 기술과 일치하여 차량 탑승자가 응시하는 관심 영역을 결정할 수 있다. 관심 영역 모듈(526)은 차량 데이터(528)로부터 차량 특정 데이터를 로드할 수 있다. 차량 데이터(528)는 탑승자가 응시하는 관심있는 관심 영역을 결정하기 위해 관심 영역 모듈에 의해 사용 가능한 텍스트 또는 인코딩된 정보를 저장하기에 적합한 파일, 데이터베이스 또는 다른 데이터 구조와 같은 임의의 유형의 데이터 저장소일 수 있다. 차량 데이터는 차량의 다양한 관심 영역과 관련된 2차원 평면을 정의하는 좌표를 포함한다. 일부 사례에서, 각 평면은 차량의 다른 물리적 엘리먼트(예를 들어, 백미러, 헤드 유닛 디스플레이, 계기판 등) 또는 차량의 동일한 물리적 엘리먼트의 다른 부분(예를 들어, 전면 유리창의 다른 영역)과 관련될 수 있다.
관심 영역 모듈은 시선 모듈(522)로부터 3D 시선 벡터 정보를 수신할 수 있고, 눈 위치 모듈(524)로부터 탑승자 머리 및/또는 눈 위치 정보를 수신할 수도 있다. 관심 영역 모듈(526)은 머리 및/또는 눈 위치 정보를 카메라 기반 좌표계에서 차량 기반 좌표계으로 변환할 수 있다. 좌표를 차량 기반 좌표계으로 변환함으로써, 관심 영역 모듈(526)은 차량 데이터에 지정된 바와 같이 차량의 다양한 물리적 객체의 좌표 위치에 대해 탑승자의 머리 및/또는 눈을 위치시킬 수 있다. 관심 영역 모듈(526)은 탑승자의 머리 및/또는 눈의 차량 기반 좌표계 위치로부터 3D 시선 벡터를 투사하여 3D 시선 벡터에 의해 교차되는 하나 이상의 평면을 결정할 수 있다. 관심 영역 모듈(526)은 교차된 평면을 탑승자가 응시하는 관심 영역으로 식별한다.
일부 사례에서, 관심 영역 모듈(526)은 차량의 탑승자가 어느 관심 영역을 오래동안 응시하는지 주기적으로 또는 지속적으로 결정할 수 있다. 탑승자가 응시하는 관심 영역을 모니터링함으로써, 관심 영역 모듈(526)은 탑승자의 참여 레벨을 결정할 수 있고 탑승자가 도로의 규칙 및 안전 운전 모범 사례를 얼마나 잘 준수 하는지를 결정할 수 있다. 예를 들어, 탑승자가 사이드 미러를 보지 않고 차선을 변경하거나 후방 창을 보지 않고 차량을 반전시키는 경우, 컴퓨팅 디바이스(500)는 탑승자가 안전 모범 사례에 따라 차량을 운전하고 있지 않다고 결정할 수 있다. 다른 예로서, 탑승자가 차량이 움직이는 중에 장기간 동안 컴퓨팅 디바이스(500)의 디스플레이를 응시하는 경우, 컴퓨팅 디바이스(500)는 운전자가 컴퓨팅 디바이스(500)와 상호 작용하는 것을 잠그거나 금지할 수 있다.
시선 모듈(522), 눈 위치 모듈(524) 및 관심 영역 모듈(526)에 의해 수행되는 하나 이상의 기술은 기계 학습을 사용하여 수행될 수 있다. 도 5에 도시되지 않았지만, 컴퓨팅 디바이스(500)는 카메라에 의해 캡처된 이미지에 적용되는 하나 이상의 트레이닝된 기계 학습 모듈을 포함할 수 있다.
도 6a 내지 6e는 본 개시의 예시적인 구현에 따른 예시적인 기계 학습 모델의 양태를 도시하는 개념도이다. 도 6a 내지 6e는 도 1의 차량(100)의 문맥과 관련하여 아래에서 설명된다. 예를 들어, 일부 사례에서, 아래에서 참조되는 바와 같이 기계 학습 모델(600)은 3D 시선 벡터, 탑승자의 머리 및/또는 눈 위치, 탑승자가 응시하는 관심 영역 또는 그의 컴포넌트를 결정하기 위해 카메라 시스템 또는 차량 컴퓨팅 시스템(104)에 의해 사용되는 임의의 모델의 예일 수 있다.
도 6a는 본 개시의 예시적인 구현에 따른 예시적인 기계 학습 모델의 개념도를 도시한다. 도 6a에 도시된 바와 같이, 일부 구현에서, 기계 학습 모델(600)은 하나 이상의 유형의 입력 데이터를 수신하고, 이에 응답하여 하나 이상의 유형의 출력 데이터를 제공하도록 트레이닝된다. 따라서, 도 6a는 추론을 수행하는 기계 학습 모델(600)을 도시한다.
입력 데이터는 사례 또는 예와 관련된 하나 이상의 특징을 포함할 수 있다. 일부 구현에서, 사례 또는 예와 관련된 하나 이상의 특징은 특징 벡터로 구성될 수 있다. 일부 구현에서, 출력 데이터는 하나 이상의 예측을 포함할 수 있다. 예측을 추론이라고도 지칭한다. 따라서, 특정 사례와 관련된 특징이 주어지면, 기계 학습 모델(600)은 그 특징에 기초하여 그러한 사례에 대한 예측을 출력할 수 있다.
기계 학습 모델(600)은 다양한 상이한 유형의 기계 학습 모델 중 하나 이상일 수 있거나 이를 포함할 수 있다. 특히, 일부 구현에서, 기계 학습 모델(600)은 분류, 회귀, 클러스터링, 고장 검출, 추천 생성, 얼굴 랜드마크 검출, 3D 시선 결정 및/또는 다른 작업들을 수행할 수 있다.
일부 구현에서, 기계 학습 모델(600)은 입력 데이터에 기초하여 다양한 유형의 분류를 수행할 수 있다. 예를 들어, 기계 학습 모델(600)은 이진 분류 또는 멀티 클래스 분류를 수행할 수 있다. 이진 분류에서, 출력 데이터는 입력 데이터를 두 개의 상이한 클래스 중 하나로 분류하는 것을 포함할 수 있다. 멀티 클래스 분류에서, 출력 데이터는 입력 데이터를 둘 이상의 클래스 중 하나(또는그 이상)로 분류하는 것을 포함할 수 있다. 분류는 단일 레이블 또는 다중 레이블일 수 있다. 기계 학습 모델(600)은 입력 데이터가 단순히 하나 이상의 클래스 또는 카테고리로 분류되는 불연속 범주 분류를 수행할 수 있다.
일부 구현에서, 기계 학습 모델(600)은 기계 학습 모델(600)이 하나 이상의 클래스 각각에 대해, 입력 데이터가 대응하는 클래스로 분류되어야 한다고 생각되는 정도를 나타내는 수치를 제공하는 분류를 수행할 수 있다. 일부 사례에서, 기계-학습 모델(600)에 의해 제공되는 수치는 개별 클래스로의 입력의 분류와 관련된 개별 신뢰도를 나타내는 "신뢰도 스코어"로 지칭될 수 있다. 일부 구현에서, 신뢰도 스코어는 하나 이상의 임계값과 비교되어 불연속 범주형 예측을 제공할 수 있다. 일부 구현에서, 상대적으로 가장 큰 신뢰도 스코어를 갖는 특정 수의 클래스들(예를 들어, 하나)만 선택하여 개별 범주형 예측을 렌더링할 수 있다.
기계 학습 모델(600)은 확률 분류를 출력할 수 있다. 예를 들어, 기계 학습 모델(600)은 샘플 입력이 주어지면 클래스 세트에 대한 확률 분포를 예측할 수 있다. 따라서, 샘플 입력이 속할 가능성이 가장 높은 클래스만을 출력하는 대신, 기계-학습 모델(600)은 각 클래스에 대해, 샘플 입력이 그러한 클래스에 속할 확률을 출력할 수 있다. 일부 구현에서, 모든 가능한 클래스에 대한 확률 분포는 하나로 합산될 수 있다. 일부 구현에서, 소프트맥스 함수 또는 다른 유형의 함수 또는 계층은 가능한 가능한 클래스와 각각 관련된 실제값 세트를 하나로 합산하는 범위(0, 1)의 실제값 세트로 스쿼시(squash)하는데 사용될 수 있다.
일부 예에서, 확률 분포에 의해 제공되는 확률은 하나 이상의 임계값과 비교되어 이산 범주형 예측을 제공할 수 있다. 일부 구현에서, 비교적 큰 예측 확률을 갖는 특정 수의 클래스(예를 들어, 하나)만이 이산 범주형 예측을 렌더링하도록 선택될 수 있다.
기계 학습 모델(600)이 분류를 수행하는 경우, 기계 학습 모델(600)은 지도(supervised) 학습 기법을 사용하여 트레이닝될 수 있다. 예를 들어, 기계 학습 모델(600)은 하나 이상의 클래스에 속하는(또는 속하지 않은) 것으로 라벨링된 트레이닝 예제를 포함하는 트레이닝 데이터 세트에 대해 트레이닝될 수 있다. 지도 트레이닝 기술에 관한 추가 세부 사항은 도 6b 내지 6e의 설명에서 아래에 제공된다.
일부 구현에서, 기계 학습 모델(600)은 회귀를 수행하여 연속 수치값의 형태로 출력 데이터를 제공할 수 있다. 연속 수치값은 예를 들어 통화값, 스코어 또는 기타 숫자 표현을 포함하여 임의의 다수의 상이한 메트릭 또는 숫자 표현에 해당할 수 있다. 예로서, 기계 학습 모델(600)은 선형 회귀, 다항 회귀 또는 비선형 회귀를 수행할 수 있다. 예로서, 기계 학습 모델(600)은 단순 회귀 또는 다중 회귀를 수행할 수 있다. 전술한 바와 같이, 일부 구현에서, 소프트맥스 함수 또는 다른 함수 또는 계층은 2개 이상의 가능한 클래스와 각각 관련된 실제값 세트를 하나로 합산하는 범위(0, 1)의 실제값 세트로 스쿼시하는데 사용될 수 있다.
기계 학습 모델(600)은 다양한 유형의 클러스터링을 수행할 수 있다. 예를 들어, 기계 학습 모델(600)은 입력 데이터가 대응할 가능성이 높은 하나 이상의 사전 정의된 클러스터를 식별할 수 있다. 기계 학습 모델(600)은 입력 데이터 내의 하나 이상의 클러스터를 식별할 수 있다. 즉, 입력 데이터가 복수의 객체, 문서 또는 다른 엔티티를 포함하는 사례에서, 기계-학습 모델(600)은 입력 데이터에 포함된 복수의 엔티티를 다수의 클러스터로 분류할 수 있다. 기계 학습 모델(600)이 클러스터링을 수행하는 일부 구현에서, 기계 학습 모델(600)은 비지도 학습 기술을 사용하여 트레이닝될 수 있다.
기계 학습 모델(600)은 이상(anomaly) 검출 또는 이상치(outlier) 검출을 수행할 수 있다. 예를 들어, 기계 학습 모델(600)은 (예를 들어, 이전 입력 데이터로부터 이전에 관찰된 바와 같이) 예상 패턴 또는 다른 특성에 맞지 않는 입력 데이터를 식별할 수 있다. 예로서, 이상 검출은 사기 검출 또는 시스템 고장 검출에 사용될 수 있다.
일부 구현에서, 기계 학습 모델(600)은 하나 이상의 객체 위치의 형태로 출력 데이터를 제공할 수 있다. 예를 들어, 기계 학습 모델(600)은 3D 시선 벡터 결정 시스템에 포함될 수 있다. 예로서, 특정 얼굴 랜드마크에 대한 이전 결과를 기술하는 입력 데이터(예를 들어, 얼굴 랜드마크의 위치를 나타내는 스코어, 랭킹 또는 등급)가 주어지면, 기계 학습 모델(600)은 얼굴 랜드마크의 위치를 새로운 이미지로 출력할 수 있다. 일 예로서, 도 1의 차량(100)의 탑승자의 하나 이상의 이미지와 같은 차량의 탑승자를 기술하는 입력 데이터가 주어지면, 도 1의 차량 컴퓨팅 시스템(104)과 같은 컴퓨팅 시스템은 그 탑승자의 얼굴 랜드마크의 위치를 출력할 수 있다.
기계 학습 모델(600)은 일부 경우에 환경 내에서 에이전트로 작용할 수 있다. 예를 들어, 기계 학습 모델(600)은 강화 학습을 사용하여 트레이닝될 수 있는데며, 이는 아래에서 더 상세히 논의될 것이다.
일부 구현에서, 기계 학습 모델(600)은 파라메트릭 모델일 수 있지만, 다른 구현에서 기계 학습 모델(600)은 비-파라메트릭 모델일 수 있다. 일부 구현에서, 기계 학습 모델(600)은 선형 모델일 수 있고, 다른 구현에서 기계 학습 모델(600)은 비-선형 모델일 수 있다.
전술한 바와 같이, 기계 학습 모델(600)은 다양한 상이한 유형의 기계 학습 모델 중 하나 이상일 수 있거나 이를 포함할 수 있다. 이러한 다른 유형의 기계 학습 모델의 예가 아래에 제공되어 있다. 아래에 설명되는 하나 이상의 예시적인 모델은 입력 데이터에 응답하여 출력 데이터를 제공하는데 사용(예를 들어, 결합)될 수 있다. 아래에 제공된 예시적인 모델 이외의 추가 모델도 사용될 수 있다.
일부 구현에서, 기계 학습 모델(600)은 예를 들어 선형 분류 모델; 이차 분류 모델과 같은 하나 이상의 분류기 모델이거나 이를 포함할 수 있다. 기계 학습 모델(600)은 예를 들어, 예를 들어, 단순 선형 회귀 모델; 다중 선형 회귀 모델; 로지스틱 회귀 모델; 단계적 회귀 모델; 다변량 적응 회귀 스플라인; 국소 추정 산점도 평활 모델(locally estimated scatterplot smoothing models) 등과 같은 하나 이상의 회귀 모델이거나 이를 포함할 수 있다.
일부 예에서, 기계 학습 모델(600)은 예를 들어, 분류 및/또는 회귀 트리; 반복적 이분법 3 결정 트리; C4.5 결정 트리; 카이-제곱(chi-squared) 자동 상호 작용 검출 결정 트리; 결정 스텀프(decision stumps); 조건부 결정 트리 등과 같은 하나 이상의 결정 트리-기반 모델이거나 이를 포함할 수 있다.
기계 학습 모델(600)은 하나 이상의 커널 머신이거나 이를 포함할 수 있다. 일부 구현에서, 기계 학습 모델(600)은 하나 이상의 서포트 벡터 머신이거나 이를 포함할 수 있다. 기계 학습 모델(600)은 예를 들어, 학습 벡터 양자화 모델; 자체-구성 맵 모델; 국소 가중 학습 모델 등과 같은 하나 이상의 사례-기반 학습 모델이거나 이를 포함할 수 있다. 일부 구현에서, 기계 학습 모델(600)은 예를 들어, k- 최근접 이웃 분류 모델; k-최근접 이웃 회귀 모델 등과 같은 하나 이상의 최근접 이웃 모델이거나 이를 포함할 수 있다. 기계 학습 모델 600은 예를 들어 나이브 베이즈(Naive Bayes) 모델; 가우스 나이브 베이즈 모델; 다항식 나이브 베이즈 모델; 평균 1-의존성 추정기; 베이지안 네트워크; 베이지안 빌리프(belief) 네트워크; 은닉 마르코프 모델 등과 같은 하나 이상의 베이지안 모델이거나 이를 포함할 수 있다.
일부 구현에서, 기계 학습 모델(600)은 하나 이상의 인공 신경망(또는 단순히 신경망이라고도 함)이거나 이를 포함할 수 있다. 신경망은 연결된 노드 그룹을 포함할 수 있는데 이는 뉴런 또는 퍼셉트론이라고도 지칭된다. 신경망은 하나 이상의 계층으로 구성될 수 있다. 다수의 계층을 포함하는 신경망은 "심층" 네트워크로 지칭될 수 있다. 심층 네트워크는 입력 계층, 출력 계층, 및 입력 계층과 출력 계층 사이에 위치된 하나 이상의 은닉 계층을 포함할 수 있다. 신경망의 노드들은 연결되거나 완전히 연결되지 않을 수 있다.
기계 학습 모델(600)은 하나 이상의 피드 포워드 신경망이거나 이를 포함할 수 있다. 피드 포워드 네트워크에서 노드 간 연결은 사이클을 형성하지 않는다. 예를 들어, 각 연결은 이전 계층의 노드를 이후 계층의 노드에 연결할 수 있다.
일부 사례에서, 기계 학습 모델(600)은 하나 이상의 순환 신경망이거나 이를 포함할 수 있다. 일부 사례에서, 순환 신경망의 노드 중 적어도 일부는 사이클을 형성할 수 있다. 순환 신경망은 본질적으로 순차적인 입력 데이터를 처리하는데 특히 유용할 수 있다. 특히, 일부 사례에서, 순환 신경망은 귀환적 또는 지향적 순환 노드 연결의 사용을 통해 입력 데이터 시퀀스의 이전 부분으로부터 입력 데이터 시퀀스의 후속 부분으로 정보를 전달하거나 유지할 수 있다.
일부 예에서, 순차적 입력 데이터는 시계열 데이터(예를 들어, 센서 데이터 대 다른 시간에서 캡처된 시간 또는 이미지)를 포함할 수 있다. 예를 들어, 순환 신경망은 비-제한적인 예로서, 센서 데이터 대 시간을 분석하여 탑승자가 응시하는 관심 영역에서의 변화를 검출할 수 있다.
예시적인 순환 신경망은 LSTM(long short-term) 순환 신경망; 게이트 순환 유닛; 양방향 순환 신경망; 연속 시간 순환 신경망; 신경 이력 압축기; 에코 상태 네트워크; 엘만 네트워크; 조단(Jordan) 네트워크; 재귀 신경망; 홉필드(Hopfield) 네트워크; 완전 순환 네트워크; 시퀀스-대-시퀀스 구성 등을 포함한다.
일부 구현에서, 기계 학습 모델(600)은 하나 이상의 컨볼루션 신경망일 수 있거나 이를 포함할 수 있다. 일부 사례에서, 컨볼루션 신경망은 학습된 필터들을 사용하여 입력 데이터에 대해 컨볼루션을 수행하는 하나 이상의 컨볼루션 계층을 포함할 수 있다.
필터들은 또한 커널로 지칭될 수 있다. 컨볼루션 신경망은 입력 데이터에 스틸 이미지 또는 비디오와 같은 이미지가 포함되는 경우와 같은 시각 문제에 특히 유용할 수 있다. 그러나, 컨볼루션 신경망은 자연어 처리에도 적용될 수 있다.
일부 예에서, 기계-학습 모델(600)은 예를 들어 생성적 적대 네트워크와 같은 하나 이상의 생성적 네트워크일 수 있거나 이를 포함할 수 있다. 생성적 네트워크는 새로운 이미지 또는 다른 컨텐츠와 같은 새로운 데이터를 생성하는데 사용될 수 있다.
기계 학습 모델(600)은 자동 인코더이거나 이를 포함할 수 있다. 일부 사례에서, 자동 인코더의 목적은 전형적으로 차원 축소를 목적으로 데이터 세트에 대한 표현(예를 들어, 저-차원 인코딩)을 학습하는 것이다. 예를 들어, 일부 사례에서, 자동 인코더는 입력 데이터를 인코딩하고 그 인코딩으로부터 입력 데이터를 재구성하는 출력 데이터를 제공할 수 있다. 최근에, 자동 인코더 개념은 데이터의 생성적 모델을 학습하기 위해 더 널리 사용되고 있다. 일부 사례에서, 자동 인코더는 입력 데이터를 재구성하는 것 이상의 추가 손실을 포함할 수 있다.
기계 학습 모델(600)은 예를 들어, 심층 볼츠만 머신; 심층 빌리프 네트워크; 적층형 자동 인코더 등과 같은 하나 이상의 다른 형태의 인공 신경망이거나 이를 포함할 수 있다. 본 명세서에 기술된 임의의 신경망는 더 복잡한 네트워크를 형성하기 위해 결합(예를 들어, 적층)될 수 있다.
하나 이상의 신경망이 입력 데이터에 기초하여 임베딩을 제공하는데 사용될 수 있다. 예를 들어, 임베딩은 입력 데이터로부터 하나 이상의 학습된 차원으로의 추상화된 지식의 표현일 수 있다. 일부 사례에서, 임베딩은 관련 엔터티를 식별하는데 유용한 소스가 될 수 있다. 일부 사례에서, 임베딩은 네트워크의 출력으로부터 추출될 수 있는 반면, 일부 사례에서 임베딩은 임의의 은닉 노드 또는 (예를 들어, 네트워크의 최종 계층에 근접하지만 최종 계층은 아닌) 네트워크의 계층으로부터 추출될 수 있다. 임베딩은 다음 비디오 자동 제안, 제품 제안, 엔티티 또는 객체 인식 등을 수행하는데 유용할 수 있다. 일부 사례에서, 임베딩은 다운스트림 모델에 유용한 입력이다. 예를 들어, 임베딩은 다운스트림 모델 또는 프로세싱 시스템에 대한 입력 데이터(예를 들어, 검색 쿼리)를 일반화하는데 유용할 수 있다.
기계 학습 모델(600)은 예를 들어 k-평균 클러스터링 모델; k-중간 클러스터링 모델; 기대 최대화 모델; 계층적 클러스터링 모델등과 같은 하나 이상의 클러스터링 모델을 포함할 수 있다.
일부 구현에서, 기계-학습 모델(600)은 예를 들어, 주요 컴포넌트 분석; 커널 주 컴포넌트 분석; 그래프-기반 커널 주 컴포넌트 분석; 주 컴포넌트 회귀; 부분 최소 제곱 회귀; 삼몬(Sammon) 매핑; 다차원 스케일링; 프로젝션 추구 (pursuit); 선형 판별 분석; 혼합물 판별 분석; 이차 판별 분석; 일반화된 판별 분석; 플렉서블 판별 분석; 자동 인코딩 등과 같은 하나 이상의 치수 감소 기술을 수행할 수 있다.
일부 구현에서, 기계 학습 모델(600)은 마르코프 결정 프로세스; 동적 프로그래밍; Q 기능 또는 Q-학습; 가치 함수 접근법; 심층 Q-네트워크; 미분가능 신경 컴퓨터(DNC); 비동기 우위 행위자 비평(asynchronous advantage actor-critics); 결정론적 정책 구배 등과 같은 하나 이상의 강화 학습 기술을 수행하거나 적용할 수 있다.
일부 구현에서, 기계 학습 모델(600)은 자기 회귀 모델일 수 있다. 일부 사례에서, 자기 회귀 모델은 출력 데이터가 자체의 이전 값 및 확률 용어(stochastic term)에 선형적으로 의존하도록 지정할 수 있다. 일부 사례에서, 자기 회귀 모델은 확률 차분 방정식의 형태를 취할 수 있다. 자기 회귀 모델의 한 예는 웨이브넷(WaveNet)이며 이는 원시 오디오의 생성 모델이다.
일부 구현에서, 기계 학습 모델(600)은 다수의 모델 앙상블의 일부를 포함하거나 형성할 수 있다. 일 예로서, 붓스트랩 어그리게이팅(bootstrap aggregating)이 수행될 수 있으며, 이는 "배깅(bagging)"으로 지칭될 수도 있다. 붓스트랩 어그리게이팅에서, 트레이닝 데이터 세트는 (예를 들어, 대체를 이용한 랜덤 샘플링을 통해) 다수의 서브 세트로 분할되고, 복수의 모델은 각각 서브 세트의 수에 대해 트레이닝된다. 추론 시간에, 복수의 모델의 개별 출력은 (예를 들어, 평균화, 투표 또는 다른 기술을 통해) 결합되어 앙상블의 출력으로 사용될 수 있다.
하나의 예시적인 앙상블은 랜덤 포레스트(forest)이며, 이는 또한 랜덤 결정 포레스트로 지칭될 수 있다. 랜덤 포레스트는 분류, 회귀 및 기타 작업을 위한 앙상블 학습 방법이다. 트레이닝 시간에 복수의 결정 트리를 생성함으로써 랜덤 포레스트가 생성된다. 일부 사례에서, 추론시, 클래스의 모드(분류) 또는 개별 트리의 평균 예측(회귀)인 클래스가 포레스트의 출력으로 사용될 수 있다. 랜덤 결정 포레스트는 결정 트리가 트레이닝 세트를 과도하게 맞추는 경향을 교정할 수 있다.
다른 예적인 앙상블 기술은 스태킹(stacking)인데, 이는 일부 사례에서 스택형 일반화로 지칭될 수 있다. 스태킹에는 여러 다른 기계 학습 모델의 예측을 혼합하거나 결합하는 결합기 모델 트레이닝이 포함된다. 따라서, 트레이닝 데이터에 기초하여 (예를 들어, 동일하거나 상이한 유형의) 복수의 기계 학습 모델이 트레이닝될 수 있다. 또한, 결합기 모델은 다른 기계 학습 모델로부터의 예측을 입력으로 취하고, 이에 응답하여 최종 추론 또는 예측을 생성하도록 트레이닝될 수 있다. 일부 사례에서, 단일 계층 로지스틱 회귀 모델이 결합기 모델로 사용될 수 있다.
다른 예시적인 앙상블 기술은 부스팅이다. 부스팅은 약한 모델을 반복적으로 트레이닝한 다음 최종 강한 모델을 추가하여 앙상블을 점진적으로 구축하는 것을 포함할 수 있다. 예를 들어, 일부 사례에서, 각각의 새로운 모델은 이전 모델이 잘못 분석된(예를 들어, 잘못 분류된) 트레이닝 예제를 강조하도록 트레이닝될 수 있다. 예를 들어, 그러한 잘못 분석된 각각의 예제와 관련된 가중치는 증가될 수 있다. 부스팅의 하나의 일반적인 구현은 AdaBoost인데 이는 적응형 부스팅이라고도 한다. 다른 예시적인 부스팅 기술은 LPBoost; TotalBoost; 브라운 부스트; xgboost; MadaBoost, LogitBoost, 구배 부스팅등을 포함한다. 또한, 상술한 임의의 모델들(예를 들어, 회귀 모델 및 인공 신경망)은 조합되어 앙상블을 형성할 수 있다. 예로서, 앙상블은 최상위 레벨의 기계 학습 모델 또는 앙상블을 형성하는 모델의 출력을 결합 및/또는 가중하는 휴리스틱 기능을 포함할 수 있다.
일부 구현에서, (예를 들어, 앙상블을 형성하는) 다수의 기계 학습 모델은 링크되어 (예를 들어, 모델 앙상블을 통해 순차적으로 오류의 역전파를 통해) 공동으로 트레이닝될 수 있다. 그러나, 일부 구현에서, 공동으로 트레이닝된 모델들의 서브 세트(예를 들어, 하나)만이 추론에 사용된다.
일부 구현에서, 기계 학습 모델(600)은 다른 모델로의 후속 입력을 위해 입력 데이터를 전처리하기 위해 사용될 수 있다. 예를 들어, 기계-학습 모델(600)은 차원 축소 기술 및 임베딩(예를 들어, 행렬 분해, 주 컴포넌트 분석, 단일값 분해, word2vec/GLOVE 및/또는 관련 접근법); 클러스터링; 및 다운 스트림 소비에 대한 분류 및 회귀)을 수행할 수 있다. 이러한 기술들 중 많은 것이 위에서 논의되었고 아래에서 더 논의될 것이다.
위에서 논의된 바와 같이, 기계 학습 모델(600)은 입력 데이터를 수신하고 이에 응답하여 출력 데이터를 제공하도록 트레이닝되거나 구성될 수 있다. 입력 데이터는 상이한 유형, 형태 또는 입력 데이터의 변형을 포함할 수 있다. 예로서, 다양한 구현에서, 입력 데이터는 사용자가 선택한 문서 또는 이미지의 컨텐츠, 사용자 선택을 가리키는 링크, 디바이스 또는 클라우드에서 사용 가능한 다른 파일과 관련된 사용자 선택내의 링크, 사용자 선택의 메타 데이터와 같이 사용자에 의해 초기에 선택된 컨텐츠(또는 컨텐츠의 일부)를 기술하는 특징을 포함할 수 있다. 또한, 사용자 허용으로, 입력 데이터에는 앱 자체 또는 다른 소스로부터 획득된 사용자 사용 문맥가 포함된다. 사용 문맥의 예는 공유 범위(공개적으로 공유 또는 대규모 그룹과 공유 또는 비공개적으로 공유 또는 특정 개인과 공유), 공유 문맥 등을 포함한다. 사용자에 의해 허용되는 경우, 추가 입력 데이터는 디바이스의 상태, 예를 들어 디바이스의 위치, 디바이스에서 실행되는 애플리케이션 등을 포함할 수 있다.
일부 구현에서, 기계 학습 모델(600)은 입력 데이터를 원시 형태로 수신하여 사용할 수 있다. 일부 구현에서, 원시 입력 데이터는 전처리될 수 있다. 따라서, 원시 입력 데이터에 부가적으로 또는 대안적으로, 기계 학습 모델(600)은 전처리된 입력 데이터를 수신하여 사용할 수 있다.
일부 구현에서, 입력 데이터를 전처리하는 것은 원시 입력 데이터로부터 하나 이상의 추가 특징을 추출하는 것을 포함할 수 있다. 예를 들어, 특징 추출 기술은 입력 데이터에 적용되어 하나 이상의 새로운 추가 특징을 생성할 수 있다. 예시적인 특징 추출 기술은 에지 검출; 코너 감지; 얼룩(blob) 검출; 리지(ridge) 검출; 스케일-불변 특징 변환; 움직임 검출; 광학 흐름; 허프 변환등을 포함한다.
일부 구현에서, 추출된 특징은 입력 데이터를 다른 도메인 및/또는 차원으로 변환하는 것을 포함하거나 이로부터 도출될 수 있다. 예로서, 추출된 특징은 주파수 도메인으로의 입력 데이터의 변환을 포함하거나 이로부터 도출될 수 있다. 예를 들어, 웨이블릿 변환 및/또는 고속 푸리에 변환은 입력 데이터에 대해 수행되어 추가 특징을 생성할 수 있다.
일부 구현에서, 추출된 특징은 입력 데이터 또는 입력 데이터의 특정 부분 또는 차원으로부터 계산된 통계를 포함할 수 있다. 예시적인 통계는 입력 데이터 또는 그 일부의 모드, 평균, 최대, 최소 또는 다른 메트릭을 포함한다.
일부 구현에서, 전술한 바와 같이, 입력 데이터는 본질적으로 순차적일 수 있다. 일부 사례에서, 순차적 입력 데이터는 입력 데이터의 스트림을 샘플링하거나 세분화함으로써 생성될 수 있다. 일 예로서, 비디오로부터 프레임이 추출될 수 있다. 일부 구현에서, 순차적 데이터는 요약을 통해 비-순차적으로 만들어 질 수 있다.
다른 예시적인 전처리 기술로서, 입력 데이터의 일부가 대치될 수 있다. 예를 들어, 추가적인 합성 입력 데이터가 보간 및/또는 외삽을 통해 생성될 수 있다.
다른 예시적인 전처리 기술로서, 입력 데이터의 일부 또는 전부가 스케일링, 표준화, 정규화(normalized), 일반화 및/또는 정규화(regularized)될 수 있다. 예시적인 정규화 기술은 리지 회귀; LASSO(least absolute shrinkage and selection operator); 탄성망; 최소 각도 회귀; 교차 검증; L1 정규화; L2 정규화등을 포함한다. 일 예로, 입력 데이터의 일부 또는 전부는 각각의 개별 특성 값에서 주어진 차원의 특성 값에 대한 평균을 뺀 다음 표준 편차 또는 다른 메트릭으로 나누어 정규화할 수 있다.
다른 예시적인 전처리 기술로서, 입력 데이터의 일부 또는 전부는 양자화 또는 이산화될 수 있다. 일부 경우, 입력 데이터에 포함된 정성적 특징 또는 변수는정량적 특징 또는 변수로 변환될 수 있다. 예를 들어, 하나의 핫 인코딩이 수행될 수 있다.
일부 예에서, 기계 학습 모델(600에 입력하기 전에 입력 데이터에 차원 축소 기술이 적용될 수 있다. 차원 축소 기술의 몇 가지 예는 예를 들어 주요 컴포넌트 분석; 커널 주 컴포넌트 분석; 그래프-기반 커널 주 컴포넌트 분석; 주 컴포넌트 회귀; 부분 최소 제곱 회귀; 삼몬 매핑; 다차원 스케일링; 프로젝션 추구; 선형 판별 분석; 혼합물 판별 분석; 이차 판별 분석; 일반화된 판별 분석; 플렉서블 판별 분석; 자동 인코딩 등을 포함하여 위에서 제공되었다.
일부 구현에서, 트레이닝 중에, 입력 데이터는 모델 견고성, 일반화 또는 기타 품질을 향상시키기 위해 다수의 방식으로 의도적으로 변형될 수 있다. 입력 데이터를 변형시키는 예시적인 기술은 소음 추가; 컬러, 음영 또는 색조 변경; 확대(magnification); 분할; 확대(amplification)등을 포함한다.
입력 데이터의 수신에 응답하여, 기계 학습 모델(300)은 출력 데이터를 제공할 수 있다. 출력 데이터는 상이한 유형, 형태 또는 출력 데이터의 변형을 포함할 수 있다. 예로서, 다양한 구현에서, 출력 데이터는 사용자 디바이스 상에 또는 클라우드에 로컬로 저장된 컨텐츠를 포함할 수 있는데, 이는 초기 컨텐츠 선택과 함께 공유 가능하다.
위에서 논의된 바와 같이, 일부 구현에서, 출력 데이터는 다양한 유형의 분류 데이터(예를 들어, 이진 분류, 멀티 클래스 분류, 단일 레이블, 다중 레이블, 이산 분류, 회귀 분류, 확률 분류 등)를 포함하거나 다양한 유형의 회귀 데이터(예를 들어, 선형 회귀, 다항 회귀, 비선형 회귀, 단순 회귀, 다중 회귀 등)를 포함할 수 있다. 다른 사례에서, 출력 데이터는 클러스터링 데이터, 이상 검출 데이터, 추천 데이터, 또는 위에서 논의된 임의의 다른 형태의 출력 데이터를 포함할 수 있다.
일부 구현에서, 출력 데이터는 다운스트림 프로세스 또는 의사 결정에 영향을 줄 수 있다. 일 예로서, 일부 구현에서, 출력 데이터는 규칙 기반 레귤레이터에 의해 해석 및/또는 작동될 수 있다.
본 발명은 안면, 3D 시선 벡터, 탑승자 머리 및/또는 눈의 위치 및 탑승자가 응시하는 관심 영역을 결정하기 위해 하나 이상의 기계 학습 모델을 포함하거나 이용하는 시스템 및 방법을 제공한다. 상술한 임의의 상이한 유형 또는 형태의 입력 데이터는 상술한 임의의 상이한 유형 또는 형태의 기계 학습 모델과 결합되어 임의의 상이한 유형 또는 형태의 출력 데이터를 제공할 수 있다.
본 개시의 시스템 및 방법은 하나 이상의 컴퓨팅 디바이스에 의해 구현되거나 하나 이상의 컴퓨팅 디바이스상에서 실행될 수 있다. 예시적인 컴퓨팅 디바이스는 사용자 컴퓨팅 디바이스(예를 들어, 랩탑, 데스크탑, 및 태블릿, 스마트 폰, 웨어러블 컴퓨팅 디바이스 등과 같은 모바일 컴퓨팅 디바이스 등); 내장 컴퓨팅 디바이스(예를 들어, 차량, 카메라, 이미지 센서, 산업 기계, 위성, 게임 콘솔 또는 컨트롤러, 또는 냉장고, 온도 조절기, 에너지 미터, 가정용 에너지 관리기, 스마트 홈 어시스턴트 등과 같은 홈 가전 기기에 내장된 디바이스 등); 서버 컴퓨팅 디바이스(예를 들어, 데이터베이스 서버, 파라미터 서버, 파일 서버, 메일 서버, 프린트 서버, 웹 서버, 게임 서버, 애플리케이션 서버 등); 전용의 특수 모델 처리 또는 트레이닝 디바이스; 가상 컴퓨팅 디바이스; 기타 컴퓨팅 디바이스 또는 컴퓨팅 인프라; 또는 이들의 조합을 포함한다.
도 6b는 도 1의 차량 컴퓨팅 시스템(104) 및/또는 도 5의 컴퓨팅 디바이스(500)의 예시인 컴퓨팅 디바이스(610)의 개념도를 도시한다. 컴퓨팅 디바이스(610)는 프로세싱 컴포넌트(602), 메모리 컴포넌트(604) 및 기계 학습 모델(600)을 포함한다. 컴퓨팅 디바이스(610)는 기계 학습 모델(600)을 국부적으로(즉, 온 디바이스로) 저장 및 구현할 수 있다. 따라서, 일부 구현에서, 기계 학습 모델(600)은 내장형 디바이스 또는 모바일 디바이스와 같은 사용자 컴퓨팅 디바이스에 저장되고 및/또는 로컬로 구현될 수 있다. 내장 디바이스 또는 사용자 컴퓨팅 디바이스에서 기계 학습 모델(600)의 로컬 구현을 통해 획득된 출력 데이터는 내장 디바이스 또는 사용자 컴퓨팅 디바이스(예를 들어, 내장 디바이스 또는 사용자 컴퓨팅 디바이스에 의해 구현된 애플리케이션)의 성능을 향상시키기 위해 사용될 수 있다.
도 6c는 기계 학습 모델을 포함하는 예시적인 서버 컴퓨팅 시스템과 네트워크를 통해 통신할 수 있는 예시적인 클라이언트 컴퓨팅 디바이스의 개념도를 도시한다. 도 6c는 네트워크(630)를 통해 서버 디바이스(660)와 통신하는 클라이언트 디바이스(610A)를 포함한다. 클라이언트 디바이스(610A)는 도 1의 차량 컴퓨팅 시스템(104) 및/또는 도 5의 컴퓨팅 디바이스(500)의 예이다. 서버 디바이스(660)는 기계 학습 모델(600)을 저장하고 구현한다. 일부 사례에서, 서버 디바이스(660)에서 기계 학습 모델(600)을 통해 획득된 출력 데이터는 다른 서버 작업을 개선하는데 사용되거나 다른 비-사용자 디바이스에 의해 사용되어 그러한 다른 비-사용자 디바이스에 의해 수행되는 서비스를 개선할 수 있다. 예를 들어, 출력 데이터는 사용자의 컴퓨팅 디바이스 또는 내장 컴퓨팅 디바이스를 위해 서버 디바이스(660)에 의해 수행되는 다른 다운스트림 프로세스를 개선할 수 있다. 다른 사례에서, 서버 디바이스(660)에서 기계 학습 모델(600)의 구현을 통해 획득된 출력 데이터는 사용자 컴퓨팅 디바이스, 내장 컴퓨팅 디바이스, 또는 클라이언트 디바이스(610A)와 같은 일부 다른 클라이언트 디바이스로 전송되어 사용될 수 있다. 예를 들어, 서버 디바이스(660)는 서비스로 기계 학습을 수행한다고 말할 수 있다.
또 다른 구현에서, 기계 학습 모델(600)의 상이한 개별 부분은 사용자 컴퓨팅 디바이스; 내장 컴퓨팅 디바이스; 서버 컴퓨팅 디바이스등의 일부 조합에 저장 및/또는 구현될 수 있다. 다시 말해서, 기계 학습 모델(600)의 일부는 클라이언트 디바이스(610A)와 서버 디바이스(660)에 전체적으로 또는 부분적으로 분배될 수 있다.
디바이스(610A 및 660)는 예를 들어, 텐서플로우, Caffe/Caffe2, Theano, Torch/PyTorch, MXnet, CNTK 등과 같은 하나 이상의 기계 학습 플랫폼, 프레임워크 및/또는 라이브러리를 사용하여 그래프 처리 기술 또는 다른 기계 학습 기술을 수행할 수 있다. 디바이스(610A 및 660)는 상이한 물리적 위치에 분산될 수 있고 네트워크(630)를 포함하여 하나 이상의 네트워크를 통해 연결될 수 있다. 분산 컴퓨팅 디바이스로서 구성되면, 디바이스(610A 및 660)는 순차적 컴퓨팅 아키텍처, 병렬 컴퓨팅 아키텍처 또는 이들의 조합에 따라 동작할 수 있다. 일 예에서, 분산 컴퓨팅 디바이스는 파라미터 서버의 사용을 통해 제어 또는 안내될 수 있다.
일부 구현에서, 기계 학습 모델(600)의 다중 사례는 병렬 처리되어 향상된 프로세싱 처리량을 제공할 수 있다. 예를 들어, 기계 학습 모델(600)의 다중 사례는 단일 처리 디바이스 또는 컴퓨팅 디바이스에서 병렬화되거나 다중 처리 디바이스 또는 컴퓨팅 디바이스에서 병렬화될 수 있다.
기계 학습 모델(600) 또는 본 개시의 다른 양태을 구현하는 각각의 컴퓨팅 디바이스는 본 명세서에 기술된 기술의 성능을 가능하게 하는 다수의 하드웨어 컴포넌트를 포함할 수 있다. 예를 들어, 각 컴퓨팅 디바이스는 기계 학습 모델(600)의 일부 또는 전부를 저장하는 하나 이상의 메모리 디바이스를 포함할 수 있다. 예를 들어, 기계 학습 모델(600)은 메모리에 저장된 구조화된 수치 표현일 수 있다. 하나 이상의 메모리 디바이스는 또한 기계 학습 모델(600)을 구현하거나 다른 동작들을 수행하기 위한 명령들을 포함할 수 있다. 예시적인 메모리 디바이스는 RAM, ROM, EEPROM, EPROM, 플래시 메모리 디바이스, 자기 디스크 등 및 이들의 조합을 포함한다.
각 컴퓨팅 디바이스는 또한 기계 학습 모델(600)의 일부 또는 전부를 구현하고 및/또는 다른 관련 동작들을 수행하는 하나 이상의 처리 디바이스를 포함할 수 있다. 예시적인 처리 디바이스는 중앙 처리 장치(CPU); 시각 처리 장치(VPU); 그래픽 처리 장치(GPU); 텐서 처리 장치(TPU); 신경 처리 장치(NPU); 신경 처리 엔진; CPU, VPU, GPU, TPU, NPU의 코어 또는 다른 처리 디바이스; 주문형 집적 회로(ASIC); FPGA(Field Programmable Gate Array); 코(co)-프로세서; 컨트롤러; 또는 전술한 처리 디바이스의 조합들 중 하나 이상을 포함한다. 처리 디바이스는 예를 들어 이미지 센서, 가속도계 등과 같은 다른 하드웨어 컴포넌트 내에 내장될 수 있다.
하드웨어 컴포넌트(예를 들어, 메모리 디바이스 및/또는 처리 디바이스)는 다수의 물리적 분산 컴퓨팅 디바이스 및/또는 가상 분산 컴퓨팅 시스템에 분산될 수 있다.
도 6d는 모델 트레이너를 포함하는 예시적인 트레이닝 컴퓨팅 시스템과 통신하는 예시적인 컴퓨팅 디바이스의 개념도를 도시한다. 도 6d는 네트워크(630)를 통해 트레이닝 디바이스(670)와 통신하는 클라이언트 디바이스(610B)를 포함한다. 클라이언트 디바이스(610B)는 도 1의 차량 컴퓨팅 시스템(104) 및/또는 도 5의 컴퓨팅 디바이스(500)의 예이다. 본 명세서에 설명된 기계 학습 모델(600)은 트레이닝 디바이스(670)와 같은 트레이닝 컴퓨팅 시스템에서 트레이닝된 후 클라이언트 디바이스(610B)와 같은 하나 이상의 컴퓨팅 디바이스에서의 저장 및/또는 구현을 위해 제공될 수 있다. 예를 들어, 모델 트레이너(672)는 트레이닝 디바이스(670)에서 로컬로 실행된다. 그러나, 일부 예에서, 모델 트레이너(672)를 포함하여 트레이닝 디바이스(670)는 클라이언트 디바이스(610B) 또는 기계 학습 모델(600)을 구현하는 임의의 다른 컴퓨팅 디바이스에 포함되거나 그로부터 분리될 수 있다.
일부 구현에서, 기계 학습 모델(600)은 오프라인 방식 또는 온라인 방식으로 트레이닝될 수 있다. (배치(batch) 학습으로도 알려진) 오프라인 트레이닝시, 기계 학습 모델(600)은 정적 트레이닝 데이터 세트의 전체에 대해 트레이닝된다. 온라인 트레이닝시, 기계 학습 모델(600)은 새로운 트레이닝 데이터가 이용 가능해짐에 따라(예를 들어, 모델이 추론을 수행하는데 사용됨) 지속적으로 트레이닝(또는 재 트레이닝)된다.
모델 트레이너(672)는 (예를 들어, 중앙에 저장된 데이터 세트에 기초하여) 기계 학습 모델(600)의 중앙 집중식 트레이닝을 수행할 수 있다. 다른 구현에서, 분산 트레이닝, 연합 학습 등과 같은 분산 트레이닝 기술은 기계 학습 모델(600)을 트레이닝, 업데이트 또는 개인화하는데 사용될 수 있다.
본 명세서에 설명된 기계 학습 모델(600)은 다양한 상이한 트레이닝 유형 또는 기술 중 하나 이상에 따라 트레이닝될 수 있다. 예를 들어, 일부 구현에서, 기계 학습 모델(600)은 지도 학습을 사용하여 모델 트레이너(672)에 의해 트레이닝될 수 있으며, 여기서 기계 학습 모델(600)은 라벨(레이블)을 갖는 사례 또는 예를 포함하는 트레이닝 데이터 세트에 대해 트레이닝된다. 라벨은 전문가가 직접 적용하거나 크라우드 소싱을 통해 생성하거나 다른 기술(예를 들어, 물리 기반 또는 복잡한 수학 모델)을 통해 제공될 수 있다. 일부 구현에서, 사용자가 동의한 경우, 트레이닝 예제는 사용자 컴퓨팅 디바이스에 의해 제공될 수 있다. 일부 구현에서,이 프로세스는 모델을 개인화하는 것으로 지칭될 수 있다.
도 6e는 기계 학습 모델(600)이 라벨(693)을 갖는 예시적인 입력 데이터(692)를 포함하는 트레이닝 데이터(691)에 대해 트레이닝되는 예시적인 트레이닝 과정인 트레이닝 프로세스(690)의 개념도를 도시한다. 트레이닝 프로세스(690)는 트레이닝 프로세스의 일 예이다. 다른 트레이닝 프로세스도 사용될 수 있다.
트레이닝 프로세스(690)에 의해 사용되는 트레이닝 데이터(691)는 트레이닝을 위해 이러한 데이터 사용에 대한 사용자 허용시, 공유 플로우의 익명화된 사용 로그, 예를 들어 함께 공유된 컨텐트 아이템, 함께 속해있는 것으로 이미 식별된 번들 컨텐트 조각, 예를 들어 지식 그래프내의 엔티티 등을 포함할 수 있다. 일부 구현에서, 트레이닝 데이터(691)는 출력 데이터(694)에 대응하는 라벨들(693)이 할당된 입력 데이터(692)의 예를 포함할 수 있다.
일부 구현에서, 기계 학습 모델(600)은 목적 함수(695)와 같은 목적 함수를 최적화함으로써 트레이닝될 수 있다. 예를 들어 일부 구현에서, 목적 함수(695)는 트레이닝 데이터로부터 모델에 의해 생성된 출력 데이터와 트레이닝 데이터와 관련된 라벨(예를 들어, 실측(ground-truth) 라벨)을 비교하는(예를 들어, 그들 사이의 차이를 결정하는) 손실 함수이거나 이를 포함할 수 있다. 예를 들어, 손실 함수는 출력 데이터와 라벨들 사이의 제곱된 차이의 합 또는 평균을 평가할 수 있다. 일부 예에서, 목적 함수(695)는 특정 결과 또는 출력 데이터의 비용을 기술하는 비용 함수이거나 이를 포함할 수 있다. 목적 함수(695)의 다른 예는 예를 들어 트리플렛 손실(triplet loss) 또는 최대 마진 트레이닝과 같은 마진 기반 기술을 포함할 수 있다.
다양한 최적화 기술 중 하나 이상이 목적 함수(695)를 최적화하기 위해 수행될 수 있다. 예를 들어, 최적화 기술(들)은 목적 함수(695)를 최소화하거나 최대화할 수 있다. 예시적인 최적화 기술은 예를 들어, 좌표 하강; 구배 하강(예를 들어, 확률 구배 하강); 서브 구배 방법등과 같은 헤시안(Hessian) 기반 기술 및 구배 기반 기술을 포함한다. 다른 최적화 기술에는 블랙 박스 최적화 기술 및 휴리스틱이 포함된다.
일부 구현에서, 오류의 역전파는 (기계 학습 모델이 인공 신경망과 같은 다층 모델일 때) 기계 학습 모델(300)을 트레이닝시키기 위해 최적화 기술(예컨대, 구배 기반 기술)과 함께 사용될 수 있다. 예를 들어, 기계 학습 모델(600)을 트레이닝시키기 위해 전파의 반복 사이클 및 모델 파라미터(예컨대, 가중치) 업데이트가 수행될 수 있다. 역전파 기술의 예는 시간을 통한 절단된 역전파, Levenberg-Marquardt 역 전파 등을 포함한다.
일부 구현에서, 본 명세서에 설명된 기계 학습 모델(600)은 비지도 학습 기술을 사용하여 트레이닝될 수 있다. 비지도 학습은 비라벨된 데이터로부터 은닉 구조를 기술하는 함수를 유추하는 것을 포함할 수 있다. 예를 들어, 분류 또는 범주화가 데이터에 포함되지 않을 수 있다. 비지도 학습 기술은 클러스트링, 이상 검출, 잠재 변수 모델 학습 또는 기타 작업을 수행할 수 있는 기계 학습 모델을 생성하는데 사용될 수 있다.
기계 학습 모델(600)은 지도 학습 및 비지도 학습의 양태를 결합하는 반-지도 기술을 사용하여 트레이닝될 수 있다. 기계 학습 모델(600)은 진화 기술 또는 유전 알고리즘을 통해 트레이닝되거나 생성될 수 있다. 일부 구현에서, 본 명세서에 설명된 기계 학습 모델(600)은 강화 학습을 사용하여 트레이닝될 수 있다. 강화 학습에서, 에이전트(예컨대, 모델)는 환경에서 동작을 취하고 그러한 동작으로 인한 보상을 최대화하고 및/또는 패널티를 최소화하는 방법을 학습할 수 있다. 강화 학습은 올바른 입력/출력 쌍이 제시되지 않거나 차선의 동작이 명시적으로 수정되지 않았다는 점에서 지도 학습 문제와 다를 수 있다.
일부 구현에서, 기계 학습 모델(600)의 일반화를 향상시키기 위해 트레이닝 동안 하나 이상의 일반화 기술이 수행될 수 있다. 일반화 기술은 트레이닝 데이터에 대한 기계 학습 모델(600)의 과적합(overfitting)을 줄이는데 도움이 될 수 있다. 예시적인 일반화 기술은 드롭 아웃 기술; 가중치 감량 기술; 배치(batch) 정규화; 조기 종료; 서브 세트 선택; 단계적 선택등을 포함한다.
일부 구현에서, 본 명세서 기술된 기계 학습 모델(600)은 예를 들어, 학습 속도, 계층 수, 각 계층의 노드 수, 트리내의 잎의 수, 클러스터 수등과 같은 다수의 하이퍼 파라미터를 포함하거나 이에 의해 영향을 받을 수 있다. 하이퍼 파라미터는 모델 성능에 영향을 줄 수 있다. 하이퍼 파라미터는 수동으로 선택하거나 예를 들어 그리드 검색; 블랙 박스 최적화 기술(예컨대, 베이지안 최적화, 랜덤 검색 등); 구배 기반 최적화등과 같은 기술의 적용을 통해 자동으로 선택될 수 있다. 자동 하이퍼 파라미터 최적화를 수행하기 위한 예시적인 기술 및/또는 툴은 Hyperopt; Auto-WEKA; 스피어민트; 메트릭 최적화 엔진(MOE)등을 포함한다.
일부 구현에서, 모델이 트레이닝될 때 학습 속도를 최적화 및/또는 적응시키기 위해 다양한 기술이 사용될 수 있다. 학습 속도 최적화 또는 적응을 수행하기 위한 예시적인 기술 및/또는 툴은 Adagrad; 적응 모멘트 추정(ADAM); 아다델타; RMSprop등을 포함한다. 일부 구현에서, 전이 학습 기술은 본 명세서에 기술된 기계 학습 모델(600)의 트레이닝을 시작하기 위한 초기 모델을 제공하는데 사용될 수 있다.
일부 구현에서, 본 명세서에 기술된 기계 학습 모델(600)은 컴퓨팅 디바이스상의 컴퓨터 판독 가능 코드의 상이한 부분에 포함될 수 있다. 일 예에서, 기계-학습 모델(600)은 특정 애플리케이션 또는 프로그램에 포함될 수 있고 그러한 특정 애플리케이션 또는 프로그램에 의해 (예를 들어, 독점적으로) 사용될 수 있다. 따라서, 일 예에서, 컴퓨팅 디바이스는 다수의 애플리케이션을 포함할 수 있고, 이러한 애플리케이션 중 하나 이상은 자체의 개별 기계 학습 라이브러리 및 기계 학습 모델(들)을 포함할 수 있다.
다른 예에서, 본 명세서에 기술된 기계 학습 모델(600)은 컴퓨팅 디바이스의 운영 체제(예를 들어, 운영 체제의 중앙 지능 계층)에 포함될 수 있고, 운영 체제와 상호 작용하는 하나 이상의 애플리케이션에 의해 호출되거나 사용될 수 있다. 일부 구현에서, 각 애플리케이션은 애플리케이션 프로그래밍 인터페이스(API)(예를 들어, 모든 애플리케이션들에 걸친 공통의 공개 API)를 사용하여 중앙 지능 계층(및 그에 저장된 모델(들))과 통신할 수 있다.
일부 구현에서, 중앙 지능 계층은 중앙 디바이스 데이터 계층과 통신할 수 있다. 중앙 디바이스 데이터 계층은 컴퓨팅 디바이스에 대한 중앙 집중식 데이터 저장소일 수 있다. 중앙 디바이스 데이터 계층은 예를 들어 하나 이상의 센서, 문맥 관리자, 디바이스 상태 컴포넌트 및/또는 추가 컴포넌트와 같은 컴퓨팅 디바이스의 다수의 다른 컴포넌트와 통신할 수 있다. 일부 구현에서, 중앙 디바이스 데이터 계층은 API(예를 들어, 개인 API)를 사용하여 각 디바이스 컴포넌트와 통신할 수 있다.
본 명세서에서 논의된 기술은 서버, 데이터베이스, 소프트웨어 애플리케이션 및 다른 컴퓨터 기반 시스템뿐만 아니라 취해진 동작 및 그러한 시스템으로/로부터 전송된 정보를 참조한다. 컴퓨터 기반 시스템의 고유한 유연성 덕분에 컴포넌트 간 및 컴포넌트사이의 작업과 기능의 다양한 구성, 조합 및 분할이 가능하다. 예를 들어, 본 명세서에서 논의된 프로세스는 단일 디바이스 또는 컴포넌트 또는 다수의 디바이스 또는 컴포넌트를 조합하여 사용하여 구현될 수 있다.
데이터베이스 및 애플리케이션은 단일 시스템에서 구현되거나 다수의 시스템에 분산될 수 있다. 분산 컴포넌트는 순차적으로 또는 병렬로 동작할 수 있다.
또한, 본 명세서에 기술된 기계 학습 기술은 쉽게 상호 교환 가능하고 결합 가능하다. 특정 예시적인 기술이 설명되었지만, 많은 다른 기술이 존재하며 본 개시의 양태와 관련하여 사용될 수 있다.
예시적인 기계 학습 모델 및 관련 기술의 간략한 개요가 본 개시에 의해 제공되었다. 추가 상세 내용에 대해, 독자는 머신 러닝 확률적 관점(Murphy); 기계 학습의 규칙: ML 엔지니어링용 모범 사례(Zinkevich); 심층 학습(Goodfellow); 강화 학습: 소개(Sutton); 및 인공 지능: 현대적 접근법(Norvig)과 같은 참고 문헌을 검토해야 한다.
위의 설명에 더하여, 사용자는 본 명세서에 기술된 시스템, 프로그램 또는 특징이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자 선호도 또는 사용자의 현재 위치에 관한 정보)의 수집을 가능하게 할 수 있는지 여부 및 사용자가 서버로부터 컨텐츠 또는 통신을 수신하는지 여부 모두에 대해 사용자가 선택할 수 있게 하는 제어를 제공받을 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거되도록 저장 또는 사용하기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대한 개인 식별 정보가 결정되지 않도록 처리될 수 있거나, 사용자의 지리적 위치는 사용자의 특정 위치가 결정될 수 없도록 위치 정보가 획득되는 위치(예를 들어, 도시, 우편 번호 또는 주 수준)에서 일반화될 수 있다. 따라서, 사용자는 사용자에 대해 어떤 정보가 수집되는지, 해당 정보가 어떻게 사용되는지, 그리고 어떤 정보가 사용자에게 제공되는지를 제어할 수 있다.
도 7은 본 개시의 하나 이상의 양태에 따른, 3D 시선 벡터를 사용하여 운전자 참여를 결정하도록 구성된 컴퓨팅 시스템의 예시적인 동작들을 도시하는 흐름도이다. 도 7의 동작들은 도 1의 차량(100) 및 도 5의 예시적인 컴퓨팅 디바이스(500)와 관련하여 아래에서 설명된다. 하나 이상의 카메라(102)는 차량(100) 탑승자의 적어도 하나의 이미지를 캡처할 수 있다(702).
컴퓨팅 디바이스(500)의 눈 위치 모듈(524)은 적어도 하나의 이미지를 분석하여 차량(100) 내의 탑승자의 머리 및/또는 눈의 위치를 결정할 수 있다(704). 예를 들어, 적어도 하나의 이미지는 카메라들(102) 중 상이한 하나에 의해 각각 촬영된 2개의 이미지를 포함할 수 있다. 눈 위치 모듈(524)은 이미지에서 캡처된 탑승자의 머리에 대한 카메라들(102)의 시차 각도를 결정할 수 있다. 시차 각도 및 카메라들(102) 사이의 거리를 사용하여, 눈 위치 모듈(524)은 탑승자의 머리 및/또는 눈이 하나 이상의 카메라(102)로부터 떨어진 거리를 결정할 수 있다. 탑승자의 머리 및/또는 눈의 거리를 사용하는 것은 하나 이상의 카메라(102) 및 3D 공간내의 하나 이상의 카메라(102) 각각의 상대 위치를 형성하고, 눈 위치 모듈(524)은 하나 이상의 카메라(102)에 대한 3D 공간내의 탑승자의 머리 및/또는 눈의 위치를 결정할 수 있다. 다른 예로서, 카메라들(102) 중 하나는 탑승자의 적외선 이미지를 캡처하는 적외선 카메라일 수 있다. 눈 위치 모듈(524)은 적외선 이미지에서의 왜곡을 분석하고, 왜곡에 기초하여 카메라로부터의 탑승자의 머리 및/또는 눈의 거리를 결정할 수 있다. 눈 위치 모듈(524)은 또한 이미지 내의 머리 및/또는 눈의 위치에 기초하여 카메라에 대한 탑승자의 머리 및/또는 눈의 위치를 결정할 수 있다.
시선 모듈(522)은 차량 탑승자의 3D 시선 벡터를 결정할 수 있다(706). 일부 사례에서, 시선 모듈(522)은 하나 이상의 카메라(102)에 의해 캡처된 하나 이상의 이미지를 분석하여 탑승자의 안면을 결정할 수 있다. 예를 들어, 시선 모듈(522)은 하나 이상의 이미지에 기계 학습 모듈을 적용하여 이미지 내에서 탑승자의 다양한 얼굴 랜드마크를 식별할 수 있고, 또한 식별된 얼굴 랜드마크의 위치에 기계 학습 모델을 적용하여 탑승자 안면의 피치, 롤 및 요를 결정할 수 있다. 일부 사례에서, 단일 기계 학습 모듈은 안면 랜드마크를 식별하고 그 안면의 피치, 롤 및 요 각도를 결정할 수 있다. 다른 예로서, 시선 모듈(522)은 휴리스틱를 수행하여 얼굴 랜드마크의 위치를 결정할 수 있고, 기계 학습 이외의 기술을 사용하여 안면의 피치, 롤 및 요 각도를 계산할 수 있다. 안면의 요, 피치 및 롤 각도를 사용하여, 시선 모듈(522)은 탑승자에 대한 3D 시선 벡터를 결정할 수 있다.
일부 사례에서, 시선 모듈(522)은 또한 시선 추적을 사용하여 3D 시선 벡터를 결정할 수 있다. 그러나, 탑승자의 눈이 가려질 수 있으므로 이미지에 나타나지 않을 수 있다. 그러한 사례에서, 3D 시선 벡터를 결정하기 위해 시선 추적을 사용하는 대신, 시선 모듈(522)은 안면을 사용하여 3D 시선 벡터를 결정할 수 있다. 시선 모듈(522)이 시선 추적 및 안면 둘 모두에 기초하여 초기 3D 시선 벡터를 결정할 수 있는 사례에서, 시선 모듈(522)은 초기 3D 시선 벡터 둘의 조합을 사용하여 최종 3D 시선 벡터를 결정할 수 있다.
관심 영역 모듈(526)은 시선 모듈(522)에 의해 결정된 3D 시선 벡터 및 눈 위치 모듈(524)에 의해 결정된 머리 및/또는 눈 위치 모두를 사용하여 탑승자가 응시하는 하나 이상의 관심 영역을 결정할 수 있다(708). 다양한 사례에서, 눈 위치 모듈(524)에 의해 결정된 머리 및/또는 눈 위치는 하나 이상의 카메라(102)의 위치에 대해 정의된 좌표 세트이다. 즉, 머리 및/또는 눈의 위치는 카메라 기반 좌표계를 사용하여 지정될 수 있다. 그러한 사례에서, 관심 영역 모듈(526)은 위치 데이터를 카메라 기반 좌표계에서 차량 기반 좌표계로 변환할 수 있다. 차량 기반 좌표계는 차량 컴퓨팅 시스템(104)에 제공된 차량 데이터 파일에 의해 정의될 수 있다. 차량 데이터 파일은 차량 기반 좌표계을 사용하여 차량의 복수의 관심 영역을 정의하는 좌표를 포함할 수 있다.
관심 영역 모듈(526)은 시선 모듈(522)에 의해 결정된 3D 시선 벡터를 탑승자의 눈 중 하나 이상의 차량 기반 좌표 위치로부터 투사할 수 있다. 관심 영역 모듈(526)은 3D 시선 벡터가 교차하는 관심 영역의 평면들 중 어느 것이 존재하는지와 3D 시선 벡터가 교차하는 각 평면 내의 특정 위치를 결정할 수 있다. 탑승자의 눈과 관심 영역의 좌표 위치는 동일한 좌표계을 사용하여 지정되기 때문에, 관심 영역 모듈(526)은 각 관심 영역과 탑승자의 눈 위치 사이의 거리를 결정할 수 있다. 3D 시선 벡터 방향과 함께 이 거리를 사용하여, 관심 영역 모듈(526)은 3D 시선 벡터가 관심 영역에 대한 하나 이상의 평면과 교차하는 위치를 결정할 수 있다. 관심 영역 모듈(526)은 3D 시선 벡터에 의해 교차되는 관심 영역들에 대한 평면이 탑승자가 응시하는 하나 이상의 관심 영역이라고 결정한다.
다양한 사례에서, 일단 관심 영역 모듈(526)이 탑승자가 응시하는 적어도 하나의 관심 영역을 결정하면, 차량 컴퓨팅 시스템(104)은 하나 이상의 동작을 수행할 수 있다(710). 예를 들어, 차량(100)의 탑승자가 적어도 임계 시간 기간 동안 측면 창을 바라보고 있다면, 차량 컴퓨팅 시스템(104)은 탑승자가 경치와 같은 측면 창 외부에 위치한 무언가를 보고 있다고 결정할 수 있다. 차량 컴퓨팅 시스템(104)은 차량(100)의 외부에 위치한 카메라를 자동으로 제어하여, 탑승자가 카메라를 들어 사진을 찍을 필요없이 카메라가 풍경의 이미지를 캡처하게 할 수 있다.
다른 예로서, 차량(100)의 탑승자가 차량(100)의 운전자인 경우, 차량 컴퓨팅 시스템(104)은 운전자가 도로를 보는 대신 차량 컴퓨팅 시스템(104)의 디스플레이를 보고 있다고 결정할 수 있다. 그러한 사례에서, 차량 컴퓨팅 시스템(104)은 (예를 들어, 운전자가 디스플레이와 관련된 관심 영역을 여전히 응시하는지 주기적으로 검증함으로써) 운전자가 임계 시간보다 큰 시간 동안 디스플레이를 응시하는지를 결정하도록 구성될 수 있다. 만약 차량 컴퓨팅 시스템(104)이 운전자가 임계 시간보다 큰 시간 동안 디스플레이를 보고 있다고 결정하면, 차량 컴퓨팅 시스템(104)은 디스플레이에서의 정보 출력을 중단할 수 있고, 디스플레이에 경고 메시지를 출력할 수 있거나, 차량 컴퓨팅 시스템(104)에 의해 수신된 사용자 입력의 처리를 중단할 수 있다. 만약 차량 컴퓨팅 시스템이 운전자가 임계 시간보다 큰 시간 동안 디스플레이를 보고 있지 않다고 결정하면, 차량 컴퓨팅 시스템(104)은 디스플레이와 관련된 관심 영역을 응시하는 운전자에 기초하여 동작을 수행하지 않을 수 있다. 이러한 방식으로, 차량 컴퓨팅 시스템(104)은 차량 탑승자가 응시하는 관심 영역에 기초하여 동작을 선택적으로 수행할 수 있다.
하나 이상의 예에서, 설명된 기능은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능들은 하나 이상의 명령 또는 코드로서, 컴퓨터 판독 가능 매체 상에 저장되거나 이를 통해 전송될 수 있고 하드웨어 기반 처리 유닛에 의해 실행될 수 있다. 컴퓨터 판독 가능 매체는 예를 들어, 통신 프로토콜에 따라, 데이터 저장 매체와 같은 유형의 매체, 또는 컴퓨터 프로그램을 한 장소에서 다른 장소로의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체에 대응하는 컴퓨터 판독 가능한 저장 매체를 포함할 수 있다. 이러한 방식으로, 컴퓨터 판독 가능 매체는 일반적으로(1) 비-일시적인 유형의 컴퓨터 판독 가능 저장 매체 또는 (2) 신호 또는 반송파와 같은 통신 매체에 대응할 수 있다. 데이터 저장 매체는 본 개시에서 설명된 기술의 구현을 위한 명령, 코드 및/또는 데이터 구조를 검색하기 위해 하나 이상의 컴퓨터 또는 하나 이상의 프로세서에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 매체를 포함할 수 있다.
예로서, 제한적이지는 않지만 컴퓨터 판독 가능한 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지 또는 기타 자기 저장 디바이스, 플래시 메모리, 또는 컴퓨터에 의해 액세스될 수 있는 명령 또는 데이터 구조의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결은 컴퓨터 판독 가능 매체로 적절히 지칭된다. 만약 명령들이 예를 들어, 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL(Digital Subscriber Line), 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술을 사용하여 웹 사이트, 서버 또는 다른 원격 소스로부터 전송되는 경우, 상기 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 적외선, 라디오 및 마이크로웨이브와 같은 무선 기술이 매체의 정의에 포함된다. 그러나, 컴퓨터 판독 가능 저장 매체 및 데이터 저장 매체는 연결, 반송파, 신호, 또는 다른 일시적 매체를 포함하지 않고, 그 대신 비-일시적인 유형의 저장 매체로 지향된다는 것을 이해해야 한다. 사용되는 디스크(disk) 및 디스크(disc)에는 컴팩트 disc(CD), 레이저 disc, 광 disc, 디지털 다목적 disc(DVD), 플로피 disk 및 블루레이 disc, 울트라 블루레이등을 포함하는데, 여기서 디스크(disk)는 일반적으로 자기적으로 데이터를 재생하는 반면 디스크(disc)는 레이저로 데이터를 광학적으로 재생한다. 위의 조합은 또한 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다.
명령들은 하나 이상의 디지털 신호 프로세서(DSP), 범용 마이크로 프로세서, 주문형 집적 회로(ASIC), 필드 프로그래머블 로직 어레이(FPGA), 또는 다른 동가 집적 또는 이산 논리 회로와 같은 하나 이상의 프로세서에 의해 실행될 수 있다. 따라서, 사용된 "프로세서"라는 용어는 전술한 구조 중 임의의 어느 하나 또는 설명된 기술의 구현에 적합한 임의의 다른 구조를 지칭할 수 있다. 또한, 일부 양태에서, 설명된 기능들은 전용 하드웨어 및/또는 소프트웨어 모듈 내에 제공될 수 있다. 또한, 기술들은 하나 이상의 회로 또는 논리 요소에서 완전히 구현될 수 있다.
본 개시의 기술들은 무선 핸드셋, 집적 회로(IC) 또는 IC 세트(예를 들어, 칩 세트)를 포함하여 다양한 디바이스 또는 장치에서 구현될 수 있다. 개시된 기술들을 수행하도록 구성된 디바이스들의 기능적 측면을 강조하기 위해 다양한 컴포넌트, 모듈 또는 유닛이 본 개시에서 기술되지만, 반드시 상이한 하드웨어 유닛에 의한 실현을 요구하지는 않는다. 오히려, 전술한 바와 같이, 다양한 유닛은 하드웨어 유닛으로 조합되거나 적절한 소프트웨어 및/또는 펌웨어와 함께 전술한 바와 같은 하나 이상의 프로세서를 포함하는 상호 운용 가능한 하드웨어 유닛의 컬렉션에 의해 제공될 수 있다.
다양한 예가 설명되었다. 이들 및 다른 예는 다음의 청구 범위의 범위 내에 있다.

Claims (13)

  1. 컴퓨터 구현 방법으로서,
    차량의 카메라 시스템을 통해, 차량의 운전자의 적어도 하나의 이미지를 획득하는 단계와;
    운전자의 적어도 하나의 이미지에 기초하여, 차량 내 운전자의 시선 벡터를 결정하는 단계와, 상기 시선 벡터를 결정하는 단계는;
    운전자의 눈이 가려지지 않은 경우, 운전자의 하나 이상의 눈 위치 및 움직임에 기초하여 제1 시선 벡터를 결정하는 단계; 및
    운전자의 눈이 가려진 경우, 운전자의 안면의 각도들에 기초하여 제2 시선 벡터를 결정하는 단계를 포함하고,
    상기 시선 벡터는 제1 시선 벡터와 제2 시선 벡터의 평균에 의해 결정되고, 그리고 상기 운전자의 눈이 가려지지 않고 운전자의 얼굴이 적어도 하나의 이미지에서 부분적으로 가려진 경우 상이한 가중치 값이 제1 및 제2 시선 벡터에 적용되며;
    시선 벡터, 운전자의 하나 이상의 눈 위치 및 차량의 차량 데이터 파일에 기초하여, 차량 내부의 복수의 관심 영역으로부터 운전자가 응시하는 관심 영역을 결정하는 단계와, 상기 차량 데이터 파일은 차량 내부의 관심 영역 각각의 개별 위치를 지정하고;
    관심 영역이 낮은 수준의 운전자 참여와 관련이 있는지 결정하는 단계와; 그리고
    관심 영역이 낮은 수준의 운전자 참여와 관련이 있다는 결정에 기초하여, 운전자가 관심 영역으로부터 도로로 주의를 기울이도록 유도하는 동작(action)을 선택적으로 수행하는 단계를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 제2 시선 벡터를 결정하는 단계는,
    적어도 하나의 이미지에서 하나 이상의 얼굴 랜드마크를 식별하는 단계;
    하나 이상의 얼굴 랜드마크에 기초하여, 운전자의 안면(facial plane)의 피치 각도, 롤 각도 및 요 각도를 결정하는 단계; 및
    피치 각도, 롤 각도 및 요 각도에 기초하여, 시선 벡터를 결정하는 단계를 포함하고, 그리고
    상기 동작은 (i) 운전자의 주의를 방해하는 관심 영역 상에서 실행되는 동작(operation)을 제한하는 것, 및 (ii) 운전자에게 도로에 주의를 기울이도록 상기시키는 메시지를 출력하는 것 중 적어도 하나를 포함하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 제1 시선 벡터를 결정하는 단계는,
    적어도 하나의 이미지에 기초하여, 운전자의 적어도 하나의 눈동자의 각도를 결정하는 단계; 및
    적어도 하나의 눈동자의 각도에 기초하여, 시선 벡터를 결정하는 단계를 포함하는 컴퓨터 구현 방법.
  4. 삭제
  5. 제1항에 있어서,
    상기 시선 벡터를 결정하는 단계는,
    시선 벡터를 출력하는 적어도 하나 이상의 기계 학습 모델을 적어도 하나의 이미지에 적용하는 단계를 포함하는 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 적어도 하나의 이미지는 카메라 시스템의 둘 이상의 상이한 카메라 각각에 의해 캡처된 적어도 하나의 개별 이미지를 포함하고,
    상기 차량 내 운전자의 하나 이상의 눈 위치를 결정하는 단계는,
    둘 이상의 상이한 카메라 각각에 의해 캡처된 적어도 하나의 개별 이미지에 기초하여, 시차 각도를 결정하는 단계;
    상기 둘 이상의 상이한 카메라 각각의 개별 위치 및 시차 각도에 기초하여, 둘 이상의 상이한 카메라 중 적어도 하나로부터 운전자의 하나 이상의 눈까지의 거리를 결정하는 단계; 및
    상기 거리 및 상기 둘 이상의 상이한 카메라 각각의 개별 위치에 기초하여, 운전자의 하나 이상의 눈 위치를 결정하는 단계를 포함하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 적어도 하나의 이미지는 카메라 시스템의 적외선 카메라를 사용하여 캡처된 이미지를 포함하고,
    상기 차량 내 운전자의 하나 이상의 눈 위치를 결정하는 단계는,
    이미지의 왜곡에 기초하여, 적외선 카메라로부터 운전자의 하나 이상의 눈까지의 거리를 결정하는 단계; 및
    적외선 카메라의 위치 및 상기 거리에 기초하여, 운전자의 하나 이상의 눈 위치를 결정하는 단계를 포함하는 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 차량 내 운전자의 하나 이상의 눈 위치는 카메라 시스템의 하나의 카메라를 중심으로 하는 카메라 기반 좌표계를 사용하여 지정되고,
    상기 복수의 관심 영역 각각의 개별 위치는 차량의 내부에 중심이 있는 차량 기반 좌표계을 사용하여 지정되며 그리고 하나의 카메라의 위치와 상이하고,
    상기 운전자가 응시하는 관심 영역을 결정하는 단계는,
    카메라 기반 좌표계에서 차량 기반 좌표계로 하나 이상의 눈 위치를 변환하는 단계;
    차량 기반 좌표계를 사용하여 지정된 하나 이상의 눈 위치로부터 시선 벡터의 투사가 복수의 관심 영역 중 어느 하나와 교차하는지 결정하는 단계; 및
    시선 벡터가 복수의 관심 영역으로부터 특정 관심 영역과 교차한다는 결정에 응답하여, 특정 관심 영역이 운전자가 응시하는 관심 영역이라고 결정하는 단계를 포함하는 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 차량 데이터 파일은 확장 가능한 마크 업 언어에 따라 구조화된 데이터를 포함하고, 상기 차량 데이터 파일은 복수의 관심 영역으로부터 각각의 관심 영역에 대한 개별 좌표 세트를 포함하고, 각각의 개별 좌표 세트는 차량 내부를 포함하는 구의 중심에 대해 정의되고, 상기 각각의 개별 좌표 세트는 2차원 평면을 정의하는 컴퓨터 구현 방법.
  10. 컴퓨팅 디바이스로서,
    적어도 하나의 프로세서; 및
    적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금 제1항 내지 제3항 및 제5항 내지 제9항 중 어느 하나의 방법을 수행하게 하는 명령들을 포함하는 메모리를 포함하는 컴퓨팅 디바이스.
  11. 제1항 내지 제3항 및 제5항 내지 제9항 중 어느 하나의 방법을 수행하기 위한 수단을 포함하는 컴퓨팅 시스템.
  12. 컴퓨팅 디바이스의 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금 제1항 내지 제3항 및 제5항 내지 제9항 중 어느 하나의 방법을 수행하게 하는 명령들을 포함하는 컴퓨터 판독 가능 저장 매체.
  13. 제10항의 컴퓨팅 디바이스를 포함하는 차량.
KR1020207016245A 2019-06-17 2019-11-12 3차원 시선 벡터를 이용한 차량 탑승자 참여 KR102385874B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962862561P 2019-06-17 2019-06-17
US62/862,561 2019-06-17
PCT/US2019/061025 WO2020256764A1 (en) 2019-06-17 2019-11-12 Vehicle occupant engagement using three-dimensional eye gaze vectors

Publications (2)

Publication Number Publication Date
KR20200145825A KR20200145825A (ko) 2020-12-30
KR102385874B1 true KR102385874B1 (ko) 2022-04-12

Family

ID=69165553

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207016245A KR102385874B1 (ko) 2019-06-17 2019-11-12 3차원 시선 벡터를 이용한 차량 탑승자 참여

Country Status (6)

Country Link
US (2) US11527082B2 (ko)
EP (1) EP3776347A1 (ko)
JP (2) JP7402796B2 (ko)
KR (1) KR102385874B1 (ko)
CN (1) CN112424788A (ko)
WO (1) WO2020256764A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110281950B (zh) * 2019-07-08 2020-09-04 睿镞科技(北京)有限责任公司 基于三维声像传感器的载运工具控制与可视化环境体验
US11574244B2 (en) * 2019-09-12 2023-02-07 International Business Machines Corporation States simulator for reinforcement learning models
CN111176524B (zh) * 2019-12-25 2021-05-28 歌尔股份有限公司 一种多屏显示系统及其鼠标切换控制方法
US11381730B2 (en) * 2020-06-25 2022-07-05 Qualcomm Incorporated Feature-based image autofocus
US11908208B2 (en) * 2020-10-20 2024-02-20 Toyota Motor Engineering & Manufacturing North America, Inc. Interface sharpness distraction mitigation method and system
JP2022094744A (ja) * 2020-12-15 2022-06-27 キヤノン株式会社 被検体動き測定装置、被検体動き測定方法、プログラム、撮像システム
EP4334884A1 (en) * 2021-05-05 2024-03-13 Seeing Machines Limited Systems and methods for detection of mobile device use by a vehicle driver
US11951833B1 (en) * 2021-05-16 2024-04-09 Ambarella International Lp Infotainment system permission control while driving using in-cabin monitoring
US20220392261A1 (en) * 2021-06-04 2022-12-08 Rockwell Collins, Inc. Pilot safety system with context-sensitive scan pattern monitoring and alerting
CN113525402B (zh) * 2021-07-20 2023-06-02 张鹏 高级辅助驾驶及无人驾驶视场智能响应方法及系统
KR102644877B1 (ko) * 2021-08-20 2024-03-08 주식회사 경신 차량 제어 장치 및 방법
KR102597068B1 (ko) * 2021-11-16 2023-10-31 전남대학교 산학협력단 인공 지능을 이용하여 운전자의 주시 상태를 판단하는 차량 장치 및 그 제어 방법
US20230161564A1 (en) * 2021-11-22 2023-05-25 Jpmorgan Chase Bank, N.A. System and method for adding no-code machine learning and artificial intelligence capabilities to intelligence tools
US20240005698A1 (en) * 2022-06-29 2024-01-04 Microsoft Technology Licensing, Llc Accurate head pose and eye gaze signal analysis
US11862016B1 (en) * 2022-07-19 2024-01-02 Jiangsu University Multi-intelligence federal reinforcement learning-based vehicle-road cooperative control system and method at complex intersection
CN115797453B (zh) * 2023-01-17 2023-06-16 西南科技大学 一种红外微弱目标的定位方法、定位装置及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265367A (ja) 2006-03-30 2007-10-11 Fujifilm Corp 視線検出方法および装置ならびにプログラム
US20120147328A1 (en) 2010-12-13 2012-06-14 Microsoft Corporation 3d gaze tracker
US20170120749A1 (en) * 2014-05-01 2017-05-04 Jaguar Land Rover Limited Control Apparatus and Related Method
KR101795264B1 (ko) * 2016-05-31 2017-12-01 현대자동차주식회사 얼굴 랜드마크 검출 장치 및 그 검증 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154559A (en) 1998-10-01 2000-11-28 Mitsubishi Electric Information Technology Center America, Inc. (Ita) System for classifying an individual's gaze direction
US7508979B2 (en) 2003-11-21 2009-03-24 Siemens Corporate Research, Inc. System and method for detecting an occupant and head pose using stereo detectors
JP4725595B2 (ja) * 2008-04-24 2011-07-13 ソニー株式会社 映像処理装置、映像処理方法、プログラム及び記録媒体
WO2011070783A1 (ja) * 2009-12-10 2011-06-16 パナソニック株式会社 情報表示装置及び情報表示方法
US9405982B2 (en) * 2013-01-18 2016-08-02 GM Global Technology Operations LLC Driver gaze detection system
US9625723B2 (en) * 2013-06-25 2017-04-18 Microsoft Technology Licensing, Llc Eye-tracking system using a freeform prism
US20170353714A1 (en) * 2016-06-06 2017-12-07 Navid Poulad Self-calibrating display system
US10049571B2 (en) * 2016-06-29 2018-08-14 Toyota Jidosha Kabushiki Kaisha Situational understanding of unknown roadway conditions that are ahead for a connected vehicle
KR101914362B1 (ko) * 2017-03-02 2019-01-14 경북대학교 산학협력단 차량 내/외부 정보 통합 분석 기반의 위험 상황 경고 시스템 및 그 방법
CN108334810B (zh) * 2017-12-25 2020-12-11 北京七鑫易维信息技术有限公司 视线追踪设备中确定参数的方法和装置
CN109493305A (zh) * 2018-08-28 2019-03-19 初速度(苏州)科技有限公司 一种人眼视线与前景图像叠加的方法及系统
US11301677B2 (en) * 2019-06-14 2022-04-12 Tobil AB Deep learning for three dimensional (3D) gaze prediction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265367A (ja) 2006-03-30 2007-10-11 Fujifilm Corp 視線検出方法および装置ならびにプログラム
US20120147328A1 (en) 2010-12-13 2012-06-14 Microsoft Corporation 3d gaze tracker
US20170120749A1 (en) * 2014-05-01 2017-05-04 Jaguar Land Rover Limited Control Apparatus and Related Method
KR101795264B1 (ko) * 2016-05-31 2017-12-01 현대자동차주식회사 얼굴 랜드마크 검출 장치 및 그 검증 방법

Also Published As

Publication number Publication date
JP2023052530A (ja) 2023-04-11
WO2020256764A1 (en) 2020-12-24
US20210397859A1 (en) 2021-12-23
CN112424788A (zh) 2021-02-26
KR20200145825A (ko) 2020-12-30
JP7402796B2 (ja) 2023-12-21
JP2021531522A (ja) 2021-11-18
US20230088021A1 (en) 2023-03-23
US11847858B2 (en) 2023-12-19
US11527082B2 (en) 2022-12-13
EP3776347A1 (en) 2021-02-17

Similar Documents

Publication Publication Date Title
KR102385874B1 (ko) 3차원 시선 벡터를 이용한 차량 탑승자 참여
US11017250B2 (en) Vehicle manipulation using convolutional image processing
Zhao et al. Driver drowsiness detection using facial dynamic fusion information and a DBN
US10922567B2 (en) Cognitive state based vehicle manipulation using near-infrared image processing
Hoai et al. Max-margin early event detectors
US20180307916A1 (en) System and method for image analysis
US20210339759A1 (en) Cognitive state vehicle navigation based on image processing and modes
WO2019191002A1 (en) Object movement behavior learning
KR20190029083A (ko) 신경망 학습 방법 및 이를 적용한 장치
WO2020190480A1 (en) Classifying an input data set within a data category using multiple data recognition tools
Liu et al. Real time detection of driver fatigue based on CNN‐LSTM
US20210279514A1 (en) Vehicle manipulation with convolutional image processing
Chen et al. Vehicles driving behavior recognition based on transfer learning
JP2022120775A (ja) オンデバイスでの活動認識
Kim et al. Anomaly monitoring framework in lane detection with a generative adversarial network
Mou et al. Isotropic self-supervised learning for driver drowsiness detection with attention-based multimodal fusion
Kır Savaş et al. Behavior-based driver fatigue detection system with deep belief network
CN116348924A (zh) 使用互补分类器检测异常的异常检测器
Andriyanov Application of computer vision systems for monitoring the condition of drivers based on facial image analysis
Fusek et al. Driver state detection from in-car camera images
CN116210051A (zh) 增强的计算设备音频表示
Nissimagoudar et al. Vision-based driver authentication and alertness detection using HOG feature descriptor
US20240193820A1 (en) Visualizing real world sentiments of objects and interactions via augmented reality
US11875608B1 (en) Apparatus and method for generating a vehicle maintenance activity
Subbaiah et al. Driver drowsiness detection system based on infinite feature selection algorithm and support vector machine

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant