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

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

Info

Publication number
KR20230101686A
KR20230101686A KR1020220121152A KR20220121152A KR20230101686A KR 20230101686 A KR20230101686 A KR 20230101686A KR 1020220121152 A KR1020220121152 A KR 1020220121152A KR 20220121152 A KR20220121152 A KR 20220121152A KR 20230101686 A KR20230101686 A KR 20230101686A
Authority
KR
South Korea
Prior art keywords
user interface
focus
electronic device
links
application screen
Prior art date
Application number
KR1020220121152A
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/020494 priority Critical patent/WO2023128424A1/ko
Priority to US18/146,592 priority patent/US20230205556A1/en
Publication of KR20230101686A publication Critical patent/KR20230101686A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/485End-user interface for client configuration
    • 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/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
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4662Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
    • H04N21/4663Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms involving probabilistic networks, e.g. Bayesian networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4662Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms
    • H04N21/4666Learning process for intelligent management, e.g. learning user preferences for recommending movies characterized by learning algorithms using neural networks, e.g. processing the feedback provided by the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

애플리케이션 화면을 분석하는 방법이 개시된다. 본 애플리케이션 화면을 분석하는 방법은 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들에 대한 복수의 링크(Link)들을 생성하는 단계, 복수의 링크들에 기초하여 애플리케이션 화면을 탐색하기 위한 사용자 입력인 적어도 하나의 프리미티브(Primitive) 액션 각각에 대한 사용자 인터페이스 맵을 생성하는 단계, 및 복수의 사용자 인터페이스 요소들 중 사용자의 상호 작용 대상이 되는 사용자 인터페이스 요소를 나타내는 포커스의 위치를 식별하는 단계를 포함하며, 사용자 인터페이스 맵은 적어도 하나의 프리미티브 액션에 의해 포커스의 위치가 복수의 사용자 인터페이스 요소들 사이를 이동하는 경로를 포함한다.

Description

