KR20240040984A - Ui 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법 - Google Patents

Ui 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20240040984A
KR20240040984A KR1020220119973A KR20220119973A KR20240040984A KR 20240040984 A KR20240040984 A KR 20240040984A KR 1020220119973 A KR1020220119973 A KR 1020220119973A KR 20220119973 A KR20220119973 A KR 20220119973A KR 20240040984 A KR20240040984 A KR 20240040984A
Authority
KR
South Korea
Prior art keywords
elements
processor
electronic device
template
screen
Prior art date
Application number
KR1020220119973A
Other languages
English (en)
Inventor
강일구
최성현
권정민
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020220119973A priority Critical patent/KR20240040984A/ko
Priority to PCT/KR2023/010887 priority patent/WO2024063301A1/ko
Publication of KR20240040984A publication Critical patent/KR20240040984A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks

Abstract

전자 장치가 개시된다. 본 전자 장치는 메모리 및 메모리에 연결되어 전자 장치를 제어하는 적어도 하나의 프로세서를 포함하며, 프로세서는 메모리에 저장된 어플리케이션이 실행되면, 어플리케이션이 제공하는 화면으로부터 복수의 UI 엘리먼트(element)를 식별하고, 복수의 UI 엘리먼트 중 선택 후의 동작이 동일한 UI 엘리먼트들을 하나의 UI 오브젝트(object)로 포함하는 템플릿을 획득할 수 있다.

Description

