KR20220168972A - 애플리케이션 화면을 탐색하는 전자 장치 및 그 동작 방법 - Google Patents

애플리케이션 화면을 탐색하는 전자 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR20220168972A
KR20220168972A KR1020220055724A KR20220055724A KR20220168972A KR 20220168972 A KR20220168972 A KR 20220168972A KR 1020220055724 A KR1020220055724 A KR 1020220055724A KR 20220055724 A KR20220055724 A KR 20220055724A KR 20220168972 A KR20220168972 A KR 20220168972A
Authority
KR
South Korea
Prior art keywords
electronic device
screen
user
sub
goal
Prior art date
Application number
KR1020220055724A
Other languages
English (en)
Inventor
최인권
권정민
박치연
손영철
강병철
강일구
김정섭
박현서
송주용
이강욱
이주형
임동재
주동욱
최성현
황규정
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to PCT/KR2022/008605 priority Critical patent/WO2022265448A1/ko
Priority to US17/875,083 priority patent/US20220404956A1/en
Publication of KR20220168972A publication Critical patent/KR20220168972A/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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • 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
    • 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/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

애플리케이션 화면을 탐색하는 전자 장치 및 그 동작 방법이 제공된다. 상기 방법은, 사용자 입력을 수신하는 단계; 상기 사용자 입력에 기초하여, 상기 전자 장치를 제어하기 위한 사용자 의도를 결정하는 단계; 상기 사용자 의도에 대응하는 제어 동작을 수행하기 위한 제어 명령을 결정하는 단계; 상기 애플리케이션 화면의 사용자 인터페이스의 요소들을 식별하는 단계; 상기 사용자 의도 및 상기 사용자 인터페이스의 요소들에 기초하여, 상기 제어 명령을 실행하기 위한 적어도 하나의 하위 목표를 결정하는 단계; 및 상기 적어도 하나의 작업을 수행하여 상기 제어 명령을 실행하는 단계를 포함할 수 있다.

Description

