KR20210024174A - 머신 인터랙션 - Google Patents

머신 인터랙션 Download PDF

Info

Publication number
KR20210024174A
KR20210024174A KR1020217003598A KR20217003598A KR20210024174A KR 20210024174 A KR20210024174 A KR 20210024174A KR 1020217003598 A KR1020217003598 A KR 1020217003598A KR 20217003598 A KR20217003598 A KR 20217003598A KR 20210024174 A KR20210024174 A KR 20210024174A
Authority
KR
South Korea
Prior art keywords
agent
user
digital content
interaction
implemented
Prior art date
Application number
KR1020217003598A
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 KR20210024174A publication Critical patent/KR20210024174A/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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

컴퓨터와의 인터랙션은 자율적 가상 구현 에이전트를 통해 제공된다. 컴퓨터는 디지털 데이터의 형태로 존재하고 사용자에게 표현가능한 임의의 컨텐츠를 포함하는 디지털 컨텐츠를 출력한다. 디지털 컨텐츠의 서브세트 또는 전부는 사용자와 에이전트 둘 다에게 표현가능한 공유 디지털 컨텐츠로서 구성된다.

Description

머신 인터랙션
[0001] 컴퓨터 과학 기법들은 인간들과 머신(machine)들 간의 인터랙션(interaction)을 가능하게 하기 위해 사용되며, 특히, 그러나 배타적이지 않게, 인간-컴퓨터 인터랙션을 가능하게 하기 위해 구현된 에이전트들이 사용된다.
[0002] HCI(Human-Computer Interaction)는 컴퓨터 그래픽들, 운영 시스템들, 소프트웨어 프로그래밍 및 인지 과학의 기법들을 사용하여 인간들과 컴퓨터들 간의 인터랙션을 개선하는 것과 관련된 컴퓨터 과학 분야이다. 자율적 에이전트(Autonomous Agent)들은 인간 사용자들이 컴퓨터를 동작시키는 것을 보조함으로써 인간-컴퓨터 인터랙션을 개선할 수 있다. 자율적 에이전트들은 환경(가상 또는 실제일 수 있음)에서 유연한 그리고/또는 자율적 액션들이 가능하므로, 자율적 인터페이스 에이전트는 센서들 및 이펙터(effector)들이 컴퓨터 인터페이스의 입력 및 출력 능력들과 인터랙션하는 로봇으로 보여질 수 있다. 자율적 인터페이스 에이전트들은 사용자 명령들 또는 협업을 통해 또는 사용자 명령들 또는 협력없이 사용자와 병렬로 컴퓨터 인터페이스와 인터랙션할 수 있다.
[0003] "Method for managing mixed-initiative human-machine dialogues based on interactive speech"라는 명칭의 EP1444687B1은 음성 인터랙션에 기초하여 혼합 주도형 인간-머신 대화(dialogue)들을 관리하는 방법을 개시한다. "System and method for online user assistance"라는 명칭의 EP2610724A1은 온라인 사용자 어시스턴스(assistance)를 위한 가상 애니메이션 캐릭터의 디스플레이를 개시한다.
[0004] 자율적 인터페이스 에이전트들이, 정보를 지능적으로 프로세싱하고, 인터랙션하고, 더 인간-유사(human-like) 방식으로 그들 자체를 제시하기 위해 인공 지능 기법들을 사용하는 것이 바람직할 수 있다. 인간 사용자들은, 신체 언어 및 음성 톤을 포함하여 인간-유사 통신 방법들을 사용하여 컴퓨터들과 인터랙션하는 것이 더 쉽고, 더 빠르고 그리고/또는 더 매력적이라는 것을 알 수 있다. 둘째, 에이전트 액션들 및 응답들의 현실성을 증가시키는 것은 언캐니 밸리 효과(uncanny valley effect)와 같은 지각된 기술 장벽들을 감소시킬 수 있다.
[0005] 본 발명의 목적은 인간-머신 인터랙션(인간-컴퓨터 인터랙션)을 개선하거나 또는 적어도 공중 또는 산업에, 유용한 선택을 제공하는 것이다.
도 1은 공유 인터랙션 환경 상에서 사용자 에이전트 인터랙션을 도시하고,
도 2는 에이전트 관점에서의 사용자 에이전트 인터랙션을 도시하고,
도 3은 인간-컴퓨터 인터랙션의 개략적 다이어그램을 도시하고,
도 4는 에이전트 뒤의 디지털 컨텐츠와의 사용자 에이전트 인터랙션을 도시하고,
도 5는 인간 컴퓨터 인터랙션에 대한 시스템 다이어그램을 도시하고,
도 6은 인간 컴퓨터 인터랙션에 대한 프로세스 다이어그램을 도시하고,
도 7은 에이전트와 환경 간의 피드백 루프의 흐름 다이어그램을 도시하고,
도 8은 가상 현실 컨텍스트에서의 사용자 인터랙션을 도시하고,
도 9는 가상 현실 컨텍스트에서의 인간 컴퓨터 인터랙션에 대한 시스템 다이어그램을 도시하고,
도 10은 증강 현실 컨텍스트에서의 사용자 인터랙션을 도시하고,
도 11은 모바일 애플리케이션과의 인간 컴퓨터 인터랙션에 대한 시스템 다이어그램을 도시하고,
도 12 내지 도 16은 에이전트를 통한 인간 컴퓨터 인터랙션의 스크린 샷들을 도시하고,
도 17은 에이전트의 컴퓨터 비전(vision) 시스템을 사용한 디지털 컨텐츠와의 인터랙션의 개략적 다이어그램을 도시하고,
도 18은 임베딩(embed)된 액션들 및/또는 에이전트가 지각가능한 로케이터(locator)들과 연관된 디지털 컨텐츠를 도시하고,
도 19는 카메라에 의해 캡처된 사용자의 표현이 최종 사용자 디스플레이 상에 디스플레이되는 방법의 예를 도시하고,
도 20은 턴-테이킹(turn-taking)의 예를 도시하고,
도 21은 돌출 값(salience value)들을 세팅하기 위한 사용자 인터페이스를 도시하고,
도 22는 다수의 시각적 피드들에 대한 주의(attention) 시스템을 도시하고,
도 23은 사용자 에이전트 인터랙션의 예시적 구현의 클래스 다이어그램을 도시한다.
[0006] 컴퓨터와의 인터랙션은 자율적 가상 구현 에이전트(이하 "에이전트")를 통해 제공된다. 컴퓨터는 디지털 데이터의 형태로 존재하고 사용자에게 표현가능한 임의의 컨텐츠를 포함하는 디지털 컨텐츠를 출력한다. 디지털 컨텐츠의 서브세트 또는 전부는 사용자와 에이전트 둘 다에게 표현가능한 공유 디지털 컨텐츠로서 구성된다. 도 1은 공유 디지털 컨텐츠(5)를 지각하는 사용자(3) 및 에이전트(1)를 도시한다. 공유 디지털 컨텐츠(5)는 사용자(3) 및 에이전트(1) 둘 다에 의해 조작 및/또는 지각(이들과 인터랙션)될 수 있다. 공유 환경(6)은 모든 공유 디지털 컨텐츠(5)를 포함하고, 에이전트(1)와 사용자(3) 둘 다에 의해 지각될 수 있다. 에이전트(1)는 그의 에이전트 가상 환경(8) 내에서 공유 디지털 컨텐츠(5)와 "물리적으로" (그의 실시예를 사용하여) 인터랙션할 수 있다.
[0007] 에이전트(1)는 에이전트 가상 환경(8)에 있으며, 그의 에이전트 가상 환경(8)을 지각한다. 공유 디지털 컨텐츠(5)는 에이전트 가상 환경(8)(AVE) 내에서 에이전트(1)에 표현된다. 에이전트 가상 환경(8)의 평면(14)은 컴퓨터 스크린(최종 사용자 디스플레이 디바이스(10)) 상의 영역과 맵핑한다. 에이전트 가상 환경(8)은 에이전트(1)가 인터랙션할 수 있는 AVE 오브젝트들(11)을 선택적으로 포함할 수 있다. 공유 디지털 컨텐츠(5)와 달리, 사용자(3)는 AVE 오브젝트들과 직접적으로 인터랙션할 수 없지만, AVE 오브젝트들은 11RER에 의해 도시된 바와 같이, 사용자(3)에게 디스플레이된 요약 뷰(condensed view)에서 에이전트(1)의 환경의 일부로서 사용자(3)에게 표현된다. 에이전트(1)는 그의 에이전트 가상 환경(8)에서 이동할 수 있고, 에이전트 가상 환경(8)의 물리적 법칙들의 컨텍스트 내에서 디지털 오브젝트들 및 AVE 오브젝트들과 인터랙션할 수 있다. 예컨대, 에이전트(1)는 공유 디지털 컨텐츠(5)를 아래로 당겨 AVE 오브젝트(11)(가상 스툴)로 걸어 가서 앉을 수 있다. 에이전트(1)는 또한, 마치 에이전트(1)가 스크린 "내부"에 있고 실세계를 바라보고 있는 것처럼, 공유 디지털 컨텐츠(5)와 동시에 그리고/또는 이와 중첩된, 사용자(3)(3VER) 및 실세계 환경(7)의 표현을 볼 수 있다.
[0008] 사용자(3)는 실세계 환경(7)에서의 인간 사용자(3)이고, 컴퓨터로부터 최종 사용자 디스플레이 디바이스(10)(스크린과 같은 실세계 디스플레이) 상에 표현되는 것을 보고, 제어(이와 인터랙션)한다. 최종 사용자 디스플레이 디바이스(10)는, (예컨대, 브라우저를 통한 웹 페이지로부터의) 공유 디지털 컨텐츠(5RER)의 실세계 환경 표현(RER), 및 에이전트(1)의 환경(AVE)의 요약 뷰, 중첩 뷰 및/또는 블렌딩 뷰를 디스플레이한다.
· 에이전트(1)의 실세계 환경 표현(1RER)
· AVE 오브젝트(11)의 실세계 환경 표현(11RER)
[0009] 사용자(3)가 사용자 인터페이스를 통해 공유 디지털 컨텐츠(5)에 대한 변경을 수행할 때, 그 변경은 에이전트(1)의 에이전트 가상 환경(8)에서 공유 디지털 컨텐츠(5)의 표현들에 반영된다. 마찬가지로, 에이전트(1)가 에이전트 가상 환경(8)에서 오브젝트들(공유 디지털 컨텐츠(5)의 컴포넌트들/아이템들)에 대한 변경을 수행할 때, 그 변경은 사용자(3)의 스크린(10) 상의 공유 디지털 컨텐츠(5)의 표현에 미러링(mirror)된다.
[0010] 최종 사용자 디스플레이 디바이스 상에서 상이한 방식들로 에이전트 및 에이전트의 환경을 시각화하는 것이 가능하다. 예컨대, 에이전트의 가상 공간을 회전시킴으로써, 2D 평면이 에이전트 관점에서 보여질 수 있다. 도 2는 에이전트(1) 관점에서의 사용자-에이전트 인터랙션을 도시한다. 에이전트(1)는 3차원 에이전트 가상 환경(8) 내에서 시뮬레이션된다. 공유 디지털 컨텐츠(5)는 사용자 관점에서 상대적으로 에이전트(1) 앞에 있는 에이전트 가상 환경(8) 내에 위치된다. 에이전트(1)는 (예컨대, 카메라 피드를 통해) 사용자 3VER의 가상 환경 표현을 지각하며, 이는 선택적으로 또한, 평면으로서 또는 그렇지 않으면 에이전트 가상 환경(8)에서 시뮬레이션될 수 있거나 또는 공유 디지털 컨텐츠(5) 평면과 중첩/블렌딩될 수 있다. 따라서, 에이전트(1)는 사용자에 대한 디지털 컨텐츠의 상대적 로케이션을 지각할 수 있고, 사용자가 공유 디지털 컨텐츠(5)를 바라보고 있는지를 확인할 수 있다. 에이전트(1)가 공유 디지털 컨텐츠(5)에 터치하기 위해 그의 손을 뻗는 것이 보여진다.
[0011] 평면(14)은 에이전트 가상 환경(8)의 어디에든 로케이팅될 수 있다. 도 4는 사용자(3)를 향하는 에이전트(1), 및 에이전트(1) 뒤에 공유 디지털 컨텐츠(5)(오브젝트들)를 포함하는 평면(14)을 도시한다. 에이전트(1)의 표현은 공유 디지털 컨텐츠(5RER)의 실세계 환경 표현(RER) 앞에 보여질 수 있다. 사용자(3)는, 마치 에이전트(1)가 스크린 앞에 있는 것처럼 공유 디지털 컨텐츠(5)와 인터랙션하는 에이전트(1)의 표현을 본다.
[0012] 도 3은, 에이전트(1)가 사용자(3)와 디지털 컨텐츠(4) 간의 인터랙션을 가능하게 하는 인간-컴퓨터 인터랙션의 개략적 다이어그램을 도시한다. 사용자(3)는, 임의의 적합한 인간 입력 디바이스들/1차 입력 디바이스들 및/또는 인터페이스 디바이스들을 통해 컴퓨터(2)에 입력을 제공하고, 디스플레이 또는 스피커들과 같은 임의의 적합한 인간 출력 디바이스들로부터 컴퓨터(2)로부터 출력을 수신함으로써, 컴퓨터(2)로부터의 디지털 컨텐츠(4)와 직접적으로 인터랙션할 수 있다. 유사하게, 에이전트(1)는 컴퓨터(2)에 입력을 제공할 수 있고, 컴퓨터(2)로부터 출력을 수신할 수 있다.
[0013] 에이전트에게 그의 시뮬레이션 환경 외부의 오브젝트들의 지각(perception)을 제공하는 것은, 그것이 에이전트에게 컴퓨터 및 실세계 엘리먼트들의 현재 상태의 실시간 표현들을 제공하므로 에이전트에게 "증강 현실"을 제공하는 것, 및 통합된 그의 세계 뷰에서, 실세계 엘리먼트들, 컴퓨터로부터의 디지털 컨텐츠 아이템들의 표현들을 블렌딩하는 것과 유사하다. 가상 세계가 실세계 오브젝트들로 향상됨에 따라, 이것은 증강된 가상으로서 더 정확하게 정의되어, 인간 비전과는 대조적으로 자율적 에이전트 비전을 증강할 수 있다.
디지털 & 실세계 입력과의 에이전트 자율적 인터랙션
[0014] 에이전트는 인지된, 위치된, 구현된, 대화식 및 동적 양상들을 포함할 수 있다. 에이전트가 구현되며, 이는 에이전트가 관절연결(articulate)될 수 있는 가상 신체를 갖는 것을 의미한다. 에이전트의 신체는 스크린 또는 다른 디스플레이 상에서 그래픽으로 표현된다. 에이전트는 커플링된 컴퓨테이셔널(computational) 및 그래픽 엘리먼트들을 갖는 복수의 모듈들을 포함하는 신경거동 모델(neurobehavioral model)(생물학적으로 모델링된 "뇌" 또는 신경 시스템)을 사용하여 시뮬레이션될 수 있다. 각각의 모듈은, 생물학적 프로세스를 표현하며, 생물학적 프로세스와 관련되고 생물학적 프로세스를 시뮬레이션하는 컴퓨테이셔널 엘리먼트 및 생물학적 프로세스를 시각화하는 그래픽 엘리먼트를 포함한다. 따라서, 에이전트는 외부적 제어가 요구되지 않으므로 "자체-애니메이션(self-animated)"되고, 호흡, 깜박임, 둘러보기, 하품, 그의 입술들의 움직임과 같은 자연적으로 발생하는 자동 거동을 나타낸다. 생물학적 기반 자율적 애니메이션은 감각 및 모토(motor) 시스템들, 반사, 지각, 감정 및 조절 시스템들, 주의, 학습 및 기억, 보상들, 의사 결정 및 목표들을 포함하는(그러나 이에 제한되지 않음) 신경 시스템의 다수의 양상들을 모델링함으로써 달성될 수 있다. 에이전트의 얼굴은 에이전트의 뇌 및 신체 둘 다를 미러링하여, 정신적 상태(그의 눈 방향을 통한 그러한 그의 정신적 주의) 및 생리학적 상태(이를테면, 눈꺼풀들의 포지션 및 피부색을 통한 피로)를 나타낸다. 가상 오브젝트 또는 디지털 엔티티를 애니메이션화하기 위해 신경거동 모델의 사용은: 본 발명의 양수인에게 또한 양도되고 본원에 인용에 의해 포함되는 Sagar, M., Seymour, M., & Henderson, A. (2016). Creating connection with autonomous facial animation. Communications of the ACM, 59(12), 82-91 및 WO2015016723A1에서 추가로 개시된다. WO2015016723A1에서 설명된 바와 같은 시간-스텝핑 메커니즘(time-stepping mechanism)은 에이전트의 내부적 프로세스들을 동기화시키거나 또는 조정할 수 있다.
[0015] 에이전트의 양상들은 동적일 수 있으며, 이는 에이전트의 향후 거동이 그의 현재 내부적 상태에 의존한다는 것을 의미한다. 에이전트의 신경 시스템, 신체 및 그의 환경/환경들은 동적 시스템들과 커플링된다. 복잡한 거동은 외부적 입력을 이용하여 또는 외부적 입력없이 생성될 수 있다. 복잡한 거동은 에이전트의 외부적 환경의 임의의 내부적 표현에 의존하지 않고 생성될 수 있다. 에이전트의 주변들의 엘리먼트들(이를테면, 사용자 또는 컨텐츠 아이템들로부터의 시각적 자극)은 거동 생성으로 이어지는 인과적 네트워크의 일부를 형성할 수 있다. 에이전트 거동 및 그에 따른 애니메이션은 아래에서 위로 나타날 수 있다. 에이전트의 역학(dynamics)이 혼돈될 수 있어, 주어진 상황에서 에이전트의 거동을 예측하는 것이 어려울 수 있다. 에이전트의 액션들은 도 7에 도시된 바와 같이, 실세계 환경(7) 및 에이전트 가상 환경(8) 둘 다로부터의 지속적 피드백 루프에 의존한다. 따라서, 에이전트(1)는, 그것이 실세계 환경(7)으로부터 입력(1102)을 수신하므로, 이를테면, 마이크로폰을 통해 사용자 및 사용자의 환경(실세계 환경(7))으로부터 이를테면 오디오 입력을 수신하고, 카메라를 통해 사용자로부터 시각적 입력을 수신하므로, 환경들 둘 다에 위치된다. 에이전트(1) 시뮬레이션에 대한 실세계 입력(1102)은 에이전트(1)의 거동에 영향을 미치며, 이는 에이전트(1) 애니메이션 출력(1106)에서 보여지는 에이전트(1)의 거동을 초래한다. 예컨대, 에이전트(1)는, 자연적으로 에이전트(1)의 미소를 트리거할 수 있는 신경거동 모델 내에서 도파민과 같은 가상 신경전달물질(neurotransmitter)들을 사용자가 방출하는 것을 인식하므로, 간접적 메커니즘을 통해 인간 사용자를 볼 때 미소를 지을 수 있다. 이 출력(1106)은 예컨대, 에이전트(1) 시뮬레이션을 위해 다시 입력되는, 사용자의 응답 또는 감정을 실세계 환경(7)에서 유도함으로써, 실세계 환경(7)에 차례로 영향을 미칠 수 있다. 에이전트(1)의 에이전트 가상 환경(8)은 또한 에이전트(1)에 대한 입력(1102)이다. 예컨대, 에이전트 가상 환경 내의 공유 디지털 컨텐츠 아이템들은 스트림으로서 실시간으로 에이전트(1)에 의해 지각될 수 있고, 에이전트(1)의 거동에 영향을 미치며, 이는 특정 에이전트(1) 애니메이션 출력(1106)을 또한 초래한다. 이 출력(1106)은 에이전트 가상 환경(8)에 영향을 미칠 수 있다. 예컨대, 에이전트(1)는 에이전트 가상 환경(8) 내에서 가상 오브젝트의 포지션을 변경할 수 있다. 새로운 오브젝트 포지션은 이제, 지속적 피드백 루프를 구동하는 에이전트(1) 시뮬레이션에 대한 입력(1102)이다.
[0016] 에이전트는 인간 형태, 가상의 인간 형태, 의인화 캐릭터, 로봇, 동물과 같은 임의의 적합한 형태로 임의의 적합한 방식으로 시뮬레이션 및/또는 표현될 수 있다. 사용자들은 에이전트가 취하는 형태를 선택하거나 또는 변경할 수 있거나, 또는 에이전트는 사용자 또는 실제 또는 가상 환경에 따라 그것의 형태를 변경할 수 있다.
좌표 로케이션들로의 이동
[0017] 에이전트 가상 환경(8)에 에이전트를 위치시키는 것은, 자연적으로 보이는 "온-더-플라이(on-the-fly)" 애니메이션을 가능하게 하고, 에이전트들이 에이전트(1)의 환경에 존재하는 것처럼 에이전트들이 주변 디지털 컨텐츠 아이템들(공유 디지털 컨텐츠(5))과 자유롭게 인터랙션할 수 있게 한다. 이것은, 불리하게 예측불가능한 또는 동적 컨텐츠와의 인터랙션들에 사용하기 어려운 사전 생성된 또는 사전 기록된 애니메이션 스니펫(animation snippet)들과는 별개이다. 사전 기록된 애니메이션들의 제한들의 예는 포지션 (X, Y)에서 특정 컨텐츠 아이템에 도달하기 위해, 시뮬레이션된 팔을 사용하는 것이다. 애니메이션은 컨텐츠 아이템이 포지셔닝된 위치를 정확하게 고려하여 기능적으로 제한될 것이고; 컨텐츠 아이템이 이동하거나 또는 사이즈를 변경하는 경우, 그에 따라 애니메이션은 변경될 수 없을 것이다.
[0018] 에이전트는 "온-더-플라이" 애니메이션 알고리즘을 사용하여 애니메이션될 수 있다. 구현된 에이전트에서, 최종 목표 로케이션(디지털 오브젝트 좌표들)에 도달하는 이펙터(예컨대, 손)는 최종 이펙터가 목표 상태에 도달하게 하는 조인트 자유도들의 벡터를 컴퓨팅함으로써 달성된다. 역 운동학과 같은 컴퓨테이셔널 기법들이 에이전트(1)를 애니메이션하는 데 사용될 수 있다. 역 운동학은 Jacobian 또는 CCD(Cyclic Coordinate Descent)와 같은 알려진 기법들을 사용하여 근사화될 수 있다. 뉴럴 네트워크는 2차원 또는 3차원 좌표 공간(즉, 학습 손-눈 좌표(learn hand-eye coordination))에서 오브젝트에 도달하거나 또는 오브젝트를 가리키는 것을 표현하기 위해 신체 포지션들을 맵핑하도록 훈련될 수 있다. 일 예에서, 이동-성공 예측기(movement-success predictor)는 딥 CNN(convolutional neural network)을 사용하여 주어진 모션이 지정된 좌표들에 성공적으로 도달할 가능성을 결정하고, CNN을 사용하는 지속적 서보잉(servoing) 메커니즘을 사용하여 에이전트의 모터 커맨드들을 지속적으로 업데이트한다.
가상 환경
[0019] 에이전트는 에이전트 가상 환경에 위치되고, 에이전트 가상 환경에서 오브젝트들 및 에이전트에 대한 오브젝트들의 상대적 로케이션들을 지각할 수 있다. 본원에서 설명된 대부분의 실시예들에서, 에이전트는 3차원 에이전트 가상 환경에 로케이팅된다. 일 실시예에서, 에이전트 가상 환경은 2D 픽셀 어레이에 의해 표현되는 2D 가상 공간이다. 2D 에이전트는 2D 가상 공간 내에 앉을 수 있고, 그 2D 공간에서 공유 디지털 컨텐츠와 인터랙션할 수 있으며, 이는 수평(좌측 또는 우측)으로 그리고/또는 수직(위 또는 아래)으로 에이전트로부터 변위될 수 있다.
[0020] 도 1에서, 에이전트(1)는 공유 환경을 반영하는 평면(14)(스크린) 뒤의 3D 공간에 로케이팅된다. 에이전트(1)는 에이전트 가상 환경(8)(이는 직사각형 프리즘)의 외부 경계/면에 있는 평면(14) 상에서 공유 디지털 컨텐츠를 본다. 도 2는 에이전트(1)가 에이전트(1)의 바로 앞에 있는 컨텐츠 아이템을 터치하는 것을 도시한다. 도 4는 에이전트(1)가 스크린 상의 공유 환경 디지털 컨텐츠 아이템들이 포지셔닝되는 평면(14) 앞에 로케이팅된 것을 도시한다. 공유 디지털 컨텐츠인 컨텐츠 아이템들/오브젝트들은 에이전트(1)에 대해 수직(위 또는 아래)으로, 수평(좌, 우, 앞 또는 뒤)으로 그리고/또는 3차원으로 에이전트(1)로부터 변위될 수 있다.
[0021] 가상 3D 공간의 평면(14)의 좌표들은 브라우저(또는 다른 디스플레이) 좌표들에 맵핑될 수 있다. 따라서, 공유 디지털 컨텐츠와 관련된 에이전트(1)의 이동들이 스크린 상에 중첩될 때, 이동들은 디지털 컨텐츠 아이템 포지션들과 정렬된다.
[0022] 에이전트가 디스플레이되는 디스플레이의 실세계 좌표들은 변경될 수 있다. 예컨대, 브라우저 상에 디스플레이되는 에이전트는 예컨대, 사용자가 브라우저를 드래그/사이즈 재조정(resize)함으로써 이동되거나 또는 사이즈 재조정될 수 있다. 디스플레이의 실세계 물리적 디멘션(dimension)들은 동적으로 변경가능하고, 실세계 환경에서의 디스플레이의 물리적 디멘션들을 변경하는 것은 에이전트 가상 환경의 표현을 비례적으로 업데이트한다.
[0023] 에이전트 가상 환경은 임의의 적합한 메커니즘에 의해 시뮬레이션될 수 있고, 특정 자연 법칙들을 따를 수 있다. 에이전트 가상 환경의 물리적 속성들은 다음과 같이 정의될 수 있다: 오브젝트들 및/또는 에이전트 사이의 충돌 검출, 물리적 제약들(예컨대, 오브젝트들의 조인트들 사이에 허용되는 움직임들), 대기 드래그(atmospheric drag)의 시뮬레이션, 모멘텀(Momentum), 중력, 재료 속성들(예컨대, 탄성 아이템들이 에이전트들에 의해 늘어난 이후에 고유 형상(natural shape)으로 리턴할 수 있음).
에이전트가 수신한 입력
[0024] 에이전트는 실세계로부터의 임의의 적합한 시각적 입력(이를테면, 카메라로부터의 비디오 스트림), Microsoft Kinect 카메라와 같은 레인지-이미징(range-imaging) 능력들을 갖는 카메라들로부터의 깊이 감지 정보, 이를테면, 마이크로폰으로부터의 청각적 입력, 바이오 센서, 열 센서 또는 임의의 다른 적합한 입력 디바이스로부터의 입력, 터치-스크린 입력(사용자가 스크린을 누르는 경우)을 수신한다. 단일 입력은 에이전트에 제공될 수 있거나 또는 입력들의 조합이 제공될 수 있다. 에이전트는 자신과 관련된 실세계의 양상들을 공간적으로 배치할 수 있고, 사용자는 사용자의 실세계 공간에 있는 사물 또는 사람과 같은 오브젝트에 에이전트의 주의를 끌 수 있다.
[0025] 에이전트는 컴퓨팅 디바이스를 통해 사용자로부터 입력/통신을 수신할 수 있다. 에이전트는 컨텐츠 아이템들, 이를테면, 사용자의 커서/마우스 또는 터치 스크린 입력(이는 또한 어떤 면에서는 실세계로부터 입력됨)을 지각할 수 있다. 에이전트는 그들의 눈들 및/또는 손들로 사용자의 마우스 움직임을 따를 수 있다. 일부 실시예들에서, 에이전트는 키보드 입력을 지각할 수 있다. 예컨대, 사용자는 구두로(verbally)가 아닌 키보드를 통해 에이전트와 통신할 수 있다.
[0026] 시각적(예컨대, 비디오 스트림) 입력이 에이전트의 시각적 시스템에 제공된다. 적합한 인터페이스들의 루틴들이 하드웨어 인터페이싱에 사용될 수 있다. 이것은 에이전트의 프로그래밍방식(programmatic) 정의와 카메라 및/또는 픽셀 스트리머 간의 인터페이스를 통해 제공될 수 있다. 이 인터페이스는 에이전트의 모든 각각의 시간-단계에서 카메라로부터 이미지 데이터를 캡처하기 위한 모듈 래퍼를 제공하는 비전 모듈에 의해 제공된다. 비전 모듈은 이미지 데이터의 임의의 지각적 프로세싱(인간의 "망막"과 유사함)을 수행하지 않을 수 있다.
[0027] 에이전트는 디스플레이 상의 시각적 출력, 스피커들을 통한 청각적 출력 또는 임의의 다른 적합한 수단과 같은 컴퓨팅 시스템의 출력 디바이스들을 통해 실세계에 출력을 제공할 수 있다. 에이전트는 또한 마우스 움직임들, 키보드 스트로크들 또는 다른 인터페이스 인터랙션들, 이를테면, 클릭들 또는 누르기들을 출력할 수 있다.
[0028] 에이전트는 2개 이상의 시각적 시스템들을 가질 수 있으며, 에이전트가 상이한 시각적 소스들을 서로 오버레이할 필요없이 상이한 소스들로부터 시각적 입력을 동시에 수신할 수 있게 한다. 예컨대, 에이전트는 카메라 입력용 및 사용자 인터페이스 입력용 하나씩 2개의 비전 모듈들을 가질 수 있고, 이 둘 다를 동시에 볼 수 있다. 상이한 돌출 맵(salience map)들이 각각의 입력 소스에 적용될 수 있다. 예컨대, 얼굴들을 우선순위화하는 돌출 맵들은 카메라 입력과 같은 실세계 입력을 수신하도록 구성된 시각적 시스템 상에서 동작할 수 있는 반면, 텍스트의 인식 및/또는 UI 엘리먼트들의 인식을 우선순위화하는 돌출 맵들은 UI 입력을 수신하도록 구성된 시각적 시스템에 적용될 수 있다.
디지털 컨텐츠
[0029] 웹 사이트와 관련된 공유 디지털 컨텐츠는 웹 형태들, 버튼들, 텍스트, 텍스트 상자들, 텍스트 필드들, 비디오 엘리먼트들 또는 이미지들을 포함할 수 있다. 증강 현실, 가상 현실, 홀로그램들과 같은 혼합 현실 애플리케이션들에서, 디지털 컨텐츠 아이템은 3D 오브젝트를 지칭할 수 있다. 애플리케이션(이를테면, VR/모바일/컴퓨터 애플리케이션)에서, 디지털 컨텐츠 아이템은 오브젝트-지향 언어에 의해 정의된 오브젝트일 수 있다.
[0030] 디지털 컨텐츠는 동적일 수 있고(예컨대, 디지털 컨텐츠의 아이템들이 스크린에서 이동할 수 있음), 에이전트는 그러한 동적 컨텐츠 아이템들의 이동을 따르거나 또는 안내할 수 있다. 디지털 컨텐츠 아이템들은 정적 또는 인터랙티브 방식(interactive)일 수 있다. 정적 컨텐츠 아이템들은 텍스트 또는 이미지들일 수 있다. 예컨대, 사용자의 학업 튜터링(academic tutoring)에 참여한 에이전트는, 사용자에게 디스플레이되는 특정 단어를 가리키고, 사용자가 단어의 의미를 이해하는지를 사용자에게 질문함으로써 텍스트로 인터랙션할 수 있다. 인터랙티브 방식의 디지털 컨텐츠 아이템들은 일부 방식으로 사용자 및/또는 에이전트의 액션들에 응답할 수 있다. 예컨대, 버튼은 클릭될 때 다른 컨텐츠를 제시하는 디지털 컨텐츠 아이템이다. 디지털 컨텐츠 아이템들은 2차원 또는 3차원으로 표현될 수 있다. 예컨대, 도 15는, 3D로 모델링되고, 에이전트 가상 환경 내에 위치된 자동차 오브젝트를 도시한다.
[0031] 에이전트가 컨텐츠 아이템들과 함께 가상 공간에서 구현되기 때문에, 에이전트는, 제스처들을 사용하거나, 아이템들을 바라보거나, 아이템들에 접근하거나, 아이템들을 조작 또는 처리하거나 또는 아이템들과 연관된 방법들을 인보크(invoke)하여, 유연하고 스케일링가능한 방식에서 몇몇 상이한 방식들로 공유 디지털 컨텐츠와 인터랙션할 수 있다. 에이전트는:
· 그것의 신체를 아이템을 향해 기울이고 그리고/또는 그것의 머리를 아이템을 향해 기울일 수 있다.
· 그것의 눈들로 아이템을 바라볼 수 있다.
· 아이템을 향해 가리키거나, 아이템의 일반적 방향으로 그것의 머리를 흔들거나, 또는 아이템의 방향으로 손을 흔듦으로써 아이템을 향해 제스처를 취할 수 있다.
· 아이템을 향해 걷거나, 아이템에 근접한 로케이션으로 텔레포팅(teleport)하거나 또는 플로팅(float)함으로써 아이템에 접근할 수 있다.
공유 디지털 컨텐츠와의 에이전트 인터랙션을 가능하게 하는 것
[0032] 구현된 에이전트들은 이들이 인터랙션하는 디지털 컨텐츠와 독립적으로 프로그래밍방식으로 정의된다: 디지털 컨텐츠와 구현된 에이전트들 둘 다를 제어하는 중앙 제어기가 존재하지 않는다. 이것은 구현된 에이전트들이 별개의 제3 자 제공자들에 의해 저술(author)된 디지털 컨텐츠와 유연하게 사용될 수 있게 한다. 에이전트들이 새로운 디지털 컨텐츠를 지각하고 이와 본질적으로 인터랙션하는 것을 가능하게 할 수 있는 2개의 메커니즘들은, 컴퓨터 비전 및 인터랙션 모듈(지원 인터페이스)을 포함한다.
컴퓨터 비전
[0033] 일 실시예에서, 에이전트는 디스플레이를 표현하는 소스로부터 사용자에게 시각적 데이터의 형태로 입력을 수신한다. 예컨대, 에이전트는 시각적(가상) 이미지 및/또는 오브젝트 인식을 통해 스크린 또는 3D 가상 공간의 픽셀들을 본다. 에이전트에는 이를테면, 표준 컴퓨터 비전/이미지 프로세싱/이미지 인식/머신 학습 기법들에 의해 시각적 오브젝트 인식 기능이 장착될 수 있어, 이미지 또는 비디오 또는 오브젝트들에서의 오브젝트들/주체들, 이미지 또는 비디오의 주체들의 윤곽들/색상들을 식별하고, 그에 따라 그것과 인터랙션할 수 있다. 에이전트에는 텍스트를 인식하기 위한 광학 문자 인식 기능 및 텍스트를 이해하기 위한 자연어 프로세싱 기능이 장착될 수 있다. 다시 말해서, 디지털 컨텐츠는, 그것이 인간 사용자들에게 표현되는 것과 동일한 방식으로 에이전트에 시각적으로 표현된다(픽셀들의 시각적 디스플레이). 에이전트 시스템은 내장된 이미지 인식 및/또는 학습을 포함할 수 있거나 또는 그것은 이미지 인식을 위해 제3 자 서비스를 사용할 수 있다.
디지털 컨텐츠 입력
[0034] 공유 환경의 시각적 표현은 스크린 공유 소프트웨어가 원격 로케이션에 스크린의 시각적 표현을 전송하는 방법과 유사한 방식으로 에이전트에 전송될 수 있다. 인터페이스는 임의의 주어진 시간에 컴퓨팅 디바이스에 의해 출력되는 것을 설명하는 정보의 패킷들을 컴퓨팅 디바이스로부터 에이전트에 전송하도록 구성될 수 있다. 데이터는 이미지 파일들(예컨대, JPEG들 및 GIF들)로서 도착할 수 있거나, 또는 데이터는 특정 X 및 Y 좌표(및 혼합 현실의 경우 Z)에 할당된 개별 픽셀들로서 도착할 수 있다. 대역폭의 양을 최소화하기 위해, 인터페이스는 변경된 스크린의 섹션들에 대한 정보 업데이트들만을 전송하고 그리고/또는 전송된 데이터를 압축하도록 구성될 수 있다.
[0035] 도 17은 에이전트의 컴퓨터 비전 시스템을 사용하여 디지털 컨텐츠와의 인터랙션의 개략적 다이어그램을 도시한다. 참조된 모듈들은 반드시 모듈식 코드 컴포넌트들은 아니지만, 고도로 상호 연결된 신경거동 모델에 의해 구동된 모듈들의 기능적 네트워크들일 수 있다. 2901에서, 최종 사용자 컴퓨팅 디바이스 사용자 인터페이스(이를테면, 브라우저)는 디스플레이에 업데이트를 렌더링한다(예컨대, 웹페이지 리드로잉(webpage redraw)). 공유 메모리 버퍼(2930)를 통해, 에이전트(1) 제어기(2951)는 입력(2902)으로서 디스플레이로부터의 픽셀들을 에이전트의 망막(2903)에 제공한다. 이것은 에이전트의 프로그래밍방식 정의와 픽셀 스트리머 간의 인터페이스이다. 그런 다음, 픽셀들은 시각적 검사 모듈(2904)이 이미지 프로세싱을 수행하는 인지 모듈(2952)에 제공될 수 있다. 포커싱(focus)/프로세싱되는 픽셀 스트림의 부분들은 에이전트가 주의를 기울이는 것을 결정하는 주의 모듈(2905)에 의해 안내될 수 있다. 픽셀 데이터의 프로세싱으로부터 발생하는 정보는 반응 및/또는 의사 결정 모듈(2907)로 전달될 수 있다. 이것은 에이전트의 거동을 유도한다. 예컨대, 이미지의 일부를 버튼으로 인식한 이후에, 반응 및/또는 의사 결정 모듈(2907)은 에이전트로 하여금 버튼(2910)에 손을 뻗어 터치하게 할 수 있다. 에이전트가 취하는 액션 또는 거동은, 팔 제어(2910)를 포함하여, 신체의 다양한 부분들의 제어를 위한 서브-컴포넌트들을 가질 수 있는 시뮬레이션된 생리학 모듈(2908)로 전달된다. 2911에서, 에이전트 제어기(2951)는 에이전트와 디지털 컨텐츠 간의 인터랙션을 사용자(3) 인터페이스 인터랙션들에 맵핑하도록 동작할 수 있다. 가상 환경에서, AVE의 에이전트에 의한 "물리적" 액션들은 사용자(3) 인터페이스 상의 액션들로서 번역(translate)될 수 있다. 예컨대, 에이전트의 신체 좌표들이 지각된 공유 환경 평면과 교차할 때, 평면의 교차 좌표들은 사용자 인터페이스 상의 대응하는 픽셀 로케이션에서 마우스 클릭 또는 터치패드 터치 이벤트로 번역될 수 있다. 그런 다음, 이벤트 액션/백채널(2932)은 인간 입력 디바이스 이벤트(예컨대, 브라우저 상의 대응하는 픽셀 로케이션에서 마우스 클릭)로서 컴퓨팅 시스템에 전송된다. 일 구현에서, CEF(Chromium Embedded Framework) 개방형 브라우저 구현은 에이전트가 웹 디지털 컨텐츠와 인터랙션하는 것을 가능하게 하도록 구성된다. 오프스크린 렌더링은, 브라우저 윈도우의 컨텐츠가, 다른 곳에 렌더링될 수 있는 비트맵으로 출력될 수 있게 한다.
(트리거링) 이벤트들에 대응하는 구현된 인터랙션들
[0036] 디지털 컨텐츠 아이템을 터치하는 것은 디지털 컨텐츠 아이템과의 인터랙션을 초래할 수 있는 한 타입의 구현된 인터랙션이지만, 본 발명은 이러한 점에 제한되지 않는다. 다른 실시예들에서, 디지털 컨텐츠 아이템을 지향하는 에이전트의 특정 제스처들은 그 아이템에 대한 이벤트를 트리거할 수 있다. 예컨대, 에이전트가 아이템을 바라보고 깜박이는 것은 그 아이템에 대한 이벤트를 트리거할 수 있다. 또 다른 예는 디지털 컨텐츠 아이템, 예컨대, 버튼에서 제스처를 취하는 것이다.
브라우저 또는 컴퓨팅 시스템의 직접적 제어
[0037] 일 실시예에서, 에이전트는, 마치 입력 디바이스들이 에이전트들의 이펙터들인 것처럼, 마우스, 터치패드 또는 다른 기본 입력 디바이스에 대해 직접적 제어를 갖는다. 다시 말해서, 에이전트는 자신의 신체/근육 움직임들을 제어하는 것과 동일한 방식으로 입력 디바이스들을 제어할 수 있다. 컴퓨팅 디바이스에서, 에이전트에 의한 컴퓨팅 디바이스의 직접적 제어는 예컨대, 그래픽 터미널 에뮬레이터(graphical terminal emulator)를 통해 사람의 데스크탑 컴퓨터 상에서 원격 액세스 및 원격 협력을 가능하게 하는 기술과 같은 임의의 적합한 기술에 의해 가능해질 수 있다.
돌출 맵들
[0038] 주의 모듈(2905)은 에이전트의 주의를 안내하기 위한 "돌출" 맵들을 포함할 수 있다. 돌출 맵은 중요도 측면에서의 에이전트에 대한 스크린의 표현이다. 돌출 맵들은 에이전트의 주의 및 포커스가 어디에 있는지를 정의할 수 있다. 차별적으로 돌출된 것(salient)으로 취급될 수 있거나 또는 포함하지 않을 수 있는 피처(feature)들의 예들은:
· 사용자들: 에이전트는 얼굴들을 검출하기 위해 얼굴 검출 모듈을 포함할 수 있다. 얼굴 검출은 에이전트의 감정 영향들 및 사용자 인터랙션 루프와 관련될 수 있다. 얼굴 검출 모듈은 얼굴 추적 및 해결 라이브러리들을 사용하여 에이전트의 시각적 입력 스트림에서 얼굴들을 찾는다. 얼굴의 존재는 매우 돌출된 시각적 피처로서 에이전트에 의해 해석될 수 있다. 임의의 검출된 얼굴들로부터 해결된 얼굴 표정들은 표정 인식 네트워크에 공급될 수 있다.
· 움직임 - 비전 모듈이 비디오 입력의 임의의 지각적 프로세싱을 시도하지 않으므로, 모션 검출 모듈이 제공될 수 있음 모션 검출 모듈은 간단한 모션을 추론하기 위해 시간적으로 인접한 비디오 프레임들을 비교하는, 에이전트의 시각적 지각 시스템의 컴포넌트일 수 있다. 결과적 "모션 맵"은 시각적 돌출의 구동 엘리먼트로서 사용될 수 있다.
· 특정 오브젝트들 또는 이미지들의 인식
· 텍스트의 인식; 특정 키워드들 또는 텍스트 패턴들에 기인한 돌출
· 색상
· 휘도
· 에지들
[0039] 돌출 맵들은 사용자 정의될 수 있다. 일 실시예에서, 사용자는, 사용자가 에이전트가 돌출된 것으로 취급하기(포커싱하기)를 희망하는 것이 어떤 피처들인지를 에이전트에 인터랙티브 방식으로 통신할 수 있다. 다수의 돌출 맵들이 사용되는 경우, 각각의 돌출 맵은 각각의 액티브한(active) 돌출 맵의 가중된 조합에 의해 구동되는 에이전트의 주의의 궁극적 포커스로 가중될 수 있다. 다른 실시예들에서, 돌출은 외부적으로 정의될 수 있고, 에이전트가 포커싱할 디지털 컨텐츠 아이템들을 마킹하기 위한 인공 포인터(artificial pointer)들을 제공할 수 있다.
사용자와 에이전트 간의 UI 제어 스위칭
[0040] 사용자 및 에이전트 둘 다는 마우스, 키보드 또는 다른 기본 입력 메커니즘을 제어할 수 있다. 일 실시예에서, 협력을 위한 메커니즘은 제어 메커니즘의 형태로 제공되며, 이는 일단 어느 한 당사자가 마우스를 움직이면, 다른 당사자가 마우스를 움직일 수 있게 하기 이전에, 개시된 액션이 완료될 때까지 보장한다. 제어 메커니즘은 사용자와 에이전트 간의 턴 테이킹을 강제할 수 있다. 다른 실시예들에서, 사용자 및 에이전트는 누가 UI를 제어하는지를 결정하기 위해 대화를 사용할 수 있다(예컨대, 사용자는 에이전트에게 그들이 제어를 취할 수 있는지를 질문할 수 있거나 또는 그 반대도 마찬가지임).
지각 제어
[0041] 에이전트는 그것의 지각 입력에 대해 제어를 가질 수 있다. 예컨대, 그것은 컨텐츠가 아닌 사용자를 보는 것으로 선택할 수 있거나 또는 그 반대도 마찬가지다. 시각적 픽셀 인식을 통해 에이전트의 지각을 가능하게 하는 이점은, 그것이 에이전트가 (더 높은 해상도로 에이전트에게 디스플레이되는 픽셀 스트림의 "와(Fovea)" 서브세트/영역을 사용하여) 바라보고/포커싱하고, 그에 따라 지각할 수 있는 것에 대한 자유/유연성을 제공한다는 것이다. 에이전트는 사용자-인터페이스 상에 디스플레이된 임의의 픽셀에 포커싱하거나, 또는 생성된 패턴들, 색상들 또는 표현된 오브젝트들과 같이 사용자-인터페이스 상에 디스플레이된 것에 대한 임의의 상위-구조/양상에 포커싱할 수 있다.
에이전트 시뮬레이터와의 통합
[0042] 도 23은 CEF 브라우저를 사용하는 일 구현의 클래스 다이어그램을 도시한다. CEF 윈도우는 사용자가 UI 상에서 보는 것을 정의한다. 공유 디지털 컨텐츠(예컨대, 브라우저 컨텐츠)와의 인터랙션들을 저장하기 위해 에이전트의 신경거동 모델 내에서 변수들이 정의될 수 있다. 한 세트의 변수들은 사용자의 인터랙션들을 위한 것일 수 있고, 다른 세트의 변수들은 에이전트 인터랙션들을 저장할 수 있다. 에이전트의 세트의 변수들은 신경거동 모델링 언어를 통해 런타임(runtime)에 의해 세팅될 수 있다. 런타임 호스트(2304)는 두 세트들의 변수들에 대한 가변 모니터링을 셋업할 수 있다. 이러한 변수들에 대한 업데이트들을 수신할 시, 런타임 호스트(2304)는 UI 이벤트들(예컨대, 마우스/키보드 이벤트들)을 구성하고, 이들을 공유 환경 VER(이는 에이전트가 공유 디지털 컨텐츠를 보는 에이전트 환경에서 평면에 대응할 수 있음)에 전송한다. 공유 환경 VER은 런타임 호스트에 의해 소유되지만, 버퍼로 오프스크린 렌더링되고, 런타임 호스트는 버퍼를 신경거동 모델링 프레임워크(시뮬레이터)에 전송하여 신경거동 모델링 프레임워크가 컨텐츠를 3D 공간으로 렌더링하도록 한다.
[0043] 사용자가 브라우저와 인터랙션할 때, UI는 세팅된 가변 메시지들을 SDK, 예컨대, user_mousedown, user_mouse_x에 전송한다. UI로부터 수신된 좌표들은 오프스크린 렌더링된 공유 환경(2308)(에이전트의 윈도우)과 관련된다. 좌표들은 브라우저에서 x y 포지션들로 변환된다. 신경거동 모델 방법은 좌표들을 변환하고, 브라우저 오브젝트가 마우스를 포함하는지 여부를 결정한다. 그런 다음, 런타임 호스트는 마우스 및 키 이벤트들을 구성하고, 공유 환경(공유 브라우저)으로 포워딩한다.
[0044] 에이전트가 공유 환경(2308)과 인터랙션할 때, 런타임 호스트(2304)는 변경된 모니터링된 변수들에 대한 콜백을 수신한다. 동일한 콜백에 사용자 이벤트들이 존재하지 않는 경우, 에이전트 인터랙션들은 공유 브라우저로 포워딩된다. 그렇지 않으면, 사용자의 인터랙션들이 에이전트의 인터랙션들보다 우선(override)된다. 공유 인터랙션들을 위한 신경거동 모델링 언어 변수들은 다음과 같이 정의될 수 있다:
· 마우스다운(mousedown) 및 마우스업(mouseup) 이벤트 변수들을 추적하는 것: user_mousedown, user_mouseup, persona_mousedown, persona_mouseup
· 키다운(keydown) 및 키업(keyup) 이벤트 변수들을 추적하는 것: user_keydown, user_keyup, persona_keydown, persona_keyup
[0045] 이벤트(예컨대, 마우스 이벤트 또는 키보드 이벤트)가 발생하고 있음을 표시하기 위해, 신경거동 모델링 프레임워크 변수(예컨대, user_mousedown/ user_mouseup/agent_mousedown/agent_mouseup)는 최종 시간-단계와 상이하다. 1/0 스위칭을 사용하여 이벤트가 발생하고 있음을 표시하는 것 대신에, 카운터는 이벤트를 카운팅하고, 매번 이전 값에 1을 가산하며, 일단 그것이 1000에 도달하면, 카운터는 1로 리셋된다. 이것에 대한 이유는, 모든 이벤트들을 추적하기 위해 아래 및 위(온, 오프)가 동일한 시간-단계 상에 있을 수 있기 때문이며, 변수의 현재 값 및 이전 값은 매칭될 필요가 없다. 이것은 이벤트들이 손실되지 않도록 보장한다. 큐는 신속한 및/또는 동시 입력/출력 이벤트들(에이전트의 시간스텝핑보다 빠름)을 가능하게 하도록 구현될 수 있다. AgentInternal(2314)은 에이전트 시간스텝핑의 레이트를 제어할 수 있고, 공유 환경 VER에서 사용자 인터랙션들을 업데이트할 수 있다.
인터랙션 모듈
[0046] 인터랙션 모듈은 공유 디지털 컨텐츠의 에이전트 지각을 가능하게 할 수 있고, 에이전트의 가상 환경에서 표현된 컨텐츠 아이템들의 인터랙션 어포던스들을 정의하고 에이전트로 통신할 수 있다. 인터랙션 모듈은 지원 라이브러리 또는 API(Application Programming Interface)일 수 있다. 에이전트(1)가 특정 액션을 취하기로 판정할 때, 인터랙션 모듈(16)은 액션을 제3 자 디지털 컨텐츠의 작성자에 의해 본질적으로 정의된 바와 같은 커맨드로 번역한다. 에이전트는 인터랙션 모듈을 사용함으로써 디지털 컨텐츠(예컨대, 웹 컨텐츠, 애플리케이션 컨텐츠 또는 다른 프로그래밍방식으로 정의된 컨텐츠)와 직접적으로 그리고 동적으로 인터랙션할 수 있다. 인터랙션 모듈은 컴퓨터 프로그램 판독가능한 정보에 의해 정의된 디지털 컨텐츠와 에이전트 이해가능한 정보 사이를 번역한다.
[0047] 공유 디지털 컨텐츠 아이템들은 본질적(또는 본질적으로 렌더링된) 디지털 컨텐츠 아이템들의 추상화들인 개념적 오브젝트로서 에이전트에 표현될 수 있다. 개념적 오브젝트들은 가상 세계 환경 좌표들, 색상, 식별자 또는 에이전트와 개개의 디지털 컨텐츠 아이템들 간의 인터랙션에 관련된 기타 임의의 것과 같은 특정 속성들에 의해 정의될 수 있다. 개념적 오브젝트는 AVE를 통해 번역되는 추상적 방식으로, 실제 디지털 컨텐츠 아이템들을 표현하는 오브젝트이다. 에이전트(1)는 단지 '개념' 및 개념과 관련된 메타데이터(즉, 사이즈, 색상, 로케이션/포지션)를 이해할 필요가 있다.
[0048] 본질적 디지털 컨텐츠 아이템들이 존재하고, 그들의 본질적 포맷으로 사용자에게 제공되지만, 디지털 컨텐츠 아이템들은 에이전트(1)가 디지털 컨텐츠 아이템들을 지칭하기 위해 사용할 수 있는 추가 아이덴티티들을 갖는다. 일 실시예에서, 에이전트는 인터랙션 모듈(16)을 통해 공유 디지털 컨텐츠 아이템들/오브젝트들을 보고, 그러한 오브젝트들에 대한 HTML 정보를 번역하여 이들을 에이전트(1)로 전달한다. 인터랙션 모듈(16)은 HTML 정보와 같은 본질적 디지털 컨텐츠 아이템 정보를 추출할 수 있고, 이것을 에이전트(1)에게 번역할 수 있어 에이전트(1)는 컨텐츠 아이템이 무엇인지, 그것의 속성들 및 어떤 입력이 요구될 수 있는지를 이해할 수 있다.
[0049] 도 5는 웹 페이지와의 사용자(3) 인터랙션을 가능하게 하는 인간 컴퓨터 인터랙션에 대한 시스템 다이어그램을 도시한다. 시스템은 클라이언트 측(512), 디지털 컨텐츠 제공자 서버 측(520) 및 에이전트 측(에이전트 시스템 또는 시뮬레이션)(510)을 포함할 수 있고, 선택적으로 제3 자 서비스들(590)과의 통신을 포함할 수 있다. 디지털 컨텐츠 제공자는 웹 서버(522) 및/또는 서버-측 데이터베이스(524) 상의 디지털 컨텐츠를 정의할 수 있다. 웹 서버(522)는 사용자에 의해 보여질 수 있는 웹 클라이언트(511), 이를테면, 웹 브라우저에 디지털 컨텐츠를 서빙할 수 있다. 인간 컴퓨터 인터랙션은 클라이언트 측(512)에 인터랙션 모듈(16)을 포함함으로써 가능해진다. 에이전트는 클라우드 서버일 수 있는 에이전트 시스템(510) 상에서 시뮬레이션된다. 인터랙션 모듈(16)은 디지털 컨텐츠(예컨대, HTML 코드에 의해 정의될 수 있음)를 프로세싱하고, 이들이 에이전트에 의해 지각될 수 있도록 에이전트와 관련된 아이템들을 번역한다. 이것은 웹 페이지 상의 컨텐츠 아이템들의 컨텍스처 맵(contextual map)을 에이전트에게 제공할 수 있다. 에이전트 및 에이전트의 가상 환경은 에이전트 시스템(510) 상에 상주한다. 에이전트 시스템(510)은 에이전트의 가상 환경 내에서 에이전트를 시뮬레이션하는 에이전트 모델링 시스템(513), 에이전트의 디스플레이를 렌더링하기 위한 애니메이션 렌더링 시스템(514)을 포함한다. 지식 베이스(515)는 에이전트가 있는 환경 및 에이전트가 인터랙션할 수 있는 컨텐츠 아이템들의 타입들에 대한 도메인 지식의 베이스 레벨을 에이전트에게 제공할 수 있다. 에이전트는 제3 자 서비스들(590)(예컨대, 제3 자 제공된 자연어 프로세싱 시스템)에 의해 지원될 수 있다.
[0050] 도 6은 인간 컴퓨터 인터랙션에 대한 스윔-레인(swim-lane) 프로세스 다이어그램을 도시한다. 디지털 컨텐츠 제공자(620)는 디지털 컨텐츠 아이템들(621)을 정의한다. 디지털 컨텐츠 제공자(620) 제공자는 디지털 컨텐츠 아이템들이 에이전트 인터랙션을 지원할 수 있도록 디지털 컨텐츠 아이템들(621)에 링크된 인터랙션 모듈(16)을 포함한다. 에이전트(1) 인터랙션으로 디지털 컨텐츠를 증강하기 위해, 디지털 컨텐츠 제공자는 웹 사이트를 정의할 때 인터랙션 모듈(16)에 링크하거나 또는 이를 포함함으로써 이것을 가능하게 할 수 있다. 또 다른 실시예에서, 인터랙션 모듈(16)이 링크되지 않은 경우, 에이전트(1)를 통해 인터랙션을 가능하게 하는 인터랙션 모듈(16)을 링크하거나 또는 포함하는 디지털 컨텐츠를 실행하기 위한 프록시 서버가 제공될 수 있다.
[0051] 사용자 디바이스(612)는 본질적으로, 디지털 컨텐츠 제공자(620)에 의해 정의된 웹페이지, 애플리케이션 또는 다른 컴퓨터 프로그램과 인터랙션하는 사용자들에게 디지털 컨텐츠 아이템들을 디스플레이한다. 인터랙션 모듈(16)은 특정 디지털 컨텐츠 아이템들을 그들의 본질적 정의로부터 개념적 오브젝트들로 번역한다. 개념적 오브젝트는 에이전트(1)가 디지털 컨텐츠(616)를 개념화할 수 있도록 에이전트(1) 클라우드(610)에 전송된다. 개념적 오브젝트들은 에이전트(1) 시뮬레이션(617)에 대한 입력이다. 따라서, 개념적 오브젝트들은 에이전트(1)의 환경의 일부를 형성한다. 따라서, 에이전트(1)는 개념적 오브젝트들과 인터랙션할 수 있거나 또는 개념적 오브젝트들에 기초하여 그것의 거동을 변경할 수 있다. 에이전트(1)는 디지털 컨텐츠(618)를 직접적으로 조작, 예컨대, 개념적 오브젝트를 누르거나 또는 이동시킬 수 있다. 에이전트(1)가 개념적 오브젝트를 직접적으로 조작할 때, 인터랙션 모듈(16)은 에이전트의 액션을 디지털 컨텐츠 아이템에 대한 변경으로 번역한다. 다시 말해서, 인터랙션 모듈(16)은 컨텐츠 아이템에 대한 에이전트(1)의 변경들을 반영하기 위해 디지털 컨텐츠를 업데이트한다(642). 에이전트가, 이를테면, 개념적 오브젝트의 로케이션을 향해 바라보거나 또는 개념적 오브젝트의 로케이션에서 제스처를 취함으로써, 개념적 오브젝트와 간접적으로 인터랙션하는 것이 또한 가능하다. 개념적 오브젝트와 직접적으로 또는 간접적으로 인터랙션하는 에이전트(1)의 표현이 렌더링된다(619).
[0052] 에이전트는, 사용자가 (이를테면, 픽셀 인식을 통해) 한 것과 동일한 방식으로 컨텐츠 아이템들을 직접적으로 지각하지 못할 수 있다. 인터랙션 모듈(16)은 컨텐츠 아이템들의 추상화된 표현과 같은 "개념적 오브젝트"를 에이전트로 전달할 수 있다. 개념적 오브젝트는 컨텐츠 아이템이 무엇인지 및 로케이션을 정의하는 태그와 같은 아이템과 에이전트(1)의 인터랙션과 관련된 기본 속성들을 포함할 수 있다. 인터랙션 모듈(16)은 에이전트(1)의 가상 환경의 컨텍스트에서 컨텐츠 아이템의 어포던스들의 리스트를 에이전트(1)에 제공할 수 있다. 컨텐츠 아이템들에 대응하는 개념적 오브젝트들은 에이전트(1)가 인터랙션할 수 있는 "물리적 특성(physical quality)들"을 갖는 오브젝트들을 정의하는 추가적 정보를 포함할 수 있다.
[0053] 인터랙션 모듈(16)은 사용자(3)가 에이전트를 통해 디지털 컨텐츠 아이템들과 인터랙션할 수 있게 하는 '액션' 지원을 제공할 수 있다. 이러한 '인터랙션' 기능은 추상화 계층을 제공하여 에이전트(1)가 오브젝트에 대해 '액션들'을 수행하도록 한다. 액션들의 예들은 누르기, 드래그, 밀기, 바라보기, 잡기 등이다. 이러한 액션들은 인터랙션 모듈(16)에 의해, 그 시간에 그리고 인터랙션 공간에서 작업하는 방식으로 디지털 컨텐츠 아이템에 대해 수행될 수 있는 동작으로 번역된다. 번역되지 않은 액션들은 무시될 수 있다. 예컨대, 에이전트(1)는 웹 버튼을 눌러 '액션'을 취할 수 있으며, 이는 인터랙션 모듈(16)에 의해 버튼 HTML 엘리먼트의 클릭으로 번역될 것이다. 웹 엘리먼트에 대한 '밀기' 액션은 무시될 수 있지만, 공에 대해 3D 인터랙션 공간에서 액션이 취해질 때에는 공을 움직이게 할 것이다.
[0054] 예컨대, 웹 페이지를 스크롤 다운(scroll down)하기를 희망하는 에이전트는 인터랙션 모듈에 스크롤 다운 커맨드를 전송할 수 있으며, 이는 차례로 에이전트(1)의 액션을 JavaScript 코드와 같은 웹 판독가능한 커맨드로 번역할 수 있다. JavaScript 코드는 웹 페이지 상에서 액션을 액추에이션(actuate)한다. 따라서, 에이전트는 웹 언어로 직접적으로 통신할 필요가 없다. 이것은, 에이전트(1)가 상이한 컨텍스트들에 적용될 수 있으므로, 시스템이 확장될 수 있게 한다.
[0055] 다른 예에서, 컨텐츠 아이템에 텍스트를 입력하기를 희망하는 에이전트는 입력 커맨드를 인터랙션 모듈(16)에 전송할 수 있다. 인터랙션 모듈(16)은 필요한 JavaScript 커맨드를 실행하여 그 텍스트 필드 내에 커서를 배치할 수 있고, 에이전트가 입력하기를 희망하는 텍스트를 입력할 수 있다. 따라서, 웹 인터랙션 컨텍스트에서, 디지털 컨텐츠 아이템들에 대한 사용자의 뷰는 정확하게 스타일화(stylize)된 웹 엘리먼트들(예컨대, HTML 엘리먼트들)이 있는 완전한 충실도의 웹 페이지일 수 있다. 에이전트는 개념적 오브젝트들로 구성된 그 HTML 페이지의 추상화된 시각화를 가질 수 있다. 개념적으로, 이것은, 에이전트가, 사용자 및 웹페이지와의 에이전트의 인터랙션과 관련된 웹페이지의 양상들만 있는 웹페이지의 간략화된 뷰를 보는 것과 유사하다.
[0056] 웹 언어의 정보를 에이전트가 지각할 수 있는 정보로 번역하는 것 이외에, 인터랙션 모듈(16)은 개념적 오브젝트들에 대한 "물리적" 에이전트 액션들을 대응하는 디지털 컨텐츠 아이템들의 이동을 위한 명령들로 번역할 수 있다. 에이전트는, 본질적 방법들을 통해 컨텐츠 아이템들을 직접적으로 조작하는 것 대신에, 가상 환경 내에서 컨텐츠 아이템들을 마치 그들이 물리적 아이템들인 것처럼 조작한다. 이러한 효과를 위해, 인터랙션 모듈(16)은 피직스(physics)를 시뮬레이션하는 방식으로 HTML 엘리먼트들을 이동시키기 위한 피직스 번역을 더 포함할 수 있다. 예컨대, 컨텐츠 아이템을 미는 것과 같은 '피직스' 타입 액션은, 인터랙션 모듈(16)이 초당 특정 수의 프레임들로 오브젝트를 특정 양만큼 이동시켜 물리적 밀기(physical push)를 '시뮬레이션'함으로써, HTML 엘리먼트로 번역될 수 있다. 따라서, 인터랙션 모듈(16)이 포함하는 다양한 '액션들'은 그것의 포지션, 컨텐츠들 또는 다른 메타데이터와 같은 엘리먼트에 대한 변경을 직접적으로 구현하거나 또는 (근사화함으로써) 시뮬레이션할 수 있다.
[0057] 일부 실시예들에서, 에이전트(1)는 그 아이템에 대한 추가 정보를 획득하기 위해 인터랙션 모듈(16)에 질의를 전송할 수 있다. 예컨대, 아이템(이는 HTML에서 텍스트 필드임) 내의 텍스트를 "판독"하기를 희망하는 에이전트(1)는 텍스트 필드 내에서 그들의 텍스트를 가져오기 위해 인터랙션 모듈(16)에 질의할 수 있다.
동적 제어
[0058] 디지털 컨텐츠 아이템들은 엘리먼트의 초기 구조 및 컨텐츠를 정의하기 위해 문서 설계자에 의해 설정된 한 세트의 파라미터들을 가질 수 있는 웹 엘리먼트들을 포함한다. 이들은, 문서 내의 엘리먼트의 절대적 또는 상대적 공간 로케이션과 같은 엘리먼트의 물리적 피처들뿐만 아니라, 폰트 타입, 폰트 사이즈, 폰트 색상 및 굵게 및 기울임꼴과 같은 임의의 폰트 속성들과 같은 엘리먼트에 입력된 임의의 사용자 텍스트 컨텐츠에 적용될 속성들 둘 다를 포함한다. 문서는 또한 사용자가 종래의 클릭-앤-드래그 기법들에 의해 엘리먼트들 중 하나 이상을 리포지셔닝할 수 있게 하도록 설계될 수 있다. 디지털 컨텐츠가 웹페이지의 컨텍스트에 있는 경우, JavaScript 인터랙션 모듈(16)과 같은 인터랙션 모듈(16)은 에이전트(1)가 웹 엘리먼트들의 물리적 피처들 및/또는 속성들을 수정하는 것을 가능하게 하도록 제공될 수 있다. HTML, CSS(Cascading Style Sheets), DOM(Document Object Model) 및 스크립팅을 포함한 몇몇 웹-관련 표준들의 조합 및 인터랙션인 DHTML(Dynamic HTML)을 통해 페이지를 렌더링한 이후에, HTML 페이지의 엘리먼트들이 제어가능할 수 있다. 브라우저는, 웹 페이지가 로드될 때 HTML 엘리먼트들을 페이지 상에 표현하여, DOM(Document Object Model)을 생성할 수 있다. JavaScript는 DOM(프로그램들이 문서들의 컨텐츠, 구조 및 스타일에 액세스하고 이들을 변경할 수 있게 하는 브라우저에서의 인터페이스)과 인터랙션하는 데 사용될 수 있다. JavaScript 인터랙션 모듈(16)은 DOM에 의한 웹페이지와 에이전트(1) 간의 특정 타입들의 인터랙션을 구체적으로 가능하게 하는 방법들을 포함할 수 있다.
[0059] QuerySelector는 DOM을 질의하는 데 사용될 수 있다. 인터랙션 모듈(16)은 에이전트(1)가 다음에 의해 웹페이지를 수정하는 것을 가능하게 할 수 있다.
· DOM에서 또는 페이지 상에서 HTML 엘리먼트들을 변경/제거
· 엘리먼트들에 CSS 스타일들을 추가 및/또는 변경
· 엘리먼트 속성들을 판독 및/또는 변경(앵커 텍스트(anchor text)에 대한 href 속성, 이미지 텍스트에 대한 src 속성, alt 속성들 또는 임의의 커스텀 속성들)
· 새로운 HTML 엘리먼트들의 생성 및 이들을 DOM/페이지에 삽입
· 이벤트 리스너(event listener)들을 엘리먼트들에 어태치(attach) 예컨대, 이벤트 리스너들은, 클릭들, 키 누르기들 및/또는 제출들을 청취할 수 있고, JavaScript에서 이들에 반응할 수 있다.
[0060] 웹페이지의 동적 제어가 JavaScript 인터랙션 모듈(16)을 참조하여 설명되었지만, 본 발명은 이러한 점에 제한되지 않는다. 예컨대, 다른 실시예에서, JQuery는 에이전트(1)와 디지털 컨텐츠 간의 인터랙션을 가능하게 할 수 있다. 인터랙션/지원 모듈은 임의의 적합한 웹-관련 개방형 기술 표준으로 구현될 수 있다.
다른 인터랙션 컨텍스트들
[0061] 도 8은 가상 현실 환경과 같은 가상 현실 컨텍스트에서의 사용자(3) 인터랙션을 도시한다. 위에서 설명된 사용자 인터페이스 인터랙션을 위한 방법들 및 시스템들은 가상/혼합/증강 현실 인터랙션들에 유사하게 적용된다. 사용자(3)와 에이전트(1) 둘 다에 의해 액세스될 수 있는 한 세트의 오브젝트들을 포함하여, 개념적 공유 환경이 또한 제공될 수 있다. 인터랙션 모듈(16)은 에이전트(1) 공간과 사용자(3) 공간 사이를 번역하는 데 사용될 수 있다. 인터랙션 모듈(16)은 가상 현실 환경(VR 환경)을 갖는 가상 현실 애플리케이션(VR 애플리케이션)에 임베딩될 수 있다. 인터랙션 모듈(16)은 에이전트(1)와 디지털 컨텐츠 아이템들 간의 인터랙션에서 시각적 일치(congruity)를 가능하게 한다. 대안적으로 그리고/또는 추가적으로, 에이전트에는 VR 환경에 의해 정의된 공유 디지털 컨텐츠의 완전한 충실도 컴퓨터 비전(및 마찬가지로 아래에서 설명되는 증강 현실 실시예들과 함께)이 제공될 수 있다.
[0062] 실세계 환경(7)에서의 사용자(3)는 3D 오브젝트들을 포함하는 공유 디지털 컨텐츠(5)를 포함할 수 있는 3D VR 환경(13)을 본다. 인터랙션 모듈은 VR 애플리케이션으로부터의 디지털 컨텐츠를 에이전트(1)에 의해 지각될 수 있는 개념적 오브젝트들(9)로 번역할 수 있다. 따라서, 에이전트(1)는 개념적 오브젝트(9)와 직접적으로 또는 간접적으로 인터랙션하거나 또는 개념적 오브젝트들(9)을 참조할 수 있다. 예컨대, 에이전트(1)가 개념적 오브젝트(9)와 직접적으로 인터랙션할 때, 에이전트(1)의 환경의 가상 바닥을 따라 실린더를 밀 때, 인터랙션 모듈(16)은 이것을 VR 애플리케이션에 본질적으로 정의된 디지털 오브젝트의 변경으로 번역한다. 도 8은 에이전트 가상 환경(8)이 VR 환경(13)보다 작은 것으로 도시하지만, 에이전트(1)의 에이전트 가상 환경(8)은 VR 환경(13)과 공존하거나 또는 그보다 클 수 있다. 에이전트(1)는 공유 환경에서의 아이템들을 사용자(3)로 전달할 수 있다. 예컨대, 에이전트(1)는 공유 디지털 컨텐츠인 축구 공을 사용자(3)에게 전달할 수 있다. 일 실시예에서, 광선 추적은 3차원 장면 내에서 에이전트(1)에 대한 비전을 시뮬레이션하는 데 사용된다. 인터페이스는 에이전트(1)의 관점에서 3차원 장면으로 광선들을 캐스팅(cast)할 수 있고, 광선들로 광선 추적을 수행하여 오브젝트들이 에이전트(1)의 시야 내에 있는지를 결정할 수 있다. 따라서, 에이전트(1)의 거동은 공유 디지털 컨텐츠(5)가 그것의 시야 내에 있는지 아닌지에 기초할 수 있다.
[0063] 도 9는 가상 현실 컨텍스트에서의 인간 컴퓨터 인터랙션에 대한 시스템 다이어그램을 도시한다. VR 디지털 컨텐츠 아이템들(824)은 VR 애플리케이션(822)에서 정의될 수 있고, VR 디스플레이(811) 상에서 사용자(3)에게 디스플레이될 수 있다. 인터랙션 모듈(16)은 VR 디지털 컨텐츠 아이템들(예컨대, VR 오브젝트들)을 에이전트(1) 지각가능한 개념적 오브젝트들로 번역한다. 따라서, 에이전트(1)는 지각가능한 개념적 오브젝트들과 인터랙션할 수 있다. 그런 다음, 이러한 인터랙션은 VR 디지털 컨텐츠 아이템들에 대한 대응하는 변경들을 반영하기 위해 인터랙션 모듈(16)에 의해 번역된다. VR 애플리케이션은 인터랙션 모듈(16)에 의해 가능해지는 에이전트(1), 에이전트(1)의 환경들 및 디지털 컨텐츠 아이템들의 임의의 양상들을 포함하여, 장면을 사용자(3)에게 렌더링할 수 있다. 에이전트(1) 시스템(810)은 에이전트(1)가 인터랙션하고 있는 특정 도메인에 대한 지식을 갖는 에이전트(1)를 인에이블(enable)하는 지식 베이스(815)를 또한 포함할 수 있다.
[0064] 도 10은 증강 현실 컨텍스트에서의 사용자-인터페이스 인터랙션을 도시한다. 인터랙션은, 사용자가 실세계의 뷰에 오버레이될 수 있는 뷰 포트(view port)(예컨대, 모바일 폰 스크린으로 도시됨)를 통해 가상 디지털 컨텐츠를 본다는 점을 제외하고는, 가상 현실을 참조하여 설명된 것과 유사하다. 도 11은 모바일 애플리케이션과의 인간 컴퓨터 인터랙션에 대한 시스템 다이어그램을 도시한다. 컨텐츠 아이템들(824)은 모바일(1022)에서 정의될 수 있고, 모바일 디바이스 스크린과 같은 디스플레이(1011) 상에서 사용자(3)에게 디스플레이될 수 있다. 인터랙션 모듈(16)은 모바일 애플리케이션 디지털 컨텐츠 아이템들을 에이전트가 지각할 수 있는 개념적 오브젝트들로 번역한다. 따라서, 에이전트(1)는 지각가능한 개념적 오브젝트들과 인터랙션할 수 있다. 그런 다음, 이러한 인터랙션은 모바일 애플리케이션에 대한 대응하는 변경들을 반영하기 위해 인터랙션 모듈(16)에 의해 번역된다.
[0065] 일 실시예에서, 에이전트(1)는 WEB GL에 살고; 장면의 모든 것은 페르소나가 조작할 수 있는 오브젝트일 수 있다. WebGL(Web Graphics API)은 플러그인들의 사용없이 임의의 호환성 있는 웹 브라우저 내에서 인터랙티브 방식의 3D 및 2D 그래픽들을 렌더링하기 위한 JavaScript API이다. webGL 호환성 있는 브라우저는 에이전트(1)가 투영되는 가상 3D 공간을 제공한다. 이것은, 에이전트(1)가 동작하는 가상 공간이 임의의 호환성 있는 웹 브라우저 또는 WEB GL 호환성 있는 디바이스 상에 제시될 수 있게 하고, 에이전트(1)가 동일한 가상 공간 내에서 웹 오브젝트 및 3D 오브젝트와 인터랙션할 수 있게 한다.
디지털 컨텐츠와 관련된 에이전트의 렌더링
[0066] 애니메이션 렌더러는 사용자에게 디스플레이하기 위해 에이전트 및 에이전트의 환경의 애니메이션을 렌더링할 수 있다. 그런 다음, 결과적 애니메이션이 비디오 스트림으로 UI 디바이스(이를테면, 브라우저)에 스트리밍될 수 있다. 일 실시예에서, 에이전트는 최종 사용자 디스플레이의 제한된 영역에서 렌더링될 수 있다. 웹-컨텍스트에서, 에이전트는 HTML DIV 엘리먼트로 경계가 정해질 수 있다. 다른 실시예에서, 최종 사용자 디스플레이 상의 에이전트의 디스플레이는 경계가 정해지지 않을 수 있다.
[0067] 이를테면, 에이전트 또는 디지털 컨텐츠가 투명하고, 에이전트 또는 디지털 컨텐츠 뒤에 있는 것 각각을 볼 수 있게 하도록 픽셀들이 블렌딩될 수 있다. AVE가 3D 환경이고, 디스플레이가 2D 스크린인 경우, AVE는 사용자의 관점에서 2D 애니메이션으로서 렌더링될 수 있다. AVE는 인터랙티브 방식의 사용자-경험을 위해 디지털 컨텐츠(예컨대, 본질적으로 렌더링된 HTML 웹 엘리먼트들을 포함함)의 움직이는 배경 또는 전경으로서 렌더링될 수 있다.
[0068] 에이전트의 가상 환경은 하나 이상의 관점들을 통해 사용자에게 제시될 수 있다. 에이전트 및/또는 사용자는 사용자의 뷰포트를 에이전트의 가상 환경으로 변경할 수 있다. 예컨대, 에이전트 환경의 렌더링의 핀홀 카메라 모델에서, 에이전트는 핀홀 로케이션을 변경하여 에이전트 환경의 사용자의 뷰의 각도/방향 및/또는 줌(zoom)을 변경할 수 있다. 에이전트의 환경의 애니메이션을 렌더링하는 것(이는 컴퓨팅 집약적(computationally intensive)일 수 있음) 대신에, 일부 실시예들에서, (에이전트의 관점에서) 에이전트의 뷰에 대응하는 특정 뷰의 2D 표현이 렌더링되고, 사용자에게 표현될 수 있다.
카메라 이미지의 오버레이
[0069] 사용자는 제스처를 사용하여 에이전트의 주의를 끌거나 또는 컴퓨터 스크린 상의 영역을 가리키거나/표시할 수 있다. 도 19는 카메라(15)에 의해 캡처된 사용자의 표현(3VER 및/또는 3RER)이 스크린(10) 상에 디스플레이되는 방법의 예를 도시한다. 표현은 스크린(10) 상에 디스플레이되는 기타의 것 상에 오버레이될 수 있고, 반투명할 수 있어, 사용자(3)가 사용자(3)의 신체뿐만 아니라 스크린(10)의 다른 컨텐츠들 둘 다를 보는 것을 가능하게 할 수 있다. 대안적으로, 사용자(3)의 배경은 사용자(3)의 이미지 또는 손만이 스크린 상에 디스플레이되도록 (표준 이미지-프로세싱 기법들을 사용하여) 자동으로 컷 아웃(cut out)될 수 있어, 표현이 투명할 필요가 없다. 추가적 실시예에서, 사용자(3)의 표현은 에이전트(1)에게만 보일 수 있다. 2개의 버튼들, A 및 B가 스크린(3120) 상에 디스플레이되고, 사용자(3)의 손(3145)은 버튼 B 위에 머물러 있다. 사용자(3)의 손의 표현이 스크린 상에서 보일 수 있다. 에이전트(1)는 사용자(3)가 보는 동일한 표현을 볼 수 있고, 그에 따라 사용자(3)가 주의를 끌고 있는 버튼을 또한 볼 수 있다. 돌출 맵은 사람의 손들이나 또는 움직임에 대한 중요도를 이끌 수 있다(사용자(3)의 손이 버튼 B 위로 이동하여 그것에 주의를 끌 수 있음). 따라서, 사용자(3)는 터치 스크린과 유사한 방식으로 비-터치-스크린 스크린과 인터랙션할 수 있다. 인터페이스 모듈을 사용하여 사용자 제스처들(예컨대, 손가락 클릭)이 입력 디바이스 이벤트들(예컨대, 클릭)로 번역될 수 있다. 다른 실시예들에서, 사용자(3)의 표현이 스크린 상에 디스플레이되는 것 대신에, 사용자(3)는 이를테면, 에이전트(1)가 그 방향을 바라보고 있는 것에 의해, 사용자(3)가 표시하고 있는 위치에 대한 일부 다른 시각적 표시자를 수신할 수 있다. 유사한 방식으로, 에이전트(1)는, 사용자(3)로부터의 구두적 명령들/지시들로부터 또는 사용자의 응시(gaze)를 추적함으로써 사용자(3)가 스크린 상에서 어디를 바라보고 있는지를 지각할 수 있다.
변형들
[0070] 복수의 에이전트들은 독립적으로 디지털 컨텐츠와 인터랙션할 수 있다. 복수의 에이전트들은 사용자/사용자들뿐만 아니라 서로 대화에 참여할 수 있다. 복수의 에이전트들은 동일한 가상 환경 내에서 시뮬레이션될 수 있거나 또는 그들은 서로 상이한 가상 환경들 내에서 시뮬레이션될 수 있다. 복수의 에이전트들은 동일한 감지 능력들을 가질 수 있거나 또는 그들은 서로 상이한 능력들을 가질 수 있다. 하나 이상의 에이전트들은 복수의 사용자들과 인터랙션할 수 있다. 임의의 한 명 이상의 사용자들은 하나 이상의 에이전트들과 대화할 수 있고, 본원에서 설명된 바와 같이 사용자들이 인터랙션하고 있는 사용자-인터페이스를 조작하도록 하나 이상의 에이전트들에게 지시할 수 있다.
컴퓨터 비전 & 인터랙션 모듈(16)의 결합
[0071] 컴퓨터 비전 및 인터랙션 모듈 실시예들이 조합될 수 있다. 일 실시예에서, 에이전트는 이미지들의 픽셀들을 프로세싱함으로써 이미지들과 같은 컨텐츠 아이템들의 피처들을 지각적으로 인식할 수 있다. 이것은 에이전트가 아이템들의 색상 또는 색상들과 같은 피처들을 논의할 수 있게 한다.
에이전트 지식
[0072] 에이전트들은 또한 예컨대, 제공된 오브젝트 데이터베이스로부터 오브젝트 메타데이터에 액세스할 수 있다. 일 예는 구매 아이템들의 카탈로그이다. 에이전트(1)는 디지털 컨텐츠 아이템을 데이터베이스 카탈로그 내의 구매 아이템과 연관시키고, 이러한 정보를 사용하여 사용자(3)와 대화할 수 있다. 에이전트들은 사용자(3) 인터페이스의 네비게이션 또는 디스플레이 양상들을 제어할 수 있다. 예컨대, 웹사이트 컨텍스트에서, 에이전트(1)는 위, 아래, 좌측 또는 우측, 또는 줌인 또는 줌아웃으로 스크롤링함으로써 웹페이지의 어떤 부분/부분들이 디스플레이되는지를 제어할 수 있다.
영구적 에이전트 브라우저
[0073] 일 실시예에서, 에이전트는 에이전트가 상이한 디지털 컨텐츠 소스들(예컨대, 상이한 웹사이트들)에 통합될 수 있도록 특정 디지털 컨텐츠 아이템들의 본질을 이해할 수 있다. 따라서, 에이전트는 인터넷을 통해 스케일링가능한 방식으로 사용자 컨텐츠 인터랙션을 가능하게 할 수 있다. 그러한 에이전트는 맞춤형 브라우저를 통해 제공될 수 있다. 에이전트는, 컨텐츠 아이템들과 그러한 컨텐츠 아이템들과 관련하여 취해질 수 있는/취해져야 하는 액션들 간의 웹언어 학습 연관들의 본질을 이해하기 위한 머신 학습 기법들을 사용하여 훈련될 수 있다. 예컨대, 에이전트(1)는 텍스트 필드들의 정확한 구성과 관계없이 텍스트 필드들을 식별하고, 사용자가 볼 수 있는 텍스트 필드 라벨을 판독하고, 그리고 사용자 대신 그러한 필드들을 채우도록 훈련될 수 있다.
[0074] 일 실시예에서, 사용자는 에이전트에게 디지털 컨텐츠 아이템들에 대해 가르칠 수 있다. 예컨대, 사용자는 디지털 컨텐츠 아이템 위에 마우스를 올려놓고, 아이템의 이름을 지정할 수 있다. 에이전트는 이것을 관측할 수 있고, 아이템의 이름을 디지털 컨텐츠 아이템의 표현(인터랙션 모듈에 의해 제공된 픽셀 표현 또는 개념적 표현)과 연관시킬 수 있다.
구현된 액션들 및 에이전트가 지각가능한 로케이터들
[0075] 일 실시예에서, 도 18에 도시된 바와 같이, 디지털 컨텐츠는 임베딩된 액션들 및/또는 에이전트가 지각가능한 로케이터들과 연관될 수 있다. 에이전트가 지각가능한 로케이터는 디지털 컨텐츠 아이템을 로케이팅한다(그리고 에이전트 가상 환경 내에서 디지털 컨텐츠 아이템에 대응하는 공간적 좌표와 연관될 수 있음). 로케이터들은 디지털 컨텐츠 아이템을 설명하는 메타데이터와 연관될 수 있다. 로케이터들은 돌출 맵들을 대체 및/또는 지원할 수 있다. 돌출 맵들을 대체하는 로케이터의 일 예에서, 버튼에 대응하는 로케이터는 그것이 에이전트(1)에 의해 클릭되어야 함을 표시하는 메타데이터로 태깅(tag)된다. 돌출 맵들을 지원하는 로케이터의 예에서, 로케이터들은 버튼들 상에 배치된다(그리고 웹 페이지의 HTML 컨텐츠들을 판독하고 HTML 버튼 태그들이 있는 아이템들에 로케이터들을 할당함으로써, 자동으로 생성될 수 있음). 버튼들의 돌출 맵은 임의의 다른 돌출 맵들, 예컨대, 색상 돌출 맵에 따라 제공될 수 있고, 예컨대, 돌출 맵들은 에이전트가 적색 버튼들을 클릭하는 것을 장려하도록 구성될 수 있다. 임베딩된 컨텐츠는 웹사이트에서 제공될 수 있으며, 이 임베딩된 컨텐츠에는 에이전트가 액세스할 수 있지만 반드시 사용자가 액세스할 수 있는 것은 아니다. 예컨대, 에이전트에게 보이는 임베딩된 컨텐츠는 에이전트가 사용자에게 보이지 않는 링크를 클릭할 수 있게 하고, 사용자에게 보이지 않는 다른 페이지 또는 판독 정보로 네비게이션할 수 있다.
대화식 인터랙션
[0076] 에이전트(1)는 인간들이 하는 것과 동일한 구두적 및 비구두적 수단(이를테면, 제스처, 얼굴 표정 등)을 사용하여 인간들과의 대화에 참여할 수 있다. 응답들은 최종 사용자 컴퓨팅 디바이스의 하나 이상의 스피커들을 통해 재생되는 컴퓨터-생성 음성 또는 다른 오디오 컨텐츠를 포함할 수 있다. 에이전트(1)에 의해 생성된 응답들은 사용자(3)에 대해 텍스트, 이미지들 또는 다른 시각적 컨텐츠의 형태로 사용자(3)에게 보이게 될 수 있다. 에이전트(1)는 IBM Watson 또는 Google Dialogue Flow 및/또는 대화식 코퍼스(conversational corpus)와 같은 제3 자 서비스의 도움으로 대화할 수 있다.
[0077] 도 20은 사용자(3)를 도시한다. 에이전트(1)는 사용자(3)를 바라볼 수 있다. 에이전트(1)는 사용자(3)에 대한 다음 정보를 수신할 수 있고, 이러한 정보를 사용하여 실세계 및 가상 세계 둘 다에서 인터랙션을 통지할 수 있다.
· 구현된 에이전트는 카메라 입력을 수신할 수 있고, 사용자가 어디를 응시하고 있는지를 계산할 수 있다. 이것은 사용자가 바라보고 있는 사용자의 공간/실세계에서의 컨텐츠 아이템 또는 오브젝트에 맵핑될 수 있다. 사용자의 응시는 사용자의 눈 각도 및/또는 사용자의 머리 각도를 사용하여 추적될 수 있다.
· 구현된 에이전트는 추가적으로, 사용자의 눈 움직임, 머리 움직임을 추적할 수 있고, 사용자의 눈 및 머리 각도를 계산할 수 있다.
· 구현된 에이전트는, 일부 경우들에서 구현된 에이전트의 액션들 및/또는 구현된 에이전트의 응시를 지시할 수 있는 사용자로부터의 지시들을 포함한 구두적 입력들을 추가로 수신한다. 다른 입력들은 예컨대, 키보드를 통한 텍스트를 포함할 수 있다.
· 사용자를 식별한 구현된 에이전트는 그들의 눈들로 그리고 사용자를 향해 기울임으로써 사용자의 포지션을 따를 수 있다(사용자를 바라봄).
· 구현된 에이전트는 디지털 컨텐츠 아이템들과 관련하여 사용자-제어된 마우스가 스크린 상에서 어디에 포지셔닝되는지를 인식할 수 있다. 에이전트(1)는 예컨대, 터치 스크린 모니터에 의해 사용자의 터치를 추가로 인식할 수 있다.
· 구현된 에이전트는 카메라를 통해 사용자의 움직임, 특히 사용자의 팔들, 손들 및 손가락들의 움직임을 모니터링할 수 있다.
· 얼굴 표정은 사용자 감정을 검출하고 그에 따라 적응하는 데 사용될 수 있다.
· 사용자의 음성 톤은 에이전트가 그에 따라 적응하도록 사용자 정보를 검출하는 데 사용될 수 있다.
· 에이전트는 대화를 진행하기 이전에 에이전트가 사용자의 주의를 갖도록 보장할 수 있다.
· 에이전트는 사용자와의 과거 인터랙션들을 기억할 수 있고, 이러한 정보를 대화에 사용할 수 있다.
[0078] 에이전트는 대화, 디지털 컨텐츠 아이템들 및 사용자 정보의 컨텍스트를 사용하여 모호성을 해결할 수 있다. 에이전트에 의해 취해진 액션들은 동적이거나, 사용자에 맞게 조정되거나, 또는 컨텍스트 민감적, 의도/목표 지향적일 수 있다. 에이전트는 사용자에 대한 정보의 소스들에 액세스할 수 있다. 예컨대, 에이전트는 사용자의 로케이션(예컨대, 지오로케이션(geolocation) 서비스를 통해) 및/또는 시간대를 인식할 수 있고, 그에 따라 이것을 사용하여 인터랙션을 안내할 수 있다. 에이전트는 대화, 감정, 인지 및 기억을 조합하여 인터랙티브 방식의 사용자-경험을 생성한다. 실시예들은 컨텐츠 인터랙션으로 에이전트의 감정적 그리고 제스처적 거동을 합성하기 위한 시스템을 제공한다. 에이전트는, 사용자의 목표들, 신념들 및 욕구들을 설정하고 그에 따라 사용자를 안내하기 위해 사용자의 움직임, 눈 방향, 눈 응시 및 사용자에 대해 수신된 다른 입력들을 포함하는 사용자의 액션들 및 대화를 통해 사용자와 인터랙션한다. 에이전트는 사용자들에게 반응하는 감정 반응 모듈들을 포함할 수 있다. 일 실시예에서, 에이전트 인터랙션은 학습된 응답들(이를테면, 강화 학습)에 의해 안내되거나 또는 규정된다. 규정된 거동은 규칙들의 지식 기반에 의해 안내될 수 있다. 일 실시예에서, 에이전트가 인터랙션하는 방식은 사용자의 심리 측정 프로파일에 의해 안내된다.
[0079] 일 실시예에서, 구현된 에이전트와 사용자 간의 시뮬레이션된 인터랙션은 사용자 및 구현된 에이전트의 응시에 적용된 다이애딕 턴 테이킹 모델(dyadic turn taking mode)을 사용하여 구현될 수 있다. 구현된 에이전트는 사용자와의 직접적 응시를 시도함으로써 인터랙션하는 동안 그들의 대화식 턴의 종료를 표시할 수 있다. 유사한 방식으로, 구현된 에이전트가 사용자가 구현된 에이전트와의 직접적 응시를 개시했음을 검출할 때, 구현된 에이전트는, 사용자가 그들의 턴의 종료를 표시했음을 지각할 수 있다.
[0080] 도 20을 참조하면, 턴 테이킹의 예가 예시된다. 사용자(3)는 에이전트(1)를 바라보거나(3325) 또는 에이전트(1)의 이름을 말하거나 또는 예컨대, 에이전트(1)를 가리킴으로써 에이전트(1)에게 프롬프트(prompt)할 수 있다. 일단 사용자(3)가 에이전트(1)의 주의를 가지면, 에이전트(1)는 에이전트(1)가 사용자(3)의 주의를 인식했음을 사용자(3)에게 시그널링하여 사용자(3)의 눈 컨택(3330)을 리턴할 수 있다. 사용자(3)는 차례로 미소로 응답하여, 에이전트(1)가 진행 및 턴 테이킹하여, 예컨대, 정보를 제공하거나 또는 그렇지 않으면 사용자(3)와 통신하도록 프롬프트할 수 있다. 일단 에이전트(1)가 종료하면, 에이전트(1)는 일시 중지하고 사용자(3)를 직접 바라봄으로써(3345) 사용자(3)에게 시그널링할 수 있다. 사용자(3)는 차례로 미소를 지어 에이전트(1)에게 확인응답할 수 있고(3350), 턴 테이킹할 수 있다(3355). 사용자(3)가 종료할 때, 사용자(3)는 일시 중지하고, 다른 턴 테이킹할 수 있는(3365) 에이전트(1)에 주의를 지시할 수 있다(3360). 위의 설명은 단지 예일 뿐이고, 사용자(3)에 의한 표시는 에이전트(1)가 그것이 에이전트(1)의 턴임을 인식할 수 있게 하는 다른 형태들을 취할 수 있다. 예컨대, 사용자(3)는 구두적 큐(verbal cue)들 또는 비구두적 큐(non-verbal cue)들에 의해 인터랙션하는 동안 그들의 턴의 종료를 표시할 수 있다. 비구두적 큐들은 예컨대, 미소들, 윙크, 머리의 움직임, 팔들, 손들 및 손가락들을 포함한 신체의 움직임을 포함할 수 있다. 마찬가지로, 에이전트(1)에 의한 표시는 사용자(3)가 그것이 사용자(3)의 턴임을 인식할 수 있게 하는 다른 형태들을 취할 수 있다. 예컨대, 에이전트(1)는 구두적 큐(verbal que)들 또는 비구두적 큐들에 의해 인터랙션하는 동안 그들의 턴의 종료를 표시할 수 있다. 비구두적 큐들은 예컨대, 미소들, 윙크, 머리의 움직임, 팔들, 손들 및 손가락들을 포함한 신체의 움직임을 포함할 수 있다.
주의 모델링(Attention Modelling)
[0081] 에이전트 주의 모델들은 가시적 로케이션들이 주의를 위해 경쟁하는 시야에서 구역들의 돌출 맵들로 구현될 수 있다. 더 액티브한 그러한 로케이션들은 더 많은 돌출 부분(salience)을 갖는다. 돌출 맵은 각각의 로케이션들의(픽셀의) 고유 품질을 나타내는 이미지이며, 따라서 더 액티브한 로케이션들은 더 많은 돌출 부분을 갖는다. 인간 뇌에서 액티브한 몇몇 타입들의 돌출이 구현된 에이전트에서 구현될 수 있다. 이들은 사용자(3) 또는 구현된 에이전트(1)의 모든 각각의 눈 또는 머리 움직임을 업데이트하는 시각적 프레임을 포함한다. 다른 돌출 맵들은 머리 및 눈 움직임들과 관계없이 안정적인 참조 프레임을 사용한다. 맵핑될 수 있는 돌출 피처들은 시야에서 제시된 자극의 흥미(interestingness) 또는 휘도 또는 색상을 포함한다. 기대(expectation)들 또는 욕구(desire)들에 포커싱되고 그러한 기대들 또는 욕구들로부터 돌출 맵 상에 돌출 로케이션들이 어디에 있을 가능성이 있는지를 예측하는 또 다른 돌출 맵들이 생성될 수 있다. 구현된 에이전트(1)에서 구현된 바와 같이, 이러한 돌출 맵들이 조합되어 돌출의 어그리게이트 척도(aggregate measure)를 도출한다.
[0082] 일 실시예에서, 구현된 주의 모델은 상이한 타입들의 돌출 오브젝티브들(objectives)을 표현하는 복수의 돌출 맵들을 포함한다. 어그리게이트 돌출 맵은 사용되는 맵들의 가중 합계(weighted sum)이다. 다양한 돌출 맵들이 가중되는 방법이 변경될 수 있다. 일 예에서, 가중치들은 사용자 및 구현된 에이전트 둘 다가 오브젝트에 포커싱하고 있는 경우 오브젝트들(사물들 또는 사람들)은 돌출 부분이 증가하도록 다음과 같이 사용될 수 있다.
Figure pct00001
[0083] 돌출 맵들을 생성하는 데 사용되는 정보는 위의 대화식 인터랙션에서 논의된 입력들을 포함한다. 청각적 및 텍스트 입력들과 같은 비-시각적 입력들은 또한 입력들을 시각적 맵 공간에 맵핑함으로써 돌출 맵들에 적용될 수 있다. 예컨대, 오브젝트를 가리키는 사용자를 맵핑하기 위해, 시스템은 사용자가 가리키는 로케이션을 계산할 수 있고, 그 로케이션을 시각적 맵 공간에 맵핑한다. 입력이 청각적인 경우, 시스템은 사운드가 나오는 로케이션을 계산하고, 그 로케이션을 시각적 맵 공간에 맵핑한다. 이러한 포인팅 및 청각적 맵들은 시각적 맵들과 조합된다. 일 실시예에서, 주의 모델은, 현재 주의에서 후속 시프트가 있는 경우에도, 구현된 에이전트가 이전에 주의를 기울인(attended) 오브젝트들을 추적하는 것을 가능하게 하는 서브 맵들(추적기들)을 포함한다.
[0084] 도 21은 복수의 돌출 맵들을 세팅하기 위한 사용자 인터페이스의 스크린샷을 도시한다. 맵들의 가중치는 도 21에 도시된 슬라이더들(2110)을 사용하여 변경될 수 있다. 슬라이더들은 기본 가중치들을 변경한다.
[0085] 특정 실시예들에서, 상이한 소스들로부터의 복수의 시각적 피드들은 모두 시각적 피처 맵들을 활성화할 수 있어, 구현된 에이전트들에 다수의 시각적 피드들의 표현을 제공할 수 있다. 각각의 필드는 시공간 주의를 제어하는 돌출 맵을 컴퓨팅하는 데 사용될 수 있다. 각각의 시각적 피드는 복수의 피처 맵들과 연관될 수 있어서, 시각적 피드의 다른 영역들에 대해 시각적 피드의 영역들이 더 돌출되게 강조할 수 있다. 예컨대, 카메라 시각적 피드(사용자(3)가 구현된 에이전트(1)와 인터랙션하는 것을 캡처함) 및 브라우저 윈도우 시각적 피드(사용자(3) 및/또는 에이전트(1)가 인터랙션하는 컴퓨터 브라우저를 캡처함)는 모두 시각적 피처 맵들을 활성화한다. 또 다른 시각적 피드는 에이전트 자체의 3D 가상 환경에 의해 제공될 수 있다. 예컨대, 에이전트(1)가 그것의 주변 환경을 갖는 시야에 대응하는 2D 평면은 에이전트의 관점에서 광선-캐스팅(ray-casting)에 의해 에이전트(1)에 제공될 수 있다.
[0086] 에이전트(1)가 단지 임의의 주어진 시간에 시각적 피드들 중 하나의 양상에만 포커싱할 수 있도록 주의의 인간-유사 모델이 구현될 수 있다. 따라서, 2개 이상의 맵들에 걸친 단일 돌출 구역은 한 순간에 주의를 위해 선택된다: 그것이 주의 스위칭(attentional switching)으로 나타날 때, 2개 이상의 시각적 필드들은 2개의 부분들을 갖는 단일 시각적 필드로 여겨질 수 있다. 특정 시각적 피드들이 다른 시각적 피드들보다 더 돌출된 것으로 결정되도록 가중치가 전체적으로 시각적 피드들에 적용될 수 있다.
[0087] 에이전트가 사용자가 참조하고 있는 아이템들을 로케이팅시키는 것을 보조하기 위해, 돌출 맵들이 구두적 큐들에 적용될 수 있다. 예컨대, "좌", "우", "위", "아래"와 같은 키워드들은 시각적 피드의 대응하는 구역들을 돌출되게 강조하는 "구두적 큐" 돌출 맵에 맵핑될 수 있다. 구두적 큐 돌출 맵은 공동 주의 및 인터랙션을 가능하게 하기 위해 위에서와 같이 다른 돌출 맵들과 조합될 수 있다. 예컨대, 사용자(3)가 "좌측 버튼"이라고 말하는 경우, 구두적 큐 돌출 맵은 스크린의 좌측 절반을 강조할 수 있다. 그런 다음, 이것은 버튼들을 검출하는 오브젝트 돌출 맵과 조합되어, 가장 돌출된 것으로 좌측에 있는 버튼을 강조하고, 그에 따라 에이전트가 주의를 기울이는 버튼을 강조할 수 있다.
[0088] 도 22를 참조하면, 다수의 시각적 피드들로 구현된 시스템이 예시된다. 시스템은 2개의 시각적 스트림들(3770, 3775)로부터 다수의 하위-레벨 피처들(3780)을 추출한다. 그런 다음, 중심-서라운드 필터(centre- surround filter)(3740)가 각각의 맵에 적용되어, 피처-특정 돌출 맵들을 도출한다. 이러한 맵들로부터, 피처 맵들(3725)이 생성되고, 특정 피처들(3720)에 대한 맵들의 조합들이 생성된다. 예컨대, 사용자의 얼굴 또는 사용자의 주변들. 그런 다음, 조합된 돌출 맵(3710)이 개별 돌출 또는 피처 맵들로부터 생성된다. 이러한 피처-특정 맵들이 가중 합계로 조합되어, 피처-독립적 돌출 맵(3710)을 생성한다. 그런 다음, 시스템은 주의를 기울일 구역으로서 돌출 맵(3710)에서 가장 액티브한 로케이션을 선택하는 '승자 독점'(WTA) 동작을 적용한다. 카메라 피드들 이외에, 사운드 피드들 또는 다른 피드들이 시스템으로 피드되어, 피처 맵들(3625, 3725)을 생성할 수 있다. 일 실시예에서, 턴 테이킹 피처 맵의 포커스가 그것의 턴이 누군지에 의존하도록 턴 테이킹 피처 맵이 시스템에 통합될 수 있다. 이러한 턴 테이킹 맵은 턴 테이킹과 관련된 돌출 맵들에서 바이어스(bias)를 생성한다.
인터랙션들의 예들
[0089] 도 12는 에이전트가 웹페이지와 사용자 인터랙션을 가능하게 하는 것에 대한 스크린샷을 도시한다. 웹페이지는 몇몇 메뉴 아이템들, 검색 바 및 네비게이션 버튼을 포함하는 공유 디지털 컨텐츠를 포함한다. 사용자에 대해, 에이전트(1)는 공유 디지털 컨텐츠 앞에 포지셔닝된다. 에이전트(1)는 공유 디지털 컨텐츠(5)에 대한 지각 인식을 갖는다. 따라서, 에이전트(1)는 사용자와의 인터랙션의 일부로서 상이한 컨텐츠 아이템들을 지칭하거나 또는 이들을 가리킬 수 있다. 에이전트(1)는 사용자(3)와의 대화에 참여하여, 사용자가 다음으로 네비게이션하기를 희망하는 것을 확인할 수 있다. 에이전트(1)는 사용자가 관심을 표시한 디지털 컨텐츠 아이템을 바라보기 위해 돌아서서, 메뉴 컨텐츠 아이템이 링크된 URL로의 네비게이션을 트리거할 수 있다. 에이전트는 특정 컨텐츠 아이템을 가리키고, 마치 이들이 아이템을 클릭하고 있는 것처럼 시각적으로 그것을 누를 수 있다.
[0090] 도 13은 에이전트(1)가 공유 디지털 컨텐츠(5) 뒤에 로케이팅된 것에 대한 스크린샷들을 도시한다. 도시된 예는 사용자들이 이용가능한 것들로부터 선택할 몇몇 신용 카드들을 보여주는 은행의 웹사이트이다. 에이전트(1)는 사용자와 대화할 수 있고, 사용자가 공유 디지털 컨텐츠(5)인 도시된 신용 카드들 중 임의의 것에 대해 더 많은 정보를 원하는지를 질문할 수 있다. 공유 디지털 컨텐츠 아이템들이 추가적 정보에 대한 링크를 트리거하는 클릭가능한 HTML 오브젝트들이므로, 사용자는 공유 디지털 컨텐츠 아이템들(신용 카드들) 중 하나를 직접적으로 클릭할 수 있다. 대안적으로, 사용자는 에이전트(1)에게 신용 카드들 중 하나에 대한 추가적 정보를 제공하도록 요청할 수 있다. 에이전트(1)는 공유 디지털 컨텐츠(5)를 표현하는 개념적 오브젝트들에 대한 지각을 갖고, 그에 따라 인터랙션 모듈을 통해 에이전트(1)에 제공되는 정보로부터 사용자가 관심있는 신용 카드를 확인할 수 있다. 사용자가 신용 카드를 클릭하는 것 대신에, 에이전트(1)는 그 신용 카드를 표현하는 개념적 오브젝트에 대한 액션을 트리거할 수 있으며, 이는 차례로 인터랙션 모듈을 통해 웹사이트 상에서의 아이템의 클릭으로 번역된다. 신용 카드들이 클릭가능한 이미지들이므로, 에이전트(1)는 이미지로부터의 픽셀 정보를 사용하여 이미지들의 색상을 확인할 수 있고, 그에 따라 사용자(3)가 색상별로 그들의 관심 아이템을 참조하고 있는지를 이해할 수 있다. 도 13b는 디지털 컨텐츠 아이템이 사용자에 의해 선택된 후의 웹페이지를 도시한다. 에이전트(1)는 예컨대, 디지털 컨텐츠 제공자 데이터베이스를 통해 디지털 컨텐츠 아이템과 관련된 메타 데이터에 액세스하여, 그 컨텐츠 아이템에 대한 더 많은 정보를 사용자에게 알릴 수 있다. 추가적으로, 그러한 정보는 AVE에서 사용자(도시되지 않음)에게 디스플레이될 수 있다.
[0091] 도 14는 에이전트(1)가 사용자가 적합한 신용 카드를 찾도록 돕기 위해 인터랙티브 방식 메뉴(공유 디지털 컨텐츠(5))를 통해 사용자를 안내하는 것을 도시한다. 다시, 사용자는 메뉴 아이템을 직접적으로 클릭할 수 있거나, 또는 사용자가 에이전트(1)와 대화할 수 있고, 에이전트(1)는 사용자를 대신하여 디지털 컨텐츠 아이템들을 클릭할 수 있다. 예컨대, 에이전트(1)는 사용자에게 "당신은 당신의 카드를 얼마나 자주 사용하시겠습니까?"라고 질문할 수 있다. 사용자는 다음과 같은 3개의 디스플레이된 메뉴 옵션들 중 하나를 판독할 수 있다: "항상", "가끔", 또는 "잘 모르겠다". 에이전트(1)는 디지털 컨텐츠 아이템들 상에 텍스트로서 사용자(3)의 발언(utterance)을 디지털 컨텐츠 아이템들 중 하나에 매칭할 것이고, 컨텐츠 아이템의 대응하는 개념적 오브젝트의 속성으로서 에이전트(1)에게 제공될 것이다. 사용자는 "잘 모르겠다" 대신에 "모름"과 같이 사전 결정된 텍스트와 약간 상이한 말을 발언할 수 있고, 에이전트(1)는 사용자가 선택하기를 희망하는 옵션을 추론할 수 있다. 도 14는 "잘 모르겠다"라는 옵션이 이미 선택된 것을 도시한다. 에이전트(1)는 "나의 명세서의 전체 금액"이라고 판독되는 메뉴 아이템 상에 터치(마우스 클릭에 대응함)하고 있는 중이다. 에이전트(1)는 에이전트가 터치하고 있는 디지털 컨텐츠 아이템을 직접 바라보고 있다. 컨텍스처 오브젝트를 터치하는 에이전트(1)는 인터랙션 모듈(16)을 통해 디지털 컨텐츠 아이템의 클릭을 트리거한다. 사용자는, 예컨대, 에이전트(1)에게 그들이 낮은 수수료를 원한다는 것을 알리기 위해, 메뉴를 순차적으로 살펴보지 않는 것으로 선택하지만 제1 세트의 옵션들을 스킵할 수 있다. 에이전트(1)는 그 옵션을 선택하고, 그런 다음, 이전 단계로부터의 정보에 대해 사용자에게 질문할 수 있다.
[0092] 도 15는, 에이전트(1)가 사용자가 자동차를 구매하는 것을 돕기 위해 웹사이트와 사용자 인터랙션을 가능하게 하는 것에 대한 스크린샷들의 시퀀스를 도시한다. 따라서, 에이전트(1)는 자동차로 걸어가 자동차의 피처들을 가리킬 수 있다. 자동차가 회전하거나 또는 포지션을 변경하는 경우, 에이전트(1)는 자동차의 동일한 양상을 계속 가리킬 수 있다. 도 15a는 에이전트(1)가 좌측으로부터 스크린 상으로 걷는 것을 도시한다. 웹사이트는 디지털 컨텐츠(4) 및 가상 자동차(1760)를 디스플레이하는 가상 쇼룸(1780)을 포함하는 최상부 메뉴를 포함한다. 가상 쇼룸은 구매가능한 아이템들의 3D 모델들을 디스플레이하도록 구성된다. 사용자(3)는 가상 쇼룸에서의 오브젝트들이 에이전트(1)의 가상 환경에 있으므로 가상 쇼룸에서의 오브젝트들과 직접적으로 인터랙션하지 못할 수 있다. 그럼에도 불구하고, 사용자(3)는 에이전트(1)가 에이전트(1)의 가상 환경에서 오브젝트들을 조작하도록 에이전트(1)와 통신함으로써 그러한 오브젝트들과 간접적으로 인터랙션할 수 있다. 예컨대, 사용자(3)는, 사용자(3)가 다른 각도로부터 아이템을 볼 수 있도록 에이전트(1)에게 아이템을 픽업하거나, 아이템을 조작하거나, 아이템의 색상을 변경하거나 또는 아이템을 회전하도록 요청할 수 있다. 도 15b는 에이전트(1)가 가상 쇼룸에 입장한 이후에 사용자(3)를 향하고, 사용자(3)가 관심있는 것을 알아내기 위해 사용자(3)와의 대화에 참여하는 것을 도시한다. 도 15c는 에이전트(1)가 가상 자동차(1750)를 향해 제스처를 취하는 것을 도시한다. 에이전트(1)가 에이전트(1)뿐만 아니라 스크린과 관련하여 자동차가 어디에 있는지에 대한 지각 인식을 가지므로, 에이전트(1)는 자동차의 가상 공간 좌표들을 향해 제스처를 취할 수 있다. 에이전트(1)가 D 가상 자동차를 포함하는 가상 환경에 위치되므로, 에이전트(1)는 자동차를 향해 걷고, 자동차의 다양한 피처들을 가리킬 수 있다(피처들 및 태그들의 좌표들과 같은 오브젝트 메타데이터에 의해 에이전트(1)에 정의됨). 에이전트(1) 및 자동차 둘 다가 동일한 3D 가상 환경에 있으므로, 자동차를 향한 에이전트(1)의 움직임은 스크린 상의 에이전트(1)의 "실세계" 사이즈를 적절하게 감소시키고, 인터랙션에 현실성을 추가한다. 도 15e는 에이전트(1)가 사용자(3)의 관심에 대해 사용자(3)에게 질문하기 위해 옵션들의 메뉴(2150)를 불러온 것을 도시한다. 도 15f는 에이전트(1)가 사용자(3)를 대신하여 메뉴 아이템을 선택하는 것을 도시한다. 에이전트(1)는 아이템을 터치하며, 이는 대응하는 디지털 컨텐츠 아이템의 클릭을 트리거한다. 도 15f는 자동차의 내부를 나타내는 이미지로의 네비게이션을 도시한다. 이제, 사용자의 뷰는 에이전트(1)의 관점에서 보이고, 에이전트(1)의 손이 보인다.
[0093] 도 16은 사용자 피드백에 의존하는 비-선형 인터랙션의 시퀀스들을 도시한다. 도 16a는 에이전트(1)가 2개의 구매 선택들 X 및 Y을 사용자에게 디스플레이하는 것을 도시한다. 다른 한편으로, 도 16b는, 사용자가 다른 옵션 Y를 선호하지만 100% 확신이 없음을 내포하는 피드백을 사용자로부터 수신한 이후에, 에이전트(1)가 부드럽게/잠정적으로 옵션 Y를 옆에 배치하는 것을 도시한다. 옵션 Y가 사용자에 의해 절대적으로 원하지 않는다는 피드백을 사용자로부터 수신한 이후에, 도 16c는 에이전트(1)가 옵션을 옆으로 치움으로써 옵션을 제거할 수 있는 것을 도시한다. 도 16d는 에이전트(1)가, 사용자가 아이템 Y를 고려하여 리턴하기를 원하는지 여부에 대해 사용자가 결정할 때까지 기다리는 동안 예상 표현을 갖는 것을 도시한다. 도 16e는 에이전트(1)가 아이템 Y를 스크린으로 리턴하는 것을 도시한다.
[0094] 에이전트는 사용자가 제3 자 소프트웨어를 사용하여 특정 작업을 수행하는 방법을 학습하는 것을 보조할 수 있다. 예컨대, 포토샵과 같은 애플리케이션에서, 에이전트는 사용자와 대화할 수 있고, 인터페이스 상에서 제어가능한 디지털 컨텐츠 아이템들과 물리적으로 인터랙션함으로써 애플리케이션의 인터페이스를 네비게이션하는 방법을 보여줄 수 있다. 사용자 인터페이스를 동작시키거나 또는 네비게이션하는 방법의 단계들과 함께 일반적 알고리즘이 에이전트에 제공될 수 있다. 에이전트는 작업들의 지식 라이브러리를 포함할 수 있고, 각각은 액션들의 시간적 시퀀스와 연관되며, 이는 돌출 아이템(예컨대, 심볼 또는 텍스트)을 찾고, 그 아이템에 대해 액션을 수행하고(예컨대, 클릭), 그런 다음 다음 단계로 진행함으로써 정의될 수 있다. 에이전트는, UI 인터랙션 작업들에 대한 에이전트의 지식 라이브러리에 저장된 액션을 수행하도록 사용자에 의해 요청될 때 그러한 단계들을 수행하기 위해 인간 입력 디바이스(예컨대, 마우스/터치 입력)를 제어할 수 있다.
[0095] 에이전트는 사용자가 온라인 쇼핑을 위한 구매 선택을 수행하는 것을 보조할 수 있다. 에이전트는 전자 상거래 플랫폼에 임베딩되어, 아이템들을 통해 사용자를 안내하는 것을 도울 수 있다. 일 실시예에서, 에이전트는 인터랙션을 안내하기 위해 사용자의 프로파일에 대한 정보를 수신할 수 있다. 예컨대, 사용자는 전자 상거래 시스템에 대한 참여 이력(예컨대, 이전 구매들)으로부터 생성된 프로파일을 가질 수 있다. 더 광범위한 추천 시스템에 저장된 사용자의 프로파일 및 에이전트는 추천 시스템을 사용하여 아이템들을 사용자에게 적절하게 추천할 수 있다. 에이전트는 사용자의 전자 상거래 UI를 네비게이션함으로써 사용자를 대신하여 제품을 구매할 수 있다. 우발적이거나 또는 의도치 않은 구매들은 구매를 진행하기 위해 구두적으로 확인하는 동안 에이전트가 사용자의 신체 언어를 바라봄으로써 최소화될 수 있다. 예컨대, 에이전트가, 사용자가 "예, 그것을 구매하세요"라고 말하면서 고개를 끄덕이고 문제의 제품을 바라보는 것을 보는 경우, 에이전트는 사용자의 욕구에 대한 이해를 확신할 수 있고, 아이템의 구매를 진행할 수 있다.
[0096] 에이전트는 최종 사용자 컴퓨팅 디바이스(개인 어시스턴트(personal assistant))의 사용자를 위해, 작업들 또는 서비스들을 수행하도록 구성된 컴퓨터 프로그램을 포함할 수 있다. 사용자를 대신하여 에이전트에 의해 수행될 수 있는 작업들의 예들은, 사용자-특정된 사람에게 전화를 거는 것, 사용자-특정된 애플리케이션을 시작하는 것, 사용자-특정된 전자 메일 또는 텍스트 메시지를 사용자-특정된 수신측에 전송하는 것, 사용자-특정된 음악을 재생하는 것, 사용자 캘린더 상에 미팅 또는 다른 이벤트를 스케줄링하는 것, 사용자-특정된 로케이션으로의 길 찾는 것, 사용자-특정된 스포츠 이벤트와 연관된 스코어를 획득하는 것, 사용자-특정된 컨텐츠를 소셜 미디어 웹 사이트에 포스팅하거나 또는 마이크로블로깅 서비스하는 것, 사용자-특정된 리마인더들 또는 메모들을 기록하는 것, 날씨 보고를 획득하는 것, 현재 시간을 획득하는 것, 사용자-지정된 시간에 알람을 세팅하는 것, 사용자-특정된 회사에 대한 주식 가격을 획득하는 것, 근처 상용 시설을 찾는 것, 인터넷 검색을 수행하는 것 등을 포함할 수 있다.
[0097] 일 실시예에서, 에이전트는 활동에서 사용자와 함께 플레이하거나 또는 사용자와 협력할 수 있다. 예컨대, 에이전트 및 사용자는 도면 상에서 함께 협력할 수 있다. 도면 자체가 공유 환경에 있을 수 있다. 사용자가 공유 공간 상에 사과와 같은 오브젝트를 도시하는 경우, 에이전트는 그 오브젝트를 사과로서 인식하고 사과에 대해 말할 수 있다. 또는 그것은 사과를 적색으로 색칠하는 것과 같이 사과에 그리기 선들 또는 시각적 피처들을 추가할 수 있다. 다른 실시예에서, 에이전트 및 사용자는 음악 재생과 같은 일부 다른 활동에 대해 협력하기 위해 공유 환경에서 인터랙션할 수 있다. 공유 환경은 실로폰과 같은 가상 악기를 포함할 수 있다. 사용자는 실로폰 키들을 칠 수 있고, 그에 따라 에이전트는 이에 반응할 수 있다. 에이전트는 그것의 공유 공간 상에서 이동하는 아이템들을 인지할 수 있고, 공유 공간 상에서 오브젝트들에 반응할 수 있다.
[0098] 인터넷, 애플리케이션, 운영 시스템 또는 임의의 다른 컴퓨터 시스템을 네비게이션하는 것은 에이전트 및 사용자에 의해 공동-주도(co-driven)될 수 있다. 웹에 액세스하는 사용자들은 검색하거나 또는 브라우징(새로운 또는 관심있는 것을 찾음)할 수 있다. 에이전트(1)는 웹 브라우징을 가능하게 하고, 질의-기반 리트리브가 아닌 실시간 활동으로 웹-브라우징을 변환할 수 있다. 일 실시예에서, 에이전트는 사용자가 인터랙티브 방식 대화를 사용하여 웹 검색하는 것을 보조한다. 에이전트는 전통적 검색 엔진들(이를테면, Google)의 결과들인 것처럼 사용자에게 디스플레이되지 않은 다른 검색 도구 "인 더 백엔드(in the back end)"를 사용할 수 있다. 전통적 추천 시스템들에서, 사용자는 웹 페이지들의 공간을 브라우징하는 것으로부터 검색 어시스턴트와 명시적으로 인터랙션하는 것에 이르기까지 정신적 "컨텍스트 스위치(context switch)"를 수행해야 한다. 본원에서 설명된 바와 같은 구현된 에이전트는, 사용자의 브라우징 활동에 대한 생각의 흐름이, 독립적 질의 인터페이스로 스위칭할 필요성에 의해 인터럽트되지 않는 것을 가능하게 한다. 에이전트가 브라우징 활동을 지속적으로 감시하고 있으므로, 사용자의 브라우징 활동에서 관련 페이지들이 발생할 때 에이전트의 추천들이 실시간으로 제공된다. 에이전트는 사용자에게 인터넷 웹 페이지를 네비게이션하거나 또는 이들에 대한 액션을 수행하는 방법을 보여줄 수 있다. 에이전트는 사용자에게 디스플레이되지 않는 링크 또는 체인을 "프리뷰"할 수 있고, 그에 따라 "데드 엔드(dead end)들"인 링크들(링크 텍스트를 판독하거나 또는 링크 이미지를 보는 측면에서 그들이 관심있을 수 있어 보이지만 그렇지 않은 것으로 밝혀진 링크들) 또는 정원 경로(garden path)가 경로를 계속 따라가기에 충분한 인센티브(incentive)를 제공하지만 궁극적으로 데드 엔드를 초래하는 링크들의 시퀀스인 것에 대해 사용자들에게 경고할 수 있다. 일 실시예에서, 에이전트(1)는 일반적 웹 언어들에 대한 구문 이해를 제공받을 수 있고, 사용자가 온라인 정보를 검색하는 것을 보조할 수 있다. 사용자는 에이전트에게 스크롤 업 또는 다운하거나, 특정 검색 링크를 클릭하거나, 브라우저에 URL을 입력하거나, 이전 페이지로 돌아가거나, 또는 일부 다른 방식으로 네비게이션하도록 요청할 수 있다.
[0099] 에이전트는 사용자가 양식을 작성하도록 도울 수 있다. 에이전트가 사용자의 프로파일을 갖고 있는 경우, 에이전트는 에이전트가 알고 있는 사용자에 대한 세부사항들을 자동으로 작성할 수 있다. 에이전트는 에이전트가 확실하지 않은 필드에 대해 사용자에게 질문할 수 있다. 양식이 성공적으로 입력되지 않은 경우(예컨대, 사용자가 패스워드에 대한 제약을 놓친 경우), 에이전트는 에러 메시지로부터 위반된 제약을 식별할 수 있고, 사용자에게 그것을 시정(rectify)하도록 요청할 수 있다. 에이전트는 다시 입력해야 하는 필드를 자동으로 네비게이션하고 그리고/또는 그 필드를 향해 제스처를 취할 수 있다.
[0100] 공유 환경은 에이전트(1)에 의해 사용자(3)의 튜터링을 위한 캔버스로서 사용될 수 있다. 예컨대, 에이전트(1)는 사용자(3)에게 공유 환경에서 수학식을 풀고 모든 작업을 보여주도록 요청할 수 있다. 에이전트(1)는 문자 인식을 사용하여, 사용자가 작성하는 숫자들 및 단계들을 지각할 수 있다. 에이전트(1)는 이를테면, 작업의 상이한 라인들을 참조하거나, 실수들을 지우거나 또는 밑줄 긋거나, 또는 공유 캔버스에 추가적 작업을 추가함으로써, 공유 캔버스 상의 작업에 대해 대화에 참여할 수 있고 사용자와 인터랙션할 수 있다. 실제 과목들에서, 에이전트는 가상 또는 증강 현실 컨텍스트에서 사용자의 학습을 보조할 수 있다. 예컨대, 의료 훈련을 가능하게 하기 위해, 에이전트(1)는 누군가의 앞에서 도구를 사용하여 도구를 그들에게 전달하고, 그들이 스스로 시도하게 할 수 있다.
이점들
[0101] 인간 컴퓨터 인터랙션의 초기 연구는 오브젝트들 및 액션들이 인간 사용자들에게 더 직관적인 실세계에서의 오브젝트들 및 액션들을 닮고/미러링하는 컴퓨테이셔널 디바이스 인터페이스들; "모델 세계들"과 인터랙션하는 이점을 강조했다. 사용자-인터페이스들에 대한 인공 에이전트들의 전통적 애플리케이션은 숨겨진 손들의 작업들로 인해 세계가 변경되는 "마법 세계(magic world)들"을 초래했다. 본원에서 설명된 실시예들은 볼 수 있는 도움이 되는 손들로 인해 세계가 변경되는 인터페이스들을 인에이블(enable)할뿐만 아니라, (에이전트의 응시 방향/눈-방향/신체-언어를 통해) 에이전트들에 의해 수신된 입력 및 에이전트들의 정신적 상태에 대한 정보를 효율적 방식으로 시각적으로 디스플레이함으로써 인간 컴퓨터 인터랙션 및 인공 지능을 확장한다. 사용자가 인터페이스 엘리먼트들이 "스스로 이동"하는 것을 보는 것 대신에, 사용자는 이제 인터페이스 조작으로 이어지는 에이전트의 사고 프로세스들 및 액션들을 시각화할 수 있다. 사용자는 에이전트의 자율적 액션들을 직접적으로 관측할 수 있고, 에이전트는 인터페이스에서 사용자에 의해 자율적으로 취해진 액션들을 관측할 수 있다.
[0102] "배경" 또는 "백-엔드(back-end)"로서가 아닌 사용자 인터페이스에서 직접적으로 동작하는 구현된 에이전트들은 사용자들이 소프트웨어를 어시스턴트와 같이 역할을 하는 것으로서 지각할 정도를 증가시킨다. 사용자가 에이전트의 액션들을 "내가 스스로 할 수 있는" 액션들로서 지각하는 경우, 사용자는 어시스턴트의 역할에서 에이전트를 개념화하려고 할 수 있다.
[0103] 전통적 커맨드-라인 또는 메뉴-기반 인터페이스에서, 사용자는 입력을 수행하고, 그것을 입력하고, 시스템은 입력을 수락하고, 일부 액션을 컴퓨팅하고, 그 결과를 디스플레이하고, 다음 입력을 기다린다. 사용자가 입력을 준비하는 동안 시스템은 아무 작업도 하지 않고 시스템이 실행되는 동안 사용자는 인터페이스에서 아무 작업도 하지 않는다. 본원에서 설명된 실시예들은 독립적으로 그리고 동시에 실행될 수 있는 에이전트를 제공한다.
[0104] 본원에서 설명된 방법들은, 사용자들이, 계속된 그리고/또는 안내된 인간-머신 인터랙션 프로세스를 통해 컴퓨팅 디바이스를 동작시키는 작업을 수행하는 것을 보조한다. 자율적 에이전트의 능력들을 전통적 입력 디바이스들 또는 방법들을 통해 에뮬레이션(emulate)될 수 있는 액션들로 제한하는 것은, 에이전트가 쇼트컷(shortcut)들을 취할 수 없으므로, 에이전트가 사용자를 안내하는 것을 가능하게 할 수 있다.
[0105] 본 발명의 실시예들은 레거시 애플리케이션 프로그램들(이제 일반적으로 사용되지 않는 입력/출력 디바이스들 및 사용자 인터페이스들과 통신하도록 작성됨)과 본원에서 설명된 바와 같은 구현된 자율적 에이전트를 포함하는 사용자-인터페이스들 사이를 유용하게 번역할 수 있어, 레거시 프로그램들과 연관된 로직 및 데이터는 새로운 인터랙션 컨텍스트에서 계속 사용될 수 있다.
[0106] 본원에서 설명된 실시예들은 출력들에서 사전-기록된 또는 사전 정의된 애니메이션들 및/또는 대화 및 런타임 생성된 원하는 거동들 간의 동기화에 대한 필요성을 회피한다. 따라서, 고정된 길이의 구두적 그리고/또는 비구두적 세그먼트들은 런타임 상황들에 맵핑될 필요가 없고, 가변 및/또는 동적 디지털 컨텐츠에 맞게 공간적으로 또는 시간적으로 동기화될 필요가 없다. 신경거동 모델을 포함하는 에이전트 시뮬레이션이 둘 다 구동하므로 구두적 및 비구두적 거동을 동기화할 필요가 없다.
[0107] 컴퓨터 비전을 통한 에이전트 지각을 참조하여 설명된 실시예들은 유용한 정보를 자동으로 추출하고 디지털 컨텐츠와 인터랙션하기 위해 디지털 컨텐츠를 볼 때 발생하는 인간 프로세싱을 시뮬레이션하기 위해 DOM 파싱, 컴퓨터 비전 및/또는 자연어 프로세싱의 기법들을 활용할 수 있다. 에이전트들은 조작되는 오브젝트와 관련되고 호환되는 액션들을 구현하는 인터랙션 모듈에 메시지들 또는 요청들을 전송할 수 있다. 이러한 액션들은, 에이전트가, 추상화된 방식으로 모든 타입들의 브라우저 호스팅된 컨텐츠를 제어하고 이와 인터랙션할 수 있게 한다. 따라서, 사용자-머신 인터랙션은 응용 지식과 별개로 대화 지식을 유지할 수 있는 방식으로 모델링된다. 이 기회는 인터랙션 시스템을 애플리케이션 도메인으로부터 새로운 애플리케이션 도메인으로 이동시키는 비용을 크게 감소시킨다. 에이전트 및 아키텍처의 엄격한 시간적 모델에 의해 UI 인터랙션의 런타임 성능 & 타이밍 제어가 가능하다. 사용자 입력들에 대한 에이전트들의 실시간 응답은 액션들의 적시 실행(on-time execution) 동안 시스템의 각각의 부분의 레이턴시를 최소한으로 유지한다.
[0108] 에이전트들이 시뮬레이션된 환경 내에서 아이템들과 인터랙션할 수 있는 이점은 이것이 더 자연적인 인터랙션을 생성하고 에이전트(1)를 사용자의 눈들에 생생하게 한다는 것이다. 예컨대, 에이전트가 인터랙션하는 컨텐츠 아이템들이 질량 및 다른 물리적 속성들을 갖도록 시뮬레이션될 수 있다. 디지털 컨텐츠 제공자에 의해 제공된 엘리먼트들은 여전히 디지털 컨텐츠 제공자에 의해 정의된 바와 같이 본질적으로 렌더링된다.
[0109] 개념적 오브젝트들에 어포던스들을 제공하는 것은, 에이전트들이 상당한 인지 프로세싱/이미지 인식/추론을 수행할 필요없이 에이전트가 이용할 수 있는 액션들을 지각할 수 있게 하여, 그에 따라 컴퓨테이셔널 프로세싱 전력 및/또는 시간을 감소시킬 수 있다. 인터랙션 모듈을 사용하는 이점들은, 그것이 상이한 컨텍스트들 또는 환경들에서 에이전트가 수행가능한 인터랙션의 스케일링가능한 커스터마이즈화를 가능하게 하고, 컴퓨터 인터페이스들이 증가된 복잡성의 기술을 수용하는 것을 가능하게 한다는 것이다.
해석
[0110] 설명된 방법들 및 시스템들은 임의의 적합한 전자 컴퓨팅 시스템에서 이용될 수 있다. 아래에서 설명된 실시예들에 따르면, 전자 컴퓨팅 시스템은 다양한 모듈들 및 엔진들을 사용하여 본 발명의 방법론을 이용한다.
[0111] 전자 컴퓨팅 시스템은 적어도 하나의 프로세서, 하나 이상의 메모리 디바이스들 또는 하나 이상의 메모리 디바이스들에 연결하기 위한 인터페이스, 시스템이 하나 이상의 사용자 또는 외부 시스템들로부터 명령들을 수신하고 이들을 동작시키는 것을 가능하게 하기 위해 외부 디바이스들에 연결하기 위한 입력 및 출력 인터페이스들, 다양한 컴포넌트들 간의 내부 및 외부 통신들을 위한 데이터 버스, 및 적합한 전원 공급 장치를 포함할 수 있다. 추가로, 전자 컴퓨팅 시스템은, 외부 및 내부 디바이스들과 통신하기 위한 하나 이상의 통신 디바이스들(유선 또는 무선), 및 하나 이상의 입력/출력 디바이스들, 이를테면, 디스플레이, 포인팅 디바이스, 키보드 또는 프린팅 디바이스를 포함할 수 있다.
[0112] 프로세서는 메모리 디바이스 내에 프로그램 명령들로서 저장된 프로그램의 단계들을 수행하도록 배열된다. 프로그램 명령들은 본원에서 설명된 본 발명을 수행하는 다양한 방법들이 수행되는 것을 가능하게 한다. 프로그램 명령들은 예컨대, C-기반 언어 및 컴파일러와 같은 임의의 적합한 소프트웨어 프로그래밍 언어 및 툴킷을 사용하여 개발 또는 구현될 수 있다. 추가로, 프로그램 명령들은, 예컨대, 컴퓨터 판독가능한 매체 상에 저장되는 것과 같이, 이들이 메모리 디바이스에 전달되거나 또는 프로세서에 의해 판독될 수 있도록 임의의 적합한 방식으로 저장될 수 있다. 컴퓨터 판독가능한 매체는 예컨대, 솔리드 스테이트 메모리, 자기 테이프, 컴팩트 디스크(CD-ROM 또는 CD-R/W), 메모리 카드, 플래시 메모리, 광 디스크, 자기 디스크 또는 임의의 다른 적합한 컴퓨터 판독가능한 매체와 같은 프로그램 명령들을 유형적으로 저장하기 위한 임의의 적합한 매체일 수 있다.
[0113] 전자 컴퓨팅 시스템은 관련 데이터를 리트리브하기 위해 데이터 저장 시스템들 또는 디바이스들(예컨대, 외부 데이터 저장 시스템들 또는 디바이스들)과 통신하도록 배열된다.
[0114] 본원에서 설명된 시스템은 본원에서 설명된 다양한 기능들 및 방법들을 수행하도록 배열된 하나 이상의 엘리먼트들을 포함한다는 것이 이해될 것이다. 본원에서 설명된 실시예들은, 시스템의 엘리먼트들을 구성하는 다양한 모듈들 및/또는 엔진들이 기능들이 구현되는 것이 가능하도록 상호 연결될 수 있는 방법의 예들을 독자에게 제공하는 것을 목표로 한다. 추가로, 설명의 실시예들은, 시스템과 관련하여 상세하게, 본원에서 설명된 방법의 단계들이 수행될 수 있는 방법을 설명한다. 다양한 모듈들 및/또는 엔진들에 의해 다양한 데이터 엘리먼트들이 상이한 단계들에서 프로세싱되는 방법을 독자에게 표시하기 위해 개념적 다이어그램들이 제공된다.
[0115] 모듈들 또는 엔진들의 배열 및 구성이 그에 따라 시스템 및 사용자 요건들에 따라 구성될 수 있어, 다양한 기능들이 본원에서 설명된 것과 상이한 모듈들 또는 엔진들에 의해 수행될 수 있고, 특정 모듈들 또는 엔진들이 단일 모듈들 또는 엔진들로 조합될 수 있다는 것이 이해될 것이다.
[0116] 설명된 모듈들 및/또는 엔진들은 임의의 적합한 형태의 기술을 사용하여 구현될 수 있고, 명령들과 함께 제공될 수 있다는 것이 이해될 것이다. 예컨대, 모듈들 또는 엔진들은 임의의 적합한 언어로 작성된 임의의 적합한 소프트웨어 코드를 사용하여 구현되거나 또는 생성될 수 있으며, 여기서 코드는 그런 다음, 임의의 적합한 컴퓨팅 시스템 상에서 실행될 수 있는 실행가능한 프로그램을 생성하도록 컴파일링된다. 대안적으로 또는 실행가능한 프로그램과 함께, 모듈들 또는 엔진들은 하드웨어, 펌웨어 및 소프트웨어의 임의의 적합한 혼합물을 사용하여 구현될 수 있다. 예컨대, 모듈들의 부분들은 ASIC(application specific integrated circuit), SoC(system-on-a-chip), FPGA(field programmable gate arrays) 또는 임의의 다른 적합한 적응가능한 또는 프로그래밍가능한 프로세싱 디바이스를 사용하여 구현될 수 있다.
[0117] 본원에서 설명된 방법들은 설명된 단계들을 수행하도록 구체적으로 프로그래밍된 범용 컴퓨팅 시스템을 사용하여 구현될 수 있다. 대안적으로, 본원에서 설명된 방법들은 데이터 분류 및 시각화 컴퓨터, 데이터베이스 질의 컴퓨터, 그래픽 분석 컴퓨터, 데이터 분석 컴퓨터, 제조 데이터 분석 컴퓨터, 비즈니스 인텔리전스 컴퓨터(business intelligence computer), 인공 지능 컴퓨터 시스템 등을 사용하여 구현될 수 있으며, 여기서 컴퓨터는 특정 필드와 연관된 환경으로부터 캡처된 특정 데이터에 대한 설명된 단계들을 수행하도록 구체적으로 구성되었다.
[0118] 개념적 오브젝트들에 어포던스들을 제공하는 것은, 에이전트들이 상당한 인지 프로세싱/이미지 인식/추론을 수행할 필요없이 에이전트가 이용할 수 있는 액션들을 지각할 수 있게 한다.
[0119] 인터랙션 모듈(16)을 사용하는 이점들은, 그것이 상이한 컨텍스트들 또는 환경들에서 에이전트가 수행가능한(facilitated) 인터랙션의 스케일링가능한 커스터마이즈화를 가능하게 하고, 컴퓨터 인터페이스들이 증가된 복잡성의 기술을 수용하는 것을 가능하게 한다는 것이다.
요약
[0120] 일 양상에서, 전자 컴퓨팅 디바이스의 최종 사용자 디스플레이 디바이스 상에서, 구현된 인공 에이전트와 디지털 컨텐츠 간의 인터랙션을 시각화하기 위한 방법이 제공되고, 방법은, 가상 환경 좌표들을 갖는 에이전트 가상 환경을 생성하는 단계; 에이전트 가상 환경에서 상기 디지털 컨텐츠를 시뮬레이션하는 단계; 에이전트 가상 환경에서 구현된 인공 에이전트를 시뮬레이션하는 단계; 구현된 인공 에이전트가 시뮬레이션된 디지털 컨텐츠와 인터랙션하는 것을 가능하게 하는 단계; 및 구현된 인공 에이전트와 디지털 컨텐츠 간의 인터랙션을 최종 사용자 디스플레이 디바이스 상에 디스플레이하는 단계를 포함한다.
[0121] 일 실시예에서, 가상 환경은 3D 가상 공간이고, 가상 환경 좌표들은 3D 좌표들이다. 선택적으로, 인터랙션은 디지털 컨텐츠 아이템을 향해 이동하거나 또는 디지털 컨텐츠 아이템을 바라보는 것이다. 선택적으로, 인터랙션은 디지털 컨텐츠 아이템을 향해 제스처를 취하거나 또는 멀티-조인트 이펙터를 움직임으로써 디지털 컨텐츠 아이템을 터치하는 것이다. 선택적으로, 멀티-조인트 이펙터의 움직임은 역 운동학들을 사용하여 시뮬레이션된다. 선택적으로, 멀티-조인트 이펙터의 움직임은 타겟 포지션들에 대한 조인트 포지션들의 뉴럴 네트워크 기반 맵핑을 사용하여 시뮬레이션된다.
[0122] 다른 양상에서, 구현된 인공 에이전트를 통해 전자 컴퓨팅 디바이스 상에서 디지털 컨텐츠와 인터랙션하기 위한 방법이 제공되며, 방법은, 전자 컴퓨팅 디바이스 상에서 사용자 인터페이스를 통해 사용자에게 디지털 컨텐츠를 디스플레이하는 단계; 가상 환경 좌표들을 갖는 에이전트 가상 환경을 생성하는 단계; 에이전트 가상 환경에서 디지털 컨텐츠를 시뮬레이션하는 단계; 에이전트 가상 환경에서 구현된 인공 에이전트를 시뮬레이션하는 단계; 구현된 인공 에이전트가 시뮬레이션된 디지털 컨텐츠와 인터랙션하는 것을 가능하게 하는 단계; 사용자 인터페이스 상에서 인터랙션을 디지털 컨텐츠의 액추에이션 또는 조작으로 번역하는 단계; 및 구현된 인공 에이전트를 디지털 컨텐츠 위에 오버레이하고, 사용자 인터페이스 상에서 디지털 컨텐츠 및 오버레이된 구현된 인공 에이전트를 디스플레이함으로써 인터랙션을 디스플레이하는 단계를 포함한다.
[0123] 선택적으로, 가상 환경은 3D 가상 공간이고, 가상 환경 좌표들은 3D 좌표들이다. 선택적으로, 디지털 컨텐츠는 에이전트 가상 환경에서 픽셀로서 에이전트 가상 환경에서 시뮬레이션되며, 각각의 픽셀은 에이전트 가상 환경에서 좌표 로케이션을 갖는다. 선택적으로, 시뮬레이션된 구현된 인터랙션은 디지털 컨텐츠에 대응하는 픽셀의 좌표들과 에이전트의 신체 사이의 교차점이다. 선택적으로, 시뮬레이션된 구현된 인터랙션을 번역하는 것은 구현된 인터랙션을 입력 디바이스 이벤트에 맵핑하는 것을 포함한다. 선택적으로, 인간 입력 디바이스 이벤트는 마우스 이벤트, 키보드 이벤트 또는 터치스크린 이벤트이다.
[0124] 또 다른 양상에서, 전자 컴퓨팅 디바이스와의 인터랙션을 가능하게 하기 위한 시스템이 제공되며, 시스템은, 적어도 하나의 프로세서 디바이스; 적어도 하나의 프로세서와 통신하는 적어도 하나의 메모리 디바이스; 구현된 에이전트를 시뮬레이션하도록 배열된, 프로세서에 의해 실행가능한 에이전트 시뮬레이터 모듈; 디지털 컨텐츠를 구현된 에이전트에 의해 지각될 수 있는 개념적 오브젝트들로 번역하고, 구현된 에이전트가 디지털 컨텐츠와 인터랙션하는 것을 가능하게 하도록 배열된, 프로세서에 의해 실행가능한 인터랙션 모듈; 디지털 컨텐츠, 구현된 에이전트 및 구현된 에이전트와 디지털 컨텐츠의 인터랙션을 렌더링하도록 배열된, 프로세서에 의해 실행가능한 렌더링 모듈을 포함한다.
[0125] 선택적으로, 인터랙션 모듈은 개념적 오브젝트에 대한 구현된 에이전트 액션들을 디지털 컨텐츠에 대한 변경들로 번역하도록 추가로 배열된다. 선택적으로, 인터랙션 모듈은 개념적 오브젝트들을 구현된 에이전트에 대한 개념적 오브젝트들의 로케이션을 표현하는 좌표들과 연관시킨다. 선택적으로, 인터랙션 모듈은 개념적 오브젝트들을 대응하는 디지털 컨텐츠의 하나 이상의 어포던스(affordance)들과 연관시킨다. 선택적으로, 컴퓨팅 디바이스는 웹 컨텐츠로 통합된 JavaScript 코드인 웹 컨텐츠 및 인터랙션 모듈이다. 또 다른 양상에서, 전자 컴퓨팅 디바이스 상에서 생성된 가상 환경에 위치된 구현된 에이전트가 제공되며, 구현된 에이전트는, 실세계 환경으로부터 입력을 수신하고; 가상 환경으로부터 입력을 수신하고; 그리고 실세계 환경 및 가상 환경으로부터의 입력에 의존하여 거동하도록 프로그래밍되며, 실세계 환경 및 가상 환경으로부터 수신된 입력은 실세계 환경 및 가상 환경 둘 다로부터 지속적 피드백 루프들을 통해 수신된다.
[0126] 또 다른 양상에서, 전자 컴퓨팅 디바이스 상에 구현된 사용자와의 인터랙션을 시뮬레이션하기 위한 구현된 에이전트 시뮬레이터가 제공되며, 구현된 에이전트 시뮬레이터는, 사용자 입력을 수신하고; 사용자에게 디스플레이된 디지털 컨텐츠에 대한 정보를 포함하는 디지털 컨텐츠 입력들을 수신하고; 그리고 사용자의 자연어 선언들과 디지털 컨텐츠 입력들 둘 다에 기초하여 사용자에 대한 응답들을 생성함으로써 사용자와의 대화를 시뮬레이션하도록 프로그래밍된다.
[0127] 선택적으로, 사용자에 대한 응답 및/또는 입력들은 구두적이다. 선택적으로, 구두적 응답들 및/또는 입력들은 청각적이거나 또는 텍스트(textual)이다. 선택적으로, 사용자에 대한 응답 및/또는 입력들은 시각적이다. 선택적으로, 구두적 응답들 및/또는 입력들은 제스처들 또는 얼굴 표정들이다.
[0128] 또 다른 양상에서, 디스플레이 및 입력 수단, 적어도 하나의 프로세서, 및 명령들을 저장하기 위한 메모리를 갖는 전자 컴퓨팅 디바이스와의 사용자 인터랙션을 가능하게 하기 위한 방법이 제공되며, 프로세서는, 가상 환경 좌표들을 갖는 가상 환경을 정의하고; 디스플레이의 실세계 물리적 디멘션들에 대한 좌표들을 디멘셔닝(dimension)하고; 가상 환경에서 구현된 에이전트를 시뮬레이션하고 ― 가상 공간에 대한 에이전트의 포지션은 가상 환경 좌표들에 의해 정의됨 ― ; 에이전트의 가상 환경에서 하나 이상의 디지털 오브젝트들을 시뮬레이션하고 ― 가상 환경에 대한 하나 이상의 디지털 오브젝트들의 포지션은 가상 환경 좌표들에 의해 정의됨 ― ; 구현된 에이전트가 에이전트의 가상 환경 좌표들 및 가상 오브젝트의 가상 환경 좌표들에 대한 정보를 사용하여 하나 이상의 디지털 오브젝트들과 인터랙션하는 것을 가능하게 하고; 그리고 디스플레이를 통해 사용자에게 에이전트와 하나 이상의 디지털 오브젝트들 간의 인터랙션을 디스플레이하도록 프로그래밍된다.
[0129] 다른 양상에서, 시뮬레이션 환경 외부로부터의 지속적인 시각적 입력에 대한 실질적인 실시간 지각을 시뮬레이션 환경을 갖는 구현된 에이전트에 제공하기 위한 방법이 제공되며, 방법은, 구현된 에이전트 및/또는 시뮬레이션 환경의 프로그램의 프로그래밍방식 정의와 지속적 가상 입력 간의 인터랙션을 제공하는 단계; 에이전트의 시뮬레이션의 모든 각각의 시간-단계에서 시뮬레이션 환경 외부로부터 시각적 입력을 캡처하고, 각각의 시간-단계에서 입력 데이터를 구현된 에이전트 및/또는 시뮬레이션 환경에 전달하는 단계; 및 시각적 입력을 에이전트의 시각적 시스템에 입력하거나 또는 에이전트의 시뮬레이션 환경 내에서 시각적 입력을 시뮬레이션하는 단계를 포함한다.
[0130] 또 다른 양상에서, 인공 에이전트가 사용자 인터페이스와 인터랙션하는 것을 가능하게 하기 위한 방법이 제공되며, 방법은, 인공 에이전트에 최종 사용자 디스플레이를 통해 사용자에게 디스플레이가능한 디지털 컨텐츠를 표현하는 단계; 인공 에이전트의 인지 판정 및/또는 물리적 움직임들을 사용자 인터페이스를 제어하는 인간 입력 디바이스의 액추에이션 또는 조작으로 번역하는 단계를 포함한다.
[0131] 선택적으로, 시뮬레이션된 구현된 인터랙션을 번역하는 것은 인공 에이전트와 디지털 컨텐츠 간의 구현된 인터랙션을 입력 디바이스 이벤트에 맵핑하는 것을 포함한다. 선택적으로, 인간 입력 디바이스 이벤트는 마우스 이벤트, 키보드 이벤트 또는 터치스크린 이벤트이다.
[0132] 또 다른 양상에서, 인공 에이전트와 인터랙션하기 위한 방법이 제공되며, 방법은, 에이전트 가상 공간에서 인공 에이전트를 시뮬레이션하고, 에이전트 가상 공간에서 디지털 컨텐츠를 시뮬레이션함으로써 인공 에이전트에 의해 지각될 수 있도록 디지털 컨텐츠를 표현하는 단계; 인공 에이전트, 인공 에이전트 가상 공간, 디지털 컨텐츠를 디스플레이를 통해 사용자에게 디스플레이하는 단계; 카메라로부터 사용자의 이미지들을 수신하는 단계; 수신된 이미지들에 기초하여 디스플레이 상에서 사용자의 응시를 추적하는 단계; 및 적어도 사용자의 응시를 포함하는 사용자 입력들에 기초하여 인공 에이전트, 사용자 및 디지털 컨텐츠 간의 구현된 인터랙션을 시뮬레이션하는 단계를 포함한다.
[0133] 선택적으로, 사용자 응시는 사용자 눈 각도 및/또는 사용자 머리 각도를 사용하여 추적된다. 선택적으로, 사용자의 눈 움직임을 추적하는 단계를 더 포함하며, 시뮬레이션된 구현된 인터랙션은 사용자의 눈 움직임에 추가로 기초한다.
[0134] 선택적으로, 사용자 눈 움직임은 사용자 눈 각도 및/또는 사용자 머리 각도를 사용하여 추적된다. 선택적으로, 사용자 입력들은 구두적 입력들을 포함한다. 선택적으로, 사용자 입력들은 청각적 또는 텍스트 입력들을 포함한다. 선택적으로, 사용자 입력들은 터치 스크린 또는 마우스 움직임들을 포함한다. 선택적으로, 사용자 입력들은 시각적 입력들을 포함한다. 선택적으로, 시각적 입력들은 제스처들 또는 얼굴 표정들이다. 선택적으로, 제스처들은 팔, 손 또는 손가락 중 하나 이상의 움직임을 포함한다. 선택적으로, 인공 에이전트, 사용자 및 디지털 컨텐츠 기반 간의 시뮬레이션된 구현된 인터랙션은, 사용자가 에이전트 가상 공간의 디지털 컨텐츠에서의 오브젝트에 주의를 돌리는 것을 포함한다.
[0135] 선택적으로, 방법은 인공 에이전트의 응시를 추적하는 단계를 포함하며, 구현된 인터랙션을 시뮬레이션하는 것은 사용자 및 인공 에이전트의 응시에 적용된 다이애딕 턴 테이킹 모델에 추가로 기초한다. 선택적으로, 인공 에이전트는 사용자와의 직접적 응시를 시도함으로써 인터랙션하는 동안 그들의 턴의 종료를 표시한다. 선택적으로, 인공 에이전트는, 사용자가 인공 에이전트와의 직접적 응시를 개시할 때 사용자가 그들의 턴의 종료를 표시함을 지각한다. 선택적으로, 인터랙션은 가상 현실 환경에서 발생한다. 선택적으로, 인터랙션은 증강 현실 환경에서 발생한다.
[0136] 또 다른 양상에서, 전자 컴퓨팅 디바이스 상에서 구현된 사용자와의 인터랙션을 시뮬레이션하기 위한 구현된 에이전트 시뮬레이터가 제공되며, 구현된 에이전트 시뮬레이터는, 에이전트 가상 공간에서 인공 에이전트를 시뮬레이션하고, 에이전트 가상 공간에서 디지털 컨텐츠를 시뮬레이션함으로써 인공 에이전트에 의해 지각될 수 있도록 디지털 컨텐츠를 표현하고; 인공 에이전트, 인공 에이전트 가상 공간, 디지털 컨텐츠를 디스플레이를 통해 사용자에게 디스플레이하고; 카메라로부터 사용자의 이미지들을 수신하고; 수신된 이미지들에 기초하여 디스플레이 상에서 사용자의 응시를 추적하고; 그리고 적어도 사용자의 응시를 포함하는 사용자 입력들에 기초하여 인공 에이전트, 사용자 및 디지털 컨텐츠 간의 구현된 인터랙션을 시뮬레이션하도록 프로그래밍된다.
[0137] 선택적으로, 사용자 응시는 사용자 눈 각도 및/또는 사용자 머리 각도를 사용하여 추적된다. 선택적으로, 사용자의 눈 움직임을 추적하는 단계를 더 포함하며, 시뮬레이션된 구현된 인터랙션은 사용자의 눈 움직임에 추가로 기초한다. 선택적으로, 사용자 눈 움직임은 사용자 눈 각도 및/또는 사용자 머리 각도를 사용하여 추적된다. 선택적으로, 사용자 입력들은 구두적 입력들을 포함한다. 선택적으로, 사용자 입력들은 청각적 또는 텍스트 입력들을 포함한다. 선택적으로, 사용자 입력들은 터치 스크린 또는 마우스 움직임들을 포함한다. 선택적으로, 사용자 입력들은 시각적 입력들을 포함한다. 선택적으로, 시각적 입력들은 제스처들 또는 얼굴 표정들이다. 선택적으로, 제스처들은 팔, 손 또는 손가락 중 하나 이상의 움직임을 포함한다. 선택적으로, 인공 에이전트, 사용자 및 디지털 컨텐츠 기반 간의 시뮬레이션된 구현된 인터랙션은, 사용자가 에이전트 가상 공간의 디지털 컨텐츠에서의 오브젝트에 주의를 돌리는 것을 포함한다. 선택적으로, 방법은 인공 에이전트의 응시를 추적하는 단계를 포함하며, 구현된 인터랙션을 시뮬레이션하는 것은 사용자 및 인공 에이전트의 응시에 적용된 다이애딕 턴 테이킹 모델에 추가로 기초한다. 선택적으로, 인공 에이전트는 사용자와의 직접적 응시를 시도함으로써 인터랙션하는 동안 그들의 턴의 종료를 표시한다. 선택적으로, 인공 에이전트는, 사용자가 인공 에이전트와의 직접적 응시를 개시할 때 사용자가 그들의 턴의 종료를 표시함을 지각한다. 선택적으로, 인터랙션은 가상 현실 환경에서 발생한다. 선택적으로, 인터랙션은 증강 현실 환경에서 발생한다.
[0138] 또 다른 양상에서, 인공 에이전트와 인터랙션하기 위한 방법이 제공되며, 방법은, 에이전트 가상 공간에서 인공 에이전트를 시뮬레이션하고, 에이전트 가상 공간에서 디지털 컨텐츠를 시뮬레이션함으로써 인공 에이전트에 의해 지각될 수 있도록 디지털 컨텐츠를 표현하는 단계; 인공 에이전트, 인공 에이전트 가상 공간, 디지털 컨텐츠를 디스플레이를 통해 사용자에게 디스플레이하는 단계; 카메라로부터 사용자의 환경 및 사용자의 이미지들을 수신하는 단계; 수신된 이미지들에 기초하여 사용자의 응시를 추적하는 단계; 및 적어도 사용자의 응시를 포함하는 사용자 입력들에 기초하여 인공 에이전트, 사용자, 사용자의 환경 및 디지털 컨텐츠 간의 구현된 인터랙션을 시뮬레이션하는 단계를 포함한다.
[0139] 선택적으로, 사용자 응시는 사용자 눈 각도 및/또는 사용자 머리 각도를 사용하여 추적된다. 선택적으로, 사용자의 눈 움직임을 추적하는 단계를 더 포함하며, 시뮬레이션된 구현된 인터랙션은 사용자의 눈 움직임에 추가로 기초한다. 선택적으로, 사용자 눈 움직임은 사용자 눈 각도 및/또는 사용자 머리 각도를 사용하여 추적된다. 선택적으로, 사용자 입력들은 구두적 입력들을 포함한다. 선택적으로, 사용자 입력들은 청각적 또는 텍스트 입력들을 포함한다. 선택적으로, 사용자 입력들은 터치 스크린 또는 마우스 움직임들을 포함한다. 선택적으로, 사용자 입력들은 시각적 입력들을 포함한다. 선택적으로, 시각적 입력들은 제스처들 또는 얼굴 표정들이다. 선택적으로, 제스처들은 팔, 손 또는 손가락 중 하나 이상의 움직임을 포함한다. 선택적으로, 인공 에이전트, 사용자, 사용자의 환경 및 디지털 컨텐츠 간의 시뮬레이션된 구현된 인터랙션은, 사용자가 에이전트 가상 공간의 디지털 컨텐츠에서의 오브젝트 또는 사용자의 환경에서의 오브젝트에 주의를 돌리는 것을 포함한다. 선택적으로, 방법은 인공 에이전트의 응시를 추적하는 단계를 포함하며, 구현된 인터랙션을 시뮬레이션하는 것은 사용자 및 인공 에이전트의 응시에 적용된 다이애딕 턴 테이킹 모델에 추가로 기초한다. 선택적으로, 인공 에이전트는 사용자와의 직접적 응시를 시도함으로써 인터랙션하는 동안 그들의 턴의 종료를 표시한다. 선택적으로, 인공 에이전트는, 사용자가 인공 에이전트와의 직접적 응시를 개시할 때 사용자가 그들의 턴의 종료를 표시함을 지각한다. 선택적으로, 인터랙션은 가상 현실 환경에서 발생한다. 선택적으로, 인터랙션은 증강 현실 환경에서 발생한다.
[0140] 인공 에이전트와 인터랙션하기 위한 구현된 에이전트 시뮬레이터로서, 방법은, 에이전트 가상 공간에서 인공 에이전트를 시뮬레이션하고, 에이전트 가상 공간에서 디지털 컨텐츠를 시뮬레이션함으로써 인공 에이전트에 의해 지각될 수 있도록 디지털 컨텐츠를 표현하는 단계; 인공 에이전트, 인공 에이전트 가상 공간, 디지털 컨텐츠를 디스플레이를 통해 사용자에게 디스플레이하는 단계; 카메라로부터 사용자의 환경 및 사용자의 이미지들을 수신하는 단계; 수신된 이미지들에 기초하여 사용자의 응시를 추적하는 단계; 및 적어도 사용자의 응시를 포함하는 사용자 입력들에 기초하여 인공 에이전트, 사용자, 사용자의 환경 및 디지털 컨텐츠 간의 구현된 인터랙션을 시뮬레이션하는 단계를 포함한다.
[0141] 또 다른 양상에서: 인공 에이전트와 인터랙션하기 위한 방법 구현 시스템으로서, 방법은, 에이전트 가상 공간에서 인공 에이전트를 시뮬레이션하고, 디스플레이를 통해 사용자에게 인공 에이전트 및 인공 에이전트 가상 공간을 디스플레이하는 단계; 카메라로부터 사용자의 이미지들을 수신하는 단계; 사용자의 주의를 추적하는 단계; 사용자의 주의에 주의 모델을 적용하고, 인공 에이전트에 출력을 제공하는 단계; 및 주의 모델의 출력에 기초하여 인공 에이전트와 사용자 간의 구현된 인터랙션을 시뮬레이션하는 단계를 포함한다.
[0142] 또 다른 양상에서: 전자 컴퓨팅 디바이스 상에 구현된 사용자와의 인터랙션을 시뮬레이션하기 위한 구현된 에이전트 시뮬레이터로서, 구현된 에이전트 시뮬레이터는, 에이전트 가상 공간에서 구현된 에이전트를 시뮬레이션하고, 디스플레이를 통해 사용자에게 인공 에이전트 및 구현된 에이전트 가상 공간을 디스플레이하고; 카메라로부터 사용자의 이미지들을 수신하고; 수신된 이미지들에 기초하여 사용자의 주의를 추적하고; 사용자의 주의에 주의 모델을 적용하고, 구현된 에이전트에 출력을 제공하고; 그리고 주의 모델의 출력에 기초하여 구현된 에이전트와 사용자 간의 구현된 인터랙션을 시뮬레이션하도록 프로그래밍된다.
[0143] 선택적으로, 주의 모델은 또한 인공 에이전트의 주의에 적용된다. 선택적으로, 방법은 카메라로부터 사용자의 공간의 이미지들을 수신하는 단계를 포함한다. 선택적으로, 방법은 에이전트 가상 공간에서 디지털 컨텐츠를 시뮬레이션함으로써 인공 에이전트에 의해 지각될 수 있도록 디지털 컨텐츠를 표현하는 단계를 포함하고, 디지털 컨텐츠는 사용자에게 보일 수 있다. 선택적으로, 사용자의 주의를 추적하는 것은 사용자의 응시를 추적하는 것을 포함한다. 선택적으로, 사용자의 주의를 추적하는 것은 사용자의 눈 움직임을 추적하는 것을 포함한다. 선택적으로, 사용자의 주의를 추적하는 것은 디스플레이 상에서 사용자의 눈 움직임을 추적하는 것을 포함한다. 선택적으로, 방법은 인공 에이전트의 응시를 추적하는 것을 포함하고, 주의 모델은 또한 인공 에이전트의 응시에 적용된다. 선택적으로, 주의 모델은 돌출 팩터(salience factor)를 포함하고, 인공 에이전트 및 사용자가 공동으로 주의를 기울인(attend) 오브젝트들은 돌출 부분이 증가한다. 선택적으로, 오브젝트들은 사람들 및/또는 사물들이다. 선택적으로, 돌출 팩터는 사용자들 및 인공 에이전트의 돌출 응시 맵에 기초하여 가중된 돌출 응시 팩터를 포함한다. 선택적으로, 가중된 돌출 응시 팩터는 제1 가중치와 인공 에이전트의 응시 맵의 곱 플러스 제2 가중치와 사용자 응시 맵의 곱 플러스 제3 가중치와 인공 에이전트의 응시 맵과 사용자 응시 맵의 곱으로서 계산된다. 선택적으로, 돌출 팩터는 사용자들 및 인공 에이전트의 돌출 포인트 맵에 기초하여 가중된 돌출 포인트 팩터를 포함한다. 선택적으로, 가중된 돌출 포인트 맵 팩터는 제1 가중치와 인공 에이전트의 포인트 맵의 곱 플러스 제2 가중치와 사용자 포인트 맵의 곱 플러스 제3 가중치와 인공 에이전트의 포인트 맵과 사용자 포인트 맵의 곱으로서 계산된다. 선택적으로, 주의 모델은 또한 사용자의 눈 움직임, 사용자의 액션들, 사용자 환경에서의 오브젝트들, 및 사용자의 환경에서의 액션들에 적용된다. 선택적으로, 오브젝트들은 사람들 및/또는 사물들이다. 선택적으로, 주의 모델은 또한 사용자 입력들에 적용된다. 선택적으로, 사용자 입력들은 청각적 또는 텍스트 입력들을 포함한다. 선택적으로, 입력들은 구두적 입력들을 포함한다. 선택적으로, 사용자 입력들은 터치 스크린 또는 사용자 마우스 움직임들을 포함한다. 선택적으로, 사용자 입력들은 시각적 입력들을 포함한다. 선택적으로, 시각적 입력들은 제스처들 또는 얼굴 표정들이다. 선택적으로, 제스처들은 팔, 손 또는 손가락 중 하나의 움직임을 포함한다. 선택적으로, 주의 모델은 또한 인공 에이전트의 액션들 및 인공 에이전트의 배경에서의 액션들에 적용된다. 선택적으로, 사용자의 눈 움직임 및 응시는 사용자 눈 각도 및/또는 사용자 머리 각도를 사용하여 추적된다. 선택적으로, 인공 에이전트, 사용자 및 디지털 컨텐츠 간의 시뮬레이션된 구현된 인터랙션은, 사용자가 에이전트 가상 공간의 디지털 컨텐츠에서의 오브젝트에 주의를 돌리는 것을 포함한다. 선택적으로, 방법은 인공 에이전트의 응시를 추적하는 단계를 포함하며, 구현된 인터랙션을 시뮬레이션하는 것은 사용자 및 인공 에이전트의 응시에 적용된 다이애딕 턴 테이킹 모델에 추가로 기초한다. 선택적으로, 인공 에이전트는 사용자와의 직접적 응시를 시도함으로써 인터랙션하는 동안 그들의 턴의 종료를 표시한다. 선택적으로, 인공 에이전트는 구두적 큐들에 의해 인터랙션하는 동안 그들의 턴의 종료를 표시한다. 선택적으로, 인공 에이전트는 비구두적 큐들에 의해 인터랙션하는 동안 그들의 턴의 종료를 표시한다. 선택적으로, 비구두적 큐들은 미소들, 윙크, 머리의 움직임, 팔들, 손들 및 손가락들을 포함한 신체의 움직임을 포함한다. 선택적으로, 인공 에이전트는, 사용자가 인공 에이전트와의 직접적 응시를 개시할 때 인터랙션하는 동안 사용자들이 그들의 턴의 종료를 표시함을 지각한다. 선택적으로, 인공 에이전트는, 사용자가 구두적 큐들을 사용할 때 사용자들이 그들의 턴의 종료를 표시함을 지각한다. 선택적으로, 인공 에이전트는, 사용자가 비구두적 큐들을 사용할 때 사용자들이 그들의 턴의 종료를 표시함을 지각한다. 선택적으로, 비구두적 큐들은 미소들, 윙크, 머리의 움직임, 팔들, 손들 및 손가락들을 포함한 신체의 움직임을 포함한다. 선택적으로, 인터랙션은 가상 현실 환경 및/또는 증강 현실 환경에서 발생한다. 선택적으로, 인공 에이전트는 인터랙션의 적어도 일부 동안 디스플레이 상에 보일 수 없다.