UI 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법 { ELECTRONIC APPARATUS FOR OBTAINING A TEMPLATE INCLUDING A UI OBJECT AND CONTROL METHOD THEREOF }
본 개시는 전자 장치 및 그 제어 방법에 대한 것으로, 더욱 상세하게는 UI 오브젝트를 포함하는 템플릿을 획득하는 전자 장치 및 그 제어 방법에 대한 것이다.
전자 기술의 발달에 힘입어 다양한 종류의 전자 장치가 개발되고 있다. 특히, 최근에는 어플리케이션의 제작자와 어플리케이션이 구동되는 장치의 제조사가 상이하여 어플리케이션의 다양성을 확보하고 있다.
여기서, 어플리케이션이 구동되는 장치는 UI 제어 및 UI 검증 task에서, UI의 state 및 transition을 정의하기 위해서 UI Object Tree가 필요하다.
다만, 다수의 어플리케이션은 UI Object Tree를 제공하지 않아서 컨트롤 및 검증이 어렵다. 또는, UI Object Tree를 제공하더라도 어플리케이션/플랫폼마다 형식이 달라 별도의 개발 작업이 필요하고, 이로 인해 업데이트마다 리소스 투입이 필요하여 즉각적인 대응이 어려울 수 있다.
Zero shot으로 검출 가능한 아이콘, 이미지, 텍스트 등과 같은 UI 엘리먼트(element)와는 달리, UI 오브젝트(object)는 어플리케이션에 대한 사전 지식 없이 검출하기 힘든 문제가 있다. 여기서, UI 오브젝트는 복수의 UI 엘리먼트 중 선택 후의 동작이 동일한 UI 엘리먼트들을 포함할 수 있다. 예를 들어, 이미지와 이미지의 하단에 기재된 텍스트는 두 개의 UI 엘리먼트들이나, 이미지의 선택에 따른 동작과 텍스트의 선택에 따른 동작이 동일한 경우, 이미지와 텍스트는 하나의 UI 오브젝트일 수 있다. 또는, 이미지와 텍스트가 구분되어 있지 않고 하나로서 인식되는 경우, 이미지와 텍스트는 하나의 UI 오브젝트일 수 있다.
템플릿 없이 End-to-End로 UI 오브젝트를 검출하는 경우, UI가 업데이트가 되거나 새로운 어플리케이션이 사용될 때마다 추가적인 학습이 필요할 수 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 전자 장치는 메모리 및 상기 메모리에 연결되어 상기 전자 장치를 제어하는 적어도 하나의 프로세서를 포함하며, 상기 프로세서는 상기 메모리에 저장된 어플리케이션이 실행되면, 상기 어플리케이션이 제공하는 화면으로부터 복수의 UI 엘리먼트(element)를 식별하고, 상기 복수의 UI 엘리먼트 중 선택 후의 동작이 동일한 UI 엘리먼트들을 하나의 UI 오브젝트(object)로 포함하는 템플릿을 획득할 수 있다.
또한, 상기 프로세서는 상기 복수의 UI 엘리먼트 각각을 선택하여 상기 복수의 UI 엘리먼트 각각에 대응되는 동작을 식별하고, 상기 식별된 동작에 기초하여 상기 선택 후의 동작이 동일한 UI 엘리먼트들을 식별할 수 있다.
그리고, 디스플레이를 더 포함하며, 상기 프로세서는 상기 화면을 디스플레이하도록 상기 디스플레이를 제어하고, 상기 디스플레이된 화면으로부터 상기 복수의 UI 엘리먼트를 식별할 수 있다.
또한, 상기 프로세서는 포커스를 디스플레이하도록 상기 디스플레이를 제어하고, 상기 복수의 UI 엘리먼트 중 일부 UI 엘리먼트들에 상기 포커스가 위치하여 상기 일부 UI 엘리먼트들의 표시 상태가 변경되면, 상기 일부 UI 엘리먼트들을 상기 선택 후의 동작이 동일한 UI 엘리먼트들로 식별할 수 있다.
그리고, 상기 메모리는 신경망 모델을 더 저장하며, 상기 프로세서는 상기 화면을 상기 신경망 모델에 입력하여 상기 복수의 UI 엘리먼트의 위치 또는 타입 중 적어도 하나를 식별하며, 상기 타입은 아이콘, 이미지 또는 텍스트 중 적어도 하나를 포함할 수 있다.
또한, 상기 프로세서는 상기 화면에서 상기 복수의 UI 엘리먼트 각각의 위치, 상기 복수의 UI 엘리먼트 각각이 차지하는 영역, 상기 복수의 UI 엘리먼트 각각의 타입 및 상기 UI 오브젝트에 대한 정보를 포함하는 상기 템플릿을 획득할 수 있다.
그리고, 상기 프로세서는 상기 복수의 UI 엘리먼트의 타입 및 위치에 기초하여 상기 복수의 UI 엘리먼트를 각각 복수의 노드로 변환하고, 상기 복수의 노드 및 상기 복수의 노드 간의 거리에 대한 정보에 기초하여 상기 템플릿을 directed acyclic weighted graph로 업데이트할 수 있다.
또한, 상기 프로세서는 상기 복수의 UI 엘리먼트를 피쳐 벡터(feature vector)로 변환하여 상기 템플릿을 업데이트할 수 있다.
그리고, 상기 메모리는 복수의 어플리케이션 및 상기 복수의 어플리케이션에 각각 대응되는 복수의 템플릿이 맵핑된 정보를 저장하고, 상기 프로세서는 상기 어플리케이션 및 상기 어플리케이션에 대응되는 상기 템플릿을 상기 메모리에 저장하여 상기 맵핑된 정보를 업데이트할 수 있다.
또한, 상기 프로세서는 신규 어플리케이션이 실행되면, 상기 신규 어플리케이션이 제공하는 신규 화면으로부터 복수의 신규 UI 엘리먼트를 식별하고, 상기 맵핑된 정보에 기초하여 상기 복수의 신규 UI 엘리먼트에 대응되는 템플릿을 식별할 수 있다.
한편, 본 개시의 일 실시 예에 따르면, 전자 장치의 제어 방법은 어플리케이션이 실행되면, 상기 어플리케이션이 제공하는 화면으로부터 복수의 UI 엘리먼트(element)를 식별하는 단계 및 상기 복수의 UI 엘리먼트 중 선택 후의 동작이 동일한 UI 엘리먼트들을 하나의 UI 오브젝트(object)로 포함하는 템플릿을 획득하는 단계를 포함한다.
또한, 상기 획득하는 단계는 상기 복수의 UI 엘리먼트 각각을 선택하여 상기 복수의 UI 엘리먼트 각각에 대응되는 동작을 식별하고, 상기 식별된 동작에 기초하여 상기 선택 후의 동작이 동일한 UI 엘리먼트들을 식별할 수 있다.
그리고, 상기 식별하는 단계는 상기 화면을 디스플레이하고, 상기 디스플레이된 화면으로부터 상기 복수의 UI 엘리먼트를 식별할 수 있다.
또한, 상기 획득하는 단계는 포커스를 디스플레이하고, 상기 복수의 UI 엘리먼트 중 일부 UI 엘리먼트들에 상기 포커스가 위치하여 상기 일부 UI 엘리먼트들의 표시 상태가 변경되면, 상기 일부 UI 엘리먼트들을 상기 선택 후의 동작이 동일한 UI 엘리먼트들로 식별할 수 있다.
그리고, 상기 식별하는 단계는 상기 화면을 신경망 모델에 입력하여 상기 복수의 UI 엘리먼트의 위치 또는 타입 중 적어도 하나를 식별하며, 상기 타입은 아이콘, 이미지 또는 텍스트 중 적어도 하나를 포함할 수 있다.
또한, 상기 획득하는 단계는 상기 화면에서 상기 복수의 UI 엘리먼트 각각의 위치, 상기 복수의 UI 엘리먼트 각각이 차지하는 영역, 상기 복수의 UI 엘리먼트 각각의 타입 및 상기 UI 오브젝트에 대한 정보를 포함하는 상기 템플릿을 획득할 수 있다.
그리고, 상기 복수의 UI 엘리먼트의 타입 및 위치에 기초하여 상기 복수의 UI 엘리먼트를 각각 복수의 노드로 변환하고, 상기 복수의 노드 및 상기 복수의 노드 간의 거리에 대한 정보에 기초하여 상기 템플릿을 directed acyclic weighted graph로 업데이트하는 단계를 더 포함할 수 있다.
또한, 상기 복수의 UI 엘리먼트를 피쳐 벡터(feature vector)로 변환하여 상기 템플릿을 업데이트하는 단계를 더 포함할 수 있다.
그리고, 복수의 어플리케이션 및 상기 복수의 어플리케이션에 각각 대응되는 복수의 템플릿이 맵핑된 정보를 저장하는 단계 및 상기 어플리케이션 및 상기 어플리케이션에 대응되는 상기 템플릿을 저장하여 상기 맵핑된 정보를 업데이트하는 단계를 더 포함할 수 있다.
또한, 신규 어플리케이션이 실행되면, 상기 신규 어플리케이션이 제공하는 신규 화면으로부터 복수의 신규 UI 엘리먼트를 식별하는 단계 및 상기 맵핑된 정보에 기초하여 상기 복수의 신규 UI 엘리먼트에 대응되는 템플릿을 식별하는 단계를 더 포함할 수 있다.
도 1a 내지 도 1c는 UI 오브젝트에 따른 동작 및 UI Object Tree를 설명하기 위한 도면들이다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 세부 구성을 나타내는 블럭도이다.
도 4는 본 개시의 일 실시 예에 따른 전자 장치의 전반적인 동작을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 UI 엘리먼트를 식별하는 동작을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른 UI 오브젝트를 식별하는 방법을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 템플릿 획득 방법을 설명하기 위한 도면이다.
도 8 및 도 9는 본 개시의 일 실시 예에 따른 좀더 구체적인 추상화 방법을 설명하기 위한 도면들이다.
도 10 내지 도 12는 본 개시의 일 실시 예에 따른 추상화 정도를 설명하기 위한 도면들이다.
도 13은 본 개시의 일 실시 예에 따른 템플릿을 활용하는 방법을 설명하기 위한 도면이다.
도 14는 본 개시의 일 실시 예에 따른 추상화 방법을 설명하기 위한 도면이다.
도 15는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
본 개시의 목적은 UI 오브젝트를 포함하는 템플릿을 획득하고, 템플릿에 기초하여 새로운 어플리케이션으로부터 UI 오브젝트를 식별하는 전자 장치 및 그 제어 방법을 제공함에 있다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공 지능 전자 장치)를 지칭할 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 다양한 실시 예를 보다 상세하게 설명한다.
도 1a 및 도 1b는 UI 오브젝트를 설명하기 위한 도면들이다.
먼저, 도 1a에 도시된 바와 같이, 어플리케이션이 제공하는 화면은 이미지, 텍스트 등을 포함할 수 있다. 여기서, 이미지, 텍스트 뿐만 아니라 아이콘 등은 UI 엘리먼트로서, UI를 구성하는 단위 요소일 수 있다.
UI 오브젝트는 복수의 UI 엘리먼트 중 선택 후의 동작이 동일한 UI 엘리먼트들을 포함하는 개념이다. 예를 들어, UI 오브젝트는 클릭 가능하거나 포커스 가능한 UI 상의 개체로서, 적어도 하나의 UI 엘리먼트를 포함하며 클릭 시 동일한 링크로 연결되는 것들의 집합일 수 있다. 가령, 도 1a에 도시된 바와 같이, 하나의 이미지와 세 개의 텍스트가 각각 UI 오브젝트일 수도 있고, 도 1b에 도시된 바와 같이, 하나의 이미지와 세 개의 텍스트가 하나의 UI 오브젝트를 구성할 수도 있다.
여기서, 어플리케이션의 제작자와 어플리케이션이 구동되는 장치의 제조사가 상이한 경우, 장치는 어플리케이션에서 제공하는 화면의 UI 오브젝트를 식별하지 못할 수 있다. 이 경우, 제어 시 복수의 엘리먼트가 하나의 객체로 간주될 수 있으며, 엘리먼트 단위로 이동 명령을 할 경우 의도보다 더 이동할 수 있다.
또는, 장치는 템플릿 없이도 UI 오브젝트를 검출할 수도 있다. 다만, 동일한 크기와 위치의 UI 엘리먼트 조합이 어플리케이션마다 다르게 묶일 수 있기 때문에, 어플리케이션에 대한 특수성을 고려하지 않으면 오검출의 가능성이 있다. 즉, 어플리케이션에 대한 특수성을 고려하기 위해서는 어플리케이션에 따른 추가 학습 진행이 필요하다.
도 1c는 UI Object Tree의 일 예를 나타내는 도면으로, 장치는 어플리케이션이 UI Object Tree를 제공하더라도 어플리케이션/플랫폼마다 형식이 달라 별도의 개발 작업이 필요하고, 이로 인해 업데이트마다 리소스 투입이 필요하다.
또는, 장치가 도 1c와 같은 UI Object Tree를 획득할 수도 있으며, 이를 exploration이라고 한다. 다만, UI 오브젝트의 UI 엘리먼트가 상이하므로, 장치는 UI Object Tree를 획득하기 위해서 모든 UI 오브젝트에 대한 대한 UI 엘리먼트를 저장해야 한다. 즉, UI 엘리먼트가 변경될 때마다 exploration을 다시 수행해야 한다.
또한, Exploration을 수행하지 않고, 새로운 UI 오브젝트가 등장하는 경우, UI 오브젝트로 인식할 수 없으므로 UI Object Tree 기반 컨트롤이 불가할 수 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 나타내는 블럭도이다.
전자 장치(100)는 UI 오브젝트를 포함하는 템플릿을 획득하는 장치일 수 있다. 예를 들어, 전자 장치(100)는 TV, 데스크탑 PC, 노트북, 비디오 월(video wall), LFD(large format display), Digital Signage(디지털 간판), DID(Digital Information Display), 프로젝터 디스플레이, 스마트폰, 태블릿 PC 등과 같이 디스플레이를 구비하고, 어플리케이션이 제공하는 화면으로부터 UI 오브젝트를 포함하는 템플릿을 획득하는 장치일 수 있다. 다만, 이에 한정되는 것은 아니며, 전자 장치(100)는 셋탑박스(STB) 등과 같이 디스플레이가 구비된 장치로 화면을 제공하며, 화면으로부터 템플릿을 획득하는 장치일 수도 있다.
전자 장치(100)는 복수의 템플릿을 저장하며, 새로운 어플리케이션이 실행되면 복수의 템플릿에 기초하여 새로운 어플리케이션이 제공하는 화면으로부터 UI 오브젝트를 식별할 수 있다.
도 2에 따르면, 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함한다.
메모리(110)는 프로세서(120) 등이 접근할 수 있도록 데이터 등의 정보를 전기 또는 자기 형태로 저장하는 하드웨어를 지칭할 수 있다. 이를 위해, 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시 메모리(Flash Memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD), RAM, ROM 등 중에서 적어도 하나의 하드웨어로 구현될 수 있다.
메모리(110)에는 전자 장치(100) 또는 프로세서(120)의 동작에 필요한 적어도 하나의 인스트럭션(instruction)이 저장될 수 있다. 여기서, 인스트럭션은 전자 장치(100) 또는 프로세서(120)의 동작을 지시하는 부호 단위로서, 컴퓨터가 이해할 수 있는 언어인 기계어로 작성된 것일 수 있다. 또는, 메모리(110)에는 전자 장치(100) 또는 프로세서(120)의 특정 작업을 수행하는 복수의 인스트럭션이 인스트럭션 집합체(instruction set)로서 저장될 수도 있다.
메모리(110)에는 문자, 수, 영상 등을 나타낼 수 있는 비트 또는 바이트 단위의 정보인 데이터가 저장될 수 있다. 예를 들어, 메모리(110)에는 복수의 어플리케이션 및 템플릿 모듈 등이 저장될 수 있다.
메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의해 인스트럭션, 인스트럭션 집합체 또는 데이터에 대한 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
프로세서(120)는 전자 장치(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(120)는 전자 장치(100)의 각 구성과 연결되어 전자 장치(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(120)는 메모리(110) 등과 같은 구성과 연결되어 전자 장치(100)의 동작을 제어할 수 있다.
적어도 하나의 프로세서(120)는 CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerated Processing Unit), MIC(Many Integrated Core), DSP(Digital Signal Processor), NPU(Neural Processing Unit), 하드웨어 가속기 또는 머신 러닝 가속기 중 하나 이상을 포함할 수 있다. 적어도 하나의 프로세서(120)는 전자 장치(100)의 다른 구성 요소 중 하나 또는 임의의 조합을 제어할 수 있으며, 통신에 관한 동작 또는 데이터 처리를 수행할 수 있다. 적어도 하나의 프로세서(120)는 메모리(110)에 저장된 하나 이상의 프로그램 또는 명령어(instruction)을 실행할 수 있다. 예를 들어, 적어도 하나의 프로세서(120)는 메모리(110)에 저장된 하나 이상의 명령어를 실행함으로써, 본 개시의 일 실시 예에 따른 방법을 수행할 수 있다.
본 개시의 일 실시 예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 하나의 프로세서에 의해 수행될 수도 있고, 복수의 프로세서에 의해 수행될 수도 있다. 예를 들어, 일 실시 예에 따른 방법에 의해 제1 동작, 제2 동작, 제3 동작이 수행될 때, 제1 동작, 제2 동작 및 제3 동작 모두 제1 프로세서에 의해 수행될 수도 있고, 제1 동작 및 제2 동작은 제1 프로세서(예를 들어, 범용 프로세서)에 의해 수행되고 제3 동작은 제2 프로세서(예를 들어, 인공지능 전용 프로세서)에 의해 수행될 수도 있다.
적어도 하나의 프로세서(120)는 하나의 코어를 포함하는 단일 코어 프로세서(single core processor)로 구현될 수도 있고, 복수의 코어(예를 들어, 동종 멀티 코어 또는 이종 멀티 코어)를 포함하는 하나 이상의 멀티 코어 프로세서(multicore processor)로 구현될 수도 있다. 적어도 하나의 프로세서(120)가 멀티 코어 프로세서로 구현되는 경우, 멀티 코어 프로세서에 포함된 복수의 코어 각각은 캐시 메모리, 온 칩(On-chip) 메모리와 같은 프로세서 내부 메모리를 포함할 수 있으며, 복수의 코어에 의해 공유되는 공통 캐시가 멀티 코어 프로세서에 포함될 수 있다. 또한, 멀티 코어 프로세서에 포함된 복수의 코어 각각(또는 복수의 코어 중 일부)은 독립적으로 본 개시의 일 실시 예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있고, 복수의 코어 전체(또는 일부)가 연계되어 본 개시의 일 실시 예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있다.
본 개시의 일 실시 예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 멀티 코어 프로세서에 포함된 복수의 코어 중 하나의 코어에 의해 수행될 수도 있고, 복수의 코어에 의해 수행될 수도 있다. 예를 들어, 일 실시 예에 따른 방법에 의해 제1 동작, 제2 동작 및 제3 동작이 수행될 때, 제1 동작, 제2 동작 및 제3 동작 모두 멀티 코어 프로세서에 포함된 제1 코어에 의해 수행될 수도 있고, 제1 동작 및 제2 동작은 멀티 코어 프로세서에 포함된 제1 코어에 의해 수행되고 제3 동작은 멀티 코어 프로세서에 포함된 제2 코어에 의해 수행될 수도 있다.
본 개시의 실시 예들에서, 적어도 하나의 프로세서(120)는 하나 이상의 프로세서 및 기타 전자 부품들이 집적된 시스템 온 칩(SoC), 단일 코어 프로세서, 멀티 코어 프로세서, 또는 단일 코어 프로세서 또는 멀티 코어 프로세서에 포함된 코어를 의미할 수 있으며, 여기서 코어는 CPU, GPU, APU, MIC, DSP, NPU, 하드웨어 가속기 또는 기계 학습 가속기 등으로 구현될 수 있으나, 본 개시의 실시 예들이 이에 한정되는 것은 아니다. 다만, 이하에서는 설명의 편의를 위해, 프로세서(120)라는 표현으로 전자 장치(100)의 동작을 설명한다.
프로세서(120)는 메모리(110)에 저장된 어플리케이션이 실행되면, 어플리케이션이 제공하는 화면으로부터 복수의 UI 엘리먼트(element)를 식별할 수 있다. 예를 들어, 프로세서(120)는 어플리케이션이 제공하는 화면으로부터 아이콘, 이미지, 텍스트, 동영상 등을 식별할 수 있다.
프로세서(120)는 신경망 모델을 이용하여 어플리케이션이 제공하는 화면으로부터 복수의 UI 엘리먼트를 식별할 수도 있다. 예를 들어, 메모리(110)는 신경망 모델을 더 저장하며, 프로세서(120)는 화면을 신경망 모델에 입력하여 복수의 UI 엘리먼트의 위치 또는 타입 중 적어도 하나를 식별할 수 있다. 여기서, 타입은 아이콘, 이미지, 텍스트 또는 동영상 중 적어도 하나를 포함할 수 있다.
프로세서(120)는 복수의 UI 엘리먼트 중 선택 후의 동작이 동일한 UI 엘리먼트들을 하나의 UI 오브젝트(object)로 포함하는 템플릿을 획득할 수 있다. 예를 들어, 프로세서(120)는 복수의 UI 엘리먼트 각각을 선택하여 복수의 UI 엘리먼트 각각에 대응되는 동작을 식별하고, 식별된 동작에 기초하여 선택 후의 동작이 동일한 UI 엘리먼트들을 식별할 수 있다. 가령, 프로세서(120)는 이미지와 이미지의 하단에 기재된 텍스트를 각각 클릭하여 클릭 후의 동작이 동일한지 식별하고, 클릭 후의 동작이 동일한 경우 이미지와 이미지의 하단에 기재된 텍스트를 하나의 UI 오브젝트로 식별할 수 있다. 프로세서(120)는 화면에서 식별된 복수의 UI 엘리먼트 전체에 대해 이러한 동작을 수행하여 적어도 하나의 UI 오브젝트를 식별하고, 적어도 하나의 UI 오브젝트를 포함하는 템플릿을 획득할 수 있다.
전자 장치(100)는 디스플레이(미도시)를 더 포함하며, 프로세서(120)는 화면을 디스플레이하도록 디스플레이를 제어하고, 디스플레이된 화면으로부터 복수의 UI 엘리먼트를 식별할 수 있다.
프로세서(120)는 포커스를 디스플레이하도록 디스플레이를 제어하고, 복수의 UI 엘리먼트 중 일부 UI 엘리먼트들에 포커스가 위치하여 일부 UI 엘리먼트들의 표시 상태가 변경되면, 일부 UI 엘리먼트들을 선택 후의 동작이 동일한 UI 엘리먼트들로 식별할 수도 있다. 상술한 예에서, 프로세서(120)는 이미지와 이미지의 하단에 기재된 텍스트로 포커스를 이동시켜 이미지와 텍스트가 모두 변경되면 이미지와 텍스트를 하나의 UI 오브젝트로 식별할 수 있다. 가령, 이미지는 선명도가 변경되고, 텍스트는 색상이 변경되거나 크기가 변경될 수 있다.
프로세서(120)는 화면에서 복수의 UI 엘리먼트 각각의 위치, 복수의 UI 엘리먼트 각각이 차지하는 영역, 복수의 UI 엘리먼트 각각의 타입 및 UI 오브젝트에 대한 정보를 포함하는 템플릿을 획득할 수 있다.
프로세서(120)는 복수의 UI 엘리먼트의 타입 및 위치에 기초하여 복수의 UI 엘리먼트를 각각 복수의 노드로 변환하고, 복수의 노드 및 복수의 노드 간의 거리에 대한 정보에 기초하여 템플릿을 directed acyclic weighted graph로 업데이트할 수도 있다.
또는, 프로세서(120)는 복수의 UI 엘리먼트를 피쳐 벡터(feature vector)로 변환하여 템플릿을 업데이트할 수도 있다.
프로세서(120)는 이상과 같은 1회의 exploration 동작을 통해 어플리케이션에 대응되는 템플릿을 획득할 수 있다. 또한, 프로세서(120)는 추상화된 템플릿을 이용하기 때문에, 동일한 어플리케이션이 제공하는 화면에서 가령, 이미지가 변경되더라도 템플릿에 기초하여 UI 오브젝트를 식별할 수 있다.
메모리(110)는 복수의 어플리케이션 및 복수의 어플리케이션에 각각 대응되는 복수의 템플릿이 맵핑된 정보를 저장하고, 프로세서(120)는 어플리케이션 및 어플리케이션에 대응되는 템플릿을 메모리(110)에 저장하여 맵핑된 정보를 업데이트할 수 있다. 즉, 프로세서(120)는 각 어플리케이션에 대응되는 템플릿을 획득할 수 있다.
프로세서(120)는 신규 어플리케이션이 실행되면, 신규 어플리케이션이 제공하는 신규 화면으로부터 복수의 신규 UI 엘리먼트를 식별하고, 맵핑된 정보에 기초하여 복수의 신규 UI 엘리먼트에 대응되는 템플릿을 식별할 수 있다. 프로세서(120)는 템플릿이 식별되면 식별된 템플릿에 기초하여 신규 어플리케이션의 UI 오브젝트를 식별할 수 있다. 그에 따라, 오검출되는 문제가 해결될 수 있다.
한편, 본 개시에 따른 인공 지능과 관련된 기능은 프로세서(120)와 메모리(110)를 통해 동작될 수 있다.
프로세서(120)는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공 지능 전용 프로세서일 수 있다.
하나 또는 복수의 프로세서는, 메모리(110)에 저장된 기 정의된 동작 규칙 또는 인공 지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공 지능 전용 프로세서인 경우, 인공 지능 전용 프로세서는 특정 인공 지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다. 기 정의된 동작 규칙 또는 인공 지능 모델은 학습을 통해 만들어진 것을 특징으로 한다.
여기서, 학습을 통해 만들어진다는 것은, 기본 인공 지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공 지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공 지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(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), GAN(Generative Adversarial Network) 또는 심층 Q-네트워크(Deep Q-Networks) 등이 있으나, 이에 한정되는 것은 아니다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치(100)의 세부 구성을 나타내는 블럭도이다. 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다. 또한, 도 3에 따르면, 전자 장치(100)는 디스플레이(130), 통신 인터페이스(140), 사용자 인터페이스(150), 마이크(160), 스피커(170), 카메라(180)를 더 포함할 수도 있다. 도 3에 도시된 구성 요소들 중 도 2에 도시된 구성 요소와 중복되는 부분에 대해서는 자세한 설명을 생략하도록 한다.
디스플레이(130)는 이미지를 디스플레이하는 구성으로, LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(110) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(130)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 등으로 구현될 수 있다.
신 인터페이스(140)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 예를 들어, 전자 장치(100)는 통신 인터페이스(140)를 통해 서버 등과 통신을 수행할 수 있다.
통신 인터페이스(140)는 와이파이 모듈, 블루투스 모듈, 적외선 통신 모듈 및 무선 통신 모듈 등을 포함할 수 있다. 여기서, 각 통신 모듈은 적어도 하나의 하드웨어 칩 형태로 구현될 수 있다.
와이파이 모듈, 블루투스 모듈은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행한다. 와이파이 모듈이나 블루투스 모듈을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 적외선 통신 모듈은 시 광선과 밀리미터파 사이에 있는 적외선을 이용하여 근거리에 무선으로 데이터를 전송하는 적외선 통신(IrDA, infrared Data Association)기술에 따라 통신을 수행한다.
무선 통신 모듈은 상술한 통신 방식 이외에 지그비(zigbee), 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), LTE-A(LTE Advanced), 4G(4th Generation), 5G(5th Generation)등과 같은 다양한 무선 통신 규격에 따라 통신을 수행하는 적어도 하나의 통신 칩을 포함할 수 있다.
또는, 통신 인터페이스(140)는 HDMI, DP, 썬더볼트, USB, RGB, D-SUB, DVI 등과 같은 유선 통신 인터페이스를 포함할 수 있다.
그 밖에 통신 인터페이스(140)는 LAN(Local Area Network) 모듈, 이더넷 모듈, 또는 페어 케이블, 동축 케이블 또는 광섬유 케이블 등을 이용하여 통신을 수행하는 유선 통신 모듈 중 적어도 하나를 포함할 수도 있다.
사용자 인터페이스(150)는 버튼, 터치 패드, 마우스 및 키보드 등으로 구현되거나, 디스플레이 기능 및 조작 입력 기능도 함께 수행 가능한 터치 스크린으로도 구현될 수 있다. 여기서, 버튼은 전자 장치(100)의 본체 외관의 전면부나 측면부, 배면부 등의 임의의 영역에 형성된 기계적 버튼, 터치 패드, 휠 등과 같은 다양한 유형의 버튼이 될 수 있다.
마이크(160)는 사운드를 입력받아 오디오 신호로 변환하기 위한 구성이다. 마이크(160)는 프로세서(120)와 전기적으로 연결되며, 프로세서(120)의 제어에 의해 사운드를 수신할 수 있다.
예를 들어, 마이크(160)는 전자 장치(100)의 상측이나 전면 방향, 측면 방향 등에 일체화된 일체형으로 형성될 수 있다. 또는, 마이크(160)는 전자 장치(100)와는 별도의 리모컨 등에 구비될 수도 있다. 이 경우, 리모컨은 마이크(160)를 통해 사운드를 수신하고, 수신된 사운드를 전자 장치(100)로 제공할 수도 있다.
마이크(160)는 아날로그 형태의 사운드를 수집하는 마이크, 수집된 사운드를 증폭하는 앰프 회로, 증폭된 사운드를 샘플링하여 디지털 신호로 변환하는 A/D 변환회로, 변환된 디지털 신호로부터 노이즈 성분을 제거하는 필터 회로 등과 같은 다양한 구성을 포함할 수 있다.
한편, 마이크(160)는 사운드 센서의 형태로 구현될 수도 있으며, 사운드를 수집할 수 있는 구성이라면 어떠한 방식이라도 무방하다.
스피커(170)는 프로세서(120)에서 처리된 각종 오디오 데이터 뿐만 아니라 각종 알림 음이나 음성 메시지 등을 출력하는 구성요소이다.
그 밖에, 전자 장치(100)는 카메라(180)를 더 포함할 수 있다. 카메라(180)는 정지 영상 또는 동영상을 촬상하기 위한 구성이다. 카메라(180)는 특정 시점에서의 정지 영상을 촬영할 수 있으나, 연속적으로 정지 영상을 촬영할 수도 있다.
카메라(180)는 전자 장치(100)의 전방을 촬영하여 전자 장치(100)를 시청 중인 사용자를 촬영할 수 있다. 프로세서(120)는 카메라(180)를 통해 촬영된 사용자의 이미지에 기초하여 컨텐츠가 출력될 영역을 식별할 수도 있다.
카메라(180)는 렌즈, 셔터, 조리개, 고체 촬상 소자, AFE(Analog Front End), TG(Timing Generator)를 포함한다. 셔터는 피사체에 반사된 빛이 카메라(180)로 들어오는 시간을 조절하고, 조리개는 빛이 들어오는 개구부의 크기를 기계적으로 증가 또는 감소시켜 렌즈에 입사되는 광량을 조절한다. 고체 촬상 소자는 피사체에 반사된 빛이 광전하로 축적되면, 광전하에 의한 상을 전기 신호로 출력한다. TG는 고체 촬상 소자의 픽셀 데이터를 리드아웃 하기 위한 타이밍 신호를 출력하며, AFE는 고체 촬상 소자로부터 출력되는 전기 신호를 샘플링하여 디지털화한다.
이상과 같이 전자 장치(100)는 어플리케이션의 화면으로 적어도 하나의 UI 오브젝트를 식별하고, 적어도 하나의 UI 오브젝트를 포함하는 템플릿을 자동으로 획득할 수 있다.
또한, 전자 장치(100)는 획득된 템플릿에 기초하여 신규 어플리케이션의 화면으로부터 UI 오브젝트를 식별하여 오동작을 줄일 수 있다.
이하에서는 도 4 내지 도 14를 통해 전자 장치(100)의 동작을 좀더 구체적으로 설명한다. 도 4 내지 도 14에서는 설명의 편의를 위해 개별적인 실시 예에 대하여 설명한다. 다만, 도 4 내지 도 14의 개별적인 실시 예는 얼마든지 조합된 상태로 실시될 수도 있다.
도 4는 본 개시의 일 실시 예에 따른 전자 장치의 전반적인 동작을 설명하기 위한 도면이다.
프로세서(120)는 도 4에 도시된 바와 같이, exploration 동작(410) 및 execution 동작(420)을 수행할 수 있다. exploration 동작(410)은 템플릿 세트를 획득하는 동작이고, execution 동작(420)은 템플릿 세트를 이용하여 신규 어플리케이션의 UI 오브젝트를 식별하는 동작일 수 있다.
먼저, 프로세서(120)는 UI 엘리먼트 감지 모듈(411)을 통해 어플리케이션이 제공하는 화면(411)으로부터 UI 엘리먼트를 식별할 수 있다. 그리고, 프로세서(120)는 오브젝트 템플릿 추출부(414)를 통해 적어도 하나의 UI 오브젝트를 포함하는 템플릿을 획득할 수 있다. 여기서, 프로세서(120)는 포커스 감지부(413)를 통해 적어도 하나의 UI 오브젝트를 식별할 수도 있으며, 포커스 감지부(413)를 이용한 동작은 선택적인 동작일 수 있다. 프로세서(120)는 이상과 같은 방식으로 복수의 어플리케이션의 화면에 대한 복수의 UI 오브젝트 템플릿 세트(415)를 획득할 수 있다.
프로세서(120)는 복수의 UI 오브젝트 템플릿 세트(415)를 이용하여 execution 동작(420)을 수행할 수 있다. 먼저, 프로세서(120)는 UI 엘리먼트 감지 모듈(411)을 통해 신규 어플리케이션에 제공하는 화면(421)으로부터 UI 엘리먼트를 식별할 수 있다. 프로세서(120)는 UI 엘리먼트 변환기(422)를 통해 식별된 UI 엘리먼트를 추상화할 수 있다. 예를 들어, 프로세서(120)는 식별된 UI 엘리먼트로부터 위치, 차지하는 영역, 타입 등을 포함하는 추상화된 UI 엘리먼트 세트(423)를 획득할 수 있다. 프로세서(120)는 템플릿 매처(424)를 통해 추상화된 UI 엘리먼트 세트(423)와 복수의 UI 오브젝트 템플릿 세트(415)를 비교하고, 추상화된 UI 엘리먼트 세트(423)에 대응되는 UI 오브젝트(425)를 획득할 수 있다. 이러한 동작을 통해 프로세서(120)는 신규 어플리케이션이 제공하는 화면에 대하여도 UI 오브젝트를 식별하여 오동작을 최소화할 수 있다.
도 5는 본 개시의 일 실시 예에 따른 UI 엘리먼트를 식별하는 동작을 설명하기 위한 도면이다.
프로세서(120)는 어플리케이션이 제공하는 화면으로부터 복수의 UI 엘리먼트를 식별할 수 있다. 예를 들어, 프로세서(120)는 도 5의 상단과 같은 어플리케이션이 제공하는 화면을 zero shot 등과 같은 신경망 모델에 입력하여 복수의 UI 엘리먼트의 위치 또는 타입 중 적어도 하나를 식별할 수 있다. 여기서, 타입은 아이콘, 이미지 또는 텍스트 중 적어도 하나를 포함할 수 있다. 도 5의 하단에서는 아이콘(510)을 점선으로, 이미지(520)를 실선으로, 텍스트(530)를 이점 쇄선으로 표시하였으며, 이후의 도면에서도 동일하게 표시하였다.
도 6은 본 개시의 일 실시 예에 따른 UI 오브젝트를 식별하는 방법을 설명하기 위한 도면이다.
프로세서(120)는 화면 상에서 포커스의 위치를 추정할 수 있다. 예를 들어, 프로세서(120)는 화면 및 동작을 UI map generator가 생성한 graph에 반영한 후 그 그래프를 focus detector에 입력하여 각 노드가 포커스되어 있을 확률을 산출하는 방식으로 포커스의 위치를 추정할 수 있다. 또는, 프로세서(120)는 화면 및 동작 이력을 그래프를 거치지 않고 직접 모듈에 입력하여 각 위치에 대해서 포커스가 있을 확률 분포를 산출하는 방식으로 포커스의 위치를 추정할 수도 있다.
프로세서(120)는 포커스를 통해 복수의 UI 엘리먼트 중 하나의 UI 오브젝트를 형성하는 UI 엘리먼트들을 식별할 수 있다. 예를 들어, 프로세서(120)는 도 6의 상단과 같은 화면에서 도 6의 하단과 같이 포커스(610)가 위치한 이미지 및 이미지 하단의 텍스트(핫 100)가 변경되는 것을 식별하여 포커스가 위치한 이미지 및 이미지 하단의 텍스트를 하나의 UI 오브젝트로 식별할 수 있다.
또는, 프로세서(120)는 복수의 UI 엘리먼트 각각을 실행하여 동일한 동작을 수행하는 UI 엘리먼트들을 하나의 UI 오브젝트로 식별할 수도 있다.
다만, 이에 한정되는 것은 아니며, 프로세서(120)는 얼마든지 다양한 방법을 통해 복수의 UI 엘리먼트로부터 적어도 하나의 UI 오브젝트를 식별할 수도 있다.
도 7은 본 개시의 일 실시 예에 따른 템플릿 획득 방법을 설명하기 위한 도면이다.
프로세서(120)는 화면으로부터 복수의 UI 엘리먼트를 식별한 후, 복수의 UI 엘리먼트를 추상화하여 템플릿을 획득할 수 있다. 예를 들어, 프로세서(120)는 도 7의 상단과 같은 화면(710)으로부터 복수의 UI 엘리먼트를 식별할 수 있다. 설명의 편의를 위해, 화면(710)으로부터 식별된 복수의 UI 엘리먼트 중 일부를 추상화하는 과정을 도 7의 나머지 도면을 통해 도시하였다.
프로세서(120)는 720과 같은 UI 엘리먼트들을 730과 같이 UI 엘리먼트들 각각의 위치 및 타입으로 추상화할 수 있다. 프로세서(120)는 730과 같이 추상화된 UI 엘리먼트들을 템플릿으로 획득할 수 있다. 또는, 프로세서(120)는 730과 같이 추상화된 UI 엘리먼트들을 740과 같은 노드들로 추상화할 수도 있다. 프로세서(120)는 740과 같이 추상화된 UI 엘리먼트들을 템플릿으로 획득할 수도 있다.
도 8 및 도 9는 본 개시의 일 실시 예에 따른 좀더 구체적인 추상화 방법을 설명하기 위한 도면들이다.
프로세서(120)는 도 8의 810과 같이, 어플리케이션이 제공하는 화면으로부터 복수의 UI 엘리먼트를 식별할 수 있다. 프로세서(120)는 도 8의 820과 같이, 복수의 UI 엘리먼트를 위치, 차지하는 영역, 타입으로 추상화할 수 있다. 프로세서(120)는 도 8의 830과 같이, 복수의 UI 엘리먼트 중 적어도 하나의 UI 오브젝트를 식별할 수 있다. 예를 들어, 프로세서(120)는 복수의 UI 엘리먼트 각각을 클릭하여(monkey test) 동일한 링크로 이동하는 UI 엘리먼트들을 동일한 UI 오브젝트로 식별할 수 있다. 프로세서(120)는 도 8의 830과 같이, 추상화된 복수의 UI 엘리먼트 및 UI 오브젝트 중 중복되는 부분을 제거하여 도 8의 840의 좌측과 같이 추상화할 수 있다. 또한, 프로세서(120)는 도 8의 840의 좌측을 도 8의 840의 우측과 같이 노드들로 추상화한 후, 도 8의 850과 같은 템플릿을 획득할 수 있다.
또는, 프로세서(120)는 도 9의 910과 같이, 어플리케이션이 제공하는 화면으로부터 복수의 UI 엘리먼트를 식별할 수 있다. 프로세서(120)는 도 9의 920과 같이, 복수의 UI 엘리먼트를 위치, 차지하는 영역, 타입으로 추상화할 수 있다. 프로세서(120)는 도 9의 930과 같이, 복수의 UI 엘리먼트 중 포커스가 위치한 UI 오브젝트를 식별하여 도 9의 940의 좌측과 같이 추상화할 수 있다. 또한, 프로세서(120)는 도 9의 940의 좌측을 도 9의 940의 우측과 같이 노드들로 추상화한 후, 도 9의 950과 같은 템플릿의 일부를 획득할 수 있다. 프로세서(120)는 도 9의 930의 화면에서 포커스의 위치를 이동하여(monkey test) 복수의 UI 엘리먼트 중 포커스가 새롭게 위치한 UI 오브젝트를 식별할 수 있다. 프로세서(120)는 포커스를 이동시키는 동작을 반복하여 도 9의 950과 같은 템플릿의 일부를 순차적으로 획득할 수 있으며, 최종적으로는 도 8의 850과 동일한 템플릿을 획득할 수 있다.
도 10 내지 도 12는 본 개시의 일 실시 예에 따른 추상화 정도를 설명하기 위한 도면들이다.
프로세서(120)는 복수의 UI 엘리먼트를 이미지 블록으로 추상화할 수 있다. 예를 들어, 프로세서(120)는 도 10의 좌측의 복수의 UI 엘리먼트를 마스킹(masking) 및 컬러링(coloring)하여 도 10의 우측과 같은 추상화된 이미지 블록을 획득할 수 있다.
프로세서(120)는 추상화된 이미지 블록을 템플릿으로 저장할 수 있다. 이 경우, 프로세서(120)는 아이콘, 이미지, 텍스트 등이 변경되더라도 추상화 결과가 동일하면 동일한 화면으로 식별할 수 있다.
또는, 프로세서(120)는 마스킹 및 컬러링에 따른 추상화된 이미지 블록을 노드들로 추상화할 수도 있다. 예를 들어, 프로세서(120)는 도 11에 도시된 바와 같이, 마스킹 및 컬러링에 따른 추상화된 이미지 블록을 DAWG(directed acyclic weighted graph)로 변환할 수도 있다. 여기서, vertex(노드)는 타입을 나타내고, 엣지는 vertices 간의 최단 거리 벡터일 수 있다. 최단 거리 벡터는 우측 하단을 향하는 방향으로 설정될 수 있다.
프로세서(120)는 DAWG를 템플릿으로 저장할 수도 있다. 이 경우, 추상화된 이미지 블록을 이용하는 경우보다 좀더 간단한 비교가 가능한 장점이 있다.
또는, 프로세서(120)는 도 12에 도시된 바와 같이, image embedding model을 통해 복수의 UI 엘리먼트를 피쳐 벡터로 변환하여 템플릿을 획득할 수도 있다.
도 13은 본 개시의 일 실시 예에 따른 템플릿을 활용하는 방법을 설명하기 위한 도면이다.
프로세서(120)는 템플릿이 이미지 블록으로 구현된 경우, vision based template matching(OpenCV) 기술을 활용하여 신규 어플리케이션이 제공하는 화면에 대응되는 템플릿을 식별할 수 있다.
또는, 프로세서(120)는 템플릿이 DAWG로 구현된 경우, deep learning based subgraph matching 기술을 활용하여 신규 어플리케이션이 제공하는 화면에 대응되는 템플릿을 식별할 수도 있다.
또는, 프로세서(120)는 템플릿이 피쳐 벡터로 구현된 경우, graph attention network를 활용하여 신규 어플리케이션이 제공하는 화면에 대응되는 템플릿을 식별할 수도 있다.
프로세서(120)는 도 13에 도시된 바와 같이, 식별된 템플릿이 제공하는 UI 오브젝트(850)를 식별하고, 식별된 UI 오브젝트에 기초하여 신규 어플리케이션이 제공하는 화면에서 하나의 UI 오브젝트로 포함되는 UI 엘리먼트들을 식별할 수 있다.
그에 따라, 신규 어플리케이션이 UI Object Tree를 제공하지 않더라도, 프로세서(120)는 신규 어플리케이션이 제공하는 화면에서 UI 오브젝트를 식별할 수 있으며, 사용자의 음성 명령에 따른 제어를 수행할 수 있다. 다만, 이에 한정되는 것은 아니며, 프로세서(120)는 타 전자 장치로부터 화면을 수신하여 디스플레이하는 경우에도 타 전자 장치로부터 수신된 화면에 포함된 UI 오브젝트를 식별할 수 있으며, 오동작이 최소화된 제어가 가능하다.
도 14는 본 개시의 일 실시 예에 따른 추상화 방법을 설명하기 위한 도면이다.
프로세서(120)는 도 14의 좌측과 같이 추상화된 상태에서 다른 노드를 통해서 가는게 더 빠른 경우 1 step connection을 제거하여 도 14의 우측과 같이 좀더 간략화된 템플릿을 획득할 수도 있다.
이러한 동작을 통해 저장 공간을 확보할 수 있고, 비교 연산 과정에서의 리소스를 줄일 수 있다.
도 15는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 어플리케이션이 실행되면, 어플리케이션이 제공하는 화면으로부터 복수의 UI 엘리먼트(element)를 식별한다(S1510). 그리고, 복수의 UI 엘리먼트 중 선택 후의 동작이 동일한 UI 엘리먼트들을 하나의 UI 오브젝트(object)로 포함하는 템플릿을 획득한다(S1520).
여기서, 획득하는 단계(S1520)는 복수의 UI 엘리먼트 각각을 선택하여 복수의 UI 엘리먼트 각각에 대응되는 동작을 식별하고, 식별된 동작에 기초하여 선택 후의 동작이 동일한 UI 엘리먼트들을 식별할 수 있다.
한편, 식별하는 단계(S1510)는 화면을 디스플레이하고, 디스플레이된 화면으로부터 복수의 UI 엘리먼트를 식별할 수 있다.
여기서, 획득하는 단계(S1520)는 포커스를 디스플레이하고, 복수의 UI 엘리먼트 중 일부 UI 엘리먼트들에 포커스가 위치하여 일부 UI 엘리먼트들의 표시 상태가 변경되면, 일부 UI 엘리먼트들을 선택 후의 동작이 동일한 UI 엘리먼트들로 식별할 수 있다.
한편, 식별하는 단계(S1510)는 화면을 신경망 모델에 입력하여 복수의 UI 엘리먼트의 위치 또는 타입 중 적어도 하나를 식별하며, 타입은 아이콘, 이미지 또는 텍스트 중 적어도 하나를 포함할 수 있다.
여기서, 획득하는 단계(S1520)는 화면에서 복수의 UI 엘리먼트 각각의 위치, 복수의 UI 엘리먼트 각각이 차지하는 영역, 복수의 UI 엘리먼트 각각의 타입 및 UI 오브젝트에 대한 정보를 포함하는 템플릿을 획득할 수 있다.
그리고, 복수의 UI 엘리먼트의 타입 및 위치에 기초하여 복수의 UI 엘리먼트를 각각 복수의 노드로 변환하고, 복수의 노드 및 복수의 노드 간의 거리에 대한 정보에 기초하여 템플릿을 directed acyclic weighted graph로 업데이트하는 단계를 더 포함할 수 있다.
또는, 복수의 UI 엘리먼트를 피쳐 벡터(feature vector)로 변환하여 템플릿을 업데이트하는 단계를 더 포함할 수 있다.
한편, 복수의 어플리케이션 및 복수의 어플리케이션에 각각 대응되는 복수의 템플릿이 맵핑된 정보를 저장하는 단계 및 어플리케이션 및 어플리케이션에 대응되는 템플릿을 저장하여 맵핑된 정보를 업데이트하는 단계를 더 포함할 수 있다.
여기서, 신규 어플리케이션이 실행되면, 신규 어플리케이션이 제공하는 신규 화면으로부터 복수의 신규 UI 엘리먼트를 식별하는 단계 및 맵핑된 정보에 기초하여 복수의 신규 UI 엘리먼트에 대응되는 템플릿을 식별하는 단계를 더 포함할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치는 어플리케이션의 화면으로 적어도 하나의 UI 오브젝트를 식별하고, 적어도 하나의 UI 오브젝트를 포함하는 템플릿을 자동으로 획득할 수 있다. 그에 따라, 전자 장치는 동일한 어플리케이션이 실행되면 획득된 템플릿에 기초하여 UI 오브젝트를 식별할 수 있다.
또한, 전자 장치는 획득된 템플릿에 기초하여 신규 어플리케이션의 화면으로부터 UI 오브젝트를 식별하여 오동작을 줄일 수 있다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 다양한 실시 예들에 따른 기기의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 기기에서의 처리 동작을 특정 기기가 수행하도록 한다. 비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형 실시 예들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해 되어져서는 안될 것이다.
100 : 전자 장치 110 : 메모리
120 : 프로세서 130 : 디스플레이
140 : 통신 인터페이스 150 : 사용자 인터페이스
160 : 마이크 170 : 스피커
180 : 카메라

