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

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

Info

Publication number
WO2023128424A1
WO2023128424A1 PCT/KR2022/020494 KR2022020494W WO2023128424A1 WO 2023128424 A1 WO2023128424 A1 WO 2023128424A1 KR 2022020494 W KR2022020494 W KR 2022020494W WO 2023128424 A1 WO2023128424 A1 WO 2023128424A1
Authority
WO
WIPO (PCT)
Prior art keywords
user interface
focus
electronic device
application screen
links
Prior art date
Application number
PCT/KR2022/020494
Other languages
English (en)
French (fr)
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
Priority claimed from KR1020220121152A external-priority patent/KR20230101686A/ko
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to US18/146,592 priority Critical patent/US20230205556A1/en
Publication of WO2023128424A1 publication Critical patent/WO2023128424A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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
    • 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
    • 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

Definitions

  • the present disclosure relates to an electronic device for analyzing an application screen and an operating method thereof.
  • Examples of various electronic devices including displays include TVs, signage boards, kiosks, and the like.
  • Various applications may be displayed in an electronic device including a display.
  • a user of an electronic device may search an application screen to receive a specific function or service of an application desired by the user. Searching of application screens may be performed based on a combination of primitive actions.
  • An aspect of the present disclosure is to address at least the problems and/or disadvantages noted above and provide at least the advantages described below. Accordingly, one aspect of the present disclosure provides an electronic device for analyzing an application screen and a method for operating the electronic device.
  • a method of analyzing an application screen may include generating a plurality of links to a plurality of user interface elements included in the application screen.
  • a method of analyzing a screen in an application includes generating a user interface map for each of at least one primitive action that is a user input for navigating an application screen based on a plurality of links, and a plurality of The method may include identifying a focus position indicating a user interface element that is a user interaction target among user interface elements.
  • the user interface map may include a path along which a focus position moves between a plurality of user interface elements by at least one primitive action.
  • an electronic device includes a memory for storing at least one instruction and at least one processor for executing the at least one instruction stored in the memory.
  • at least one processor may create a plurality of links to a plurality of user interface elements included in the application screen.
  • at least one processor may generate a user interface map for each of at least one primitive action that is a user input for searching an application screen based on a plurality of links.
  • at least one processor may identify a focus position indicating a user interface element that is a user interaction target among a plurality of user interface elements.
  • the user interface map may include a path along which a focus position moves between a plurality of user interface elements by at least one primitive action.
  • a computer readable recording medium having a computer program for performing at least one of the disclosed methods of analyzing an application screen on a computer is provided.
  • FIG. 1 is a diagram for explaining a method for an electronic device to search an application screen according to an embodiment of the present disclosure.
  • FIG. 2 is a flowchart illustrating a method of analyzing an application screen by an electronic device according to an embodiment of the present disclosure.
  • 3A is a diagram for explaining applications and sources related to control of an electronic device according to an embodiment of the present disclosure.
  • FIG. 3B is a diagram for explaining an operation in which an electronic device controls the applications and sources described in FIG. 3A based on a primitive action.
  • 4A and 4B are diagrams for explaining a control operation of an electronic device according to various embodiments of the present disclosure.
  • 5A, 5B, and 5C are diagrams for explaining an operation of generating an edge by an electronic device using an edge generator according to various embodiments of the present disclosure.
  • FIG. 6 is a diagram for explaining an operation of generating a user interface map using an edge labeler by an electronic device according to an embodiment of the present disclosure.
  • FIGS. 7A, 7B, and 7C are diagrams for explaining an operation of identifying a focus position by using a focus position estimator in an electronic device according to various embodiments of the present disclosure.
  • 8a, 8b, 8c, and 8d are diagrams for explaining a method of analyzing an application screen by an electronic device according to various embodiments of the present disclosure.
  • FIG. 9 is a block diagram for explaining the configuration of an electronic device according to an embodiment of the present disclosure.
  • FIG. 10 is a block diagram for explaining the configuration of a server according to an embodiment of the present disclosure.
  • the expression “at least one of a, b, or c” means “a”, “b”, “c”, “a and b”, “a and c”, “b and c”, “a, b” and c”, or variations thereof.
  • one component when one component is referred to as “connected” or “connected” to another component, one component may be directly connected or directly connected to another component, but in particular the opposite As long as there is no description, it should be understood that they may be connected or connected via another component in the middle.
  • components expressed as ' ⁇ unit (unit)', 'module', etc. are two or more components combined into one component, or one component is divided into two components for each more subdivided function. It may be further differentiated.
  • each of the components to be described below may additionally perform some or all of the functions of other components in addition to its own main function, and some of the main functions of each component may be different from other components. Of course, it may be performed exclusively by a component.
  • 'model' and 'artificial intelligence model' may refer to a model set to perform a desired characteristic (or purpose) by being learned using a plurality of learning data by a learning algorithm.
  • learning algorithms include, but are not limited to, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning.
  • 'model' and 'artificial intelligence model' may be composed of a plurality of neural network layers.
  • Each of the plurality of neural network layers has a plurality of weight values, and a neural network operation may be performed through an operation between an operation result of a previous layer and a plurality of weight values.
  • a plurality of weights possessed by a plurality of neural network layers may be optimized by a learning result of an artificial intelligence model. For example, a plurality of weights may be updated so that a loss value or a cost value obtained from an artificial intelligence model is reduced or minimized during a learning process.
  • Examples of artificial intelligence models that include multiple neural network layers include a deep neural network (DNN), a convolutional neural network (CNN), a deep neural network (DNN), a recurrent neural network (RNN), and a restricted boltzmann machine (RBM). ), Deep Belief Network (DBN), Bidirectional Recurrent Deep Neural Network (BRDNN), Deep Q-Networks, etc., but are not necessarily limited thereto.
  • DNN deep neural network
  • CNN convolutional neural network
  • DNN deep neural network
  • RNN recurrent neural network
  • RBM restricted boltzmann machine
  • DBN Deep Belief Network
  • BBDNN Bidirectional Recurrent Deep Neural Network
  • Deep Q-Networks etc., but are not necessarily limited thereto.
  • a 'user interface (UI) element' may mean a virtual medium through which a specific function of an application is performed by interaction with a user, such as a user's selection on an application screen.
  • the user interface element may include at least one of an icon, image, text, and input field.
  • the user interface elements are not necessarily limited thereto, and may include all elements included in the application screen and capable of interacting with the user.
  • 'navigation' may refer to a process of accessing at least one of a specific function or a specific service provided by an application by interacting with a user interface element of an application screen.
  • a 'third party application' may refer to an application produced and distributed by a company other than a manufacturer of an electronic device running the application or an operating system (OS) of the electronic device.
  • the third party application may be an application installed inside the electronic device or an application installed on an external source connected to the electronic device (eg, a game console, a set-top box, etc.).
  • a 'primitive action' may mean a user input for searching an application screen.
  • the electronic device or an operating system of the electronic device may transmit a primitive action to the application to search the application screen.
  • a primitive action may be user input that may be provided to an application, rather than through an application program interface. Examples of primitive actions may include 'Move Up', 'Move Down', 'Move Left', 'Move Right', 'Go Back', 'Go Home', 'Select Click', etc., but are not limited thereto. , and may include all user input that can be provided to the application without going through an application program interface (API).
  • API application program interface
  • 'focus' may mean indicating an object (or region) interacting with a user in an application.
  • the focus When the focus is located on a specific user interface element, the user may interact with the focused user interface element.
  • the focused user interface element may include visual indications for the user to recognize that the focus is located on the user interface element.
  • 'link' may refer to at least one of a connection between different user interface elements or a connection of a user interface element to itself.
  • a 'User Interface Map' refers to information about how a plurality of user interface elements included in an application screen are connected and what primitive action is required to move the focus according to the connection. can mean
  • FIG. 1 is a diagram for explaining a method for an electronic device to search an application screen according to an embodiment of the present disclosure.
  • an electronic device 2000 may be a device that outputs at least one of an image or a moving image including a display.
  • the electronic device 2000 may include, but is not limited to, a smart TV, a smart phone, a signage board, a kiosk, an electronic blackboard, a tablet PC, a laptop PC, a framed display, and the like, and the electronic device 2000 ) may be implemented in various types or forms including a display.
  • the electronic device 2000 may search an application screen based on a user input.
  • a video application Y application is currently running, and a user input in the form of a voice signal “Show episode 7 of drama B in Y app” or at least one of a touch or a separate pointer manipulation B
  • a user input for selecting the thumbnail image 113 of episode 7 of a drama may be received.
  • the electronic device 2000 searches for application Y based on the received user input, and displays a playback screen 120 of episode 7 of drama B. can be displayed
  • applications executed in the electronic device 2000 may be classified into a system application directly controlled by the operating system of the electronic device and a third party application controlled by the operating system of the electronic device through an application program interface. .
  • the electronic device 2000 may request at least one of a specific function or service from a third party application through an application program interface, and the third party application may execute at least one of the specific function or service in response to the request.
  • an application program interface of a third party application may not be provided or may not be called by the electronic device 2000 .
  • the electronic device 2000 can only provide primitive actions to the electronic device and cannot directly request at least one of functions or services requestable through an application program interface to the third party application.
  • the electronic device 2000 may indirectly request at least one of the corresponding function or service from the third party application by searching the application screen based on the primitive action.
  • the third party application may indirectly execute at least one of the requested function or service by performing an operation corresponding to the primitive action provided from the electronic device 2000 .
  • the electronic device 2000 may search for an application based on a user interface map and a focus position.
  • the UI map may include a path through which a focus position moves between a plurality of UI elements by at least one primitive action.
  • application Y running in the electronic device 2000 of FIG. 1 is a third party application and an application program interface of the application Y is not provided to the OS of the electronic device 2000 .
  • the operating system of the electronic device 2000 In order for the operating system of the electronic device 2000 to receive at least one of the functions or services corresponding to “Show episode 7 of drama B in Y app” from the Y application, the Y application must be searched using only primitive actions.
  • the electronic device 2000 displays a 'thumbnail of episode 7 of drama B' based on a user interface map including a path where the current focus position is the 'original tab 111' and the focus position is moved by a primitive action. Searching of the Y application screen for selecting the image 113 may be planned.
  • the electronic device 2000 when the user input “Show me episode 7 of a drama B in the Y app” is received, the electronic device 2000 performs a corresponding primitive action “Move Down", “Move Right” and “Select Click” are provided to the third party application, and the third party application performs operations corresponding to the received primitive actions to display the playback screen 120 of the contents of Episode 7 of the B drama on the electronic device. (2000) can be provided.
  • the electronic device 2000 may create a plurality of links to a plurality of user interface elements included in an application screen.
  • the electronic device 2000 may generate a user interface map for at least one primitive action that is a user input for searching an application screen based on a plurality of links.
  • the electronic device 2000 may identify a focus position indicating a user interface element that is a user interaction target among a plurality of user interface elements.
  • the electronic device 2000 may create a user interface map, identify a location of focus in the application screen, and plan navigation of the application screen. Accordingly, the user can experience a better application use experience by receiving at least one of functions or services corresponding to user input even in an environment where an application program interface is not supported.
  • FIG. 2 is a flowchart illustrating a method of analyzing an application screen by an electronic device according to an embodiment of the present disclosure.
  • step S210 the electronic device 2000 creates a plurality of links to a plurality of user interface elements included in the application screen.
  • the application screen may include an execution screen of a third party application.
  • the application screen may include an execution screen of a third party application executed in the electronic device 2000 or an execution screen of a third party application received from at least one of an external electronic device.
  • the application screen may be a plurality of application screens for each view that are divided based on a time point at which at least one primitive action is performed.
  • the application screen includes an application screen of a first point of view, an application screen of a second point in time after the first primitive action is performed on the application screen of the first point of view, and a second primitive action on the application screen of the second point of view. It may include an application screen of a third point of time, which is the next point of time that has been performed.
  • the application screens may be screens included in the application screen history.
  • the application screen history may include screens displayed on the electronic device 2000 or an external electronic device.
  • the application screen history may include application screens stored at predetermined time intervals and a plurality of application screens stored whenever a primitive action is performed.
  • At least one primitive action that is a criterion for distinguishing application screens for each of a plurality of viewpoints may be a primitive action included in a primitive action history.
  • the primitive action history may include information on a plurality of primitive actions previously performed.
  • the plurality of primitive actions previously performed may refer to primitive actions transmitted to a third party application.
  • the primitive action history may include information about which primitive actions have been performed and how a focus position has been moved by the primitive actions that have been performed.
  • the application screen history and the primitive action history may have a mapping relationship with each other. Specifically, each primitive action included in the primitive action history may be mapped to each application screen immediately after the corresponding primitive action included in the application screen history is performed.
  • the electronic device 2000 may identify a plurality of user interface elements based on the application screen.
  • the electronic device 2000 may create a plurality of nodes corresponding to the identified plurality of user interface elements.
  • the electronic device 2000 may create edges of a plurality of nodes corresponding to a plurality of links.
  • a plurality of nodes may mean vertices of graph data.
  • An edge may include a link to itself and links between different nodes, and links included in an edge may correspond to links to a plurality of user interface elements corresponding to a plurality of nodes.
  • the electronic device 2000 may extract node features used to generate links from a plurality of user interface elements.
  • the node characteristics may include at least one of characteristics related to sizes, contents, images, names, and hierarchies of a plurality of user interface elements.
  • the features included in the node features are not necessarily limited thereto, and may include all features that can be used to create a link from user interface elements.
  • the electronic device 2000 generates a plurality of links to a plurality of user interface elements by connecting the plurality of user interfaces identified based on the node characteristics to themselves or by connecting different user interface elements to each other.
  • step S220 the electronic device 2000 generates a user interface map for at least one primitive action that is a user input for searching an application screen based on a plurality of links.
  • the electronic device 2000 may generate a user interface map for each of at least one primitive action based on a plurality of links.
  • the electronic device 2000 maps at least one primitive action to each of a plurality of links, and focuses between a plurality of user interface elements by the primitive action based on which primitive action is mapped to each of the plurality of links. It is possible to create a user interface map that includes a path to move.
  • the electronic device 2000 maps a primitive action 'Move Down - Move UP' to a link connecting a user interface element 'original tab 110' and 'a drama episode 10 thumbnail image 112'. can do.
  • the electronic device 2000 moves the focus located on the 'original tab 110' to the 'thumbnail image 112 of episode 10 of drama A' by the primitive action 'Move Down', and the primitive action 'Move UP'.
  • a user interface map including a path for moving the focus from the 'A drama episode 10 thumbnail image 112' to the 'original tab 110' may be generated.
  • step S230 the electronic device 2000 identifies a focus position indicating a user interface element that is a user interaction target among a plurality of user interface elements.
  • the electronic device 2000 is configured to display application screens for each of a plurality of viewpoints classified based on a time point at which at least one primitive action is performed and at least one primitive action performed before a last time point among the plurality of viewpoints. Based on this, it is possible to identify the location of focus on the application screen of the last view.
  • the electronic device 2000 may extract a focus feature from a plurality of user interface elements included in an application screen.
  • the electronic device 2000 may identify a focus position on the application screen based on the extracted focus feature.
  • the focus feature may include a feature related to a focus position obtainable from a user interface.
  • the focus feature is a feature indicated by visual indications for the user to recognize that the focus is located on the user interface element, such as an emphasis on the border of the user interface element on which the focus is located or a color change of the user interface element.
  • 3A is a diagram for explaining applications and sources related to control of an electronic device according to an embodiment of the present disclosure.
  • the electronic device 2000 may obtain user input for controlling the electronic device 2000 (eg, screen control) from the user and execute a control command corresponding to the user input.
  • user input for controlling the electronic device 2000 (eg, screen control) from the user and execute a control command corresponding to the user input.
  • third party applications 310 may be executed in the electronic device 2000 .
  • the third party applications 310 executed in the electronic device 2000 may be an Over The Top (OTT) media service application, a video application, a game application, etc., but are not limited thereto.
  • OTT Over The Top
  • external sources 320 may be connected to and used in the electronic device 2000 .
  • the external sources 320 may include devices that are connected to the electronic device 2000 through at least one of wired and wireless methods and provide content to the electronic device 2000 .
  • the external sources 320 may provide content/media/applications to the electronic device 2000 .
  • the external sources 320 may be, but are not limited to, game consoles, set-top boxes, desktop PCs, laptop PCs, and the like.
  • the electronic device 2000 may control at least one of an arbitrary application or device according to embodiments of the present disclosure. Referring to FIG. 3B , a case in which a user of the electronic device 2000 generally controls at least one of an arbitrary application or device will be described.
  • FIG. 3B is a diagram for explaining an operation in which an electronic device controls the applications and sources described in FIG. 3A based on a primitive action.
  • an execution screen of a third party application in which an application program interface is not provided or called may be displayed in the electronic device 2000 .
  • the electronic device 2000 may control third party applications and sources based on primitive actions.
  • the electronic device 2000 may receive a primitive action from a user input device.
  • the user input device may include the remote controller 330 , and the electronic device 2000 may receive a primitive action from the remote controller 330 .
  • the remote controller 330 may include a plurality of buttons, and some of the plurality of buttons may correspond to each of the primitive actions 340 .
  • the user may input primitive actions to the electronic device 2000 through a plurality of buttons corresponding to the primitive actions 340 of the remote controller 330 .
  • the user input device is the remote controller 330, but is not necessarily limited thereto, and the user input device may include all devices capable of transmitting information indicating that a primitive action has been selected to the electronic device 2000. can
  • the electronic device 2000 may search for a third party application based on a primitive action received from a user input device.
  • the remote control Step 330 may transmit information indicating that the primitive action 'Move Down' has been selected to the electronic device 2000 .
  • the electronic device 2000 transmits the received primitive action 'Move Down' to application Y, and the application Y displays the second execution screen 360 to which the focus position is moved from the first execution screen 350 to the electronic device 2000. ) can be transmitted.
  • the second execution screen 360 may be displayed on the electronic device 2000 .
  • the third execution screen 370 is displayed on the electronic device 2000. can be displayed
  • the electronic device 2000 may include a plurality of third party application screens displayed on the electronic device 2000 in the application screen history.
  • the electronic device 2000 may include a plurality of primitive actions provided to the third party application in the primitive action history.
  • the electronic device 2000 may receive a user input for selecting a primitive action to control a third party application for which an application program interface is not provided or perform a search.
  • the application screen displayed on the electronic device 2000 and the primitive action received by the electronic device 2000 may be stored in the electronic device 2000 .
  • the application screen and primitive action may be used by the electronic device 2000 to generate a user interface map or to identify a location of focus.
  • 4A and 4B are diagrams for explaining a control operation of an electronic device according to various embodiments of the present disclosure.
  • the electronic device 2000 may perform a control operation (eg, application screen analysis) of the electronic device 2000 using various software modules. For example, the electronic device 2000 may generate the user interface map 450 using the user interface map generator 430 . Also, the electronic device 2000 may identify the focus positions 460 - 1 and 460 - 2 using the focus position estimator 440 .
  • the above-described software modules are only illustratively distinguished to explain the function of each module, but are not limited thereto.
  • the electronic device 2000 may acquire at least one of a plurality of application screens included in the application screen history 410 .
  • the application screen history 410 may be generated based on the application screen displayed on the electronic device 2000 or may be generated and received in an external electronic device and transmitted to the electronic device 2000 .
  • the electronic device 2000 generates a plurality of links to a plurality of user interface elements included in the application screen using the user interface map generator 430, and based on the plurality of links, the application screen A user interface map 450 for at least one primitive action used to search can be created.
  • the user interface map generator 430 may include an edge generator 431 and an edge labeler 432 .
  • the edge generator 431 may identify a plurality of user interface elements based on the application screen. Also, the edge generator 431 may generate a plurality of nodes corresponding to a plurality of user interface elements. Also, the edge generator 431 may generate a plurality of links based on node characteristics of a plurality of nodes.
  • the edge labeler 432 may map at least one primitive action to each of a plurality of links. In addition, the edge labeler 432 may generate the user interface map 450 for each of the at least one primitive action based on a mapping result of the at least one primitive action.
  • the electronic device 2000 uses the focus position estimator 440 to identify focus positions 460-1 and 460-2 indicating a user interface element selected by at least one primitive action on an application screen. can do.
  • the focus position estimator 440 includes application screens for each of a plurality of viewpoints classified based on a time point at which at least one primitive action is performed, and at least one primitive action performed before a last time point among the plurality of viewpoints. Based on this, it is possible to identify the focus positions 460-1 and 460-2 on the application screen of the last view.
  • a plurality of application screens for each viewpoint may be included in the application screen history 410 .
  • At least one primitive action performed may be included in the primitive action history 420 .
  • the focus position estimator 440 when the focus position estimator 440 uses a graph-based focus position identification model, the focus position may be identified using the user interface map 450 .
  • the focus position estimator 440 may identify the position of focus 460-1 based on the application screen history 410, the primitive action history 420, and the user interface map 450.
  • the focus position estimator 440 when the focus position estimator 440 uses the vision anomaly focus position identification model, the focus position may be identified without using the user interface map 450 . For example, as shown in FIG. 4B , the focus position estimator 440 may identify the focus position 460 - 2 based on the application screen history 410 and the primitive action history 420 .
  • 5A, 5B, and 5C are diagrams for explaining an operation of generating an edge by an electronic device using an edge generator according to various embodiments of the present disclosure. Referring to FIGS. 5A, 5B, and 5C, the operation of the edge generator 431 described in FIG. 4 will be described in more detail.
  • the edge generator 431 uses the object detector 520 to detect a plurality of user interface elements 511-1, 511-2, and 511-3 included in the application screen 510. ) may obtain the detected application screen 521 .
  • the object detector 520 includes a plurality of bounding boxes 521-1, 521-2, 521-3) can be created.
  • the object detector 520 may identify a plurality of user interface elements 511-1, 511-2, and 511-3 included in the application screen.
  • the object detector 520 generates a plurality of bounding boxes 521-1, 521-2, and 521-3 corresponding to the identified plurality of user interface elements 511-1, 511-2, and 511-3. can do. Since bounding boxes may be repeatedly generated for one user interface element, the object detector 520 may object merge the overlapping bounding boxes into a plurality of user interface elements 511-1, A plurality of bounding boxes 521-1, 521-2, and 521-3 corresponding to 511-2 and 511-3 may be created.
  • the object detector 520 is a model learned to detect a plurality of user interface elements 511-1, 511-2, and 511-3 included in the application screen 510 by taking the application screen as an input.
  • the object detector may include an optical character recognition (OCR) based artificial intelligence model, a region-based convolutional neural network (RCNN) based artificial intelligence model, etc., but is not necessarily limited thereto.
  • OCR optical character recognition
  • RCNN region-based convolutional neural network
  • the object detector 520 when there are a plurality of application screens, the object detector 520 identifies a plurality of user interface elements for each of the plurality of application screens, and sets a plurality of bounding boxes corresponding to the identified plurality of user interface elements. can create Accordingly, a plurality of application screens in which a plurality of user interface elements are detected may be generated.
  • the edge generator 431 generates a plurality of nodes 532-1, 532-2, Node data 531 including 532-3) may be generated.
  • the edge creator 431 generates a first user interface element 511-1 based on an application screen 521 including a plurality of bounding boxes 521-1, 521-2, and 521-3.
  • a corresponding first node 532-1 is created
  • a second node 532-2 corresponding to the second user interface element 511-2 is created
  • a third bounding box 522-3 is created.
  • a corresponding third node 532-3 may be created.
  • Each of the plurality of nodes 532-1, 532-2, and 532-3 is a plurality of user interface elements 511-1 that are the basis of the plurality of bounding boxes 521-1, 521-2, and 521-3. , 511-2, 511-3) may correspond to each.
  • the node data 531 may include information about characteristics of each of the plurality of nodes 532-1, 532-2, and 532-3. Also, the node data 531 may include an index value for distinguishing each of the plurality of nodes 532-1, 532-2, and 532-3. In this case, an index value of each of the plurality of nodes may correspond to an index value assigned to each of the plurality of user interface elements 511-1, 511-2, and 511-3 included in the application screen.
  • the edge creator 431 may generate a plurality of nodes corresponding to all bounding boxes included in each of the plurality of application screens.
  • the edge creator 431 may identify bounding boxes included in different application screens but corresponding to the same user interface elements. When nodes corresponding to the identified bounding boxes exist in node data, the edge generator 431 may not duplicate nodes. Accordingly, the edge creator 431 may create a node corresponding to a user interface element included in a specific application screen but not included in another application screen.
  • the edge generator 431 may generate a fully connected edge 541 for a plurality of nodes through a node connection step S540.
  • a fully connected edge 541 is a link between multiple user interface elements 542-1, 542-2 and 542-3 to itself and all links 543-1 and 543 between different user interface elements. -2, 543-3).
  • the edge generator 431 creates a plurality of links 562-1 for a plurality of user interface elements 511-1, 511-2, and 511-3 by using a link removal model 550.
  • a link removal model 550 e.g., 562-2, 562-3, 563-1, 563-3) can be created.
  • each of the plurality of links 562-1, 562-2, 562-3, 563-1, and 563-3 is a plurality of links 542-1, 542-2, 542-3, 543-1, 543-3) may correspond to each.
  • the edge generator 431 includes at least one of the plurality of links 542-1, 542-2, 542-3, 543-1, 543-2, and 543-3 included in the fully connected edge 541.
  • One link 543-2 may be removed.
  • the plurality of links 542-1, 542-2, 542-3, 543-1, and 543-3 for the plurality of user interface elements 511-1, 511-2, and 511-3 are Without being removed, the remaining links 543-2 may be removed.
  • the link removal model 550 takes the node characteristics of the plurality of nodes 532-1, 532-2, and 532-3 and the fully connected edge 541 for the plurality of nodes as inputs and completely Learned to generate a plurality of links 562-1, 562-2, 562-3, 563-1, and 563-3 by removing at least one link 542-1 included in the connection edge 541.
  • the plurality of links 562-1, 562-2, 562-3, 563-1, and 563-3 are edges ( 560) may be included.
  • the node characteristics include sizes of the plurality of user interface elements 511-1, 511-2, and 511-3 corresponding to the plurality of nodes 532-1, 532-2, and 532-3; It may include at least one of characteristics related to location, content, image, name, and hierarchy.
  • the edge generator 431 may use the object detector 520 to obtain node features. However, this is only an example, and the edge generator 431 may acquire node characteristics using a separate model learned to acquire node characteristics by taking an application screen as an input.
  • the edge generator 431 identifies the size and position of a bounding box corresponding to the plurality of user interface elements 511-1, 511-2, and 511-3 to determine the plurality of user interface elements 511 -1, 511-2, 511-3) can acquire characteristics related to the size and position.
  • the edge generator 431 classifies the plurality of user interface elements 511-1, 511-2, and 511-3 as icons, images, texts, or buttons, and specific for each of the classified categories. By assigning a layer, characteristics related to the layer of the plurality of user interface elements 511-1, 511-2, and 511-3 may be obtained.
  • the edge generator 431 extracts various features that can be obtained from the image to create a plurality of Features of images of the user interface elements 511-1, 511-2, and 511-3 may be acquired.
  • the edge generator 431 identifies whether the plurality of user interface elements 511-1, 511-2, and 511-3 are user interface elements related to content, and determines whether the plurality of user interface elements ( 511-1, 511-2, and 511-3) may acquire characteristics related to the content.
  • the edge generator 431 identifies the content of the text through character recognition and the like. Characteristics of texts of the plurality of user interface elements 511-1, 511-2, and 511-3 may be obtained.
  • edge generator 431 when the edge generator 431 obtains node characteristics from the plurality of user interface elements 511-1, 511-2, and 511-3, information on the obtained node characteristics is node data 531 ) can be stored.
  • the edge generator 431 omits an operation of removing at least one link included in the fully connected edge 541 using the link removal model 550 described in FIG. 5A, and provides a plurality of user interfaces.
  • a plurality of links 541-1, 541-2, 541-3, 542-1, 542-2, and 542-3 for elements 511-1, 511-2, and 511-3 may be created. .
  • the edge generator 431 removes the link. It may be decided not to use the model 550.
  • the edge generator 431 may determine not to use the link removal model 550 based on the computing power of the hardware of the electronic device 2000 .
  • a fully connected edge 541 is generated through a node connection step S540, and the fully connected edge 541 At least one link included in may not be removed.
  • the plurality of links 541-1, 541-2, 541-3, 542-1, 542-2, and 542-3 included in the fully connected edge 541 are a plurality of user interface elements 511-2. 1, 511-2, 511-3) may be a plurality of links.
  • the electronic device 2000 creates a fully connected edge 541 and removes or does not remove at least one link included in the fully connected edge 541, thereby creating a plurality of links.
  • analysis of the application screen may be performed in a manner optimized for the computing power of the hardware of the electronic device 2000 .
  • the edge generator 431 creates a plurality of links 572 and 574 for a plurality of user interface elements 511-1, 511-2 and 511-3 using a link generation model 570. , 576) can be generated.
  • the link generation model 570 takes the node characteristics and the plurality of nodes 532-1, 532-2, and 532-3 as inputs and generates a plurality of nodes 532-1, 532-2, 532- 3), hierarchical clustering 571 is performed, and in each step of the hierarchical clustering 571, nodes clustered in the same hierarchy are connected to form a plurality of user interface elements 511-1, 511-2, and 511. -3) may be a model learned to generate a plurality of links 572, 574, and 576. In this case, the plurality of links 572 , 574 , and 576 may be included in an edge 580 for the plurality of nodes 532 - 1 , 532 - 2 , and 532 - 3 .
  • hierarchical clustering may be performed in stages based on a similarity matrix of the link generation model 570 .
  • the similarity matrix may include similarities of a plurality of nodes (or a plurality of clusters) to other nodes (or a plurality of clusters) other than the node itself.
  • the similarity matrix may be calculated based on distances between feature vectors including node features of a plurality of nodes.
  • a distance between feature vectors may include, but is not limited to, a Euclidean distance, a statistical distance, a Minkowski distance, and the like.
  • the link creation model 570 may cluster a plurality of nodes having a similarity of a similarity matrix equal to or greater than a predetermined value in the same layer.
  • the link generation model 570 may generate a link by connecting nodes clustered in the same layer.
  • a hierarchical clustering process when different clusters to which a plurality of nodes belong are clustered in the same layer, at least one of a plurality of nodes belonging to each cluster belongs to another cluster. At least one of a plurality of nodes may be connected to each other. Whether a node among a plurality of nodes belonging to each cluster is connected to a node belonging to another cluster may be determined based on the degree of similarity between the nodes.
  • the link creation model 570 includes a plurality of first links representing the connection of the plurality of user interface elements 511-1, 511-2, and 511-3 to themselves. 572) can be created.
  • the link generation model 570 may perform clustering based on the first similarity matrix 573 .
  • the values of the elements of the first row and column 2 of the first similarity matrix 573 and the values of the elements of the second row and column 1 mean the degree of similarity between the first node 532-1 and the second node 532-2, and
  • the value of the component in column 3 and the value of the component in column 3, row 3 mean the similarity between the first node 532-1 and the third node 532-3, and the value of the component in row 2, column 3 and the value of the component in row 3, column 2
  • the value of the component may mean a degree of similarity between the second node 532-2 and the third node 532-3.
  • the link generation model 570 may cluster the first node 532 - 1 and the second node 532 - 2 having a similarity equal to or greater than a threshold value in the first similarity matrix 573 into the same layer.
  • the link generation model 570 may generate a second link 574 by connecting the first node 532-1 and the second node 532-2 clustered in the same layer.
  • the link generation model 570 may perform clustering based on the second similarity matrix 575 .
  • the values of the components in the first row and column 2 and the values of the components in the second row and column 1 of the second similarity matrix 575 are the clusters to which the first node 532-1 and the second node 532-2 belong and the third node 532 -3) can mean the degree of similarity between
  • the link generation model 570 may cluster a third node and a cluster to which the first node 532-1 and the second node 532-2 having a similarity equal to or greater than a threshold in the second similarity matrix 575 belong to the same layer.
  • the link creation model 570 connects the third node 532-3 with the cluster to which the first node 532-1 and the second node 532-2, which are clustered in the same layer, are included to form a third link 576 can create
  • the electronic device 2000 may perform hierarchical clustering in a bottom-up method to identify connectivity between a plurality of user interface elements and generate a plurality of links. Accordingly, unlike other clustering methods, the electronic device 2000 can learn the link generation model 570 without determining the number of clusters in advance. In addition, the computational cost required for clustering may be reduced compared to other clustering methods.
  • FIG. 6 is a diagram for explaining an operation of generating a user interface map using an edge labeler by an electronic device according to an embodiment of the present disclosure. Referring to FIG. 6, the operation of the edge labeler 432 described in FIG. 4 will be described in more detail.
  • the edge labeler 432 includes a plurality of links 611-1, 611-2, 611-3, 612-1, 612-2, 612-3) At least one primitive action may be mapped for each action.
  • the edge 610 may refer to an edge generated by the edge generator 431 .
  • the edge 610 may be one of the edge 560 of FIG. 5A, the edge 541 of FIG. 5B, and the edge 580 of FIG. 5C.
  • the edge labeler 432 performs a plurality of links 611-1, 611-2, 611-3, 612-1, 612- based on information on a plurality of previously performed primitive actions. 2, 612-3) At least one primitive action may be mapped to each.
  • the edge labeler 432 links a plurality of links 611-1, 611-2, 611-3, 612-1, At least one primitive action may be mapped to each of 612-2 and 612-3).
  • the edge labeler 432 controls the position of the focus located on the user interface element corresponding to node 0, based on information that there is no change.
  • the primitive actions 'Move Left' and 'Move Up' can be mapped to 1 link 611-1.
  • the edge labeler 432 sets the primitive based on information that the focus located on the user interface element corresponding to node 0 has moved to the user interface element corresponding to node 1 when the primitive action 'Move Right' is performed.
  • the action 'Move Right' may be mapped to the second link 612-1.
  • the edge labeler 432 is based on information that the focus located on the user interface element corresponding to node 1 moved to the focus located on the user interface element corresponding to node 0 when the primitive action 'Move Left' was performed.
  • the primitive action 'Move Left' can be mapped to the second link 612-1.
  • the edge labeler 432 is a plurality of links (611-1, 611-2, 611-3, 612-1, 612-2) based on the node characteristics of the plurality of nodes of the edge (610). , 612-3), at least one primitive action may be mapped to each.
  • the edge labeler 432 may identify positional relationship information of a plurality of user interface elements based on information about sizes and positions of user interface elements corresponding to a plurality of nodes.
  • the edge labeler 432 has at least a high possibility of being mapped to each of the plurality of links 611-1, 611-2, 611-3, 612-1, 612-2, and 612-3 based on the positional relationship information.
  • a single user interface element can be identified.
  • the edge labeler 432 may map the identified at least one user interface element to each of the plurality of links 611-1, 611-2, 611-3, 612-1, 612-2, and 612-3. there is.
  • the location relationship information may include information about which UI elements exist in a direction corresponding to a primitive action based on a specific UI element.
  • the edge labeler 432 may generate the user interface map 630 for each of the at least one primitive action based on the mapped result 631 of the at least one primitive action.
  • the edge labeler 432 is based on which primitive action is mapped for each of the plurality of links 611-1, 611-2, 611-3, 612-1, 612-2, and 612-3.
  • the user interface map 630 for each of the at least one primitive action may be generated.
  • the user interface map 630 includes a plurality of links 611-1, 611-2, 611-3, 612-1, 612-2, 612-3 whose focus is included in the edge 610. It may include information about which primitive action is required to move along . For example, the user interface map 630 uses a primitive action 'Move Left' or 'Move Move' to move the focus along the first link 611-1 based on the result 631 of mapping at least one primitive action. Information that UP' is required may be included.
  • user interface map 630 is mapped along a plurality of links 611-1, 611-2, 611-3, 612-1, 612-2, 612-3 by at least one primitive action.
  • Information about a direction in which the focus moves may be included. For example, in the user interface map 630, the focus moves from node 0 to node 1 by the primitive action 'Move Right' mapped to the second link, and the primitive action 'Move Left' mapped to the second link. may include information indicating that the focus moves from node #1 to node #0.
  • the user interface map 630 may generate adjacency matrices 632 for each of at least one primitive action.
  • a plurality of rows and a plurality of columns of the adjacency matrix may correspond to each of a plurality of nodes included in the user interface map 630 .
  • an element of the adjacency matrix may have a value of 0 or 1 generated by a one-hot encoding scheme.
  • each element of the adjacency matrix may mean whether or not it is possible to move from a node corresponding to a row of the element to a node corresponding to a column of the element by each primitive action. For example, if the element of row 1 of the adjacency matrix of the primitive action 'Move Right' is (0, 1, 0), then the focus located at node 0 by the primitive action 'Move Right' is It may mean information that moves to the first node without moving to the node.
  • a component of the adjacency matrix may have a value corresponding to a transition probability.
  • each component of the adjacency matrix may mean a probability of moving from a node corresponding to a row of the component to a node corresponding to a column of the component by each primitive action. For example, if the element of row 1 of the adjacency matrix of the primitive action 'Move Right' is (0.2, 0.7, 0.1), the focus located on node 0 by the primitive action 'Move Right' will remain on node 0. This may mean information that the probability is 20%, the probability of moving to node 1 is 70%, and the probability of moving to node 2 is 10%.
  • the edge labeler 432 may be a model trained to output adjacency matrices 632 for each primitive action based on the edge 610 as an input.
  • the edge labeler 432 may include an artificial intelligence model based on multi-head attention. In this case, parallel attention corresponding to each of the at least one primitive action may be performed, and an adjacency matrix 632 for each of the at least one primitive action may be generated based on an attention score generated by each parallel attention.
  • the edge labeler 432 may be trained using, as a training dataset, an edge data set in which at least one primitive action included in the primitive action history is mapped to a plurality of links.
  • FIGS. 7A, 7B, and 7C are diagrams for explaining an operation of identifying a focus position by using a focus position estimator in an electronic device according to various embodiments of the present disclosure. Referring to FIGS. 7A, 7B, and 7C, the operation of the focus position estimator 440 described in FIG. 4 will be described in detail.
  • the focus position estimator 440 may identify the focus position 731 using at least one of the graph-based focus position identification model 730 and the vision-based focus position identification model 740 .
  • the graph-based focus location identification model 730 and the vision-based focus location identification model 740 include a plurality of application screens 720 for each view, which are classified based on a time point at which at least one primitive action is performed, and at least one performed Based on the primitive action 710, information about the focus position may be generated.
  • the plurality of application screens 720 for each viewpoint may be application screens included in the application screen history.
  • at least one performed primitive action 710 may be a primitive action included in the primitive action history.
  • the focus position estimator 440 may identify a focus position 731 using a graph-based focus position identification model 730 .
  • the graph-based focus location identification model 730 includes a feature extraction model 750 that outputs first focus feature matrices 751, 752, and 753 for each of a plurality of viewpoints including focus features, and a second focus feature in which focus features are emphasized.
  • a feature emphasizing model 770 outputting matrices 771 and 772 and a feature comparison model 780 outputting a focus location probability 732-2 for each of a plurality of nodes may be included.
  • the feature extraction model 750 may extract a focus feature from a plurality of user interface elements included in each of the application screens 720 for each of a plurality of viewpoints.
  • the focus feature may include a feature related to a focus position obtained from a plurality of user interface elements.
  • the focus feature may be visual indications for a user to recognize that a focused user interface element is focused on a corresponding user interface element.
  • the feature extraction model 750 maps the extracted focus features to nodes corresponding to a plurality of user interface elements included in the application screen to output first focus feature matrices 751, 752, and 753 for each view.
  • the feature extraction model 750 extracts a focus feature based on the application screen 521 in which a plurality of user interface elements generated by the object detector 520 of FIGS. 5A, 5B, and 5C are detected; Node Generation Step ( S530 ) Based on the generated node data 531 , first focus feature matrices 751 , 752 , and 753 for each view may be generated.
  • the feature extraction model 750 receives a plurality of view-specific application screens 721, 722, and 723 as inputs, extracts a focus feature from each of them, and assigns the focus feature to the user application element from which the focus feature was acquired. It may be a model learned to output first focus feature matrices 751, 752, and 753 for each view by mapping to a corresponding node. In this case, the feature extraction model 750 may extract a focus feature from a plurality of user interface elements included in the application screens 721 , 722 , and 723 for each view through the same learned weight.
  • the feature extraction model 750 may include ResNet, EfficientNet, and MobileNet-based artificial intelligence models, but is not necessarily limited thereto.
  • the feature emphasis model 770 includes first focus feature matrices 751 and 752 for each view excluding the last view among the plurality of views and at least one primitive action performed from the view excluding the last view to the last view among the plurality of views ( At least one transformation first focus feature matrix 761 and 762 may be generated based on the user interface map for 710).
  • the feature emphasis model 770 propagates focus features of the first focus feature matrices 751 and 752 for each view except for the last view among the plurality of views through the feature propagation step S760 to other nodes.
  • transformed first focus feature matrices 761 and 762 may be generated.
  • focus characteristics may be propagated based on the user interface map for the at least one primitive action 710 performed. Accordingly, a focus feature mapped to a node corresponding to a user interface element focused on the application screen 721 of the first view and the application screen 722 of the second view is focused on the application screen 723 of the third view. may be propagated to a node corresponding to a user interface element where is located.
  • the user interface map for the at least one primitive action 710 performed may be one of the adjacency matrices 632 for each of the at least one primitive action generated by the edge labeler 432 of FIG. 6 .
  • focus features may be propagated to other nodes through a matrix multiplication operation.
  • the feature emphasis model 770 includes an adjacency matrix 713 for a primitive action 'Move Left' 711 performed between the first and second views in the focus feature matrix 751 of the first view, and
  • the transformation first focus feature matrix 761 of the first view to which the node features are propagated may be generated by multiplying the adjacency matrix 714 for the primitive action 'Move Down' performed between the second and third views.
  • the feature emphasizing model 770 multiplies the focus feature matrix 752 of the second view by the adjacency matrix 714 for the primitive action 'Move Down' performed between the second and third views.
  • a transform first focus feature matrix 762 may be generated.
  • the feature enhancement model 770 may output a second focus feature matrix 771 in which a focus feature is emphasized based on the transformed first focus feature matrices 761 and 762 and the focus feature matrix 753 of the third view.
  • the feature emphasizing model 770 may generate focus features mapped to a plurality of nodes included in the transformed first focus feature matrices 761 and 762 through the feature emphasizing step S764 and the focus of the third view. By comparing focus features mapped to a plurality of nodes included in the feature matrix 753, a focus feature mapped to a node corresponding to a user interface element focused on the application screen 723 of the third view may be emphasized. . In this way, the feature emphasis model 770 uses temporal focus feature attention to select non-focused user interface elements among a plurality of user interface elements included in the application screen 723 of the third view.
  • a second focus feature matrix 771 may be generated in which a value of a focus feature mapped to nodes corresponding to is decreased and a value of a focus feature mapped to a node corresponding to a focused user interface element is increased.
  • the feature emphasis model 770 includes the first focus feature matrices 751 and 752 for each view excluding the last view among the plurality of views and at least the first focus feature matrices 751 and 752 performed from the time point excluding the last view to the last view among the plurality of views.
  • At least one transformation first focus feature matrix 761 and 762 is generated by taking the user interface map for one primitive action 710 as an input, and the at least one transformation first focus feature matrix 761 and 762 and finally It may be a model trained to output a second focus feature matrix 771 by comparing the first focus feature matrix 753 of the viewpoint.
  • the feature emphasis model 770 may include an artificial intelligence model based on an attention mechanism.
  • the feature comparison model 780 may identify the focus position 731 based on the focus feature matrix 751 of the third view and the second focus feature matrix 771 .
  • one of the focus feature matrix 751 of the third view and the second focus feature matrix 771 is input to the feature comparison model 780, or the focus feature matrix 751 of the third view and the second focus feature matrix 751 are input to the feature comparison model 780.
  • the focus feature matrix 771 may be aggregated and input to the feature comparison model 780 .
  • the feature comparison model 780 compares focus features mapped to each of a plurality of nodes with each other, and the focus mapped to a node corresponding to a user interface element focused on the application screen 723 of the third view. features can be highlighted. In this way, the feature comparison model 780 is a node corresponding to a focused user interface element among a plurality of user interface elements included in the application screen 723 at three viewpoints through spatial focus feature attention. A focus feature 732-1 in which the focus feature mapped to is emphasized may be obtained.
  • the feature comparison model 780 may identify a probability 732-2 that a focus is located on each of a plurality of nodes based on the highlighted focus feature 732-1. Accordingly, the focus position estimator 440 is a user interface element corresponding to the node having the highest probability based on the probability 732-2 that the focus of each of the plurality of nodes identified by the feature comparison model 780 is located. It can be identified that the focus of the application screen 723 of the third viewpoint is located on .
  • the feature comparison model 780 may be a model learned to output a probability that a focus is located on each of a plurality of nodes by taking the first focus feature matrix and the second focus feature matrix as inputs.
  • the feature comparison model 780 is a graph data-based artificial intelligence such as a graph neural network (GNN), a graph convolutional network (GCN), or a graph attentional network (GAN).
  • GNN graph neural network
  • GCN graph convolutional network
  • GAN graph attentional network
  • Intelligence models may be included.
  • the adjacency matrices 632 for each of the at least one primitive action generated by the edge labeler 432 of FIG. 6 may be input to the feature comparison model 780 as an adjacency matrix required for neural network operation.
  • the graph-based focus location identification model 730 does not perform temporal focus feature emphasis using the feature emphasis model 770, but spatial focus feature emphasis using the feature comparison model 780. 731) can be identified.
  • the electronic device 2000 may more accurately identify the focus position by performing temporal focus feature emphasis and spatial focus feature emphasis on the focus feature acquired from the application screen for each of a plurality of viewpoints. there is.
  • the focus position estimator 440 may identify a focus position 741 using a vision-based focus position identification model 740 .
  • the vision-based focus location identification model 740 uses a plurality of application screens 720 for each view and at least one primitive action 710 performed as inputs, and uses a plurality of areas included in the application screen 723 of the third view. For each of the , it is possible to output the probability that the focus is located.
  • a plurality of application screens 720 for each viewpoint input to the vision-based focus position identification model 740 and at least one primitive action 710 performed are input together with application screens and primitive actions that have a mapping relationship.
  • the application screen 722 of the second viewpoint and the primitive action 'Move Left' 711 performed immediately before the second viewpoint may be input as a pair to the vision-based focus position identification model 740 .
  • the position of focus 741 may be identified as one of a plurality of bounding boxes included in the application screen 742-1 at the third point in time when the bounding box is created.
  • the vision-based focus location identification model 740 generates a bounding box corresponding to a plurality of user interface elements included in the application screen 723 of the third view, and for each of the plurality of created bounding boxes.
  • a probability 742-2 where the focus is located may be identified.
  • the focus position 741 may be identified as one of a plurality of areas of the application screen 743-1 of the third view divided into predetermined sizes.
  • the vision-based focus location identification model 740 divides the application screen 723 of the third viewpoint into preset sizes, and calculates a probability 743-2 of focus position for each of the divided regions. can be identified.
  • the focus position estimator 440 selects a bounding box or division having the highest probability based on information about the probability 742-2 and 743-2 where the focus identified by the vision-based focus position identification model 740 is located. It may be identified that the focus of the application screen 723 of the third viewpoint is located in the area.
  • the focus position estimator 440 is a model learned to output a probability that a focus is located in each of a plurality of regions by taking a plurality of application screens for each view and at least one primitive action performed as inputs.
  • the focus position estimator 440 may include, but is not limited to, a convolutional neural network (CNN) and a vision transformer based artificial intelligence model.
  • the electronic device 2000 does not create a user interface map based on graph data, and determines the location of the focus using only the application screen for each view and at least one primitive action performed. can be identified.
  • the focus position estimator 440 may identify the focus position using a graph-based focus position identification model 730 and a vision-based focus position identification model 740 .
  • the location of the focus may be identified as at least one of a node where the focus is located, a bounding box where the focus is located, and a divided area where the focus is located.
  • the focus position estimator 440 uses a plurality of position converters 791, 792, and 793 to output information from the graph-based focus position identification model 730 and the vision-based focus position identification model 740. can be converted into information about other dimensions.
  • the focus position estimator 440 converts information converted to another dimension and information generated from the graph-based focus position identification model 730 or the vision-based focus position identification model 740 into a plurality of wise ensemble layers 794, 796, and 798 ) can be combined through at least one of
  • the focus position estimator 440 obtains an emphasized focus feature 795-1 based on the combined information, and focuses on each of a plurality of nodes based on the obtained focus feature 795-1.
  • Information on the probability 795-2 of being located may be generated.
  • the focus position estimator 440 determines the probability that the focus is located on each of the plurality of bounding boxes included in the application screen 797-1 at the third point in time when the bounding box is generated based on the combined information.
  • Information on (797-2) can be generated.
  • the focus position estimator 440 may generate information about a probability that a focus is located on each of a plurality of areas of the application screen 799-1 of the third view in the combined information.
  • the focus position estimator 440 includes a focused node, a focused bounding box, and divided areas where the focus is located based on the generated information 795-2, 797-2, and 799-2. At least one of them can be identified.
  • the focus position estimator 440 transmits information about a probability that a focus is located on each of a plurality of nodes output from the graph-based position identification model 730 through a graph-position converter 792 to a plurality of users. It can be converted into information about the probability that the focus will be located on each of the bounding boxes corresponding to the interface elements. And, the focus position estimator 440 uses the information output from the Graph-Position Converter 792 through the Position-wise Ensemble Layer 796 and each of the plurality of bounding boxes output from the vision-based focus position identification model 740.
  • the focus position estimator 440 determines the application screen 723 of the third view in the bounding box having the highest probability based on the information on the probability that the focus will be located (ie, generated information) 797-2. It can be identified as being in focus.
  • the electronic device 2000 can identify the focus position by combining information for identifying the focus position in different dimensions, thereby more accurately identifying the focus position.
  • 8a, 8b, 8c, and 8d are diagrams for explaining a method of analyzing an application screen by an electronic device according to various embodiments of the present disclosure.
  • an application may be executed in the first electronic device 1100 and displayed on the first electronic device 1100 .
  • An application executed in the first electronic device 1100 may be a third party application for which an application program interface is not provided.
  • the application screen 1110 may be analyzed on the second electronic device 1200 than the application screen to be analyzed on the first electronic device 1100 .
  • the first electronic device 1100 is an electronic device with low hardware computing performance (eg, TV, signage, etc.)
  • the second electronic device 1200 is an electronic device with high hardware computing performance (eg, TV, signage, etc.)
  • it may be a laptop computer, a smart phone, etc.).
  • the application screen 1110 may be analyzed in the second electronic device 1200 instead of the first electronic device 1100 where the application is executed.
  • the first electronic device 1100 may copy and transmit the application screen 1110 to the second electronic device 1200 .
  • the second electronic device 1200 may display the received application screen.
  • the application screen displayed on the second electronic device 1200 or received from the first electronic device may be stored in the duplicated application screen history 1212 .
  • a primitive action may be input to the first electronic device 1100 in order to control an application executed on the first electronic device 1100 or search an application screen.
  • the primitive action may be directly transmitted to the first electronic device 1100 from the user input device.
  • the first electronic device 1100 may transmit the received primitive action to the second electronic device 1200 .
  • the primitive action may be transmitted from the user input device to the second electronic device 1200 .
  • the second electronic device 1200 may transmit the received primitive action to the first electronic device 1100 .
  • the primitive action transmitted to the second electronic device 1200 may be stored in the primitive action history 1220 .
  • the second electronic device 1200 may include a user interface map generator 1230 and a focus position estimator 1240 .
  • the second electronic device 1200 may analyze application screens included in the copied application screen history 1212 by using the UI map generator 1230 and the focus position estimator 1240 .
  • the second electronic device 1200 may acquire at least one of a plurality of application screens included in the duplicated application screen history 1212 .
  • the second electronic device 1200 may generate a user interface map 1250 using the user interface map generator 1230 .
  • the electronic device 2000 may identify the focus position 1260 using the focus position estimator 1240 .
  • the second electronic device 1200 analyzes the copied application screen using the user interface map generator 1230 and the focus position estimator 1240 in FIGS.
  • the electronic device 2000 uses the user interface map generator 430 and the focus position estimator 440 to generate an application screen. Since it is the same as the operation of analyzing , redundant descriptions are omitted.
  • an application may be executed in the second electronic device 1200 and displayed on the second electronic device 1100 .
  • An application executed in the second electronic device 1200 may be a third party application for which an application program interface is not provided.
  • the computing performance of the hardware of the second electronic device 1200 on which the application is executed is high, so that the second electronic device 1200, not another electronic device capable of communicating with the second electronic device 1200, directly displays the application screen. Analyzing (1110) may be more accurate and faster. In this case, the application screen 1110 may be analyzed in the second electronic device 1200 .
  • the second electronic device 1200 stores an application screen 1210 provided from an application being executed in the application screen history 1211, or stores an application screen displayed on the second electronic device 1200 as an application screen. It can be stored in the history 1211.
  • the second electronic device 1200 may receive a primitive action from a user input device and transmit the received primitive action to an application being executed.
  • the second electronic device 1200 may store the primitive action transmitted to the application in the primitive action history 1220 .
  • the second electronic device 1200 may analyze application screens included in the application screen history 1211 by using the UI map generator 1230 and the focus position estimator 1240 .
  • the second electronic device 1200 may acquire at least one of a plurality of application screens included in the application screen history 1211 .
  • the second electronic device 1200 may generate a user interface map 1250 using the user interface map generator 1230 .
  • the electronic device 2000 may identify the focus position 1260 using the focus position estimator 1240 .
  • the second electronic device 1200 analyzes the application screen using the user interface map generator 1230 and the focus position estimator 1240. Referring to FIGS. 1 to 7 , the electronic device 2000 uses the user interface map generator 430 ) and the operation of analyzing the application screen using the focus position estimator 440, duplicate descriptions will be omitted.
  • an application may be executed in the first electronic device 1100 and displayed on the first electronic device 1100 .
  • An application executed in the first electronic device 1100 may be a third party application for which an application program interface is not provided.
  • the server 3000 includes hardware with high computing performance to process large-capacity calculations. Accordingly, the application screen 1110 may be analyzed in the server 3000 instead of the first electronic device 1100 in order to more quickly and accurately analyze the application screen.
  • the server 3000 may receive an application screen 1110 and a primitive action 1120 from the first electronic device 1100 .
  • the server 3000 may store the received application screen 1110 in the application screen history 3010 and store the received primitive action 1120 in the primitive action history 3020 .
  • the server 3000 may receive an application screen history 3010 and a primitive action history 3020 from the first electronic device 1100 .
  • the application screen history 3010 and the primitive action history 3020 may be generated in the first electronic device 1100 and transmitted to the server 3000 .
  • the server 3000 may analyze application screens included in the application screen history 3010 using the UI map generator 3030 and the focus position estimator 3040 .
  • the server 3000 may acquire at least one of a plurality of application screens included in the application screen history 3030 .
  • the server 3000 may generate the user interface map 3050 using the user interface map generator 3030 .
  • the server 3000 may identify the focus position 3060 using the focus position estimator 3040 .
  • the server 3000 analyzes the application screen using the user interface map generator 3030 and the focus position estimator 3040 in FIGS. 1, 2, 3a, 3b, 4a, 4b, 5a, Operation of the electronic device 2000 described in FIGS. 5B, 5C, 6, 7A, 7B, and 7C analyzing the application screen using the user interface map generator 430 and the focus position estimator 440 Since it is the same as, redundant description will be omitted.
  • an application may be executed in the second electronic device 1200 and displayed on the second electronic device 1100 .
  • An application executed in the second electronic device 1200 may be a third party application for which an application program interface is not provided.
  • both the second electronic device 1200 where the application is executed and the third electronic device 1300 capable of communicating with the second electronic device 1200 have low hardware specifications to display the application screen 1210 more accurately and quickly.
  • the application screen 1210 may be analyzed in parallel in the second electronic device 1200 and the third electronic device 1300 .
  • the second electronic device 1200 may transmit at least one application screen stored in the application screen history 1211 to the third electronic device 1300 . Also, the second electronic device 1200 may transmit at least one primitive action stored in the primitive action history 1220 to the third electronic device 1300 .
  • the second electronic device 1200 may generate the first user interface map 1251 using the user interface map generator 1230 .
  • the third electronic device 1300 may generate a second user interface map 1251 using the user interface map generator 1330 .
  • the first user interface map 1251 or the second user interface map 1252 may be provided to another electronic device that does not generate a user interface map.
  • the second electronic device 1200 creates the first user interface map 1251 and the third electronic device 1300 does not create the second user interface map 1351
  • the second electronic device The first user interface map 1251 generated in step 1200 may be transmitted to the third electronic device 1300 .
  • the first user interface map 1251 and the second user interface map 1252 may be user interface maps generated based on some of a plurality of application screens to be actually analyzed. For example, in order to generate a user interface map, a total of 100 application screens included in the application screen history 1211 need to be analyzed, and 50 of the 100 application screens in the second electronic device 1200 are analyzed. A first user interface map 1251 may be generated based on the application screen, and a second user interface map 1252 may be generated based on the remaining 50 application screens of the third electronic device 1300 .
  • At least one of the second electronic device 1200 and the third electronic device 1300 is a user interface map ensemble model for combining the first user interface map 1251 and the second user interface map 1252. (not shown). Accordingly, when the first user interface map 1251 and the second user interface map 1252 are user interface maps generated based on some of a plurality of application screens to be actually analyzed, the second electronic device 1200 and At least one of the third electronic devices 1300 generates an integrated user interface map in which the first user interface map 1251 and the second user interface map 1252 are combined through a user interface map ensemble model (not shown). can do.
  • the unified user interface map may be provided to other electronic devices in which the unified user interface map is not generated.
  • the second electronic device 1200 may identify the first focus position 1261 using the focus position estimator 1240 .
  • the third electronic device 1300 may identify the second focus position 1361 using the focus position estimator 1340 .
  • the focus position estimator 1240 of the second electronic device 1200 or the focus position estimator 1340 of the third electronic device 1300 identifies the focus position based on the user interface map
  • another electronic device A focus position may be identified based on a user interface map provided from the device.
  • the focus position estimator 1240 of the second electronic device 1200 and the focus position estimator 1340 of the third electronic device 1300 generate information for identifying focus in different dimensions, and thus Based on this, the location of the focus may be identified.
  • the focus position estimator 1240 of the second electronic device 1200 focuses on each of a plurality of nodes corresponding to a plurality of user interface elements included in an application screen by using a graph-based focus position identification model. It is possible to generate information about the probability of being located.
  • the focus position estimator 1340 of the third electronic device 1200 uses a vision-based focus position identification model to obtain information about the probability that a focus is located on each of a plurality of regions included in the application screen 723. can create
  • At least one of the second electronic device 1200 and the third electronic device 1300 may include a focus position ensemble model (not shown) for combining information for identifying a focus position. Further, when the focus position estimator 1240 of the second electronic device 1200 and the focus position estimator 1340 of the third electronic device 1300 generate information for identifying focus in different dimensions, the second electronic device 1200 generates information for identifying a focus. At least one of the device 1200 and the third electronic device 1300 generates new information for identifying the focus position by combining information for identifying the focus position in different dimensions through a focus position ensemble model (not shown). can create Also, at least one of the second electronic device 1200 and the third electronic device 1300 may identify the focus position based on the generated new information.
  • FIG. 9 is a block diagram for explaining the configuration of an electronic device according to an embodiment of the present disclosure.
  • an electronic device 2000 may include a communication interface 2100, a display 2200, a memory 2300, and a processor 2400.
  • the communication interface 2100 may perform data communication with other electronic devices under the control of the processor 2400 .
  • the communication interface 2100 may include communication circuitry.
  • the communication interface 2100 may include, for example, wired LAN, wireless LAN, Wi-Fi, Bluetooth, ZigBee, Wi-Fi Direct (WFD), infrared communication (IrDA, infrared Data Association), Bluetooth Low Energy (BLE), Near Field Communication (NFC), Wireless Broadband Internet (Wibro), World Interoperability for Microwave Access (WiMAX), Shared Wireless Access Protocol (SWAP), WiGig It may include a communication circuit capable of performing data communication between the electronic device 2000 and other electronic devices using at least one of (Wireless Gigabit Alliances, WiGig) and data communication methods including RF communication.
  • the communication interface 2100 may transmit and receive data for analyzing an application screen to and from an external electronic device. For example, when an application screen executed and displayed on the electronic device 2000 is analyzed by an external electronic device, the communication interface 2100 may transmit the application screen and primitive actions to the external electronic device. Conversely, when the electronic device 2000 analyzes an application screen executed and displayed on the external electronic device, the communication interface 2100 may receive the application screen and primitive actions from the external electronic device. Also, the communication interface 2100 may transmit/receive an artificial intelligence model used to analyze an application screen and training data for learning the artificial intelligence model with an external electronic device.
  • the display 2200 may output an image signal to the screen of the electronic device 2000 under the control of the processor 2400 .
  • An application screen may be displayed on the display 2200 , and as at least one primitive action is performed, the application screen displayed on the display 2200 may be switched.
  • the memory 2300 may store instructions, data structures, and program codes readable by the processor 2400 .
  • operations performed by the processor 2400 may be implemented by executing instructions or codes of a program stored in the memory 2300 .
  • the memory 2300 includes a flash memory type, a hard disk type, a multimedia card micro type, and a card type memory (eg SD or XD memory).
  • Non-volatile memory including at least one of ROM (Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory), magnetic memory, magnetic disk, and optical disk and volatile memory such as RAM (Random Access Memory) or SRAM (Static Random Access Memory).
  • the memory 2300 may store one or more instructions and/or programs necessary for the electronic device 2000 to analyze the application screen.
  • a user interface map generation module 2310 and a focus position estimation module 2320 may be stored in the memory 2300, and each module may include one or more artificial intelligence models to perform the functions of the module.
  • the user interface map creation module 2310 may include a link removal model, a link creation model, and an edge labeler.
  • the focus position estimation module 2320 may include a graph-based focus position identification model, a vision-based focus position identification model, and the like.
  • the memory 2300 may store application screen history and primitive action history required for the electronic device 2000 to analyze the application screen.
  • the processor 2400 may control overall operations of the electronic device 2000 .
  • the processor 2400 may control overall operations for the electronic device 2000 to analyze an application screen by executing one or more instructions of a program stored in the memory 2300 .
  • the processor 2400 may be one or more.
  • the at least one processor 2400 may include, for example, a central processing unit, a microprocessor, a graphic processing unit, application specific integrated circuits (ASICs), and digital signal processors (DSPs). , DSPDs (Digital Signal Processing Devices), PLDs (Programmable Logic Devices), FPGAs (Field Programmable Gate Arrays), Application Processors, Neural Processing Units, or hardware structures specialized in the processing of artificial intelligence models. It may be configured with at least one of the designed artificial intelligence dedicated processors, but is not limited thereto.
  • At least one processor 2400 may create a plurality of links to a plurality of user interface elements included in the application screen.
  • the at least one processor 2400 may generate a user interface map for each of at least one primitive action that is a user input for searching an application screen based on a plurality of links.
  • the at least one processor 2400 may identify a focus position indicating a user interface element that is a user interaction target among a plurality of user interface elements.
  • the UI map may include a path through which a focus position moves between a plurality of UI elements by at least one primitive action.
  • At least one processor 2400 may identify a plurality of user interface elements based on the application screen. At least one processor 2400 may generate a plurality of nodes corresponding to a plurality of user interface elements. At least one processor 2400 may generate a plurality of links based on node characteristics of a plurality of nodes. The node characteristics may include at least one of characteristics related to sizes, positions, contents, images, names, and hierarchies of a plurality of user interface elements.
  • At least one processor 2400 may generate a plurality of links using a link removal model.
  • the link generation model may be a model learned to generate a plurality of links by removing at least one link included in a fully connected edge by taking node characteristics and fully connected edges of a plurality of nodes as inputs.
  • a fully connected edge may include links of a plurality of user interface elements to themselves and all links between different user interface elements.
  • At least one processor 2400 may generate a plurality of links using a link creation model.
  • the link creation model performs hierarchical clustering on a plurality of nodes by taking node characteristics as inputs, and at each stage of hierarchical clustering, it is a model learned to generate a plurality of links by connecting nodes clustered in the same hierarchy.
  • At least one processor 2400 may map at least one primitive action to each of a plurality of links. At least one processor 2400 may generate a user interface map based on which primitive action is mapped to each of a plurality of links.
  • At least one processor 2400 may generate an adjacency matrix using an edge labeler.
  • the edge labeler may be a model learned to output a user interface map by taking edges of a plurality of nodes including a plurality of links as inputs.
  • the at least one processor 2400 performs application screens of a plurality of times divided based on a time point at which the at least one primitive action is performed, and at least one primitive performed prior to the last one of the plurality of times. Based on the action, the location of the focus on the application screen at the last view may be identified.
  • At least one processor 2400 may identify the focus position using at least one of a graph-based focus position identification model and a vision-based focus position identification model.
  • the graph-based focus position identification model includes a feature extraction model outputting first focus feature matrices for each view including a focus feature, a feature enhancement model outputting second focus feature matrices in which the focus feature is emphasized, and a plurality of focus feature matrices. It may include a feature comparison model that outputs the probability that the focus will be located on each node of .
  • the focus feature may include a feature related to a focus position obtained from a plurality of user interface elements.
  • the feature extraction model extracts a focus feature from each of a plurality of application screens for each view as input, maps the focus feature to a node corresponding to a user application element from which the focus feature is obtained, and 1 may be a model learned to output focus feature matrices.
  • the feature emphasis model inputs a first focus feature matrix for each view excluding the last view among the plurality of views and a user interface map for at least one primitive action performed from at least one view to the last view. It may be a model trained to generate at least one transformed first focus feature matrix and output a second focus feature matrix by comparing the at least one transformed first focus feature matrix with the first focus feature matrix at the last point in time. .
  • the feature comparison model is a model learned to output a probability that a focus is located for each of a plurality of nodes by taking a first focus feature matrix and a second focus feature matrix of a last time point among a plurality of points of view as inputs.
  • the vision-based focus location identification model is configured to focus on each of a plurality of areas included in an application screen of a last view by using a plurality of application screens for each view and at least one primitive action performed as inputs. It can be a model trained to output probabilities.
  • At least one processor 2400 may receive an application screen from an external electronic device through the communication interface 2100 .
  • the at least one processor 2400 may transmit at least one of a user interface map and a focus position to an external electronic device through the communication interface 2100 .
  • the application screen may be displayed on the display 2200 as an execution screen of a third party application for which an application program interface is not provided.
  • FIG. 10 is a block diagram for explaining the configuration of a server according to an embodiment of the present disclosure.
  • the above-described operations of the electronic device 2000 may be performed by the server 3000.
  • the server 3000 may include a communication interface 3100, a memory 3200, and a processor 3300. Since the communication interface 3100, memory 3200, and processor 3300 of the server 3000 correspond to the communication interface 2100, memory 2300, and processor 2400 of the electronic device 2000 of FIG. 9, respectively, The description of the same is omitted.
  • the server 3000 may be a device with higher computing performance than the electronic device 2000 so as to be able to perform calculations with a greater amount of computation than the electronic device 2000 .
  • the server 3000 may perform training of an artificial intelligence model, which requires a relatively large amount of calculation compared to reasoning.
  • the memory 3200 may include a user interface map generating module 3210 and a focus position estimating module 3220 .
  • a method of analyzing an application screen may be provided.
  • a method of analyzing an application screen includes generating a plurality of links to a plurality of user interface elements included in the application screen, and generating a plurality of links to a plurality of user interface elements.
  • generating a user interface map for each of at least one primitive action which is a user input for navigating an application screen, and a focus indicating a user interface element that is a user interaction target among a plurality of user interface elements. It may include identifying the position of.
  • the UI map may include a path through which a focus position moves between a plurality of UI elements by at least one primitive action.
  • generating the plurality of links includes identifying a plurality of user interface elements based on the application screen, creating a plurality of nodes corresponding to the plurality of user interface elements, and a node of the plurality of nodes. Generating a plurality of links based on the characteristic.
  • the node characteristics may include at least one of characteristics related to sizes, positions, contents, images, names, and hierarchies of a plurality of user interface elements.
  • generating the plurality of links based on the node characteristics may include generating the plurality of links using a link cancellation model.
  • the link removal model may be a model learned to generate a plurality of links by removing at least one link included in a fully connected edge by taking node characteristics and fully connected edges of a plurality of nodes as inputs.
  • a fully connected edge may include links of a plurality of user interface elements to themselves and all links between different user interface elements.
  • generating the plurality of links based on the node characteristics may include generating the plurality of links using a link generation model.
  • the link creation model performs hierarchical clustering on a plurality of nodes by taking node characteristics as inputs, and at each stage of hierarchical clustering, it is a model learned to generate a plurality of links by connecting nodes clustered in the same hierarchy.
  • generating the user interface map may include mapping at least one primitive action to each of a plurality of links and generating the user interface map based on which primitive action is mapped to each of the plurality of links. steps may be included.
  • generating the user interface map may include generating an adjacency matrix using an edge labeler.
  • the edge labeler may be a model learned to output a user interface map by taking edges of a plurality of nodes including a plurality of links as inputs.
  • the step of identifying the location of the focus may include application screens of a plurality of viewpoints classified based on a time point at which the at least one primitive action is performed, and at least one primitive action performed before a last viewpoint among the plurality of viewpoints. It may include identifying a position of focus on the application screen of the last view based on.
  • identifying the position of the focus on the application screen at the last view may include identifying the position of the focus using at least one of a graph-based focus position identification model and a vision-based focus position identification model. .
  • the graph-based focus position identification model includes a feature extraction model outputting first focus feature matrices for each view including a focus feature, a feature enhancement model outputting second focus feature matrices in which the focus feature is emphasized, and a plurality of focus feature matrices. It may include a feature comparison model that outputs the probability that the focus will be located on each node of .
  • the focus feature may include a feature related to a focus position obtained from a plurality of user interface elements.
  • the feature extraction model extracts a focus feature from each of a plurality of application screens for each view as input, maps the focus feature to a node corresponding to a user application element from which the focus feature is obtained, and 1 may be a model learned to output focus feature matrices.
  • the feature emphasis model inputs a first focus feature matrix for each view excluding the last view among the plurality of views and a user interface map for at least one primitive action performed from at least one view to the last view. It may be a model trained to generate at least one transformed first focus feature matrix and output a second focus feature matrix by comparing the at least one transformed first focus feature matrix with the first focus feature matrix at the last point in time. .
  • the feature comparison model is a model learned to output a probability that a focus is located for each of a plurality of nodes by taking a first focus feature matrix and a second focus feature matrix of a last time point among a plurality of points of view as inputs.
  • the vision-based focus location identification model is configured to focus on each of a plurality of areas included in an application screen of a last view by using a plurality of application screens for each view and at least one primitive action performed as inputs. It can be a model trained to output probabilities.
  • Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media.
  • Computer readable media may include computer storage media and communication media.
  • Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Communication media may typically include computer readable instructions, data structures, or other data in a modulated data signal such as program modules.
  • the computer-readable storage medium may be provided in the form of a non-transitory storage medium.
  • 'non-temporary storage medium' only means that it is a tangible device and does not contain signals (e.g., electromagnetic waves), and this term refers to the case where data is stored semi-permanently in the storage medium and temporary It does not discriminate if it is saved as .
  • a 'non-temporary storage medium' may include a buffer in which data is temporarily stored.
  • the method according to various embodiments disclosed in this document may be provided by being included in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • a computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store or between two user devices (eg smartphones). It can be distributed (eg downloaded or uploaded) directly or online.
  • a computer program product eg, a downloadable app
  • a device-readable storage medium such as a memory of a manufacturer's server, an application store server, or a relay server. It can be temporarily stored or created temporarily.

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)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

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