Claims (15)

  1. 전자 컴퓨팅 디바이스의 최종 사용자 디스플레이 디바이스 상에서, 구현된 인공 에이전트와 디지털 컨텐츠 간의 인터랙션을 시각화하기 위한 방법으로서,
    가상 환경 좌표들을 갖는 에이전트 가상 환경을 생성하는 단계; 상기 에이전트 가상 환경에서 상기 디지털 컨텐츠를 시뮬레이션하는 단계;
    상기 에이전트 가상 환경에서 상기 구현된 인공 에이전트를 시뮬레이션하는 단계;
    상기 구현된 인공 에이전트가 상기 시뮬레이션된 디지털 컨텐츠와 인터랙션하는 것을 가능하게 하는 단계; 및 상기 구현된 인공 에이전트와 상기 디지털 컨텐츠 간의 인터랙션을 상기 최종 사용자 디스플레이 디바이스 상에 디스플레이하는 단계를 포함하는, 전자 컴퓨팅 디바이스의 최종 사용자 디스플레이 디바이스 상에서, 구현된 인공 에이전트와 디지털 컨텐츠 간의 인터랙션을 시각화하기 위한 방법.
  2. 제1 항에 있어서,
    상기 가상 환경은 3D 가상 공간이고, 상기 가상 환경 좌표들은 3D 좌표들인, 전자 컴퓨팅 디바이스의 최종 사용자 디스플레이 디바이스 상에서, 구현된 인공 에이전트와 디지털 컨텐츠 간의 인터랙션을 시각화하기 위한 방법.
  3. 제2 항에 있어서,
    상기 인터랙션은, 상기 디지털 컨텐츠를 향해 이동하거나, 상기 디지털 컨텐츠를 바라보거나, 디지털 컨텐츠를 향해 제스처를 취하거나(gesture), 또는 멀티-조인트 이펙터(multi-joint effector)를 움직임으로써 디지털 컨텐츠 아이템을 터치하는 것을 포함하는 그룹 중 하나 이상인, 전자 컴퓨팅 디바이스의 최종 사용자 디스플레이 디바이스 상에서, 구현된 인공 에이전트와 디지털 컨텐츠 간의 인터랙션을 시각화하기 위한 방법.
  4. 제3 항에 있어서,
    상기 디지털 컨텐츠는 상기 에이전트 가상 환경 내의 평면 상에서 시뮬레이션되는, 전자 컴퓨팅 디바이스의 최종 사용자 디스플레이 디바이스 상에서, 구현된 인공 에이전트와 디지털 컨텐츠 간의 인터랙션을 시각화하기 위한 방법.
  5. 구현된 인공 에이전트를 통해 전자 컴퓨팅 디바이스 상에서 디지털 컨텐츠와 인터랙션하기 위한 방법으로서,
    상기 전자 컴퓨팅 디바이스 상에서 사용자 인터페이스를 통해 사용자에게 상기 디지털 컨텐츠를 디스플레이하는 단계;
    가상 환경 좌표들을 갖는 에이전트 가상 환경을 생성하는 단계; 상기 에이전트 가상 환경에서 상기 디지털 컨텐츠를 시뮬레이션하는 단계;
    상기 에이전트 가상 환경에서 상기 구현된 인공 에이전트를 시뮬레이션하는 단계;
    상기 구현된 인공 에이전트가 상기 시뮬레이션된 디지털 컨텐츠와 인터랙션하는 것을 가능하게 하는 단계; 상기 사용자 인터페이스 상에서 상기 인터랙션을 상기 디지털 컨텐츠의 액추에이션 또는 조작으로 번역(translate)하는 단계; 및
    상기 사용자 인터페이스 상에서 상기 구현된 인공 에이전트를 디지털 컨텐츠와 오버레이(overlay), 언더레이(overlay) 및/또는 블렌딩함으로써 상기 인터랙션을 디스플레이하는 단계를 포함하는, 구현된 인공 에이전트를 통해 전자 컴퓨팅 디바이스 상에서 디지털 컨텐츠와 인터랙션하기 위한 방법.
  6. 제5 항에 있어서,
    상기 디지털 컨텐츠는 상기 에이전트 가상 환경에서 하나 이상의 픽셀들로서 상기 에이전트 가상 환경에서 시뮬레이션되며, 각각의 픽셀은 상기 에이전트 가상 환경에서 좌표 로케이션을 갖는, 구현된 인공 에이전트를 통해 전자 컴퓨팅 디바이스 상에서 디지털 컨텐츠와 인터랙션하기 위한 방법.
  7. 제6 항에 있어서,
    상기 인터랙션은 디지털 컨텐츠에 대응하는 픽셀의 좌표들과 상기 에이전트의 신체 사이의 교차점인, 구현된 인공 에이전트를 통해 전자 컴퓨팅 디바이스 상에서 디지털 컨텐츠와 인터랙션하기 위한 방법.
  8. 제7 항에 있어서,
    상기 시뮬레이션된 구현된 인터랙션을 번역하는 단계는 상기 구현된 인터랙션을 입력 디바이스 이벤트에 맵핑하는 단계를 포함하는, 구현된 인공 에이전트를 통해 전자 컴퓨팅 디바이스 상에서 디지털 컨텐츠와 인터랙션하기 위한 방법.
  9. 제8 항에 있어서,
    인간 입력 디바이스 이벤트는 마우스 이벤트, 키보드 이벤트 또는 터치스크린 이벤트를 포함하는 그룹 중 하나 이상인, 구현된 인공 에이전트를 통해 전자 컴퓨팅 디바이스 상에서 디지털 컨텐츠와 인터랙션하기 위한 방법.
  10. 전자 컴퓨팅 디바이스와의 인터랙션을 가능하게 하기 위한 시스템으로서,
    적어도 하나의 프로세서 디바이스;
    상기 적어도 하나의 프로세서와 통신하는 적어도 하나의 메모리 디바이스; 구현된 에이전트를 시뮬레이션하도록 배열된, 상기 프로세서에 의해 실행가능한 에이전트 시뮬레이터 모듈;
    디지털 컨텐츠를 상기 구현된 에이전트에 의해 지각될 수 있는 개념적 오브젝트들로 번역하고, 상기 구현된 에이전트가 상기 디지털 컨텐츠와 인터랙션하는 것을 가능하게 하도록 배열된, 상기 프로세서에 의해 실행가능한 인터랙션 모듈; 상기 디지털 컨텐츠, 상기 구현된 에이전트 및 상기 구현된 에이전트와 상기 디지털 컨텐츠의 인터랙션을 렌더링하도록 배열된, 상기 프로세서에 의해 실행가능한 렌더링 모듈을 포함하는, 전자 컴퓨팅 디바이스와의 인터랙션을 가능하게 하기 위한 시스템.
  11. 제10 항에 있어서,
    상기 인터랙션 모듈은 상기 개념적 오브젝트에 대한 구현된 에이전트 액션들을 상기 디지털 컨텐츠에 대한 변경들로 번역하도록 추가로 배열되는, 전자 컴퓨팅 디바이스와의 인터랙션을 가능하게 하기 위한 시스템.
  12. 제11 항에 있어서,
    상기 인터랙션 모듈은 개념적 오브젝트들을 상기 구현된 에이전트에 대한 상기 개념적 오브젝트들의 로케이션을 표현하는 좌표들과 연관시키는, 전자 컴퓨팅 디바이스와의 인터랙션을 가능하게 하기 위한 시스템.
  13. 제10 항 내지 제12 항 중 어느 한 항에 있어서,
    상기 인터랙션 모듈은 개념적 오브젝트들을 대응하는 디지털 컨텐츠의 하나 이상의 어포던스(affordance)들과 연관시키는, 전자 컴퓨팅 디바이스와의 인터랙션을 가능하게 하기 위한 시스템.
  14. 제13 항에 있어서,
    상기 컴퓨팅 디바이스는 웹 컨텐츠를 제공하고, 상기 인터랙션 모듈은 상기 웹 컨텐츠로 통합된 JavaScript 코드인, 전자 컴퓨팅 디바이스와의 인터랙션을 가능하게 하기 위한 시스템.
  15. 전자 컴퓨팅 디바이스 상에서 생성된 가상 환경에 위치된 구현된 에이전트로서,
    실세계 환경으로부터 입력을 수신하고; 상기 가상 환경으로부터 입력을 수신하고; 그리고
    상기 실세계 환경 및 상기 가상 환경으로부터의 입력에 의존하여 거동하도록 프로그래밍되며,
    상기 실세계 환경 및 상기 가상 환경으로부터 수신된 입력은 상기 실세계 환경 및 상기 가상 환경 모두로부터 지속적 피드백 루프들을 통해 실시간으로 수신되는, 전자 컴퓨팅 디바이스 상에서 생성된 가상 환경에 위치된 구현된 에이전트.
