KR20220107381A - 전자 장치 및 그 제어 방법 - Google Patents

전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20220107381A
KR20220107381A KR1020210009940A KR20210009940A KR20220107381A KR 20220107381 A KR20220107381 A KR 20220107381A KR 1020210009940 A KR1020210009940 A KR 1020210009940A KR 20210009940 A KR20210009940 A KR 20210009940A KR 20220107381 A KR20220107381 A KR 20220107381A
Authority
KR
South Korea
Prior art keywords
electronic device
content
content information
embedding
obtaining
Prior art date
Application number
KR1020210009940A
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 KR1020210009940A priority Critical patent/KR20220107381A/ko
Priority to PCT/KR2021/009014 priority patent/WO2022158663A1/ko
Priority to US17/429,517 priority patent/US20230185843A1/en
Publication of KR20220107381A publication Critical patent/KR20220107381A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/56Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • 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
    • 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/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • 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
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/70Labelling scene content, e.g. deriving syntactic or semantic representations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language

Abstract

전자 장치가 개시된다. 본 개시에 따른 전자 장치는, 통신 인터페이스, 적어도 하나의 인스트럭션을 저장하는 메모리, 및 프로세서를 포함하고, 프로세서는, 사용자로부터 사용자 명령을 획득하여 복수의 외부 장치로 전송하고, 복수의 외부 장치로부터 제1 질문에 대한 정보 및 제1 응답에 대한 정보를 수신하고, 제1 응답에 대한 정보를 분석하여 제1 응답 간의 충돌이 발생하는 지 여부를 판단하고, 충돌이 발생된 것으로 판단되면 재질문 대상에 대한 정보를 획득하고, 적어도 하나의 외부 장치로 충돌에 대한 정보를 전송하고, 적어도 하나의 외부 장치로부터, 충돌에 대한 정보를 바탕으로 생성된 제2 질문에 대한 제2 응답에 대한 정보를 수신하고, 제1 응답에 대한 정보 및 제2 응답에 대한 정보를 바탕으로 최종 응답을 획득하고, 최종 응답을 출력할 수 있다.

Description