Claims (20)

  1. 전자 장치에 있어서,
    메모리; 및
    상기 메모리에 연결되어 상기 전자 장치를 제어하는 적어도 하나의 프로세서;를 포함하며,
    상기 프로세서는,
    상기 메모리에 저장된 어플리케이션이 실행되면, 상기 어플리케이션이 제공하는 화면으로부터 복수의 UI 엘리먼트(element)를 식별하고,
    상기 복수의 UI 엘리먼트 중 선택 후의 동작이 동일한 UI 엘리먼트들을 하나의 UI 오브젝트(object)로 포함하는 템플릿을 획득하는, 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 UI 엘리먼트 각각을 선택하여 상기 복수의 UI 엘리먼트 각각에 대응되는 동작을 식별하고,
    상기 식별된 동작에 기초하여 상기 선택 후의 동작이 동일한 UI 엘리먼트들을 식별하는, 전자 장치.
  3. 제1항에 있어서,
    디스플레이;를 더 포함하며,
    상기 프로세서는,
    상기 화면을 디스플레이하도록 상기 디스플레이를 제어하고,
    상기 디스플레이된 화면으로부터 상기 복수의 UI 엘리먼트를 식별하는, 전자 장치.
  4. 제3항에 있어서,
    상기 프로세서는,
    포커스를 디스플레이하도록 상기 디스플레이를 제어하고,
    상기 복수의 UI 엘리먼트 중 일부 UI 엘리먼트들에 상기 포커스가 위치하여 상기 일부 UI 엘리먼트들의 표시 상태가 변경되면, 상기 일부 UI 엘리먼트들을 상기 선택 후의 동작이 동일한 UI 엘리먼트들로 식별하는, 전자 장치.
  5. 제1항에 있어서,
    상기 메모리는,
    신경망 모델을 더 저장하며,
    상기 프로세서는,
    상기 화면을 상기 신경망 모델에 입력하여 상기 복수의 UI 엘리먼트의 위치 또는 타입 중 적어도 하나를 식별하며,
    상기 타입은,
    아이콘, 이미지 또는 텍스트 중 적어도 하나를 포함하는, 전자 장치.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 화면에서 상기 복수의 UI 엘리먼트 각각의 위치, 상기 복수의 UI 엘리먼트 각각이 차지하는 영역, 상기 복수의 UI 엘리먼트 각각의 타입 및 상기 UI 오브젝트에 대한 정보를 포함하는 상기 템플릿을 획득하는, 전자 장치.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 복수의 UI 엘리먼트의 타입 및 위치에 기초하여 상기 복수의 UI 엘리먼트를 각각 복수의 노드로 변환하고, 상기 복수의 노드 및 상기 복수의 노드 간의 거리에 대한 정보에 기초하여 상기 템플릿을 directed acyclic weighted graph로 업데이트하는, 전자 장치.
  8. 제6항에 있어서,
    상기 프로세서는,
    상기 복수의 UI 엘리먼트를 피쳐 벡터(feature vector)로 변환하여 상기 템플릿을 업데이트하는, 전자 장치.
  9. 제1항에 있어서,
    상기 메모리는,
    복수의 어플리케이션 및 상기 복수의 어플리케이션에 각각 대응되는 복수의 템플릿이 맵핑된 정보를 저장하고,
    상기 프로세서는,
    상기 어플리케이션 및 상기 어플리케이션에 대응되는 상기 템플릿을 상기 메모리에 저장하여 상기 맵핑된 정보를 업데이트하는, 전자 장치.
  10. 제9항에 있어서,
    상기 프로세서는,
    신규 어플리케이션이 실행되면, 상기 신규 어플리케이션이 제공하는 신규 화면으로부터 복수의 신규 UI 엘리먼트를 식별하고,
    상기 맵핑된 정보에 기초하여 상기 복수의 신규 UI 엘리먼트에 대응되는 템플릿을 식별하는, 전자 장치.
  11. 전자 장치의 제어 방법에 있어서,
    어플리케이션이 실행되면, 상기 어플리케이션이 제공하는 화면으로부터 복수의 UI 엘리먼트(element)를 식별하는 단계; 및
    상기 복수의 UI 엘리먼트 중 선택 후의 동작이 동일한 UI 엘리먼트들을 하나의 UI 오브젝트(object)로 포함하는 템플릿을 획득하는 단계;를 포함하는, 제어 방법.
  12. 제11항에 있어서,
    상기 획득하는 단계는,
    상기 복수의 UI 엘리먼트 각각을 선택하여 상기 복수의 UI 엘리먼트 각각에 대응되는 동작을 식별하고,
    상기 식별된 동작에 기초하여 상기 선택 후의 동작이 동일한 UI 엘리먼트들을 식별하는, 제어 방법.
  13. 제11항에 있어서,
    상기 식별하는 단계는,
    상기 화면을 디스플레이하고,
    상기 디스플레이된 화면으로부터 상기 복수의 UI 엘리먼트를 식별하는, 제어 방법.
  14. 제13항에 있어서,
    상기 획득하는 단계는,
    포커스를 디스플레이하고,
    상기 복수의 UI 엘리먼트 중 일부 UI 엘리먼트들에 상기 포커스가 위치하여 상기 일부 UI 엘리먼트들의 표시 상태가 변경되면, 상기 일부 UI 엘리먼트들을 상기 선택 후의 동작이 동일한 UI 엘리먼트들로 식별하는, 제어 방법.
  15. 제11항에 있어서,
    상기 식별하는 단계는,
    상기 화면을 신경망 모델에 입력하여 상기 복수의 UI 엘리먼트의 위치 또는 타입 중 적어도 하나를 식별하며,
    상기 타입은,
    아이콘, 이미지 또는 텍스트 중 적어도 하나를 포함하는, 제어 방법.
  16. 제15항에 있어서,
    상기 획득하는 단계는,
    상기 화면에서 상기 복수의 UI 엘리먼트 각각의 위치, 상기 복수의 UI 엘리먼트 각각이 차지하는 영역, 상기 복수의 UI 엘리먼트 각각의 타입 및 상기 UI 오브젝트에 대한 정보를 포함하는 상기 템플릿을 획득하는, 제어 방법.
  17. 제16항에 있어서,
    상기 복수의 UI 엘리먼트의 타입 및 위치에 기초하여 상기 복수의 UI 엘리먼트를 각각 복수의 노드로 변환하고, 상기 복수의 노드 및 상기 복수의 노드 간의 거리에 대한 정보에 기초하여 상기 템플릿을 directed acyclic weighted graph로 업데이트하는 단계;를 더 포함하는, 제어 방법.
  18. 제16항에 있어서,
    상기 복수의 UI 엘리먼트를 피쳐 벡터(feature vector)로 변환하여 상기 템플릿을 업데이트하는 단계;를 더 포함하는, 제어 방법.
  19. 제11항에 있어서,
    복수의 어플리케이션 및 상기 복수의 어플리케이션에 각각 대응되는 복수의 템플릿이 맵핑된 정보를 저장하는 단계; 및
    상기 어플리케이션 및 상기 어플리케이션에 대응되는 상기 템플릿을 저장하여 상기 맵핑된 정보를 업데이트하는 단계;를 더 포함하는, 제어 방법.
  20. 제19항에 있어서,
    신규 어플리케이션이 실행되면, 상기 신규 어플리케이션이 제공하는 신규 화면으로부터 복수의 신규 UI 엘리먼트를 식별하는 단계; 및
    상기 맵핑된 정보에 기초하여 상기 복수의 신규 UI 엘리먼트에 대응되는 템플릿을 식별하는 단계;를 더 포함하는, 제어 방법.