KR1020217003598A 2018-07-19 2019-07-19 머신 인터랙션 KR20210024174A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
NZ74441018 2018-07-19
NZ744410 2018-07-19
NZ755122 2019-07-03
NZ75512219 2019-07-03
PCT/NZ2019/050083 WO2020017981A1 (en) 2018-07-19 2019-07-19 Machine interaction

Publications (1)

Publication Number Publication Date
KR20210024174A true KR20210024174A (ko) 2021-03-04

Family

ID=69165157

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217003598A KR20210024174A (ko) 2018-07-19 2019-07-19 머신 인터랙션

Country Status (9)

Country Link
US (1) US20210216349A1 (ko)
EP (1) EP3824378A4 (ko)
JP (2) JP7381581B2 (ko)
KR (1) KR20210024174A (ko)
CN (1) CN112424736A (ko)
AU (1) AU2019308100A1 (ko)
CA (1) CA3101001A1 (ko)
SG (1) SG11202011951PA (ko)
WO (1) WO2020017981A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021174089A1 (en) * 2020-02-29 2021-09-02 Embodied, Inc. Managing conversations between a user and a robot
CN112774203B (zh) * 2021-01-22 2023-04-28 北京字跳网络技术有限公司 一种虚拟对象的位姿控制方法、装置以及计算机存储介质
CN115098218B (zh) * 2022-05-25 2024-03-19 西南科技大学 Fmu模型到组态软件中功能块模型的描述和仿真方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3161400B2 (ja) * 1996-12-20 2001-04-25 ソニー株式会社 電子メールの送信方法及び送信装置、電子メールの受信方法及び受信装置、電子メールの送信プログラム供給媒体及び受信プログラム供給媒体
US6570555B1 (en) * 1998-12-30 2003-05-27 Fuji Xerox Co., Ltd. Method and apparatus for embodied conversational characters with multimodal input/output in an interface device
JP2001325052A (ja) * 2000-05-17 2001-11-22 Sharp Corp エージェント表示装置、エージェント表示方法およびエージェント表示プログラムを記録した記録媒体
JP2002041276A (ja) * 2000-07-24 2002-02-08 Sony Corp 対話型操作支援システム及び対話型操作支援方法、並びに記憶媒体
US8136038B2 (en) * 2005-03-04 2012-03-13 Nokia Corporation Offering menu items to a user
US8726194B2 (en) * 2007-07-27 2014-05-13 Qualcomm Incorporated Item selection using enhanced control
US9064023B2 (en) * 2008-12-29 2015-06-23 Avaya Inc. Providing web content in the context of a virtual environment
KR101110190B1 (ko) * 2009-07-14 2012-02-16 전국진 휴대폰과 연계되는 대형박물관용 가상현실 수족관장치
US9542010B2 (en) * 2009-09-15 2017-01-10 Palo Alto Research Center Incorporated System for interacting with objects in a virtual environment
US9251504B2 (en) * 2011-08-29 2016-02-02 Avaya Inc. Configuring a virtual reality environment in a contact center
US20130339902A1 (en) * 2012-05-31 2013-12-19 Richard Katzman Method and system for project or curriculum management
WO2014059376A1 (en) * 2012-10-11 2014-04-17 Wahl Jeffrey R Virtual information presentation system
JP6281496B2 (ja) * 2013-02-01 2018-02-21 ソニー株式会社 情報処理装置、端末装置、情報処理方法及びプログラム
WO2014120780A1 (en) * 2013-02-01 2014-08-07 Worcester Polytechnic Institute Inquiry skills tutoring system
US8850315B1 (en) * 2013-07-11 2014-09-30 Cloud Coaching International LLC System and method for superimposing a context-sensitive virtual agent on a web-based user interface
KR20150057424A (ko) * 2013-11-19 2015-05-28 한국전자통신연구원 증강현실 아바타 상호작용 방법 및 시스템
US9632686B1 (en) * 2014-07-24 2017-04-25 Wells Fargo Bank, N.A. Collaborative document creation
US10062208B2 (en) * 2015-04-09 2018-08-28 Cinemoi North America, LLC Systems and methods to provide interactive virtual environments
US10290222B2 (en) * 2015-09-21 2019-05-14 Visautact Llc Interactive tutorial with integrated escalating prompts
CN114896015A (zh) * 2015-09-23 2022-08-12 尹特根埃克斯有限公司 实时帮助的系统和方法
KR101851356B1 (ko) * 2016-09-09 2018-04-23 동서대학교산학협력단 3d 디지털액터에 의한 지능형 사용자 인터페이스 제공방법
US10304239B2 (en) * 2017-07-20 2019-05-28 Qualcomm Incorporated Extended reality virtual assistant
US20190332400A1 (en) * 2018-04-30 2019-10-31 Hootsy, Inc. System and method for cross-platform sharing of virtual assistants
US11418357B2 (en) * 2019-04-04 2022-08-16 eXp World Technologies, LLC Virtual reality systems and methods with cross platform interface for providing support
US11861674B1 (en) * 2019-10-18 2024-01-02 Meta Platforms Technologies, Llc Method, one or more computer-readable non-transitory storage media, and a system for generating comprehensive information for products of interest by assistant systems
US11475661B2 (en) * 2020-02-10 2022-10-18 Fujifilm Business Innovation Corp. Systems and methods for augmented reality application for annotations and adding interfaces to control panels and screens
US11200742B1 (en) * 2020-02-28 2021-12-14 United Services Automobile Association (Usaa) Augmented reality-based interactive customer support
WO2021231631A1 (en) * 2020-05-13 2021-11-18 Nvidia Corporation Conversational ai platform with rendered graphical output
WO2021240416A1 (en) * 2020-05-27 2021-12-02 Djuric Marko Notification application for a computing device
US11393198B1 (en) * 2020-06-02 2022-07-19 State Farm Mutual Automobile Insurance Company Interactive insurance inventory and claim generation
US11436828B1 (en) * 2020-06-02 2022-09-06 State Farm Mutual Automobile Insurance Company Insurance inventory and claim generation
US11861137B2 (en) * 2020-09-09 2024-01-02 State Farm Mutual Automobile Insurance Company Vehicular incident reenactment using three-dimensional (3D) representations
US11270672B1 (en) * 2020-11-02 2022-03-08 Microsoft Technology Licensing, Llc Display of virtual assistant in augmented reality