Description

애플리케이션 화면을 분석하는 전자 장치 및 그 동작 방법
본 개시는, 애플리케이션 화면을 분석하기 위한 전자 장치 및 그 동작 방법에 관한 것이다.
디스플레이를 포함하는 다양한 전자 장치들의 예로는 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은 본 개시의 일 실시예에 따른 서버의 구성을 설명하기 위한 블록도이다.
도면 전체에 걸쳐 동일한 구성요소를 나타내기 위해 동일한 참조 번호가 사용된다.
첨부된 도면을 참조하는 다음의 설명은 청구범위 및 그 등가물에 의해 정의되는 본 개시의 다양한 실시예들의 포괄적인 이해를 돕기 위해 제공된다. 이해를 돕기 위해 다양한 특정 세부 사항들을 포함하지만 이는 단지 예시로 간주되어야 한다. 따라서, 당업자는 본 명세서에 기술된 다양한 실시예들의 다양한 변경 및 수정이 본 개시의 범위 및 사상을 벗어나지 않고 이루어질 수 있음을 인식할 것이다. 또한, 공지 기능 및 구성에 대한 설명은 명확성과 간결성을 위하여 생략될 수 있다.
이하의 설명 및 특허청구범위에 사용된 용어 및 단어는 서지적 의미로 제한되지 않으며, 발명자가 개시 내용을 명확하고 일관되게 이해하기 위해 사용하는 것일 뿐이다. 따라서, 본 개시의 다양한 실시예들에 대한 다음의 설명은 첨부된 청구범위 및 그 등가물에 의해 정의된 바와 같이 본 개시를 제한할 목적이 아니라 예시 목적으로만 제공된다는 것이 당업자에게 명백해야 한다.
단수 형태 "a", "an" 및 "the"는 문맥상 명백하게 달리 지시하지 않는 한 복수 지시대상을 포함하는 것으로 이해되어야 한다. 따라서, 예를 들어 "부품 표면"에 대한 언급은 이러한 표면 중 하나 이상에 대한 언급을 포함합니다.
본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 " a", " b", " c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.
본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 개시의 실시 형태에 대해 한정하려는 것이 아니며, 본 개시는 여러 실시예들의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예를 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 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는 본 개시의 일 실시예에 따른 전자 장치가 애플리케이션 화면을 분석하는 방법을 설명하기 위한 흐름도이다.
도2를 참조하면, 단계 S210에서, 전자 장치(2000)는 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들에 대한 복수의 링크들을 생성한다.
일 실시예에서, 애플리케이션 화면은 서드 파티 애플리케이션의 실행 화면을 포함할 수 있다. 애플리케이션 화면은 전자 장치(2000)에서 실행되는 서드 파티 애플리케이션의 실행 화면 또는 외부 전자 장치 중 적어도 하나로부터 수신된 서드 파티 애플리케이션의 실행 화면을 포함할 수 있다.
일 실시예에서, 애플리케이션 화면은 적어도 하나의 프리미티브 액션이 수행된 시점을 기준으로 구분되는 복수의 시점 별 애플리케이션 화면일 수 있다. 예를 들어, 애플리케이션 화면은 제1 시점의 애플리케이션 화면, 제1 시점의 애플리케이션 화면에서 제1 프리미티브 액션이 수행된 다음 시점인 제2 시점의 애플리케이션 화면 및 제2 시점의 애플리케이션 화면에서 제2 프리미티브 액션이 수행된 다음 시점인 제3 시점의 애플리케이션 화면을 포함할 수 있다.
일 실시예에서, 애플리케이션 화면은 애플리케이션 화면 히스토리에 포함된 화면들일 수 있다. 애플리케이션 화면 히스토리는 전자 장치(2000)에 표시되거나 외부 전자 장치에 표시되었던 화면들을 포함할 수 있다.
일 실시예에서, 애플리케이션 화면 히스토리는 기설정된 시간 간격으로 저장된 애플리케이션 화면들 및 프리미티브 액션이 수행되었을 때마다 저장된 복수의 애플리케이션 화면들을 포함할 수 있다.
일 실시예에서, 복수의 시점 별 애플리케이션 화면을 구분하는데 기준이 되는 적어도 하나의 프리미티브 액션은 프리미티브 액션 히스토리에 포함된 프리미티브 액션일 수 있다.
일 실시예에서, 프리미티브 액션 히스토리는 이전에 수행되었던 복수의 프리미티브 액션들에 대한 정보를 포함할 수 있다. 이전에 수행되었던 복수의 프리미티브 액션들이란 서드 파티 애플리케이션에 전송되었던 프리미티브 액션들을 의미할 수 있다. 예를 들어, 프리미티브 액션 히스토리는 어떠한 프리미티브 액션들이 수행되었는지, 수행된 프리미티브 액션들에 의해 포커스의 위치가 어떻게 이동하였는지 등에 대한 정보를 포함할 수 있다.
일 실시예에서, 애플리케이션 화면 히스토리와 프리미티브 액션 히스토리는 서로 매핑 관계를 가질 수 있다. 구체적으로, 프리미티브 액션 히스토리에 포함된 프리미티브 액션 각각은 애플리케이션 화면 히스토리에 포함된 해당 프리미티브 액션이 수행된 직후 애플리케이션 화면들 각각에 매핑될 수 있다.
일 실시예에서, 전자 장치(2000)는 애플리케이션 화면에 기초하여 복수의 사용자 인터페이스 요소들을 식별할 수 있다. 전자 장치(2000)는 식별된 복수의 사용자 인터페이스 요소들에 대응하는 복수의 노드들을 생성할 수 있다. 그리고, 전자 장치(2000)는 복수의 링크들에 대응하는 복수의 노드들에 대한 엣지(edge)를 생성할 수 있다. 복수의 노드들은 그래프(Graph) 데이터의 정점(vertex)들을 의미할 수 있다. 엣지는 노드 자기 자신에 대한 링크 및 서로 다른 노드 사이의 링크를 포함할 수 있으며, 엣지에 포함된 링크는 복수의 노드들에 대응하는 복수의 사용자 인터페이스 요소들에 대한 링크에 대응될 수 있다.
일 실시예에서, 전자 장치(2000)는 복수의 사용자 인터페이스 요소들로부터 링크들을 생성하는데 이용되는 노드 특징을 추출할 수 있다. 노드 특징은 복수의 사용자 인터페이스 요소들의 크기, 컨텐츠, 이미지, 이름 및 계층에 관한 특징 중 적어도 하나를 포함할 수 있다. 다만, 노드 특징에 포함된 특징들이 반드시 이에 한정되지 않으며, 사용자 인터페이스 요소들로부터 링크를 생성하는데 이용될 수 있는 모든 특징을 포함할 수 있다.
일 실시예에서, 전자 장치(2000)는 노드 특징에 기초하여 식별된 복수의 사용자 인터페이스들을 스스로 연결하거나, 서로 다른 사용자 인터페이스 요소들을 서로 연결하여 복수의 사용자 인터페이스 요소들에 대한 복수의 링크들을 생성할 수 있다.
단계 S220에서, 전자 장치(2000)는 복수의 링크들에 기초하여 애플리케이션 화면을 탐색하기 위한 사용자 입력인 적어도 하나의 프리미티브 액션에 대한 사용자 인터페이스 맵을 생성한다.
일 실시예에서, 전자 장치(2000)는 복수의 링크들에 기초하여 적어도 하나의 프리미티브 액션 각각에 대한 사용자 인터페이스 맵을 생성할 수 있다. 전자 장치(2000)는 복수의 링크들 각각에 대하여 적어도 하나의 프리미티브 액션을 매핑하고, 복수의 링크들 각각에 어떠한 프리미티브 액션이 매핑 되었는지에 기초하여 프리미티브 액션에 의해 포커스가 복수의 사용자 인터페이스 요소들 사이를 이동하는 경로를 포함하는 사용자 인터페이스 맵을 생성할 수 있다.
다시 도 1을 참조하면, 전자 장치(2000)는 사용자 인터페이스 요소 '오리지널 탭(110)'과 'A 드라마 10화 썸네일 이미지(112)'가 연결된 링크에 프리미티브 액션 'Move Down - Move UP'을 매핑할 수 있다. 이 경우, 전자 장치(2000)는 프리미티브 액션 'Move Down'에 의해 '오리지널 탭(110)'에 위치한 포커스가 'A 드라마 10화 썸네일 이미지(112)'로 이동하고, 프리미티브 액션 'Move UP'에 의해 'A 드라마 10화 썸네일 이미지(112)'에 위치한 포커스가 '오리지널 탭(110)'으로 이동하는 경로를 포함하는 사용자 인터페이스 맵을 생성할 수 있다.
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)에 저장될 수 있다. 애플리케이션 화면 및 프리미티브 액션은 전자 장치(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(Region-based Convolutional Neural Network) 기반 인공지능 모델 등을 포함할 수 있으나, 반드시 이에 한정되지 않는다.
일 실시예에서, 애플리케이션 화면이 복수인 경우, 오브젝트 검출기(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)에 대한 복수의 링크들(562-1, 562-2, 562-3, 563-1, 563-3)을 생성할 수 있다. 여기에서, 복수의 링크들(562-1, 562-2, 562-3, 563-1, 563-3) 각각은 완전 연결 엣지(541)의 복수의 링크들(542-1, 542-2, 542-3, 543-1, 543-3) 각각에 대응될 수 있다.
일 실시예에서, 엣지 생성기(431)는 완전 연결 엣지(541)에 포함된 복수의 링크들(542-1, 542-2, 542-3, 543-1 543-2, 543-3) 중 적어도 하나의 링크(543-2)를 제거할 수 있다. 이 경우, 복수의 사용자 인터페이스 요소들(511-1, 511-2, 511-3)에 대한 복수의 링크들(542-1, 542-2, 542-3, 543-1, 543-3)은 제거되지 않고, 나머지 링크(543-2)는 제거될 수 있다.
일 실시예에서, 링크 제거 모델(550)은 복수의 노드들(532-1, 532-2, 532-3)의 노드 특징 및 복수의 노드들에 대한 완전 연결 엣지(541)를 입력으로 하여 완전 연결 엣지(541)에 포함된 적어도 하나의 링크(542-1)를 제거하여 복수의 링크들(562-1, 562-2, 562-3, 563-1, 563-3)을 생성하도록 학습된 모델일 수 있다. 이 경우, 복수의 링크들(562-1, 562-2, 562-3, 563-1, 563-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)의 동작을 보다 상세하게 설명하기로 한다.
도 6을 참조하면, 일 실시예에서, 엣지 레이블러(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) 각각에 대하여 적어도 하나의 프리미티브 액션을 매핑할 수 있다.
예를 들어, 엣지 레이블러(432)는 프리미티브 액션 'Move Left' 및 'Move Up'이 수행되었을 때, 0 번노드에 대응하는 사용자 인터페이스 요소에 위치한 포커스의 위치의 변화가 없었다는 정보에 기초하여 제1 링크(611-1)에 프리미티브 액션 'Move Left' 및 'Move Up'을 매핑할 수 있다. 또한, 엣지 레이블러(432)는 프리미티브 액션 'Move Right'가 수행되었을 때, 0번 노드에 대응하는 사용자 인터페이스 요소에 위치한 포커스가 1번 노드에 대응하는 사용자 인터페이스 요소로 이동했다는 정보에 기초하여 프리미티브 액션 'Move Right'를 제2 링크(612-1)에 매핑할 수 있다. 또한, 엣지 레이블러(432)는 프리미티브 액션이 'Move Left' 수행되었을 때 1번 노드에 대응하는 사용자 인터페이스 요소에 위치한 포커스가 0번 노드에 대응하는 사용자 인터페이스 요소에 위치한 포커스로 이동했다는 정보에 기초하여 프리미티브 액션 'Move Left'를 제2 링크(612-1)에 매핑할 수 있다.
일 실시예에서, 엣지 레이블러(432)는 엣지(610)의 복수의 노드들의 노드 특징에 기초하여 복수의 링크들(611-1, 611-2, 611-3, 612-1, 612-2, 612-3) 각각에 대하여 적어도 하나의 프리미티브 액션을 매핑할 수 있다.
구체적으로, 엣지 레이블러(432)는 복수의 노드들에 대응하는 사용자 인터페이스 요소들의 크기 및 위치에 대한 정보에 기초하여 복수의 사용자 인터페이스 요소들의 위치 관계 정보를 식별할 수 있다. 엣지 레이블러(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) 각각에 매핑할 수 있다. 위치 관계 정보는 특정 사용자 인터페이스 요소를 기준으로 프리미티브 액션에 대응되는 방향에 어떠한 사용자 인터페이스 요소들이 존재하는지에 대한 정보를 포함할 수 있다.
일 실시예에서, 엣지 레이블러(432)는 적어도 하나의 프리미티브 액션이 매핑된 결과(631)에 기초하여 적어도 하나의 프리미티브 액션 각각에 대한 사용자 인터페이스 맵(630)을 생성할 수 있다. 다시 말해, 엣지 레이블러(432)는 복수의 링크들(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 %라는 정보를 의미할 수 있다.
일 실시예에서, 엣지 레이블러(432)는 엣지(610)를 입력으로 하여 기초하여 프리미티브 액션 각각에 대한 인접 행렬들(632)을 출력하도록 학습된 모델일 수 있다. 엣지 레이블러(432)는 멀티-헤드 어텐션(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-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-1)을 획득하고, 획득된 포커스 특징(795-1)에 기초하여 복수의 노드들 각각에 대하여 포커스가 위치할 확률(795-2)에 대한 정보를 생성할 수 있다. 일 실시예에서, 포커스 위치 추정기(440)는 결합된 정보에 기초하여 바운딩 박스가 생성된 제3 시점의 애플리케이션 화면(797-1)에 포함된 복수의 바운딩 박스들 각각에 대하여 포커스가 위치할 확률(797-2)에 대한 정보를 생성할 수 있다. 일 실시예에서, 포커스 위치 추정기(440)는 결합된 정보에 제3 시점의 애플리케이션 화면(799-1)의 복수의 영역들 각각에 대하여 포커스가 위치할 확률에 대한 정보를 생성할 수 있다. 일 실시예에서, 포커스 위치 추정기(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, 도 2, 도 3a, 도 3b, 도 4a, 도 4b, 도 5a, 도 5b, 도 5c, 도 6, 도7a, 도 7b 및 도 7c에서 전술한 전자 장치(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, 도 2, 도 3a, 도 3b, 도 4a, 도 4b, 도 5a, 도 5b, 도 5c, 도 6, 도7a, 도 7b 및 도 7c에서 전술한 전자 장치(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은 본 개시의 일 실시예에 따른 서버의 구성을 설명하기 위한 블록도이다.
도 10을 참조하면, 일 실시예에서, 전술한 전자 장치(2000)의 동작들은, 서버(3000)에서 수행될 수 있다.
일 실시예에 따른 서버(3000)는 통신 인터페이스(3100), 메모리(3200) 및 프로세서(3300)를 포함할 수 있다. 서버(3000)의 통신 인터페이스(3100), 메모리(3200) 및 프로세서(3300)는 도 9의 전자 장치(2000)의 통신 인터페이스(2100), 메모리(2300) 및 프로세서(2400)에 각각 대응되므로, 동일한 설명은 생략한다.
일 실시예에 따른 서버(3000)는, 전자 장치(2000) 보다 연산량이 많은 연산을 수행 가능하도록, 컴퓨팅 성능이 전자 장치(2000)보다 높은 장치일 수 있다. 서버(3000)는 추론에 비해 상대적으로 많은 연산량이 요구되는, 인공지능 모델의 훈련을 수행할 수 있다.
메모리(3200)는 사용자 인터페이스 맵 생성 모듈(3210) 및 포커스 위치 추정 모듈(3220)를 포함할 수 있다.
한편, 본 개시의 일 실시예에 따르면, 애플리케이션 화면을 분석하는 방법이 제공될 수 있다.
일 실시예에서, 애플리케이션 화면을 분석하는 방법은 애플리케이션 화면을 분석하는 방법에 있어서, 애플리케이션 화면에 포함된 복수의 사용자 인터페이스 요소들에 대한 복수의 링크(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 (15)

  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. 애플리케이션 화면을 분석하는 방법을 컴퓨터에서 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 있어서,
    상기 방법은,
    상기 애플리케이션 화면(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) 사이를 이동하는 경로를 포함하는, 기록매체.
PCT/KR2022/020494 2021-12-29 2022-12-15 애플리케이션 화면을 분석하는 전자 장치 및 그 동작 방법 WO2023128424A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/146,592 US20230205556A1 (en) 2021-12-29 2022-12-27 Method and electronic device for analyzing application screen

Applications Claiming Priority (4)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/146,592 Continuation US20230205556A1 (en) 2021-12-29 2022-12-27 Method and electronic device for analyzing application screen

Publications (1)

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

Family

ID=86999723

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/020494 WO2023128424A1 (ko) 2021-12-29 2022-12-15 애플리케이션 화면을 분석하는 전자 장치 및 그 동작 방법

Country Status (1)

Country Link
WO (1) WO2023128424A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040066222A (ko) * 2003-01-17 2004-07-27 주식회사 알티캐스트 대화형 디지털 텔레비전용 어플리케이션 사용자인터페이스 및 이를 이용한 네비게이션 방법
KR20140017429A (ko) * 2012-08-01 2014-02-11 삼성전자주식회사 화면 동작 방법 및 그 전자 장치
KR101752355B1 (ko) * 2010-07-26 2017-06-29 엘지전자 주식회사 영상표시기기의 동작 방법
KR102340231B1 (ko) * 2015-01-16 2021-12-16 엘지전자 주식회사 멀티미디어 디바이스 및 그 제어 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040066222A (ko) * 2003-01-17 2004-07-27 주식회사 알티캐스트 대화형 디지털 텔레비전용 어플리케이션 사용자인터페이스 및 이를 이용한 네비게이션 방법
KR101752355B1 (ko) * 2010-07-26 2017-06-29 엘지전자 주식회사 영상표시기기의 동작 방법
KR20140017429A (ko) * 2012-08-01 2014-02-11 삼성전자주식회사 화면 동작 방법 및 그 전자 장치
KR102340231B1 (ko) * 2015-01-16 2021-12-16 엘지전자 주식회사 멀티미디어 디바이스 및 그 제어 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Create TV Navigation | Android Developer | Android Developers", 12 June 2020 (2020-06-12), XP093075982, Retrieved from the Internet <URL:https://developer.android.com/training/tv/start/navigation?hl=ko> *

Similar Documents

Publication Publication Date Title
WO2020032661A1 (en) Electronic apparatus, method for controlling thereof, and method for controlling a server
WO2021261836A1 (en) Image detection apparatus and operation method thereof
EP3908943A1 (en) Method, apparatus, electronic device and computer readable storage medium for image searching
WO2018128362A1 (en) Electronic apparatus and method of operating the same
AU2018319215B2 (en) Electronic apparatus and control method thereof
WO2016111584A1 (en) User terminal for displaying image and image display method thereof
WO2019031707A1 (en) MOBILE TERMINAL AND METHOD FOR CONTROLLING A MOBILE TERMINAL USING MACHINE APPRENTICESHIP
WO2019083275A1 (ko) 관련 이미지를 검색하기 위한 전자 장치 및 이의 제어 방법
EP3545436A1 (en) Electronic apparatus and method of operating the same
WO2021054588A1 (en) Method and apparatus for providing content based on knowledge graph
WO2020130262A1 (ko) 컴퓨팅 장치 및 그 동작 방법
WO2019093819A1 (ko) 전자 장치 및 그 동작 방법
WO2019146942A1 (ko) 전자 장치 및 그의 제어방법
WO2020091519A1 (en) Electronic apparatus and controlling method thereof
WO2020105871A1 (ko) 전자 장치 및 그 제어 방법
WO2021132922A1 (en) Computing device and operation method thereof
WO2022102937A1 (en) Methods and systems for predicting non-default actions against unstructured utterances
WO2015178716A1 (en) Search method and device
WO2012124837A1 (en) An apparatus and a method for gesture recognition
WO2019231068A1 (en) Electronic device and control method thereof
EP3738305A1 (en) Electronic device and control method thereof
WO2023128424A1 (ko) 애플리케이션 화면을 분석하는 전자 장치 및 그 동작 방법
WO2019074185A1 (en) ELECTRONIC APPARATUS AND CONTROL METHOD THEREOF
EP3659073A1 (en) Electronic apparatus and control method thereof
WO2023177144A1 (ko) 광고 대상 결정 장치 및 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22916566

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022916566

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022916566

Country of ref document: EP

Effective date: 20240503