KR1020220119973A 2022-09-22 2022-09-22 Ui 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법 KR20240040984A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220119973A KR20240040984A (ko) 2022-09-22 2022-09-22 Ui 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법
PCT/KR2023/010887 WO2024063301A1 (ko) 2022-09-22 2023-07-27 Ui 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220119973A KR20240040984A (ko) 2022-09-22 2022-09-22 Ui 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20240040984A true KR20240040984A (ko) 2024-03-29

Family

ID=90454550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220119973A KR20240040984A (ko) 2022-09-22 2022-09-22 Ui 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법

Country Status (2)

Country Link
KR (1) KR20240040984A (ko)
WO (1) WO2024063301A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101560183B1 (ko) * 2008-04-17 2015-10-15 삼성전자주식회사 사용자 인터페이스를 제공/수신하는 방법 및 장치
US20120317504A1 (en) * 2011-06-13 2012-12-13 Microsoft Corporation Automated user interface object transformation and code generation
US10324926B2 (en) * 2015-05-15 2019-06-18 Microsoft Technology Licensing, Llc System and method for extracting and sharing application-related user data
US10521502B2 (en) * 2016-08-10 2019-12-31 International Business Machines Corporation Generating a user interface template by combining relevant components of the different user interface templates based on the action request by the user and the user context
US10261762B2 (en) * 2016-08-16 2019-04-16 Sap Se User interface template generation using dynamic in-memory database techniques