애플리케이션 화면을 탐색하는 전자 장치 및 그 동작 방법{METHOD AND ELECTRONIC DEVICE NAVIGATING AN APPLICATION SCREEN}
본 개시는, 전자 장치 스스로 화면 또는 애플리케이션을 제어 및 탐색하는 전자 장치 및 그 동작 방법에 관한 것이다.
디스플레이를 포함하는 다양한 전자 장치들의 예로는 TV, 사이니지, 키오스크 등이 있다. 이에 따라, 디스플레이를 포함하는 전자 장치에 대한 사용자의 제어 방법도 전자 장치의 특성에 따라 상이하다. TV를 예로 들면, 애플리케이션의 탐색 및/또는 외부 소스에 대한 제어를 위한 제어 장치인 리모컨이 TV의 제어를 위해 제공된다. 최근의 TV에서는 방송 수신 외에 애플리케이션을 통한 콘텐트 재생, 외부 소스 연결을 통한 게임 실행 등 다양한 기능이 제공된다. 이에 따라, TV의 기능을 이용하여 서비스를 제공하기 위한 애플리케이션의 수 또한 증가하고 있다. TV에서 제공되는 기능은 다양하고, 점점 증가하나, 리모컨의 버튼 간소화로 인해 사용자가 하나의 명령을 실행하기 위해는 수회의 버튼 클릭이 필요하기도 하다.
사용자가 전자 장치에서 실행되는 임의의 애플리케이션 또는, 전자 장치에 연결되어 사용되는 임의의 장치에 대하여 쉽고 간편하게 조작할 수 있도록 함으로써, 개선된 사용자 경험을 제공하는 것이 요구된다.
개시된 실시예들은, 애플리케이션의 API 이용 없이, 사용자의 입력 명령 및 전자 장치의 화면 분석 결과에 기초하여, 애플리케이션을 탐색 및/또는 제어할 수 있도록 하는, 전자 장치 및 그 동작 방법을 제공하기 위한 것이다.
본 개시의 일 측면에 따르면, 전자 장치가 애플리케이션 화면을 탐색하는 방법을 제공할 수 있다. 상기 방법은, 사용자 입력을 수신하는 단계; 상기 사용자 입력에 기초하여, 상기 전자 장치를 제어하기 위한 사용자 의도를 결정하는 단계; 상기 사용자 의도에 대응하는 제어 동작을 수행하기 위한 제어 명령을 결정하는 단계; 상기 애플리케이션 화면의 사용자 인터페이스의 요소들을 식별하는 단계; 상기 사용자 의도 및 상기 사용자 인터페이스의 요소들에 기초하여, 상기 제어 명령을 실행하기 위한 적어도 하나의 하위 목표를 결정하는 단계; 및 상기 적어도 하나의 하위 목표에 대응하는 적어도 하나의 작업을 수행하여 상기 제어 명령을 실행하는 단계를 포함하고, 상기 적어도 하나의 하위 목표는 각각, 상기 제어 명령을 실행하기 위한 상기 애플리케이션의 탐색 동작의 중간 점검에 기초하여 변경 가능한 것이고, 상기 적어도 하나의 작업은, 상기 애플리케이션을 탐색하기 위한 액션의 단위들로 구성되는 것일 수 있다.
상기 애플리케이션 화면의 사용자 인터페이스의 요소들은, 아이콘, 이미지, 텍스트 및 버튼 중 적어도 하나를 포함할 수 있다.
상기 방법은, 상기 제어 명령이 상기 전자 장치의 운영체제에 의해 호출될 수 있는 기능에 대한 제어 명령인지 여부를 식별하는 단계를 더 포함하고, 상기 사용자 인터페이스 요소들을 식별하는 단계는, 상기 제어 명령이 호출 불가능한 기능에 대한 제어 명령인 것에 기초하여, 상기 애플리케이션 화면의 사용자 인터페이스의 요소들을 식별하는 단계를 포함할 수 있다.
상기 적어도 하나의 하위 목표를 결정하는 단계는, 상기 사용자 인터페이스의 요소들에 기초하여, 상기 전자 장치의 현재 상태를 검출하는 단계; 상기 사용자 의도에 기초하여, 상기 제어 명령이 실행된 상태를 나타내는 상기 전자 장치의 타겟 상태를 결정하는 단계; 및 상기 전자 장치의 현재 상태 및 상기 전자 장치의 타겟 상태에 기초하여, 상기 적어도 하나의 하위 목표를 결정하는 단계를 포함할 수 있다.
상기 제어 명령을 실행하는 단계는, 상기 하위 목표가 둘 이상인 것에 기초하여, 상기 제어 명령이 실행될 때까지 상기 하위 목표들을 순차적으로 달성하는 단계를 포함할 수 있다.
상기 제어 명령을 실행하는 단계는, 상기 애플리케이션의 화면 전환을 포함하는 상기 적어도 하나의 작업을 수행함으로써, 상기 애플리케이션을 탐색하는 단계를 포함할 수 있다.
상기 방법은, 상기 애플리케이션의 화면이 제1 화면에서 제2 화면으로 전환된 것에 기초하여, 상기 중간 점검을 위해 제1 하위 목표가 달성되었는지 여부를 식별하는 단계; 및 상기 제1 하위 목표의 달성 여부에 기초하여, 제2 하위 목표를 동적으로 결정하는 단계를 더 포함할 수 있다.
상기 제2 하위 목표를 동적으로 결정하는 단계는, 상기 제2 화면의 인터페이스 요소들에 기초하여 상기 제2 하위 목표를 변경하는 단계를 포함할 수 있다.
상기 제어 명령을 실행하는 단계는, 상기 제1 하위 목표에 대응하는 제1 작업을 수행하는 단계; 및 상기 제2 하위 목표에 대응하는 제2 작업을 수행하는 단계를 포함할 수 있다.
상기 사용자 입력은 음성 신호를 포함하고, 상기 사용자 의도를 결정하는 단계는, 상기 음성 신호에 자동 음성 인식(Automatic Speech Recognition; ASR)을 수행하여 음성 신호를 텍스트로 변환하는 단계; 및 획득된 텍스트를 자연어 이해(Natural Language Understanding; NLU) 모델에 적용하여, 상기 사용자 의도를 획득하는 단계를 포함할 수 있다.
본 개시의 일 측면에 따르면, 애플리케이션 화면을 탐색하는 전자 장치를 제공할 수 있다. 상기 전자 장치는, 실행 중인 애플리케이션의 화면을 표시할 수 있는 디스플레이; 통신 인터페이스; 하나 이상의 명령어를 저장하는 메모리; 및 상기 메모리에 저장된 상기 하나 이상의 명령어를 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써, 사용자 입력을 수신하고, 상기 사용자 입력에 기초하여, 상기 전자 장치를 제어하기 위한 사용자 의도를 결정하고, 상기 사용자 의도에 대응하는 제어 동작을 수행하기 위한 제어 명령을 결정하고, 상기 애플리케이션 화면의 사용자 인터페이스의 요소들을 식별하고, 상기 사용자 의도 및 상기 사용자 인터페이스의 요소들에 기초하여, 상기 제어 명령을 실행하기 위한 적어도 하나의 하위 목표를 결정하고, 상기 적어도 하나의 하위 목표에 대응하는 적어도 하나의 작업을 수행하여 상기 제어 명령을 실행하되, 상기 적어도 하나의 하위 목표는 각각, 상기 제어 명령을 실행하기 위한 상기 애플리케이션의 탐색 동작의 중간 점검에 기초하여 변경 가능한 것이고, 상기 적어도 하나의 작업은, 상기 애플리케이션을 탐색하기 위한 액션의 단위들로 구성되는 것일 수 있다.
본 개시의 일 측면에 따르면, 전자 장치가 애플리케이션 화면을 제어하는, 전술한 방법들 중 어느 하나를 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능 기록매체를 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따른 전자 장치가 애플리케이션 화면을 제어하는 일 예시를 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 전자 장치가 애플리케이션의 화면을 탐색하는 방법을 설명하기 위한 흐름도이다.
도 3a는 본 개시의 일 실시예에 따른 전자 장치의 제어에 관련된 애플리케이션 및 소스들을 설명하기 위한 도면이다.
도 3b는, 도 3a에서 전술한 애플리케이션 및 소스들을 제어하기 위하여, 본 개시의 일 실시예에 따른 전자 장치의 사용자가 일반적으로 전자 장치를 조작하는 동작을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 전자 장치의 제어 동작에 포함되는 세부 동작들을 도시한 도면이다.
도 5는 본 개시의 일 실시예에 따른 전자 장치가 사용자 입력에 기초하여 사용자 의도를 결정하는 동작을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 전자 장치가 표시 중인 화면을 분석하여 레이아웃 정보를 획득하는 동작을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시예에 따른 전자 장치가 사용자 입력에 따라 결정된 제어 명령을 실행하기 위한 적어도 하나의 하위 목표를 결정하는 동작을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시예에 따른 전자 장치가 제어 명령을 실행하기 위해 적어도 하나의 작업을 결정하는 동작을 설명하기 위한 도면이다.
도 9a는 본 개시의 일 실시예에 따른 전자 장치가 화면 제어를 위해 작업을 수행하는 동작을 설명하기 위한 도면이다.
도 9b는 본 개시의 일 실시예에 따른 전자 장치가 화면 제어를 위해 복수의 작업을 수행하는 동작을 설명하기 위한 도면이다.
도 9c는 본 개시의 일 실시예에 따른 전자 장치가 화면 제어를 위해 복수의 작업을 수행하는 동작을 더 설명하기 위한 도면이다.
도 9d는 본 개시의 일 실시예에 따른 전자 장치가 화면 제어를 위해 결정된 작업을 업데이트하는 동작을 설명하기 위한 도면이다.
도 9e는 본 개시의 일 실시예에 따른 전자 장치가 하위 목표 시퀀스를 동적으로 업데이트하는 동작을 설명하기 위한 도면이다.
도 10은 본 개시의 일 실시예에 따른 전자 장치의 제어 동작에 이용되는 기술 맵을 도시한 도면이다.
도 11a는 본 개시의 일 실시예에 따른 전자 장치가 사용자의 터치 입력에 기초하여 화면을 제어하는 동작을 설명하기 위한 도면이다.
도 11b는 본 개시의 일 실시예에 따른 전자 장치가 사용자의 터치 입력에 기초하여 화면을 제어하는 또다른 동작을 설명하기 위한 도면이다.
도 11c는 본 개시의 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어하는 제1 실시예를 설명하기 위한 도면이다.
도 11d는 본 개시의 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어하는 제2 실시예를 설명하기 위한 도면이다.
도 11e는 본 개시의 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어하는 제3 실시예를 설명하기 위한 도면이다.
도 11f는 본 개시의 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어하는 제4 실시예를 설명하기 위한 도면이다.
도 11g는 본 개시의 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어하는 제5 실시예를 설명하기 위한 도면이다.
도 12a는 본 개시의 일 실시예에 따른 제2 전자 장치에 대한 터치 입력으로, 제1 전자 장치의 화면을 탐색하는 동작의 제1 실시예를 설명하기 위한 도면이다.
도 12b는 본 개시의 일 실시예에 따른 제2 전자 장치에 대한 터치 입력으로, 제1 전자 장치의 화면을 탐색하는 동작의 제1 실시예를 더 설명하기 위한 도면이다.
도 12c는 본 개시의 일 실시예에 따른 제2 전자 장치에 대한 터치 입력으로, 제1 전자 장치의 화면을 탐색하는 동작의 제2 실시예를 설명하기 위한 도면이다.
도 12d는 본 개시의 일 실시예에 따른 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치의 화면을 탐색하는 동작의 제3 실시예를 설명하기 위한 도면이다.
도 13a는 본 개시의 일 실시예에 따른 제2 전자 장치에 대한 터치 입력으로, 제1 전자 장치에 텍스트를 입력하는 동작의 제1 실시예를 설명하기 위한 도면이다.
도 13b는 본 개시의 일 실시예에 따른 제2 전자 장치에 대한 터치 입력으로, 제1 전자 장치에 텍스트를 입력하는 동작의 제2 실시예를 설명하기 위한 도면이다.
도 13c는 본 개시의 일 실시예에 따른 전자 장치에 대한 터치 입력으로, 제1 전자 장치에 텍스트를 입력하는 동작의 제3 실시예를 설명하기 위한 도면이다.
도 14는 본 개시의 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어하는, 또다른 실시예를 설명하기 위한 도면이다.
도 15는 본 개시의 일 실시예에 따른 전자 장치의 구성을 도시한 블록도이다.
도 16은 본 개시의 일 실시예에 따른 서버의 구성을 도시한 블록도이다.
도 17은 본 개시의 일 실시예에 따른 전자 장치의 제어 동작을 설명하기 위한 흐름도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다. 본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.
본 개시에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 명세서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 또한, 본 명세서에서 사용되는 '제1' 또는 '제2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 본 개시의 일 실시예에 따른 전자 장치가 애플리케이션 화면을 제어하는 일 예시를 나타내는 도면이다.
도 1을 참조하면, 일 실시예에 따른 전자 장치(2000)는 디스플레이를 포함하여 영상 및/또는 동영상을 출력하는 장치일 수 있다. 예를 들어, 전자 장치(2000)는 스마트 TV, 스마트폰, 사이니지, 키오스크, 전자 칠판, 태블릿 PC, 랩탑 PC, 액자형 디스플레이 등을 포함할 수 있으나, 이에 한정되는 것은 아니며, 전자 장치(2000) 디스플레이를 포함하는 다양한 종류 및 형태의 전자 장치로 구현될 수 있다. 또한, 전자 장치(2000)는 스피커를 포함하여 오디오를 출력할 수 있다.
일 실시예에 따른 전자 장치(2000)는 사용자 입력(110)에 기초하여 애플리케이션 화면을 탐색(navigate)할 수 있다. 예를 들면, 전자 장치(2000)에서는 현재 비디오 애플리케이션인 Y 애플리케이션이 실행 중이고, 콘텐트 카테고리들 중에서 ‘오리지날 탭(120)’이 선택된 상태일 수 있다.
일 실시예에서, 전자 장치(2000)는, 음성 신호 형태의 사용자 입력(110) “Y 앱에서 추천 탭(130)을 열어줘”를 수신할 수 있다. 전자 장치(2000)는 사용자 입력(110)에 기초하여 사용자 의도를 결정할 수 있다.
일 실시예에서, 전자 장치(2000)는 전자 장치(2000)의 화면을 분석하여 화면 내 사용자 인터페이스(User Interface; UI) 요소를 식별할 수 있다. 전자 장치(2000)는 UI 요소에 기초하여, 사용자 의도를 달성하기 위한 적어도 하나의 작업을 결정할 수 있다. 작업은 애플리케이션을 탐색하기 위한 시스템 액션의 단위들로 구성될 수 있으며, 시스템 액션이란 예를 들어, 커서 이동, 클릭 등을 포함할 수 있다.
일 실시예에서, 전자 장치(2000)에서 실행되는 애플리케이션은, 전자 장치의 운영 체제(Operation System; OS)에 의해 제어 가능한 시스템 애플리케이션과, 전자 장치(2000)의 OS에서 제공하는 API를 이용하여 서드-파티(third-party) 회사가 특정 기능 및/또는 서비스를 제공하는 서드-파티 애플리케이션으로 구별될 수 있다. 서드-파티 애플리케이션은, 전자 장치(2000)에 외부 소스(예를 들어, 게임 콘솔, 셋탑 박스 등)가 연결되어 외부 소스에 관련된 애플리케이션이 실행되는 경우를 포함한다.
서드-파티 애플리케이션의 경우, 전자 장치(2000)의 제조사와는 다른 회사에서 제작 및 배포하는 애플리케이션이다. 따라서, 전자 장치(2000)의 OS에 의하여 서드-파티 애플리케이션을 탐색 및/또는 제어하기 위해서는, 서드-파티 애플리케이션의 제작사에서 제공하는 서드-파티 애플리케이션의 API가 필요하다. 혹은, 서드-파티 애플리케이션의 API가 제공되지 않거나, 호출 불가능한 경우, 전자 장치(2000) OS에 의한 애플리케이션의 탐색 및/또는 제어가 불가능하다. 이러한 경우에, 전자 장치(2000)에서 실행되는 서드-파티 애플리케이션을 탐색 및/또는 제어하기 위하여, 리모컨과 같은 별도의 제어 장치가 이용될 수 있다.
개시된 실시예에 따른 전자 장치(2000)는 서드-파티 애플리케이션의 API 없이, 사용자가 리모컨과 같은 제어 장치를 이용하여 애플리케이션을 탐색 및/또는 제어하는 것과 동일/유사한 방식으로 전자 장치(2000)가 제어되도록 할 수 있다.
전자 장치(2000)는 전자 장치(2000)의 화면 분석을 통해 UI 요소들을 식별하고, 식별된 UI 요소들을 사용자 의도에 따라 선택함으로써, 애플리케이션을 탐색 및/또는 제어할 수 있다. 전자 장치(2000)는 사용자 입력(110)에 기초하여 사용자 의도를 결정하고, 애플리케이션 화면의 UI 요소들을 식별하고, 사용자 의도 및 UI 요소들에 기초하여, 사용자 의도를 달성(즉, 사용자 의도에 대응하는 제어 명령을 실행)하기 위한 적어도 하나의 작업을 결정할 수 있다.
일 실시예에서, 전자 장치(2000)는 사용자 의도를 달성하기 위한 적어도 하나의 하위 목표를 결정할 수 있다. 각각의 하위 목표는, 각각의 하위 목표에 대응하는 작업을 수행함으로써 달성될 수 있다. 전자 장치(2000)는 각각의 하위 목표가 달성될 때마다, 전자 장치(2000)의 화면을 분석하고, 식별된 UI 요소들에 기초하여 하위 목표를 달성하기 위한 작업을 동적으로 결정할 수 있다.
전자 장치(2000)가 화면 탐색을 수행하는 구체적인 동작들에 대해서는, 후술하는 도면들과 그에 대한 상세한 설명에서 더 상세하게 기술하기로 한다.
도 2는 본 개시의 일 실시예에 따른 전자 장치가 애플리케이션의 화면을 탐색하는 방법을 설명하기 위한 흐름도이다.
단계 S210에서, 일 실시예에 따른 전자 장치(2000)는 사용자 입력을 수신한다.
일 실시예에서, 사용자 입력은 음성 신호 입력, 텍스트 입력, 제스처 입력, 제2 디바이스의 복제된 화면에 대한 터치 입력을 포함할 수 있으나, 이에 한정되는 것은 아니다.
단계 S220에서, 일 실시예에 따른 전자 장치(2000)는 사용자 입력에 기초하여, 전자 장치(2000)를 제어하기 위한 사용자 의도를 결정한다.
일 실시예에서, 사용자 의도란, 사용자 입력이 전자 장치(2000)에서 어떠한 기능 및/또는 동작을 수행하기 위한 것인지 나타내는 정보를 포함한다.
일 실시예에서, 전자 장치(2000)는 사용자 입력의 유형을 식별할 수 있다. 전자 장치(2000)는 사용자 입력의 유형에 기초하여 사용자 입력을 분석함으로써 사용자 의도를 결정할 수 있다. 예를 들어, 사용자 입력이 음성 신호인 경우, 전자 장치(2000)는 음성 신호에 자동 음성 인식(Automatic Speech Recognition; ASR)을 수행하여 음성 신호를 텍스트로 변환하고, 텍스트를 자연어 이해(Natural Language Understanding; NLU) 모델에 적용하여 사용자 의도를 결정할 수 있다. 예를 들어, 사용자 입력이 텍스트 입력인 경우, 전자 장치(2000)는 텍스트를 자연어 이해(Natural Language Understanding; NLU) 모델에 적용하여 사용자 의도를 결정할 수 있다. 예를 들어, 사용자 입력이 제스처 신호인 경우, 전자 장치(2000)는 제스처 인식에 기반하여 사용자 의도를 결정할 수 있다. 이 경우, 제스처 모양 마다 기 정의된 제어 동작들이 대응될 수 있다. 예를 들어, 사용자 입력이 제2 디바이스의 복제된 화면에 대한 터치 입력인 경우, 전자 장치(2000)는 제2 디바이스의 화면에 대한 사용자의 터치 입력에 기초하여 사용자 의도를 결정할 수 있다. 구체적으로, 사용자 의도는, 제2 디바이스에서 터치 된 위치의 UI 요소에 대응하는 제어 동작의 실행일 수 있다.
단계 S230에서, 일 실시예에 따른 전자 장치(2000)는 사용자 의도에 대응하는 제어 동작을 수행하기 위한 제어 명령을 결정한다.
일 실시예에서, 제어 명령은, 사용자 의도에 매칭되는 전자 장치(2000)의 기능이 실행되도록 하는, 전자 장치(2000)의 주요한 제어 동작에 관련된 명령을 나타낸다. 즉, 제어 명령이 실행됨으로써 사용자 의도가 달성된다.
사용자 의도가 전자 장치(2000)에서 N 애플리케이션을 이용하여 콘텐트 A를 재생하고자 하는 것인 경우를 예시로 설명한다. 이 경우, 사용자 의도에 관련된 전자 장치(2000)의 제어 동작들은, 예를 들어, N 애플리케이션 실행, 콘텐트 A 검색, 콘텐트 A 재생 등을 포함할 수 있다. 여기서, 사용자 의도에 대응되는 주요한 제어 동작은 '콘텐트 A 재생'이므로, 전자 장치(2000)는 제어 명령을 '콘텐트 A 재생'으로 결정할 수 있다.
일 실시예에서, 제어 명령(3000)은 적어도 하나의 작업을 수행함으로써 실행될 수 있다. 이에 대한 설명은 단계 S250에 대한 설명에서 기술한다.
제어 명령은 기계어, 프로그램 코드 등의 명령어(instruction)일 수 있으나, 이에 한정되는 것은 아니다. 본 개시에서는 설명의 편의를 위해 제어 명령을 자연어 형태(예를 들어, X 기능 실행)로 설명한다.
단계 S240에서, 일 실시예에 따른 전자 장치(2000)는 애플리케이션 화면의 사용자 인터페이스(User Interface; UI)의 요소들을 식별한다. UI 요소는, 사용자에 의해 선택되면 특정 기능이 수행되는 것일 수 있으며, 아이콘, 이미지, 텍스트 및 버튼 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 전자 장치(2000)는 화면 레이아웃을 분석할 수 있다. 화면 레이아웃이란, 화면 내 UI 요소들의 배열을 포함한다. 전자 장치(2000)는 화면 레이아웃 내 존재하는 하나 이상의 UI 요소를 검출하고, 화면 내 UI 요소들의 크기 및 위치 등을 식별할 수 있다. 전자 장치(2000)는 검출된 UI 요소들을 분류하고 인식할 수 있다. 예를 들어, 전자 장치(2000)는 검출된 각각의 UI 요소들을 아이콘, 이미지, 텍스트 또는 버튼 등으로 분류할 수 있다. 나아가, 전자 장치(2000)는 아이콘으로 분류된 UI 요소가 어떤 아이콘인지 인식하거나, 텍스트로 분류된 UI 요소가 어떤 텍스트인지 인식하는 등, UI 요소들의 구체적인 내용을 인식할 수 있다.
일 실시예에서, 전자 장치(2000)는 결정된 제어 명령이 전자 장치(2000)의 운영체제에 의해 호출될 수 있는 기능에 대한 제어 명령인지 여부를 식별할 수 있다. 일부 실시예에서, 전자 장치(2000)는 결정된 제어 명령이 전자 장치(2000)의 시스템 애플리케이션에 관한 기능이어서 전자 장치(2000)의 운영체제에 의해 직접적으로 호출될 수 있는 기능인 경우, 화면 내 UI 요소 식별 동작을 생략하고 직접적으로 시스템 애플리케이션을 제어할 수 있다. 일부 실시예에서, 전자 장치(2000)는 결정된 제어 명령이 전자 장치(2000)에 설치된 서드-파티 애플리케이션 및/또는 연결된 외부 소스들에 관한 기능이어서, 전자 장치(2000)의 운영체제에 의해 직접적으로 호출 불가능한 기능인 경우, 제어 명령을 실행하기 위한 작업들을 결정하기 위해 UI 요소들을 식별할 수 있다.
일 실시예에 따른 전자 장치(2000)는 식별된 UI 요소들에 관련된 정보를 가공함으로써, 레이아웃 정보를 생성할 수 있다.
단계 S250에서, 일 실시예에 따른 전자 장치(2000)는 사용자의 의도 및 사용자 인터페이스의 요소들에 기초하여, 제어 명령을 실행하기 위한 적어도 하나의 하위 목표를 결정한다.
일 실시예에서, 전자 장치(2000)는 제어 명령을 실행하기 위한 적어도 하나의 하위 목표를 결정할 수 있다. 하나의 하위 목표는, 하나의 작업에 각각 대응한다. 즉, 하나의 작업이 수행됨으로써 하나의 하위 목표가 달성될 수 있으며, 모든 작업이 수행됨으로써 모든 하위 목표가 달성되면, 제어 명령이 실행되어 사용자 의도가 달성되었다고 볼 수 있다.
개시된 실시예에서, 제어 명령을 실행하기 위한 적어도 하나의 하위 목표는, 식별된 UI 요소에 기초하여 동적으로 결정된다. 즉, 제어 명령이 실행됨으로써 사용자 의도가 달성되나, 전자 장치(2000)의 현재 상태는 상황 별로 상이할 수 있으므로, 전자 장치(2000)의 현재 상태가 어떠한지에 따라 제어 명령이 실행 가능한 상태에 도달하기 위한 하나 이상의 단계들이 필요할 수 있다.
전술한 예시인 사용자 의도가 전자 장치(2000)에서 N 애플리케이션을 이용하여 콘텐트 A를 재생하고자 하는 것이고, 이에 따라 결정된 제어 명령은 '콘텐트 A 재생'인 경우를 참조하여 설명한다.
예를 들어, 전자 장치(2000)의 현재 화면에 콘텐트 A가 존재하는 경우, 적어도 하나의 작업인 콘텐트 A 선택만을 수행하면, 제어 명령인 '콘텐트 A 재생'이 실행될 수 있다. 다른 예에서, 전자 장치(2000)에서 N 애플리케이션은 실행 중이지만, N 애플리케이션의 현재 화면에 콘텐트 A가 존재하지 않는 경우, 적어도 두개의 작업인 콘텐트 A 검색, 콘텐트 A 선택을 수행하면, 제어 명령인 '콘텐트 A 재생'이 실행될 수 있다. 다른 예에서, 전자 장치(2000)에서 N 애플리케이션이 실행 중이지 않은 경우, 적어도 3개의 작업인 N 애플리케이션 실행, 콘텐트 A 검색, 콘텐트 A 선택을 수행하면, 제어 명령인 '콘텐트 A 재생'이 실행될 수 있다.
단계 S260에서, 일 실시예에 따른 전자 장치(2000)는 적어도 하나의 작업을 수행하여 제어 명령을 실행한다.
일 실시예에서, 하나의 작업은 애플리케이션을 탐색하기 위한 액션의 단위인, 시스템 액션을 하나 이상 포함할 수 있다. 시스템 액션은 예를 들어, 커서 상하좌우 이동, 클릭 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 전자 장치(2000)는 하위 목표가 둘 이상인 것에 기초하여, 제어 명령이 실행될 때까지 하위 목표들을 순차적으로 달성할 수 있다. 하위 목표가 둘인 경우, 예를 들어, 전자 장치(2000)는 제1 하위 목표에 대응하는 제1 작업을 수행한 후에, 제2 하위 목표에 대응하는 제2 작업을 수행할 수 있다.
예를 들어, 전자 장치(2000)는 하위 목표들 각각에 대응하는 작업들 각각을 순차적으로 수행함으로써, 하위 목표들이 순차적으로 달성되도록 할 수 있다. 하위 목표들이 순차적으로 달성됨으로써 애플리케이션의 탐색 동작이 이루어진다. 전자 장치(2000)는 하위 목표들을 순차적으로 달성하면서, 하위 목표들이 달성되었는지 여부를 중간 점검할 수 있다. 전자 장치(2000)는 하위 목표 달성 여부를 식별하고, 하위 목표 달성 여부에 따라 다음 하위 목표를 동적으로 결정할 수 있다.
도 3a는 본 개시의 일 실시예에 따른 전자 장치의 제어에 관련된 애플리케이션 및 소스들을 설명하기 위한 도면이다.
일 실시예에 따른 전자 장치(2000)는, 사용자로부터 전자 장치(2000)의 제어(예를 들어, 화면 제어)를 위한 사용자 입력을 획득하고, 사용자 입력에 대응되는 제어 명령을 실행할 수 있다.
일 실시예에서, 전자 장치(2000)에서는 서드-파티 애플리케이션들(310)이 실행될 수 있다. 서드-파티 애플리케이션들(310)이란, 전자 장치(2000)의 OS에서 제공하는 API를 이용하여 서드-파티 회사가 특정 기능 및/또는 서비스를 제공하는 애플리케이션을 말한다. 서드-파티 애플리케이션은 전자 장치(2000)의 운영체제(OS)에 의해 실행 및 제어가 가능한 제조사 애플리케이션, 시스템 애플리케이션 등과 구별된다. 전자 장치(2000)에서 실행되는 서드-파티 애플리케이션들(310)은 예를 들어, OTT(Over The Top) 미디어 서비스 애플리케이션, 비디오 애플리케이션, 게임 애플리케이션 등일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 전자 장치(2000)에는 외부 소스들(320)이 연결되어 사용될 수 있다. 외부 소스들(320)이란, 전자 장치(2000)에 유선 및/또는 무선으로 연결되어 전자 장치(2000)로 콘텐츠를 제공하는 디바이스들을 말한다. 즉, 외부 소스들(320)이 전자 장치(2000)에 연결되면, 외부 소스가 전자 장치(2000)로 콘텐츠/미디어/애플리케이션 등을 제공한다. 외부 소스들(320)은 예를 들어, 게임 콘솔, 셋탑 박스, 데스크탑 PC, 랩탑 PC 등일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 따른 전자 장치(2000)는, 본 개시의 실시예들에 따라 임의의 애플리케이션 및/또는 디바이스를 제어할 수 있다. 먼저 도 3b를 참조하여, 전자 장치(2000)의 사용자가 일반적으로 임의의 애플리케이션 및/또는 디바이스를 제어하는 경우에 대하여 설명하고, 도 3b 이후의 도면들을 참조하여, 본 개시의 전자 장치(2000)가 임의의 애플리케이션 및/또는 디바이스를 제어하는 동작들을 설명한다.
도 3b는, 도 3a에서 전술한 애플리케이션 및 소스들을 제어하기 위하여, 본 개시의 일 실시예에 따른 전자 장치의 사용자가 일반적으로 전자 장치를 조작하는 동작을 설명하기 위한 도면이다.
전자 장치(2000)에서 서드-파티 애플리케이션이 실행되거나 외부 소스 등이 연결되어 사용되는 경우, 이는 전자 장치(2000)의 운영체제(OS)에 의해 실행 및 제어가 가능한 애플리케이션 및/또는 디바이스가 아니기 때문에, 사용자에 의해 전자 장치(2000)가 직접/간접적으로 조작될 필요가 있다. 예를 들면, 사용자의 추상적인 명령(예를 들어, A 동영상 검색하고 틀어 줘)을 기초로 전자 장치(2000)에서 자동으로 사용자의 명령이 실행될 수는 없다. 사용자가 전자 장치(2000)를 조작하기 위한 일반적인 예시로써, 리모컨(330)이 이용되는 것을 예로 들 수 있다. 리모컨(330)은 전자 장치(2000)의 조작을 위한 복수의 버튼들을 포함하며, 복수의 버튼들은 각각 제어 액션들(340)에 대응될 수 있다.
일 예에서, 사용자는 리모컨(330)을 이용하여, 전자 장치(2000)의 화면을 탐색할 수 있다. 전자 장치(2000)에서 동영상 애플리케이션이 실행 중이고, 사용자가 동영상의 카테고리 탭을 변경하려는 경우를 예시로 설명한다. 전자 장치(2000)의 현재 화면이 첫번째 동영상 카테고리가 선택된 제1 화면(350)일 때, 사용자는 두번째 동영상 카테고리의 동영상 목록을 보기 위해서, 제어 액션들(340) 중에서 오른쪽 이동(342) 액션을 선택할 수 있다. 리모컨(330)은 오른쪽 이동(342) 액션에 대응하는 IR(Infrared) 신호를 전자 장치(2000)로 전송하여, 전자 장치(2000)가 두번째 동영상 카테고리가 선택된 제2 화면(360)을 표시하도록 할 수 있다. 같은 방식으로, 제어 액션들(340) 중에서 오른쪽 이동(342) 액션이 선택되면, 전자 장치(2000)에는 제3 화면(370)이 표시될 수 있다.
도 3b에서 설명한 것과 같은, 사용자에 의한 전자 장치(2000)의 조작으로 전자 장치(2000)의 화면을 탐색하는 것은, 휴먼 내비게이션으로 지칭될 수 있다. 후술하는 도면들에 대한 설명에서는, 본 개시의 전자 장치(2000)가, 임의의 애플리케이션 및/또는 디바이스를 제어하기 위해, 스스로 화면 내비게이션을 수행하는 동작들이 설명될 것이다.
도 4는 본 개시의 일 실시예에 따른 전자 장치의 제어 동작에 포함되는 세부 동작들을 도시한 도면이다.
일 실시예에서, 전자 장치(2000)는 다양한 소프트웨어 모듈을 이용하여 전자 장치(2000)의 제어 동작(예를 들어, 화면 제어 동작)을 수행할 수 있다. 예를 들어, 전자 장치(2000)는 레이아웃 분석기(410), 명령 분석기(420), 플래너(430) 및 레이아웃 탐색기(440)를 이용하여 화면 제어 동작을 수행할 수 있다. 다만, 전술한 소프트웨어 모듈들은 각 모듈의 기능을 설명하기 위해 예시적으로 구별한 것일 뿐, 이에 한정되는 것은 아니다.
전자 장치(2000)는 레이아웃 분석기(410)를 이용하여 레이아웃 정보(412)를 획득할 수 있다. 레이아웃 분석기(410)는 전자 장치(2000)의 화면 이미지(408)를 입력 받아, 레이아웃 정보(412)를 출력한다. 레이아웃 정보(412)는 예를 들어, 화면 내 UI 요소들의 위치, UI 요소들의 크기, 아이콘은 어떤 기능을 하는 아이콘인지(예를 들어, 아이콘 인식), 텍스트의 내용이 무엇인지(예를 들어, 문자 인식) 등을 포함할 수 있다. 레이아웃 분석기(410)에 대한 설명은 도 6에 대한 설명에서 더 서술한다.
전자 장치(2000)는 명령 분석기(420)를 이용하여 사용자 의도(422)를 결정할 수 있다. 명령 분석기(420)는 사용자 명령(418)을 입력 받아, 사용자 의도(422)를 출력한다. 사용자 의도란, 사용자 입력이 전자 장치(2000)에서 어떠한 기능 및/또는 동작을 수행하기 위한 것인지 나타내는 정보를 포함한다. 전자 장치(2000)는 제어 명령이 실행되도록 함으로써, 사용자 의도(422)가 달성되도록 할 수 있다. 명령 분석기(420)에 대한 설명은 도 5에 대한 설명에서 더 서술한다.
전자 장치(2000)는 플래너(430)를 이용하여 하위 목표(432)를 결정할 수 있다. 플래너(430)는 레이아웃 정보(412) 및 사용자 의도(422)에 기초하여, 하위 목표(432)를 결정한다. 전자 장치(2000)는 하위 목표(432)에 대응하는 작업을 결정할 수 있다. 하나의 작업이 수행됨으로써 하나의 하위 목표가 달성될 수 있으며, 결정된 모든(하나 이상의) 작업이 수행됨으로써 모든(하나 이상의) 하위 목표가 달성되면, 제어 명령이 실행되어 사용자 의도가 달성되었다고 볼 수 있다. 플래너(430)에 대한 설명은 도 7에 대한 설명에서 더 서술한다.
전자 장치(2000)는 레이아웃 탐색기(440)를 이용하여, 전자 장치(2000)의 화면을 탐색할 수 있다. 레이아웃 탐색기(440)는 하위 목표(432)에 기초하여, 하위 목표에 대응되는 작업을 수행한다. 작업은 하나 이상의 시스템 액션(442)을 포함할 수 있다. 레이아웃 탐색기(440)에 대한 설명은 도 8에 대한 설명에서 더 서술한다.
일 실시예에서, 하위 목표(432)는 복수일 수 있다. 예를 들어, 하위 목표(432)는 제1 하위 목표, 제2 하위 목표 등을 포함할 수 있다. 제1 작업이 수행되어 제1 하위 목표가 달성되면, 전자 장치(2000)는 레이아웃 분석을 다시 수행할 수 있다. 일부 실시예에서, 제1 작업이 수행되면 전자 장치(2000)에서 실행 중인 애플리케이션의 화면이 전환될 수 있다. 전자 장치(2000)는 전환된 화면을 분석하여 UI 요소들을 식별하여, 제2 레이아웃 정보를 획득할 수 있다. 전자 장치(2000)는 제2 레이아웃 정보 및 사용자 의도(422)에 기초하여, 제2 하위 목표를 결정할 수 있다. 전자 장치(2000)는 제2 하위 목표에 대응하는 제2 작업을 결정하고, 제2 작업을 수행할 수 있다. 전자 장치(2000)는 사용자 의도가 달성될 때까지, 레이아웃 분석 및 하위 목표 플래닝을 반복할 수 있다. 모든 하위 목표들이 달성됨으로써 최종적으로 제어 명령이 실행되고, 사용자 의도가 달성된 것으로 판단되면, 전자 장치(2000)는 동작을 종료할 수 있다.
일 실시예에 따른 전자 장치(2000)의 화면 탐색 동작은, 사용자 의도가 달성될 때까지 화면 분석을 반복하는 피드백 루프를 포함할 수 있다. 전자 장치(2000)는, 제어 명령을 실행하기 위한 적어도 하나의 작업을 수행하면서, 계속적인 레이아웃 분석을 통해, 변화하는 화면 분석 정보를 업데이트할 수 있다. 전자 장치(2000)는 하위 목표 달성 여부를 식별하고, 하위 목표 달성 여부에 따라 다음 하위 목표를 동적으로 결정할 수 있다. 일 실시예에 따른 전자 장치(2000)는 레이아웃 분석 결과에 따라 하위 목표를 변경함으로써, 하위 목표 시퀀스를 업데이트할 수 있다. 예를 들어, 전자 장치(2000)는 제1 하위 목표의 달성 여부에 기초하여, 제2 하위 목표를 다시 결정할 수 있다.
도 5는 본 개시의 일 실시예에 따른 전자 장치가 사용자 입력에 기초하여 사용자 의도를 결정하는 동작을 설명하기 위한 도면이다.
일 실시예에서, 사용자 입력은 음성 신호 입력, 텍스트 입력, 제스처 입력, 제2 디바이스의 복제된 화면에 대한 터치 입력을 포함할 수 있으나, 이에 한정되는 것은 아니다. 설명의 편의를 위해, 도 5를 설명함에 있어서 사용자 입력이 음성 신호 입력 임을 예시로 설명한다.
도 5를 참조하면, 일 실시예에 따른 전자 장치(2000)는 명령 분석기(500)를 이용하여 사용자 명령(510)을 분석하고, 사용자 의도(520)를 결정할 수 있다.
전자 장치(2000)는 사용자로부터 사용자가 수행하고자 하는 작업에 대한 명령을 나타내는 음성 신호를 수신할 수 있다. 예를 들어, 사용자 명령(510)은 “N 앱에서 A 콘텐트 재생해 줘”일 수 있다. 사용자 입력이 음성 신호 입력인 경우, 명령 분석기(500)는 자동 음성 인식(Automatic Speech Recognition; ASR) 모델(502) 및 자연어 이해(Natural Language Understanding; NLU) 모델(504)을 포함할 수 있다.
전자 장치(2000)는 ASR 모델(502)을 이용하여, 사용자로부터 수신된 음성 신호를 텍스트로 변환할 수 있다. ASR 모델(502)은 음향 모델(acoustic model; AM) 또는 언어 모델(language model; LM) 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. 일부 실시예에서, 전자 장치(2000)가 텍스트 입력을 획득하는 경우, ASR 모델(502)의 동작은 생략될 수 있다.
전자 장치(2000)는 획득된 텍스트를 NLU 모델(504)에 적용하여, 텍스트를 파싱(parsing)하고, 수신된 음성 신호의 발화 의도를 나타내는 인텐트(intent) 및 발화 문장의 구성 요소들을 나타내는 개체(entity)를 식별할 수 있다. 예를 들어, 명령 분석기(500)에 의해 결정된 사용자 의도(520)는 ‘N 앱에서 A 콘텐트 재생’일 수 있으며, 문장의 구성 요소들인 개체는, ‘N 앱’, ‘A 콘텐트’, ‘재생’ 등일 수 있다. NLU 모델(504)은 예를 들어, 트랜스포머 모델로 구현될 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 따른 전자 장치(2000)는 사용자 명령(510)을 획득하고, 명령 분석기(500)를 이용하여 전자 장치(2000)를 제어하고자 하는 사용자 의도(520)를 결정할 수 있다. 전자 장치(2000)는 사용자 의도(520)에 대응하는 제어 명령을 결정할 수 있다. 전술한 예시에 따르면, 전자 장치(2000)는 사용자 의도(520)에 대응하는 제어 명령을 ‘A 콘텐트 재생’으로 결정할 수 있다.
일 실시예에서, 전자 장치(2000)는 제어 명령을 실행하기 위한 적어도 하나의 작업을 결정할 수 있다. 예를 들어, 전자 장치(2000)는 제어 명령 ‘A 콘텐트 재생’을 실행하기 위해 필요한 작업으로 ‘A 콘텐트 선택’을 결정할 수 있다. 전자 장치(2000)가 전자 장치(2000)의 제어(예를 들어, 화면 제어)를 위해 사용자 의도(520)를 활용하는 동작들은, 후술하기로 한다.
한편, 일부 실시예에서, 사용자 입력이 음성 신호 입력 외 다른 형태의 입력(예를 들어, 제스처 입력, 제2 디바이스의 복제된 화면에 대한 터치 입력)인 경우, 명령 분석기(500)는 사용자 입력의 형태에 대응되는 데이터/신호 처리 모듈을 포함할 수 있다.
도 6은 본 개시의 일 실시예에 따른 전자 장치가 표시 중인 화면을 분석하여 레이아웃 정보를 획득하는 동작을 설명하기 위한 도면이다.
도 6을 설명함에 있어서, 설명의 편의를 위해, 도 5에서 예시로 들었던 사용자가 ‘N 앱에서 A 콘텐트 재생’ 하고자 하는 경우를 계속하여 예시로 사용한다.
도 6을 참조하면, 일 실시예에서, 전자 장치(2000)에서 실행되는 애플리케이션의 API를 획득할 수 없는 경우, 전자 장치(2000)는 애플리케이션 실행 화면의 UI 요소들이 어떤 기능에 대응되는지 알 수 없다. 전자 장치(2000)는 레이아웃 분석기(600)를 이용하여, 화면 이미지(610)를 분석하고, UI 요소들이 어떤 기능을 하는지 식별함으로써 레이아웃 정보를 생성할 수 있다.
일 실시예에서, 전자 장치(2000)에서 애플리케이션이 실행되는 경우, 애플리케이션 화면(612)의 사용자 인터페이스(User Interface; UI)의 요소들을 식별할 수 있다. UI 요소는, 사용자에 의해 선택되면 특정 기능이 수행되는 것일 수 있으며, 아이콘, 이미지, 텍스트 및 버튼 중 적어도 하나를 포함할 수 있다.
전자 장치(2000)는 전자 장치(2000)에서 표시 중인 화면 이미지(610)를 획득할 수 있다. 화면 이미지(610)는, 전자 장치(2000)에서 현재 실행 중인 애플리케이션 화면(612) 또는, 외부 소스가 연결되어 외부 소스에 의해 표시 중인 화면 등을 나타내는 이미지일 수 있다.
전자 장치(2000)는 레이아웃 분석기(600)를 이용하여, 화면 레이아웃을 분석할 수 있다. 화면 레이아웃이란, 화면 내 UI 요소들의 배열을 포함한다.
일 실시예에서, 전자 장치(2000)는 레이아웃 분해기(Layout Decomposer)(602)를 이용하여, 레이아웃의 전반적인 구성을 파악할 수 있다. 레이아웃 분해기(602)는, UI 요소를 검출하기 위한 인공지능 모델을 포함할 수 있으며, 레이아웃 내 존재하는 하나 이상의 UI 요소를 검출할 수 있다. 예를 들어, 전자 장치(2000)는 레이아웃 분해기(602)를 이용하여, 애플리케이션 화면(612) 내 UI 요소들의 크기, 위치 등을 식별할 수 있다.
일 실시예에서, 전자 장치(2000)는 레이아웃 분류기(Layout Classifier)(604)를 이용하여, 검출된 UI 요소들 각각을 분류할 수 있다. 레이아웃 분류기(604)는 UI 요소를 분류하기 위한 인공지능 모델(예를 들어, 비전 트랜스포머 모델 등)을 포함할 수 있다. 예를 들어, 레이아웃 분류기(604)는 검출된 각각의 UI 요소들을 아이콘, 이미지, 텍스트 또는 버튼 등으로 분류할 수 있다.
일 실시예에서, 전자 장치(2000)는 UI 요소 인식기(UI Element Recognizer)(606)를 이용하여, UI 요소들의 구체적인 내용을 인식할 수 있다. UI 요소 인식기(606)는, 텍스트 및/또는 이미지를 인식하기 위한 인공지능 모델을 포함할 수 있다. 예를 들어, UI 요소 인식기(606)는 아이콘으로 분류된 UI 요소가 어떤 아이콘인지 인식하거나, 텍스트로 분류된 UI 요소가 어떤 텍스트인지 인식할 수 있다.
일 실시예에서, 전자 장치(2000)는 레이아웃 데이터 생성기(Layout Data Generator)(608)를 이용하여, 레이아웃 정보(620)를 생성할 수 있다. 레이아웃 데이터 생성기(608)는, 예를 들어, 화면 내 UI 요소들의 위치, UI 요소들의 크기, 아이콘은 어떤 기능을 하는 아이콘인지(예를 들어, 아이콘 인식), 텍스트의 내용이 무엇인지(예를 들어, 문자 인식) 등을 포함하는 레이아웃 정보(620)를 생성할 수 있다. 레이아웃 정보의 일 예시(622)를 참조하면, UI 요소의 타입, 타이틀, 좌표, 크기, UI 요소가 현재 포커싱 되었는지 여부, 레이아웃 내 이미지 등이 포함될 수 있다.
일 실시예에서, 전자 장치(2000)는 제어 명령을 실행하기 위한 적어도 하나의 작업을 결정할 수 있다. 예를 들어, 전자 장치(2000)는 제어 명령 ‘A’ 콘텐트 재생을 실행하기 위해 필요한 작업으로, ‘A 콘텐트 선택’ 을 결정할 수 있다. 전자 장치(2000)는 제어 명령을 실행하기 위한 각각의 작업들을 수행하기 위해, 현재 화면으로부터 UI 요소들을 식별하고, 식별된 UI 요소들을 분석 및 가공하여 생성된 레이아웃 정보(620)를 활용할 수 있다. 이는, 후술하기로 한다.
한편, 일부 실시예에서, 전자 장치(2000)는 사용자가 실행하고자 하는 제어 명령이 전자 장치(2000)의 운영체제에 의해 호출될 수 있는 기능에 대한 제어 명령인지 여부를 식별할 수 있다.
전자 장치(2000)는 제어 명령이 호출 가능한 기능인지 여부에 기초하여, 레이아웃 분석기(600)를 이용하여 애플리케이션 화면(612)을 분석할 지 여부를 결정할 수 있다. 예를 들어, 제어 명령이 전자 장치(2000)의 운영체제에 의해 호출 가능한 기능(예를 들어, 볼륨 업)인 경우, 전자 장치(2000)는 화면 분석을 수행하지 않고, 운영체제에 의해 직접 볼륨 업 기능을 호출함으로써 전자 장치(2000)의 볼륨을 높일 수 있다. 예를 들어, 제어 명령이 서드-파티 앱의 기능에 관련된 명령인 것으로 인해, 전자 장치(2000)의 운영체제에 의해 호출 불가능한 기능(예를 들어, 서드-파티 앱 ‘N’에서 제공되는 콘텐트인, A 콘텐트 재생)인 경우, 전자 장치(2000)는 애플리케이션 화면(612) 내 UI 요소들을 식별하기 위해 레이아웃 분석기(600)를 이용할 수 있다. 전자 장치(2000)는 레이아웃 분석을 수행함으로써, 레이아웃 내 UI 요소들을 식별하고, 각각의 UI 요소들에 대응되는 기능이 무엇인지에 관한 정보를 획득할 수 있다.
일부 실시예에서, 레이아웃 분석기(600)는 장면 관계형 그래프 생성 모듈을 포함할 수 있다. 장면 관계형 그래프 생성 모듈은, 화면 이미지(610)를 입력 받아 장면 그래프를 생성하는 인공지능 모델인, 장면 그래프 생성 모델을 포함할 수 있다. 장면 그래프는 하나 이상의 노드 및 하나 이상의 엣지를 포함하는 데이터 구조체일 수 있다. 각각의 노드는 장면에 대응되며, 각각의 엣지는 장면 간 연결 관계를 나타낸다. 예를 들어, 애플리케이션 화면(612)이 그래프의 노드이며, 현재 애플리케이션 화면(612) 내의 UI 요소들을 선택함에 따라 전환되는 또다른 화면과의 연결 관계가 그래프의 엣지일 수 있다. 장면 그래프 생성 모델을 통해 생성된 장면 그래프의 엣지는, 현재 장면에 연결된 다음 장면을 추론한 확률을 포함할 수 있다.
일 실시예에서, 전자 장치(2000)는 장면 그래프 생성 모델을 훈련시킬 수 있다. 전자 장치(3000)는 장면 그래프 생성 모델을 훈련시키기 위한 훈련 데이터 셋을 획득할 수 있다. 훈련 데이터 셋은, 복수의 장면 이미지들, 장면 이미지들 내 UI 요소들, UI 요소들 각각이 선택되는 경우 화면 전환되는 또다른 장면들 간의 관계 등이 레이블링 되어있을 수 있다. 일 실시예에 따른 전자 장치(2000)는 장면 그래프 생성 모델을 훈련시키고, 장면 그래프 생성 모델에 화면 이미지(610)를 적용하여, 전자 장치(2000)의 현재 애플리케이션 화면(612)과 관련된, 장면 그래프를 생성할 수 있다. 일 실시예에서, 전자 장치(2000)가 장면 그래프 생성 모델을 이용하는 경우, 생성된 장면 그래프는 레이아웃 정보(620)에 포함될 수 있다.
도 7은 본 개시의 일 실시예에 따른 전자 장치가 사용자 입력에 따라 결정된 제어 명령을 실행하기 위한 적어도 하나의 하위 목표를 결정하는 동작을 설명하기 위한 도면이다.
도 7을 설명함에 있어서, 설명의 편의를 위해, 도 5, 6에서 예시로 들었던 사용자가 ‘N 앱에서 A 콘텐트 재생’ 하고자 하는 경우를 계속하여 예시로 사용한다.
도 7을 참조하면, 일 실시예에 따른 전자 장치(2000)는 플래너(700)를 이용하여, 사용자 의도(720)에 대응하는 제어 명령을 실행하기 위한 하위 목표(706)를 결정할 수 있다. 전자 장치(2000)는 전자 장치(2000)의 현재 상태(702) 및 제어 명령이 실행된 상태를 나타내는 타겟 상태(704)를 결정하고, 타겟 상태(704)에 도달하기 위한 하위 목표(706)를 생성할 수 있다.
일 실시예에서, 전자 장치(2000)는 레이아웃 정보(710)에 기초하여, 전자 장치(2000)의 현재 상태(702)를 검출할 수 있다. 예를 들어, 전자 장치(2000)는 레이아웃 정보(710)에 포함되는 인터페이스의 요소들에 기초하여, 전자 장치(2000)의 현재 상태(702)를 검출할 수 있다. 구체적인 예를 들면, 전자 장치(2000)는 현재 화면이 홈 화면이 표시 중인 상태임을 검출하거나, 동영상 애플리케이션에서 특정 카테고리의 탭이 선택된 상태임을 검출할 수 있다.
일 실시예에서, 전자 장치(2000)는 사용자 의도(720)에 기초하여, 사용자 의도(720)에 대응하는 제어 명령을 결정할 수 있다. 전자 장치(2000)는 사용자 의도(720) 및/또는 제어 명령에 기초하여, 전자 장치(2000)의 타겟 상태(704)를 결정할 수 있다. 구체적으로, 사용자 의도(720)에 기초하여 결정된 제어 명령이 ‘A 콘텐트 재생’이면, 전자 장치(2000)는 타겟 상태(704)를 ‘A’ 콘텐트가 재생 중인 상태로 결정할 수 있다.
일 실시예에서, 전자 장치(2000)는 현재 상태(702) 및 타겟 상태(704)에 기초하여, 전자 장치(2000)가 타겟 상태(704)에 도달하기 위한 하위 목표(706)를 생성할 수 있다. 예를 들어, 레이아웃 정보(710)의 분석 결과 전자 장치(2000)의 화면 내에 ‘A’ 콘텐트가 있는 경우, 전자 장치(2000)는 현재 상태(702)가 ‘A’ 콘텐트를 즉시 선택 가능한 상태이므로, ‘A’ 콘텐트 선택을 하위 목표(706)로 결정할 수 있다.
일 실시예에서, 전자 장치(2000)는 복수의 하위 목표(706)들을 생성함으로써, 하위 목표 시퀀스(730)를 생성할 수 있다. 예를 들어, 레이아웃 정보(710)의 분석 결과 전자 장치(2000)가 현재 홈 화면인 경우, 전자 장치(2000)는 현재 상태(702)인 홈 화면으로부터 타겟 상태(704)인 ‘A’ 콘텐트가 재생 중인 상태에 도달하기 위한 복수의 하위 목표(706)들을 생성할 수 있다. 하위 목표 시퀀스의 예시(732)를 참조하면, 하위 목표 시퀀스 예시(732)는, HDMI 2로 전환(Switch to HDMI 2)(제1 하위 목표) ‘N’ 앱 실행(Run ‘N’ App)(제2 하위 목표), 검색 메뉴 진입(Go to Search)(제3 하위 목표), 콘텐트 이름 ‘A’ 입력(Enter Content name ‘A’)(제4 하위 목표), 첫번째 콘텐트 선택(Select First Content)(제5 하위 목표)를 포함할 수 있다. 각각의 하위 목표(706)는, 클릭해야 하는 특정한 아이템/버튼의 정보, 또는 (x, y) 좌표를 포함할 수 있다. 일 실시예에서, 하위 목표(706)가 복수인 경우, 전자 장치(2000)는 사용자 의도에 대응하는 제어 명령이 실행될 때까지 하위 목표(706)들을 순차적으로 달성할 수 있다.
일 실시예에 따른 전자 장치(2000)는, 하위 목표(706)들을 생성할 때, 도 6의 레이아웃 분석기(600)에 의해 생성된 장면 그래프를 이용할 수 있다. 장면 그래프는 레이아웃 정보(710)에 포함될 수 있다. 전자 장치(2000)는 현재 상태(702), 타겟 상태(704) 및 장면 그래프에 포함되는 노드들 및 엣지들에 기초하여, 타겟 상태(704)에 도달하기 위한 하위 목표 시퀀스(730)를 생성할 수 있다.
일부 실시예에서, 플래너(700)는 인공지능 플래닝 알고리즘에 의해 구현될 수 있다. 인공지능 플래닝 알고리즘은 예를 들어, A*(A star), PSP(Plan-Space Planning), PoP(Partial Order Planning), STN(Simple Task Network), HTN(Hierarchical Task Network) 알고리즘 등이 이용될 수 있으나, 이에 한정되는 것은 아니다.
일부 실시예에서, 플래너(700)는 계층적 강화 학습 알고리즘에 의해 구현될 수 있다. 예를 들어, 플래너(700)는 사용자 의도를 달성하기 위해 수행될 태스크들을 계층적 구조로 플래닝할 수 있다. 예를 들어, 계층적 구조는 상위 레벨의 타겟 상태(704), 중간 레벨의 하위 목표(706)(또는, 하위 목표(706)들의 집합인 하위 목표 시퀀스(730)), 하위 레벨의 시스템 액션들을 포함할 수 있다. 전자 장치(2000)는, 각각의 하위 목표(706)를 달성하기 위해 시스템 액션들을 결정하는, 플래너(700)의 강화 학습 에이전트를 훈련시킬 수 있다. 강화 학습을 이용한 에이전트의 훈련에서, 에이전트는 현재 상태에서, 하위 목표(706)를 달성하기 위한 시스템 액션을 수행함에 따라 리워드를 획득할 수 있다. 전자 장치(2000)는 하위 목표(706)가 달성될 때까지 획득되는 리워드의 값이 최대가 되도록 에이전트를 훈련시킬 수 있다.
도 8은 본 개시의 일 실시예에 따른 전자 장치가 제어 명령을 실행하기 위해 적어도 하나의 작업을 결정하는 동작을 설명하기 위한 도면이다.
도 8을 설명함에 있어서, 설명의 편의를 위해, 도 5, 6, 7에서 예시로 들었던 사용자가 ‘N 앱에서 A 콘텐트 재생’ 하고자 하는 경우를 계속하여 예시로 사용한다.
도 8을 참조하면, 일 실시예에 따른 전자 장치(2000)는 레이아웃 탐색기(800)를 이용하여, 하위 목표에 대응하는 작업을 결정할 수 있다. 작업이란, 전자 장치(2000)에서 특정 기능을 실행하기 위한 단위인 시스템 액션들(예를 들어, 커서 이동, 클릭 등)의 집합을 말한다. 전자 장치(2000)는 하위 목표에 대응하는 작업을 수행함으로써, 하위 목표를 달성한다. 하위 목표를 달성하기 위한 작업은, 커서 이동 및 클릭 등을 포함하는, 시스템 액션들(830)로 구성된다.
일 실시예에서, 전자 장치(2000)는 레이아웃 정보(810) 및 하위 목표 시퀀스(820)에 기초하여, 하위 목표에 대응하는 작업을 결정할 수 있다.
일부 실시예에서, 도 6의 레이아웃 분석기(600)가 모델-프리인 경우, 레이아웃 정보(810)는 UI 요소들에 관련된 정보를 포함할 수 있다. 전자 장치(2000)는 레이아웃 정보(810)에 포함되는 UI 요소들 및 하위 목표(예를 들어, 클릭해야 하는 UI 요소 및 해당 UI 요소의 위치 등)에 기초하여, 하위 목표에 대응하는 작업을 결정할 수 있다.
일부 실시예에서, 도 6의 레이아웃 분석기(600)가 모델-기반인 경우, 레이아웃 정보(810)는 UI 요소들에 관련된 정보 외 장면 그래프를 더 포함할 수 있다. 전자 장치(2000)는 레이아웃 정보(810)에 포함되는 장면 그래프의 장면 간 연결 관계(예를 들어, 현재 장면 및 타겟 상태에 대응되는 장면), 현재 위치(예를 들어, 현재 장면의 위치, 현재 커서의 위치 등) 및 하위 목표(예를 들어, 클릭해야 하는 UI 요소 및 해당 UI 요소의 위치 등)에 기초하여, 하위 목표에 대응하는 작업을 결정할 수 있다.
예를 들어, 하위 목표 시퀀스(820)에 포함되는 하위 목표들 중 제1 하위 목표가 HDMI 2로 전환(Switch to HDMI2)인 경우, 전자 장치(2000)는 하위 목표를 달성하기 위해 수행되어야 할 작업을 ‘HDMI 2 선택’으로 결정할 수 있다.
전자 장치(2000)는 레이아웃 정보(810)에 기초하여, 결정된 작업 ‘HDMI 2 선택’의 수행하기 위한 시스템 액션들(830)을 결정할 수 있다. 시스템 액션들의 예시(832)를 참조하면, ‘HDMI 2 선택’ 작업에 포함되는 시스템 액션들(830)은, 홈으로(Home)(제1 시스템 액션), 왼쪽으로 이동 2회(Move Left * 2)(제2 시스템 액션), 엔터(Enter)(제3 시스템 액션), 오른쪽으로 이동 3회(Move Right * 2)(제4 시스템 액션), 엔터(Enter)(제5 시스템 액션)을 포함할 수 있다. 전자 장치(2000)는 레이아웃 탐색기(800)를 이용하여, 전술한 제1 시스템 액션 내지 제5 시스템 액션을 수행함으로써, 화면 및/또는 애플리케이션을 탐색할 수 있다. 레이아웃 탐색기(800)에 의해 모든 시스템 액션이 수행되면, 작업 ‘HDMI 2 선택’이 완료되며 전자 장치(2000)의 소스 연결 설정이 HDMI 2로 변경된다.
도 9a는 본 개시의 일 실시예에 따른 전자 장치가 화면 제어를 위해 작업을 수행하는 동작을 설명하기 위한 도면이다.
일 실시예에서, 전자 장치(2000)는 사용자로부터 음성 신호 입력을 수신할 수 있다. 사용자는 전자 장치(2000)의 화면(902)을 제어하기 위한 음성(906)을 입력한다. 예를 들어, 전자 장치(2000)는 사용자로부터 “광고 건너뛰기”의 음성 신호 입력을 수신할 수 있다.
전자 장치(2000)는 사용자 입력에 기초하여 전자 장치를 제어하기 위한 사용자 의도를 결정할 수 있다. 전자 장치(2000)는 명령 분석기(910)를 이용하여, 사용자 의도를 결정하고, 사용자 의도에 대응하는 전자 장치(2000)의 제어 명령을 결정할 수 있다. 예를 들어, 결정된 제어 명령은 ‘광고 건너뛰기 클릭’일 수 있다.
전자 장치(2000)는 화면(902)에 표시된 UI 요소들을 식별할 수 있다. 전자 장치(2000)는 레이아웃 분석기(920)를 이용하여, 전자 장치(2000)의 화면(902)을 나타내는 이미지를 획득하고, 획득한 이미지를 분석할 수 있다. 예를 들어, 전자 장치(2000)는 화면(902)에 표시된 UI 요소들을 검출하여, 화면(902) 내 UI 요소들의 크기, 위치 등을 식별할 수 있다. 전자 장치(2000)는 검출된 각각의 UI 요소들을 아이콘, 이미지, 텍스트 또는 버튼 등으로 분류할 수 있다. 나아가, 전자 장치(2000)는 분류된 UI 요소들이 어떤 기능을 갖는 아이콘/버튼인지, 어떤 내용을 갖는 텍스트인지 등을 인식할 수 있다. 예를 들어, 전자 장치(2000)는 화면(902) 내에서 광고 건너뛰기 버튼(904)을 식별할 수 있다.
전자 장치(2000)는 사용자 의도 및 UI 요소들에 기초하여 제어 명령을 실행하기 위한 적어도 하나의 하위 목표를 결정할 수 있다. 전자 장치(2000)는 플래너(930)를 이용하여, 사용자 의도, 사용자 의도에 대응하는 제어 명령, 화면(902) 내 UI 요소들에 기초하여, 제어 명령을 실행하기 하위 목표를 결정할 수 있다. 예를 들어, 전술한 예시에 따라 결정된 제어 명령이 ‘광고 건너뛰기 클릭’인 경우, 현재 화면(902)에서 광고 건너뛰기 버튼(904)을 클릭함으로써 제어 명령이 실행될 수 있으므로, 전자 장치(2000)는 제어 명령을 실행하기 위한 하위 목표 ‘광고 건너뛰기 버튼 클릭’을 결정할 수 있다.
전자 장치(2000)는 결정된 작업을 수행하여 하위 목표를 달성함으로써 제어 명령을 실행할 수 있다. 전자 장치(2000)는 레이아웃 탐색기(940)를 이용하여, 하위 목표를 달성하기 위한 작업을 결정할 수 있다. 작업은, 복수개의 시스템 액션들을 포함할 수 있다. 전자 장치(2000)는 작업을 수행하기 위한 시스템 액션들을 결정하고, 시스템 액션들을 수행할 수 있다. 예를 들어, 전자 장치(2000)는 현재 커서 위치에 기초하여, 광고 건너뛰기 버튼(904)으로 커서를 이동하고, 광고 건너뛰기 버튼(904)을 클릭하는, 시스템 액션들을 수행할 수 있다.
일 실시예에 따른 전자 장치(2000)는 사용자 입력에 기초하여 결정된 제어 명령이 실행되면, 제어 명령에 대응되는 기능을 사용자에게 제공하면서, 사용자의 다음 입력을 기다릴 수 있다. 전자 장치(2000)는 다음 사용자 입력이 수신되면, 사용자 입력에 기초하여 전술한 동작들을 반복할 수 있다.
도 9b는 본 개시의 일 실시예에 따른 전자 장치가 화면 제어를 위해 복수의 작업을 수행하는 동작을 설명하기 위한 도면이다.
일 실시예에서, 전자 장치(2000)는 사용자로부터 음성 신호 입력을 수신할 수 있다. 사용자는 전자 장치(2000)의 화면(912)을 제어하기 위한 음성(918)을 입력한다. 예를 들어, 전자 장치(2000)는 사용자로부터 “오리지날 탭에서 콘텐트 A 열어줘”의 음성 신호 입력을 수신할 수 있다.
전자 장치(2000)는 명령 분석기(910)를 이용하여, 사용자 의도를 결정하고, 사용자 의도에 대응하는 전자 장치(2000)의 제어 명령을 결정할 수 있다. 예를 들어, 결정된 제어 명령은 ‘콘텐트 A 재생’일 수 있다.
전자 장치(2000)는 레이아웃 분석기(920)를 이용하여, 전자 장치(2000)의 화면(912)을 나타내는 이미지를 획득하고, 획득한 이미지를 분석할 수 있다. 이는, 전술하였으므로, 동일한 설명은 생략한다.
전자 장치(2000)는 플래너(930)를 이용하여, 사용자 의도, 사용자 의도에 대응하는 제어 명령, 화면(912) 내 UI 요소들에 기초하여, 제어 명령을 실행하기 적어도 하나의 하위 목표를 결정할 수 있다. 예를 들어, 전술한 예시에 따라 결정된 제어 명령이 ‘콘텐트 A 재생’인 경우, 현재 화면(912)에는 콘텐트 A가 표시되어 있지 않아 직접적으로 콘텐트 A 재생을 할 수 없다. 이 경우, 전자 장치(2000)는 제어 명령이 실행되도록 하기 위해, 단계적으로 작업을 수행하기 위한 적어도 하나의 하위 목표를 결정할 수 있다.
일 실시예에서, 전자 장치(2000)는 하위 목표를 결정할 때, 전자 장치(2000)의 현재 상태 및 타겟 상태를 이용할 수 있다. 전자 장치(2000)는 화면(912) 내의 UI 요소들에 기초하여, 전자 장치(2000)의 현재 상태를 검출할 수 있다. 예를 들어, 전자 장치(2000)는 화면(912) 내의 UI 요소들 중에서, 추천 탭(914)이 현재 선택되어 있으며, 오리지날 탭(916)은 추천 탭(914)의 오른쪽에 위치함을 검출할 수 있다. 전자 장치(2000)는 사용자 의도 및 결정된 제어 명령 중 적어도 하나에 기초하여, 제어 명령이 실행된 상태를 나타내는, 전자 장치(2000)의 타겟 상태를 결정할 수 있다. 예를 들어, 전자 장치(2000)는 제어 명령 ‘콘텐트 A 재생’이 실행된 상태를 타겟 상태로 결정할 수 있다.
전자 장치(2000)는 현재 상태에서 타겟 상태에 도달하기 위한 하위 목표들을 결정할 수 있다. 예를 들어, 전자 장치(2000)는 제1 하위 목표(950)를 ‘오리지날 탭으로 이동’으로 결정하고, 제2 하위 목표(960)를 콘텐트 A 클릭’으로 결정할 수 있다.
전자 장치(2000)는 레이아웃 탐색기(940)를 이용하여, 하위 목표들 각각에 대하여, 하위 목표들 각각 달성하기 위한 작업들 각각을 결정할 수 있다. 하나의 작업은 복수개의 시스템 액션들을 포함할 수 있다. 예를 들어, 전자 장치(2000)는 화면(912) 내에서 오리지날 탭(916)을 선택하기 위한 커서 이동 액션 및 클릭 액션을 결정하고, 액션들을 수행함으로써 제1 하위 목표(950)를 달성할 수 있다.
일 실시예에 따른 전자 장치(2000)는 레이아웃 탐색기(940)에 의해 하나의 하위 목표가 달성되면, 다음 하위 목표를 달성하기 위한 동작들을 수행할 수 있다. 예를 들어, 전자 장치(2000)는 오리지날 탭(916)이 선택되어 현재 화면(912)이 다른 화면으로 전환되는 경우 제1 하위 목표(950)가 달성된 것으로 결정할 수 있다. 전자 장치(2000)는 레이아웃 분석기(920)를 이용하여 제2 하위 목표(960) 달성을 위한 레이아웃 분석을 수행할 수 있다. 레이아웃 분석 결과, 제2 하위 목표(960)는 변경함으로써, 하위 목표 시퀀스를 업데이트될 수 있다. 이는 도 9c 및 도 9d를 참조하여 더 설명한다.
도 9c는 본 개시의 일 실시예에 따른 전자 장치가 화면 제어를 위해 복수의 작업을 수행하는 동작을 더 설명하기 위한 도면이다.
도 9c를 참조하면, 일 실시예에 따른 전자 장치(2000)는 제1 하위 목표(950)의 달성 여부에 기초하여, 제2 하위 목표(960)를 결정할 수 있다.
일 실시예에서, 전자 장치(2000)는 제어 명령을 실행하기 위한 애플리케이션의 탐색 동작이 수행되는 동안, 애플리케이션 탐색 동작을 중간 점검할 수 있다. 예를 들어, 전자 장치(2000)는, 레이아웃 탐색기(940)를 이용하여 제1 하위 목표(950)에 대응하는 작업이 수행됨에 따라 화면이 전환되면, 레이아웃 분석기(920)를 이용하여 전환된 화면(922)을 다시 분석할 수 있다. (이하에서, 도 9b의 전환 이전의 화면(912)을 제1 화면으로 지칭하고, 도 9c의 전환 이후의 화면(922)을 제2 화면으로 지칭한다.) 즉, 전자 장치(2000)는 애플리케이션의 화면이 제1 화면(912)에서 제2 화면(922)으로 전환된 것에 기초하여, 애플리케이션의 탐색 동작의 중간 점검을 위해 제1 하위 목표가 달성되었는지 여부를 식별할 수 있다.
전자 장치(2000)는 제2 화면(922) 내의 UI 요소들에 기초하여, 전자 장치(2000)의 현재 상태를 검출할 수 있다. 예를 들어, 전자 장치(2000)는 레이아웃 분석기(920)를 이용하여 제2 화면(922)내의 UI 요소들 중에서, 오리지날 탭(916)이 현재 선택되어 있으므로, 제1 하위 목표(950)가 달성된 상태임을 식별할 수 있다. 전자 장치(2000)는 제1 하위 목표의 달성 여부에 기초하여, 제2 하위 목표를 동적으로 결정할 수 있다. 예를 들어, 제1 하위 목표(950)가 달성 되었으므로, 전자 장치(2000)는 제1 하위 목표(960) 다음에 수행될 제2 하위 목표(960)를 동적으로 결정할 수 있다. 일부 실시예에서, 전자 장치(2000)는 제2 화면(922) 내에 콘텐트 A(924)가 존재함을 식별할 수 있다. 현재 표시 중인 제2 화면(922)에서 콘텐트 A(924)를 클릭함으로써 제어 명령(콘텐트 A 재생)이 실행될 수 있으므로, 전자 장치(2000)는 제어 명령을 실행하기 위해 이전에 결정된 제2 하위 목표(960) ‘콘텐트 A 클릭”을 확정할 수 있다. 일부 실시예에서, 도 9c에 도시된 것과는 다른 예시를 들면, 제1 하위 목표(950)가 달성된 상태이더라도, 제2 화면(922) 내에 콘텐트 A(924)가 존재하지 않아 콘텐트 A(924)가 식별되지 않을 수 있다. 이 경우, 전자 장치(2000)는 기존의 제2 하위 목표(960)인 ‘콘텐트 A’ 클릭을 위한 작업이 수행될 수 없으므로, 제2 하위 목표(960)를 변경할 수 있다. 예를 들어, 전자 장치(2000)는 제2 하위 목표(960)를 ‘콘텐트 A(924) 검색’으로 변경할 수 있다. 제2 하위 목표가 변경되는 경우, 제2 하위 목표 이후의 하위 목표들 또한 변경됨으로써 하위 목표 시퀀스가 업데이트될 수 있다. 각각의 하위 목표가 변경되는 동작은 동일한 방식으로 수행될 수 있으므로, 동일한 설명은 생략된다.
전자 장치(2000)는 레이아웃 탐색기(940)를 이용하여, 하위 목표들 각각에 대하여, 하위 목표들 각각 달성하기 위한 작업들 각각을 결정할 수 있다. 하나의 작업은 복수개의 시스템 액션들을 포함할 수 있다. 예를 들어, 전자 장치(2000)는 화면(922) 내에서 콘텐트 A(924)을 선택하기 위한 커서 이동 액션 및 클릭 액션을 결정하고, 액션들을 수행함으로써 제2 하위 목표(960)를 달성할 수 있다.
도 9d는 본 개시의 일 실시예에 따른 전자 장치가 화면 제어를 위해 결정된 작업을 업데이트하는 동작을 설명하기 위한 도면이다.
도 9d의 예시는, 도 9b에 도시된 예시에서 제1 하위 목표(950)에 대응하는 작업이 수행된 이후의 경우를 예시로 설명한다.
일 실시예에서, 전자 장치(2000)는, 레이아웃 탐색기(940)를 이용하여 제1 하위 목표(950)에 대응하는 작업이 수행됨에 따라 화면이 전환되면, 레이아웃 분석기(920)를 이용하여, 전환된 화면인 제2 화면(922)을 다시 분석할 수 있다. (다만, 도 9c에서 설명한 예시와 달리, 도 9d의 제2 화면(922) 예시는 제1 하위 목표에 대응하는 작업이 잘못 수행되어 오리지날 탭(916)이 아닌 엔터테인먼트 탭(917)이 선택된 경우이다.)
전자 장치(2000)는 제2 화면(922) 내의 UI 요소들에 기초하여, 전자 장치(2000)의 현재 상태를 검출할 수 있다. 예를 들어, 전자 장치(2000)는 레이아웃 분석기(920)를 이용하여 제2 화면(922)내의 UI 요소들 중에서, 오리지날 탭(916)이 아닌 엔터테인먼트 탭(917)이 현재 선택되어 있으므로, 제1 하위 목표(950)가 달성되지 않은 상태임을 식별할 수 있다.
전자 장치(2000)는 제1 하위 목표의 달성 여부에 기초하여, 제2 하위 목표를 결정할 수 있다. 예를 들어, 제1 하위 목표(950)가 달성되지 않았으므로, 전자 장치(2000)는 제2 하위 목표(960)를 결정하지 않고, 제1 하위 목표(950)가 다시 수행되도록 할 수 있다.
전자 장치(2000)는 제2 화면(922) 내의 UI 요소들에 기초하여, 전자 장치(2000)의 현재 상태를 검출할 수 있다. 예를 들어, 전자 장치(2000)는 제2 화면(922) 내의 UI 요소들 중에서, 엔터테인먼트 탭(917)이 현재 선택되어 있으며, 오리지날 탭(916)은 엔터테인먼트 탭(917)의 왼쪽에 위치함을 검출할 수 있다. 이에 따라, 전자 장치(2000)는 현재 상태에서 타겟 상태에 도달하기 위해 수행되어야 할 하위 목표를 다시 제1 하위 목표(950)인 ‘오리지날 탭으로 이동’으로 결정할 수 있다.
전자 장치(2000)는 레이아웃 탐색기(940)를 이용하여, 하위 목표들 각각에 대하여, 하위 목표들 각각 달성하기 위한 작업들 각각을 결정할 수 있다. 하나의 작업은 복수개의 시스템 액션들을 포함할 수 있다. 예를 들어, 전자 장치(2000)는 제2 화면(922) 내에서 오리지날 탭(916)을 선택하기 위한 커서 이동 액션 및 클릭 액션을 결정하고, 액션들을 수행함으로써 제1 하위 목표(950)를 달성할 수 있다.
일 실시예에 따른 전자 장치(2000)는 레이아웃 탐색기(940)에 의해 하나의 하위 목표가 달성되면, 다음 하위 목표를 달성하기 위한 동작들을 수행할 수 있다. 이는, 전술하였으므로, 동일한 설명은 생략한다.
도 9e는 본 개시의 일 실시예에 따른 전자 장치가 하위 목표 시퀀스를 동적으로 업데이트하는 동작을 설명하기 위한 도면이다.
도 9e를 설명함에 있어서, 도 9a 내지 도 9d에서 전술한 예시들인 제1 하위 목표(950)가 '오리지날 탭으로 이동'이고, 제2 하위 목표(960)가 '콘텐트 A 클릭'인 예시를 사용하여 설명한다.
일 실시예에서, 전자 장치(2000)는 복수의 하위 목표들로 구성되는 하위 목표 시퀀스(970)를 업데이트 할 수 있다. 하위 목표 시퀀스(970)는 예를 들어, 제1 하위 목표(950), 제2 하위 목표(960), ... , 제N 하위 목표를 포함할 수 있다. 하위 목표 시퀀스(970)는, 전술한 실시예들에 따라 결정된 것일 수 있다.
애플리케이션 탐색 동작(980)은, 하위 목표들에 대응하는 작업들이 수행됨으로써 수행된다. 일 실시예에서, 전자 장치(2000)는 제어 명령을 실행하기 위한 애플리케이션의 탐색 동작(980)이 수행되는 동안, 애플리케이션 탐색 동작을 중간 점검할 수 있다.
예를 들어, 제1 화면(912) 내 UI 요소들에 기초하여, 제1 하위 목표(950)인 ‘오리지날 탭으로 이동’이 결정되면, 제1 하위 목표에 대응하는 작업이 전자 장치(2000)에서 수행되고, 전자 장치(2000)의 화면이 제2 화면(922)로 전환될 수 있다.
전자 장치(2000)는 전자 장치(2000)의 화면이 전환된 것에 기초하여 애플리케이션 탐색 동작(980)을 중간 점검할 수 있다. 전자 장치(2000)는 중간 점검을 위하여, 전환된 화면의 레이아웃을 분석할 수 있다. 예를 들어, 전자 장치(2000)는 제1 화면(912)으로부터 제2 화면(922)으로 전환되면, 제2 화면(922)의 레이아웃을 분석하여 제1 하위 목표(950)의 달성 여부를 식별할 수 있다.
전자 장치(2000)는 제2 화면(922) 내의 UI 요소들에 기초하여, 전자 장치(2000)의 현재 상태를 검출할 수 있다.
예를 들어, 제1 하위 목표(950)가 달성된 경우, 제2 화면(922)은 제1 하위 목표(950)가 달성된 상태를 나타낸다. 구체적으로, 제1 하위 목표(950)가 ‘오리지날 탭으로 이동’이었고, 제2 화면(922)의 레이아웃 분석 결과 오리지날 탭이 현재 선택되어 있는 경우, 전자 장치(2000)는 제1 하위 목표(950)가 달성된 상태임을 식별할 수 있다.
또는, 제1 하위 목표(950)가 달성되지 않은 경우, 제2 화면(922)은 제1 하위 목표가 달성되지 않은, 다른 상태를 나타낸다. 구체적으로, 제1 하위 목표(950)가 ‘오리지날 탭으로 이동’이었고, 제2 화면(922)의 레이아웃 분석 결과 오리지날 탭이 아닌 다른 탭(예를 들어, 엔터테인먼트 탭)이 선택되어 있는 경우, 전자 장치(2000)는 제1 하위 목표(950)가 달성되지 않은 상태임을 식별할 수 있다.
전자 장치(2000)는 하위 목표의 달성 여부에 기초하여, 다음 하위 목표를 동적으로 결정할 수 있다. 예를 들어, 전자 장치(2000)는 제2 화면(922) 내의 UI 요소들에 기초하여, 전자 장치(2000)의 현재 상태를 검출하고, 전자 장치(2000)의 현재 상태에 기초하여 제2 하위 목표(960)를 동적으로 결정할 수 있다. 즉, 전자 장치(2000)는 중간 점검 결과에 기초하여, 하위 목표를 변경할 수 있다.
일부 실시예에서, 레이아웃 분석 결과 전자 장치(2000)의 현재 상태가, 제1 하위 목표(950)가 달성되었고, 제2 화면(922) 내에 제2 하위 목표(960)의 타겟인 콘텐트 A가 존재하는 것으로 식별된 경우일 수 있다. 전자 장치(2000)는 이전에 결정되었던 하위 목표 시퀀스(970)에 포함되는 제2 하위 목표(960) ‘콘텐트 A 클릭’를 변경하지 않고 확정할 수 있다.
일부 실시예에서, 레이아웃 분석 결과 전자 장치(2000)의 현재 상태가, 제1 하위 목표(950)가 달성되었으나, 제2 화면(922) 내에 제2 하위 목표(960)의 타겟인 콘텐트 A가 존재하지 않는 것으로 식별된 경우일 수 있다. 전자 장치(2000)는 오리지날 탭에서 콘텐트 A를 찾기 위해, 제2 하위 목표(960)를 변경할 수 있다. 예를 들어, 전자 장치(2000)는 제2 하위 목표(960)를 ‘콘텐트 A 클릭’에서 ‘스크롤 다운’으로 변경할 수 있다.
일부 실시예에서, 레이아웃 분석 결과 전자 장치(2000)의 현재 상태가, 제1 하위 목표(950)가 달성되지 않은 상태일 수 있다. 예를 들어, 제1 하위 목표에 대응하는 작업이 수행되는 도중에 에러가 발생하여 다른 작업이 수행(예를 들어, 오리지날 탭이 아닌 다른 탭(예를 들어, 엔터테인먼트 탭)이 선택된 경우)되었거나, 기타 다른 에러가 발생하여 애플리케이션이 종료된 경우일 수 있다. 전자 장치(2000)는 제1 하위 목표가 달성되지 않았으므로, 제1 하위 목표를 달성하기 위해 하위 목표 시퀀스(970)를 재계획하여, 하위 목표를 변경할 수 있다.
예를 들어, 오리지날 탭이 아닌 다른 탭이 선택된 경우, 전자 장치(2000)는 제1 하위 목표인 ‘오리지날 탭 선택’으로 다시 돌아갈 수 있다. 전자 장치(2000)는 레이아웃 정보에 기초하여, 다른 탭이 선택된 상태에서 제1 하위 목표를 달성하기 위한 시스템 액션들로 구성되는, 제1 작업을 업데이트할 수 있다.
예를 들어, 애플리케이션이 종료된 경우, 전자 장치(2000)는 제1 하위 목표를 새로 설정할 수 있다. 레이아웃 정보에 기초하여, 제1 하위 목표를 ‘애플리케이션 재실행’으로 결정할 수 있다. 이 경우, 기존의 제1 하위 목표였던 ‘오리지날 탭 선택’은, 애플리케이션이 재실행 된 후 수행될 수 있도록, 제2 하위 목표로 변경될 수 있다.
일 실시예에 따른 전자 장치(2000)의 애플리케이션 탐색 동작(980)은, 사용자 의도가 달성될 때까지 화면 분석을 반복하는 피드백 루프를 포함할 수 있다. 전자 장치(2000)는 애플리케이션 탐색 동작(980)이 수행되는 도중에, 지속적으로 실시간의 화면 분석을 통해, 하위 목표를 동적으로 변경 및 결정함으로써 애플리케이션 탐색 동작(980)에서 발생 가능한 에러/실패를 극복/처리하고, 사용자 의도에 대응하는 제어 명령이 실행되도록 할 수 있다.
도 10은 본 개시의 일 실시예에 따른 전자 장치의 제어 동작에 이용되는 기술 맵을 도시한 도면이다.
일 실시예에서, 전자 장치(2000)는 사용자 명령(1010)을 획득할 수 있다. 사용자 명령은 예를 들어, ‘Y 앱의 추천 탭을 열어 줘’와 같은, 음성 명령일 수 있다. 사용자 명령(1010)이 음성 명령인 경우, 전자 장치(2000)는 ASR을 수행하여 사용자 명령(1010)을 텍스트로 변환할 수 있다. 전자 장치(2000)는 텍스트를 NLU 모델에 적용하여 사용자 의도를 결정할 수 있다. 전자 장치(2000)는 텍스트를 NLU 모델에 적용한 결과를 가공하여, 하위 목표(예를 들어, 추천 탭으로 탐색 등) 또는 사용자 명령의 컨텍스트(예를 들어, Y 앱에 대한 명령 등)등을 획득할 수 있다. NLU 모델은 예를 들어, 트랜스포머 모델일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 전자 장치(2000)는 화면 이미지(1020)를 획득할 수 있다. 전자 장치(2000)는 화면 레이아웃을 분석하여, 레이아웃의 전반적인 구성을 파악하고, 레이아웃 내 포함되는 UI 요소들을 검출 및 인식할 수 있다. 이 경우, 비전 인식을 위한 인공지능 모델이 이용될 수 있다. 인공지능 모델은 예를 들어, 비전 트랜스포머 등일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 전자 장치(2000)는 획득된 데이터들을 멀티-모달 공통 표현(1030)으로 변환할 수 있다. 예를 들어, 전자 장치(2000)는 하위 목표를 달성하기 위한 액션들을 결정하고, 벡터로 임베딩할 수 있다. 전자 장치(2000)는 레이아웃 검출을 통해 UI 요소들을 식별하고, 벡터로 임베딩할 수 있다. 전자 장치는 시맨틱 검색을 이용하여, 액션 벡터 및 UI 벡터 사이의 연관 관계 등을 추론할 수 있다. 예를 들어, 전자 장치(2000)는 결정된 액션 및 식별된 UI 요소에 기초하여, 현재 커서 좌표와 목표 커서 좌표를 검색할 수 있다.
일 실시예에서, 전자 장치(2000)는 장면 그래프(1050)를 생성할 수 있다. 장면 그래프(1050)는 장면 그래프 생성 모델에 의해 생성될 수 있다. 장면 그래프 생성 모델은, 복수의 애플리케이션들의 장면 전환, 연결 관계를 나타내는 학습된 장면 그래프들(1040)을 포함할 수 있다. 장면 그래프 생성 모델은 사용자 명령으로부터 식별된 컨텍스트를 이용하여 장면 그래프(1050)를 생성할 수 있다. 예를 들어, 컨텍스트가 Y 앱인 경우, Y 앱의 장면들 간의 연결/전환 관계를 나타내는 장면 그래프(1050)를 생성할 수 있다.
일 실시예에서, 전자 장치(2000)는 현재 커서 좌표와 목표 커서 좌표를 장면 그래프(1050)에 맵핑하여, 전자 장치(2000)가 애플리케이션을 탐색하기 위한 경로를 설정할 수 있다.
전자 장치(2000)는 사용자 의도에 대응하는 목표가 달성될때까지 애플리케이션을 탐색하고, 사용자 의도에 대응되는 제어 명령을 실행할 수 있다. 전술한 예시에 따르면, 전자 장치(2000)는 Y 애플리케이션을 탐색하여 Y ‘추천’ 탭을 선택할 수 있다.
도 11a는 본 개시의 일 실시예에 따른 전자 장치가 사용자의 터치 입력에 기초하여 화면을 제어하는 동작을 설명하기 위한 도면이다.
도 1 내지 도 10을 통해 전술한 실시예들의 화면 제어 및 탐색을 수행하는 전자 장치(2000)는, 도 11a에서 설명되는 제1 전자 장치(1110)에 대응된다.
제1 전자 장치(1110)는 터치 불가능한 전자 장치(예를 들어, TV, 사이니지 등)일 수 있다. 이러한 터치 불가능한 전자 장치의 경우, 원활한 제어를 위하여 리모컨과 같은 별도의 제어 장치가 사용된다. 그러나, 리모컨과 같은 별도의 제어 장치를 사용하더라도, 특정 기능(예를 들어, 문자 타이핑, 화면 탐색, 결제, 카메라 촬영 등)을 사용하기 위한 조작은 리모컨만으로는 불편함이 있다. 일 실시예에서, 제1 전자 장치(1110)를 제어하기 위하여, 사용자는 터치 가능한 제2 전자 장치(1120)를 이용할 수 있다. 제2 전자 장치(1120)는 터치 패널을 포함할 수 있다.
일 실시예에서, 제1 전자 장치(1110)는 화면 이미지(1112)를 제2 전자 장치(1120)로 공유할 수 있다. 제2 전자 장치(1120)는 제1 전자 장치(1110)의 화면 이미지(1112)를 복제한 복제 화면 이미지(1122)를 표시하고, 사용자의 터치 명령(1124)을 수신할 수 있다.
일 실시예에서, 도 11a에 도시된 레이아웃 분석기(1130), 명령 분석기(1140), 플래너(1150) 및 레이아웃 탐색기(1160)는, 제1 전자 장치(1110)에 포함되거나, 제2 전자 장치(1120)에 포함되거나, 별도의 서버(3000)에 포함될 수 있다. 각각의 모듈들이 제1 전자 장치(1110), 제2 전자 장치(1120) 또는 서버(3000)에 포함되는 각각의 실시예들은 도 11c 내지 11g에 대한 설명에서 기술하고, 본 도면에서는 각각의 모듈의 동작을 간략하게 기술한다.
레이아웃 분석기(1130)는 화면 이미지(1112)(또는, 복제 화면 이미지(1122)를 분석하여 UI 요소들을 식별할 수 있다. 레이아웃 분석기(1130)는 식별된 UI 요소들에 관련된 정보를 가공함으로써, 레이아웃 정보(1132)를 생성할 수 있다.
명령 분석기(1140)는 복제 화면 이미지(1122)에 대한 사용자 터치 명령(1124)을 분석하여 사용자 의도(1142)를 결정할 수 있다. 명령 분석기(1140)는 예를 들어, 사용자 터치 명령(1124)이 숏 터치인지, 롱 터치인지, 드래그인지, 줌 인/아웃인지 여부 등을 분석할 수 있다. 명령 분석기(1140)는 분석 결과에 기초하여, 사용자 의도(1142)가 예를 들어, 동영상 재생인지, 스크롤 다운/업 등인지를 결정할 수 있다.
플래너(1150)는 레이아웃 정보(1132) 및 사용자 의도(1142)에 기초하여, 사용자 의도(1142)에 대응하는 제어 명령을 실행하기 위한 하위 목표(1152)를 결정할 수 있다. 플래너(1150)는 제1 전자 장치(1110)의 현재 상태 및 제어 명령이 실행된 상태를 나타내는 타겟 상태를 결정하고, 타겟 상태에 도달하기 위한 하위 목표(1152)를 생성할 수 있다.
레이아웃 탐색기(1160)는 하위 목표(1152)에 대응하는 작업을 결정할 수 있다. 작업은, 제1 전자 장치(1110)에서 특정 기능을 실행하기 위한 단위인 적어도 하나의 시스템 액션(1162)(예를 들어, 커서 이동, 클릭 등)을 포함할 수 있다. 레이아웃 탐색기(1160)는 적어도 하나의 시스템 액션(1162)을 수행함으로써, 제1 전자 장치(1110)의 화면을 제어하거나, 제1 전자 장치(1110)에서 실행 중인 애플리케이션을 탐색할 수 있다.
제1 전자 장치(1110)가 터치 불가능한 전자 장치인 경우에 대한 구체적인 예시는, 도 12a 내지 도 13c를 참조하여 더 설명한다.
도 11b는 본 개시의 일 실시예에 따른 전자 장치가 사용자의 터치 입력에 기초하여 화면을 제어하는 또다른 동작을 설명하기 위한 도면이다.
도 1 내지 도 10을 통해 전술한 실시예들의 화면 제어 및 탐색을 수행하는 전자 장치(2000)는, 도 11b에서 설명되는 제1 전자 장치(1110)에 대응된다.
제1 전자 장치(1110)는 터치 가능한 전자 장치(예를 들어, 키오스크 등)일 수 있다. 이러한 터치 가능한 전자 장치의 경우, 사용자가 전자 장치에 가까이 다가가고, 사용자의 직접적인 터치를 통해 전자 장치가 제어된다. 일 실시예에서, 제1 전자 장치(1110)를 제어하기 위하여, 사용자는 터치 가능한 제2 전자 장치(1120)를 이용하여 원격으로 제1 전자 장치(1110)를 제어할 수 있다. 제1 전자 장치(1110) 및 제2 전자 장치(1120)는 각각 터치 패널을 포함할 수 있다.
일 실시예에서, 제1 전자 장치(1110)는 화면 이미지(1112)를 제2 전자 장치(1120)로 공유할 수 있다. 제2 전자 장치(1120)는 제1 전자 장치(1110)의 화면 이미지(1112)를 복제한 복제 화면 이미지(1122)를 표시하고, 사용자의 터치 명령(1124)을 수신할 수 있다.
레이아웃 분석기(1130)는 화면 이미지(1112)(또는, 복제 화면 이미지(1122)를 분석하여 UI 요소들을 식별할 수 있다. 레이아웃 분석기(1130)는 식별된 UI 요소들에 관련된 정보를 가공함으로써, 레이아웃 정보(1132)를 생성할 수 있다.
명령 분석기(1140)는 복제 화면 이미지(1122)에 대한 사용자 터치 명령(1124)을 분석하여 사용자 의도(1142)를 결정할 수 있다. 명령 분석기(1140)는 예를 들어, 사용자 터치 명령(1124)이 숏 터치인지, 롱 터치인지, 드래그인지, 줌 인/아웃인지 여부 등을 분석할 수 있다. 명령 분석기(1140)는 분석 결과에 기초하여, 사용자 의도(1142)가 예를 들어, 동영상 재생인지, 스크롤 다운/업 등인지를 결정할 수 있다.
제1 전자 장치(1110)가 터치 가능한 전자 장치인 경우, 사용자 터치 명령(1124)에 대한 터치 입력(예를 들어, 클릭)이 터치 된 영역이 특정한 기능 및/또는 액션에 해당하는지 여부만 판별하면 된다. 따라서, 플래너(1150)에 의한 하위 목표(1152) 결정 및 레이아웃 탐색기(1160)에 의한 하위 목표(1152) 달성을 위한 작업의 결정은 생략될 수 있으며, 레이아웃 정보(1132) 및 사용자 의도(1142)에 기초하여, 하나 이상의 시스템 액션(1162)을 결정 및 수행함으로써, 제1 전자 장치(1110)의 화면이 제어되도록 하거나, 제1 전자 장치(1110)에서 실행 중인 애플리케이션이 탐색 되도록 할 수 있다.
일 실시예에 따른 레이아웃 분석기(1130) 및 명령 분석기(1140)는 각각, 제1 전자 장치(1110)에 포함되거나, 제2 전자 장치(1120)에 포함되거나, 별도의 서버(3000)에 포함될 수 있다.
제1 전자 장치(1110)가 터치 가능한 전자 장치인 경우에 대한 구체적인 예시는, 도 14를 참조하여 더 설명한다.
도 11c는 본 개시의 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어하는 제1 실시예를 설명하기 위한 도면이다.
일 실시예에서, 제1 전자 장치(1110)는 레이아웃 분석기(1130), 명령 분석기(1140), 플래너(1150) 및 레이아웃 탐색기(1160)를 포함할 수 있다.
일 실시예에서, 제1 전자 장치(1110)는 화면 이미지(1112)를 복제하여 제2 전자 장치(1120)로 전송할 수 있다. 제2 전자 장치(1120)는 복제 화면 이미지(1122)를 표시하고, 사용자로부터 사용자 터치 명령(1124)을 수신할 수 있다. 제2 전자 장치(1120)는 사용자 터치 명령(1124)과 관련된 터치 데이터를 제1 전자 장치(1110)로 전송할 수 있다.
제1 전자 장치(1110)는 레이아웃 분석기(1130)를 이용하여 레이아웃 정보(1132)를 획득하고, 명령 분석기(1140)를 이용하여 사용자 의도(1142)를 결정할 수 있다. 제1 전자 장치(1110)는 플래너(1150)를 이용하여, 사용자 의도(1142)에 대응하는 제어 명령을 실행하기 위한 적어도 하나의 하위 목표(1152)를 결정할 수 있다. 제1 전자 장치(1110)는 레이아웃 탐색기(1160)를 이용하여, 적어도 하나의 하위 목표(1152)를 달성하기 위한 작업을 결정할 수 있다. 제1 전자 장치(1110)는 하나 이상의 시스템 액션(1162)으로 구성되는 액션 시퀀스를 수행함으로써, 하위 목표(1152)를 달성할 수 있다. 하위 목표(1152)가 달성되면 제1 전자 장치(1110)의 화면이 전환되거나, 변경되므로, 제1 전자 장치(1110)는 다시 화면 이미지(1112)를 분석하고, 전술한 동작들을 반복할 수 있다.
도 11d는 본 개시의 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어하는 제2 실시예를 설명하기 위한 도면이다.
일 실시예에서, 제2 전자 장치(1120)는 레이아웃 분석기(1130), 명령 분석기(1140), 플래너(1150) 및 레이아웃 탐색기(1160)를 포함할 수 있다.
일 실시예에서, 제1 전자 장치(1110)는 화면 이미지(1112)를 복제하여 제2 전자 장치(1120)로 전송할 수 있다. 제2 전자 장치(1120)는 복제 화면 이미지(1122)를 표시하고, 사용자로부터 사용자 터치 명령(1124)을 수신할 수 있다.
제2 전자 장치(1120)는 레이아웃 분석기(1130)를 이용하여 레이아웃 정보(1132)를 획득하고, 명령 분석기(1140)를 이용하여 사용자 의도(1142)를 결정할 수 있다. 제2 전자 장치(1120)는 플래너(1150)를 이용하여, 사용자 의도(1142)에 대응하는 제어 명령을 실행하기 위한 적어도 하나의 하위 목표(1152)를 결정할 수 있다. 제2 전자 장치(1120)는 레이아웃 탐색기(1160)를 이용하여, 적어도 하나의 하위 목표(1152)를 달성하기 위한 작업을 결정할 수 있다. 제2 전자 장치(1120)는 하나 이상의 시스템 액션(1162)으로 구성되는 액션 시퀀스에 대응하는 명령 및/또는 신호(예를 들어, IR 신호)를 제1 전자 장치(1110)로 전송할 수 있다. 제1 전자 장치(1110)는 하나 이상의 시스템 액션(1162)으로 구성되는 액션 시퀀스를 수행함으로써, 하위 목표(1152)를 달성할 수 있다. 하위 목표(1152)가 달성되면 제1 전자 장치(1110)의 화면이 전환되거나, 변경되므로, 제1 전자 장치(1110)는 다시 화면 이미지(1112)를 복제하여 제2 전자 장치(1120)로 전송할 수 있다. 제2 전자 장치(1120)는 복제 화면 이미지(1122)를 분석하고, 전술한 동작들을 반복할 수 있다.
도 11e는 본 개시의 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어하는 제3 실시예를 설명하기 위한 도면이다.
일 실시예에서, 제1 전자 장치(1110)는 레이아웃 분석기(1130)를 포함하고, 제2 전자 장치(1120)는 명령 분석기(1140), 플래너(1150) 및 레이아웃 탐색기(1160)를 포함할 수 있다.
일 실시예에서, 제1 전자 장치(1110)는 화면 이미지(1112)를 복제하여 제2 전자 장치(1120)로 전송할 수 있다. 제2 전자 장치(1120)는 복제 화면 이미지(1122)를 표시하고, 사용자로부터 사용자 터치 명령(1124)을 수신할 수 있다.
제1 전자 장치(1110)는 레이아웃 분석기(1130)를 이용하여 레이아웃 정보(1132)를 획득하고, 레이아웃 정보 (1132)를 제2 전자 장치(1120)로 전송할 수 있다. 제2 전자 장치(1120)는 명령 분석기(1140)를 이용하여 사용자 의도(1142)를 결정할 수 있다.
제2 전자 장치(1120)는 플래너(1150)를 이용하여, 사용자 의도(1142)에 대응하는 제어 명령을 실행하기 위한 적어도 하나의 하위 목표(1152)를 결정할 수 있다. 제2 전자 장치(1120)는 레이아웃 탐색기(1160)를 이용하여, 적어도 하나의 하위 목표(1152)를 달성하기 위한 작업을 결정할 수 있다. 제2 전자 장치(1120)는 하나 이상의 시스템 액션(1162)으로 구성되는 액션 시퀀스에 대응하는 명령 및/또는 신호(예를 들어, IR 신호)를 제1 전자 장치(1110)로 전송할 수 있다. 제1 전자 장치(1110)는 하나 이상의 시스템 액션(1162)으로 구성되는 액션 시퀀스를 수행함으로써, 하위 목표(1152)를 달성할 수 있다. 하위 목표(1152)가 달성되면 제1 전자 장치(1110)의 화면이 전환되거나, 변경되므로, 제1 전자 장치(1110)는 다시 화면 이미지(1112)를 분석하고, 전술한 동작들을 반복할 수 있다.
도 11f는 본 개시의 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어하는 제4 실시예를 설명하기 위한 도면이다.
일 실시예에서, 제1 전자 장치(1110)는 레이아웃 분석기 1(1130-1)을 포함하고, 제2 전자 장치(1120)는 레이아웃 분석기 2(1130-2), 명령 분석기(1140), 플래너(1150) 및 레이아웃 탐색기(1160)를 포함할 수 있다.
일 실시예에서, 제1 전자 장치(1110)는 화면 이미지(1112)를 복제하여 제2 전자 장치(1120)로 전송할 수 있다. 제2 전자 장치(1120)는 복제 화면 이미지(1122)를 표시하고, 사용자로부터 사용자 터치 명령(1124)을 수신할 수 있다.
일 실시예에서, 제1 전자 장치(1110)가 화면 이미지(1112)를 일부 분석하고, 제2 전자 장치(1120)가 복제 화면 이미지(1122)를 일부 분석할 수 있다. 제1 전자 장치(1110)에서 획득된 레이아웃 정보 A(1132-1) 및 제2 전자 장치(1120)에서 획득된 레이아웃 정보 B(1132-2) 각각 또는 이들의 조합은, 플래너(1150)가 하위 목표(1152)를 결정하는 데 이용될 수 있다.
제1 전자 장치(1110)는 레이아웃 분석기(1130)를 이용하여 레이아웃 정보 A(1132-1)를 획득할 수 있다. 레이아웃 정보 A(1132-1)는 화면 컨텍스트 정보를 포함할 수 있으며, 화면 컨텍스트 정보는 현재 제1 전자 장치(1110)에서 실행 중인 애플리케이션의 정보(예를 들어, Y 애플리케이션 실행 중)를 포함할 수 있다. 제1 전자 장치(1110)는 화면 컨텍스트 정보를 포함하는 레이아웃 정보 A(1132-1)를 제2 전자 장치(1120)로 전송할 수 있다. 제2 전자 장치(1120)는 레이아웃 분석기 2(1130-2)를 이용하여 레이아웃 정보 B(1132-2)를 획득하고, 명령 분석기(1140)를 이용하여 사용자 의도(1142)를 결정할 수 있다. 제2 전자 장치(1120)는 플래너(1150)를 이용하여, 사용자 의도(1142)에 대응하는 제어 명령을 실행하기 위한 적어도 하나의 하위 목표(1152)를 결정할 수 있다. 제2 전자 장치(1120)는 레이아웃 탐색기(1160)를 이용하여, 적어도 하나의 하위 목표(1152)를 달성하기 위한 작업을 결정할 수 있다. 제2 전자 장치(1120)는 하나 이상의 시스템 액션(1162)으로 구성되는 액션 시퀀스에 대응하는 명령 및/또는 신호(예를 들어, IR 신호)를 제1 전자 장치(1110)로 전송할 수 있다. 제1 전자 장치(1110)는 하나 이상의 시스템 액션(1162)으로 구성되는 액션 시퀀스를 수행함으로써, 하위 목표(1152)를 달성할 수 있다. 하위 목표(1152)가 달성되면 제1 전자 장치(1110)의 화면이 전환되거나, 변경되므로, 제1 전자 장치(1110)는 다시 화면 이미지(1112)를 복제하여 제2 전자 장치(1120)로 전송할 수 있다. 제1 전자 장치(1110)는 화면 이미지(1112)를 분석하고, 제2 전자 장치(1120)는 복제 화면 이미지(1122)를 분석하여, 전술한 동작들을 반복할 수 있다.
도 11g는 본 개시의 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어하는 제5 실시예를 설명하기 위한 도면이다.
일 실시예에서, 서버(3000)는 레이아웃 분석기(1130), 명령 분석기(1140), 플래너(1150) 및 레이아웃 탐색기(1160)를 포함할 수 있다.
일 실시예에서, 제1 전자 장치(1110)는 화면 이미지(1112)를 복제하여 제2 전자 장치(1120)로 전송할 수 있다. 제2 전자 장치(1120)는 복제 화면 이미지(1122)를 표시하고, 사용자로부터 사용자 터치 명령(1124)을 수신할 수 있다. 제2 전자 장치(1120)는 사용자 터치 명령(1124)과 관련된 터치 데이터 및 복제 화면 이미지(1122)를 서버(3000)로 전송할 수 있다. 제1 전자 장치(1110)는 화면 이미지(1112)를 서버(3000)로 전송할 수 있다.
서버(3000)는 레이아웃 분석기(1130)를 이용하여 레이아웃 정보(1132)를 획득하고, 명령 분석기(1140)를 이용하여 사용자 의도(1142)를 결정할 수 있다. 서버(3000)는 플래너(1150)를 이용하여, 사용자 의도(1142)에 대응하는 제어 명령을 실행하기 위한 적어도 하나의 하위 목표(1152)를 결정할 수 있다. 서버(3000)는 레이아웃 탐색기(1160)를 이용하여, 적어도 하나의 하위 목표(1152)를 달성하기 위한 작업을 결정할 수 있다. 서버(3000)는 하나 이상의 시스템 액션(1162)으로 구성되는 액션 시퀀스에 대응하는 명령 및/또는 신호(예를 들어, IR 신호)를 제1 전자 장치(1110) 로 전송할 수 있다. 제1 전자 장치(1110)는 하나 이상의 시스템 액션(1162)으로 구성되는 액션 시퀀스를 수행함으로써, 하위 목표(1152)를 달성할 수 있다. 하위 목표(1152)가 달성되면 제1 전자 장치(1110)의 화면이 전환되거나, 변경되므로, 제1 전자 장치(1110)는 다시 화면 이미지(1112)를 복제하여 제2 전자 장치(1120)로 전송할 수 있다. 서버(3000)는 제1 전자 장치(1110) 및 제2 전자 장치(1120)로부터 데이터를 수신하고, 전술한 동작들을 반복할 수 있다.
도 12a는 본 개시의 일 실시예에 따른 제2 전자 장치에 대한 터치 입력으로, 제1 전자 장치의 화면을 탐색하는 동작의 제1 실시예를 설명하기 위한 도면이다.
도 12a 내지 도 12d를 설명함에 있어서, 설명의 편의를 위해, 제어 동작인 화면 탐색이 수행되는 제1 전자 장치는 TV이고, 제어 명령인 터치 명령이 입력되는 제2 전자 장치는 스마트 폰인 것을 예시로 하여 설명한다. 또한, 제2 전자 장치가 제1 전자 장치의 제어를 위한 레이아웃 분석기, 명령 분석기, 플래너 및 레이아웃 탐색기를 포함하는 것을 예시(도 11d에서 설명한 예시)로 설명한다. 다만, 이에 한정되는 것은 아니며, 도 11c 내지 도 11g에서 설명한 예시 중 어느 하나가 동일하게 적용될 수 있다.
일 실시예에 따라, 사용자는 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어할 수 있다. 제1 전자 장치인 TV를 제어하기 위하여, 사용자는 터치 가능한 제2 전자 장치인 스마트폰을 이용할 수 있다.
제2 전자 장치(스마트폰)는 제1 전자 장치(TV)로부터 제1 화면(1210)을 수신하고, 제1 화면(1210)을 표시할 수 있다. 제2 전자 장치는, 사용자로부터 터치 명령을 수신할 수 있다.
제2 전자 장치는 명령 분석기를 이용하여 사용자 의도를 결정할 수 있다. 예를 들어, 제1 화면(1210)에서 현재 커서가 활성화된 콘텐트는, 콘텐트 A(1211)일 수 있다. 사용자가 제2 전자 장치에서 콘텐트 C(1215)를 선택한 경우, 제2 전자 장치는 사용자가 콘텐트 C(1215)을 이용하고자 하는 것으로 결정할 수 있다.
제2 전자 장치는 레이아웃 분석기를 이용하여 제1 화면(1210)을 분석하고, 플래너를 이용하여, 사용자 의도를 달성하기 위한 하나 이상의 하위 목표를 생성할 수 있다. 예를 들어, 결정된 하위 목표는, 콘텐트 C(1215)의 커서 활성화이고, 하위 목표에 대응하는 작업은 콘텐트 C(1215)로 이동일 수 있다. 현재 커서가 활성화된 콘텐트는 콘텐트 A(1211) 이므로, 제2 전자 장치는 작업에 포함되는 시스템 액션 ‘오른쪽 이동 2회’를 결정하고, ‘오른쪽 이동 2회’에 대응하는 제어 명령을 제1 전자 장치로 전송할 수 있다.
제1 전자 장치는 시스템 액션들에 대응하는 제어 명령을 제2 전자 장치로부터 수신하여, 화면/앱 탐색을 수행할 수 있다. 예를 들어, 현재 화면인 제1 화면(1210)에서 콘텐트 A(1211)에 커서가 활성화되어 있을 때, 제1 전자 장치는 제2 전자 장치로부터 수신된 제어 명령을 기초로 제어된다. 제1 전자 장치에서 시스템 액션 ‘오른쪽 이동’이 수행되면 콘텐트 B(1213)에 커서가 활성화 될 수 있다(제2 화면(1212). 또한, 제1 전자 장치가 제2 화면(1212)인 상태에서 시스템 액션 ‘오른쪽 이동’이 한번 더 수행되면, 콘텐트 C(1215)에 커서가 활성화되고, 콘텐트 C(1215)가 화면의 가운데로 위치하도록 슬라이드 될 수 있다.
일부 실시예에서, 제2 전자 장치는 제1 전자 장치의 화면이 전환될 때마다, 전환된 화면에 대하여, 레이아웃 분석을 통해 레이아웃 정보를 업데이트할 수 있다. 예를 들어, 제2 전자 장치는, 제2 화면(1212)의 레이아웃을 분석하고 레이아웃 정보를 업데이트할 수 있다. 제2 전자 장치는 하위 목표 달성 여부를 식별하고, 하위 목표 달성 여부에 따라 다음 하위 목표를 동적으로 결정할 수 있다. 일 실시예에 따른 제2 전자 장치는 레이아웃 분석 결과에 따라 하위 목표를 변경하거나, 업데이트할 수 있다.
일부 실시예에서, 제2 전자 장치는 사용자의 음성 명령을 수신할 수 있다. 예를 들어, 사용자는 제2 전자 장치의 음성 명령 입력 버튼(1250)을 선택하여 음성 입력 기능(예를 들어, 보이스 어시스턴트 등)을 실행하고, 음성 입력 신호를 입력할 수 있다. 제2 전자 장치는 사용자의 음성 입력 신호를 분석하여 사용자 의도를 결정할 수 있다.
일 실시예에서, 음성 명령 또는 터치 명령은 상호보완적으로 작용할 수 있다. 사용자는 제1 전자 장치를 제어하기에 더 적합한 형태의 명령을 선택하여 입력함으로써, 제1 전자 장치를 효율적으로 제어할 수 있다. 예를 들어, 화면에 표시된 텍스트가 없을 수 있다. 구체적으로, 제1 전자 장치의 화면에 A 콘텐트의 썸네일 이미지는 표시되어 있으나, A 콘텐트에 관련된 텍스트는 없을 수 있다. 이 경우, 사용자가 ‘A 콘텐트 재생해 줘’ 라고 음성 명령을 입력하여도 화면 분석을 통해 텍스트 등의 UI 요소가 식별될 수 없으므로, 레이아웃 분석에 의해서도 화면 내 어떤 콘텐트가 A 콘텐트인지 식별되지 않을 수 있다. 이러한 경우, 음성 명령 보다는 터치 명령이 제1 전자 장치를 제어하기에 더 적합할 수 있으므로, 제2 전자 장치는 사용자에게 다른 형태의 사용자 입력(예를 들어, 음성 명령이 아닌 터치 명령)을 입력하도록 가이드 할 수 있다. 제2 전자 장치는 사용자 입력 가이드를 화면에 표시하거나, 오디오로 출력할 수 있으나, 이에 한정되는 것은 아니다.
도 12b는 본 개시의 일 실시예에 따른 제2 전자 장치에 대한 터치 입력으로, 제1 전자 장치의 화면을 탐색하는 동작의 제1 실시예를 더 설명하기 위한 도면이다.
일 실시예에서, 제1 전자 장치인 TV를 제어하기 위하여, 사용자는 터치 가능한 제2 전자 장치인 스마트폰을 이용할 수 있다.
제2 전자 장치(스마트폰)는 제1 전자 장치(TV)로부터 제1 화면(1220)을 수신하고, 제1 화면(1220)을 표시할 수 있다. 제2 전자 장치는, 사용자로부터 터치 명령을 수신할 수 있다. 제2 전자 장치는 명령 분석기를 이용하여 사용자 의도를 결정할 수 있다. 예를 들어, 사용자가 제2 전자 장치에 표시된 제1 화면(1210)에서 콘텐트 X(1221)를 선택한 경우, 제2 전자 장치는 사용자가 콘텐트 X(1221)을 이용하고자 하는 것으로 결정할 수 있다.
제2 전자 장치는 레이아웃 분석기를 이용하여 제1 화면(1220)을 분석하고, 플래너를 이용하여, 사용자 의도를 달성하기 위한 하나 이상의 하위 목표를 생성할 수 있다. 예를 들어, 결정된 하위 목표는, 콘텐트 X(1221)의 정보 표시이고, 하위 목표에 대응하는 작업은 콘텐트 X(1221)의 선택일 수 있다. 제2 전자 장치는 작업에 포함되는 시스템 액션 ‘오른쪽 이동 3회’ 및 ‘콘텐트 X(1221) 클릭’을 결정하고, 시스템 액션들에 대응하는 제어 명령을 제1 전자 장치로 전송할 수 있다.
제1 전자 장치는 시스템 액션들에 대응하는 제어 명령을 제2 전자 장치로부터 수신하여, 화면/앱 탐색을 수행할 수 있다. 예를 들어, 현재 화면이 제1 화면(1220)일 때, 제1 전자 장치는 제2 전자 장치로부터 수신된 제어 명령을 기초로 제어된다. 제1 전자 장치에서 시스템 액션 ‘오른쪽 이동’이 수행되면 제1 전자 장치의 화면이 제2 화면(1222)으로 전환될 수 있다. 같은 방식으로, 제1 전자 장치에서 시스템 액션 ‘오른쪽 이동’이 2회 더 수행되면, 제1 전자 장치의 화면이 제4 화면(1224)으로 전환(중간 과정인 제3 화면은 생략)될 수 있다. 예를 들어, 제4 화면(1224)을 참조하면, 콘텐트 X(1221)에 커서가 활성화되고, 콘텐트 X(1221)가 화면 내에서 첫번째 콘텐트로 위치할 수 있다. 제1 전자 장치에서 시스템 액션 ‘콘텐트 X(1221) 클릭’이 수행되면, 제1 전자 장치의 화면이 제5 화면(1226)으로 전환될 수 있다. 제5 화면(1226)은 콘텐트 X(1221)의 정보, 예를 들어, 콘텐트 X(1221)의 공개 일자, 시청 가능 연령, 스토리의 요약 설명, 시즌 정보, 회차 정보 등을 포함할 수 있다.
일부 실시예에서, 제2 전자 장치는 제1 전자 장치의 화면이 전환될 때마다, 전환된 화면에 대하여, 레이아웃 분석을 통해 레이아웃 정보를 업데이트할 수 있다. 예를 들어, 제2 전자 장치는 제5 화면(1226)의 레이아웃을 분석하고 레이아웃 정보를 업데이트할 수 있다. 제2 전자 장치는 레이아웃 분석 결과에 기초하여, 사용자 의도 달성 여부를 결정할 수 있다. 예를 들어, 제5 화면(1226) 분석 결과, 제5 화면(1226)에 콘텐트 X(1221)의 정보가 표시되고 있으므로, 제2 전자 장치는 사용자 의도가 달성된 것으로 결정할 수 있다. 다른 예에서, 제2 전자 장치는 사용자 의도가 달성되지 않은 것으로 판단되는 경우, 레이아웃 정보에 기초하여 하위 목표를 업데이트할 수 있다.
일부 실시예에서, 제2 전자 장치는 사용자의 음성 명령을 수신할 수 있다. 예를 들어, 사용자는 제2 전자 장치의 음성 명령 입력 버튼(1250)을 선택하여 음성 입력 기능(예를 들어, 보이스 어시스턴트 등)을 실행하고, 음성 입력 신호를 입력할 수 있다. 제2 전자 장치는 사용자의 음성 입력 신호를 분석하여 사용자 의도를 결정할 수 있다.
도 12c는 본 개시의 일 실시예에 따른 제2 전자 장치에 대한 터치 입력으로, 제1 전자 장치의 화면을 탐색하는 동작의 제2 실시예를 설명하기 위한 도면이다.
도 12c를 참조하면, 제2 전자 장치(스마트폰)는 제1 전자 장치(TV)로부터 복제된 화면(1230)을 수신하고, 복제된 화면(1230)을 표시할 수 있다. 제2 전자 장치는, 사용자로부터 터치 명령을 수신할 수 있다.
일 실시예에서, 제2 전자 장치는 사용자로부터 줌 인/아웃 터치 입력을 수신할 수 있다. 일부 실시예에서, 화면의 2 이상의 영역을 터치한 후 벌리는 터치 입력은 줌 인 명령에 대응되고, 화면의 2 이상의 영역을 터치한 후 오므리는 터치 입력은 줌 아웃 명령에 대응될 수 있다. 일 실시예에서, 제2 전자 장치는 사용자로부터 줌 인 터치 입력을 수신하면, 복제된 화면(1230)을 확대할 수 있다. 사용자는 복제된 화면(1230)을 확대한 화면에 대하여 보다 정밀한 터치를 입력할 수 있다.
일 실시예에서, 제2 전자 장치는 사용자의 터치 입력에 기초하여 복제된 화면(1230)을 확대 또는 축소할 수 있다. 예를 들어, 사용자의 복제된 화면(1230)에 대한 터치 위치가 어떤 객체를 터치한 것인지 결정할 수 없는 경우(구체적으로, 둘 이상의 객체의 경계 박스를 모두 포함하도록 터치한 경우 등), 제2 전자 장치는 복제된 화면(1230)을 확대할 수 있다. 제2 전자 장치는 확대된 화면에 대한 사용자 터치 입력이 어떤 객체에 대한 터치 입력인지 정확하게 식별되는 경우, 화면을 줌 아웃하여 축소함으로써 다시 복제된 화면(1230)을 표시할 수 있다.
전술한 실시예들에 따라, 제2 전자 장치는 확대 화면에 대한 사용자의 터치 입력을 분석함으로써, 보다 높은 해상도로 사용자 의도 및 하위 목표를 결정함으로써, 제1 전자 장치를 제어할 수 있다.
도 12d는 본 개시의 일 실시예에 따른 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치의 화면을 탐색하는 동작의 제3 실시예를 설명하기 위한 도면이다.
일 실시예에 따라, 사용자는 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어할 수 있다. 일 실시예에서, 제1 전자 장치인 TV를 제어하기 위하여, 사용자는 터치 가능한 제2 전자 장치인 스마트폰을 이용할 수 있다.
일 실시예에서, 제1 전자 장치가 제2 전자 장치로 화면을 복제하여 제공할 때, 제1 전자 장치는 제1 전자 장치의 화면 전체를 복사하지 않고, 제1 전자 장치의 화면 전체 중 일부만으로 구성되는, 편집된 화면(1240)을 제2 전자 장치로 제공할 수 있다. 예를 들어, 제1 전자 장치는 화면 레이아웃을 분석하고, 화면 내에서 클릭 가능한 콘텐트(또는 클릭 가능한 UI 요소)만을 포함하도록 화면을 재구성한, 편집된 화면(1240)을 생성할 수 있다. 제1 전자 장치는 편집된 화면(1240)을 제2 전자 장치로 제공할 수 있다.
일 실시예에서, 사용자는 제2 전자 장치에 대한 터치 입력을 통해 제1 전자 장치의 화면/앱을 탐색할 수 있다. 예를 들어, 사용자가 제1 전자 장치의 화면을 스크롤 다운 하고자 하는 경우, 사용자는 제2 전자 장치에서 화면을 스크롤 하기 위한 터치(예를 들어, 드래그 등)를 하거나, 더 보기 버튼을 터치할 수 있다. 이에 따라, 제2 전자 장치는 사용자가 새로운 콘텐트 리스트를 보고자 하는 것으로 결정할 수 있다.
제2 전자 장치는, 사용자의 터치 입력에 따라 결정된 사용자의 의도 및 화면 분석을 통해 획득된 레이아웃 정보에 기초하여, 사용자 의도를 달성하기 위한 하위 목표 및 작업을 결정할 수 있다. 예를 들어, 결정된 하위 목표는 새로운 콘텐트들이 표시되도록 하는 것이고, 하위 목표에 대응하는 작업은 스크롤 다운일 수 있다. 제2 전자 장치는 작업에 포함되는 시스템 액션 ‘아래 이동 3회’를 결정하고, 시스템 액션들에 대응하는 제어 명령을 제1 전자 장치로 결정할 수 있다.
제1 전자 장치는 시스템 액션들에 대응하는 제어 명령을 제2 전자 장치로부터 수신하여, 화면/앱 탐색을 수행할 수 있다. 예를 들어, 제1 전자 장치가 제어 명령에 기초하여 화면/앱 탐색을 수행한 결과, 제1 전자 장치의 화면에는 새로운 콘텐트들(1242)이 표시될 수 있다.
일 실시예에서, 제2 전자 장치는, 제1 전자 장치의 화면 내에서 클릭 가능한 콘텐트(또는 클릭 가능한 UI 요소)만을 포함하도록 화면을 재구성하는, 편집된 화면(1240)(이하, 제1 편집된 화면)을 표시하는 것 외에, 사용자의 제어 편의를 위해 추가적으로 가공한, 제2 편집된 화면(1244)을 생성하여 표시할 수 있다. 예를 들어, 제2 전자 장치는 제1 편집된 화면(1240) 내의 콘텐트들 외에 새로운 콘텐트들(1242)이 더 표시되어, 선택 가능한 콘텐트들을 한 화면에서 볼 수 있도록 하는, 제2 편집된 화면(1244)을 생성할 수 있다.
사용자는 제2 전자 장치에 대한 터치 입력을 통해 제1 전자 장치를 제어할 수 있다. 예를 들어, 사용자는 편집된 화면(1244) 내 콘텐트들 중 어느 하나를 선택함으로써, 제1 전자 장치에서 선택된 콘텐트가 재생되도록 할 수 있다.
도 13a는 본 개시의 일 실시예에 따른 제2 전자 장치에 대한 터치 입력으로, 제1 전자 장치에 텍스트를 입력하는 동작의 제1 실시예를 설명하기 위한 도면이다.
도 13a를 설명함에 있어서, 설명의 편의를 위해, 제2 전자 장치(1320)가 제1 전자 장치(1310)의 제어를 위한 레이아웃 분석기, 명령 분석기, 플래너 및 레이아웃 탐색기를 포함하는 것을 예시(도 11d에서 설명한 예시)로 설명한다. 다만, 이에 한정되는 것은 아니며, 도 11c 내지 도 11g에서 설명한 예시 중 어느 하나가 동일하게 적용될 수 있다. 또한, 설명의 편의를 위해, 제어 동작인 텍스트 타이핑이 수행되는 제1 전자 장치(1310)는 TV이고, 제어 명령인 터치 명령이 입력되는 제2 전자 장치(1320)는 스마트 폰인 것을 예시로 하여 설명한다.
일 실시예에서, 제1 전자 장치(1310)는 화면을 복제하여 제2 전자 장치(1320)로 전송할 수 있다. 제2 전자 장치(1320)는 복제된 화면을 표시하고, 사용자의 터치 명령을 입력 받을 수 있다. 제2 전자 장치(1320)는 사용자의 터치 명령에 기초하여, 제1 전자 장치(1310)를 제어하기 위한 액션 시퀀스를 생성할 수 있다. 예를 들어, 사용자가 제2 전자 장치(1320)의 화면에서 검색 아이콘을 터치하면, 제2 전자 장치(1320)의 화면에 소프트웨어 키보드가 활성화될 수 있다. 또는, 제2 전자 장치(1320)는, 화면 분석을 통해 제1 전자 장치(1310)의 화면이 검색 페이지임을 인식하여 제2 전자 장치(1320)의 화면에 소프트웨어 키보드를 활성화시킬 수 있다.
일 실시예에서, 사용자가 제1 전자 장치(1310)에 문자 ‘L’을 입력하기 위해 소프트웨어 키보드에서 ‘L’을 터치하는 경우, 제2 전자 장치(1320)는 화면 분석을 통해 현재 커서 위치를 인식하고, 하위 목표를 달성하기 위한 액션 시퀀스를 결정할 수 있다. 구체적으로, 현재 커서 위치가 문자 ‘A’에 있으므로, 제2 전자 장치(1320)는 액션 시퀀스 ‘아래로 1회 이동, 오른쪽으로 4회 이동, 엔터’를 결정할 수 있다.
제2 전자 장치(1320)는 결정된 액션 시퀀스를 제1 전자 장치(1310)로 전송할 수 있다. 제1 전자 장치(1310)는 수신된 액션 시퀀스에 의해 제어됨으로써, 문자 ‘L’이 입력되도록 할 수 있다.
도 13b는 본 개시의 일 실시예에 따른 제2 전자 장치에 대한 터치 입력으로, 제1 전자 장치에 텍스트를 입력하는 동작의 제2 실시예를 설명하기 위한 도면이다.
도 13b를 설명함에 있어서, 제1 전자 장치(1310)가 레이아웃 분석기, 명령 분석기, 플래너 및 레이아웃 탐색기를 포함하는 것을 예시(도 11c에서 설명한 예시)로 설명한다. 다만, 이에 한정되는 것은 아니며, 도 11c 내지 도 11g에서 설명한 예시 중 어느 하나가 동일하게 적용될 수 있다.
일 실시예에서, 제2 전자 장치(1320)는 물리 키보드일 수 있다. 제1 전자 장치(1310)는 사용자의 물리 키보드를 통한 문자 입력에 기초하여 제1 전자 장치에서 텍스트를 입력할 수 있다.
사용자가 제1 전자 장치(1310)에 문자 ‘L’을 입력하기 위해 제2 전자 장치(1320)인 물리 키보드에서 ‘L’을 누르는 경우, 제1 전자 장치(1310)는 화면 분석을 통해 현재 커서 위치를 인식하고, 하위 목표를 달성하기 위한 액션 시퀀스를 결정할 수 있다. 구체적으로, 현재 커서 위치가 문자 ‘A’에 있으므로, 제1 전자 장치(1310)는 액션 시퀀스 ‘아래로 1회 이동, 오른쪽으로 4회 이동, 엔터’를 결정할 수 있다. 제1 전자 장치(1310)는 결정된 액션 시퀀스에 수행함으로써, 문자 ‘L’이 입력되도록 할 수 있다.
도 13c는 본 개시의 일 실시예에 따른 전자 장치에 대한 터치 입력으로, 제1 전자 장치에 텍스트를 입력하는 동작의 제3 실시예를 설명하기 위한 도면이다.
도 13c를 설명함에 있어서, 설명의 편의를 위해, 제2 전자 장치(1320)가 제1 전자 장치(1310)의 제어를 위한 레이아웃 분석기, 명령 분석기, 플래너 및 레이아웃 탐색기를 포함하는 것을 예시(도 11d에서 설명한 예시)로 설명한다. 다만, 이에 한정되는 것은 아니며, 도 11c 내지 도 11g에서 설명한 예시 중 어느 하나가 동일하게 적용될 수 있다. 또한, 설명의 편의를 위해, 제어 동작인 텍스트 타이핑이 수행되는 제1 전자 장치(1310)는 TV이고, 제어 명령인 터치 명령이 입력되는 제2 전자 장치(1320)는 스마트 폰인 것을 예시로 하여 설명한다.
일 실시예에서, 제1 전자 장치(1310)는 화면을 복제하여 제2 전자 장치(1320)로 전송할 수 있다. 제2 전자 장치(1320)는 복제된 화면을 표시하고, 사용자의 터치 명령을 입력 받을 수 있다. 제2 전자 장치(1320)는 사용자의 터치 명령에 기초하여, 제1 전자 장치(1310)를 제어하기 위한 액션 시퀀스를 생성할 수 있다.
일 실시예에서, 사용자가 제1 전자 장치(1310)에 문자 ‘L’을 입력하기 위해 제2 전자 장치(1320)의 복제된 화면에서 ‘L’을 터치하는 경우, 제2 전자 장치(1320)는 화면 분석을 통해 현재 커서 위치를 인식하고, 하위 목표를 달성하기 위한 액션 시퀀스를 결정할 수 있다. 구체적으로, 현재 커서 위치가 문자 ‘A’에 있으므로, 제2 전자 장치(1320)는 액션 시퀀스 ‘아래로 1회 이동, 오른쪽으로 4회 이동, 엔터’를 결정할 수 있다.
제2 전자 장치(1320)는 결정된 액션 시퀀스를 제1 전자 장치(1310)로 전송할 수 있다. 제1 전자 장치(1310)는 수신된 액션 시퀀스에 의해 제어됨으로써, 문자 ‘L’이 입력되도록 할 수 있다.
도 14는 본 개시의 제2 전자 장치에 대한 터치 입력으로 제1 전자 장치를 제어하는, 또다른 실시예를 설명하기 위한 도면이다.
도 14를 설명함에 있어서, 설명의 편의를 위해, 제어 동작인 화면 탐색이 수행되는 제1 전자 장치(1410)는 터치 가능한 디바이스(예를 들어, 키오스크, 전자 칠판 등)이고, 제어 명령인 터치 명령이 입력되는 제2 전자 장치(1420)는 스마트 폰인 것을 예시로 하여 설명한다. 또한, 제2 전자 장치(1420)가 제1 전자 장치(1410)의 제어를 위한 레이아웃 분석기, 명령 분석기, 플래너 및 레이아웃 탐색기를 포함하는 것을 예시(도 11d에서 설명한 예시)로 설명한다. 다만, 이에 한정되는 것은 아니며, 도 11c 내지 도 11g에서 설명한 예시 중 어느 하나가 동일하게 적용될 수 있다.
일 실시예에서, 제1 전자 장치(1410)를 제어하기 위하여, 사용자는 제2 전자 장치(1420)를 이용할 수 있다.
제2 전자 장치(1420)는 제1 전자 장치(1410)로부터 복제된 화면을 수신하고, 표시할 수 있다. 제2 전자 장치(1420)는, 사용자로부터 터치 명령을 수신할 수 있다.
일 실시예에서, 제1 전자 장치(1410)는 터치 가능한 전자 장치이므로, 제2 전자 장치(1420)는 화면 레이아웃을 분석하여 사용자 터치 입력에 따른 제어 명령에 대한 하위 목표들을 플래닝할 필요 없이, 터치 된 영역이 특정한 기능 및/또는 액션에 해당하는지 여부만 판별하면 된다. 제2 전자 장치(1420)는 복제된 화면에 입력된 터치 이벤트의 좌표 및 터치 명령을 제1 전자 장치(1410)로 전달만 하면 된다. 구체적으로, 사용자가 제2 전자 장치(1420)에서 결제 버튼(1422)을 터치하는 경우, 제2 전자 장치(1420)는 터치 이벤트가 발생한 결제 버튼(1422)의 좌표 및 클릭 액션을 제1 전자 장치(1410)로 전달할 수 있다. 제1 전자 장치(1410)는 결제 버튼 클릭의 시스템 액션을 수행하고, 결제 화면으로 이동할 수 있다. 일 실시예에서, 제2 전자 장치(1420)는 제1 전자 장치(1410)에서 결제가 진행될 수 있도록 하는 결제 화면(1424)을 표시할 수 있다. 제2 전자 장치(1420)에서 결제 액션이 수행되면, 제2 전자 장치(1420)는 결제 액션과 관련된 데이터를 제1 전자 장치(1410)으로 전송하여, 결제가 완료되도록 할 수 있다.
도 15는 본 개시의 일 실시예에 따른 전자 장치의 구성을 도시한 블록도이다.
도 15를 참조하면, 일 실시예에 따른 전자 장치(2000)는 통신 인터페이스(2100), 디스플레이(2200), 메모리(2300) 및 프로세서(2400)를 포함할 수 있다.
통신 인터페이스(2100)는 프로세서(2400)의 제어에 의해 다른 전자 장치들과 데이터 통신을 수행할 수 있다.
통신 인터페이스(2100)는 통신 회로를 포함할 수 있다. 통신 인터페이스(2100)는 예를 들어, 유선 랜, 무선 랜(Wireless LAN), 와이파이(Wi-Fi), 블루투스(Bluetooth), 지그비(ZigBee), WFD(Wi-Fi Direct), 적외선 통신(IrDA, infrared Data Association), BLE (Bluetooth Low Energy), NFC(Near Field Communication), 와이브로(Wireless Broadband Internet, Wibro), 와이맥스(World Interoperability for Microwave Access, WiMAX), SWAP(Shared Wireless Access Protocol), 와이기그(Wireless Gigabit Alliances, WiGig) 및 RF 통신을 포함하는 데이터 통신 방식 중 적어도 하나를 이용하여, 전자 장치(2000)와 다른 디바이스들 간의 데이터 통신을 수행할 수 있는, 통신 회로를 포함할 수 있다.
일 실시예에 따른 통신 인터페이스(2100)는 전자 장치(2000)의 화면을 제어하기 위한 데이터를 외부 장치와 송수신할 수 있다. 예를 들어, 통신 인터페이스(2100)는 제2 전자 장치 또는 서버(3000)로 전자 장치(2000)의 화면 이미지를 전송하거나, 제2 전자 장치 또는 서버(3000)에서 생성된 전자 장치(2000)의 제어 명령을 수신할 수 있다. 또한, 통신 인터페이스(2100)는 전자 장치(2000)가 화면을 제어하기 위해 이용하는 인공지능 모델(예를 들어, ASR 모델, NLU 모델, 비전 인식 모델 등) 및 훈련 데이터를 외부 장치와 송수신할 수 있다.
디스플레이(2200)는 프로세서(2400)의 제어에 의해 전자 장치(2000)의 화면에 영상 신호를 출력할 수 있다. 디스플레이(2200)에는, 개시된 실시예들에 의한 애플리케이션 제어를 위한 적어도 하나의 작업이 수행됨에 따라, 전환되는 화면이 표시될 수 있다.
메모리(2300)는 프로세서(2400)가 판독할 수 있는 명령어들, 데이터 구조, 및 프로그램 코드(program code)가 저장될 수 있다. 개시된 실시예들에서, 프로세서(2400)가 수행하는 동작들은 메모리(2300)에 저장된 프로그램의 명령어들 또는 코드들을 실행함으로써 구현될 수 있다.
메모리(2300)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등)를 포함할 수 있으며, 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나를 포함하는 비 휘발성 메모리 및 램(RAM, Random Access Memory) 또는 SRAM(Static Random Access Memory)과 같은 휘발성 메모리를 포함할 수 있다.
일 실시예에 따른 메모리(2300)는 전자 장치(2000)가 화면 제어를 위해 동작하도록 하는 하나 이상의 인스트럭션 및/또는 프로그램을 저장할 수 있다. 예를 들어, 메모리(2300)에는 명령 분석 모듈(2310), 레이아웃 분석 모듈(2320), 하위 목표 결정 모듈(2330) 및 화면 내비게이터 모듈(2340)이 저장될 수 있다.
프로세서(2400)는 전자 장치(2000)의 전반적인 동작들을 제어할 수 있다. 예를 들어, 프로세서(2400)는 메모리(2300)에 저장된 프로그램의 하나 이상의 명령어들(instructions)을 실행함으로써, 전자 장치(2000)가 화면을 제어하기 위한 전반적인 동작들을 제어할 수 있다.
프로세서(2400)는 예를 들어, 중앙 처리 장치(Central Processing Unit), 마이크로 프로세서(microprocessor), 그래픽 처리 장치(Graphic Processing Unit), ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 애플리케이션 프로세서(Application Processor), 신경망 처리 장치(Neural Processing Unit) 또는 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계된 인공지능 전용 프로세서 중 적어도 하나로 구성될 수 있으나, 이에 제한되는 것은 아니다.
프로세서(2400)는 명령 분석 모듈(2310)을 실행하여, 사용자 입력 명령을 분석할 수 있다. 명령 분석 모듈(2310)은 명령 분석기를 포함할 수 있다. 명령 분석기는 사용자 명령을 입력 받아, 사용자 의도를 출력할 수 있다. 사용자 의도란, 사용자 입력이 전자 장치(2000)에서 어떠한 기능 및/또는 동작을 수행하기 위한 것인지 나타내는 정보를 포함할 수 있다.
프로세서(2400)는 레이아웃 분석 모듈(2320)을 실행하여, 화면 레이아웃을 분석할 수 있다. 레이아웃 분석 모듈(2320)은 레이아웃 분석기를 포함할 수 있다. 레이아웃 분석기는 전자 장치(2000)의 화면 이미지를 입력 받아, 레이아웃 정보를 출력할 수 있다. 레이아웃 정보는 예를 들어, 화면 내 UI 요소들의 위치, UI 요소들의 크기, 아이콘은 어떤 기능을 하는 아이콘인지(예를 들어, 아이콘 인식), 텍스트의 내용이 무엇인지(예를 들어, 문자 인식) 등을 포함할 수 있다.
프로세서(2400)는 하위 목표 결정 모듈(2330)을 실행하여, 사용자 의도에 대응하는 제어 명령을 실행하기 위한 계획을 수립할 수 있다. 하위 목표 결정 모듈(2330)은 플래너를 포함할 수 있다. 플래너는 레이아웃 정보 및 사용자 의도에 기초하여, 하위 목표를 결정할 수 있다.
프로세서(2400)는 화면 내비게이터 모듈(2340)을 실행하여, 화면 탐색을 수행할 수 있다. 화면 내비게이터 모듈(2340)은 레이아웃 탐색기를 포함할 수 있다. 레이아웃 탐색기는, 하위 목표에 대응하는 작업을 결정할 수 있다. 작업이란, 전자 장치(2000)에서 특정 기능을 실행하기 위한 단위인 시스템 액션들(예를 들어, 커서 이동, 클릭 등)의 집합을 말한다. 전자 장치(2000)는 하위 목표에 대응하는 작업을 수행함으로써, 하위 목표를 달성할 수 있다. 하위 목표를 달성하기 위한 작업은, 커서 이동 및 클릭 등을 포함하는, 시스템 액션들로 구성된다.
도 16은 본 개시의 일 실시예에 따른 서버의 구성을 도시한 블록도이다.
일 실시예에서, 전술한 전자 장치(2000)의 동작들은, 서버(3000)에서 수행될 수 있다.
일 실시예에 따른 서버(3000)는 통신 인터페이스(3100), 메모리(3200) 및 프로세서(3300)를 포함할 수 있다. 서버(3000)의 통신 인터페이스(3100), 메모리(3200) 및 프로세서(3300)는 도 15의 전자 장치(2000)의 통신 인터페이스(2100), 메모리(2300) 및 프로세서(2400)에 각각 대응되므로, 동일한 설명은 생략한다.
일 실시예에 따른 서버(3000)는, 전자 장치(2000) 보다 연산량이 많은 연산을 수행 가능하도록, 컴퓨팅 성능이 전자 장치(2000)보다 높은 장치일 수 있다. 서버(3000)는 추론에 비해 상대적으로 많은 연산량이 요구되는, 인공지능 모델의 훈련을 수행할 수 있다.
도 17은 본 개시의 일 실시예에 따른 전자 장치의 제어 동작을 설명하기 위한 흐름도이다.
단계 S1710에서, 일 실시예에 따른 전자 장치(2000)는 사용자 입력을 수신한다.
일 실시예에서, 사용자 입력은 음성 신호 입력, 텍스트 입력, 제스처 입력, 제2 디바이스의 복제된 화면에 대한 터치 입력을 포함할 수 있으나, 이에 한정되는 것은 아니다. 전자 장치(2000)는 사용자 입력에 기초하여 사용자 의도를 결정할 수 있다.
단계 S1720에서, 일 실시예에 따른 전자 장치(2000)는 화면 분석이 필요한지 여부를 결정한다. 일 실시예에서, 전자 장치(2000)는 사용자 입력의 대상이 되는 애플리케이션이 OS에 의해 직접 접근 가능한 앱인 경우, 화면 분석 없이 레이아웃 정보를 획득할 수 있다. 전자 장치(2000)는 화면 분석이 필요한 것으로 판단되는 경우, 단계 S1725를 수행할 수 있다.
단계 S1725에서, 일 실시예에 따른 전자 장치(2000) 화면 분석을 수행하여 레이아웃 정보를 획득한다.
단계 S1730에서, 일 실시예에 따른 전자 장치(2000)는 하위 목표를 계획한다. 전자 장치(2000)는 사용자의 의도 및 레이아웃 정보(예를 들어, 사용자 인터페이스의 요소들)에 기초하여, 하위 목표를 계획할 수 있다. 하위 목표는 복수일 수 있다. 전자 장치(2000)는 첫번째 하위 목표에 대응하는 작업을 결정하고, 시스템 액션들을 수행함으로써, 하위 목표를 달성할 수 있다. 첫번째 하위 목표가 달성되면, 전자 장치(2000)는 단계 S1735를 수행할 수 있다.
단계 S1735에서, 일 실시예에 따른 전자 장치(2000)는 화면 분석을 수행하여 레이아웃 정보를 획득한다. 단계 S1735에서 획득된 레이아웃 정보는, 사용자 의도의 달성 여부 또는 하위 목표 달성 여부를 결정하는 데 이용될 수 있다.
단계 S1740에서, 일 실시예에 따른 전자 장치(2000)는 사용자 의도가 달성되었는지 여부를 결정한다. 전자 장치(2000)는 단계 S1735에서 획득된 레이아웃 정보에 기초하여, 전자 장치(2000)의 현재 화면이 사용자 의도가 달성된 상태를 나타내는 타겟 상태인지 여부를 식별할 수 있다.
단계 S1750에서, 일 실시예에 따른 전자 장치(2000)는 사용자 의도가 달성되지 않은 경우, 다음 하위 목표(이전의 하위 목표가 달성된 이후에 수행될 하위 목표)를 선택한다.
단계 S1760에서, 일 실시예에 따른 전자 장치(2000)는 다음 하위 목표를 달성하기 위한 작업에 대응하는 액션 시퀀스를 계획한다. 전자 장치(2000)는 액션 시퀀스(시스템 액션들)을 수행함으로써, 다음 하위 목표가 달성되도록 할 수 있다.
단계 S1770에서, 일 실시예에 따른 전자 장치(2000)는 하위 목표 달성 여부를 결정한다. 전자 장치(2000)는 계획된 액션 시퀀스의 시스템 액션들이 모두 수행되면, 하위 목표가 달성된 것으로 결정할 수 있다. 전자 장치(2000)는 계획된 액션 시퀀스의 시스템 액션들 중 일부만이 수행되면, 하위 목표가 달성되지 않은 것으로 결정할 수 있다.
단계 S1780에서, 일 실시예에 따른 전자 장치(2000)는 하위 목표가 존재하는지 여부를 체크한다. 예를 들어, 전자 장치(2000)에서 에러 등으로 인해 하위 목표가 손실되거나, 전자 장치(2000)에서 앱 전환, 다른 동작 수행 등으로 인해 하위 목표가 존재하지 않게 될 수 있다. 하위 목표가 존재하지 않는 경우, 전자 장치(2000)는 단계 S1720을 다시 수행할 수 있다. 하위 목표가 존재하는 경우, 전자 장치(2000)는 단계 S1790을 수행할 수 있다.
단계 S1790에서, 일 실시예에 따른 전자 장치(2000)는 하위 목표가 여전히 존재하고, 액션 시퀀스 중 일부만이 실행되어 하위 목표가 달성되지 않은 경우, 나머지 다음 액션들을 실행한다.
단계 S1795에서, 일 실시예에 따른 전자 장치(2000)는 화면 분석을 수행하여 레이아웃 정보를 획득한다. 단계 S1795에서 획득된 레이아웃 정보는, 하위 목표 달성 여부를 결정하는 데 이용될 수 있다.
한편, 본 개시의 실시예들은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독 가능 명령어, 데이터 구조, 또는 프로그램 모듈과 같은 변조된 데이터 신호의 기타 데이터를 포함할 수 있다.
또한, 컴퓨터에 의해 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 전자 장치가 애플리케이션 화면을 탐색하는 방법에 있어서,
    사용자 입력을 수신하는 단계;
    상기 사용자 입력에 기초하여, 상기 전자 장치를 제어하기 위한 사용자 의도를 결정하는 단계;
    상기 사용자 의도에 대응하는 제어 동작을 수행하기 위한 제어 명령을 결정하는 단계;
    상기 애플리케이션 화면의 사용자 인터페이스의 요소들을 식별하는 단계;
    상기 사용자 의도 및 상기 사용자 인터페이스의 요소들에 기초하여, 상기 제어 명령을 실행하기 위한 적어도 하나의 하위 목표를 결정하는 단계; 및
    상기 적어도 하나의 하위 목표에 대응하는 적어도 하나의 작업을 수행하여 상기 제어 명령을 실행하는 단계를 포함하고,
    상기 적어도 하나의 하위 목표는 각각, 상기 제어 명령을 실행하기 위한 상기 애플리케이션의 탐색 동작의 중간 점검에 기초하여 변경 가능한 것이고,
    상기 적어도 하나의 작업은, 상기 애플리케이션을 탐색하기 위한 액션의 단위들로 구성되는 것인, 방법.
  2. 제1항에 있어서,
    상기 애플리케이션 화면의 사용자 인터페이스의 요소들은,
    아이콘, 이미지, 텍스트 및 버튼 중 적어도 하나를 포함하는 것인, 방법.
  3. 제1항에 있어서,
    상기 방법은,
    상기 제어 명령이 상기 전자 장치의 운영체제에 의해 호출될 수 있는 기능에 대한 제어 명령인지 여부를 식별하는 단계를 더 포함하고,
    상기 사용자 인터페이스 요소들을 식별하는 단계는,
    상기 제어 명령이 호출 불가능한 기능에 대한 제어 명령인 것에 기초하여, 상기 애플리케이션 화면의 사용자 인터페이스의 요소들을 식별하는 단계를 포함하는, 방법.
  4. 제1항에 있어서,
    상기 적어도 하나의 하위 목표를 결정하는 단계는,
    상기 사용자 인터페이스의 요소들에 기초하여, 상기 전자 장치의 현재 상태를 검출하는 단계;
    상기 사용자 의도에 기초하여, 상기 제어 명령이 실행된 상태를 나타내는 상기 전자 장치의 타겟 상태를 결정하는 단계; 및
    상기 전자 장치의 현재 상태 및 상기 전자 장치의 타겟 상태에 기초하여, 상기 적어도 하나의 하위 목표를 결정하는 단계를 포함하는, 방법.
  5. 제4항에 있어서,
    상기 제어 명령을 실행하는 단계는,
    상기 하위 목표가 둘 이상인 것에 기초하여, 상기 제어 명령이 실행될 때까지 상기 하위 목표들을 순차적으로 달성하는 단계를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 제어 명령을 실행하는 단계는,
    상기 애플리케이션의 화면 전환을 포함하는 상기 적어도 하나의 작업을 수행함으로써, 상기 애플리케이션을 탐색하는 단계를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 방법은,
    상기 애플리케이션의 화면이 제1 화면에서 제2 화면으로 전환된 것에 기초하여, 상기 중간 점검을 위해 제1 하위 목표가 달성되었는지 여부를 식별하는 단계; 및
    상기 제1 하위 목표의 달성 여부에 기초하여, 제2 하위 목표를 동적으로 결정하는 단계를 더 포함하는, 방법.
  8. 제7항에 있어서,
    상기 제2 하위 목표를 동적으로 결정하는 단계는,
    상기 제2 화면의 인터페이스 요소들에 기초하여 상기 제2 하위 목표를 변경하는 단계를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 제어 명령을 실행하는 단계는,
    상기 제1 하위 목표에 대응하는 제1 작업을 수행하는 단계; 및
    상기 제2 하위 목표에 대응하는 제2 작업을 수행하는 단계를 포함하는, 방법.
  10. 제1항에 있어서,
    상기 사용자 입력은 음성 신호를 포함하고,
    상기 사용자 의도를 결정하는 단계는,
    상기 음성 신호에 자동 음성 인식(Automatic Speech Recognition; ASR)을 수행하여 음성 신호를 텍스트로 변환하는 단계; 및
    획득된 텍스트를 자연어 이해(Natural Language Understanding; NLU) 모델에 적용하여, 상기 사용자 의도를 획득하는 단계를 포함하는, 방법.
  11. 애플리케이션 화면을 탐색하는 전자 장치에 있어서,
    실행 중인 애플리케이션의 화면을 표시할 수 있는 디스플레이;
    통신 인터페이스;
    하나 이상의 명령어를 저장하는 메모리; 및
    상기 메모리에 저장된 상기 하나 이상의 명령어를 실행하는 프로세서를 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    사용자 입력을 수신하고,
    상기 사용자 입력에 기초하여, 상기 전자 장치를 제어하기 위한 사용자 의도를 결정하고,
    상기 사용자 의도에 대응하는 제어 동작을 수행하기 위한 제어 명령을 결정하고,
    상기 애플리케이션 화면의 사용자 인터페이스의 요소들을 식별하고,
    상기 사용자 의도 및 상기 사용자 인터페이스의 요소들에 기초하여, 상기 제어 명령을 실행하기 위한 적어도 하나의 하위 목표를 결정하고,
    상기 적어도 하나의 하위 목표에 대응하는 적어도 하나의 작업을 수행하여 상기 제어 명령을 실행하되,
    상기 적어도 하나의 하위 목표는 각각, 상기 제어 명령을 실행하기 위한 상기 애플리케이션의 탐색 동작의 중간 점검에 기초하여 변경 가능한 것이고,
    상기 적어도 하나의 작업은, 상기 애플리케이션을 탐색하기 위한 액션의 단위들로 구성되는 것인, 전자 장치.
  12. 제11항에 있어서,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 제어 명령이 상기 전자 장치의 운영체제에 의해 호출될 수 있는 기능에 대한 제어 명령인지 여부를 식별하고,
    상기 제어 명령이 호출 불가능한 기능에 대한 제어 명령인 것에 기초하여, 상기 애플리케이션 화면의 사용자 인터페이스의 요소들을 식별하는, 전자 장치.
  13. 제11항에 있어서,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 사용자 인터페이스의 요소들에 기초하여, 상기 전자 장치의 현재 상태를 검출하고,
    상기 사용자 의도에 기초하여, 상기 제어 명령이 실행된 상태를 나타내는 상기 전자 장치의 타겟 상태를 결정하고,
    상기 전자 장치의 현재 상태 및 상기 전자 장치의 타겟 상태에 기초하여, 상기 적어도 하나의 하위 목표를 결정하는, 전자 장치.
  14. 제13항에 있어서,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 하위 목표가 둘 이상인 것에 기초하여, 상기 제어 명령이 실행될 때까지 상기 하위 목표들을 순차적으로 달성하는, 전자 장치.
  15. 제14항에 있어서,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 애플리케이션의 화면 전환을 포함하는 상기 적어도 하나의 작업을 수행함으로써, 상기 애플리케이션을 탐색하는, 전자 장치.
  16. 제15항에 있어서,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 애플리케이션의 화면이 제1 화면에서 제2 화면으로 전환된 것에 기초하여, 상기 중간 점검을 위해 제1 하위 목표가 달성되었는지 여부를 식별하고,
    상기 제1 하위 목표의 달성 여부에 기초하여, 제2 하위 목표를 동적으로 결정하는, 전자 장치.
  17. 제13항에 있어서,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 제2 화면의 인터페이스 요소들에 기초하여 상기 제2 하위 목표를 변경하는, 전자 장치.
  18. 제17항에 있어서,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 제1 하위 목표에 대응하는 제1 작업을 수행하고,
    상기 제2 하위 목표에 대응하는 제2 작업을 수행하는, 전자 장치.
  19. 제11항에 있어서,
    상기 사용자 입력은 음성 신호를 포함하고,
    상기 프로세서는 상기 하나 이상의 인스트럭션을 실행함으로써,
    상기 음성 신호에 자동 음성 인식(Automatic Speech Recognition; ASR)을 수행하여 음성 신호를 텍스트로 변환하고,
    획득된 텍스트를 자연어 이해(Natural Language Understanding; NLU) 모델에 적용하여, 상기 사용자 의도를 획득하는, 전자 장치.
  20. 제1항 내지 제10항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020220055724A 2021-06-17 2022-05-04 애플리케이션 화면을 탐색하는 전자 장치 및 그 동작 방법 KR20220168972A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2022/008605 WO2022265448A1 (ko) 2021-06-17 2022-06-17 애플리케이션 화면을 탐색하는 전자 장치 및 그 동작 방법
US17/875,083 US20220404956A1 (en) 2021-06-17 2022-07-27 Method and electronic device for navigating application screen

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210078993 2021-06-17
KR20210078993 2021-06-17

Publications (1)

Publication Number Publication Date
KR20220168972A true KR20220168972A (ko) 2022-12-26

Family

ID=84547696

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220055724A KR20220168972A (ko) 2021-06-17 2022-05-04 애플리케이션 화면을 탐색하는 전자 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR20220168972A (ko)

Similar Documents

Publication Publication Date Title
US20240152548A1 (en) Electronic apparatus for searching related image and control method therefor
US11194448B2 (en) Apparatus for vision and language-assisted smartphone task automation and method thereof
US11847409B2 (en) Management of presentation content including interjecting live feeds into presentation content
US9875237B2 (en) Using human perception in building language understanding models
US10642365B2 (en) Parametric inertia and APIs
US10762678B2 (en) Representing an immersive content feed using extended reality based on relevancy
US11721333B2 (en) Electronic apparatus and control method thereof
US20190271940A1 (en) Electronic device, external device capable of being combined with the electronic device, and a display method thereof
US11243824B1 (en) Creation and management of live representations of content through intelligent copy paste actions
US9747004B2 (en) Web content navigation using tab switching
US20220318077A1 (en) Data engine
WO2017172550A1 (en) Ink in an electronic document
US11163377B2 (en) Remote generation of executable code for a client application based on natural language commands captured at a client device
US11650717B2 (en) Using artificial intelligence to iteratively design a user interface through progressive feedback
US20220301549A1 (en) Electronic device and method for providing voice recognition service
US10708391B1 (en) Delivery of apps in a media stream
KR20220168972A (ko) 애플리케이션 화면을 탐색하는 전자 장치 및 그 동작 방법
Zhang et al. PEANUT: A Human-AI Collaborative Tool for Annotating Audio-Visual Data
US20220404956A1 (en) Method and electronic device for navigating application screen
US20220269935A1 (en) Personalizing Digital Experiences Based On Predicted User Cognitive Style
KR20220040997A (ko) 전자 장치 및 그 제어 방법
US10782947B2 (en) Systems and methods of diagram transformation
CN111427529B (zh) 交互方法、装置、设备及存储介质
US20190318652A1 (en) Use of intelligent scaffolding to teach gesture-based ink interactions
KR102593866B1 (ko) 스마트 디바이스 사용 과정에서 시각 장애인의 객체 탐지를 돕기 위한 태스크 기반의 음향 가이드 방법 및 장치