전자 장치 및 그 제어 방법{ELECTRONIC APPARATUS AND METHOD FOR CONTROLLING THEREOF}
본 개시는 전자 장치 및 그 제어 방법으로, 보다 상세하게는, 사용자의 스케치 입력을 바탕으로 컨텐츠 정보를 획득하여 제공하는 전자 장치 및 그 제어 방법에 관한 것이다.
전자 기술의 발달에 힘입어 스마트 폰과 같은 사용자 단말에는 이미지 컨텐츠, 오디오 컨텐츠, 비디오 컨텐츠 등 다양한 종류의 컨텐츠에 대한 방대한 양의 데이터가 저장된다.
한편, 사용자 단말에는 방대한 양의 데이터가 존재함에 따라, 사용자는 사용자 단말에 저장된 특정 컨텐츠를 찾는데 어려움이 있다. 예를 들어, 사용자는 사용자 단말에 저장된 특정 이미지(예로, 영수증을 촬영한 이미지)가 정확히 어디에 저장되어 있는지 기억하지 못할 수 있다. 이 같은 경우, 사용자는 갤러리에 저장된 수많은 이미지들을 일일이 확인해가며 이미지를 찾아야 하는 번거로움이 있다.
이에 따라, 사용자가 보다 편리하고 직관적으로 컨텐츠 정보를 검색할 수 있는 기술에 대한 필요성이 대두된다.
본 발명이 해결하고자 하는 일 기술적 과제는, 사용자의 스케치 입력을 바탕으로 컨텐츠 정보를 검색하는 전자 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상술한 기술적 과제를 해결하기 위한 본 개시의 예시적인 일 실시 예에 따르면, 전자 장치에 있어서, 입력 인터페이스; 복수의 제1 임베딩 벡터(embedding vector)와 상기 복수의 제1 임베딩 벡터 각각과 관련된 컨텐츠 정보를 저장하는 메모리; 프로세서;를 포함하고, 상기 프로세서는, 상기 입력 인터페이스를 통해 사용자의 스케치(sketch) 입력을 획득하고, 상기 스케치 입력을 신경망 모델에 입력하여 제2 임베딩 벡터를 획득하고, 상기 복수의 제1 임베딩 벡터 중 상기 제2 임베딩 벡터와의 유사도가 가장 높은 제1 임베딩 벡터를 식별하고, 상기 식별된 제1 임베딩 벡터에 대응되는 컨텐츠 정보를 획득하여 출력하는 전자 장치가 제공될 수 있다.
상술한 기술적 과제를 해결하기 위한 본 개시의 예시적인 다른 일 실시 예에 따르면, 전자 장치의 제어 방법에 있어서, 복수의 제1 임베딩 벡터(embedding vector)와 상기 복수의 제1 임베딩 벡터 각각과 관련된 컨텐츠 정보를 저장하는 단계; 사용자의 스케치(sketch) 입력을 획득하는 단계; 상기 스케치 입력을 신경망 모델에 입력하여 제2 임베딩 벡터를 획득하는 단계; 상기 복수의 제1 임베딩 벡터 중 상기 제2 임베딩 벡터와의 유사도가 가장 높은 제1 임베딩 벡터를 식별하는 단계; 및 상기 식별된 제1 임베딩 벡터에 대응되는 컨텐츠 정보를 획득하여 출력하는 단계;를 포함하는 제어 방법이 제공될 수 있다.
본 개시의 과제의 해결 수단이 상술한 해결 수단들로 제한되는 것은 아니며, 언급되지 아니한 해결 수단들은 본 명세서 및 첨부된 도면으로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치는 사용자의 스케치 입력을 바탕으로 컨텐츠 정보를 검색할 수 있다. 이에 따라, 사용자 편의성 및 만족감이 향상될 수 있다.
그 외에 본 개시의 실시 예로 인하여 얻을 수 있거나 예측되는 효과에 대해서는 본 개시의 실시 예에 대한 상세한 설명에서 직접적 또는 암시적으로 개시하도록 한다. 예컨대, 본 개시의 실시 예에 따라 예측되는 다양한 효과에 대해서는 후술될 상세한 설명 내에서 개시될 것이다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 컨셉을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 도시한 블록도이다.
도 3a는 본 개시의 일 실시 예에 따른 신경망 모델을 설명하기 위한 도면이다.
도 3b는 본 개시의 일 실시 예에 따른 신경망 모델의 학습 방법을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시 예에 따른 유사도 획득 방법을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 데이터베이스에 저장된 컨텐츠 정보를 설명하기 위한 도면이다.
도 6a는 본 개시의 일 실시 예에 따른 컨텐츠 출력 방법을 설명하기 위한 도면이다.
도 6b는 본 개시의 다른 일 실시 예에 따른 컨텐츠 출력 방법을 설명하기 위한 도면이다.
도 7a는 본 개시의 일 실시 예에 따른 컨텐츠 정보 제공 방법을 설명하기 위한 도면이다.
도 7b는 본 개시의 다른 일 실시 예에 따른 컨텐츠 정보 제공 방법을 설명하기 위한 도면이다.
도 7c는 본 개시의 또 다른 일 실시 예에 따른 컨텐츠 정보 제공 방법을 설명하기 위한 도면이다.
도 7d는 본 개시의 또 다른 일 실시 예에 따른 컨텐츠 정보 제공 방법을 설명하기 위한 도면이다.
도 8a는 본 개시의 일 실시 예에 따른 문서 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 순서도이다.
도 8b는 본 개시의 일 실시 예에 따른 문서 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 도면이다.
도 9a는 본 개시의 일 실시 예에 따른 이미지 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 순서도이다.
도 9b는 본 개시의 일 실시 예에 따른 이미지 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 도면이다.
도 10a는 본 개시의 일 실시 예에 따른 오디오 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 순서도이다.
도 10b는 본 개시의 일 실시 예에 따른 오디오 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 도면이다.
도 11a는 본 개시의 일 실시 예에 따른 비디오 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 순서도이다.
도 11b는 본 개시의 일 실시 예에 따른 비디오 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 도면이다.
도 12는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 도시한 순서도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다. 
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 컨셉을 설명하기 위한 도면이다. 전자 장치(100)는 터치 패널(111)을 통해 사용자의 스케치(sketch) 입력(11)을 획득할 수 있다. 예로, 전자 장치(100)는 외부 장치(예로, 스타일러스 펜)(20)을 이용하여 터치 패널(111)을 터치하는 사용자의 스케치 입력(11)을 획득할 수 있다. 스케치 입력(11)이란, 터치 패널(111)을 통하여 사용자로부터 수신되는 터치 위치 또는 터치 드래그의 경로를 소정 색상으로 표시할 경우, 소정 색상으로의 표시에 의해서 형성되는 형상을 의미할 수 있다.
전자 장치(100)는 스케치 입력(11)을 바탕으로 전자 장치(100)에 저장된 컨텐츠 정보 중 스케치 입력(11)과 관련된 정보를 제공할 수 있다. 예를 들어, 전자 장치(100)는 스케치 입력(11)과 관련된 이미지 컨텐츠(12)를 디스플레이할 수 있다. 다만 이는 일 실시 예에 불과하며, 전자 장치(100)는 오디오 컨텐츠, 비디오 컨텐츠 및 문서 컨텐츠를 비롯한 다양한 유형의 컨텐츠 정보를 제공할 수 있다. 한편, 제공되는 컨텐츠의 유형은, 컨텐츠의 유형을 선택하는 사용자 명령에 기초하여 결정될 수 있다.
이와 같이, 전자 장치(100)는 특정 오브젝트를 지칭하는 키워드가 아닌 사용자의 스케치 입력(11)에 기초하여 컨텐츠 정보를 획득하여 제공할 수 있다. 이에 따라, 오브젝트의 형상은 알고 있으나 오브젝트를 지칭하는 단어를 알지 못하는 사용자도 전자 장치(100)를 이용하여 컨텐츠를 검색하고 감상할 수 있다. 이에 따라, 사용자 편의성 및 만족감이 향상될 수 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 도시한 블록도이다. 전자 장치(100)는 입력 인터페이스(110), 디스플레이(120), 스피커(130), 통신 인터페이스(140), 메모리(150) 및 프로세서(160)를 포함할 수 있다. 예로, 전자 장치(100)는 스마트 폰, 태블릿 PC, TV 및 스마트 워치 중 하나일 수 있으나, 이에 한정되는 것은 아니다. 이하에서는 전자 장치(100)의 각 구성에 대하여 설명하도록 한다.
입력 인터페이스(110)는 사용자 명령을 획득하기 위한 구성이다. 예로, 입력 인터페이스(110)는 사용자의 터치 입력을 획득하기 위한 터치 패널 및 사용자의 제스처를 획득하기 위한 카메라 중 적어도 하나로 구현될 수 있으나, 이에 한정되는 것은 아니다.
디스플레이(120)는 프로세서(160)의 제어에 의해 다양한 화면을 표시할 수 있다. 예로, 디스플레이(120)는 사용자에 의해 입력되는 스케치 입력에 대응되는 그림을 디스플레이할 수 있다. 디스플레이(120)는 사용자의 스케치 입력을 수정하기 위한 오브젝트(예로, 지우개 아이콘) 및 스케치 입력에 대한 검색을 수행하기 위한 오브젝트(예로, 검색 아이콘)를 디스플레이할 수 있다. 디스플레이(120)는 컨텐츠 정보의 유형을 나타내는 아이콘을 디스플레이할 수 있다. 또한, 디스플레이(120)는 사용자의 스케치 입력을 바탕으로 식별되는 컨텐츠를 디스플레이할 수 있다. 한편, 디스플레이(120)는 LCD(Liquid Crystal Display Panel), OLED(Organic Light Emitting Diodes) 등으로 구현될 수 있다.
스피커(130)는 프로세서(160)의 제어에 의해 다양한 오디오 신호를 출력할 수 있다. 특히, 스피커(130)는 오디오 컨텐츠 및 비디오 컨텐츠에 대응되는 오디오 신호를 출력할 수 있다.
통신 인터페이스(140)는 적어도 하나의 회로를 포함하며 다양한 유형의 외부 기기 또는 외부 서버와 통신을 수행할 수 있다. 예를 들어, 통신 인터페이스(140)는 외부 장치로부터 외부 장치의 유형에 대한 정보를 수신할 수 있다. 또한, 통신 인터페이스(140)는 외부 장치의 유형에 대한 정보 및 사용자의 스케치 입력을 바탕으로 식별된 컨텐츠 정보를 외부 장치로 전송할 수 있다.
한편, 통신 인터페이스(140)는 다양한 유형의 통신 방식에 따라 외부 기기 또는 외부 서버와 통신을 수행할 수 있다. 예로, 통신 인터페이스(140)는 무선 혹은 유선으로 데이터 통신을 수행할 수 있다. 무선 통신 방식으로 외부 장치와 통신을 수행할 경우, 통신 인터페이스(140)는 와이파이 통신 모듈, 불루투스 모듈, 셀룰러 통신모듈, 3G(3세대) 이동통신 모듈, 4G(4세대) 이동통신 모듈, 4세대 LTE(Long Term Evolution) 통신 모듈, 5G(5세대) 이동통신 모듈 중 적어도 하나를 포함할 수 있다.
메모리(150)는 전자 장치(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 전자 장치(100)의 구성요소와 관련된 명령 또는 데이터를 저장할 수 있다. 특히, 메모리(150)에는 임베딩 벡터와 임베딩 벡터에 대응되는 컨텐츠 정보가 연관지어 저장되어 있을 수 있다. 또한, 메모리(150)는 스케치 입력을 바탕으로 임베딩 벡터를 획득하도록 학습된 신경망 모델을 저장할 수 있다. 한편, 메모리(150)는 비휘발성 메모리(ex: 하드 디스크, SSD(Solid state drive), 플래시 메모리), 휘발성 메모리 등으로 구현될 수 있다.
프로세서(160)는 전자 장치(100)의 전반적인 동작을 제어할 수 있다.
예를 들어, 프로세서(160)는 메모리(150)에 저장된 복수의 제1 임베딩 벡터(embedding vector)와 복수의 제1 임베딩 벡터 각각과 관련된 컨텐츠 정보를 식별할 수 있다. 복수의 제1 임베딩 벡터 각각과 관련된 컨텐츠 정보는 복수의 유형의 컨텐츠 정보를 포함할 수 있다. 예로, 복수의 유형의 컨텐츠 정보는 이미지 컨텐츠, 오디오 컨텐츠(예로, 음악 컨텐츠), 비디오 컨텐츠, 텍스트 컨텐츠, 문서 컨텐츠 및 게임 컨텐츠를 포함할 수 있다.
프로세서(160)는 입력 인터페이스를 통해 사용자의 스케치(sketch) 입력을 획득할 수 있다. 예로, 프로세서(160)는, 터치 패널을 터치하는 사용자 입력을 바탕으로 스케치 입력을 획득할 수 있다. 또는, 프로세서(160)는 카메라를 통해 사용자의 제스처 입력을 획득하고, 제스처 입력을 바탕으로 스케치 입력을 획득할 수 있다. 또한, 프로세서(160)는 외부 장치를 통해 스케치 입력을 획득할 수 있다. 예를 들어, 프로세서(160)는 모션 센서를 포함하는 콘트롤러를 통해 사용자의 모션 정보를 획득하고, 획득된 모션 정보를 바탕으로 스케치 입력을 획득할 수 있다. 또한, 프로세서(160)는 스타일러스 펜을 통해 터치 패널을 터치하는 사용자 입력을 바탕으로 스케치 입력을 획득할 수 있다.
프로세서(160)는 사용자의 스케치 입력에 대한 정보를 신경망 모델에 입력하여 제2 임베딩 벡터를 획득할 수 있다. 여기서, 스케치 입력에 대한 정보는, 스케치 입력에 대응되는 RGB 값 및 픽셀의 위치 정보를 포함할 수 있다. 신경망 모델은, 스케치 입력에 대한 정보 바탕으로 임베딩 벡터를 출력하도록 학습될 수 있다. 또한, 신경망 모델은 스케치 입력을 바탕으로 특징 벡터를 획득하는 인코더 모듈, 및 특징 벡터를 바탕으로 제2 임베딩 벡터를 획득하는 디코더 모듈을 포함할 수 있다.
프로세서(160)는 복수의 제1 임베딩 벡터 중 제2 임베딩 벡터와의 유사도가 가장 높은 제1 임베딩 벡터를 식별할 수 있다. 이 때, 프로세서(160)는 복수의 제1 임베딩 벡터 각각과 제2 임베딩 벡터간의 코사인 유사도를 바탕으로 유사도를 산출할 수 있다.
프로세서(160)는 식별된 제1 임베딩 벡터에 대응되는 컨텐츠 정보를 획득하여 출력할 수 있다. 한편, 프로세서(160)는 복수의 유형의 컨텐츠 정보 중 특정 유형의 컨텐츠 정보를 식별하여 출력할 수 있다. 일 예로, 프로세서(160)는 복수의 유형의 컨텐츠 정보 중 하나를 선택하기 위한 사용자 명령을 획득할 수 있다. 그리고, 프로세서(160)는 복수의 유형의 컨텐츠 정보 중 선택된 유형에 대응되는 컨텐츠 정보를 식별하여 출력할 수 있다. 다른 일 예로, 프로세서(160)는 전자 장치(100)의 유형 정보를 바탕으로 복수의 유형 중 하나의 유형을 식별할 수 있다. 구체적으로, 전자 장치(100)가 TV인 경우, 프로세서(160)는 비디오 컨텐츠를 식별할 수 있다.
한편, 프로세서(160)는 외부 장치를 통해 컨텐츠를 출력할 수 있다. 이를 위해, 프로세서(160)는 식별된 컨텐츠 정보를 외부 장치로 전송할 수 있다. 이 때, 프로세서(160)는 외부 장치의 유형 정보를 획득하고, 유형 정보를 바탕으로 컨텐츠의 유형을 결정할 수 있다. 예로, 외부 장치가 이어폰인 경우, 프로세서(160)는 복수의 유형의 컨텐츠 정보 중 오디오 컨텐츠를 식별할 수 있다.
한편, 메모리(150)에 저장된 컨텐츠 정보 중 사용자의 스케치 입력에 대응되는 컨텐츠 정보를 용이하게 식별하기 위해서, 프로세서(160)는 컨텐츠 정보를 포함하는 데이터베이스를 구축할 수 있다. 프로세서(160)는 메모리(150)에 저장된 복수의 유형의 컨텐츠 정보를 식별할 수 있다. 프로세서(160)는 식별된 복수의 유형의 컨텐츠 정보에 대하여 인덱싱(indexing)을 수행할 수 있다. 여기서, 인덱싱이란, 임베딩 벡터와 컨텐츠 정보를 관련지어 저장하는 동작을 의미할 수 있다. 프로세서(160)는 인덱스된 복수의 유형의 정보를 데이터베이스에 저장할 수 있다. 한편, 데이터베이스 구축에 관한 보다 구체적인 방법에 대해서는 도 8a 내지 도 11b를 참조하여 후술하도록 한다.
한편, 본 개시에 따른 인공지능과 관련된 기능은 프로세서(160)와 메모리(150)를 통해 동작된다. 프로세서(160)는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다. 하나 또는 복수의 프로세서는, 메모리(150)에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.
기 정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.
인공지능 모델은 학습을 통해 만들어 질 수 있다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다.
인공지능 모델은 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계된 인공지능 전용 프로세서에 의해 처리될 수 있다. 인공지능 모델은 학습을 통해 만들어 질 수 있다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다.
인공 신경망은 심층 신경망(DNN:Deep Neural Network)를 포함할 수 있으며, 예를 들어, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), GAN (Generative Adversarial Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 (Deep Q-Networks) 등이 있으나, 전술한 예에 한정되지 않는다.
도 3a는 본 개시의 일 실시 예에 따른 신경망 모델을 설명하기 위한 도면이다. 전자 장치(100)는 사용자로부터 획득된 스케치 입력(31)을 신경망 모델(300)에 입력하여 임베딩 벡터(33)를 획득할 수 있다. 신경망 모델(300)은 스케치 입력(31)을 바탕으로 특징 벡터(32)를 획득하는 인코더(310) 및 특징 벡터(32)를 바탕으로 임베딩 벡터(33)를 획득하는 제1 디코더(321)를 포함할 수 있다. 한편, 인코더(310) 및 제1 디코더(321)는 각각 CNN (Convolutional Neural Network) 및 RNN (Recurrent Neural Network)을 포함할 수 있다.
도 3b는 본 개시의 일 실시 예에 따른 신경망 모델의 학습 방법을 설명하기 위한 도면이다. 인코더(310)는 스케치 입력(34)을 바탕으로 특징 벡터(32)를 출력하도록 학습될 수 있다. 그리고, 제2 디코더(322)는 특징 벡터(32)를 바탕으로 스케치 출력(35)을 획득하도록 학습될 수 있다. 인코더(310) 및 제2 디코더(322)는 스케치 입력(34)과 스케치 출력(35)의 차이가 기설정된 값보다 작아지도록 학습될 수 있다. 이 때, 인코더(310) 및 제2 디코더(322)의 파라미터는 스케치 입력(34)과 스케치 출력(35)의 차이가 기설정된 값보다 작아지도록 업데이트될 수 있다. 인코더(310)의 학습이 완료되면, 제1 디코더(321)가 학습될 수 있다. 다시 도 3a를 참조하면, 제1 디코더(321)는 특징 벡터(32)를 바탕으로 임베딩 벡터(33)를 출력하도록 학습될 수 있다. 제1 디코더(321)가 학습되는 동안, 인코더(310)의 파라미터는 고정될 수 있다.
도 4는 본 개시의 일 실시 예에 따른 유사도 획득 방법을 설명하기 위한 도면이다. 전술한 바와 같이, 전자 장치(100)는 메모리(150)에 저장된 복수의 제1 임베딩 벡터와 스케치 입력에 대응되는 제2 임베딩 벡터(41)의 유사도를 획득할 수 있다. 예를 들어, 코사인 거리(cosine distance) 또는 코사인 유사도(cosine similarity)를 바탕으로 제1 임베딩 벡터와 제2 임베딩 벡터(41)의 유사도를 산출할 수 있다. 한편, 전자 장치(100)는 제1 임베딩 벡터와 제2 임베딩 벡터(41)를 동일한 벡터 공간 상에 매핑할 수 있다. 전자 장치(100)는 복수의 제1 임베딩 벡터 중 제2 임베딩 벡터(41)와의 유사도가 가장 높은(또는 거리가 가장 가까운) 제1 임베딩 벡터를 식별할 수 있다. 예로, 식별된 제1 임베딩 벡터는 “flower”에 대응되는 임베딩 벡터일 수 있다.
한편, 전자 장치(100)는 복수의 제1 임베딩 전체가 아닌 일부와 제2 임베딩 벡터(41) 간의 유사도를 산출할 수도 있다. 예로, 전자 장치(100)는 제2 임베딩 벡터(41)를 기준으로 기설정된 범위(R)이내에 존재하는 적어도 하나의 제1 임베딩 벡터를 식별할 수 있다. 그리고, 식별된 적어도 하나의 제1 임베딩 벡터와 제2 임베딩 벡터(41) 간의 유사도를 산출할 수 있다. 이에 따라, 유사도 산출을 위한 연산량의 줄어들 수 있다.
도 5는 본 개시의 일 실시 예에 따른 데이터베이스에 저장된 컨텐츠 정보를 설명하기 위한 도면이다. 전술한 바와 같이, 전자 장치(100)는 식별된 제1 임베딩 벡터에 대응되는 컨텐츠 정보를 획득하여 출력할 수 있다. 이 때, 전자 장치(100)는 데이터베이스(DB)에 저장된 인덱스된 컨텐츠 정보(52)를 바탕으로 출력할 컨텐츠 정보를 식별할 수 있다. 데이터베이스(DB)에는 임베딩 벡터(51)와 컨텐츠 정보(52)가 매칭되어 저장되어 있을 수 있다. 이 때, 임베딩 벡터(51)는 컨텐츠 정보에 존재하는 단어(예로, “Flower”, “Roses”)에 대응될 수 있다.
데이터베이스(DB)에는 복수의 유형의 컨텐츠 정보(52)가 저장될 수 있다. 예로, 복수의 유형의 컨텐츠 정보(52)는 이미지 컨텐츠, 문서 컨텐츠, 오디오 컨텐츠 및 비디오 컨텐츠를 포함할 수 있다. 한편, 복수의 유형의 컨텐츠 정보(52)에는 임베딩 벡터(51)와의 관련성 정도에 따라 우선 순위가 할당되어 있을 수 있다. 예로, 제1 임베딩 벡터(v1)에 대응되는 이미지 컨텐츠는 제2 이미지(image #2), 제7 이미지(image #7), 제9 이미지(image #9) 및 제3 이미지(image #3)를 포함할 수 있다. 이 때, 제2 이미지(image #2)에는 제1 순위가 할당되며, 제7 이미지(image #7)에는 제1 순위보다 후순위인 제2 순위가 할당될 수 있다.
한편, 컨텐츠 정보(52)와 임베딩 벡터(51)의 관련성은 다양한 방법으로 산출될 수 있다. 일 예로, 컨텐츠 정보(52)가 문서 컨텐츠인 경우, 컨텐츠 정보(52)와 임베딩 벡터(51)의 관련성은, 컨텐츠 정보(52)에 포함된 임베딩 벡터(51)에 대응되는 단어의 개수를 바탕으로 산출될 수 있다. 이 때, 단어의 개수가 많을수록 관련성은 높을 수 있다. 다른 일 예로, 컨텐츠 정보(52)가 이미지 컨텐츠인 경우, 컨텐츠 정보(52)와 임베딩 벡터(51)의 관련성은, 임베딩 벡터(51)에 대응되는 오브젝트가 컨텐츠 정보(52)에서 차지하는 면적을 바탕을 산출될 수 있다. 이 때, 면적이 클수록 관련성은 높을 수 있다.
한편, 전자 장치(100)는 할당된 우선 순위를 바탕으로 출력할 컨텐츠 정보를 식별할 수 있다. 하나의 컨텐츠 정보를 출력하는 경우, 전자 장치(100)는 우선 순위가 가장 높은 컨텐츠 정보를 식별하여 출력할 수 있다. 예로, 하나의 이미지 컨텐츠를 출력하는 경우, 전자 장치(100)는 제2 이미지(image #2)를 식별하여 출력할 수 있다. 복수의 컨텐츠 정보를 출력하는 경우, 전자 장치(100)는 우선 순위대로 컨텐츠 정보를 나열하여 출력할 수 있다. 예로, 4개의 이미지 컨텐츠를 출력하는 경우, 전자 장치(100)는 제2 이미지(image #2), 제7 이미지(image #7), 제9 이미지(image #9) 및 제3 이미지(image #3)를 식별하여 순서대로 출력할 수 있다.
한편, 데이터베이스(DB)에 저장되는 정보는 메모리(150)에 저장된 컨텐츠 정보뿐만 아니라, 외부 서버로부터 수신되는 정보를 포함할 수 있다. 예로, 외부 서버로부터 수신된 스케치 입력과 관련된 컨텐츠 정보가 데이터베이스(DB)에 저장될 수 있다.
도 6a 및 도 6b는 본 개시의 여러 실시 예에 따른 컨텐츠 출력 방법을 설명하기 위한 도면이다. 전자 장치(100)는 사용자로부터 스케치 입력(61)을 획득할 수 있다. 예로, 스케치 입력(61)은 '당근'의 형상에 대응될 수 있다. 전자 장치(100)는 스케치 입력(61)과 관련된 복수의 유형의 컨텐츠 정보를 식별하여 출력할 수 있다. 예로, 전자 장치(100)는 '당근'이 포함된 이미지 컨텐츠(62-1) 및 비디오 컨텐츠(62-2)를 출력할 수 있다. 전자 장치(100)는 이미지 컨텐츠(62-1)에 포함된 적어도 하나의 이미지를 디스플레이할 수 있다. 또한, 전자 장치(100)는 비디오 컨텐츠(62-2)에 대응되는 썸네일 이미지를 디스플레이할 수 있다. 이 때, 전자 장치(100)는 비디오 컨텐츠(62-2)의 재생을 위한 UI 엘리먼트(예로, 재생 아이콘)를 썸네일 이미지에 오버레이하여 디스플레이할 수 있다.
또한, 전자 장치(100)는 '당근'을 주제로 하는 오디오 컨텐츠(62-3)(예로, '당근 케이크 레시피)를 출력할 수 있다. 이 때, 전자 장치(100)는 오디오 컨텐츠(62-3)의 제목 및 오디오 컨텐츠(62-3)의 재생을 위한 UI 엘리먼트를 디스플레이할 수 있다.
한편, 전자 장치(100)는 각 유형별 컨텐츠 정보를 우선 순위에 따라 디스플레이할 수 있다. 예로, 전자 장치(100)는 복수의 이미지 컨텐츠 중 우선 순위가 제1 순위, 제2 순위 및 제3 순위인 이미지 컨텐츠를 각각 디스플레이할 수 있다. 또한, 전자 장치(100)는 우선 순위에 따라 이미지 컨텐츠의 크기를 다르게 디스플레이할 수 있다. 예로, 우선 순위가 제1 순위인 제1 이미지 컨텐츠의 크기는 우선 순위가 제1 순위보다 후순위인 제2 순위인 제2 이미지 컨텐츠보다 클 수 있다.
한편, 전자 장치(100)는 복수의 유형의 컨텐츠 정보 중 사용자에 의해 선택된 유형의 컨텐츠 정보만 출력할 수 있다. 도 6b를 참조하면, 전자 장치(100)는 메모리(150)에 저장된 임의의 컨텐츠 정보를 디스플레이할 수 있다. 이 때, 전자 장치(100)는 현재 선택된 유형의 컨텐츠 정보를 디스플레이할 수 있다. 예로, 이미지 유형(64-1)이 선택된 경우, 전자 장치(100)는 메모리(150)에 저장된 임의의 이미지 컨텐츠(63-1)를 디스플레이할 수 있다. 또한, 전자 장치(100)는 사용자의 스케치 입력(61)을 수정하기 위한 제1 오브젝트(65-1) 및 스케치 입력(61)에 대한 검색을 실행하기 위한 제2 오브젝트(65-2)를 디스플레이할 수 있다.
메모리(150)에 저장된 임의의 이미지 컨텐츠(63-1)를 디스플레이하는 동안, 전자 장치(100)는 사용자의 스케치 입력(61)을 획득할 수 있다. 그리고, 전자 장치(100)는 제2 오브젝트(65-2)를 선택하는 사용자 명령을 획득할 수 있다. 사용자 명령이 획득되면, 전자 장치(100)는 스케치 입력(61)에 대응되는 제1 임베딩 벡터를 획득할 수 있다. 그리고, 전자 장치(100)는 데이터베이스(DB)에서 제1 임베딩 벡터와 가장 유사도가 높은 제2 임베딩 벡터를 식별할 수 있다. 또한, 전자 장치(100)는 데이터베이스(DB)에서 제2 임베딩 벡터와 연관지어 저장된 복수의 유형의 컨텐츠 정보를 획득할 수 있다.
전자 장치(100)는 획득된 컨텐츠 정보를 디스플레이할 수 있다. 이 때, 전자 장치(100)는 현재 선택된 유형의 컨텐츠 정보를 디스플레이할 수 있다. 예로, 이미지 유형(64-1)이 선택된 경우, 전자 장치(100)는 획득된 복수의 유형의 컨텐츠 정보 중 이미지 컨텐츠(63-2)를 디스플레이할 수 있다. 한편, 이미지 컨텐츠(63-2)를 디스플레이하는 동안, 전자 장치(100)는 문서 유형(64-2)을 선택하는 사용자 명령을 획득할 수 있다. 이 때, 전자 장치(100)는 획득된 복수의 유형의 컨텐츠 정보 중 문서 컨텐츠(63-3)를 디스플레이할 수 있다.
도 7a 내지 도 7d는 다양한 실시 예에 따른 컨텐츠 정보 제공 방법을 설명하기 위한 도면이다. 도 7a를 참조하면, 전자 장치(100)는 스마트 워치이며, 외부 장치(710)는 증강 현실(AR: Augmented Reality) 글래스일 수 있다. 전자 장치(100)는 터치 패널을 통해 사용자(1)로부터 스케치 입력(71-1)을 획득할 수 있다. 이 때, 스케치 입력(71-1)은 특정 오브젝트(예로, 치아)의 형상에 대응될 수 있다. 전자 장치(100)는 오브젝트(즉, 치아)와 관련된 정보(72-1)를 획득할 수 있다. 예로, 전자 장치(100)는 오브젝트와 관련된 텍스트 컨텐츠를 획득할 수 있다. 구체적으로, 텍스트 컨텐츠는 '치아'와 관련된 단어 리스트를 포함할 수 있다. 전자 장치(100)는 획득된 오브젝트와 관련된 정보를 외부 장치(710)로 전송할 수 있다. 외부 장치(710)는 수신된 오브젝트와 관련된 정보(72-1)를 디스플레이할 수 있다.
도 7b를 참조하면, 전자 장치(100)는 스마트 워치이며 외부 장치(720)는 이어폰일 수 있다. 전자 장치(100)는 터치 패널을 통해 사용자(1)의 스케치 입력(71-2)을 획득할 수 있다. 전자 장치(100)는 스케치 입력(71-2)과 관련된 컨텐츠 정보(72-2)를 획득할 수 있다. 예를 들어, 스케치 입력(71-2)이 '장미'에 대응되는 경우, 컨텐츠 정보(72-2)는 '장미'와 관련된 음악 컨텐츠에 대한 오디오 파일을 포함할 수 있다. 이 때, 전자 장치(100)는 컨텐츠 정보(72-2)에 대응되는 텍스트(예로, 음악 컨텐츠의 제목)를 디스플레이할 수 있다. 한편, 전자 장치(100)가 복수의 음악 컨텐츠 리스트를 디스플레이하는 경우, 전자 장치(100)는 사용자(1)로부터 복수의 음악 컨텐츠 중 특정 음악 컨텐츠를 선택하는 명령을 획득할 수 있다. 이 때, 전자 장치(100)는 사용자에 의해 선택된 음악 컨텐츠에 대한 정보를 외부 장치(720)로 전송할 수 있다. 외부 장치(720)는 수신된 컨텐츠 정보(72-2)를 출력할 수 있다. 즉, 외부 장치(720)는 '장미'와 관련된 음악 컨텐츠에 대한 오디오 신호를 출력할 수 있다.
한편, 전자 장치(100)는 외부 장치(720)에 대한 정보를 바탕으로 스케치 입력(71-2)과 관련된 복수의 유형의 컨텐츠 정보 중 특정 유형의 컨텐츠 정보를 식별할 수 있다. 외부 장치(720)에 대한 정보는 외부 장치(720)의 유형 정보 및 스펙 정보를 포함할 수 있다. 예를 들어, 외부 장치(720)가 이어폰인 경우, 전자 장치(100)는 복수의 유형의 컨텐츠 정보 중 오디오 컨텐츠를 식별할 수 있다. 이에 따라, 사용자(1)는 외부 장치(720)에 대응되는 컨텐츠를 제공받을 수 있고, 사용자(1)의 만족감 및 편의성이 향상될 수 있다. 한편, 외부 장치(720)에 대한 정보는 메모리(150)에 미리 저장되거나, 외부 장치(720)로부터 수신될 수 있다.
도 7c를 참조하면, 전자 장치(100)는 TV일 수 있다. 전자 장치(100)는 카메라(112)를 통해 사용자(1)를 촬영한 복수의 이미지를 획득할 수 있다. 전자 장치(100)는 획득된 복수의 이미지를 분석하여 사용자(1)의 제스처를 획득할 수 있다. 그리고, 전자 장치(100)는 획득된 제스처를 바탕으로 사용자(1)의 스케치 입력(71-3)을 획득할 수 있다. 예로, 스케치 입력(71-3)은 '고양이'에 대응될 수 있다.
한편, 전자 장치(100)는 스케치 입력(71-3)과 관련된 컨텐츠 정보를 획득할 수 있다. 예로, 획득된 컨텐츠 정보는 '고양이'를 포함하는 복수의 비디오 컨텐츠에 대한 썸네일 이미지 및 비디오 파일을 포함할 수 있다. 전자 장치(100)는 복수의 비디오 컨텐츠 각각에 대한 썸네일 이미지(72-3)를 디스플레이할 수 있다. 썸네일 이미지(72-3) 중 하나를 선택하는 사용자 명령이 획득되면, 전자 장치(100)는 선택된 썸네일 이미지에 대응되는 비디오 파일을 실행하여 비디오 컨텐츠를 디스플레이할 수 있다.
한편, 전자 장치(100)는 기설정된 우선 순위를 바탕으로 스케치 입력(71-3)과 관련된 복수의 유형의 컨텐츠 정보 중 특정 유형의 컨텐츠 정보를 식별할 수 있다. 예를 들어, 전자 장치(100)가 TV인 경우, 전자 장치(100)는 제1 순위로 비디오 컨텐츠를 식별하며, 제1 순위보다 후순위인 제2 순위로 이미지 컨텐츠를 식별할 수 있다. 이에 따라, 사용자(1)는 전자 장치(100)에 대응되는 컨텐츠를 제공받을 수 있고, 사용자(1)의 만족감 및 편의성이 향상될 수 있다.
도 7d를 참조하면, 전자 장치(100)는 증강 현실(AR: Augmented Reality) 글래스이며 외부 장치(730)는 전자 장치(100)와 연결된 콘트롤러일 수 있다. 외부 장치(730)는 모션 센서(예로, IMU 센서)를 포함할 수 있다. 전자 장치(100)가 게임 컨텐츠를 디스플레이하는 동안, 외부 장치(730)는 사용자(1)의 모션 정보를 획득하여 전자 장치(100)로 전송할 수 있다. 전자 장치(100)는 수신된 모션 정보를 바탕으로 스케치 입력(71-4)을 획득할 수 있다. 예로, 스케치 입력(71-4)은 게임 컨텐츠와 관련된 아이템에 대응될 수 있다.
전자 장치(100)는 스케치 입력(71-4)을 바탕으로 스케치 입력(71-4)과 관련된 컨텐츠 정보를 획득하여 출력할 수 있다. 예로, 전자 장치(100)는 스케치 입력(71-4)에 대응되는 오브젝트(72-4)를 획득하여 디스플레이할 수 있다. 한편, 전자 장치(100)는 현재 실행중인 어플리케이션에 대한 정보를 바탕으로 컨텐츠 유형을 식별할 수 있다. 예로, 게임 어플리케이션이 실행되는 동안 스케치 입력(71-4)이 획득되면, 전자 장치(100)는 복수의 컨텐츠 유형 중 게임 컨텐츠를 식별할 수 있다. 그리고, 전자 장치(100)는 데이터베이스(DB)에서 복수의 유형의 컨텐츠 중 스케치 입력(71-4)과 관련된 게임 컨텐츠를 식별할 수 있다
이상에서는, 스케치 입력을 획득하는 방법, 스케치 입력을 바탕으로 컨텐츠 정보를 획득하는 방법, 및 컨텐츠 정보를 출력하는 방법에 대하여 살펴보았다. 한편, 스케치 입력을 바탕으로 컨텐츠 정보를 용이하게 획득하기 위해, 전자 장치(100)는 컨텐츠 정보에 대한 인덱싱을 수행하고, 컨텐츠 정보를 포함하는 데이터베이스를 구축할 수 있다. 이하에서는, 전자 장치(100)가 데이터베이스를 구축하는 방법에 대하여 설명하도록 한다.
도 8a는 본 개시의 일 실시 예에 따른 문서 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 순서도이다. 전자 장치(100)는 문서 컨텐츠를 식별할 수 있다(S810). 예로, 전자 장치(100)는 메모리(150)에 저장된 컨텐츠를 식별할 수 있다. 전자 장치(100)는 식별된 문서 컨텐츠에 포함된 단어를 식별하고(S820), 식별된 단어에 대한 가중치를 획득할 수 있다(S830). 여기서, 가중치는 식별된 단어가 문서 컨텐츠에서 얼마나 중요한가를 나타내는 값을 의미할 수 있다. 예로, 전자 장치(100)는 소위 'TF-IDF'라 불리는 아래의 [수학식 1]을 바탕으로 가중치를 산출할 수 있다.
Figure pat00001
여기서,
Figure pat00002
는 문서 y에 단어 x가 등장하는 횟수 또는 빈도,
Figure pat00003
는 단어 x를 포함하는 문서의 개수,
Figure pat00004
은 문서의 전체 개수를 의미한다.
전자 장치(100)는 식별된 단어를 워드 임베딩 모델에 입력하여 임베딩 벡터를 획득할 수 있다(S840). 여기서, 워드 임베딩 모델은 단어를 바탕으로 단어에 대응되는 임베딩 벡터를 획득하도록 학습된 신경망 모델일 수 있다. 또한, 워드 임베딩 모델은 워드투벡터(Word2Vec) 알고리즘에 기반하여 구현될 수 있다.
전자 장치(100)는 획득된 가중치를 바탕으로 임베딩 벡터와 문서 컨텐츠를 연관지어 저장할 수 있다(S850). 전자 장치(100)는 식별된 단어에 대응되는 임베딩 벡터와 식별된 단어를 포함하는 문서 컨텐츠를 매칭하여 저장할 수 있다. 즉, 전자 장치(100)는 문서 컨텐츠에 대해 인덱싱을 수행할 수 있다. 한편, 전자 장치(100)는 획득된 가중치가 높은 순서대로 식별된 문서 컨텐츠에 대해 우선 순위를 할당할 수 있다. 예로, 제1 단어와 관련지어 복수의 문서 컨텐츠에 대해 인덱싱을 수행하는 경우, 전자 장치(100)는 복수의 문서 컨텐츠 중 제1 단어에 대한 가중치가 가장 큰 제1 문서 컨텐츠에 1순위를 할당할 수 있다. 또한, 전자 장치(100)는 제1 문서 컨텐츠보다 제1 단어에 대한 가중치가 낮은 제2 문서에 대해서는 제1 순위보다 후순위인 제2 순위를 할당할 수 있다. 전자 장치(100)는 복수의 문서 컨텐츠 각각에 대해 인덱싱을 수행하고, 인덱스된 복수의 문서 컨텐츠를 데이터베이스에 저장할 수 있다.
도 8b는 본 개시의 일 실시 예에 따른 문서 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 도면이다. 전자 장치(100)는 문서 컨텐츠(81)를 식별하고, 문서 컨텐츠(81)를 스캔하여 문서 컨텐츠(81)에 포함된 복수의 단어(82)를 식별할 수 있다. 예를 들어, 복수의 단어(82)는 제1 단어('buy'), 제2 단어('tree') 및 제3 단어('sample')를 포함할 수 있다. 한편, 전자 장치(100)는 문서 컨텐츠(81)에서 복수의 단어(82) 각각의 중요도를 나타내는 가중치(83)를 획득할 수 있다. 예를 들어, 제1 문서 컨텐츠('Doc 1')에서 제1 단어('buy')의 가중치는 0.38일 수 있다. 또한, 제2 문서 컨텐츠('Doc 2')에서 제3 단어('sample')의 가중치는 0.12일 수 있다.
한편, 전자 장치(100)는 복수의 단어(82)를 워드 임베딩 모델(84)에 입력하여 복수의 단어(82) 각각에 대응되는 임베딩 벡터(85)를 획득할 수 있다. 예로, 임베딩 벡터(85)는 제1 단어('buy'), 제2 단어('tree') 및 제3 단어('sample')에 각각 대응되는 제1 벡터(v1), 제2 벡터(v2) 및 제3 벡터(v3)를 포함할 수 있다. 전자 장치(100)는 임베딩 벡터(85)와 컨텐츠 정보(86)를 연관지어 저장할 수 있다. 예를 들어, 전자 장치(100)는 제1 벡터(v1)와 제1 단어('buy')를 포함하는 문서 컨텐츠를 매칭하여 데이터베이스(DB)에 저장할 수 있다.
도 9a는 본 개시의 일 실시 예에 따른 이미지 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 순서도이다. 도 9b는 본 개시의 일 실시 예에 따른 이미지 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 도면이다. 전자 장치(100)는 이미지 컨텐츠를 식별하고(S910), 이미지 컨텐츠에 포함된 오브젝트를 식별할 수 있다(S920). 예로, 도 9b를 참조하면, 전자 장치(100)는 학습된 오브젝트 인식 모델(92)에 이미지 컨텐츠(91)를 입력하여 이미지 컨텐츠(91)에 포함된 오브젝트(ob1, ob2)에 대한 정보를 획득할 수 있다. 오브젝트에 대한 정보(ob1, ob2)는, 이미지 컨텐츠에서 오브젝트의 위치 정보(예로, 오브젝트에 대응되는 바운딩 박스(bounding box)의 좌표 정보) 및 오브젝트의 식별 정보를 포함할 수 있다.
전자 장치(100)는 식별된 오브젝트에 대한 가중치를 획득할 수 있다(S930). 예를 들어, 전자 장치(100)는 [수학식 2]에 기초하여 이미지 컨텐츠에서 오브젝트의 중요도를 나타내는 가중치를 획득할 수 있다.
Figure pat00005
여기서, Ims(Image importance score)는 이미지 컨텐츠에서 오브젝트의 중요도를 나타내는 가중치,
Figure pat00006
는 이미지 컨텐츠에서 식별된 오브젝트,
Figure pat00007
는 오브젝트 x의 바운딩 박스의 폭,
Figure pat00008
는 식별된 오브젝트 x의 바운딩 박스의 높이,
Figure pat00009
는 오브젝트 x가 검출된 이미지(또는 이미지 컨텐츠)의 폭,
Figure pat00010
는 오브젝트 x가 검출된 이미지(또는 이미지 컨텐츠)의 높이,
Figure pat00011
는 오브젝트 x가 클래스 y에 해당될 확률을 의미한다. 도 9b을 참조하면, 전자 장치(100)는 제1 오브젝트(ob1) 제2 오브젝트(ob2) 제3 오브젝트(ob3) 각각의 이미지 컨텐츠에서의 가중치를 획득할 수 있다.
전자 장치(100)는 이미지 컨텐츠를 이미지 임베딩 모델에 입력하여 식별된 오브젝트에 대응되는 임베딩 벡터를 획득할 수 있다(S940). 도 9b를 참조하면, 전자 장치(100)는 이미지 컨텐츠(91)를 이미지 임베딩 모델(94)에 입력하여 제1 오브젝트(ob1) 및 제2 오브젝트(ob2)에 대응되는 임베딩 벡터(95)를 획득할 수 있다. 즉, 전자 장치(100)는 제1 오브젝트(ob1)에 대응되는 제1 벡터(v1) 및 제2 오브젝트(ob2)에 대응되는 제2 벡터(v2)를 획득할 수 있다. 여기서, 이미지 임베딩 모델(94)은 이미지 컨텐츠를 바탕으로 이미지 컨텐츠에 포함된 오브젝트에 대한 임베딩 벡터를 획득하도록 학습된 신경망 모델일 수 있다.
전자 장치(100)는 획득된 가중치를 바탕으로, 임베딩 벡터와 이미지 컨텐츠를 연관지어 저장할 수 있다(S950). 이 때, 전자 장치(100)는 가중치가 높은 순서대로 이미지 컨텐츠에 우선 순위를 할당하고, 임베딩 벡터와 이미지 컨텐츠를 매칭하여 저장할 수 있다. 예로, 도 9b를 참조하면, 전자 장치(100)는 복수의 오브젝트 각각에 대한 임베딩 벡터(v1, v2, v3)와 오브젝트가 포함되는 컨텐츠 정보(96)를 매칭하여 데이터베이스(DB)에 저장할 수 있다.
도 10a는 본 개시의 일 실시 예에 따른 오디오 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 순서도이다. 전자 장치(100)는 오디오 컨텐츠를 식별하고(S1010), 오디오 컨텐츠로부터 복수의 단어를 획득할 수 있다(S1020). 예로, 전자 장치(100)는 한편, 전자 장치(100)는 오디오 컨텐츠에 대한 정보를 텍스트 획득 모델에 입력하여 복수의 단어를 획득할 수 있다. 여기서, 오디오 컨텐츠에 대한 정보는 오디오 컨텐츠에 대한 오디오 시퀀스 및 소리 스펙트로그램(spectrogram)을 포함할 수 있다. 한편, 텍스트 획득 모델은 오디오 컨텐츠에 대한 정보를 바탕으로 텍스트를 획득하도록 학습된 신경망 모델로서 RNN(Recurrent Neural Network)을 포함할 수 있다.
전자 장치(100)는 획득된 복수의 단어 각각에 대한 가중치를 획득할 수 있다(S1030). 이 때, 전자 장치(100)는 전술한 단계 S830과 같이 획득된 단어에 대한 가중치를 산출할 수 있다. 예로, 전자 장치(100)는 [수학식 1]에 기초하여 단어에 대한 가중치를 산출할 수 있다. 또한, 전자 장치(100)는 획득된 복수의 단어를 워드 임베딩 모델에 입력하여 임베딩 벡터를 획득할 수 있다(S1040). 여기서, 워드 임베딩 모델은 도 8b의 워드 임베딩 모델(84)에 대응될 수 있다. 전자 장치(100)는 획득된 가중치를 바탕으로, 임베딩 벡터와 이미지 컨텐츠를 연관지어 저장할 수 있다(S950).
도 10b는 본 개시의 일 실시 예에 따른 오디오 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 도면이다. 전자 장치(100)는 오디오 컨텐츠(101)로부터 복수의 단어(102)를 획득할 수 있다. 전자 장치(100)는 복수의 단어(102) 각각에 대한 가중치(103)를 획득할 수 있다. 전자 장치(100)는 복수의 단어(102)를 워드 임베딩 모델(104)에 입력하여 복수의 단어(102) 각각에 대한 임베딩 벡터(105)를 획득할 수 있다. 전자 장치(100)는 임베딩 벡터(105)와 복수의 오디오 컨텐츠를 포함하는 컨텐츠 정보(106)를 매칭하여 데이터베이스(DB)에 저장할 수 있다.
도 11a는 본 개시의 일 실시 예에 따른 비디오 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 순서도이다. 도 11b는 본 개시의 일 실시 예에 따른 비디오 컨텐츠에 대한 인덱싱을 수행하는 방법을 설명하기 위한 도면이다. 전자 장치(100)는 비디오 컨텐츠를 식별하고(S1110), 식별된 비디오 컨텐츠로부터 오디오 컨텐츠 및 이미지 컨텐츠를 획득할 수 있다(S1120). 예로, 도 11b를 참조하면, 전자 장치(100)는 비디오 컨텐츠의 오디오 성분과 이미지 성분을 분리하여 오디오 컨텐츠(122) 및 이미지 컨텐츠(125)를 획득할 수 있다.
그리고, 전자 장치(100)는 오디오 컨텐츠로부터 복수의 단어를 획득하고, 획득된 복수의 단어 각각에 대한 제1 가중치를 획득할 수 있다(S1131). 본 단계는, 단계 S1020 및 단계 S1030와 대응될 수 있는 바 그 상세한 설명은 생략한다. 도 11b를 참조하면, 전자 장치(100)는 오디오 컨텐츠(122)로부터 복수의 단어(123-1)를 획득하고, 복수의 단어(123-1) 각각에 대한 제1 가중치(124-1)를 획득할 수 있다.
한편, 전자 장치(100)는 획득된 복수의 단어를 워드 임베딩 모델에 입력하여 임베딩 벡터를 획득할 수 있다(S1141). 도 11b를 참조하면, 전자 장치(100)는 복수의 단어(123-1)를 워드 임베딩 모델(125)를 입력하여 임베딩 벡터(126)를 획득할 수 있다. 예로, 전자 장치(100)는 복수의 단어(123-1) 각각에 대한 임베딩 벡터(v1, v2)를 획득할 수 있다.
전자 장치(100)는 비디오 컨텐츠에 포함된 오브젝트를 식별하고, 식별된 오브젝트에 대한 제2 가중치를 획득할 수 있다(S1132). 본 단계는, 단계 S920 및 단계 S930와 대응될 수 있는 바 그 상세한 설명은 생략한다. 도 11b를 참조하면, 전자 장치(100)는 비디오 컨텐츠(125)으로부터 복수의 오브젝트(ob1, ob2) 각각에 대한 정보(123-3)를 획득할 수 있다. 그리고, 전자 장치(100)는 복수의 오브젝트(ob1, ob2) 각각에 대한 제2 가중치(124-2)를 획득할 수 있다. 예로, 전자 장치(100)는
한편, 전자 장치(100)는 이미지 컨텐츠를 이미지 임베딩 모델에 입력하여 식별된 오브젝트에 대응되는 임베딩 벡터를 획득할 수 있다(S1142). 본 단계는, 전술한 단계 S940에 대응될 수 있는 바 그 상세한 설명은 생략한다. 도 11b를 참조하면, 전자 장치(100)는 이미지 임베딩 모델(127)을 이용하여 복수의 오브젝트(ob1, ob2) 각각에 대응되는 임베딩 벡터(128)를 획득할 수 있다.
전자 장치(100)는 제1 가중치 및 제2 가중치를 바탕으로, 임베딩 벡터와 비디오 컨텐츠를 연관지어 저장할 수 있다(S1150). 도 11b를 참조하면, 전자 장치(100)는 복수의 단어(123-1) 각각에 대한 임베딩 벡터(v1, v2) 및 오브젝트(ob1)에 대응되는 임베딩 벡터(v3)를 컨텐츠 정보(129)와 매칭하여 데이터베이스(DB)에 저장할 수 있다.
이상과 같은 방법으로, 각 유형별 컨텐츠 정보는 임베딩 벡터와 매칭되어 저장될 수 있다. 따라서, 전자 장치(100)는 도 5에 도시된 바와 같은 데이터베이스를 구축할 수 있다.
도 12는 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 도시한 순서도이다. 전자 장치(100)는 복수의 제1 임베딩 벡터(embedding vector)와 복수의 제1 임베딩 벡터 각각과 관련된 컨텐츠 정보를 저장할 수 있다(S1210). 전자 장치(100)는 메모리(160)에 저장된 컨텐츠 정보들에 대해 인덱싱을 수행하여 데이터베이스를 구축할 수 있다. 한편, 본 동작에 대해서는 도 8a 내지 도 11b를 참조하여 전술하였는 바 그 상세한 설명은 생략하도록 한다.
전자 장치(100)는 사용자의 스케치(sketch) 입력을 획득할 수 있다(S1220). 예를 들어, 전자 장치(100)는 터치 패널을 터치하는 사용자 입력을 바탕으로 스케치 입력을 획득할 수 있다. 또는, 전자 장치(100)는 카메라를 통해 사용자의 제스처 입력을 획득하고, 제스처 입력을 바탕으로 스케치 입력을 획득할 수 있다.
전자 장치(100)는 스케치 입력을 신경망 모델에 입력하여 제2 임베딩 벡터를 획득할 수 있다(S1230). 신경망 모델은 스케치 입력을 바탕으로 특징 벡터를 획득하는 인코더 모듈, 및 특징 벡터를 바탕으로 제2 임베딩 벡터를 획득하는 디코더 모듈을 포함할 수 있다. 전자 장치(100)는 복수의 제1 임베딩 벡터 중 제2 임베딩 벡터와의 유사도가 가장 높은 제1 임베딩 벡터를 식별할 수 있다(S1240). 이 때, 전자 장치(100)는 복수의 제1 임베딩 벡터 각각과 제2 임베딩 벡터간의 코사인 유사도를 통해 유사도를 산출할 수 있다. 전자 장치(100)는 식별된 제1 임베딩 벡터에 대응되는 컨텐츠 정보를 획득하여 출력할 수 있다(S1250). 전자 장치(100)의 컨텐츠 출력 방법에 대해서는 전술하였는 바 그 상세한 설명은 생략하도록 한다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 처리 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 처리 동작을 특정 기기가 수행하도록 할 수 있다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100: 전자 장치 110: 입력 인터페이스
120: 디스플레이 130: 스피커
140: 통신 인터페이스 150: 메모리
160: 프로세서

Claims (18)

  1. 전자 장치에 있어서,
    입력 인터페이스;
    복수의 제1 임베딩 벡터(embedding vector)와 상기 복수의 제1 임베딩 벡터 각각과 관련된 컨텐츠 정보를 저장하는 메모리;
    프로세서;를 포함하고,
    상기 프로세서는,
    상기 입력 인터페이스를 통해 사용자의 스케치(sketch) 입력을 획득하고,
    상기 스케치 입력을 신경망 모델에 입력하여 제2 임베딩 벡터를 획득하고,
    상기 복수의 제1 임베딩 벡터 중 상기 제2 임베딩 벡터와의 유사도가 가장 높은 제1 임베딩 벡터를 식별하고,
    상기 식별된 제1 임베딩 벡터에 대응되는 컨텐츠 정보를 획득하여 출력하는
    전자 장치.
  2. 제1 항에 있어서,
    상기 프로세서는,
    상기 복수의 제1 임베딩 벡터 각각과 상기 제2 임베딩 벡터간의 코사인 유사도를 통해 유사도를 산출하는
    전자 장치.
  3. 제1 항에 있어서,
    상기 신경망 모델은,
    상기 스케치 입력을 바탕으로 특징 벡터를 획득하는 인코더 모듈, 및
    상기 특징 벡터를 바탕으로 상기 제2 임베딩 벡터를 획득하는 디코더 모듈을 포함하는
    전자 장치.
  4. 제1 항에 있어서,
    상기 복수의 제1 임베딩 벡터 각각과 관련된 컨텐츠 정보는 복수의 유형의 컨텐츠 정보를 포함하며,
    상기 복수의 유형의 컨텐츠 정보는 이미지 컨텐츠, 오디오 컨텐츠, 비디오 컨텐츠, 텍스트 컨텐츠 및 문서 컨텐츠를 포함하는
    전자 장치.
  5. 제4 항에 있어서,
    상기 프로세서는,
    상기 복수의 유형의 컨텐츠 정보 중 하나를 선택하기 위한 사용자 명령을 획득하고,
    상기 복수의 유형의 컨텐츠 정보 중 상기 선택된 유형에 대응되는 컨텐츠 정보를 식별하여 출력하는
    전자 장치.
  6. 제4 항에 있어서,
    상기 프로세서는,
    상기 전자 장치의 유형 정보를 바탕으로 상기 복수의 유형 중 하나의 유형을 식별하고,
    상기 식별된 제1 임베딩 벡터에 대응되는 컨텐츠 정보 중 상기 식별된 유형의 컨텐츠 정보를 식별하여 출력하는
    전자 장치.
  7. 제4 항에 있어서,
    통신 인터페이스;를 더 포함하고,
    상기 통신 인터페이스를 통해 상기 전자 장치와 연결된 외부 장치의 유형 정보를 획득하고,
    상기 유형 정보를 바탕으로 상기 복수의 유형 중 하나의 유형을 식별하고,
    상기 식별된 제1 임베딩 벡터에 대응되는 정보 중 상기 식별된 유형의 컨텐츠 정보를 식별하여 상기 외부 장치로 전송하는
    전자 장치.
  8. 제1 항에 있어서,
    상기 입력 인터페이스는 터치 패널을 포함하고,
    상기 프로세서는,
    상기 터치 패널을 터치하는 사용자 입력을 바탕으로 상기 스케치 입력을 획득하는
    전자 장치.
  9. 제1 항에 있어서,
    상기 입력 인터페이스는 카메라를 포함하고,
    상기 프로세서는,
    상기 카메라를 통해 상기 사용자의 제스처 입력을 획득하고,
    상기 제스처 입력을 바탕으로 상기 스케치 입력을 획득하는
    전자 장치.
  10. 전자 장치의 제어 방법에 있어서,
    복수의 제1 임베딩 벡터(embedding vector)와 상기 복수의 제1 임베딩 벡터 각각과 관련된 컨텐츠 정보를 저장하는 단계;
    사용자의 스케치(sketch) 입력을 획득하는 단계;
    상기 스케치 입력을 신경망 모델에 입력하여 제2 임베딩 벡터를 획득하는 단계;
    상기 복수의 제1 임베딩 벡터 중 상기 제2 임베딩 벡터와의 유사도가 가장 높은 제1 임베딩 벡터를 식별하는 단계; 및
    상기 식별된 제1 임베딩 벡터에 대응되는 컨텐츠 정보를 획득하여 출력하는 단계;를 포함하는
    제어 방법.
  11. 제10 항에 있어서,
    상기 제1 임베딩 벡터를 식별하는 단계는,
    상기 복수의 제1 임베딩 벡터 각각과 상기 제2 임베딩 벡터간의 코사인 유사도를 통해 유사도를 산출하는 단계를 포함하는
    제어 방법.
  12. 제10 항에 있어서,
    상기 신경망 모델은,
    상기 스케치 입력을 바탕으로 특징 벡터를 획득하는 인코더 모듈, 및
    상기 특징 벡터를 바탕으로 상기 제2 임베딩 벡터를 획득하는 디코더 모듈을 포함하는
    제어 방법.
  13. 제10 항에 있어서,
    상기 복수의 제1 임베딩 벡터 각각과 관련된 컨텐츠 정보는 복수의 유형의 컨텐츠 정보를 포함하며,
    상기 복수의 유형의 컨텐츠 정보는 이미지 컨텐츠, 오디오 컨텐츠, 비디오 컨텐츠, 텍스트 컨텐츠 및 문서 컨텐츠를 포함하는
    제어 방법.
  14. 제13 항에 있어서,
    상기 복수의 유형의 컨텐츠 정보 중 하나를 선택하기 위한 사용자 명령을 획득하는 단계;를 더 포함하고,
    상기 컨텐츠 정보를 획득하여 출력하는 단계는,
    상기 복수의 유형의 컨텐츠 정보 중 상기 선택된 유형에 대응되는 컨텐츠 정보를 식별하는 단계, 및
    상기 식별된 컨텐츠 정보를 출력하는 단계를 포함하는
    제어 방법.
  15. 제13 항에 있어서,
    상기 전자 장치의 유형 정보를 바탕으로 상기 복수의 유형 중 하나의 유형을 식별하는 단계;를 더 포함하고,
    상기 컨텐츠 정보를 획득하여 출력하는 단계는,
    상기 식별된 제1 임베딩 벡터에 대응되는 컨텐츠 정보 중 상기 식별된 유형의 컨텐츠 정보를 식별하여 출력하는
    제어 방법.
  16. 제13 항에 있어서,
    상기 전자 장치와 연결된 외부 장치의 유형 정보를 획득하는 단계;를 더 포함하고,
    상기 컨텐츠 정보를 획득하여 출력하는 단계는,
    상기 유형 정보를 바탕으로 상기 복수의 유형 중 하나의 유형을 식별하는 단계,
    상기 식별된 제1 임베딩 벡터에 대응되는 정보 중 상기 식별된 유형의 컨텐츠 정보를 식별하는 단계, 및
    상기 식별된 컨텐츠 정보를 상기 외부 장치로 전송하는 단계를 포함하는
    제어 방법.
  17. 제10 항에 있어서,
    상기 사용자의 스케치(sketch) 입력을 획득하는 단계는,
    상기 전자 장치에 포함된 터치 패널을 터치하는 사용자 입력을 바탕으로 상기 스케치 입력을 획득하는
    제어 방법.
  18. 제10 항에 있어서,
    상기 사용자의 스케치(sketch) 입력을 획득하는 단계는,
    상기 전자 장치에 포함된 카메라를 통해 상기 사용자의 제스처 입력을 획득하는 단계, 및
    상기 제스처 입력을 바탕으로 상기 스케치 입력을 획득하는 단계를 포함하는
    제어 방법.
KR1020210009940A 2021-01-25 2021-01-25 전자 장치 및 그 제어 방법 KR20220107381A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210009940A KR20220107381A (ko) 2021-01-25 2021-01-25 전자 장치 및 그 제어 방법
PCT/KR2021/009014 WO2022158663A1 (ko) 2021-01-25 2021-07-14 전자 장치 및 그 제어 방법
US17/429,517 US20230185843A1 (en) 2021-01-25 2021-07-14 Electronic apparatus and controlling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210009940A KR20220107381A (ko) 2021-01-25 2021-01-25 전자 장치 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20220107381A true KR20220107381A (ko) 2022-08-02

Family

ID=82549110

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210009940A KR20220107381A (ko) 2021-01-25 2021-01-25 전자 장치 및 그 제어 방법

Country Status (3)

Country Link
US (1) US20230185843A1 (ko)
KR (1) KR20220107381A (ko)
WO (1) WO2022158663A1 (ko)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007052285A2 (en) * 2005-07-22 2007-05-10 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
KR20130059033A (ko) * 2011-11-28 2013-06-05 연세대학교 산학협력단 스케치를 이용한 멀티미디어 검색 시스템 및 방법
KR20130059040A (ko) * 2011-11-28 2013-06-05 연세대학교 산학협력단 스케치를 이용한 매장 내 물품 검색 시스템 및 방법
WO2017020140A1 (es) * 2015-08-03 2017-02-09 Orand S.A. Sistema de búsqueda de imágenes por sketches usando histogramas de orientaciones de celdas y extracción de contornos basado en características de nivel medio
US10503775B1 (en) * 2016-12-28 2019-12-10 Shutterstock, Inc. Composition aware image querying
US10832387B2 (en) * 2017-07-19 2020-11-10 Petuum Inc. Real-time intelligent image manipulation system
KR20200002332A (ko) * 2018-06-29 2020-01-08 고려대학교 산학협력단 딥 러닝을 이용하여 이미지를 검색하는 단말 장치 및 방법
US20200356592A1 (en) * 2019-05-09 2020-11-12 Microsoft Technology Licensing, Llc Plural-Mode Image-Based Search

Also Published As

Publication number Publication date
US20230185843A1 (en) 2023-06-15
WO2022158663A1 (ko) 2022-07-28

Similar Documents

Publication Publication Date Title
US10664060B2 (en) Multimodal input-based interaction method and device
US10733716B2 (en) Method and device for providing image
CN110415306A (zh) 使用生成对抗网络的面部合成
US11184679B2 (en) Electronic apparatus and method for controlling the electronic apparatus
US9519355B2 (en) Mobile device event control with digital images
US20210281744A1 (en) Action recognition method and device for target object, and electronic apparatus
US11748071B2 (en) Developer and runtime environments supporting multi-input modalities
KR20210017824A (ko) 컴퓨팅 장치 및 그 동작 방법
US11372518B2 (en) Systems and methods for augmented or mixed reality writing
KR20220061985A (ko) 그래픽 객체를 선택하기 위한 방법 및 대응하는 디바이스
US10067926B2 (en) Image processing system and methods for identifying table captions for an electronic fillable form
KR20220107381A (ko) 전자 장치 및 그 제어 방법
US11747954B1 (en) Systems and methods for organizing contents in XR environments
KR20140134844A (ko) 객체 기반 사진 촬영 방법 및 장치
US20220232290A1 (en) Electronic device and control method thereof
CN112789830A (zh) 用于信道响应的多模式信道不可知渲染的机器人平台
KR20210046178A (ko) 전자 장치 및 그 제어 방법
KR20210048270A (ko) 복수 객체에 대한 오디오 포커싱 방법 및 장치
KR102658967B1 (ko) 인공지능 기반 솔루션을 제공하기 위한 방법, 전자 장치, 및 시스템
US11048356B2 (en) Microphone on controller with touchpad to take in audio swipe feature data
KR102517796B1 (ko) 가상 현실 컨텐츠를 제공하는 방법 및 장치
US20240104132A1 (en) Determining 3d models corresponding to an image
WO2022205259A1 (zh) 人脸属性检测方法及装置、存储介质及电子设备
US11471765B2 (en) Handwriting recognition using cardinal directions between sample points
US20220223141A1 (en) Electronic apparatus and method for controlling thereof