Also Published As

Publication number Publication date
WO2024063301A1 (ko) 2024-03-28

Similar Documents

Publication Publication Date Title
KR102451198B1 (ko) 이미지 생성 방법 및 장치
JP7470137B2 (ja) 視覚的特徴をサウンドタグに相関させることによるビデオタグ付け
US11831980B2 (en) Electronic device and controlling method of electronic device
KR102322773B1 (ko) 전극편의 버를 검출하기 위한 방법 및 장치
US11126140B2 (en) Electronic device, external device capable of being combined with the electronic device, and a display method thereof
US20220068032A1 (en) Headset-based interface and menu system
US11638060B2 (en) Electronic apparatus and control method thereof
TWI735112B (zh) 圖像生成方法、電子設備和儲存介質
US20230206420A1 (en) Method for detecting defect and method for training model
KR102586014B1 (ko) 전자 장치 및 전자 장치의 제어 방법
CN107423049A (zh) 实现在线编程的方法、浏览器和终端设备
CN112116690A (zh) 视频特效生成方法、装置及终端
KR20200080389A (ko) 전자 장치 및 그 제어 방법
KR102416421B1 (ko) 터치 패드 입력을 갖는 게임 컨트롤러
KR20220037108A (ko) 대상 객체의 크기를 식별하는 방법 및 장치
KR102640871B1 (ko) 증강 현실을 이용한 영상 데이터를 제공하는 전자 장치 및 그 제어 방법
KR20240040984A (ko) Ui 오브젝트를 포함하는 템플릿을 획득하기 위한 전자 장치 및 그 제어 방법
KR20230096825A (ko) 재난 정보를 제공하기 위한 전자 장치 및 그 제어 방법
TWI745808B (zh) 狀況認知系統與方法
CN114154520A (zh) 机器翻译模型的训练方法、机器翻译方法、装置及设备
KR20240050111A (ko) 사용자 음성에 대응되는 동작을 수행하기 위한 전자 장치 및 그 제어 방법
US20240161311A1 (en) Electronic apparatus for obtaining contact information for an object and control method thereof
JP7111309B2 (ja) 情報処理装置、学習装置、認識装置、静止画の生産方法、およびプログラム
US20240073637A1 (en) Electronic apparatus for identifying position of user and control method thereof
TWM596391U (zh) 狀況認知系統