애플리케이션 화면을 분석하는 전자 장치 및 그 동작 방법{METHOD AND ELECTRONIC DEVICE ANALYZING AN APPLICATION SCREEN}
본 개시는, 애플리케이션 화면을 분석하기 위한 전자 장치 및 그 동작 방법에 관한 것이다.
디스플레이를 포함하는 다양한 전자 장치들의 예로는 TV, 사이니지, 키오스크 등이 있다. 디스플레이를 포함하는 전자 장치에서는 다양한 애플리케이션이 표시될 수 있다.
전자 장치의 사용자는 자신이 원하는 애플리케이션의 특정 기능이나 서비스를 제공받기 위해서 애플리케이션 화면을 탐색할 수 있다. 애플리케이션 화면의 탐색은 프리미티브 액션들의 조합에 기초하여 수행될 수 있다.
애플리케이션 화면의 탐색이 성공적으로 수행되기 위해서는 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들이 어떻게 연결 되었는지 및 현재 애플리케이션 화면에서 포커스의 위치가 어디에 존재하는지 파악하는 것이 선행되어야 한다.
본 개시의 일 실시예에 따른 애플리케이션 화면을 분석하는 방법은 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들에 대한 복수의 링크(Link)들을 생성하는 단계를 포함한다. 일 실시예에서, 애플리케이션에서 화면을 분석하는 방법은 복수의 링크들에 기초하여 애플리케이션 화면을 탐색하기 위한 사용자 입력인 적어도 하나의 프리미티브(Primitive) 액션 각각에 대한 사용자 인터페이스 맵을 생성하는 단계 및 복수의 사용자 인터페이스 요소들 중 사용자의 상호 작용 대상이 되는 사용자 인터페이스 요소를 나타내는 포커스의 위치를 식별하는 단계를 포함할 수 있다. 일 실시예에서, 사용자 인터페이스 맵은 적어도 하나의 프리미티브 액션에 의해 포커스의 위치가 복수의 사용자 인터페이스 요소들 사이를 이동하는 경로를 포함할 수 있다.
본 개시의 일 실시예에 따른 애플리케이션 화면을 분석하는 전자 장치는 적어도 하나의 명령어(instruction)를 저장하는 메모리 및 메모리에 저장된 적어도 하나의 명령어를 실행하는 적어도 하나의 프로세서를 포함할 수 있다. 일 실시예에서, 적어도 하나의 프로세서는 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들에 대한 복수의 링크(link)들을 생성할 수 있다. 일 실시예에서, 적어도 하나의 프로세서는 복수의 링크들에 기초하여 애플리케이션 화면을 탐색하기 위한 사용자 입력인 적어도 하나의 프리미티브(Primitive) 액션 각각에 대한 사용자 인터페이스 맵을 생성할 수 있다. 일 실시예에서, 적어도 하나의 프로세서는 복수의 사용자 인터페이스 요소들 중 사용자의 상호 작용 대상이 되는 사용자 인터페이스 요소를 나타내는 포커스의 위치를 식별할 수 있다. 일 실시예에서, 사용자 인터페이스 맵은 적어도 하나의 프리미티브 액션에 의해 포커스의 위치가 복수의 사용자 인터페이스 요소들 사이를 이동하는 경로를 포함할 수 있다.
본 개시의 일 실시예에 따르면, 개시된 애플리케이션 화면을 분석하는 방법 중 적어도 하나의 방법을 컴퓨터에서 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체가 제공될 수 있다.
도 1은 본 개시의 일 실시예에 따른 전자 장치가 애플리케이션 화면을 탐색하는 방법을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시예에 따른 전자 장치가 애플리케이션 화면을 분석하는 방법을 설명하기 위한 흐름도이다.
도 3a는 본 개시의 일 실시예에 따른 전자 장치의 제어에 관련된 애플리케이션 및 소스들을 설명하기 위한 도면이다.
도 3b는, 전자 장치가 프리미티브 액션에 기초하여 도 3a에서 전술한 애플리케이션 및 소스들을 제어하는 동작을 설명하기 위한 도면이다.
도 4a 및 도 4b는 본 개시의 일 실시예에 따른 전자 장치의 제어 동작을 설명하기 위한 도면이다.
도 5a, 5b 및 5c는 본 개시의 일 실시예에 따른 전자 장치가 엣지 생성기를 이용하여 엣지를 생성하는 동작을 설명하기 위한 도면들이다.
도 6은 본 개시의 일 실시예에 따른 전자 장치가 엣지 레이블러를 이용하여 사용자 인터페이스 맵을 생성하는 동작을 설명하기 위한 도면이다.
도 7a, 7b 및 7c는 본 개시의 일 실시예에 따른 전자 장치가 포커스 위치 추정기를 이용하여 포커스의 위치를 식별하는 동작을 설명하기 위한 도면들이다.
도 8a, 8b, 8c 및 8d는 본 개시의 일 실시예에 따른 전자 장치가 애플리케이션 화면을 분석하는 방법을 설명하기 위한 도면들이다.
도 9는 본 개시의 일 실시예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
도 10은 본 개시의 일 실시예에 따른 서버의 구성을 설명하기 위한 블록도이다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 일 구성요소가 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서, '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
또한, 본 명세서에서, '모델' 및 '인공 지능 모델'은 학습 알고리즘에 의하여 다수 학습 데이터를 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 모델을 의미할 수 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 반드시 이에 한정되지는 않는다.
또한, 본 명세서에서 '모델' 및 '인공지능 모델' 은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행할 수 있다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다. 복수의 신경망 레이어를 포함하는 인공 지능 모델의 예로는, 심층 신경망(DNN:Deep Neural Network), CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network), 심층 Q-네트워크 (Deep Q-Networks) 등이 있으나, 반드시 이에 한정되지는 않는다.
또한, 본 명세서에서 '사용자 인터페이스(User Interface; UI) 요소'는 애플리케이션 화면에서 사용자의 선택과 같은 사용자와 상호 작용에 의해 애플리케이션의 특정 기능이 수행되는 가상적 매개체를 의미할 수 있다. 사용자 인터페이스 요소는 아이콘, 이미지, 텍스트, 입력 필드 중 적어도 하나를 포함할 수 있다. 다만, 사용자 인터페이스 요소가 반드시 이에 한정되지는 않으며, 애플리케이션 화면에 포함된 사용자와 상호 작용이 가능한 모든 요소를 포함할 수 있다.
또한, 본 명세서에서 '탐색(Navigation)'이란 애플리케이션 화면의 사용자 인터페이스 요소와 상호 작용하여 애플리케이션에서 제공하는 특정 기능 및/또는 특정 서비스에 액세스하는 프로세스를 의미할 수 있다.
또한, 본 명세서에서 '서드 파티(Third Party) 애플리케이션'이란 애플리케이션이 실행되는 전자 장치 또는 전자 장치의 운영 체제(Operation System; OS)의 제조사와는 다른 회사에서 제작 및 배포하는 애플리케이션을 의미할 수 있다. 서드 파티 애플리케이션은, 전자 장치의 내부에 설치된 애플리케이션이거나, 전자 장치와 연결되는 외부 소스(예를 들어, 게임 콘솔, 셋탑 박스 등)에 설치된 애플리케이션일 수 있다.
또한, 본 명세서에서 '프리미티브(Primitive) 액션'이란 애플리케이션 화면을 탐색하기 위한 사용자 입력을 의미할 수 있다. 전자 장치 또는 전자 장치의 운영 체제는 애플리케이션에 프리미티 액션을 전송하여 애플리케이션 화면을 탐색할 수 있다. 프리미티브 액션은 애플리케이션 프로그램 인터페이스를 통하지 않고, 애플리케이션에 제공될 수 있는 사용자 입력일 수 있다. 프리미티브 액션의 예로는, 'Move Up', 'Move Down', 'Move Left' 'Move Right', 'Go Back', 'Go Home', 'Select Click' 등을 포함할 수 있으나, 반드시 이에 한정되지는 않으며, 애플리케이션 프로그램 인터페이스(Application Program Interface; API)를 통하지 않고 애플리케이션에 제공될 수 있는 모든 사용자 입력을 포함할 수 있다.
또한, 본 명세서에서 '포커스'란 애플리케이션에서 사용자와 상호 작용하고 있는 대상(또는, 영역)을 나타내는 것을 의미할 수 있다. 포커스가 특정 사용자 인터페이스 요소에 위치하는 경우, 사용자는 포커스가 위치한 사용자 인터페이스 요소와 상호 작용할 수 있다. 포커스가 위치한 사용자 인터페이스 요소는 해당 사용자 인터페이스 요소에 포커스가 위치하였음을 사용자가 인식하기 위한 시각적 표시들을 포함할 수 있다.
또한, 본 명세서에서 '링크(Link)'란 서로 다른 사용자 인터페이스 요소들 사이의 연결 및/또는 사용자 인터페이스 요소의 자기 자신에 대한 연결을 의미할 수 있다.
또한, 본 명세서에서 '사용자 인터페이스 맵(User Interface Map)'이란 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들이 어떻게 연결되었는 지 및 해당 연결에 따라 포커스가 이동하기 위해서는 어떠한 프리미티브 액션이 필요한지에 관한 정보를 의미할 수 있다.
도 1은 본 개시의 일 실시예에 따른 전자 장치가 애플리케이션 화면을 탐색하는 방법을 설명하기 위한 도면이다.
도 1을 참조하면, 일 실시예에 따른 전자 장치(2000)는 디스플레이를 포함하여 영상 및/또는 동영상을 출력하는 장치일 수 있다. 예를 들어, 전자 장치(2000)는 스마트 TV, 스마트폰, 사이니지, 키오스크, 전자 칠판, 태블릿 PC, 랩탑 PC, 액자형 디스플레이 등을 포함할 수 있으나, 이에 한정되는 것은 아니며, 전자 장치(2000) 디스플레이를 포함하는 다양한 종류 및 형태의 전자 장치로 구현될 수 있다.
일 실시예에서, 전자 장치(2000)는 사용자 입력에 기초하여 애플리케이션 화면을 탐색할 수 있다. 예를 들어, 전자 장치(2000)에서는 현재 비디오 애플리케이션인 Y 애플리케이션이 실행 중이고, 음성 신호 형태의 사용자 입력 “Y 앱에서 B드라마 7화를 보여줘" 또는 터치 및/또는 별도의 포인터 조작을 통해 B 드라마 7화 썸네일 이미지(113)를 선택하는 사용자 입력을 수신할 수 있다. 전자 장치(2000)는 수신된 사용자 입력에 기초하여 Y 애플리케이션의 탐색을 수행하여 B 드라마 7화의 재생 화면(120)을 표시할 수 있다.
일 실시예에서, 전자 장치(2000)에서 실행되는 애플리케이션은, 전자 장치의 운영 체제가 직접 제어하는 시스템 애플리케이션과, 전자 장치의 운영 체제가 애플리케이션 프로그램 인터페이스를 통해 제어하는 서드 파티 애플리케이션으로 구별될 수 있다.
일 실시예에서, 전자 장치(2000)는 애플리케이션 프로그램 인터페이스를 통해 특정 기능 및/또는 서비스를 서드 파티 애플리케이션에 요청할 수 있으며, 서드 파티 애플리케이션은 요청에 대한 응답으로 특정 기능 및/또는 서비스를 실행할 수 있다.
일 실시예에서, 서드 파티 애플리케이션의 애플리케이션 프로그램 인터페이스가 제공되지 않거나, 전자 장치(2000)에 의해 호출이 불가능할 수 있다. 이 경우, 전자 장치(2000)는 프리미티브 액션 만을 전자 장치에 제공할 수 있을 뿐, 애플리케이션 프로그램 인터페이스를 통해 요청할 수 있는 기능 및/또는 서비스를 서드 파티 애플리케이션에 직접적으로 요청할 수 없다. 그 대신, 전자 장치(2000)는 프리미티브 액션에 기초하여 애플리케이션 화면을 탐색하여 해당 기능 및/또는 서비스를 서드 파티 애플리케이션에 간접적으로 요청할 수 있다. 이에 따라, 서드 파티 애플리케이션은 전자 장치(2000)로부터 제공된 프리미티브 액션에 대응하는 동작을 수행하여 간접적으로 요청된 기능 및/또는 서비스를 실행할 수 있다.
일 실시예에서, 전자 장치(2000)는 프리미티브 액션에 기초하여 애플리케이션 화면을 탐색하는 경우, 사용자 인터페이스 맵 및 포커스의 위치에 기초하여 애플리케이션에 대한 탐색을 수행할 수 있다. 사용자 인터페이스 맵은 적어도 하나의 프리미티브 액션에 의해 포커스의 위치가 복수의 사용자 인터페이스 요소들 사이를 이동하는 경로를 포함할 수 있다.
예를 들어, 도 1의 전자 장치(2000)에서 실행 중인 Y 애플리케이션이 서드 파티 애플리케이션이고, 전자 장치(2000)의 OS에 Y 애플리케이션의 애플리케이션 프로그램 인터페이스가 제공되지 않는 경우를 가정한다. 전자 장치(2000)의 운영 체제가 “Y 앱에서 B드라마 7화를 보여줘"에 대응하는 기능 및/또는 서비스를 Y 애플리케이션으로부터 제공받기 위해서는, 프리미티브 액션만을 이용한 Y 애플리케이션의 탐색이 수행되어야 한다. 이 경우, 전자 장치(2000)는 현재 포커스의 위치가 '오리지널 탭(111)' 이고, 프리미티브 액션에 의해 포커스의 위치가 이동하는 경로를 포함하는 사용자 인터페이스 맵에 기초하여 'B 드라마 7화의 썸네일 이미지(113)를 선택하기 위한 Y 애플리케이션 화면의 탐색을 계획할 수 있다. 이에 따라, 전자 장치(2000)는 사용자 입력 “Y 앱에서 B드라마 7화를 보여줘”가 수신되면, 해당 프리미티브 액션 "Move Down", "Move Right" 및 "Select Click"을 서드 파티 애플리케이션에 제공하고, 서드 파티 애플리케이션은 현재 포커스 수신된 프리미티브 액션들에 대응하는 동작들을 수행하여 B 드라마 7화 컨텐츠의 재생 화면(120)을 전자 장치(2000)에 제공할 수 있다.
이와 같이, 전자 장치(2000)가 애플리케이션 프로그램 인터페이스가 제공되지 않는 서드 파티 애플리케이션에 대한 탐색을 수행하기 위해서는 사용자 인터페이스 맵과 포커스의 위치를 식별하는 것이 중요한 문제이다.
따라서, 본 개시의 다양한 실시 예에 따른 전자 장치(2000)는 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들에 대한 복수의 링크들을 생성할 수 있다. 전자 장치(2000)는 복수의 링크들에 기초하여 애플리케이션 화면을 탐색하기 위한 사용자 입력인 적어도 하나의 프리미티브 액션에 대한 사용자 인터페이스 맵을 생성할 수 있다. 전자 장치(2000)는 복수의 사용자 인터페이스 요소들 중 사용자의 상호 작용 대상이 되는 사용자 인터페이스 요소를 나타내는 포커스의 위치를 식별할 수 있다.
이와 같이, 본 개시의 다양한 실시 예에 따른 전자 장치(2000)는 사용자 인터페이스 맵을 생성하고, 애플리케이션 화면에서 포커스의 위치를 식별하여 애플리케이션 화면의 탐색을 계획할 수 있다. 이에 따라, 사용자는 애플리케이션 프로그램 인터페이스가 지원되지 않는 환경에서도 사용자 입력에 대응하는 기능 및/또는 서비스를 제공받아 보다 나은 애플리케이션 사용 경험을 느낄 수 잇다.
전자 장치(2000)가 사용자 인터페이스 맵을 생성하고, 포커스의 위치를 식별하는 구체적인 동작들에 대해서는 후술하는 도면들을 통해 자세히 설명하도록 하겠다.
도 2는 본 개시의 일 실시예에 따른 전자 장치가 애플리케이션 화면을 분석하는 방법을 설명하기 위한 흐름도이다.
단계 S210에서, 전자 장치(2000)는 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들에 대한 복수의 링크들을 생성한다.
일 실시예에서, 애플리케이션 화면은 서드 파티 애플리케이션의 실행 화면을 포함할 수 있다. 애플리케이션 화면은 전자 장치(2000)에서 실행되는 서드 파티 애플리케이션의 실행 화면 및/또는 외부 전자 장치로부터 수신된 서드 파티 애플리케이션의 실행 화면을 포함할 수 있다.
일 실시예에서, 애플리케이션 화면은 적어도 하나의 프리미티브 액션이 수행된 시점을 기준으로 구분되는 복수의 시점 별 애플리케이션 화면일 수 있다. 예를 들어, 애플리케이션 화면은 제1 시점의 애플리케이션 화면, 제1 시점의 애플리케이션 화면에서 제1 프리미티브 액션이 수행된 다음 시점인 제2 시점의 애플리케이션 화면 및 제2 시점의 애플리케이션 화면에서 제2 프리미티브 액션이 수행된 다음 시점인 제3 시점의 애플리케이션 화면을 포함할 수 있다.
일 실시예에서, 애플리케이션 화면은 애플리케이션 화면 히스토리에 포함된 화면들일 수 있다. 애플리케이션 화면 히스토리는 전자 장치(2000)에 표시되거나 외부 전자 장치(2000)에 표시되었던 화면들을 포함할 수 있다.
일 실시예에서, 애플리케이션 화면 히스토리는 애플리케이션 실행 화면이 기설정된 시간 간격으로 저장되거나, 프리미티브 액션이 수행되었을 때마다 저장된 복수의 애플리케이션 화면들을 포함할 수 있다.
일 실시예에서, 복수의 시점 별 애플리케이션 화면을 구분하는데 기준이 되는 적어도 하나의 프리미티브 액션은 프리미티브 액션 히스토리에 포함된 프리미티브 액션일 수 있다.
일 실시예에서, 프리미티브 액션 히스토리는 이전에 수행되었던 복수의 프리미티브 액션들에 대한 정보를 포함할 수 있다. 이전에 수행되었던 복수의 프리미티브 액션들이란 서드 파티 애플리케이션에 전송되었던 프리미티브 액션들을 의미할 수 있다. 예를 들어, 프리미티브 액션 히스토리는 어떠한 프리미티브 액션들이 수행되었는지, 수행된 프리미티브 액션들에 의해 포커스의 위치가 어떻게 이동하였는지 등에 대한 정보를 포함할 수 있다.
일 실시예에서, 애플리케이션 화면 히스토리와 프리미티브 액션 히스토리는 서로 매핑 관계를 가질 수 있다. 구체적으로, 프리미티브 액션 히스토리에 포함된 프리미티브 액션 각각은 애플리케이션 화면 히스토리에 포함된 해당 프리미티브 액션이 수행된 직후 애플리케이션 화면들 각각에 매핑될 수 있다.
일 실시예에서, 전자 장치(2000)는 애플리케이션 화면에 기초하여 복수의 사용자 인터페이스 요소들을 식별할 수 있다. 전자 장치(2000)는 식별된 복수의 사용자 인터페이스 요소들에 대응하는 복수의 노드들을 생성할 수 있다. 그리고, 전자 장치(2000)는 복수의 링크들에 대응하는 복수의 노드들에 대한 엣지(edge)를 생성할 수 있다. 복수의 노드들은 그래프(Graph) 데이터의 정점(vertex)들을 의미할 수 있다. 엣지는 노드 자기 자신에 대한 링크 및 서로 다른 노드 사이의 링크를 포함할 수 있으며, 엣지에 포함된 링크는 복수의 노드들에 대응하는 복수의 사용자 인터페이스 요소들에 대한 링크에 대응될 수 있다.
일 실시예에서, 전자 장치(2000)는 복수의 사용자 인터페이스 요소들로부터 링크들을 생성하는데 이용되는 노드 특징을 추출할 수 있다. 노드 특징은 복수의 사용자 인터페이스 요소들의 크기, 컨텐츠, 이미지, 이름 및 계층에 관한 특징 중 적어도 하나를 포함할 수 있다. 다만, 노드 특징에 포함된 특징들이 반드시 이에 한정되지 않으며, 사용자 인터페이스 요소들로부터 링크를 생성하는데 이용될 수 있는 모든 특징을 포함할 수 있다.
일 실시예에서, 전자 장치(2000)는 노드 특징에 기초하여 식별된 복수의 사용자 인터페이스들을 스스로 연결하거나, 서로 다른 사용자 인터페이스 요소들을 서로 연결하여 복수의 사용자 인터페이스 요소들에 대한 복수의 링크들을 생성할 수 있다.
단계 S220에서, 전자 장치(2000)는 복수의 링크들에 기초하여 애플리케이션 화면을 탐색하기 위한 사용자 입력인 적어도 하나의 프리미티브 액션에 대한 사용자 인터페이스 맵을 생성한다.
일 실시예에서, 전자 장치(2000)는 복수의 링크들에 기초하여 적어도 하나의 프리미티브 액션 각각에 대한 사용자 인터페이스 맵을 생성할 수 있다. 전자 장치(2000)는 복수의 링크들 각각에 대하여 적어도 하나의 프리미티브 액션을 매핑하고, 복수의 링크들 각각에 어떠한 프리미티브 액션이 매핑 되었는지에 기초하여 프리미티브 액션에 의해 포커스가 복수의 사용자 인터페이스 요소들 사이를 이동하는 경로를 포함하는 사용자 인터페이스 맵을 생성할 수 있다.
도 1을 참조하면, 전자 장치(2000)는 사용자 인터페이스 요소 '오리지널 탭(111)'과 'A 드라마 10화 썸네일 이미지(112)'가 연결된 링크에 프리미티브 액션 'Move Down - Move UP'을 매핑할 수 있다. 이 경우, 전자 장치(2000)는 프리미티브 액션 'Move Down'에 의해 '오리지널 탭(111)'에 위치한 포커스가 'A 드라마 10화 썸네일 이미지(112)'로 이동하고, 프리미티브 액션 'Move UP'에 의해 'A 드라마 10화 썸네일 이미지(112)'에 위치한 포커스가 '오리지널 탭(111)'으로 이동하는 경로를 포함하는 사용자 인터페이스 맵을 생성할 수 있다.
S230 단계에서, 전자 장치(2000)는 복수의 사용자 인터페이스 요소들 중 사용자의 상호 작용 대상이 되는 사용자 인터페이스 요소를 나타내는 포커스의 위치를 식별한다.
일 실시예에서, 전자 장치(2000)는 적어도 하나의 프리미티브 액션이 수행된 시점을 기준으로 구분되는 복수의 시점 별 애플리케이션 화면들 및 상기 복수의 시점 중 마지막 시점 이전에 수행된 적어도 하나의 프리미티브 액션에 기초하여 마지막 시점의 애플리케이션 화면에서 포커스의 위치를 식별할 수 있다.
일 실시예에서, 전자 장치(2000)는 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들로부터 포커스 특징을 추출할 수 있다. 전자 장치(2000)는 추출된 포커스 특징에 기초하여 애플리케이션 화면에서 포커스의 위치를 식별할 수 있다.
일 실시예에서, 포커스 특징은 사용자 인터페이스로부터 획득 가능한 포커스 위치와 관련된 특징을 포함할 수 있다. 예를 들어, 포커스 특징은 포커스가 위치한 사용자 인터페이스 요소의 테두리가 강조되거나, 사용자 인터페이스 요소의 색상이 변경되는 것과 같은 사용자 인터페이스 요소에 포커스가 위치하였음을 사용자가 인식하기 위한 시각적 표시들에 의해 나타나는 특징을 포함할 수 있다.
도 3a는 본 개시의 일 실시예에 따른 전자 장치의 제어에 관련된 애플리케이션 및 소스들을 설명하기 위한 도면이다.
도 3a를 참조하면, 전자 장치(2000)는, 사용자로부터 전자 장치(2000)의 제어(예를 들어, 화면 제어)를 위한 사용자 입력을 획득하고, 사용자 입력에 대응되는 제어 명령을 실행할 수 있다.
일 실시예에서, 전자 장치(2000)에서는 서드 파티 애플리케이션들(310)이 실행될 수 있다. 예를 들어, 전자 장치(2000)에서 실행되는 서드 파티 애플리케이션들(310)은 OTT(Over The Top) 미디어 서비스 애플리케이션, 비디오 애플리케이션, 게임 애플리케이션 등일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에서, 전자 장치(2000)에는 외부 소스들(320)이 연결되어 사용될 수 있다. 외부 소스들(320)이란 전자 장치(2000)에 유선 및/또는 무선으로 연결되어 전자 장치(2000)로 콘텐츠를 제공하는 디바이스들을 포함할 수 있다. 외부 소스들(320)이 전자 장치(2000)에 연결되면, 외부 소스들(320)은 전자 장치(2000)로 콘텐츠/미디어/애플리케이션 등을 제공할 수 있다. 예를 들어, 외부 소스들(320)은 게임 콘솔, 셋탑 박스, 데스크탑 PC, 랩탑 PC 등일 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 따른 전자 장치(2000)는 본 개시의 실시예들에 따라 임의의 애플리케이션 및/또는 디바이스를 제어할 수 있다. 도 3b를 참조하여, 전자 장치(2000)의 사용자가 일반적으로 임의의 애플리케이션 및/또는 디바이스를 제어하는 경우에 대하여 설명하도록 하겠다.
도 3b는, 전자 장치가 프리미티브 액션에 기초하여 도 3a에서 전술한 애플리케이션 및 소스들을 제어하는 동작을 설명하기 위한 도면이다.
도 3b를 참조하면, 전자 장치(2000)에서 애플리케이션 프로그램 인터페이스가 제공되지 않거나 호출되지 않는 서드 파티 애플리케이션의 실행 화면이 표시될 수 있다. 이 경우, 전자 장치(2000)는 프리미티브 액션에 기초하여 서드 파티 애플리케이션 및 소스들을 제어할 수 있다.
일 실시예에서, 전자 장치(2000)는 프리미티브 액션을 사용자 입력 장치로부터 수신할 수 있다. 사용자 입력 장치는 리모컨(330)을 포함할 수 있으며, 전자 장치(2000)는 리모컨(330)으로부터 프리미티브 액션을 수신할 수 있다. 리모컨(330)은 복수의 버튼을 포함할 수 있으며, 복수의 버튼 중 일부는 프리미티브 액션들(340) 각각에 대응할 수 있다. 사용자는 리모컨(330)의 프리미티브 액션들(340)에 대응하는 복수의 버튼을 통하여 프리미티브 액션을 전자 장치(2000)에 입력할 수 있다. 상술한 예에서는, 사용자 입력 장치가 리모컨(330)인 것으로 설명하였으나, 반드시 이에 한정되지는 않으며, 사용자 입력 장치는 전자 장치(2000)로 프리미티브 액션이 선택되었다는 정보를 전송할 수 있는 모든 장치를 포함할 수 있다.
일 실시예에서, 전자 장치(2000)는 사용자 입력 장치로부터 수신된 프리미티브 액션에 기초하여 서드 파티 애플리케이션의 탐색을 수행할 수 있다.
예를 들어, 전자 장치(2000)에서 Y 애플리케이션의 제1 실행 화면(350)이 표시될 때, 사용자가 리모컨(330)의 프리미티브 액션 'Move Down'에 대응하는 버튼(341)을 선택하면, 리모컨(330)은 프리미티브 액션 'Move Down'가 선택되었다는 정보를 전자 장치(2000)에 전송할 수 있다. 전자 장치(2000)는 수신된 프리미티브 액션 'Move Down'을 Y 애플리케이션에 전송하고, Y 애플리케이션은 제1 실행 화면(350)에서 포커스의 위치가 이동된 제2 실행 화면(360)을 전자 장치(2000)에 전송할 수 있다. 이에 따라, 전자 장치(2000)에는 제2 실행 화면(360)이 표시될 수 있다. 같은 방식으로, 제2 실행 화면(360)에서 사용자가 리모컨(330)의 프리미티브 액션 'Move Right'에 대응하는 버튼(342)을 선택하면, 전자 장치(2000)에는 제3 실행 화면(370)이 표시될 수 있다.
일 실시예에서, 전자 장치(2000)는 전자 장치(2000)에 표시되는 복수의 서드 파티 애플리케이션 화면들을 애플리케이션 화면 히스토리에 포함시킬 수 있다. 그리고, 전자 장치(2000)는 서드 파티 애플리케이션에 제공되는 복수의 프리미티브 액션들을 프리미티브 액션 히스토리에 포함시킬 수 있다.
이와 같이, 전자 장치(2000)는 프리미티브 액션을 선택하는 사용자 입력을 수신하여 애플리케이션 프로그램 인터페이스가 제공되지 않는 서드 파티 애플리케이션을 제어하거나, 탐색을 수행할 수 있다. 그리고, 전자 장치(2000)에 표시되는 애플리케이션 화면과 프리미티브 액션을 선택하는 사용자 입력은 전자 장치(2000)에 저장될 수 있다. 애플리케이션 화면 및 프리미티브 액션은 전자 장치(2000)가 사용자 인터페이스 맵을 생성하거나, 포커스의 위치를 식별하는데 이용될 수 있다.
도 4a 및 도 4b는 본 개시의 일 실시예에 따른 전자 장치의 제어 동작을 설명하기 위한 도면이다.
도 4a 및 도 4b를 참조하면, 전자 장치(2000)는 다양한 소프트웨어 모듈을 이용하여 전자 장치(2000)의 제어 동작(예를 들어, 애플리케이션 화면 분석)을 수행할 수 있다. 예를 들어, 전자 장치(2000)는 사용자 인터페이스 맵 생성기(430)를 이용하여 사용자 인터페이스 맵(450)을 생성할 수 있다. 또한 전자 장치(2000)는 포커스 위치 추정기(440)를 이용하여 포커스의 위치(460-1, 460-2)를 식별할 수 있다. 다만, 전술한 소프트웨어 모듈들은 각 모듈의 기능을 설명하기 위해 예시적으로 구별한 것일 뿐, 이에 한정되는 것은 아니다.
일 실시예에서, 전자 장치(2000)는 애플리케이션 화면 히스토리(410)에 포함된 복수의 애플리케이션 화면들 중 적어도 하나를 획득할 수 있다. 애플리케이션 화면 히스토리(410)는 전자 장치(2000)에 표시된 애플리케이션 화면에 기초하여 생성되거나, 외부 전자 장치에서 생성되어 수신되어 전자 장치(2000)로 전송될 수 있다.
일 실시예에서, 전자 장치(2000)는 사용자 인터페이스 맵 생성기(430)를 이용하여 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들에 대한 복수의 링크들을 생성하고, 복수의 링크들에 기초하여 애플리케이션 화면을 탐색하는데 사용되는 적어도 하나의 프리미티브 액션에 대한 사용자 인터페이스 맵(450)을 생성할 수 있다.
일 실시예에서, 사용자 인터페이스 맵 생성기(430)는 엣지 생성기(431) 및 엣지 레이블러(432)를 포함할 수 있다.
일 실시예에서, 엣지 생성기(431)는 애플리케이션 화면에 기초하여 복수의 사용자 인터페이스 요소들을 식별할 수 있다. 그리고, 엣지 생성기(431)는 복수의 사용자 인터페이스 요소들에 대응하는 복수의 노드들을 생성할 수 있다. 그리고, 엣지 생성기(431)는 복수의 노드들의 노드 특징에 기초하여 복수의 링크들을 생성할 수 있다.
일 실시예에서, 엣지 레이블러(432)는 복수의 링크들 각각에 적어도 하나의 프리미티브 액션을 매핑할 수 있다. 그리고 엣지 레이블러(432)는 적어도 하나의 프리미티브 액션이 매핑된 결과에 기초하여 적어도 하나의 프리미티브 액션 각각에 대한 사용자 인터페이스 맵(450)을 생성할 수 있다.
일 실시예에서, 전자 장치(2000)는 포커스 위치 추정기(440)를 이용하여 애플리케이션 화면에서 적어도 하나의 프리미티브 액션에 의해 선택된 사용자 인터페이스 요소를 나타내는 포커스의 위치(460-1, 460-2)를 식별할 수 있다.
일 실시예에서, 포커스 위치 추정기(440)는 적어도 하나의 프리미티브 액션이 수행된 시점을 기준으로 구분되는 복수의 시점 별 애플리케이션 화면들 및 상기 복수의 시점 중 마지막 시점 이전에 수행된 적어도 하나의 프리미티브 액션에 기초하여 마지막 시점의 애플리케이션 화면에서 포커스의 위치(460-1, 460-2)를 식별할 수 있다. 복수의 시점 별 애플리케이션 화면들은 애플리케이션 화면 히스토리(410)에 포함될 수 있다. 수행된 적어도 하나의 프리미티브 액션은 프리미티브 액션 히스토리(420)에 포함될 수 있다.
일 실시예에서, 포커스 위치 추정기(440)가 그래프 기반 포커스 위치 식별 모델을 이용하는 경우, 사용자 인터페이스 맵(450)을 이용하여 포커스의 위치를 식별할 수 있다. 예를 들어, 도 4a와 같이, 포커스 위치 추정기(440)는 애플리케이션 화면 히스토리(410), 프리미티브 액션 히스토리(420) 및 사용자 인터페이스 맵(450)에 기초하여 포커스의 위치(460-1)를 식별할 수 있다.
일 실시예에서, 포커스 위치 추정기(440)가 비전 기방 포커스 위치 식별 모델을 이용하는 경우, 사용자 인터페이스 맵(450)을 이용하지 않고 포커스의 위치를 식별할 수 있다. 예를 들어, 도 4b와 같이, 포커스 위치 추정기(440)는 애플리케이션 화면 히스토리(410) 및 프리미티브 액션 히스토리(420)에 기초하여 포커스의 위치(460-2)를 식별할 수 있다.
도 5a, 5b 및 5c는 본 개시의 일 실시예에 따른 전자 장치가 엣지 생성기를 이용하여 엣지를 생성하는 동작을 설명하기 위한 도면들이다. 도 5a, 5b 및 5c를 참조하여, 도 4에서 전술한 엣지 생성기(431)의 동작을 보다 상세히 설명하도록 한다.
도 5a, 5b 및 5c를 참조하면, 엣지 생성기(431)는 오브젝트 검출기(520)를 이용하여 애플리케이션 화면(510)에 포함된 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)이 검출된 애플리케이션 화면(521)을 획득할 수 있다.
오브젝트 검출기(520)는 애플리케이션 화면(510)에 포함된 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대응하는 복수의 바운딩 박스들(521-1, 521-2, 521-3)을 생성할 수 있다.
일 실시예에서, 오브젝트 검출기(520)는 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)을 식별할 수 있다. 오브젝트 검출기(520)는 식별된 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대응하는 복수의 바운딩 박스들(521-1, 521-2, 521-3)을 생성할 수 있다. 하나의 사용자 인터페이스 요소에 대해서 바운딩 박스들이 중복하여 생성될 수 있기 때문에, 오브젝트 검출기(520)는 중복하여 생성되는 바운딩 박스들을 객체 병합(Object Merger)을 통해 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대응하는 복수의 바운딩 박스들(521-1, 521-2, 521-3)을 생성할 수 있다.
일 실시예에서, 오브젝트 검출기(520)는 애플리케이션 화면을 입력으로 하여 애플리케이션 화면(510)에 포함된 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)을 검출하도록 학습된 모델일 수 있다. 예를 들어, 오브젝트 검출기는 광학적 문자인식(Optical Character Recognition; OCR) 기반 인공지능 모델, RCNN(Regions with Convolutional Neuron Networks features) 기반 인공지능 모델 등을 포함할 수 있으나, 반드시 이에 한정되지 않는다.
일 실시예에서, 애플리케이션 화면이 복수인 경우, 오브젝트 검출기(520) 복수의 애플리케이션 화면들 각각에 대하여 복수의 사용자 인터페이스 요소들을 식별하고, 식별된 복수의 사용자 인터페이스 요소들에 대응하는 복수의 바운딩 박스들을 생성할 수 있다. 이에 따라, 복수의 사용자 인터페이스 요소들이 검출된 애플리케이션 화면은 복수 개 생성될 수 있다.
엣지 생성기(431)는 노드 생성 단계(S530)를 통해, 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대응하는 복수의 노드들(532-1, 532-2, 532-3)을 포함하는 노드 데이터(531)를 생성할 수 있다. 예를 들어, 엣지 생성기(431)는 복수의 바운딩 박스들(521-1, 521-2, 521-3)을 포함하는 애플리케이션 화면(521)에 기초하여 제1 사용자 인터페이스 요소(511-1)에 대응하는 제1 노드(532-1)를 생성하고, 제2 사용자 인터페이스 요소(511-2)에 대응하는 제2 노드(532-2)를 생성하고, 제3 바운딩 박스에(522-3)에 기초하여 제3 노드(532-3)를 생성할 수 있다. 복수의 노드들(532-1, 532-2, 532-3) 각각은 복수의 바운딩 박스(521-1, 521-2, 521-3)들의 기초가 되는 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3) 각각에 대응할 수 있다.
일 실시예에서, 노드 데이터(531)는 복수의 노드들(532-1, 532-2, 532-3) 각각의 노드 특징에 대한 정보를 포함할 수 있다. 또한, 노드 데이터(531)는 복수의 노드들(532-1, 532-2, 532-3) 각각을 구별하기 위한 인덱스 값을 포함할 수 있다. 이 경우, 복수의 노드들 각각의 인덱스 값은 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3) 각각에 할당되는 인덱스 값에 대응할 수 있다.
일 실시예에서, 복수의 사용자 인터페이스 요소들이 검출된 애플리케이션 화면이 복수인 경우, 엣지 생성기(431)는 복수의 애플리케이션 화면 각각에 포함된 모든 바운딩 박스들에 대응하는 복수의 노드들을 생성할 수 있다.
일 실시예에서, 엣지 생성기(431)는 서로 다른 애플리케이션 화면에 포함되었으나 동일한 사용자 인터페이스 요소들에 대응하는 바운딩 박스들을 식별할 수 있다. 엣지 생성기(431)는 식별된 바운딩 박스들에 대응하는 노드가 노드 데이터에 존재하는 경우, 노드를 중복하여 생성하지 않을 수 있다. 이에 따라, 엣지 생성기(431)는 특정 애플리케이션 화면에 포함되어 있으나, 다른 애플리케이션 화면에는 포함되지 않는 사용자 인터페이스 요소에 대응하는 노드를 생성할 수 있다.
도 5a 및 5b를 참조하면, 엣지 생성기(431)는 노드 연결 단계(S540)를 통해 복수의 노드들에 대한 완전 연결 엣지(541)를 생성할 수 있다. 완전 연결 엣지(541)는 복수의 사용자 인터페이스 요소들의 자기 자신에 대한 링크들(542-1, 542-2, 542-3) 및 서로 다른 사용자 인터페이스 요소들 사이의 모든 링크들(543-1, 543-2, 543-3)을 포함할 수 있다.
도 5a를 참조하면, 엣지 생성기(431)는 링크 제거 모델(550)을 이용하여 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대한 복수의 링크들(561-1, 561-2, 561-3, 562-2, 562-3)을 생성할 수 있다.
일 실시예에서, 엣지 생성기(431)는 완전 연결 엣지(541)에 포함된 복수의 링크들(542-1, 542-2, 542-3, 543-1 543-2, 543-3) 중 적어도 하나의 링크(543-2)를 제거할 수 있다. 이 경우, 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대한 복수의 링크들(541-1, 541-2, 541-3, 543-1, 543-3)은 제거되지 않고, 나머지 링크(543-2)는 제거될 수 있다.
일 실시예에서, 링크 제거 모델(550)은 복수의 노드들(532-1, 532-2, 532-3)의 노드 특징 및 복수의 노드들에 대한 완전 연결 엣지(541)를 입력으로 하여 완전 연결 엣지(541)에 포함된 적어도 하나의 링크(542-1)를 제거하여 복수의 링크들(561-1, 561-2, 561-3, 562-2, 562-3)을 생성하도록 학습된 모델일 수 있다. 이 경우, 복수의 링크들(541-1, 541-2, 541-3, 543-1, 543-3)은 복수의 노드들(532-1, 532-2, 532-3)에 대한 엣지(560)에 포함될 수 있다.
일 실시예에서, 노드 특징은 복수의 노드들(532-1, 532-2, 532-3)에 대응하는 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)의 크기, 위치, 컨텐츠, 이미지, 이름 및 계층에 관한 특징 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 엣지 생성기(431)는 오브젝트 검출기(520)를 이용하여 노드 특징을 획득할 수 있다. 다만, 이는 일 예일 뿐, 엣지 생성기(431)는 애플리케이션 화면을 입력으로 하여 노드 특징을 획득하도록 학습된 별도의 모델을 이용하여 노드 특징을 획득할 수도 있다.
일 실시예에서, 엣지 생성기(431)는 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대응하는 바운딩 박스의 크기 및 위치를 식별하여 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)의 크기 및 위치에 관한 특징을 획득할 수 있다.
일 실시예에서, 엣지 생성기(431)는 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)을 아이콘, 이미지, 텍스트 또는 버튼 등으로 분류하고, 분류된 카테고리 각각에 대해서 특정 계층을 할당하여 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)의 계층에 관한 특징을 획득할 수 있다.
일 실시예에서, 엣지 생성기(431)는 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)이 이미지를 포함하는 경우, 이미지로부터 획득될 수 있는 다양한 특징들을 추출하여 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)의 이미지에 관한 특징을 획득할 수 있다.
일 실시예에서, 엣지 생성기(431)는 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)이 컨텐츠에 관한 사용자 인터페이스 요소인지 여부를 식별하여, 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)의 컨텐츠에 관한 특징을 획득할 수 있다.
일 실시예에서, 엣지 생성기(431)는 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)이 텍스트를 포함하는 경우, 문자 인식 등을 통하여 텍스트의 내용이 무엇인지 식별하여 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)의 텍스트에 관한 특징을 획득할 수 있다.
일 실시예에서, 엣지 생성기(431)가 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)로부터 노드 특징을 획득하는 경우, 획득된 노드 특징에 대한 정보는 노드 데이터(531)로 저장될 수 있다.
도 5b를 참조하면, 엣지 생성기(431)는 도 5a에서 설명한 링크 제거 모델(550)을 이용하여 완전 연결 엣지(541)에 포함된 적어도 하나의 링크를 제거하는 동작을 생략하고, 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대한 복수의 링크들(541-1, 541-2, 541-3, 542-1 542-2, 542-3)을 생성할 수 있다.
일 실시예에서, 노드 연결 단계(S540)에서 생성된 복수의 링크들의 개수가 많지 않으면, 링크 제거 모델(550)을 이용하여 생성된 복수의 링크들 중 적어도 하나의 링크를 제거할 필요가 없을 수 있다. 따라서, 애플리케이션 화면(510)으로부터 식별된 복수의 사용자 인터페이스 요소들의 개수가 기설정된 개수 보다 적은 경우 및/또는 생성된 복수의 링크들의 개수가 기설정된 개수 보다 적은 경우, 엣지 생성기(431)는 링크 제거 모델(550)을 이용하지 않는 것으로 결정할 수 있다.
일 실시예에서, 전자 장치(2000)의 하드웨어의 컴퓨팅 연산 능력의 부족 등에 따른 제약으로 인하여 링크 제거 모델(550)을 이용하기 힘든 경우가 있을 수 있다. 따라서, 엣지 생성기(431)는 전자 장치(2000)의 하드웨어의 컴퓨팅 연산 능력에 기초하여 링크 제거 모델(550)을 이용하지 않는 것으로 결정할 수 있다.
일 실시예에서, 엣지 생성기(431)가 링크 제거 모델(550)을 이용하지 않는 것으로 결정하는 경우, 노드 연결 단계(S540)를 통해 완전 연결 엣지(541)를 생성하고, 완전 연결 엣지(541)에 포함된 적어도 하나의 링크를 제거하지 않을 수 있다. 이 경우, 완전 연결 엣지(541)에 포함된 복수의 링크들(541-1, 541-2, 541-3, 542-1 542-2, 542-3) 은 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대한 복수의 링크들일 수 있다.
이와 같이, 본 개시의 일 실시예에 따른 전자 장치(2000)는 완전 연결 엣지(541)를 생성하고 완전 연결 엣지(541)에 포함된 적어도 하나의 링크를 제거하거나 제거하지 않음으로써 복수의 링크들을 생성할 수 있다. 이에 따라, 전자 장치(2000)의 하드웨어의 컴퓨팅 능력에 최적화된 방식으로 애플리케이션 화면의 분석을 수행할 수 있다.
도 5c를 참조하면, 엣지 생성기(431)는 링크 생성 모델(570)을 이용하여 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대한 복수의 링크들(572, 574, 576)을 생성할 수 있다.
일 실시예에서 링크 생성 모델(570)은 노드 특징 및 복수의 노드들(532-1, 532-2, 532-3)을 입력으로 하여 복수의 노드들(532-1, 532-2, 532-3)에 대한 계층적 군집화(571)를 수행하고, 계층적 군집화(571)의 각 단계에서, 같은 계층으로 군집화되는 노드들을 연결하여 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대한 복수의 링크들(572, 574, 576)을 생성하도록 학습된 모델일 수 있다. 이 경우, 복수의 링크들(572, 574, 576)은 복수의 노드들(532-1, 532-2, 532-3)에 대한 엣지(580)에 포함될 수 있다.
일 실시예에서, 링크 생성 모델(570) 유사성 행렬(Similarity matrix)에 기초하여 단계적으로 계층적 군집화를 수행할 수 있다. 유사성 행렬은 복수의 노드들(또는, 복수의 군집들)의 자기 자신을 제외한 다른 노드들(또는, 복수의 군집들)에 대한 유사도를 포함할 수 있다. 유사성 행렬은 복수의 노드들의 노드 특징을 포함하는 특징 벡터들 사이의 거리에 기초하여 계산될 수 있다. 특징 벡터들 사이의 거리는 유클리드 거리(Euclidean distance), 통계적 거리(statistical distance) 및 민코우스키(Minkowski distance) 거리 등을 포함할 수 있으나, 반드시 이에 한정되지는 않는다.
일 실시예에서, 링크 생성 모델(570)은 유사성 행렬의 유사도가 기설정된 값 이상을 가지는 복수의 노드들을 같은 계층으로 군집화할 수 있다. 링크 생성 모델(570)은 같은 계층으로 군집화되는 노드들을 연결하여 링크를 생성할 수 있다.
일 실시예에서, 링크 생성 모델(570)은 계층적 군집화 과정에서, 복수의 노드들이 속하는 서로 다른 군집들이 같은 계층으로 군집화되는 경우, 각 군집에 속하는 복수의 노드들 중 적어도 하나를 다른 군집에 속하는 복수의 노드들 중 적어도 하나와 서로 연결할 수 있다. 각 군집에 속하는 복수의 노드들 중 어떤 노드가 다른 군집에 속하는 노드와 연결되는지 여부는 노드들 사이의 유사도에 기초하여 결정될 수 있다.
예를 들어, 도 5c와 같이, 링크 생성 모델(570)은 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)의 자기 자신에 대한 연결을 나타내는 복수의 제1 링크들(572)을 생성할 수 있다.
링크 생성 모델(570)은 제1 유사성 행렬(573)에 기초하여 군집화를 수행할 수 있다. 제1 유사성 행렬(573)의 1행 2열 성분의 값 및 2행 1열의 성분의 값은 제1 노드(532-1)와 제2 노드(532-2) 사이의 유사도를 의미하고, 1행 3열 성분의 값 및 3행 1열의 성분의 값은 제1 노드(532-1)와 제3 노드(532-3) 사이의 유사도를 의미하며, 2행 3열의 성분의 값 및 3행 2열의 성분의 값은 제2 노드(532-2)와 제3 노드(532-3) 사이의 유사도를 의미할 수 있다.
링크 생성 모델(570)은 제1 유사성 행렬(573)에서 유사도가 임계 값 이상인 제1 노드(532-1) 및 제2 노드(532-2)를 같은 계층으로 군집화할 수 있다. 링크 생성 모델(570)은 같은 계층으로 군집화된 제1 노드(532-1) 및 제2 노드(532-2)를 연결하여 제2 링크(574)를 생성할 수 있다.
링크 생성 모델(570)은 제2 유사성 행렬(575)에 기초하여 군집화를 수행할 수 있다. 제2 유사성 행렬(575)의 1행 2열 성분의 값 및 2행 1열의 성분의 값은 제1 노드(532-1) 및 제2 노드(532-2)가 속하는 군집과 제3 노드(532-3) 사이의 유사도를 의미할 수 있다.
링크 생성 모델(570)은 제2 유사성 행렬(575)에서 유사도가 임계 값 이상인 제1 노드(532-1) 및 제2 노드(532-2)가 속하는 군집과 제3 노드를 같은 계층으로 군집화할 수 있다. 링크 생성 모델(570)은 같은 계층으로 군집화된 제1 노드(532-1) 및 제2 노드(532-2)가 속하는 군집과 제3 노드(532-3)를 연결하여 제3 링크(576)를 생성할 수 있다.
이와 같이, 본 개시의 일 실시예에 따른 전자 장치(2000)는 바텀 업 방식으로 계층적 군집화를 수행하여 복수의 사용자 인터페이스 요소들간의 연결성을 파악하여 복수의 링크들을 생성할 수 있다. 이에 따라, 전자 장치(2000)는 다른 군집화 방식과 다르게 사전에 군집 수를 정하지 않아도 링크 생성 모델(570)을 학습시킬 수 있다. 또한, 다른 군집화 방식에 비해 군집화에 필요한 연산 비용이 줄어들 수 있다.
도 6은 본 개시의 일 실시예에 따른 전자 장치가 엣지 레이블러를 이용하여 사용자 인터페이스 맵을 생성하는 동작을 설명하기 위한 도면이다. 도 6을 참조하여, 도 4에서 전술한 엣지 레이블러(432)의 동작을 보다 상세하게 설명하기로 한다.
일 실시예에서, 엣지 레이블러(432)는 엣지(610)에 포함된 복수의 링크들(611-1, 611-2, 611-3, 612-1, 612-2, 612-3) 각각에 대하여 적어도 하나의 프리미티브 액션을 매핑할 수 있다. 엣지(610)는 엣지 생성기(431)에 의해 생성된 엣지를 의미할 수 있다. 예를 들어, 엣지(610)는 도 5a의 엣지(560), 도 5b의 엣지(541) 및 도 5c의 엣지(580) 중 하나일 수 있다.
일 실시예에서, 엣지 레이블러(432)는 이전에 수행되었던 복수의 프리미티브 액션들에 대한 정보에 기초하여 복수의 링크들(611-1, 611-2, 611-3, 612-1, 612-2, 612-3) 각각에 대하여 적어도 하나의 프리미티브 액션을 매핑할 수 있다.
구체적으로, 엣지 레이블러(432)는 수행된 프리미티브 액션들에 의해 포커스의 위치가 어떻게 이동하였는지에 대한 정보에 대응되도록 복수의 링크들(611-1, 611-2, 611-3, 612-1, 612-2, 612-3) 각각에 대하여 적어도 하나의 프리미티브 액션을 매핑할 수 있다.
예를 들어, 엣지 레이블러(620)는 프리미티브 액션 'Move Left' 및 'Move Up'이 수행되었을 때, 0 번노드에 대응하는 사용자 인터페이스 요소에 위치한 포커스의 위치의 변화가 없었다는 정보에 기초하여 제1 링크(611-1)에 프리미티브 액션 'Move Left' 및 'Move Up'을 매핑할 수 있다. 또한, 엣지 레이블러(620)는 프리미티브 액션 'Move Right'가 수행되었을 때, 0번 노드에 대응하는 사용자 인터페이스 요소에 위치한 포커스가 1번 노드에 대응하는 사용자 인터페이스 요소로 이동했다는 정보에 기초하여 프리미티브 액션 'Move Right'를 제2 링크에 매핑할 수 있다. 또한, 엣지 레이블러(620)는 프리미티브 액션이 'Move Left' 수행되었을 때 1번 노드에 대응하는 사용자 인터페이스 요소에 위치한 포커스가 0번 노드에 대응하는 사용자 인터페이스 요소에 위치한 포커스가 1번 노드에 대응하는 사용자 인터페이스 요소로 이동했다는 정보에 기초하여 프리미티브 액션 'Move Left'를 제4 링크(612-1)에 매핑할 수 있다.
일 실시예에서, 엣지 레이블러(620)는 엣지(610)의 복수의 노드들의 노드 특징에 기초하여 복수의 링크들(611-1, 611-2, 611-3, 612-1, 612-2, 612-3) 각각에 대하여 적어도 하나의 프리미티브 액션을 매핑할 수 있다.
구체적으로, 엣지 레이블러(620)는 복수의 노드들에 대응하는 사용자 인터페이스 요소들의 크기 및 위치에 대한 정보에 기초하여 복수의 사용자 인터페이스 요소들의 위치 관계 정보를 식별할 수 있다. 엣지 레이블러(620)는 위치 관계 정보에 기초하여 복수의 링크들(611-1, 611-2, 611-3, 612-1, 612-2, 612-3) 각각에 매핑될 가능성이 높은 적어도 하나의 사용자 인터페이스 요소를 식별할 수 있다. 엣지 레이블러(620)는 식별된 적어도 하나의 사용자 인터페이스 요소를 복수의 링크들(611-1, 611-2, 611-3, 612-1, 612-2, 612-3) 각각에 매핑할 수 있다. 위치 관계 정보는 특정 사용자 인터페이스 요소를 기준으로 프리미티브 액션에 대응되는 방향에 어떠한 사용자 인터페이스 요소들이 존재하는지에 대한 정보를 포함할 수 있다.
일 실시예에서, 엣지 레이블러(620)는 적어도 하나의 프리미티브 액션이 매핑된 결과(631)에 기초하여 적어도 하나의 프리미티브 액션 각각에 대한 사용자 인터페이스 맵(630)을 생성할 수 있다. 다시 말해, 엣지 레이블러(620)는 복수의 링크들(611-1, 611-2, 611-3, 612-1, 612-2, 612-3) 각각에 대하여 어떠한 프리미티브 액션이 매핑 되었는지에 기초하여 적어도 하나의 프리미티브 액션 각각에 대한 사용자 인터페이스 맵(630)을 생성할 수 있다.
일 실시예에서, 사용자 인터페이스 맵(630)은 포커스가 엣지(610)에 포함된 복수의 링크들(611-1, 611-2, 611-3, 612-1, 612-2, 612-3)을 따라서 이동하기 위해서 어떠한 프리미티브 액션이 필요한지에 대한 정보를 포함할 수 있다. 예를 들어, 사용자 인터페이스 맵(630)은 적어도 하나의 프리미티브 액션이 매핑된 결과(631)에 기초하여 제1 링크(611-1)를 따라 포커스가 이동하기 위해서 프리미티브 액션 'Move Left' 또는 'Move UP'이 필요하다는 정보를 포함할 수 있다.
일 실시예에서, 사용자 인터페이스 맵(630)은 적어도 하나의 프리미티브 액션에 의해 복수의 링크들(611-1, 611-2, 611-3, 612-1, 612-2, 612-3)을 따라 포커스가 이동하는 방향에 대한 정보를 포함할 수 있다. 예를 들어, 사용자 인터페이스 맵(630)은 제2 링크에 매핑된 프리미티브 액션 'Move Right' 에 의해 0번 노드에서 1번 노드로 포커스가 이동하고, 제2 링크에 매핑된 프리미티브 액션 'Move Left'는 1번 노드에서 0번 노드로 포커스가 이동한다는 정보를 포함할 수 있다.
일 실시예에서, 사용자 인터페이스 맵(630)은 사용자 인터페이스 맵은 적어도 하나의 프리미티브 액션 각각에 대한 인접 행렬들(632)(Adjacency Matrix)을 생성할 수 있다. 인접 행렬의 복수의 행과 복수의 열은 사용자 인터페이스 맵(630)에 포함된 복수의 노드들 각각에 대응할 수 있다.
일 실시예에서, 인접 행렬의 성분은 원-핫 인코딩 방식에 의해 생성되는 0 또는 1의 값을 가질 수 있다. 이 경우, 인접 행렬의 성분은 프리미티브 액션 각각에 의해 성분의 행에 대응하는 노드에서 성분의 열에 대응하는 노드로 이동할 수 있는지 여부를 의미할 수 있다. 예를 들어, 프리미티브 액션 'Move Right'의 인접 행렬의 1행의 성분은 (0, 1, 0)이면, 이는 프리미티브 액션 'Move Right'에 의해 0번 노드에 위치한 포커스는 0번 노드와 2번 노드로 이동하지 않고, 1번 노드로 이동한다는 정보를 의미할 수 있다.
일 실시예에서, 인접 행렬의 성분은 전이 확률에 대응되는 값을 가질 수 있다. 이 경우, 인접 행렬의 성분은 프리미티브 액션 각각에 의해 성분의 행에 대응하는 노드에서 성분의 열에 대응하는 노드로 이동할 수 있는 확률을 의미할 수 있다. 예를 들어, 프리미티브 액션 'Move Right'의 인접 행렬의 1행 성분이 (0.2, 0.7, 0.1)이면, 이는 프리미티브 액션 'Move Right'에 의해 0번 노드에 위치한 포커스가 0번 노드에 그대로 위치할 확률은 20 %이고, 1번 노드로 이동할 확률은 70 %이며, 2번 노드로 이동할 확률은 10 %라는 정보를 의미할 수 있다.
일 실시예에서, 엣지 레이블러(620)는 엣지(610)를 입력으로 하여 기초하여 프리미티브 액션 각각에 대한 인접 행렬들(632)을 출력하도록 학습된 모델일 수 있다. 엣지 레이블러(620)는 멀티-헤드 어텐션(Multi-head Attention) 기반 인공지능 모델을 포함할 수 있다. 이 경우, 적어도 하나의 프리미티브 액션 각각에 대응하는 병렬 어텐션이 수행되고, 각 병렬 어텐션에 의해 생성된 어텐션 스코어에 기초하여 적어도 하나의 프리미티브 액션 각각에 대한 인접 행렬(632)이 생성될 수 있다.
일 실시예에서, 엣지 레이블러(432)는 프리미티브 액션 히스토리에 포함된 적어도 하나의 프리미티브 액션이 복수의 링크들에 매핑된 엣지 데이터 셋을 학습 데이터 셋(Traning dataset)으로 하여 학습될 수 있다.
도 7a, 7b 및 7c는 본 개시의 일 실시예에 따른 전자 장치가 포커스 위치 추정기를 이용하여 포커스의 위치를 식별하는 동작을 설명하기 위한 도면들이다. 도 7a, 7b 및 7c를 참조하여, 도 4에서 전술한 포커스 위치 추정기(440)의 동작을 보다 상세하게 설명하도록 한다.
일 실시예에서, 포커스 위치 추정기(440)는 그래프 기반 포커스 위치 식별 모델(730) 및 비전 기반 포커스 위치 식별 모델(740) 중 적어도 하나를 이용하여 포커스의 위치(731)를 식별할 수 있다. 그래프 기반 포커스 위치 식별 모델(730) 및 비전 기반 포커스 위치 식별 모델(740)은 적어도 하나의 프리미티브 액션이 수행된 시점을 기준으로 구분되는 복수의 시점 별 애플리케이션 화면들(720) 및 수행된 적어도 하나의 프리미티브 액션(710)에 기초하여 포커스의 위치에 관한 정보를 생성할 수 있다. 복수의 시점 별 애플리케이션 화면들(720)은 애플리케이션 화면 히스토리에 포함된 애플리케이션 화면일 수 있다. 또한, 수행된 적어도 하나의 프리미티브 액션(710)은 프리미티브 액션 히스토리에 포함된 프리미티브 액션일 수 있다.
도 7a를 참조하면, 포커스 위치 추정기(440)는 그래프 기반 포커스 위치 식별 모델(730)을 이용하여 포커스의 위치(731)를 식별할 수 있다. 그래프 기반 포커스 위치 식별 모델(730)은 포커스 특징을 포함하는 복수의 시점 별 제1 포커스 특징 행렬들(751, 752, 753)을 출력하는 특징 추출 모델(750), 포커스 특징이 강조된 제2 포커스 특징 행렬들(771, 772)을 출력하는 특징 강조 모델(770) 및 복수의 노드들 각각에 대하여 포커스가 위치할 확률(732-1, 732-2)을 출력하는 특징 비교 모델(780)을 포함할 수 있다.
특징 추출 모델(750)은 복수의 시점 별 애플리케이션 화면들(720) 각각에 포함된 복수의 사용자 인터페이스 요소들로부터 포커스 특징을 추출할 수 있다. 포커스 특징은 복수의 사용자 인터페이스 요소들로부터 획득되는 포커스의 위치와 관련된 특징을 포함할 수 있다. 예를 들어, 포커스 특징은 포커스가 위치한 사용자 인터페이스 요소는 해당 사용자 인터페이스 요소에 포커스가 위치하였음을 사용자가 인식하기 위한 시각적 표시들일 수 있다.
일 실시예에서, 복수의 시점 별 애플리케이션 화면들(720)은 이전에 적어도 하나의 프리미티브 액션(710)이 수행된 시점을 기준으로 구분되는 애플리케이션 화면들일 수 있다. 예를 들어, 제1 시점(t = T-2a)의 애플리케이션 화면(721)에서 프리미티브 액션 'Move Left'(711)가 수행되면, 제2 시점(t= T-a)의 애플리케이션 화면(722)이 표시되고, 제2 시점의 애플리케이션 화면(722)에서 프리미티브 액션 'Move Down(712)'이 수행되면, 제3 시점(t = T)의 애플리케이션 화면(723)이 표시될 수 있다. 제3 시점 이후에 프리미티브 액션이 수행되지 않은 경우, 제3 시점은 마지막 시점일 수 있다.
특징 추출 모델(750)은 추출된 포커스 특징을 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들에 대응하는 노드에 매핑하여 복수의 시점 별 제1 포커스 특징 행렬들(751, 752, 753)을 출력할 수 있다.
일 실시예에서, 특징 추출 모델(750)은 도 5a, 5b 및 5c의 오브젝트 검출기(520)에 의해 생성된 복수의 사용자 인터페이스 요소들이 검출된 애플리케이션 화면(521)에 기초하여 포커스 특징을 추출하고, 노드 생성 단계(S530) 생성된 노드 데이터(531)에 기초하여 복수의 시점 별 제1 포커스 특징 행렬들(751, 752, 753)을 생성할 수 있다.
일 실시예에서, 특징 추출 모델(750)은 복수의 시점 별 애플리케이션 화면들(721, 722, 723)을 입력으로 하여 각각으로부터 포커스 특징을 추출하고, 포커스 특징을 포커스 특징이 획득된 사용자 애플리케이션 요소에 대응하는 노드에 매핑하여 복수의 시점 별 제1 포커스 특징 행렬들(751, 752, 753)을 출력하도록 학습된 모델일 수 있다. 이 경우, 특징 추출 모델(750)은 동일한 학습된 가중치를 통해 복수의 시점 별 애플리케이션 화면들(721, 722, 723)에 포함된 복수의 사용자 인터페이스 요소들로부터 포커스 특징을 추출할 수 있다. 예를 들어, 특징 추출 모델(750)은 ResNet, EfficientNet, MobileNet 기반 인공지능 모델을 포함할 수 있으나, 반드시 이에 한정되지는 않는다.
특징 강조 모델(770)은 복수의 시점 중 마지막 시점을 제외한 시점 별 제1 포커스 특징 행렬들(751, 752) 및 복수의 시점 중 마지막 시점을 제외한 시점에서 마지막 시점까지 수행된 적어도 하나의 프리미티브 액션(710)에 대한 사용자 인터페이스 맵에 기초하여 적어도 하나의 변환 제1 포커스 특징 행렬(761, 762)을 생성할 수 있다.
일 실시예에서, 특징 강조 모델(770)은 특징 전파 단계(S760)를 통해 복수의 시점 중 마지막 시점을 제외한 시점 별 제1 포커스 특징 행렬들(751, 752)의 포커스 특징들이 다른 노드들로 전파된 변환 제1 포커스 특징 행렬(761, 762)을 생성할 수 있다. 이 경우, 포커스 특징들은 수행된 적어도 하나의 프리미티브 액션(710)에 대한 사용자 인터페이스 맵에 기초하여 전파될 수 있다. 이에 따라, 제1 시점의 애플리케이션 화면(721) 및 제2 시점의 애플리케이션 화면(722)에 포커스가 위치한 사용자 인터페이스 요소에 대응되는 노드에 매핑된 포커스 특징이 제3 시점의 애플리케이션 화면(723)에 포커스가 위치한 사용자 인터페이스 요소에 대응하는 노드로 전파될 수 있다.
일 실시예에서, 수행된 적어도 하나의 프리미티브 액션(710)에 대한 사용자 인터페이스 맵은 도 6의 엣지 레이블러(432)가 생성한 적어도 하나의 프리미티브 액션 각각에 대한 인접 행렬들(632) 중 하나일 수 있다. 이 경우, 포커스 특징들은 행렬 곱 연산을 통하여 다른 노드들로 전파될 수 있다.
예를 들어, 특징 강조 모델(770)은 제1 시점의 포커스 특징 행렬(751)에 제1 시점과 제2 시점 사이에 수행된 프리미티브 액션 'Move Left'(711)에 대한 인접 행렬(713) 및 제2 시점과 제3 시점 사이에 수행된 프리미티브 액션 'Move Down'에 대한 인접 행렬(714)을 곱하여 노드 특징들이 전파된 제1 시점의 변환 제1 포커스 특징 행렬(761)이 생성할 수 있다. 또한, 특징 강조 모델(770)은 제2 시점의 포커스 특징 행렬(752)에 제2 시점과 제3 시점 사이에 수행된 프리미티브 액션 'Move Down'에 대한 인접 행렬(714)을 곱하여 제2 시점의 변환 제1 포커스 특징 행렬(762)을 생성할 수 있다.
특징 강조 모델(770)은 변환 제1 포커스 특징 행렬(761, 762) 및 제3 시점의 포커스 특징 행렬(753)에 기초하여 포커스 특징이 강조된 제2 포커스 특징 행렬(771)을 출력할 수 있다.
일 실시예에서, 특징 강조 모델(770)은 특징 강조 단계(S764)를 통해 변환 제1 포커스 특징 행렬(761, 762)에 포함된 복수의 노드들에 매핑된 포커스 특징들과 제3 시점의 포커스 특징 행렬(753)에 포함된 복수의 노드들에 매핑된 포커스 특징들을 비교하여 제3 시점의 애플리케이션 화면(723)에 포커스가 위치한 사용자 인터페이스 요소에 대응하는 노드에 매핑되는 포커스 특징을 강조할 수 있다. 이와 같이, 특징 강조 모델(770)은 시간적 포커스 특징 강조(Temporal Focus Feature Attention)를 통해 제3 시점의 애플리케이션 화면(723)에 포함된 복수의 사용자 인터페이스 요소들 중 포커스가 위치하지 않은 사용자 인터페이스 요소들에 대응하는 노드들에 매핑되는 포커스 특징의 값은 감소되고, 포커스가 위치한 사용자 인터페이스 요소에 대응하는 노드에 매핑되는 포커스 특징의 값은 증가된 제2 포커스 특징 행렬(771)을 생성할 수 있다.
일 실시예에서, 특징 강조 모델(770)은 복수의 시점 중 마지막 시점을 제외한 시점 별 제1 포커스 특징 행렬들(751, 752) 및 복수의 시점 중 마지막 시점을 제외한 시점에서 마지막 시점까지 수행된 적어도 하나의 프리미티브 액션(710)에 대한 사용자 인터페이스 맵을 입력으로 하여 적어도 하나의 변환 제1 포커스 특징 행렬(761, 762)을 생성하고, 적어도 하나의 변환 제1 포커스 특징 행렬(761, 762) 및 마지막 시점의 제1 포커스 특징 행렬(753)을 비교하여 제2 포커스 특징 행렬(771)을 출력하도록 학습된 모델일 수 있다. 예를 들어, 특징 강조 모델(770)은 어텐션 메커니즘(Attention Mechanism)에 기반 인공지능 모델을 포함할 수 있다.
특징 비교 모델(780)은 제3 시점의 포커스 특징 행렬(751) 및 제2 포커스 특징 행렬(771)에 기초하여 포커스의 위치(731)를 식별할 수 있다.
일 실시예에서, 제3 시점의 포커스 특징 행렬(751) 및 제2 포커스 특징 행렬(771) 중 하나가 특징 비교 모델(780)에 입력되거나, 제3 시점의 포커스 특징 행렬(751)과 제2 포커스 특징 행렬(771)이 집계(Aggregation)되어 특징 비교 모델(780)로 입력될 수 있다.
일 실시예에서, 특징 비교 모델(780)은 복수의 노드들 각각에 매핑된 포커스 특징을 서로 비교하여 제3 시점의 애플리케이션 화면(723)에 포커스가 위치한 사용자 인터페이스 요소에 대응하는 노드에 매핑되는 포커스 특징을 강조할 수 있다. 이와 같이, 특징 비교 모델(780)은 공간적 포커스 특징 강조(Spatial Focus Feature Attention)를 통해 3 시점의 애플리케이션 화면(723)에 포함된 복수의 사용자 인터페이스 요소들 중 포커스가 위치한 사용자 인터페이스 요소에 대응하는 노드에 매핑되는 포커스 특징이 강조된 포커스 특징(732-1)을 획득할 수 있다.
일 실시예에서, 특징 비교 모델(780)은 강조된 포커스 특징(732-1)에 기초하여 복수의 노드들 각각에 대하여 포커스가 위치할 확률(732-2)을 식별할 수 있다. 이에 따라, 포커스 위치 추정기(440)는 특징 비교 모델(780)이 식별한 복수의 노드들 각각의 포커스가 위치할 확률(732-2)에 기초하여 가장 높은 확률을 가지는 노드에 대응하는 사용자 인터페이스 요소에 제3 시점의 애플리케이션 화면(723)의 포커스가 위치한 것으로 식별할 수 있다.
일 실시예에서, 특징 비교 모델(780)은 제1 포커스 특징 행렬 및 제2 포커스 특징 행렬을 입력으로 하여 복수의 노드들 각각에 대하여 포커스가 위치할 확률을 출력하도록 학습된 모델일 수 있다. 예를 들어, 특징 비교 모델(780)은 그래프 뉴럴 네트워크(Graph Neural Network; GNN), 그래프 컨볼루션 네트워크(Graph Convolutional Network; GCN), 그래프 어텐션 네트워크(Graph Attentional Network; GAN)과 같은 그래프 데이터 기반 인공지능 모델을 포함할 수 있다. 이 경우, 도 6의 엣지 레이블러(432)가 생성한 적어도 하나의 프리미티브 액션 각각에 대한 인접 행렬들(632)이 신경망 연산에 필요한 인접 행렬로 특징 비교 모델(780)에 입력될 수 있다.
일 실시예에서, 복수의 시점 별 애플리케이션 화면들(720)에 제3 시점의 애플리케이션 화면(723)만 존재하고, 제3 시점 이전의 애플리케이션 화면(721, 722)는 존재하지 않을 수 있다. 이 경우, 그래프 기반 포커스 위치 식별 모델(730)은 특징 강조 모델(770)을 이용하여 시간적 포커스 특징 강조를 수행하지 않고, 특징 비교 모델(780)을 이용하여 공간적 포커스 특징 강조를 통해 포커스의 위치(731)를 식별할 수 있다.
이와 같이, 본 개시의 일 실시예에 따른 전자 장치(2000)는 복수의 시점 별 애플리케이션 화면으로부터 획득된 포커스 특징을 시간적 포커스 특징 강조 및 공간적 포커스 특징 강조를 수행하여 보다 포커스의 위치를 정확하게 식별할 수 있다.
도 7b를 참조하면, 포커스 위치 추정기(440)는 비전 기반 포커스 위치 식별 모델(740)을 이용하여 포커스의 위치(741)를 식별할 수 있다. 비전 기반 포커스 위치 식별 모델(740)은 복수의 시점 별 애플리케이션 화면들(720) 및 수행된 적어도 하나의 프리미티브 액션(710)을 입력으로 하여 제3 시점의 애플리케이션 화면(723)에 포함된 복수의 영역들 각각에 대하여 포커스가 위치할 확률을 출력할 수 있다.
일 실시예에서, 비전 기반 포커스 위치 식별 모델(740)에 입력되는 복수의 시점 별 애플리케이션 화면들(720) 및 수행된 적어도 하나의 프리미티브 액션(710)은 매핑 관계인 애플리케이션 화면과 프리미티브 액션과 함께 입력될 수 있다. 예를 들어, 제2 시점의 애플리케이션 화면(722)과 제2 시점 직전에 수행된 프리미티브 액션 'Move Left'(711)은 하나의 쌍으로 비전 기반 포커스 위치 식별 모델(740)로 입력될 수 있다.
일 실시예에서, 포커스의 위치(741)는 바운딩 박스가 생성된 제3 시점의 애플리케이션 화면(742-1)에 포함된 복수의 바운딩 박스 중 하나로 식별될 수 있다. 이 경우, 비전 기반 포커스 위치 식별 모델(740)은 제3 시점의 애플리케이션 화면(723)에 포함된 복수의 사용자 인터페이스 요소들에 대응하는 바운딩 박스를 생성하고, 생성된 복수의 바운딩 박스들 각각에 대하여 포커스가 위치할 확률(742-2)을 식별할 수 있다.
일 실시예에서, 포커스의 위치(741)는 기설정된 크기로 분할된 제3 시점의 애플리케이션 화면(743-1)의 복수의 영역들 중 하나로 식별될 수 있다. 이 경우, 비전 기반 포커스 위치 식별 모델(740)은 제3 시점의 애플리케이션 화면(723)을 기설정된 크기로 분할하고, 분할된 복수의 영역들 각각에 대하여 포커스가 위치할 확률(743-2)을 식별할 수 있다.
이에 따라, 포커스 위치 추정기(440)는 비전 기반 포커스 위치 식별 모델(740)이 식별한 포커스가 위치할 확률(742-2, 743-2)에 대한 정보 기초하여 가장 높은 확률을 가지는 바운딩 박스 또는 분할된 영역에 제3 시점의 애플리케이션 화면(723)의 포커스가 위치한 것으로 식별할 수 있다.
일 실시예에서, 포커스 위치 추정기(440)는 복수의 시점 별 애플리케이션 화면들 및 수행된 적어도 하나의 프리미티브 액션을 입력으로 하여 복수의 영역들 각각에 대하여 포커스가 위치할 확률을 출력하도록 학습된 모델일 수 있다. 포커스의 위치는 예를 들어, 포커스 위치 추정기(440)는 합성곱 신경망(Convolutional Neural Network; CNN), 비전 변환기(Vision Transformer)기반 인공지능 모델을 포함할 수 있으나, 반드시 이에 한정되지 않는다.
이와 같이, 본 개시의 일 실시예에 따른 전자 장치(2000)는 그래프 데이터에 기반한 사용자 인터페이스 맵을 생성하지 않고, 복수의 시점 별 애플리케이션 화면 및 수행된 적어도 하나의 프리미티브 액션 만을 이용하여 포커스의 위치를 식별할 수 있다.
도 7c를 참조하면, 포커스 위치 추정기(440)는 그래프 기반 포커스 위치 식별 모델(730) 및 비전 기반 포커스 위치 식별 모델(740)을 이용하여 포커스의 위치를 식별할 수 있다. 이 경우, 포커스의 위치는 포커스가 위치한 노드, 포커스가 위치한 바운딩 박스 및 포커스가 위치한 분할된 영역 중 적어도 하나로 식별될 수 있다.
일 실시예에서, 포커스 위치 추정기(440)는 복수의 컨버터들(791, 792, 793)을 이용하여 그래프 기반 포커스 위치 식별 모델(730) 및 비전 기반 포커스 위치 식별 모델(740)로부터 출력된 정보를 다른 차원에 대한 정보로 변환할 수 있다. 포커스 위치 추정기(440)는 다른 차원으로 변환된 정보와 그래프 기반 포커스 위치 식별 모델(730) 또는 비전 기반 포커스 위치 식별 모델(740)로부터 생성된 정보를 복수의 앙상블 레이어들(794, 796, 798)을 통해 결합할 수 있다. 이에 따라, 포커스 위치 추정기(440)는 포커스의 위치를 식별하기 위한 새로운 정보들(795-2, 797-2, 799-2)을 생성할 수 있다. 그리고, 포커스 위치 추정기(440)는 생성된 정보들(795-2, 797-2, 799-2)에 기초하여 포커스가 위치한 노드, 포커스가 위치한 바운딩 박스 및 포커스가 위치한 분할된 영역들 중 적어도 하나를 식별할 수 있다.
예를 들어, 포커스 위치 추정기(440)는 Graph-Position Converter(792)를 통해 그래프 기반 위치 식별 모델(730)로부터 출력된 복수의 노드들 각각에 대하여 포커스가 위치할 확률에 대한 정보를 복수의 사용자 인터페이스 요소들에 대응하는 바운딩 박스 각각에 대하여 포커스가 위치할 확률에 대한 정보로 변환할 수 있다. 그리고, 포커스 위치 추정기(440)는 Position-wise Ensemble Layer(796)를 통해 Graph-Position Converter(792)으로부터 출력된 정보 및 비전 기반 포커스 위치 식별 모델(740)로부터 출력된 복수의 바운딩 박스들 각각에 대하여 포커스가 위치할 확률에 대한 정보를 결합하여 바운딩 박스가 생성된 제3 시점의 애플리케이션 화면(797-1)에 포함된 복수의 바운딩 박스들 각각에 대하여 포커스가 위치할 확률(797-2)을 식별할 수 있다. 그리고, 포커스 위치 추정기(440)는 포커스가 위치할 확률(797-2)에 대한 정보에 기초하여 가장 높은 확률을 가지는 바운딩 박스에 제3 시점의 애플리케이션 화면(723)의 포커스가 위치한 것으로 식별할 수 있다.
이와 같이, 본 개시의 일 실시예에 따른 전자 장치(2000)는 서로 다른 차원의 포커스 위치를 식별하기 위한 정보들을 결합하여 포커스의 위치를 식별할 수 있다는 점에서, 보다 정확하게 포커스의 위치를 식별할 수 있다.
도 8a, 8b, 8c 및 8d는 본 개시의 일 실시예에 따른 전자 장치가 애플리케이션 화면을 분석하는 방법을 설명하기 위한 도면들이다.
도 8a를 참조하면, 제1 전자 장치(1100)에서 애플리케이션이 실행되어 제1 전자 장치(1100)에 표시될 수 있다. 제1 전자 장치(1100)에서 실행되는 애플리케이션은 애플리케이션 프로그램 인터페이스가 제공되지 않는 서드 파티 애플리케이션일 수 있다.
일 실시예에서, 제1 전자 장치(1100)에서 애플리케이션 화면이 분석되는 것보다, 제2 전자 장치(1200)에서 애플리케이션 화면(1110)이 분석되는 것이 적합할 수 있다. 예를 들어, 제1 전자 장치(1100)는 하드웨어의 컴퓨팅 성능이 낮은 전자 장치(예를 들어, TV, 사이니지 등)이고, 제2 전자 장치(1200)는 하드웨어의 컴퓨팅 성능이 높은 전자 장치(예를 들어, 노트북, 스마트 폰 등)일 수 있다. 따라서, 애플리케이션 화면(1110)을 보다 빠르고 정확하게 분석하기 위해서 애플리케이션이 실행되는 제1 전자 장치(1100)가 아닌 제2 전자 장치(1200)에서 애플리케이션 화면(1110)이 분석될 수 있다.
일 실시예에서, 제1 전자 장치(1100)는 애플리케이션 화면(1110)을 복제하여 제2 전자 장치(1200)에 전송할 수 있다. 제2 전자 장치(1200)는 수신된 애플리케이션 화면을 표시할 수 있다. 제2 전자 장치(1200)에 표시되거나, 제1 전자 장치로부터 수신된 애플리케이션 화면은 복제된 애플리케이션 화면 히스토리(1212)에 저장될 수 있다.
일 실시예에서, 제1 전자 장치(1100)에 실행되는 애플리케이션을 제어하거나 애플리케이션 화면의 탐색을 수행하기 위하여 프리미티브 액션이 제1 전자 장치(1100)에 입력될 수 있다.
일 실시예에서, 프리미티브 액션은 사용자 입력 장치로부터 제1 전자 장치(1100)에 직접 전송될 수 있다. 이 경우, 제1 전자 장치(1100)는 수신된 프리미티브 액션을 제2 전자 장치(1200)로 전송할 수 있다. 또한, 프리미티브 액션은 사용자 입력 장치로부터 제2 전자 장치(1200)에 전송될 수 있다. 이 경우, 제2 전자 장치(1200)는 수신된 프리미티브 액션을 제1 전자 장치(1100)로 전송할 수 있다. 제2 전자 장치(1200)에 전송된 프리미티브 액션은 프리미티브 액션 히스토리(1220)에 저장될 수 있다.
일 실시예에서, 제2 전자 장치(1200)는 사용자 인터페이스 맵 생성기(1230) 및포커스 위치 추정기(1240)를 포함할 수 있다. 제2 전자 장치(1200)는 사용자 인터페이스 맵 생성기(1230) 및 포커스 위치 추정기(1240)를 이용하여 복제된 애플리케이션 화면 히스토리(1212)에 포함된 애플리케이션 화면을 분석할 수 있다. 예를 들어, 제2 전자 장치(1200)는 복제된 애플리케이션 화면 히스토리(1212)에 포함된 복수의 애플리케이션 화면들 중 적어도 하나를 획득할 수 있다. 제2 전자 장치(1200)는 사용자 인터페이스 맵 생성기(1230)를 이용하여 사용자 인터페이스 맵(1250)을 생성할 수 있다. 전자 장치(2000)는 포커스 위치 추정기(1240)를 이용하여 포커스의 위치(1260)를 식별할 수 있다. 제2 전자 장치(1200)가 사용자 인터페이스 맵 생성기(1230) 및 포커스 위치 추정기(1240)를 이용하여 복제된 애플리케이션 화면을 분석하는 방법은 도 1 내지 도 7에서 전술한 전자 장치(2000)가 사용자 인터페이스 맵 생성기(430) 및 포커스 위치 추정기(440)를 이용하여 애플리케이션 화면을 분석하는 동작과 동일하다는 점에서, 중복되는 설명은 생략하도록 한다.
도 8b를 참조하면, 제2 전자 장치(1200)에서 애플리케이션이 실행되어 제2 전자 장치(1100)에 표시될 수 있다. 제2 전자 장치(1200)에서 실행되는 애플리케이션은 애플리케이션 프로그램 인터페이스가 제공되지 않는 서드 파티 애플리케이션일 수 있다.
일 실시예에서, 애플리케이션이 실행되는 제2 전자 장치(1200)의 하드웨어의 컴퓨팅 성능이 높아서 제2 전자 장치(1200)와 통신이 가능한 다른 전자 장치가 아닌 제2 전자 장치(1200)가 직접 애플리케이션 화면(1110)을 분석하는 것이 보다 정확하고 빠를 수 있다. 이 경우, 제2 전자 장치(1200)에서 애플리케이션 화면(1110)이 분석될 수 있다.
일 실시예에서, 제2 전자 장치(1200)는 실행 중인 애플리케이션으로부터 제공되는 애플리케이션 화면(1210)을 애플리케이션 화면 히스토리(1211)에 저장하거나, 제2 전자 장치(1200)에 표시되는 애플리케이션 화면을 애플리케이션 화면 히스토리(1211)에 저장할 수 있다.
일 실시예에서, 제2 전자 장치(1200)는 사용자 입력 장치로부터 프리미티브 액션을 수신하고, 수신된 프리미티브 액션을 실행 중인 애플리케이션에 전송할 수 있다. 제2 전자 장치(1200)는 애플리케이션에 전송되는 프리미티브 액션을 프리미티브 액션 히스토리(1220)에 저장할 수 있다.
일 실시예에서, 제2 전자 장치(1200)는 사용자 인터페이스 맵 생성기(1230) 및 포커스 위치 추정기(1240)를 이용하여 애플리케이션 화면 히스토리(1211)에 포함된 애플리케이션 화면을 분석할 수 있다. 예를 들어, 제2 전자 장치(1200)는 애플리케이션 화면 히스토리(1211)에 포함된 복수의 애플리케이션 화면들 중 적어도 하나를 획득할 수 있다. 제2 전자 장치(1200)는 사용자 인터페이스 맵 생성기(1230)를 이용하여 사용자 인터페이스 맵(1250)을 생성할 수 있다. 전자 장치(2000)는 포커스 위치 추정기(1240)를 이용하여 포커스의 위치(1260)를 식별할 수 있다. 제2 전자 장치(1200)가 사용자 인터페이스 맵 생성기(1230) 및 포커스 위치 추정기(1240)를 이용하여 애플리케이션 화면을 분석하는 방법은 도 1 내지 도 7에서 전자 장치(2000)가 사용자 인터페이스 맵 생성기(430) 및 포커스 위치 추정기(440)를 이용하여 애플리케이션 화면을 분석하는 동작과 동일하다는 점에서, 중복되는 설명은 생략하도록 한다.
도 8c를 참조하면, 제1 전자 장치(1100)에서 애플리케이션이 실행되어 제1 전자 장치(1100)에 표시될 수 있다. 제1 전자 장치(1100)에서 실행되는 애플리케이션은 애플리케이션 프로그램 인터페이스가 제공되지 않는 서드 파티 애플리케이션일 수 있다.
일 실시예에서, 일반적으로 서버(3000)는 대용량의 연산을 처리하기 위하여 컴퓨팅 성능이 높은 하드웨어들을 포함하고 있다. 따라서, 애플리케이션 화면을 보다 빠르고 정확하게 분석하기 위해서 제1 전자 장치(1100)가 아닌 서버(3000)에서 애플리케이션 화면(1110)이 분석될 수 있다.
일 실시예에서, 서버(3000)는 제1 전자 장치(1100)로부터 애플리케이션 화면(1110) 및 프리미티브 액션(1120)을 수신할 수 있다. 서버(3000)는 수신된 애플리케이션 화면(1110)을 애플리케이션 화면 히스토리(3010)에 저장하고, 수신된 프리미티브 액션(1120)을 시스템 액션 히스토리(3020)에 저장할 수 있다.
일 실시예에서, 서버(3000)는 제1 전자 장치(1100)로부터 애플리케이션 화면 히스토리(3010) 및 시스템 액션 히스토리(3020)를 수신할 수 있다. 이 경우, 애플리케이션 화면 히스토리(3010) 및 시스템 액션 히스토리(3020)는 제1 전자 장치(1100)에서 생성되어 서버(3000)로 전송될 수 있다.
일 실시예에서, 서버(3000)는 사용자 인터페이스 맵 생성기(3030) 및 포커스 위치 추정기(3040)를 이용하여 애플리케이션 화면 히스토리(3010)에 포함된 애플리케이션 화면을 분석할 수 있다. 예를 들어, 서버(3000)는 애플리케이션 화면 히스토리(3030)에 포함된 복수의 애플리케이션 화면들 중 적어도 하나를 획득할 수 있다. 서버(3000)는 사용자 인터페이스 맵 생성기(3030)를 이용하여 사용자 인터페이스 맵(3050)을 생성할 수 있다. 서버(3000)는 포커스 위치 추정기(3040)를 이용하여 포커스의 위치(3060)를 식별할 수 있다. 서버(3000)가 사용자 인터페이스 맵 생성기(3030) 및 포커스 위치 추정기(3040)를 이용하여 애플리케이션 화면을 분석하는 방법은 도 1 내지 도 7에서 전술한 전자 장치(2000)가 사용자 인터페이스 맵 생성기(430) 및 포커스 위치 추정기(440)를 이용하여 애플리케이션 화면을 분석하는의 동작과 동일하다는 점에서, 중복되는 설명은 생략하도록 한다.
도 8d를 참조하면, 제2 전자 장치(1200)에서 애플리케이션이 실행되어 제2 전자 장치(1100)에 표시될 수 있다. 제2 전자 장치(1200)에서 실행되는 애플리케이션은 애플리케이션 프로그램 인터페이스가 제공되지 않는 서드 파티 애플리케이션일 수 있다.
일 실시예에서, 애플리케이션이 실행되는 제2 전자 장치(1200) 및 제2 전자 장치(1200)와 통신이 가능한 제3 전자 장치(1300) 모두 하드웨어 스펙이 낮아 애플리케이션 화면(1210)을 보다 정확하고 빠르게 분석하기 위해서 제2 전자 장치(1200) 및 제3 전자 장치(1300)에서 병렬적으로 애플리케이션 화면(1210)이 분석될 수 있다.
일 실시예에서, 제2 전자 장치(1200)는 애플리케이션 화면 히스토리(1211)에 저장된 적어도 하나의 애플리케이션 화면을 제3 전자 장치(1300)에 전송할 수 있다. 또한, 제2 전자 장치(1200)는 프리미티브 액션 히스토리(1220)에 저장된 적어도 하나의 프리미티브 액션을 제3 전자 장치(1300)로 전송할 수 있다.
일 실시예에서, 제2 전자 장치(1200)는 사용자 인터페이스 맵 생성기(1230)를 이용하여 제1 사용자 인터페이스 맵(1251)을 생성할 수 있다. 또한, 제3 전자 장치(1300)는 사용자 인터페이스 맵 생성기(1330)를 이용하여 제2 사용자 인터페이스 맵(1251)을 생성할 수 있다.
일 실시예에서, 제1 사용자 인터페이스 맵(1251) 또는 제2 사용자 인터페이스 맵(1252)은 사용자 인터페이스 맵을 생성하지 않은 다른 전자 장치에 제공될 수 있다. 예를 들어, 제2 전자 장치(1200)가 제1 사용자 인터페이스 맵(1251)을 생성하고, 제3 전자 장치(1300)가 제2 사용자 인터페이스 맵(1351)을 생성하지 않는 경우, 제2 전자 장치(1200)에서 생성된 제1 사용자 인터페이스 맵(1251)은 제3 전자 장치(1300)로 전송될 수 있다.
일 실시예에서, 제1 사용자 인터페이스 맵(1251) 및 제2 사용자 인터페이스 맵(1252)은 실제로 분석되어야 하는 복수의 애플리케이션 화면들 중 일부에 기초하여 생성된 사용자 인터페이스 맵일 수 있다. 예를 들어, 사용자 인터페이스 맵을 생성하기 위하여 애플리케이션 화면 히스토리(1211)에 포함된 총 100개의 애플리케이션 화면들이 분석되어야 하는데, 제2 전자 장치에서(1200)에서 100개의 애플리케이션 화면들 중 50개의 애플리케이션 화면들 기초하여 제1 사용자 인터페이스 맵(1251)이 생성되고, 제3 전자 장치(1300)에서 나머지 50개의 애플리케이션 화면들에 기초하여 제2 사용자 인터페이스 맵(1252)이 생성될 수 있다.
일 실시예에서, 제2 전자 장치(1200) 및 제3 전자 장치(1300) 중 적어도 하나는 제1 사용자 인터페이스 맵(1251)과 제2 사용자 인터페이스 맵(1252)을 결합하기 위한 사용자 인터페이스 맵 앙상블 모델(미도시)을 포함할 수 있다. 이에 따라, 제1 사용자 인터페이스 맵(1251) 및 제2 사용자 인터페이스 맵(1252)이 실제로 분석되어야 하는 복수의 애플리케이션 화면들 중 일부에 기초하여 생성된 사용자 인터페이스 맵인 경우, 제2 전자 장치(1200) 및 제3 전자 장치(1300) 중 적어도 하나의 장치는 사용자 인터페이스 맵 앙상블 모델(미도시)을 통해 제1 사용자 인터페이스 맵(1251)과 제2 사용자 인터페이스 맵(1252)이 결합된 통합 사용자 인터페이스 맵을 생성할 수 있다. 통합 사용자 인터페이스 맵은 통합 사용자 인터페이스 맵이 생성되지 않은 다른 전자 장치에 제공될 수 있다.
일 실시예에서, 제2 전자 장치(1200)는 포커스 위치 추정기(1240)를 이용하여 제1 포커스 위치(1261)를 식별할 수 있다. 또한, 제3 전자 장치(1300)는 포커스 위치 추정기(1340)를 이용하여 제2 포커스 위치(1361)를 식별할 수 있다.
일 실시예에서, 제2 전자 장치(1200)의 포커스 위치 추정기(1240) 또는 제3 전자 장치(1300)의 포커스 위치 추정기(1340)가 사용자 인터페이스 맵에 기초하여 포커스 위치를 식별하는 경우, 다른 전자 장치로부터 제공되는 사용자 인터페이스 맵에 기초하여 포커스 위치를 식별할 수 있다.
일 실시예에서, 제2 전자 장치(1200)의 포커스 위치 추정기(1240)와 제3 전자 장치(1300)의 포커스 위치 추정기(1340)는 서로 다른 차원의 포커스를 식별하기 위한 정보를 생성하고, 이에 기초하여 포커스의 위치를 식별할 수 있다. 예를 들어, 제2 전자 장치(1200)의 포커스 위치 추정기(1240)는 그래프 기반 포커스 위치 식별 모델을 이용하여 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들에 대응하는 복수의 노드들 각각에 대하여 포커스가 위치할 확률에 대한 정보를 생성할 수 있다. 반면, 제3 전자 장치(1200)의 포커스 위치 추정기(1340)는 비전 기반 포커스 위치 식별 모델을 이용하여 애플리케이션 화면(723)에 포함된 복수의 영역들 각각에 대하여 포커스가 위치할 확률에 대한 정보를 생성할 수 있다.
일 실시예에서, 제2 전자 장치(1200) 및 제3 전자 장치(1300) 중 적어도 하나는 포커스 위치를 식별하기 위한 정보들을 결합하기 위한 포커스 위치 앙상블 모델(미도시)을 포함할 수 있다. 그리고, 제2 전자 장치(1200)의 포커스 위치 추정기(1240)와 제3 전자 장치(1300)의 포커스 위치 추정기(1340)는 서로 다른 차원의 포커스를 식별하기 위한 정보를 생성하는 경우, 제2 전자 장치(1200) 및 제3 전자 장치(1300) 중 적어도 하나는 포커스 위치 앙상블 모델(미도시)을 통해 서로 다른 차원의 포커스 위치를 식별하기 위한 정보들을 결합하여 포커스의 위치를 식별하기 위한 새로운 정보를 생성할 수 있다. 그리고, 제2 전자 장치(1200) 및 제3 전자 장치(1300) 중 적어도 하나는 생성된 새로운 정보에 기초하여 포커스의 위치를 식별할 수 있다.
도 9는 본 개시의 일 실시예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
도 9를 참조하면, 일 실시예에 따른 전자 장치(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)는 외부 전자 장치로 애플리케이션 화면 및 프리미티브 액션을 전송할 수 있다. 반대로, 외부 전자 장치에서 실행되어 표시되는 애플리케이션 화면을 전자 장치(2000)에서 분석하는 경우, 통신 인터페이스(2100)는 외부 전자 장치로부터 애플리케이션 화면 및 프리미티브 액션을 수신할 수 있다. 또한, 통신 인터페이스(2100)는 애플리케이션 화면을 분석하기 위해 이용하는 인공지능 모델 및 인공지능 모델을 학습하기 위한 훈련 데이터를 외부 전자 장치와 송수신할 수 있다.
디스플레이(2200)는 프로세서(2400)의 제어에 의해 전자 장치(2000)의 화면에 영상 신호를 출력할 수 있다. 디스플레이(2200)에는 애플리케이션 화면이 표시될 수 있으며, 적어도 하나의 프리미티브 액션이 수행됨에 따라 디스플레이(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)이 저장될 수 있으며, 각 모듈은 모듈의 기능을 수행하기 위한 하나 이상의 인공지능 모델을 포함할 수 있다. 예를 들어, 사용자 인터페이스 맵 생성 모듈(2310)은 링크 제거 모델, 링크 생성 모델, 엣지 레이블러 등을 포함할 수 있다. 그리고, 포커스 위치 추정 모듈(2320)은 그래프 기반 포커스 위치 식별 모델, 비전 기반 포커스 위치 식별 모델 등을 포함할 수 있다. 또한, 메모리(2300)는 전자 장치(2000)가 애플리케이션 화면을 분석하는데 필요한 애플리케이션 화면 히스토리 및 프리미티브 액션 히스토리를 저장할 수 있다.
프로세서(2400)는 전자 장치(2000)의 전반적인 동작들을 제어할 수 있다. 예를 들어, 프로세서(2400)는 메모리(2300)에 저장된 프로그램의 하나 이상의 명령어들(instructions)을 실행함으로써, 전자 장치(2000)가 애플리케이션 화면을 분석하기 위한 전반적인 동작들을 제어할 수 있다. 프로세서(2400)는 하나 이상일 수 있다.
적어도 하나의 프로세서(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)는 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들에 대한 복수의 링크들을 생성할 수 있다. 적어도 하나의 프로세서(2400)는 복수의 링크들에 기초하여 애플리케이션 화면을 탐색하기 위한 사용자 입력인 적어도 하나의 프리미티브 액션 각각에 대한 사용자 인터페이스 맵을 생성할 수 있다. 적어도 하나의 프로세서(2400)는 복수의 사용자 인터페이스 요소들 중 사용자의 상호 작용 대상이 되는 사용자 인터페이스 요소를 나타내는 포커스의 위치를 식별할 수 있다. 사용자 인터페이스 맵은 적어도 하나의 프리미티브 액션에 의해 포커스의 위치가 복수의 사용자 인터페이스 요소들 사이를 이동하는 경로를 포함할 수 있다.
일 실시예에서, 적어도 하나의 프로세서(2400)는 애플리케이션 화면에 기초하여 복수의 사용자 인터페이스 요소들을 식별할 수 있다. 적어도 하나의 프로세서(2400)는 복수의 사용자 인터페이스 요소들에 대응하는 복수의 노드들을 생성할 수 있다. 적어도 하나의 프로세서(2400)는 복수의 노드들의 노드 특징에 기초하여 복수의 링크들을 생성할 수 있다. 노드 특징은 복수의 사용자 인터페이스 요소들의 크기, 위치, 컨텐츠, 이미지, 이름 및 계층에 관한 특징 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 적어도 하나의 프로세서(2400)는 링크 제거 모델을 이용하여 복수의 링크들을 생성할 수 있다. 링크 생성 모델은 노드 특징 및 복수의 노드들에 대한 완전 연결 엣지를 입력으로 하여 완전 연결 엣지에 포함된 적어도 하나의 링크를 제거하여 복수의 링크들을 생성하도록 학습된 모델일 수 있다. 완전 연결 엣지는 복수의 사용자 인터페이스 요소들의 자기 자신에 대한 링크들 및 서로 다른 사용자 인터페이스 요소들 사이의 모든 링크들을 포함할 수 있다.
일 실시예에서, 적어도 하나의 프로세서(2400)는 링크 생성 모델을 이용하여 복수의 링크들을 생성할 수 있다. 링크 생성 모델은 노드 특징을 입력으로 하여 복수의 노드들에 대한 계층적 군집화를 수행하고, 계층적 군집화의 각 단계에서, 같은 계층으로 군집화되는 노드들을 연결하여 복수의 링크들을 생성하도록 학습된 모델일 수 있다.
일 실시예에서, 적어도 하나의 프로세서(2400)는 복수의 링크들 각각에 대하여 적어도 하나의 프리미티브 액션을 매핑할 수 있다. 적어도 하나의 프로세서(2400)는 복수의 링크들 각각에 어떠한 프리미티브 액션이 매핑 되었는지에 기초하여 사용자 인터페이스 맵을 생성할 수 있다.
일 실시예에서, 적어도 하나의 프로세서(2400)는 엣지 레이블러를 이용하여 인접 행렬을 생성할 수 있다. 엣지 레이블러는 복수의 링크들을 포함하는 복수의 노드들에 대한 엣지를 입력으로 하여 사용자 인터페이스 맵을 출력하도록 학습된 모델일 수 있다.
일 실시예에서, 적어도 하나의 프로세서(2400)는, 적어도 하나의 프리미티브 액션이 수행된 시점을 기준으로 구분되는 복수의 시점의 애플리케이션 화면들 및 복수의 시점 중 마지막 시점 이전에 수행된 적어도 하나의 프리미티브 액션에 기초하여 마지막 시점의 애플리케이션 화면에서 포커스의 위치를 식별할 수 있다.
일 실시예에서, 적어도 하나의 프로세서(2400)는 그래프 기반 포커스 위치 식별 모델 및 비전 기반 포커스 위치 식별 모델 중 적어도 하나를 이용하여 포커스의 위치를 식별할 수 있다.
일 실시예에서, 그래프 기반 포커스 위치 식별 모델은 포커스 특징을 포함하는 복수의 시점 별 제1 포커스 특징 행렬들을 출력하는 특징 추출 모델, 포커스 특징이 강조된 제2 포커스 특징 행렬들을 출력하는 특징 강조 모델 및 복수의 노드들 각각에 대하여 포커스가 위치할 확률을 출력하는 특징 비교 모델을 포함할 수 있다. 포커스 특징은 복수의 사용자 인터페이스 요소들로부터 획득되는 포커스의 위치와 관련된 특징을 포함할 수 있다.
일 실시예에서, 특징 추출 모델은 복수의 시점 별 애플리케이션 화면들을 입력으로 하여 각각으로부터 포커스 특징을 추출하고, 포커스 특징을 포커스 특징이 획득된 사용자 애플리케이션 요소에 대응하는 노드에 매핑하여 복수의 시점 별 제1 포커스 특징 행렬들을 출력하도록 학습된 모델일 수 있다.
일 실시예에서, 특징 강조 모델은 복수의 시점 중 마지막 시점을 제외한 시점 별 제1 포커스 특징 행렬 및 복수의 시점적어도 하나의 시점에서 마지막 시점까지 수행된 적어도 하나의 프리미티브 액션에 대한 사용자 인터페이스 맵을 입력으로 하여 적어도 하나의 변환 제1 포커스 특징 행렬을 생성하고, 적어도 하나의 변환 제1 포커스 특징 행렬 및 마지막 시점의 제1 포커스 특징 행렬을 비교하여 제2 포커스 특징 행렬을 출력하도록 학습된 모델일 수 있다.
일 실시예에서, 특징 비교 모델은 복수의 시점 중 마지막 시점의 제1 포커스 특징 행렬 및 제2 포커스 특징 행렬을 입력으로 하여 복수의 노드들 각각에 대하여 포커스가 위치할 확률을 출력하도록 학습된 모델일 수 있다.
일 실시예에서, 비전 기반 포커스 위치 식별 모델은 복수의 시점 별 애플리케이션 화면들 및 수행된 적어도 하나의 프리미티브 액션을 입력으로 하여 마지막 시점의 애플리케이션 화면에 포함된 복수의 영역들 각각에 대하여 포커스가 위치할 확률을 출력하도록 학습된 모델일 수 있다.
일 실시예에서, 적어도 하나의 프로세서(2400)는 통신 인터페이스(2100)를 통해 애플리케이션 화면을 외부 전자 장치로부터 수신할 수 있다. 적어도 하나의 프로세서(2400)는 통신 인터페이스(2100)를 통해 사용자 인터페이스 맵 및 포커스의 위치를 중 적어도 하나를 외부 전자 장치로 전송할 수 있다.
일 실시예에서, 애플리케이션 화면은 어플리케이션 프로그램 인터페이스가 제공되지 않는 서드 파티 애플리케이션의 실행 화면으로 디스플레이(2200)에 표시될 수 있다.
도 10은 본 개시의 일 실시예에 따른 서버의 구성을 설명하기 위한 블록도이다.
일 실시예에서, 전술한 전자 장치(2000)의 동작들은, 서버(3000)에서 수행될 수 있다.
일 실시예에 따른 서버(3000)는 통신 인터페이스(3100), 메모리(3200) 및 프로세서(3300)를 포함할 수 있다. 서버(3000)의 통신 인터페이스(3100), 메모리(3200) 및 프로세서(3300)는 도 9의 전자 장치(2000)의 통신 인터페이스(2100), 메모리(2300) 및 프로세서(2400)에 각각 대응되므로, 동일한 설명은 생략한다.
일 실시예에 따른 서버(3000)는, 전자 장치(2000) 보다 연산량이 많은 연산을 수행 가능하도록, 컴퓨팅 성능이 전자 장치(2000)보다 높은 장치일 수 있다. 서버(3000)는 추론에 비해 상대적으로 많은 연산량이 요구되는, 인공지능 모델의 훈련을 수행할 수 있다.
한편, 본 개시의 일 실시예에 따르면, 애플리케이션 화면을 분석하는 방법이 제공될 수 있다.
일 실시예에서, 애플리케이션 화면을 분석하는 방법은 애플리케이션 화면을 분석하는 방법에 있어서, 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들에 대한 복수의 링크(Link)들을 생성하는 단계, 복수의 링크들에 기초하여 애플리케이션 화면을 탐색하기 위한 사용자 입력인 적어도 하나의 프리미티브(Primitive) 액션 각각에 대한 사용자 인터페이스 맵을 생성하는 단계 및 복수의 사용자 인터페이스 요소들 중 사용자의 상호 작용 대상이 되는 사용자 인터페이스 요소를 나타내는 포커스의 위치를 식별하는 단계 를 포함할 수 있다. 사용자 인터페이스 맵은 적어도 하나의 프리미티브 액션에 의해 포커스의 위치가 복수의 사용자 인터페이스 요소들 사이를 이동하는 경로를 포함할 수 있다.
일 실시예에서, 복수의 링크들을 생성하는 단계는 애플리케이션 화면에 기초하여 복수의 사용자 인터페이스 요소들을 식별하는 단계, 복수의 사용자 인터페이스 요소들에 대응하는 복수의 노드들을 생성하는 단계 및 복수의 노드들의 노드 특징에 기초하여 복수의 링크들을 생성하는 단계를 포함할 수 있다. 노드 특징은 복수의 사용자 인터페이스 요소들의 크기, 위치, 컨텐츠, 이미지, 이름 및 계층에 관한 특징 중 적어도 하나를 포함할 수 있다.
일 실시예에서, 노드 특징에 기초하여 복수의 링크들을 생성하는 단계는 링크 제거 모델을 이용하여 복수의 링크들을 생성하는 단계를 포함할 수 있다. 링크 제거 모델은 노드 특징 및 복수의 노드들에 대한 완전 연결 엣지를 입력으로 하여 완전 연결 엣지에 포함된 적어도 하나의 링크를 제거하여 복수의 링크들을 생성하도록 학습된 모델일 수 있다. 완전 연결 엣지는, 복수의 사용자 인터페이스 요소들의 자기 자신에 대한 링크들 및 서로 다른 사용자 인터페이스 요소들 사이의 모든 링크들을 포함할 수 있다.
일 실시예에서, 노드 특징에 기초하여 복수의 링크들을 생성하는 단계는 링크 생성 모델을 이용하여 복수의 링크들을 생성하는 단계를 포함할 수 있다. 링크 생성 모델은 노드 특징을 입력으로 하여 복수의 노드들에 대한 계층적 군집화를 수행하고, 계층적 군집화의 각 단계에서, 같은 계층으로 군집화되는 노드들을 연결하여 복수의 링크들을 생성하도록 학습된 모델일 수 있다.
일 실시예에서, 사용자 인터페이스 맵을 생성하는 단계는 복수의 링크들 각각에 대하여 적어도 하나의 프리미티브 액션을 매핑하는 단계 및 복수의 링크들 각각에 어떠한 프리미티브 액션이 매핑 되었는지에 기초하여 사용자 인터페이스 맵을 생성하는 단계를 포함할 수 있다.
일 실시예에서, 사용자 인터페이스 맵을 생성하는 단계는 엣지 레이블러를 이용하여 인접 행렬을 생성하는 단계를 포함할 수 있다. 엣지 레이블러는 복수의 링크들을 포함하는 복수의 노드들에 대한 엣지를 입력으로 하여 사용자 인터페이스 맵을 출력하도록 학습된 모델일 수 있다.
일 실시예에서, 포커스의 위치를 식별하는 단계는 적어도 하나의 프리미티브 액션이 수행된 시점을 기준으로 구분되는 복수의 시점의 애플리케이션 화면들 및 복수의 시점 중 마지막 시점 이전에 수행된 적어도 하나의 프리미티브 액션에 기초하여 마지막 시점의 애플리케이션 화면에서 포커스의 위치를 식별하는 단계를 포함할 수 있다.
일 실시예에서, 마지막 시점의 애플리케이션 화면에서 포커스의 위치를 식별하는 단계는 그래프 기반 포커스 위치 식별 모델 및 비전 기반 포커스 위치 식별 모델 중 적어도 하나를 이용하여 포커스의 위치를 식별하는 단계를 포함할 수 있다.
일 실시예에서, 그래프 기반 포커스 위치 식별 모델은 포커스 특징을 포함하는 복수의 시점 별 제1 포커스 특징 행렬들을 출력하는 특징 추출 모델, 포커스 특징이 강조된 제2 포커스 특징 행렬들을 출력하는 특징 강조 모델 및 복수의 노드들 각각에 대하여 포커스가 위치할 확률을 출력하는 특징 비교 모델을 포함할 수 있다. 포커스 특징은 복수의 사용자 인터페이스 요소들로부터 획득되는 포커스의 위치와 관련된 특징을 포함할 수 있다.
일 실시예에서, 특징 추출 모델은 복수의 시점 별 애플리케이션 화면들을 입력으로 하여 각각으로부터 포커스 특징을 추출하고, 포커스 특징을 포커스 특징이 획득된 사용자 애플리케이션 요소에 대응하는 노드에 매핑하여 복수의 시점 별 제1 포커스 특징 행렬들을 출력하도록 학습된 모델일 수 있다.
일 실시예에서, 특징 강조 모델은 복수의 시점 중 마지막 시점을 제외한 시점 별 제1 포커스 특징 행렬 및 복수의 시점적어도 하나의 시점에서 마지막 시점까지 수행된 적어도 하나의 프리미티브 액션에 대한 사용자 인터페이스 맵을 입력으로 하여 적어도 하나의 변환 제1 포커스 특징 행렬을 생성하고, 적어도 하나의 변환 제1 포커스 특징 행렬 및 마지막 시점의 제1 포커스 특징 행렬을 비교하여 제2 포커스 특징 행렬을 출력하도록 학습된 모델일 수 있다.
일 실시예에서, 특징 비교 모델은 복수의 시점 중 마지막 시점의 제1 포커스 특징 행렬 및 제2 포커스 특징 행렬을 입력으로 하여 복수의 노드들 각각에 대하여 포커스가 위치할 확률을 출력하도록 학습된 모델일 수 있다.
일 실시예에서, 비전 기반 포커스 위치 식별 모델은 복수의 시점 별 애플리케이션 화면들 및 수행된 적어도 하나의 프리미티브 액션을 입력으로 하여 마지막 시점의 애플리케이션 화면에 포함된 복수의 영역들 각각에 대하여 포커스가 위치할 확률을 출력하도록 학습된 모델일 수 있다.
한편, 본 개시의 실시예들은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독 가능 명령어, 데이터 구조, 또는 프로그램 모듈과 같은 변조된 데이터 신호의 기타 데이터를 포함할 수 있다.
또한, 컴퓨터에 의해 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 애플리케이션 화면(510)을 분석하는 방법에 있어서,
    상기 애플리케이션 화면(510)에 포함된 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대한 복수의 링크(Link)들을 생성하는 단계(S210);
    상기 복수의 링크들에 기초하여 상기 애플리케이션 화면(510)을 탐색하기 위한 사용자 입력인 적어도 하나의 프리미티브(Primitive) 액션(340) 각각에 대한 사용자 인터페이스 맵(450)을 생성하는 단계(S220); 및
    상기 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3) 중 사용자의 상호 작용 대상이 되는 사용자 인터페이스 요소를 나타내는 포커스의 위치(460-1, 460-2)를 식별하는 단계(S230);를 포함하며,
    상기 사용자 인터페이스 맵은,
    상기 적어도 하나의 프리미티브 액션에 의해 상기 포커스의 위치(460-1, 460-2)가 상기 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3) 사이를 이동하는 경로를 포함하는, 방법
  2. 제1항에 있어서,
    상기 복수의 링크들을 생성하는 단계는,
    상기 애플리케이션 화면에 기초하여 상기 복수의 사용자 인터페이스 요소들을 식별하는 단계;
    상기 복수의 사용자 인터페이스 요소들에 대응하는 복수의 노드들을 생성하는 단계; 및
    상기 복수의 노드들의 노드 특징에 기초하여 상기 복수의 링크들을 생성하는단계;를 포함하고,
    상기 노드 특징은,
    상기 복수의 사용자 인터페이스 요소들의 크기, 위치, 컨텐츠, 이미지, 이름 및 계층에 관한 특징 중 적어도 하나를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 노드 특징에 기초하여 상기 복수의 링크들을 생성하는 단계는,
    링크 제거 모델을 이용하여 상기 복수의 링크들을 생성하는 단계;를 포함하고,
    상기 링크 제거 모델은,
    상기 노드 특징 및 상기 복수의 노드들에 대한 완전 연결 엣지를 입력으로 하여 상기 완전 연결 엣지에 포함된 적어도 하나의 링크를 제거하여 상기 복수의 링크들을 생성하도록 학습된 모델이고,
    상기 완전 연결 엣지는,
    상기 복수의 사용자 인터페이스 요소들의 자기 자신에 대한 링크들 및 서로 다른 사용자 인터페이스 요소들 사이의 모든 링크들을 포함하는, 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 노드 특징에 기초하여 상기 복수의 링크들을 생성하는 단계는,
    링크 생성 모델을 이용하여 상기 복수의 링크들을 생성하는 단계;를 포함하고,
    상기 링크 생성 모델은,
    상기 노드 특징을 입력으로 하여 상기 복수의 노드들에 대한 계층적 군집화를 수행하고,
    상기 계층적 군집화의 각 단계에서, 같은 계층으로 군집화되는 노드들을 연결하여 상기 복수의 링크들을 생성하도록 학습된 모델인, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 사용자 인터페이스 맵을 생성하는 단계는,
    상기 복수의 링크들 각각에 대하여 상기 적어도 하나의 프리미티브 액션을 매핑하는 단계; 및
    상기 복수의 링크들 각각에 어떠한 프리미티브 액션이 매핑 되었는지에 기초하여 상기 사용자 인터페이스 맵을 생성하는 단계;를 포함하는, 방법.
  6. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 사용자 인터페이스 맵을 생성하는 단계는,
    엣지 레이블러를 이용하여 상기 사용자 인터페이스 맵을 생성하는 단계;를 포함하고,
    상기 엣지 레이블러는,
    상기 복수의 링크들을 포함하는 상기 복수의 노드들에 대한 엣지를 입력으로 하여 상기 사용자 인터페이스 맵을 출력하도록 학습된 모델인, 방법.
  7. 제1항 내지 제 6항 중 어느 한 항에 있어서,
    상기 포커스의 위치를 식별하는 단계는,
    상기 적어도 하나의 프리미티브 액션이 수행된 시점을 기준으로 구분되는 복수의 시점의 애플리케이션 화면들 및 상기 복수의 시점 중 마지막 시점 이전에 수행된 적어도 하나의 프리미티브 액션에 기초하여 상기 마지막 시점의 애플리케이션 화면에서 상기 포커스의 위치를 식별하는 단계;를 포함하는, 방법.
  8. 제7항에 있어서,
    상기 마지막 시점의 애플리케이션 화면에서 상기 포커스의 위치를 식별하는 단계는,
    그래프 기반 포커스 위치 식별 모델 및 비전 기반 포커스 위치 식별 모델 중 적어도 하나를 이용하여 상기 포커스의 위치를 식별하는 단계;를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 그래프 기반 포커스 위치 식별 모델은,
    포커스 특징을 포함하는 상기 복수의 시점 별 제1 포커스 특징 행렬들을 출력하는 특징 추출 모델;
    상기 포커스 특징이 강조된 제2 포커스 특징 행렬들을 출력하는 특징 강조 모델; 및
    상기 복수의 노드들 각각에 대하여 상기 포커스가 위치할 확률을 출력하는 특징 비교 모델;을 포함하고,
    상기 포커스 특징은,
    상기 복수의 사용자 인터페이스 요소들로부터 획득되는 상기 포커스의 위치와 관련된 특징을 포함하는, 방법.
  10. 제9항에 있어서,
    상기 특징 추출 모델은,
    상기 복수의 시점 별 애플리케이션 화면들을 입력으로 하여 각각으로부터 상기 포커스 특징을 추출하고,
    상기 포커스 특징을 상기 포커스 특징이 획득된 사용자 애플리케이션 요소에 대응하는 노드에 매핑하여 상기 복수의 시점 별 제1 포커스 특징 행렬들을 출력하도록 학습된 모델인, 방법.
  11. 제9항 또는 제10항에 있어서,
    상기 특징 강조 모델은,
    상기 복수의 시점 중 상기 마지막 시점을 제외한 시점 별 제1 포커스 특징 행렬 및 상기 복수의 시점 중 상기 마지막 시점을 제외한 시점에서 상기 마지막 시점까지 수행된 적어도 하나의 프리미티브 액션에 대한 상기 사용자 인터페이스 맵을 입력으로 하여 적어도 하나의 변환 제1 포커스 특징 행렬을 생성하고,
    상기 적어도 하나의 변환 제1 포커스 특징 행렬 및 상기 마지막 시점의 제1 포커스 특징 행렬을 비교하여 상기 제2 포커스 특징 행렬을 출력하도록 학습된 모델인, 방법.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 특징 비교 모델은,
    상기 마지막 시점의 제1 포커스 특징 행렬 및 상기 제2 포커스 특징 행렬을 입력으로 하여 상기 복수의 노드들 각각에 대하여 상기 포커스가 위치할 확률을 출력하도록 학습된 모델인, 방법.
  13. 제8항 내지 제 12항 중 어느 한 항에 있어서,
    상기 비전 기반 포커스 위치 식별 모델은,
    상기 복수의 시점 별 애플리케이션 화면들 및 상기 마지막 시점 이전에 수행된 적어도 하나의 프리미티브 액션을 입력으로 하여 상기 마지막 시점의 애플리케이션 화면에 포함된 복수의 영역들 각각에 대하여 상기 포커스가 위치할 확률을 출력하도록 학습된 모델인, 방법.
  14. 애플리케이션 화면(510)을 분석하는 전자 장치(2000)에 있어서,
    적어도 하나의 명령어(instruction)를 저장하는 메모리(2300); 및
    상기 메모리(2300)에 저장된 적어도 하나의 명령어를 실행하는 적어도 하나의 프로세서(2400);를 포함하며,
    상기 적어도 하나의 프로세서(2400)는,
    상기 애플리케이션 화면(510)에 포함된 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대한 복수의 링크(link)들을 생성하고,
    상기 복수의 링크들에 기초하여 상기 애플리케이션 화면(510)을 탐색하기 위한 사용자 입력인 적어도 하나의 프리미티브(Primitive) 액션(340) 각각에 대한 사용자 인터페이스 맵(450)을 생성하고,
    상기 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3) 중 사용자의 상호 작용 대상이 되는 사용자 인터페이스 요소를 나타내는 포커스의 위치(460-1, 460-2)를 식별하며,
    상기 사용자 인터페이스 맵(450)은,
    상기 적어도 하나의 프리미티브 액션(340)에 의해 상기 포커스의 위치가 상기복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3) 사이를 이동하는 경로를 포함하는, 전자 장치.
  15. 제14항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 애플리케이션 화면에 기초하여 상기 복수의 사용자 인터페이스 요소들을 식별하고,
    상기 복수의 사용자 인터페이스 요소들에 대응하는 복수의 노드들을 생성하고,
    상기 복수의 노드들의 노드 특징에 기초하여 상기 복수의 링크들을 생성하고,
    상기 노드 특징은,
    상기 복수의 사용자 인터페이스 요소들의 크기, 위치, 컨텐츠, 이미지, 이름 및 계층에 관한 특징 중 적어도 하나를 포함하는, 전자 장치.
  16. 제14항 또는 제15항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 복수의 링크들 각각에 대하여 상기 적어도 하나의 프리미티브 액션을 매핑하고,
    상기 복수의 링크들 각각에 어떠한 프리미티브 액션이 매핑 되었는지에 기초하여 상기 사용자 인터페이스 맵을 생성하는, 전자 장치.
  17. 제14항 내지 제16항 중 어느 한 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 적어도 하나의 프리미티브 액션이 수행된 시점을 기준으로 구분되는 복수의 시점의 애플리케이션 화면들 및 상기 복수의 시점 중 마지막 시점 이전에 수행된 적어도 하나의 프리미티브 액션에 기초하여 상기 마지막 시점의 애플리케이션 화면에서 상기 포커스의 위치를 식별하는, 전자 장치.
  18. 제14항 내지 제17항 중 어느 한 항에 있어서,
    통신 인터페이스(2200);를 더 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 통신 인터페이스를 통해 상기 애플리케이션 화면을 외부 전자 장치로부터 수신하고,
    상기 통신 인터페이스를 통해 상기 사용자 인터페이스 맵 및 상기 포커스의 위치를 중 적어도 하나를 외부 전자 장치로 전송하는, 전자 장치.
  19. 제14항 내지 제18항 중 어느 한 항에 있어서,
    디스플레이(2100);를 더 포함하고,
    상기 애플리케이션 화면은,
    어플리케이션 프로그램 인터페이스가 제공되지 않는 서드 파티(third party) 애플리케이션의 실행 화면으로 상기 디스플레이에 표시되는, 전자 장치.
  20. 제1항 내지 제13항 중 어느 한 항의 방법을 컴퓨터에서 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