Also Published As

Publication number Publication date
US20210216349A1 (en) 2021-07-15
JP2021531603A (ja) 2021-11-18
EP3824378A4 (en) 2022-04-06
WO2020017981A1 (en) 2020-01-23
EP3824378A1 (en) 2021-05-26
CN112424736A (zh) 2021-02-26
CA3101001A1 (en) 2020-01-23
JP7381581B2 (ja) 2023-11-15
JP2024016167A (ja) 2024-02-06
SG11202011951PA (en) 2021-01-28
AU2019308100A1 (en) 2021-03-11

Similar Documents

Publication Publication Date Title
Rauschnabel et al. What is XR? Towards a framework for augmented and virtual reality
US20190369742A1 (en) System and method for simulating an interactive immersive reality on an electronic device
JP2024016167A (ja) マシン相互作用
US11048375B2 (en) Multimodal 3D object interaction system
Abtahi et al. Beyond being real: A sensorimotor control perspective on interactions in virtual reality
Spittle et al. A review of interaction techniques for immersive environments
JP2022500795A (ja) アバターアニメーション
CN113867531A (zh) 交互方法、装置、设备及计算机可读存储介质
Basori Emotion walking for humanoid avatars using brain signals
Jankowski et al. On the design of a Dual-Mode User Interface for accessing 3D content on the World Wide Web
Liu et al. Three-dimensional PC: toward novel forms of human-computer interaction
US8576223B1 (en) Multiple label display for 3D objects
Hayes-Roth et al. Panel on affect and emotion in the user interface
Turk Moving from guis to puis
CN114116086A (zh) 一种页面编辑方法、装置、设备及存储介质
De Marsico et al. Figi: floating interface for gesture-based interaction
Tran et al. Wearable Augmented Reality: Research Trends and Future Directions from Three Major Venues
Sreekanth et al. Multimodal interface for effective man machine interaction
Grewe et al. The Open Virtual Mirror Framework for enfacement illusions: Enhancing the sense of agency with avatars that imitate facial expressions
Cafaro et al. Nonverbal behavior in multimodal performances
Lacoche Plasticity for user interfaces in mixed reality
Cardoso et al. Solutions focused on high-level assistive technology: perceptions and trends observed from a systematic literature mapping
CN115951787B (zh) 近眼显示设备的交互方法、存储介质及近眼显示设备
Zahir An Extensible Platform for Real-Time Feedback in Presentation Training
Tao Multi-View Web Interfaces in Augmented Reality

Legal Events

Date Code Title Description
A201 Request for examination