KR1020220121152A 2021-12-29 2022-09-23 애플리케이션 화면을 분석하는 전자 장치 및 그 동작 방법 KR20230101686A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2022/020494 WO2023128424A1 (ko) 2021-12-29 2022-12-15 애플리케이션 화면을 분석하는 전자 장치 및 그 동작 방법
US18/146,592 US20230205556A1 (en) 2021-12-29 2022-12-27 Method and electronic device for analyzing application screen

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210191653 2021-12-29
KR1020210191653 2021-12-29

Publications (1)

Publication Number Publication Date
KR20230101686A true KR20230101686A (ko) 2023-07-06

Family

ID=87185458

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220121152A KR20230101686A (ko) 2021-12-29 2022-09-23 애플리케이션 화면을 분석하는 전자 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR20230101686A (ko)

Similar Documents

Publication Publication Date Title
US11176423B2 (en) Edge-based adaptive machine learning for object recognition
US11568245B2 (en) Apparatus related to metric-learning-based data classification and method thereof
US11972569B2 (en) Segmenting objects in digital images utilizing a multi-object segmentation model framework
Cheng et al. ImageSpirit: Verbal guided image parsing
KR102542788B1 (ko) 전자장치, 그 제어방법 및 컴퓨터프로그램제품
CN112789591A (zh) 自动内容编辑器
JP2018200685A (ja) 完全教師あり学習用のデータセットの形成
US10762678B2 (en) Representing an immersive content feed using extended reality based on relevancy
JP2019008778A (ja) 画像の領域のキャプション付加
CN109918513B (zh) 图像处理方法、装置、服务器及存储介质
US9495426B2 (en) Techniques for interactive decision trees
US11934953B2 (en) Image detection apparatus and operation method thereof
US20180350250A1 (en) Network terminal-based learning display device
JP7242994B2 (ja) ビデオイベント識別方法、装置、電子デバイス及び記憶媒体
US11184670B2 (en) Display apparatus and control method thereof
US20220045776A1 (en) Computing device and operating method therefor
JP2022078310A (ja) 画像分類モデル生成方法、装置、電子機器、記憶媒体、コンピュータプログラム、路側装置およびクラウド制御プラットフォーム
JP5890340B2 (ja) 画像分類装置及び画像分類プログラム
US10318528B2 (en) Query response using mapping to parameterized report
KR20230101686A (ko) 애플리케이션 화면을 분석하는 전자 장치 및 그 동작 방법
US20230205556A1 (en) Method and electronic device for analyzing application screen
Salehin et al. Video summarization using line segments, angles and conic parts
KR20220026426A (ko) 비디오 품질 향상 방법 및 장치
KR20220168972A (ko) 애플리케이션 화면을 탐색하는 전자 장치 및 그 동작 방법
US20220404956A1 (en) Method and electronic device for navigating application screen