KR20180049787A - 전자 장치, 그의 제어 방법 - Google Patents
전자 장치, 그의 제어 방법 Download PDFInfo
- Publication number
- KR20180049787A KR20180049787A KR1020170106127A KR20170106127A KR20180049787A KR 20180049787 A KR20180049787 A KR 20180049787A KR 1020170106127 A KR1020170106127 A KR 1020170106127A KR 20170106127 A KR20170106127 A KR 20170106127A KR 20180049787 A KR20180049787 A KR 20180049787A
- Authority
- KR
- South Korea
- Prior art keywords
- action
- event
- condition
- data
- electronic device
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000009471 action Effects 0.000 claims abstract description 205
- 230000006870 function Effects 0.000 claims abstract description 175
- 238000001514 detection method Methods 0.000 claims abstract description 154
- 238000004891 communication Methods 0.000 claims description 34
- 238000004422 calculation algorithm Methods 0.000 claims description 28
- 238000012790 confirmation Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 24
- 238000007781 pre-processing Methods 0.000 description 23
- 230000002093 peripheral effect Effects 0.000 description 18
- 238000011156 evaluation Methods 0.000 description 17
- 238000013473 artificial intelligence Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 230000033001 locomotion Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 238000003066 decision tree Methods 0.000 description 4
- 230000002068 genetic effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012706 support-vector machine Methods 0.000 description 4
- 210000004556 brain Anatomy 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- WQZGKKKJIJFFOK-GASJEMHNSA-N Glucose Natural products OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O WQZGKKKJIJFFOK-GASJEMHNSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000002583 angiography Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 239000008103 glucose Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002304 perfume Substances 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 230000000946 synaptic effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 229910052724 xenon Inorganic materials 0.000 description 1
- FHNFHKCVQCLJFQ-UHFFFAOYSA-N xenon atom Chemical compound [Xe] FHNFHKCVQCLJFQ-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/002—Specific input/output arrangements not covered by G06F3/01 - G06F3/16
- G06F3/005—Input arrangements through a video camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G06N99/005—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4131—Peripherals receiving signals from specially adapted client devices home appliance, e.g. lighting, air conditioning system, metering devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/42203—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS] sound input device, e.g. microphone
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/4223—Cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
- H04N21/4394—Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/038—Indexing scheme relating to G06F3/038
- G06F2203/0381—Multimodal input, i.e. interface arrangements enabling the user to issue commands by simultaneous use of input devices of different nature, e.g. voice plus gesture on digitizer
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Computer Networks & Wireless Communication (AREA)
- Automation & Control Theory (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
전자 장치의 제어 방법이 개시된다. 전자 장치의 제어 방법은 조건에 따라 실행할 액션을 설정하기 위한, 사용자가 발화하는 자연어 및 상기 자연어와 연관된 상기 사용자의 행위로부터 생성된 음성 정보 및 영상 정보를 획득하는 동작, 상기 획득된 음성 정보 및 영상 정보에 기초하여, 상기 조건에 따라 검출할 이벤트 및 상기 이벤트가 검출되면 상기 액션에 따라 실행할 기능을 결정하는 동작, 상기 결정된 이벤트를 검출할 적어도 하나의 검출 자원을 결정하는 동작, 및 상기 결정된 적어도 하나의 검출 자원을 이용하여 상기 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우, 상기 액션에 따른 기능이 실행되도록 제어하는 동작을 포함한다.
Description
본 개시는 전자 장치 및 그의 제어 방법에 관한 것으로, 보다 상세하게는 사용자가 설정한 조건에 따라 상기 전자 장치 또는 상기 전자 장치의 외부에 위치한 외부 장치를 제어하는 방법 및 장치에 관한 것이다.
또한, 본 개시는 기계 학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 인공 지능(Artificial Intelligence, AI) 시스템 및 그 응용에 관한 것이다.
최근 반도체 기술 및 무선 통신 기술의 발전으로 인하여 다양한 사물에 통신 기능이 포함되어 사용자는 편리하게 사물을 제어할 수 있다.
이와 같이 외부 장치인 사물에 통신 기능을 포함하여 네트워크로 연결하는 것을 사물 인터넷(IOT: Internet Of Things)이라 하며, 점차 그 사용 용도가 증가하는 추세이다. 이 경우, 사물 인터넷 환경에서 동작하는 장치를 IOT 장치라고 할 수 있다.
IOT 장치를 통하여 주변 상황을 감지할 수 있는데, 최근에는 IOT 장치를 이용하여 주변 상황을 인식하고, 이에 따라 사용자에게 정보를 제공하는 상황 인식 서비스(context aware service)에 대한 관심이 높아지고 있다.
예로, 상황 인식 서비스에서는 사용자가 설정한 조건에 기초하여, IOT 장치를 통하여 사용자의 조건을 만족하는 상황이 인식되면, 조건에 따른 특정 기능이 실행될 수 있다.
또한, 근래에는 인간 수준의 지능을 구현하는 인공 지능 시스템이 다양한 분야에서 이용되고 있다. 인공 지능 시스템은 기존의 룰(rule) 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 룰 기반 스마트 시스템은 점차 딥러닝 기반 인공 지능 시스템으로 대체되고 있다.
인공 지능 기술은 기계학습(예로, 딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공 지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
사용자가 조건을 설정하는 경우, 기존에는 사용자가 조건에 대한 세부 항목 및 조건에 따라 실행할 기능에 대한 세부 항목을 일일이 설정할 것이 요구되었다.
예로, 서랍이 열리는 조건을 설정하는 경우, 사용자는 센서를 서랍에 설치하고, 어플리케이션을 이용하여 설치된 센서를 등록하고, 또한, 설치된 센서를 이용하여 서랍이 열리는 것을 검출하기 위한 세부 조건들을 입력해야 했다.
따라서, 본 개시는 사용자가 조건에 따라 실행할 액션을 쉽고 신속하게 설정하고, 설정한 조건이 만족되면 조건에 따른 액션을 실행하는 방법을 제공하는데 목적이 있다.
이상의 목적을 달성하기 위한 본 개시의 일 실시예에 따른 전자 장치의 제어 방법은, 조건에 따라 실행할 액션을 설정하기 위한, 사용자가 발화하는 자연어 및 상기 자연어와 연관된 상기 사용자의 행위로부터 생성된 음성 정보 및 영상 정보를 획득하는 동작, 상기 획득된 음성 정보 및 영상 정보에 기초하여, 상기 조건에 따라 검출할 이벤트 및 상기 이벤트가 검출되면 상기 액션에 따라 실행할 기능을 결정하는 동작, 상기 결정된 이벤트를 검출할 적어도 하나의 검출 자원을 결정하는 동작, 및 상기 결정된 적어도 하나의 검출 자원을 이용하여 상기 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우, 상기 액션에 따른 기능이 실행되도록 제어하는 동작을 포함한다.
또한, 본 개시의 일 실시예에 따른 전자 장치는, 메모리, 및 조건에 따라 실행할 액션을 설정하기 위한, 사용자가 발화하는 자연어 및 상기 자연어와 연관된 상기 사용자의 행위로부터 생성된 음성 정보 및 영상 정보를 획득하고, 상기 획득된 음성 정보 및 영상 정보에 기초하여, 상기 조건에 따라 검출할 이벤트 및 상기 이벤트가 검출되면 상기 액션에 따라 실행할 기능을 결정하고, 상기 결정된 이벤트를 검출할 적어도 하나의 검출 자원을 결정하고, 상기 결정된 적어도 하나의 검출 자원을 이용하여 상기 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우, 상기 액션에 따른 기능이 실행되도록 제어하는 프로세서를 포함한다.
또한, 본 개시의 일 실시예에 따른 컴퓨터로 판독 가능한 비휘발성 기록매체는, 조건에 따라 실행할 액션을 설정하기 위한, 사용자가 발화하는 자연어 및 상기 자연어와 연관된 상기 사용자의 행위로부터 생성된 음성 정보 및 영상 정보를 획득하는 동작, 상기 획득된 음성 정보 및 영상 정보에 기초하여, 상기 조건에 따라 검출할 이벤트 및 상기 이벤트가 검출되면 상기 액션에 따라 실행할 기능을 결정하는 동작, 상기 결정된 이벤트를 검출할 적어도 하나의 검출 자원을 결정하는 동작, 및 상기 결정된 적어도 하나의 검출 자원을 이용하여 상기 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우, 상기 액션에 따른 기능이 실행되도록 제어하는 동작을 전자 장치가 수행하도록 하는 프로그램을 저장할 수 있다.
이상과 같은 본 개시의 다양한 실시예에 따르면, 사용자가 발화하는 자연어 및 사용자의 행위에 기초하여 조건에 따라 실행할 액션이 설정될 수 있다.
또한, 조건에 따른 이벤트를 검출할 장치 및 액션에 따라 기능을 실행할 장치가 자동으로 결정될 수 있다.
이에, 상황 인식 서비스를 이용하는 사용자의 만족도가 크게 향상될 수 있다.
그 외에 본 개시의 실시 예로 인하여 얻을 수 있거나 예측되는 효과에 대해서는 본 개시의 실시 예에 대한 상세한 설명에서 직접적 또는 암시적으로 개시하도록 한다. 예컨대, 본 개시의 실시 예에 따라 예측되는 다양한 효과에 대해서는 후술될 상세한 설명 내에서 개시될 것이다.
도 1a 내지 도 1d는 본 개시의 일 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 2는 본 개시의 일 실시예에 따른, 전자 장치를 포함하는 시스템의 구성을 나타내는 블록도이다.
도 3a 내지 도 5b는 본 개시의 일 실시예에 따른 전자 장치에서 조건에 따른 액션을 실행하는 상황을 나타내는 도면들이다.
도 6은 본 개시의 일 실시예에 따른, 조건에 따른 액션을 실행하는 흐름도를 나타내는 도면이다.
도 7은 본 개시의 일 실시예에 따른, 가용 자원의 식별 정보를 설정하는 과정을 나타내는 도면이다.
도 8 및 도 9는 본 개시의 일 실시예에 따른, 조건에 따른 액션을 실행하는 흐름도를 나타내는 도면이다.
도 10 내지 도 13은 본 개시의 일 실시예에 따른, 학습 알고리즘을 통해 데이터 인식 모델을 구축하여 데이터를 인식하는 실시예를 설명하기 위한 도면들이다.
도 14a 내지 도 14c는 본 개시의 일 실시예에 따른, 데이터 인식 모델을 이용하는 전자 장치의 흐름도들이다.
도 15a 내지 도 15c는 본 개시의 일 실시예에 따른, 데이터 인식 모델을 이용하는 네트워크 시스템의 흐름도들이다.
도 2는 본 개시의 일 실시예에 따른, 전자 장치를 포함하는 시스템의 구성을 나타내는 블록도이다.
도 3a 내지 도 5b는 본 개시의 일 실시예에 따른 전자 장치에서 조건에 따른 액션을 실행하는 상황을 나타내는 도면들이다.
도 6은 본 개시의 일 실시예에 따른, 조건에 따른 액션을 실행하는 흐름도를 나타내는 도면이다.
도 7은 본 개시의 일 실시예에 따른, 가용 자원의 식별 정보를 설정하는 과정을 나타내는 도면이다.
도 8 및 도 9는 본 개시의 일 실시예에 따른, 조건에 따른 액션을 실행하는 흐름도를 나타내는 도면이다.
도 10 내지 도 13은 본 개시의 일 실시예에 따른, 학습 알고리즘을 통해 데이터 인식 모델을 구축하여 데이터를 인식하는 실시예를 설명하기 위한 도면들이다.
도 14a 내지 도 14c는 본 개시의 일 실시예에 따른, 데이터 인식 모델을 이용하는 전자 장치의 흐름도들이다.
도 15a 내지 도 15c는 본 개시의 일 실시예에 따른, 데이터 인식 모델을 이용하는 네트워크 시스템의 흐름도들이다.
이하, 본 개시의 다양한 실시예들이 첨부된 도면을 참조하여 기재된다. 실시예 및 이에 사용된 용어들은 본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 개시에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1," "제 2," "첫째," 또는 "둘째,"등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 개시에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다.
예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU 또는 application processor)를 의미할 수 있다.
본 개시의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다.
어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 토스터, 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다. 어떤 실시예에 따르면, 전자 장치는 가구, 건물/구조물 또는 자동차의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터, 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에서, 전자 장치는 플렉서블하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 본 개시의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. 본 개시에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1a 내지 도 1d는 본 개시의 일 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 1a의 전자 장치(100)는, 예로, 전술한 전자 장치 또는 서버가 될 수 있다. 전자 장치(100)가 서버인 경우, 전자 장치(100)는 예로, 클라우드 서버 또는 복수 개의 분산 서버들을 포함할 수 있다.
도 1a의 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함할 수 있다.
메모리(110)는, 예를 들면, 전자 장치(100)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 일 실시예에 따르면, 메모리(110)는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API) 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다. 커널, 미들웨어 또는 API의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널은, 예를 들면, 다른 프로그램들에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들을 제어 또는 관리할 수 있다. 또한, 커널은 미들웨어, API, 또는 어플리케이션 프로그램에서 전자 장치(100)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어는, 예를 들면, API또는 어플리케이션 프로그램이 커널과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어는 어플리케이션 프로그램으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어는 어플리케이션 프로그램 중 적어도 하나에 전자 장치(100)의 시스템 리소스를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다. API는 어플리케이션이 커널 또는 미들웨어에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
또한, 메모리(110)는, 내장 메모리 및 외장 메모리 중 적어도 하나를 포함할 수 있다. 내장 메모리는, 예를 들면, 휘발성 메모리(예: DRAM, SRAM, 또는 SDRAM 등), 비휘발성 메모리(예: OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, 플래시 메모리, 하드 드라이브, 또는 솔리드 스테이트 드라이브(SSD) 중 적어도 하나를 포함할 수 있다. 외장 메모리는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱 등을 포함할 수 있다. 외장 메모리는 다양한 인터페이스를 통하여 전자 장치(100)와 기능적으로 또는 물리적으로 연결될 수 있다.
다양한 실시예에 따르면, 메모리(110)는 프로세서(120)가 조건에 따라 실행할 액션을 설정하기 위한, 사용자가 발화하는 자연어 및 상기 자연어와 연관된 상기 사용자의 행위로부터 생성된 음성 정보 및 영상 정보를 획득하고, 상기 획득된 음성 정보 및 영상 정보에 기초하여, 상기 조건에 따라 검출할 이벤트 및 상기 이벤트가 검출되면 상기 액션에 따라 실행할 기능을 결정하고, 상기 이벤트를 검출할 적어도 하나의 검출 자원을 결정하고, 상기 결정된 검출 자원을 이용하여 상기 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우, 상기 조건에 따른 기능이 실행되도록 전자 장치(100)를 제어하도록 하는 프로그램을 저장할 수 있다.
프로세서(120)는, 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다.
또한, 프로세서(120)는 주문형 집적 회로(application specific integrated circuit, ASIC), 임베디드 프로세서, 마이크로프로세서, 하드웨어 컨트롤 로직, 하드웨어 유한 상태 기계(hardware finite state machine, FSM), 디지털 신호 프로세서(digital signal processor, DSP), 중 적어도 하나로 구현될 수 있다. 도시하진 않았으나, 프로세서(120)는 각 구성들과 통신을 위한 버스(bus)와 같은 인터페이스를 더 포함할 수 있다.
프로세서(120)는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서(120)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서(120)는, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 일 실시예에 따르면, 프로세서(120)는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서를 더 포함할 수 있다. 프로세서(120)는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리에 저장할 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 조건에 따라 실행할 액션을 설정하기 위한, 사용자가 발화하는 자연어 및 자연어와 연관된 사용자의 행위로부터 생성된 음성 정보 및 영상 정보를 획득할 수 있다. 그리고, 프로세서(120)는 획득된 음성 정보 및 영상 정보에 기초하여, 조건에 따라 검출할 이벤트 및 이벤트가 검출되면 액션에 따라 실행할 기능을 결정하고, 프로세서(120)는 이벤트를 검출할 적어도 하나의 검출 자원을 결정할 수 있다. 그리고, 결정된 검출 자원을 이용하여 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우, 프로세서(120)는 조건에 따른 기능이 실행되도록 전자 장치(100)를 제어할 수 있다.
한편, 다양한 실시예에 따르면, 프로세서(120)는 학습 알고리즘을 이용하여 생성된 데이터 인식 모델을 바탕으로 조건에 따라 검출할 이벤트 및 액션에 따라 실행할 기능을 결정할 수 있다. 또한, 프로세서(120)는 데이터 인식 모델을 이용하여 이벤트를 검출할 적어도 하나의 검출 자원을 결정할 수 있다. 이에 대해서는 추후에 도 10 내지 도 13을 참조하여 더욱 상세히 설명하도록 한다.
다양한 실시예에 따르면, 프로세서(120)는, 적어도 하나의 검출 자원을 결정하는 경우, 기 설치되어 있는 가용 자원들을 검색할 수 있다. 다음으로, 프로세서(120)는 검색된 가용 자원들이 검출 가능한 기능에 기초하여, 가용 자원들 중에서 이벤트를 검출할 적어도 하나의 검출 자원을 결정할 수 있다. 이 경우, 검출 자원은, 전자 장치(100)에 포함된 모듈 또는 전자 장치(100)의 외부에 위치한 외부 장치일 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는, 검출 자원과 통신을 수행하는 통신부(미도시)를 더 포함할 수 있다. 통신부의 구체적인 예는, 도 1d의 통신부(150)의 실시예에서 상세히 후술될 예정으로 중복되는 설명은 생략한다. 이 경우, 프로세서(120)는, 적어도 하나의 검출 자원이 결정되면 결정된 적어도 하나의 검출 자원으로, 이벤트의 검출을 요청하는 제어 정보가 전송되도록 통신부(미도시)를 제어할 수 있다.
다양한 실시예에 따르면, 프로세서(120)는, 기 설치되어 있는 가용 자원들을 검색할 수 있다. 그리고, 프로세서(120)는 검색된 가용 자원들이 제공 가능한 기능에 기초하여, 가용 자원들 중에서 액션에 따른 기능을 실행할 적어도 하나의 실행 자원을 결정할 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 실행 자원과 통신을 수행하는 통신부(미도시)를 더 포함할 수 있다. 통신부의 구체적인 예는, 도 1d의 통신부(150)의 실시예에서 상세히 후술될 예정으로 중복되는 설명은 생략한다. 이 경우, 프로세서(120)는 액션에 따른 기능이 실행되도록 제어하는 경우, 결정된 실행 자원이 액션에 따른 기능을 실행하도록 실행 자원으로 제어 정보를 전송할 수 있다.
다양한 실시예에 따르면, 전자 장치(100)는 UI를 표시하는 디스플레이(미도시)를 더 포함할 수 있다.
디스플레이는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템 (MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다. 이 경우, 프로세서(120)는, 이벤트를 검출할 검출 자원이 없거나 또는 검출 자원이 이벤트를 검출할 수 없는 경우, 조건에 따른 액션의 실행이 불가능함을 알리는 알림 UI가 표시되도록 디스플레이를 제어할 수 있다.
다양한 실시예에 따르면, 프로세서(120)는, 획득된 음성 정보 및 영상 정보에 기초하여, 조건에 따라 검출할 이벤트 및 이벤트가 검출되면 액션에 따라 실행할 기능을 결정할 수 있다. 그리고, 프로세서(120)는 획득된 음성 정보 및 영상 정보를 학습 알고리즘을 이용하여 생성된 데이터 인식 모델에 적용하여, 사용자의 의도에 따른 상기 조건 및 상기 액션을 결정하고, 조건에 따라 검출할 이벤트 및 액션에 따라 실행할 기능을 결정할 수 있다.
다양한 실시예에 따르면, 전자 장치(100)가 디스플레이를 더 포함하는 경우, 프로세서(120)는 사용자의 의도에 따른 조건 및 액션을 결정하는 경우, 사용자에게 조건 및 액션을 확인하기 위한 확인 UI가 표시되도록 디스플레이를 제어할 수 있다.
도 1b는 본 개시의 다른 일 실시예에 따른, 전자 장치(100)의 구성을 나타내는 블록도이다.
도 1b를 참조하면, 전자 장치(100)는 메모리(110), 프로세서(120), 카메라(130) 및 마이크(140)를 포함할 수 있다.
도 1b의 프로세서(120)는 도 1a에 도시된 프로세서(120)의 전체 또는 일부를 포함할 수 있다. 또한, 도 1b의 메모리(110)는 도 1a에 도시된 메모리(110)의 전체 또는 일부를 포함할 수 있다.
도 1b에서, 카메라(130)는 정지 영상 및 동영상을 촬영할 수 있다. 예로, 카메라(130)는 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있다.
다양한 실시예에 따르면, 카메라(130)는 조건에 따른 액션을 설정하기 위한 사용자의 행위를 촬영하여 영상 정보를 생성할 수 있다. 그리고, 생성된 영상 정보를 프로세서(120)로 전송할 수 있다.
도 1b에서, 마이크(140)는 외부의 음향 신호를 입력 받아 전기적인 음성 정보를 생성할 수 있다. 마이크(140)는 외부의 음향 신호를 입력 받는 과정에서 발생되는 잡음(noise)를 제거하기 위한 다양한 잡음 제거 알고리즘을 이용할 수 있다.
다양한 실시예에 따르면, 마이크(140)는 조건에 따른 액션을 설정하기 위한 사용자의 자연어를 입력 받아 음성 정보를 생성할 수 있다. 그리고, 생성된 음성 정보를 프로세서(120)로 전송할 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 카메라(130)를 통하여 영상 정보를 획득하고, 마이크(140)를 통하여 음성 정보를 획득할 수 있다. 그리고, 프로세서(120)는 획득된 영상 정보 및 음성 정보에 기초하여, 조건에 따라 검출할 이벤트 및 이벤트가 검출되면 액션에 따라 실행할 기능을 결정할 수 있다. 그리고, 프로세서(120)는 결정된 이벤트를 검출할 적어도 하나의 검출 자원을 결정하고, 결정된 검출 자원을 이용하여 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우, 조건에 따른 기능이 실행되도록 제어할 수 있다.
이 경우, 검출 자원은 가용 자원 중에서 조건에 따른 이벤트를 검출할 수 있는 자원으로서, 전자 장치(100)의 외부에 위치한 별도의 장치 또는 전자 장치(100)에 마련된 일 모듈이 될 수 있다. 이 경우, 모듈은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다.
검출 자원이 전자 장치(100)의 외부에 위치한 별도의 장치인 경우, 검출 자원은, 예로, 사물 인터넷 장치들이 될 수 있으며, 또한 전술한 전자 장치(100)의 실시예들 중 적어도 일부가 될 수 있다. 검출할 이벤트에 따른 검출 자원의 상세한 예는 이후 후술되는 다양한 실시 예에서 상세히 설명될 예정이다.
도 1c는 본 개시의 일 실시예에 따른, 전자 장치(100) 및 외부 장치들(230,240)의 구성을 나타내는 블록도이다.
도 1c를 참조하면, 전자 장치(100)는 메모리(110), 프로세서(120) 및 통신부(150)를 포함할 수 있다.
도 1c의 프로세서(120)는 도 1a에 도시된 프로세서(120)의 전체 또는 일부를 포함할 수 있다. 또한, 도 1b의 메모리(110)는 도 1a에 도시된 메모리(110)의 전체 또는 일부를 포함할 수 있다.
통신부(150)는 외부 장치들(230,240) 간의 통신을 설정하고, 무선 통신 또는 유선 통신을 통하여 네트워크에 연결되어 외부 장치들(230,240)과 통신 연결될 수 있다. 이 경우, 통신부(150)가 외부 장치들(230,240)과 통신 연결되는 것은 제3 기기(예로, 중계기, 허브, 엑세스 포인트, 서버 또는 게이트웨이 등)를 거쳐서 통신하는 것을 포함할 수 있다.
무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 일 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다.
무선 통신 또는 유선 통신이 수행되는 네트워크는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따르면, 카메라(230)는 조건에 따른 액션을 설정하기 위한 사용자의 행위를 촬영하여 영상 정보를 생성할 수 있다. 카메라(230)의 통신부(미도시)는 생성된 영상 정보를 전자 장치(100)의 통신부(150)로 전송할 수 있다. 또한, 마이크(240)는 조건에 따른 액션을 설정하기 위하여 사용자가 발화하는 자연어를 입력 받아 음성 정보를 생성할 수 있다. 마이크(240)의 통신부(미도시)는 생성된 음성 정보를 전자 장치(100)의 통신부(150)로 전송할 수 있다.
프로세서(120)는 통신부(150)를 통하여 영상 정보 및 음성 정보를 획득할 수 있다. 그리고, 프로세서(120)는 획득된 영상 정보 및 음성 정보에 기초하여, 조건에 따라 검출할 이벤트 및 이벤트가 검출되면 액션에 따라 실행할 기능을 결정할 수 있다. 그리고, 프로세서(120)는 이벤트를 검출할 적어도 하나의 검출 자원을 결정하고, 결정된 검출 자원을 이용하여 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우, 조건에 따른 기능이 실행되도록 제어할 수 있다.
도 2는 본 개시의 일 실시예에 따른, 전자 장치(100)를 포함하는 시스템(10)의 구성을 나타내는 블록도이다.
도 2를 참조하면, 시스템(10)은 전자 장치(100), 외부 장치들(230,240) 및 가용 자원들(250)을 포함할 수 있다.
도 2의 전자 장치(100)는 도 1a내지 도 1c에 도시된 전자 장치(100)의 전체 또는 일부를 포함할 수 있다. 또한, 외부 장치들(230,240)은 도 1c의 카메라(230) 및 마이크(240)가 될 수 있다.
도 2의 가용 자원들(250)은 사용자가 설정한 조건을 검출하고, 조건에 따른 액션을 실행할 수 있는 자원 후보들이 될 수 있다.
이 경우, 검출 자원은 가용 자원들(250) 중에서 조건에 따른 이벤트를 검출하는 자원이고, 실행 자원은 가용 자원들(250) 중에서 액션에 따른 기능을 실행할 수 있는 자원일 수 있다.
가용 자원들(250)은, 주로, 사물 인터넷 장치들이 될 수 있으며, 또한 전술한 전자 장치(100)의 실시예들 중 적어도 일부가 될 수 있다. 이에, 가용 자원들(250)의 상세한 실시예는 생략한다.
다양한 실시예에 따르면, 카메라(230)는 조건에 따른 액션을 설정하기 위한 사용자의 행위를 촬영하여 영상 정보를 생성할 수 있다. 카메라(230)는 생성된 영상 정보를 전자 장치(100)로 전송할 수 있다. 또한, 마이크(240)는 조건에 따른 액션을 설정하기 위하여 사용자가 발화하는 자연어를 입력 받아 음성 정보를 생성할 수 있다. 마이크(240)는 생성된 음성 정보를 전자 장치(100)로 전송할 수 있다.
전자 장치(100)는 카메라(230)로부터 영상 정보를 획득하고, 마이크(240)로부터 음성 정보를 획득할 수 있다. 그리고, 전자 장치(100)는 획득된 영상 정보 및 음성 정보에 기초하여, 조건에 따라 검출할 이벤트 및 이벤트가 검출되면 액션에 따라 실행할 기능을 결정할 수 있다.
그리고, 전자 장치(100)는 기 설치되어 있는 가용 자원들(250)을 검색하고, 검색된 가용 자원들(250)의 검출 능력에 기초하여, 가용 자원들(250) 중에서 조건에 따른 이벤트를 검출할 적어도 하나의 검출 자원을 결정할 수 있다. 또한, 전자 장치(100)는 기 설치되어 있는 가용 자원들(250)을 검색하고, 검색된 가용 자원들(250)이 제공 가능한 기능에 기초하여 액션에 따른 기능을 실행할 적어도 하나의 실행 자원을 결정할 수 있다.
그리고, 전자 장치(100)는 결정된 검출 자원을 이용하여 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우, 조건에 따른 기능이 실행되도록 선택된 실행 자원을 제어할 수 있다.
도 3a 및 도 3b는 본 개시의 일 실시예에 따른 전자 장치(100)에서 조건에 따른 액션을 실행하는 상황을 나타내는 도면들이다.
먼저, 도 3a의 (a)에서, 사용자(1)는 조건에 따라 실행할 액션을 설정하기 위하여, 자연어(natural language)로 발화를 하면서 특정 행위를 수행할 수 있다. 이때, 조건을 액션이 수행되는 트리거(trigger)의 역할을 수행하는 의미로서 트리거 조건으로 칭할 수도 있다.
예로, 사용자(1)는 "다른 사람이 저기 있는 서랍을 열면 영상을 녹화해"라고 자연어를 발화하면서, 손가락으로 서랍(330)을 지시하는 제스처를 수행하거나 또는 시선을 서랍을 향하는 행위를 수행할 수 있다.
이 경우, 조건은 사용자(1)가 지시한 서랍(330)을 다른 사람이 여는 상황이 될 수 있고, 액션은 다른 사람이 서랍(330)을 여는 상황을 영상으로 녹화하는 것이 될 수 있다.
사용자(1)의 주변에 위치한 주변 장치들(310,320)은 사용자(1)가 발화하는 자연어 및 자연어와 연관된 사용자(1)에 행위로부터 음성 정보 및 영상 정보를 생성할 수 있다. 예로, 마이크(320)는 "다른 사람이 저기 있는 서랍을 열면 영상을 녹화해"라는 자연어를 입력 받아서 음성 정보를 생성하고, 카메라(310)는 손가락으로 서랍(330)을 지시하는 행위를 촬영하여 영상 정보를 생성할 수 있다.
다음으로, 도 3a의 (b)에서, 주변 장치들(310,320)은 생성된 음성 정보 및 영상 정보를 전자 장치(100)로 전송할 수 있다.
주변 장치들(310,320)은 상기 정보들을 유선 또는 무선 네트워크를 통하여 전자 장치(100)로 전송할 수 있다. 또는, 주변 장치들(310,320)이 도 1b와 같이 전자 장치(100)의 일부인 경우, 주변 장치들(310,320)은 데이터 통신 라인 또는 버스(bus) 등과 같은 인터페이스를 통하여 전자 장치(100)의 프로세서(120)로 전송할 수 있다.
전자 장치(100)의 프로세서(120)는 통신부(150)를 통하여 자연어로부터 음성 정보를 획득하고, 자연어와 연관된 사용자의 행위로부터 영상 정보를 획득할 수 있다. 또는, 주변 장치들(310,320)이 도 1b와 같이 전자 장치(100)의 일부인 경우, 프로세서(120)는 버스 등과 같은 인터페이스를 통하여 사용자의 행위로부터 생성된 음성 정보 및 영상 정보를 획득할 수 있다.
프로세서(120)는 획득된 음성 정보 및 영상 정보에 기초하여, 조건에 따라 검출할 적어도 하나의 이벤트 및 적어도 하나의 이벤트가 검출되면 액션에 따라 실행할 기능을 결정할 수 있다.
예로, 프로세서(120)는 조건에 따라 검출할 적어도 하나의 이벤트로서, 서랍(330)이 열리는 이벤트 및 다른 사람을 인식하는 이벤트를 검출할 이벤트들로서 결정할 수 있다. 또한, 프로세서(120)는 다른 사람이 서랍(330)을 여는 상황을 영상으로 녹화하는 기능을 액션에 따라 실행할 기능으로 결정할 수 있다.
다음으로, 프로세서(120)는 가용 자원들 중에서 적어도 하나의 이벤트를 검출하기 위한 적어도 하나의 검출 자원을 선택할 수 있다.
이 경우, 적어도 하나의 검출 자원은, 예로, 서랍이 열리는 이벤트 및 다른 사람을 인식하는 이벤트 모두의 검출이 가능한, 서랍의 주변에 위치한 카메라(310) 및, 촬영된 영상을 분석하여 영상에 포함된 오브젝트의 동작 또는 상태를 인식하는 영상 인식 모듈(미도시)이 될 수 있다. 이 경우, 영상 인식 모듈은 카메라(310)의 일부일 수도 있고, 또는 전자 장치(100)의 일부일 수도 있다. 본 개시에서는 영상 인식 모듈을 카메라의 일부로서 설명하나, 당업자라면 영상 인식 모듈을 전자 장치(100)의 일부로서 구현 가능함은 물론이다. 또한, 카메라는 도 3의 (b)에서 영상 정보를 전자 장치(100)로 제공하는 카메라(310)와 동일한 카메라일 수도 있다.
또는, 적어도 하나의 검출 자원은, 예로, 서랍(330)의 열리는 이벤트를 검출하는 거리 감지 센서(340) 및, 다른 사람을 인식하는 이벤트를 검출하는 지문 인식 센서(350) 또는 홍채 인식 센서 등이 될 수 있다.
또한, 프로세서(120)는 가용 자원들 중에서 액션에 따른 기능을 실행하기 위한 적어도 하나의 실행 자원을 결정할 수 있다.
이 경우, 적어도 하나의 실행 자원은, 예로, 녹화하는 기능을 실행하는 서랍(330)의 주변에 위치한 카메라가 될 수 있다. 이 경우, 카메라는 도 3의 (b)에서 영상 정보를 제공하는 카메라(310)와 동일한 카메라일 수도 있다. 또는, 카메라는 이벤트를 검출하는 카메라와 동일한 카메라일 수도 있다.
적어도 하나의 검출 자원이 선택되면, 도 3b의 (c)와 같이, 프로세서(120)는 선택된 검출 자원들(340,350)로 조건에 따른 이벤트의 검출을 요청하는 제어 정보를 전송할 수 있다.
제어 정보를 수신한 검출 자원은 조건에 따른 이벤트가 검출되는지를 모니터링할 수 있다.
이러한 상황에서, 조건을 만족하는 상황이 발생될 수 있다. 예로, 도 3b의 (d)와 같이, 다른 사람(2)이 사용자가 손가락으로 지시한 서랍(330)을 여는 상황이 발생될 수 있다.
이 경우, 검출 자원들(340,350)은 조건에 따른 이벤트를 검출할 수 있다. 예로, 거리 감지 센서(340)는 서랍이 열리는 이벤트를 검출하고, 지문 인식 센서(350)는 다른 사람을 인식하는 이벤트를 검출할 수 있다.
검출 자원들(340,350)은 이벤트의 검출 결과를 프로세서(120)로 전송할 수 있다.
프로세서(120)는 수신된 검출 결과에 기초하여, 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우, 액션에 따른 기능이 실행되도록 제어할 수 있다.
예로, 조건의 만족에 필요한 이벤트들이 복수 개인 경우, 프로세서(120)는 복수 개의 이벤트들이 모두 조건을 만족하는 경우, 조건을 만족한 것으로 판단하고, 액션에 따른 기능이 실행되도록 제어할 수 있다.
프로세서(120)는 선택된 실행 자원이 액션에 따른 기능을 실행하도록 제어 정보를 전송할 수 있다. 예로, 프로세서(120)는 서랍(330)의 근처에 위치한 카메라(310)로 녹화 기능의 실행을 요청하는 제어 정보를 전송할 수 있다. 이에 따라, 카메라(310)는 다른 사람(2)이 서랍(330)을 여는 상황을 영상으로 녹화할 수 있다.
이와 같이, 사용자의 행위에 따른 조건이 설정되면, 카메라(310)를 이용한 시각적인 IFTTT(If This Then That) 환경이 구축될 수 있다.
도 4a 및 도 4b는 본 개시의 다른 일 실시예에 따른, 전자 장치(100)에서 조건에 따른 액션을 실행하는 상황을 나타내는 도면들이다.
먼저, 도 4a의 (a)에서, 사용자(1)는 조건에 따라 실행할 액션을 설정하기 위하여, 특정 행위를 수행하면서 자연어를 발화할 수 있다.
예로, 사용자(1)는 손가락으로 TV(430)를 지시하고, 시계 방향으로 손가락을 회전하는 제스처를 수행하면서, "턴 오프(turn off)"라고 자연어를 발화할 수 있다.
이 경우, 조건은 사용자(1)가 TV(430)를 향하여 시계 방향으로 손가락을 회전하는 상황이 될 수 있고, 조건에 따른 액션은 TV(430)를 턴 오프하는 것이 될 수 있다.
다른 실시예로, 사용자(1)는 손가락으로 TV(430)를 지시하는 제스처를 수행하면서, "턴 오프"라고 자연어를 발화할 수 있다.
이 경우, 조건은, 사용자(1)가 TV(430)를 향하여 손가락을 지시하면서, "턴 오프"라고 발화하는 상황이 될 수 있고, 액션은 TV(430)를 턴 오프하는 것이 될 수 있다.
사용자(1)의 주변에 위치한 주변 장치들(410,420)은 사용자(1)의 행위 및 사용자(1)의 행위와 연관된 자연어로부터 영상 정보 및 음성 정보를 생성할 수 있다. 예로, 카메라(410)는 손가락으로 TV를 지시하고, 손가락을 회전하는 제스처를 촬영하여 영상 정보를 생성하고, 마이크(420)는 "턴 오프"라는 자연어를 입력 받아서 음성 정보를 생성할 수 있다.
다음으로, 도 4a의 (b)에서, 주변 장치들(410,420)은 생성된 음성 정보 및 영상 정보를 전자 장치(100)로 전송할 수 있다.
주변 장치들(410,420)은 상기 정보들을 유선 또는 무선 네트워크를 통하여 전자 장치(100)로 전송할 수 있다. 또는, 주변 장치들(410,420)이 도 1b와 같이 전자 장치(100)의 일부인 경우, 주변 장치들(410,420)은 데이터 통신 라인 또는 버스 등과 같은 인터페이스를 통하여 전자 장치(100)의 프로세서(120)로 전송할 수 있다.
전자 장치(100)의 프로세서(120)는 통신부(150)를 통하여 자연어로부터 음성 정보를 획득하고, 자연어와 연관된 사용자의 행위로부터 영상 정보를 획득할 수 있다. 또는, 주변 장치들(410,420)이 도 1b와 같이 전자 장치(100)의 일부인 경우, 프로세서(120)는 버스 등과 같은 인터페이스를 통하여 사용자의 행위로부터 생성된 음성 정보 및 영상 정보를 획득할 수 있다.
프로세서(120)는 획득된 음성 정보 및 영상 정보에 기초하여, 조건에 따라 검출할 적어도 하나의 이벤트 및 적어도 하나의 이벤트가 검출되면 액션에 따라 실행할 기능을 결정할 수 있다.
예로, 프로세서(120)는 TV(430)를 향하여 시계 방향으로 손가락을 회전하는 제스처를 인식하는 이벤트를 검출할 이벤트로서 결정할 수 있다. 또한, 프로세서(120)는 TV(430)가 턴 오프하는 기능을 액션에 따라 실행할 기능으로 결정할 수 있다.
다음으로, 프로세서(120)는 가용 자원들 중에서 적어도 하나의 이벤트를 검출하기 위한 적어도 하나의 검출 자원을 선택할 수 있다.
이 경우, 적어도 하나의 검출 자원은, 사용자(1)의 제스처를 감지할 수 있는, TV(430)의 상부에 설치된 카메라(440) 및 제스처를 인식하는 영상 인식 모듈(미도시)이 될 수 있다. 이 경우, 영상 인식 모듈은 카메라(440)의 일부일 수도 있고, 또는 전자 장치(100)의 일부가 될 수도 있다. 본 개시에서는 영상 인식 모듈을 카메라(440)의 일부로서 설명하나, 당업자라면 영상 인식 모듈을 전자 장치(100)의 일부로서 구현 가능함은 물론이다.
또한, 프로세서(120)는 가용 자원들 중에서 액션에 따른 기능을 실행하기 위한 적어도 하나의 실행 자원을 결정할 수 있다.
이 경우, 적어도 하나의 실행 자원은, 턴 오프가 가능한 TV(430) 자체가 될 수 있다.
적어도 하나의 검출 자원이 선택되면, 도 4b의 (c)와 같이, 프로세서(120)는 선택된 검출 자원(440)으로 조건에 따른 이벤트의 검출을 요청하는 제어 정보를 전송할 수 있다.
제어 정보를 수신한 검출 자원(440)은 조건에 따른 이벤트가 검출되는지를 모니터링할 수 있다.
이러한 상황에서, 조건을 만족하는 상황이 발생될 수 있다. 예로, 도 4b의 (d)와 같이, TV(430)가 재생 중에, 사용자가 TV(430)를 향하여 손가락을 회전하는 상황이 발생될 수 있다.
이 경우, 검출 자원인 카메라(440)은 조건에 따른 이벤트를 검출할 수 있다. 예로, 카메라(440)는 시계 방향으로 손가락을 회전하는 제스처를 인식하는 이벤트를 검출할 수 있다.
검출 자원(440)은 이벤트의 검출 결과를 프로세서(120)로 전송할 수 있다.
프로세서(120)는 수신된 검출 결과에 기초하여, 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우, 액션에 따른 기능이 실행되도록 제어할 수 있다.
예로, 프로세서(120)는 TV(430)로 TV(430)의 턴 오프를 요청하는 제어 정보를 전송할 수 있다. 이에 따라, TV(430)는 재생 중인 화면을 턴 오프할 수 있다.
이와 같이, 가전 기기(예로, TV 등)을 대상으로 사용자의 행위에 따른 조건을 설정하는 경우, 통일된 제스처로 다수의 가전 기기를 제어하는 보편적인 원격 제어(universal remote control) 환경이 구축될 수 있다.
도 5a 및 도 5b는 본 개시의 또 다른 일 실시예에 따르면, 전자 장치(100)에서 조건에 따른 액션을 실행하는 상황을 나타내는 도면들이다.
먼저, 도 5a의 (a)에서, 사용자(1)는 조건에 따라 실행할 액션을 설정하기 위하여, 특정 행위를 수행하면서 자연어를 발화할 수 있다.
예로, 사용자(1)는 손가락으로 'V'모양의 제스처를 만들면서, "내가 이렇게 하면 사진을 찍어"라고 자연어를 발화할 수 있다.
이 경우, 조건은 'V'모양의 제스처를 만드는 상황이 될 수 있고, 조건에 따른 액션은 전자 장치(예로, 카메라가 내장된 스마트폰)(100)가 사용자를 사진 촬영하는 것이 될 수 있다.
다른 실시 예로, 사용자(1)는 전자 장치(100)를 일정 거리 이상 떨어뜨리면서, "이만큼 거리가 떨어지면 찍어"라고 자연어를 발화할 수 있다.
이 경우, 조건은 사용자(1)가 전자 장치(100)를 일정 거리 이상 떨어뜨리는 상황이 될 수 있고, 조건에 따른 액션은 전자 장치(100)가 사용자(1)를 사진 촬영하는 것이 될 수 있다.
다른 실시 예로, 사용자(1)를 포함한 촬영 대상자들이 전자 장치(100)의 촬영 범위 내에 들어가는 경우, 사용자(1)는"우리 모두가 다 들어오면 찍어"라고 자연어를 발화할 수 있다.
이 경우, 조건은 사용자(1)를 포함한 촬영 대상자들이 전자 장치(100)의 촬영 범위 내에 들어가는 상황이 될 수 있고, 조건에 따른 액션은 전자 장치(100)가 촬영 대상자들을 사진 촬영하는 것이 될 수 있다.
다른 실시 예로, 사용자(1)를 포함한 촬영 대상자들이 점프를 하면서, 사용자(1)는"우리 모두 이렇게 점프하면 찍어"라고 자연어를 발화할 수 있다.
이 경우, 조건은 사용자(1)를 포함한 촬영 대상자들이 모두 점프를 하면서 전자 장치(100)의 촬영 범위 내에 들어가는 상황이 될 수 있고, 조건에 따른 액션은 전자 장치(100)가 촬영 대상자들을 사진 촬영하는 것이 될 수 있다.
또 다른 실시예로, 사용자(1)는 "아이가 웃으면 찍어","아이가 울면 찍어", 또는 "아이가 일어서면 찍어"라고 자연어를 발화할 수 있다.
이 경우, 조건은 아이가 웃거나, 울거나 또는 일어서는 상황이 될 수 있고, 조건에 따른 액션은 전자 장치(100)가 아이를 사진 촬영하는 것이 될 수 있다.
또 다른 실시예로, 사용자(1)는 전자 장치(100)를 촬영 가능한 위치에 거치시키면서, "내가 가서 앉으면 찍어"라고 자연어를 발화할 수 있다.
이 경우, 조건은 카메라가 거치된 상태에서, 사용자(1)가 앉는 상황이 될 수 있고, 조건에 따른 액션은 전자 장치(100)가 사용자를 사진 촬영하는 것이 될 수 있다.
전자 장치(100)에 내장된 카메라(130) 및 마이크(140)는 사용자의 행위 및 사용자의 행위와 관련된 자연어로부터 영상 정보 및 음성 정보를 생성할 수 있다. 예로, 카메라(130)는 'V' 모양의 제스처를 촬영하여 영상 정보를 생성하고, 마이크(140)는 "내가 이렇게 하면 사진을 찍어"라는 자연어를 입력 받아서 음성 정보를 생성할 수 있다.
다음으로, 도 5의 (b)에서, 카메라(130) 및 마이크(140)는 생성된 음성 정보 및 영상 정보를 프로세서(120)로 전송할 수 있다.
프로세서(120)는 획득된 음성 정보 및 영상 정보에 기초하여, 조건에 따라 검출할 적어도 하나의 이벤트 및 적어도 하나의 이벤트가 검출되면 액션에 따라 실행 기능을 결정할 수 있다.
예로, 프로세서(120)는 'V'모양의 제스처를 인식하는 이벤트를 검출할 이벤트로서 결정할 수 있다. 또한, 프로세서(120)는 사진을 촬영하는 기능을 액션에 따라 실행할 기능으로 결정할 수 있다.
다음으로, 프로세서(120)는 가용 자원인, 전자 장치(100)에 마련된 센싱 가능한 다양한 종류의 모듈들 중에서 적어도 하나의 이벤트를 검출하기 위한 적어도 하나의 검출 자원을 선택할 수 있다.
이 경우, 적어도 하나의 검출 자원은 전자 장치(100)에 마련된 카메라(130) 및 제스처를 인식하는 영상 인식 모듈(미도시)이 될 수 있다. 이 경우, 영상 인식 모듈은 카메라(130)에 포함될 수도 있고, 또는 프로세서(120)의 일부가 될 수도 있다.
프로세서(120)는 가용 자원인, 전자 장치(100)에 마련된 기능 제공이 가능한 다양한 종류의 모듈들 중에서 액션에 따른 기능을 실행하기 위한 적어도 하나의 실행 자원을 선택할 수 있다.
이 경우, 적어도 하나의 실행 자원은, 전자 장치(100)에 마련된 카메라(130)가 될 수 있다.
다음으로, 도 5b의 (c)와 같이, 프로세서(120)는 선택된 검출 자원(130)으로 조건에 따른 이벤트의 검출을 요청하는 제어 정보를 전송할 수 있다.
제어 정보를 수신한 검출 자원(130)은 조건에 따른 이벤트가 검출되지를 모니터링할 수 있다.
이러한 상황에서, 조건을 만족하는 상황이 발상될 수 있다. 예로, 도 4의 (d)와 같이, 사용자(1)가 카메라를 향하여 'V'모양의 제스처를 수행하는 상황이 발생될 수 있다.
이 경우, 검출 자원인 카메라(410)는 조건에 따른 이벤트를 검출할 수 있다. 예로, 카메라(410)는 'V'모양의 제스처를 인식하는 이벤트를 검출할 수 있다.
검출 자원(410)은 이벤트의 검출 결과를 프로세서(120)로 전송할 수 있다.
프로세서(120)는 수신된 검출 결과에 기초하여, 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우, 액션에 따른 기능이 실행되도록 제어할 수 있다.
예로, 프로세서(120)는 카메라(130)로 촬영을 요청하는 제어 정보를 전송할 수 있다. 이에 따라, 카메라(130)는 사용자를 촬영하는 기능을 실행할 수 있다.
이와 같이, 사용자가 설정한 조건에 따라 카메라(130)가 자동으로 촬영을 수행하는 경우, 사용자에게 촬영을 위한 자연스럽고 편리한 사용자 인터페이스를 제공하게 되어 카메라(130)를 이용하는 사용자의 경험이 향상될 수 있다. 또한, 사용자는 더욱 유연하고(flexible), 복잡한(complex)한 촬영을 위한 조건의 제시가 가능하며, 카메라는 조건이 만족되면 자동으로 촬영을 수행함으로써 전자 장치(100)를 이용하는 사용자의 만족도가 더욱 향상될 수 있다.
도 6은 본 개시의 일 실시예에 따른, 전자 장치(100)에서 조건에 따른 액션을 실행하는 흐름도를 나타내는 도면이다.
도 6에서, 사용자는 자연 인터페이스 기반으로 조건에 따라 실행할 액션을 설정할 수 있다(601).
자연 인터페이스는 예로, 자연어를 발화하는 음성, 텍스트 또는 제스처 등이 될 수 있다. 이 경우, 조건 및 조건에 따라 실행할 액션은 복수(multi-model) 인터페이스로 구성될 수도 있다.
다양한 실시예에 따르면, 사용자는 조건으로, "여기 있는 서랍이 열리면"을 발화하면서 손가락으로 서랍을 지시하는 제스처를 수행할 수 있다. 그리고, 사용자는 조건에 따라 실행할 액션으로, "저기 있는 TV에 알림 메시지를 표시해"를 발화하면서 손가락으로 TV를 지시하는 제스처를 수행할 수 있다.
또는, 사용자는 조건으로, "즐거운 가족 분위기이면"을 발화하고, 조건에 따라 실행할 액션으로, "영상을 저장해"를 발화할 수 있다.
또는, 사용자는 조건으로, "저녁에 저기 있는 창문이 열려 있으면"을 발화하고, 조건에 따라 실행할 액션으로, "창문을 닫으라고 알려줘"를 발화할 수 있다.
또는, 사용자는 조건으로, "우리 아이 즐거운 가족 분위기이면"을 발화하고, 조건에 따라 실행할 액션으로, "영상을 저장해"를 발화할 수 있다.
또는, 사용자는 조건으로, "내가 아침에 침대에서 일어나서 거실로 나오면"을 발화하고, 조건에 따라 실행할 액션으로, "날씨를 알려줘"를 발화할 수 있다.
또는, 사용자는 조건으로, "내가 TV를 향해 손가락을 까딱하면"을 발화하고, 조건에 따라 실행할 액션으로, "TV가 온 상태라면 오프 상태로, 오프 상태라면 온 상태로 변경해줘"를 발화할 수 있다.
또는, 사용자는 조건으로, "팔 굽혀 펴기를 하면"을 발화하고, 조건에 따라 실행할 액션으로, "구령해줘"를 발화할 수 있다.
또는, 사용자는 조건으로, "아무도 없는데 낯선 사람이 들어오면"을 발화하고, 조건에 따라 실행할 액션으로, "영상을 녹화하고 가족에게 연락해줘"를 발화할 수 있다.
또는, 사용자는 조건으로, "문 밖에서 큰소리가 나면"을 발화하고, 조건에 따라 실행할 액션으로"문에 달린 카메라를 켜서 TV에 보여줘"를 발화하면서 손가락으로 TV를 지시하는 제스처를 수행할 수 있다.
사용자가 조건에 따라 실행할 액션을 설정하면, 사용자의 주변 장치는 사용자가 발화하는 자연어를 입력 받고, 또한 사용자의 행위를 촬영할 수 있다(603).
다음으로, 프로세서(120)는 주변 장치들로부터 자연어에 기초하여 생성된 음성 정보 및 촬영에 기초하여 생성된 영상 정보를 주변 장치로부터 획득하고, 획득된 음성 정보 및 영상 정보를 처리할 수 있다(605). 예를 들어, 프로세서(120)는 자연어 처리(natural language processing) 기법을 이용하여 획득된 음성 정보를 텍스트로 변환하고, 시각 인식(visual recognition) 기법을 이용하여 영상 정보에 포함된 오브젝트 및 주변 환경을 인식할 수 있다.
그리고, 프로세서(120)는 사용자의 의도 파악을 위하여 처리된 음성 정보 및 영상 정보를 분석(또는, 해석)할 수 있다. 예로, 프로세서(120)는 멀티모달 추론(multimodal reasoning) 기법을 이용하여 음성 정보 및 영상 정보를 분석할 수 있다(607). 이 경우, 프로세서(120)는 학습 알고리즘(예로, 신경망 알고리즘, 유전 알고리즘, 결정 트리(decision tree) 알고리즘, 서포트 벡터 머신(support vector machine) 등)을 이용하여 생성된 데이터 인식 모델을 바탕으로 음성 정보 및 영상 정보를 분석할 수 있다. 프로세서(120)는 사용자의 의도를 파악하여 조건 및 조건에 따라 실행할 액션을 결정하고, 또한, 상기 조건에 따라 검출이 필요한 적어도 하나의 이벤트를 결정할 수 있다.
이 경우, 프로세서(120)는 사용자의 의도를 명확하게 파악하기 위하여, 분석 결과에 따른 조건 및 조건에 따라 실행할 액션을 확인할 수도 있다.
다양한 실시예에 따르면, 프로세서(120)는 조건 및 액션을 확인하기 위한 피드백으로서 확인 UI(user interface)를 사용자에게 제공할 수도 있다.
일 예로, 프로세서(120)는 음성 또는 영상으로 "오른쪽 책상 위에서 두 번째 서랍이 열리면 녹화하라는 말씀이 맞나요"라는 확인 UI를 전자 장치(100) 또는 주변 장치를 이용하여 제공할 수 있다. 이 경우, 확인 UI에 승낙하는 사용자 입력이 수신되면, 프로세서(120)는 조건 및 조건에 따라 실행할 액션을 결정할 수 있다. 반면에, 확인 UI에 거절하는 사용자 입력이 수신되면, 프로세서(120)는 조건에 따라 실행할 액션을 설정하는 사용자의 발화 및 행위를 다시 요청하는 UI를 전자 장치(100) 또는 주변 장치를 이용하여 제공할 수 있다.
다음으로, 프로세서(120)는 이벤트 검출 계획을 수립할 수 있다(609). 예로, 프로세서(120)는 동작 607에서 결정된 적어도 하나의 이벤트를 검출하기 위한 적어도 하나의 검출 자원을 선택할 수 있다. 이 경우, 프로세서(120)는 학습 알고리즘(예로, 신경망 알고리즘, 유전 알고리즘, 결정 트리 알고리즘 또는 서포트 벡터 머신 등)을 이용하여 생성된 데이터 인식 모델을 바탕으로 적어도 하나의 이벤트를 검출하기 위한 적어도 하나의 검출 자원을 결정할 수 있다.
이를 위하여, 프로세서(120)는 기 설치되어 있는 가용 자원들을 검색할 수 있다. 여기서, 가용 자원들은 사용자가 설정한 조건에 따른 액션을 실행하기 위하여, 조건에 따른 이벤트를 검출 가능한 장소 및 액션에 따른 기능이 실행 가능한 장소에 위치한 가용 자원들일 수 있다.
가용 자원들은 프로세서(120)의 검색에 대응하여, 자신들의 기능에 대한 정보를 프로세서(120)로 전송할 수 있다.
프로세서(120)는 가용 자원들의 기능들 중 검출 가능한 기능에 기초하여, 가용 자원들 중에서 이벤트를 검출할 적어도 하나의 검출 자원을 결정할 수 있다.
예로, 검출 가능한 기능은, 제스처 감지 기능, 기압 감지 기능, 자성 감지 기능, 가속도 감지 기능, 근접 감지 기능, 색 감지 기능, 온도 감지 기능, 습도 감지 기능, 거리 감지 기능, 압력 감지 기능, 터치 감지 기능, 조도 감지 기능, 파장 감지 기능, 향기 또는 맛 감지 기능, 지문 감지 기능, 홍채 감지 기능, 음성을 입력 받는 기능 또는 영상을 촬영하는 기능 등과 같이 물리량을 계측하거나, 주변 환경의 상태를 감지하여 감지된 정보를 전기 신호로 변환 가능한 기능이 포함될 수 있다.
한편, 가용 자원들의 검출 가능한 기능들 중 동일한 기능들이 존재하는 경우, 프로세서(120)는 기능의 우선 순위에 따라 검출 자원을 결정할 수 있다. 예로, 검출 가능한 기능들 각각의 검출 범위, 검출 주기, 검출 성능 또는 검출 기간 등의 우선 순위를 고려하여 이벤트를 검출할 적어도 하나의 검출 자원을 결정할 수 있다.
다양한 실시예에 따르면, 사용자가 설정한 조건이 "아무도 없는데 방에 창문이 열려 있으면"인 경우, 프로세서(120)는 검출 자원으로서 방 내의 물체가 움직이는 이벤트를 검출하는 모션 센서, 방 내의 사람을 인식하는 이벤트를 검출하는 카메라, 창문이 열리는 이벤트를 검출하는 창문 열림 센서를 선택할 수 있다.
이 경우, 프로세서(120)는 모션 센서로부터 물체의 이동이 없는 이벤트가 검출되고, 카메라로부터 방에 사람이 없는 이벤트가 검출되고, 창문이 열린 이벤트가 모두 검출되면 프로세서(120)는 조건을 만족하는 이벤트가 검출된 것으로 검출 계획을 수립할 수 있다. 반면에, 상기 이벤트들 중에서 적어도 하나의 이벤트가 검출되지 않은 경우, 프로세서(120)는 조건을 만족하지 않은 상황이 발생한 것으로 결정할 수 있다.
이 때, 프로세서(120)는 미리 학습된 데이터 인식 모델을 이용하여, 모델의 입력 값으로 사용자가 설정한 조건에 따른 상황을 제공하고, 이에 따라 수립된 검출 계획에 따라 가용 자원이 조건에 따른 이벤트의 검출할 수 있는지를 판단할 수도 있다. 이를, 멀티모달 학습(multi-modal learning) 기반의 이벤트 검출 방식으로 정의할 수 있다.
또한, 프로세서(120)는 가용 자원들이 제공 가능한 기능에 기초하여, 가용 자원들 중에서 액션에 따른 기능을 실행할 적어도 하나의 실행 자원을 결정할 수 있다. 이 경우, 프로세서(120)는 학습 알고리즘(예로, 신경망 알고리즘, 유전 알고리즘, 결정 트리 알고리즘 또는 서포트 벡터 머신 등)을 이용하여 생성된 데이터 인식 모델을 바탕으로 액션에 다른 기능을 실행할 적어도 하나의 실행 자원을 결정할 수 있다.
예로, 실행 가능한 기능은, 전술한 검출 가능한 기능을 포함하며, 또한, 디스플레이 기능, 오디오 재생 기능, 텍스트 표시 기능, 영상 촬영 기능, 녹음 기능, 데이터 전송 기능, 진동 기능 또는 동력을 전달하는 구동 기능 중 적어도 하나가 될 수 있다.
한편, 가용 자원들의 실행 가능한 기능들 중 동일한 기능들이 존재하는 경우, 프로세서(120)는 기능의 우선 순위에 따라 실행 자원을 결정할 수 있다. 예로, 실행 가능한 기능들 각각의 실행 범위, 실행 주기, 실행 성능 또는 실행 기간 등의 우선 순위를 고려하여 액션에 따른 기능을 실행할 적어도 하나의 실행 자원을 결정할 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 수립된 이벤트 검출 계획을 사용자가 확인하기 위한 피드백으로서 확인 UI를 제공할 수도 있다.
일 예로, 프로세서(120)는 음성으로 "이 서랍이 열리면 녹화합니다. 시험을 해보시려면 지금 서랍을 열어 보세요"라는 확인 UI를 전자 장치(100) 또는 사용자의 주변 장치를 이용하여 제공할 수 있다. 또한, 프로세서(120)는 이벤트 검출에 따른 액션으로서 녹화 기능을 수행하는 TV의 화면에 서랍을 표시할 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 조건에 따라 검출할 이벤트가 복수 개인 경우, 복수의 이벤트들의 공통 조건을 분석하여 이벤트를 검출하는 검출 자원을 최적화 할 수 있다.
일 예로, 사용자가 설정한 조건이 "다른 사람이 저기 있는 서랍을 열면" 인 경우, 프로세서(120)는 조건에 따라 검출할 이벤트를 서랍이 열리는 이벤트 및 다른 사람을 인식하는 이벤트로 결정할 수 있다. 이 경우, 프로세서(120)는 서랍이 열리는 이벤트를 검출하는 검출 자원으로서 서랍에 부착된 거리 감지 센서를 선택하고, 다른 사람을 인식하는 이벤트를 검출하는 검출 자원으로서 서랍 주변의 카메라를 선택할 수 있다. 이 경우, 프로세서(120)는 상기 복수의 이벤트들을 카메라가 다른 사람이 서랍을 여는 것을 인식하는 하나의 이벤트로 최적화할 수도 있다.
다양한 실시예에 따르면, 프로세서(120)는 가용 자원의 상황에 따라 특정 이벤트를 검출하는 가용 자원을 다른 가용 자원으로 대처할 수도 있다. 또는, 프로세서(120)는 가용 자원의 상황에 따라 조건에 따른 이벤트의 검출 여부를 결정하고, 이벤트의 검출이 불가능한 경우는 사용자에게 피드백을 제공할 수 있다.
일 예로, 사용자가 설정한 조건이 "다른 사람이 저기 있는 서랍을 열면"인 경우, 프로세서(120)는 서랍 주변의 카메라가 동작이 불가능하면, 다른 사람을 감지하기 위하여 서랍의 주변의 카메라 대신에 서랍에 마련된 지문 인식 센서를 다른 사람을 인식하는 이벤트를 검출하는 가용 자원으로 대처할 수 있다.
이 경우, 다른 사람을 인식하는 이벤트를 검출하는 가용 자원이 없거나 또는 이벤트를 검출할 수 없는 경우, 프로세서(120)는 조건의 수행이 어려움을 알리는 피드백으로 알림 UI를 사용자에게 제공할 수 있다.
예로, 프로세서(120)는 "다른 사람에 해당하는 조건은 수행할 수가 없습니다"라는 알림 UI를 사용자에게 제공할 수 있다.
이러한 상황에서, 조건을 만족하는 상황이 발생되면, 프로세서(120)에 의하여 결정된 검출 자원은 조건에 따른 이벤트를 검출할 수 있다(611).
프로세서(120)는 검출 결과에 기초하여, 조건을 만족하는 이벤트가 검출된 것으로 판단되면, 사용자가 설정한 액션에 따른 기능을 실행할 수 있다. 이러한 상황을, 전술한 트리거 조건에 대응하여 프로세서(120)가 조건에 따라 사용자가 설정한 액션을 트리거한다고 칭할 수도 있다(613).
도 7은 본 개시의 일 실시예에 따르면, 전자 장치(100)에서 가용 자원의 식별 정보를 설정하는 과정을 나타내는 도면이다.
도 7에서, 가용 자원들(720,730)의 주변에는 가용 자원들(720,730)의 상태를 촬영할 수 있는 카메라(710)가 존재할 수 있다.
카메라(710)는 가용 자원들(720,730)을 실시간, 일정 주기 또는 이벤트 발생 시에 촬영할 수 있다.
이러한 상황에서, 일정 시간 동안에, 제1 가용 자원(예로, 접촉 센서 또는 거리 감지 센서)(720) 및 제2 가용 자원(예로, 디지털 램프)(730)에서 이벤트의 검출 또는 가용 자원의 동작 상태가 검출될 수 있다.
이 경우, 카메라(710)는 일정 시간 동안에 촬영한 가용 자원의 영상 정보를 전자 장치(100)로 전송하고, 가용 자원들(720,730)은 검출된 정보를 전자 장치(100)로 전송할 수 있다.
일 실시예로, 사용자가 문을 여는 t1 시간(741) 동안에, 제1 가용 자원(720)은 문이 열리는 이벤트를 검출하고(751), 검출 결과를 전자 장치(100)로 전송할 수 있다. 이 경우, 제1 가용 자원(720)의 주변에 위치한 카메라(710)는 상기 t1 시간(741) 동안에 제1 장소에 위치한 제1 가용 자원(720)을 촬영하여 영상 정보를 획득할 수 있다(753). 그리고, 카메라(710)는 획득된 영상 정보를 전자 장치(100)로 전송할 수 있다.
전자 장치(100)는 제1 가용 자원(720)이 검출한 검출 결과 및 제1 가용 자원(720)을 촬영한 영상 정보에 기초하여 제1 가용 자원(720)의 식별 정보를 자동으로 생성할 수 있다. 예로, 제1 가용 자원(720)의 식별 정보는, 제1 가용 자원(720)의 물리적인 위치인 제1 장소 및 제1 가용 자원(720)의 종류 또는 검출 결과의 속성에 기초하여 결정될 수 있다.
예로, 제1 장소가 현관문이고, 제1 가용 자원(720)의 종류가 물체의 이동 또는 착탈을 감지할 수 있는 접촉 센서 또는 거리 감지 센서인 경우, 전자 장치(100)는 제1 가용 자원(720)의 식별 정보를 "현관 문열림 센서"로 설정할 수 있다(755).
즉, 전자 장치(100)는 제1 가용 자원(720)으로 수신한 검출 결과 및 제1 가용 자원(720)을 촬영한 영상 정보를 서로 매핑하여 제1 가용 자원(720)의 이름을 자동으로 설정하는 시그맨틱 라벨링(semantic labeling) 작업을 수행할 수 있다.
전자 장치(100)가 제1 가용 자원(720)의 식별 정보를 자동으로 생성하는 경우, 전자 장치(100)는 학습 알고리즘(예로, 신경망 알고리즘, 유전 알고리즘, 결정 트리 알고리즘 또는 서포트 벡터 머신 등)을 이용하여 생성된 데이터 인식 모델을 이용하여 제1 가용 자원(720)의 식별 정보를 자동으로 생성할 수 있다.
다른 실시예로, 사용자가 문을 여는 t2 시간(742) 동안에, 제2 가용 자원(730)이 사용자의 조작 또는 자동으로 온 상태로 변경될 수 있다. 이 경우, 제2 가용 자원(730)은 자신의 온 상태를 검출하고(761), 이를 전자 장치(100)로 전송할 수 있다.
이러한 상황에서, 제2 가용 자원(730)의 주변에 위치한 카메라(710)는 상기 t2 시간(742) 동안에 제2 장소에 위치한 제2 가용 자원(730)을 촬영하여 영상 정보를 획득할 수 있다(763). 그리고, 카메라(710)는 획득된 영상 정보를 전자 장치(100)로 전송할 수 있다.
전자 장치(100)는 제2 가용 자원(730)의 동작 상태 및 제2 가용 자원(730)을 촬영한 영상 정보에 기초하여 제2 가용 자원(730)의 식별 정보를 자동으로 생성할 수 있다. 예로, 제2 가용 자원(730)의 식별 정보는, 예로, 제2 가용 자원(730)의 물리적 위치인 제2 장소 및 제2 가용 자원(730)의 종류 또는 동작 상태의 속성에 기초하여 결정될 수 있다.
예로, 제2 장소가 거실의 장식장 위이고, 제2 가용 자원(730)의 종류가 램프인 경우, 전자 장치(100)는 제2 가용 자원(730)의 식별 정보를 "거실 장식장 램프"로 설정할 수 있다(765).
다양한 실시 예에 따르면, 전자 장치(100)는 가용 자원이 최초 설치되는 경우에도, 가용 자원의 최초 설치 상태 및 설치되는 동안에 카메라로부터 획득된 영상 정보에 기초하여 가용 자원의 식별 정보를 설정할 수 있다.
다양한 실시 예에 따르면, 전자 장치(100)는 사용자가 구비한 휴대 단말 또는 사용자의 주변의 디스플레이를 구비한 외부 장치를 이용하여 가용 자원의 식별 정보 목록을 제공할 수 있다. 이 경우, 휴대 단말 또는 외부 장치는 가용 자원의 식별 정보의 적어도 일부를 변경할 수 있는 UI를 사용자에게 제공할 수도 있다. 제공된 UI에 대한 응답으로, 사용자가 가용 자원의 식별 정보를 변경하면, 전자 장치(100)는 변경된 가용 자원의 식별 정보를 휴대 단말 또는 외부 장치로부터 수신하고, 이에 기초하여 가용 자원의 식별 정보를 재 설정할 수 있다.
도 8은 본 개시의 일 실시예에 따른, 전자 장치(100)에서 조건에 따른 액션을 실행하는 흐름도를 나타내는 도면이다.
먼저, 전자 장치(100)는 조건에 따라 실행할 액션을 설정하기 위한, 사용자가 발화하는 자연어 및 자연어와 연관된 사용자의 행위로부터 생성된 음성 정보 및 영상 정보를 획득할 수 있다(801).
전자 장치(100)는 획득된 음성 정보 및 영상 정보에 기초하여, 조건에 따라 검출할 이벤트 및 이벤트가 검출되면 액션에 따라 실행할 기능을 결정할 수 있다(803).
이 경우, 전자 장치(100)는 획득된 음성 정보 및 영상 정보를 학습 알고리즘을 이용하여 생성된 데이터 인식 모델에 적용하여, 사용자의 의도에 따른 조건 및 액션을 결정하고, 조건에 따라 검출할 이벤트 및 액션에 따라 실행할 기능을 결정할 수 있다.
전자 장치(100)는 결정된 이벤트를 검출할 적어도 하나의 검출 자원을 결정할 수 있다(805). 이 경우, 검출 자원은 전자 장치에 포함된 모듈 또는 전자 장치의 외부에 위치한 외부 장치일 수 있다.
또한, 전자 장치(100)는 기 설치되어 있는 가용 자원들을 검색하고, 검색된 가용 자원들이 검출 가능한 기능에 기초하여, 가용 자원들 중에서 이벤트를 검출할 적어도 하나의 검출 자원을 결정할 수 있다.
이 경우, 이벤트를 검출할 자원이 없거나, 또는 검출 자원이 이벤트를 검출하는 없는 상황인 경우, 전자 장치(100)는 조건에 따른 액션의 실행이 불가능함을 알리는 알림 UI를 제공할 수 있다.
다음으로, 전자 장치(100)는 결정된 적어도 하나의 검출 자원을 이용하여 조건을 만족하는 적어도 하나의 이벤트가 검출되었는지를 판단할 수 있다(807).
판단 결과, 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우(807-Y), 전자 장치(100)는 액션에 따른 기능이 실행되도록 제어할 수 있다(809).
예로, 전자 장치(100)는 검출 자원으로부터 이벤트의 검출 결과가 수신되면, 수신된 검출 결과에 기초하여 액션에 따른 기능이 실행되도록 제어할 수 있다.
도 9는 본 개시의 다른 일 실시예에 따른, 전자 장치(100)에서 조건에 따른 액션을 실행하는 흐름도를 나타내는 도면이다.
먼저, 전자 장치(100)는 조건에 따라 실행할 액션을 설정하기 위한, 사용자가 발화하는 자연어 및 자연어와 연관된 사용자의 행위로부터 생성된 음성 정보 및 영상 정보를 획득할 수 있다(901).
전자 장치(100)는 획득된 음성 정보 및 영상 정보에 기초하여, 조건에 따라 검출할 이벤트 및 이벤트가 검출되면 액션에 따라 실행할 기능을 결정할 수 있다(903).
전자 장치(100)는 결정된 이벤트를 검출할 적어도 하나의 검출 자원 및 액션에 따른 기능을 실행할 적어도 하나의 실행 자원을 결정할 수 있다(905).
예로, 전자 장치(100)는 기 설치되어 있는 가용 자원들을 검색하고, 검색된 가용 자원들이 제공 가능한 기능에 기초하여, 가용 자원들 중에서 액션에 따른 기능을 실행할 적어도 하나의 실행 자원을 결정할 수 있다.
다음으로, 적어도 하나의 검출 자원이 결정되면, 전자 장치(100)는 결정된 적어도 하나의 검출 자원으로, 이벤트의 검출을 요청하는 제어 정보를 전송할 수 있다(907).
다음으로, 전자 장치(100)는 검출 자원을 이용하여 조건을 만족하는 적어도 하나의 이벤트가 검출되었는지를 판단할 수 있다(909).
판단 결과, 조건을 만족하는 적어도 하나의 이벤트가 검출된 경우(907-Y), 전자 장치(100)는 실행 자원이 액션에 따른 기능을 실행하도록 실행 자원으로 제어 정보를 전송할 수 있다(911).
이에 따라, 제어 정보를 수신한 실행 자원은, 액션에 따른 기능을 실행할 수 있다(913).
이하에서는 도 10 내지 도 13을 참조하여 본 개시의 일 실시예에 따른, 학습 알고리즘을 이용하여 데이터 인식 모델을 생성한 후 데이터 인식 모델을 통해 조건 및 액션, 그리고 조건에 따라 검출할 이벤트 및 액션에 따라 실행할 기능을 결정할 수 있다
## AI 모델 생성 방법 보완(1/2) ##
도 10를 참조하면, 일부 실시예에 따른 프로세서(120)는 데이터 학습부(1010) 및 데이터 인식부(1020)를 포함할 수 있다.
데이터 학습부(1010)는 데이터 인식 모델이 소정의 상황 판단(예를 들어, 조건 및 액션, 조건에 따른 이벤트, 액션에 따른 기능에 대한 판단 등)을 위한 기준을 갖도록 생성 또는 학습시킬 수 있다. 데이터 학습부(1010)는 소정의 상황을 판단하기 위하여, 학습 데이터를 데이터 인식 모델에 적용하여, 판단 기준을 갖는 데이터 인식 모델을 생성할 수 있다.
일 예로, 본 개시의 일 실시예에 따른, 데이터 학습부(1010)는 음성 정보와 관련된 학습 데이터 및 영상 정보와 관련된 학습 데이터를 이용하여 데이터 인식 모델을 생성 또는 학습시킬 수 있다.
다른 예로, 데이터 학습부(1010)는 조건과 관련된 학습 데이터 및 액션과 관련된 학습 데이터를 이용하여 데이터 인식 모델을 생성 및 학습시킬 수 있다.
또 다른 예로, 데이터 학습부(1010)는 이벤트와 관련된 학습 데이터 및 기능과 관련된 학습 데이터를 이용하여 데이터 인식 모델을 생성 및 학습시킬 수 있다.
데이터 인식부(1020)는 인식 데이터에 기초하여 상황을 판단할 수 있다. 데이터 인식부(1020)는 학습된 데이터 인식 모델을 이용하여, 소정의 인식 데이터로부터 상황을 판단할 수 있다. 데이터 인식부(1020)는 기 설정된 기준에 따라 소정의 인식 데이터를 획득하고, 획득된 인식 데이터를 입력 값으로 하여 데이터 인식 모델에 적용함으로써, 소정의 인식 데이터에 기초한 소정의 상황을 판단할 수 있다(또는, 추정(estimate)할 수 있다).
또한, 획득된 인식 데이터를 입력 값을 데이터 인식 모델에 적용하여 출력된 결과 값은, 데이터 인식 모델을 갱신하는데 이용될 수 있다.
특히, 본 개시의 일 실시예에 따른, 데이터 인식부(1020)는 음성 정보와 관련된 인식 데이터 및 영상 정보와 관련된 인식 데이터를 입력 값으로 데이터 인식 모델에 적용함으로써 전자 장치(100)의 상황을 판단한 판단 결과(예로, 조건 및 조건에 따라 실행을 원하는 액션)를 획득할 수 있다.
또한, 데이터 인식부(1020)는 조건과 관련된 인식 데이터, 액션과 관련된 인식 데이터를 입력 값으로 하여, 데이터 인식 모델에 적용함으로써, 전자 장치(100)의 상황을 판단한 판단 결과(예로, 조건에 따라 검출할 이벤트, 액션에 따라 실행할 기능)를 획득할 수 있다.
또한, 데이터 인식부(1020)는 이벤트와 관련된 인식 데이터, 기능과 관련된 인식 데이터를 입력 값으로 하여, 데이터 인식 모델에 적용함으로써, 전자 장치(100)의 상황을 판단한 판단 결과(예로, 이벤트를 검출할 검출 자원, 기능을 실행할 실행 자원)을 획득할 수 있다.
데이터 학습부(1010)의 적어도 일부 및 데이터 인식부(1020)의 적어도 일부는, 소프트웨어 모듈로 구현되거나 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 학습부(1010) 및 데이터 인식부(1020) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다. 이 때, 인공 지능을 위한 전용 하드웨어 칩은 확률 연산에 특화된 전용 프로세서로서, 기존의 범용 프로세서보다 병렬처리 성능이 높아 기계 학습과 같은 인공 지능 분야의 연산 작업을 빠르게 처리할 수 있다. 데이터 학습부(1010) 및 데이터 인식부(1020)가 소프트웨어 모듈(또는, 인스트럭션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 이 경우, 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
이 경우, 데이터 학습부(1010) 및 데이터 인식부(1020)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 학습부(1010) 및 데이터 인식부(1020) 중 하나는 전자 장치(100)에 포함되고, 나머지 하나는 외부의 서버에 포함될 수 있다. 또한, 데이터 학습부(1010) 및 데이터 인식부(1020)는 유선 또는 무선으로 통하여, 데이터 학습부(1010)가 구축한 모델 정보를 데이터 인식부(1020)로 제공할 수도 있고, 데이터 인식부(1020)로 입력된 데이터가 추가 학습 데이터로서 데이터 학습부(1010)로 제공될 수도 있다.
도 11은 본 개시의 실시예에 따른 데이터 학습부(1010)의 블록도이다.
도 11을 참조하면, 일부 실시예에 따른 데이터 학습부(1010)는 데이터 획득부(1010-1) 및 모델 학습부(1010-4)를 포함할 수 있다. 또한, 데이터 학습부(1010)는 전처리부(1010-2), 학습 데이터 선택부(1010-3) 및 모델 평가부(1010-5) 중 적어도 하나를 선택적으로 더 포함할 수도 있다.
데이터 획득부(1010-1)는 상황 판단을 위한 학습을 위하여 필요한 학습 데이터를 획득할 수 있다.
학습 데이터는 데이터 학습부(1010) 또는 전자 장치(100)의 제조사에 의하여 수집 또는 테스트한 데이터가 이용될 수도 있다. 또는, 학습 데이터는 본 개시에 따른 마이크를 통해 사용자가 발화한 자연어로부터 생성된 음성 데이터를 포함할 수 있다., 카메라를 통해 사용자가 발화한 자연어와 연관된 사용자의 행위로부터 생성된 음성 데이터를 포함할 수 있다. 이때, 마이크 및 카메라는 전자 장치(100) 내부에 구비될 수 있으나, 이는 일 실시예에 불과할 뿐, 외부의 마이크 및 카메라를 통해 획득한 자연어에 대한 음성 데이터 및 행위에 대한 영상 데이터가 학습 데이터로서 이용될 수도 있다.모델 학습부(1010-4)는 학습 데이터를 이용하여, 데이터 인식 모델이 소정의 상황을 어떻게 판단할 지에 관한 판단 기준을 갖도록 학습시킬 수 있다. 예로, 모델 학습부(1010-4)는 학습 데이터 중 적어도 일부를 판단 기준으로 이용하는 지도 학습(supervised learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또는, 모델 학습부(1010-4)는, 예를 들어, 별다른 지도 없이 학습 데이터를 이용하여 스스로 학습함으로써, 상황의 판단을 위한 판단 기준을 발견하는 비지도 학습(unsupervised learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다.
또한, 모델 학습부(1010-4)는 상황 판단을 위하여 어떤 학습 데이터를 이용해야 하는 지에 대한 선별 기준을 학습할 수도 있다.
특히, 본 개시의 일 실시예에 따른, 모델 학습부(1010-4)는 음성 정보와 관련된 학습 데이터 및 영상 정보와 관련된 학습 데이터를 이용하여 데이터 인식 모델을 생성 또는 학습시킬 수 있다. 이 경우, 지도 학습 방식을 통하여, 데이터 인식 모델을 학습시키는 경우, 판단 기준으로서, 사용자 의도에 따른 조건 및 조건에 따라 실행할 액션이 학습 데이터로서 추가될 수 있다. 또는, 상기 조건에 따라 검출할 이벤트 및 상기 액션에 실행할 기능이 학습 데이터로서 추가될 수 있다. 또는, 상기 이벤트를 검출할 검출 자원 및 상기 기능을 실행할 실행 자원이 학습 데이터로서 추가될 수 있다.
또는, 모델 학습부(1010-4)는 조건과 관련된 학습 데이터 및 액션과 관련된 학습 데이터를 이용하여 데이터 인식 모델을 생성 및 학습시킬 수 있다.
이 경우, 지도 학습 방식을 통하여, 데이터 인식 모델을 학습시키는 경우, 판단 기준으로서, 조건에 따라 검출할 이벤트 및 상기 액션에 실행할 기능이 학습 데이터로서 추가될 수 있다. 또는, 상기 이벤트를 검출할 검출 자원 및 상기 기능을 실행할 실행 자원이 학습 데이터로서 추가될 수 있다.
또는, 모델 학습부(1010-4)는 이벤트와 관련된 학습 데이터 및 기능과 관련된 학습 데이터를 이용하여 데이터 인식 모델을 생성 및 학습시킬 수 있다.
이 경우, 지도 학습 방식을 통하여, 데이터 인식 모델을 학습시키는 경우, 판단 기준으로서, 이벤트를 검출할 검출 자원 및 상기 기능을 실행할 실행 자원이 학습 데이터로서 추가될 수 있다.
한편, 데이터 인식 모델은 미리 구축되어, 모델 학습부(1010-4)의 학습에 의하여 업데이트되는 모델일 수 있다. 이 경우, 데이터 인식 모델은 기본 학습 데이터(예를 들어, 샘플 이미지 등)을 입력 받아 미리 구축된 상태일 수 있다.
데이터 인식 모델은, 인식 모델의 적용 분야, 학습의 목적 또는 장치의 컴퓨터 성능 등을 고려하여 구축될 수 있다. 데이터 인식 모델은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 데이터 인식 모델은 인간의 뇌 구조를 컴퓨터 상에서 모의하도록 설계될 수 있다. 데이터 인식 모델은 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 가지는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 노드들은 뉴런이 시냅스(synapse)를 통하여 신호를 주고 받는 시냅틱(synaptic) 활동을 모의하도록 각각 연결 관계를 형성할 수 있다. 데이터 인식 모델은, 일 예로, 신경망 모델, 또는 신경망 모델에서 발전한 딥 러닝 모델을 포함할 수 있다. 딥 러닝 모델에서 복수의 네트워크 노드들은 서로 다른 깊이(또는, 레이어)에 위치하면서 컨볼루션(convolution) 연결 관계에 따라 데이터를 주고 받을 수 있다.
예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 데이터 인식 모델로서 사용될 수 있으나, 이에 한정되지 않는다.
다양한 실시예에 따르면, 모델 학습부(1010-4)는 미리 구축된 데이터 인식 모델이 복수 개가 존재하는 경우, 입력된 학습 데이터와 기본 학습 데이터의 관련성이 큰 데이터 인식 모델을 학습할 데이터 인식 모델로 결정할 수 있다. 이 경우, 기본 학습 데이터는 데이터의 타입 별로 기 분류되어 있을 수 있으며, 데이터 인식 모델은 데이터의 타입 별로 미리 구축되어 있을 수 있다. 예를 들어, 기본 학습 데이터는 학습 데이터가 생성된 지역, 학습 데이터가 생성된 시간, 학습 데이터의 크기, 학습 데이터의 장르, 학습 데이터의 생성자, 학습 데이터 내의 오브젝트의 종류 등과 같은 다양한 기준으로 기 분류되어 있을 수 있다.
또한, 모델 학습부(1010-4)는, 예를 들어, 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient descent)을 포함하는 학습 알고리즘 등을 이용하여 데이터 인식 모델을 학습시킬 수 있다.
또한, 모델 학습부(1010-4)는, 예를 들어, 판단 기준을 입력 값으로 이용하는 지도 학습을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또는, 모델 학습부(1010-4)는, 예를 들어, 별다른 지도 없이 필요한 학습 데이터를 이용하여 스스로 학습함으로써, 상황의 판단을 위한 판단 기준을 발견하는 비지도 학습을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또한, 모델 학습부(1010-4)는, 예를 들어, 학습에 따른 상황 판단의 결과가 올바른 지에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다.
또한, 데이터 인식 모델이 학습되면, 모델 학습부(1010-4)는 학습된 데이터 인식 모델을 저장할 수 있다. 이 경우, 모델 학습부(1010-4)는 학습된 데이터 인식 모델을 전자 장치(100)의 메모리(110)에 저장할 수 있다. 또는, 모델 학습부(1010-4)는 학습된 데이터 인식 모델을 전자 장치(100)와 유선 또는 무선 네트워크로 연결되는 서버의 메모리에 저장할 수도 있다.
데이터 학습부(1010)는 데이터 인식 모델의 인식 결과를 향상시키거나, 데이터 인식 모델의 생성에 필요한 자원 또는 시간을 절약하기 위하여, 전처리부(1010-2) 및 학습 데이터 선택부(1010-3)를 더 포함할 수도 있다.
전처리부(1010-2)는 상황 판단을 위한 학습에 이용하기 위하여 데이터 획득부(1010-1)에서 획득된 데이터를 전처리할 수 있다.
예로, 전처리부(1010-2)는 모델 학습부(1010-4)가 데이터 인식 모델의 학습을 위한 데이터의 이용이 용이하도록, 획득된 데이터를 기 정의된 포맷으로 가공할 수 있다. 예를 들어, 전처리부(1010-2)는 데이터 획득부(1010-1)에 의해 획득된 음성 데이터를 텍스트 데이터로 가공할 수 있으며, 영상 데이터를 기 설정된 포맷의 영상 데이터로 가공할 수 있다. 전처리된 데이터는 학습 데이터로서 모델 학습부(1010-4)에게 제공될 수 있다.
또는, 학습 데이터 선택부(1010-3)가 전처리된 데이터 중에서 학습에 필요한 학습 데이터를 선별적으로 선택할 수 있다. 선택된 학습 데이터는 모델 학습부(1010-4)에 제공될 수 있다. 학습 데이터 선택부(1010-3)는 기 설정된 선별 기준에 따라, 전처리된 데이터 중에서 학습에 필요한 학습 데이터를 선별할 수 있다. 또한, 학습 데이터 선택부(1010-3)는 모델 학습부(1010-4)에 의한 학습에 의해 기 설정된 선별 기준에 따라 학습에 필요한 학습 데이터를 선별할 수도 있다. 본 개시의 일 실시예로, 학습 데이터 선택부(1010-3)는 입력된 음성 데이터 중 특정 사용자가 발화한 음성 데이터만을 선택할 수 있으며, 영상 데이터 중 배경을 제외한 사람이 포함된 영역만을 선택할 수 있다.
데이터 학습부(1010)는 데이터 인식 모델의 인식 결과를 향상시키기 위하여, 모델 평가부(1010-5)를 더 포함할 수도 있다.
모델 평가부(1010-5)는 데이터 인식 모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 인식 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(1010-4)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 데이터 인식 모델을 평가하기 위한 기 정의된 데이터일 수 있다.
예를 들어, 모델 평가부(1010-5)는 평가 데이터에 대한 학습된 데이터 인식 모델의 인식 결과 중에서, 인식 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정된 임계치를 초과하는 경우 소정 기준을 만족하지 못한 것으로 평가할 수 있다. 예컨대, 소정 기준이 비율 2%로 정의되는 경우, 학습된 데이터 인식 모델이 총 1000개의 평가 데이터 중의 20개를 초과하는 평가 데이터에 대하여 잘못된 인식 결과를 출력하는 경우, 모델 평가부(1010-5)는 학습된 데이터 인식 모델이 적합하지 않은 것으로 평가할 수 있다.
한편, 학습된 데이터 인식 모델이 복수 개가 존재하는 경우, 모델 평가부(1010-5)는 각각의 학습된 데이터 인식 모델에 대하여 소정 기준을 만족하는지를 평가하고, 소정 기준을 만족하는 모델을 최종 데이터 인식 모델로서 결정할 수 있다. 이 경우, 소정 기준을 만족하는 모델이 복수 개인 경우, 모델 평가부(1010-5)는 평가 점수가 높은 순으로 미리 설정된 어느 하나 또는 소정 개수의 모델을 최종 데이터 인식 모델로서 결정할 수 있다.
전술한, 데이터 획득부(1010-1), 전처리부(1010-2), 학습 데이터 선택부(1010-3), 모델 학습부(1010-4) 및 모델 평가부(1010-5) 중 적어도 하나는, 소프트웨어 모듈로 구현되거나 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(1010-1), 전처리부(1010-2), 학습 데이터 선택부(1010-3), 모델 학습부(1010-4) 및 모델 평가부(1010-5) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
또한, 데이터 획득부(1010-1), 전처리부(1010-2), 학습 데이터 선택부(1010-3), 모델 학습부(1010-4) 및 모델 평가부(1010-5)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(1010-1), 전처리부(1010-2), 학습 데이터 선택부(1010-3), 모델 학습부(1010-4) 및 모델 평가부(1010-5) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.
또한, 데이터 획득부(1010-1), 전처리부(1010-2), 학습 데이터 선택부(1010-3), 모델 학습부(1010-4) 및 모델 평가부(1010-5) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(1010-1), 전처리부(1010-2), 학습 데이터 선택부(1010-3), 모델 학습부(1010-4) 및 모델 평가부(1010-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 12는 일부 실시예에 따른 데이터 인식부(1020)의 블록도이다.
도 12를 참조하면, 일부 실시예에 따른 데이터 인식부(1020)는 데이터 획득부(1020-1) 및 인식 결과 제공부(1020-4)를 포함할 수 있다. 또한, 데이터 인식부(1020)는 전처리부(1020-2), 인식 데이터 선택부(1020-3) 및 모델 갱신부(1020-5) 중 적어도 하나를 선택적으로 더 포함할 수 있다.
데이터 획득부(1020-1)는 상황 판단에 필요한 인식 데이터를 획득할 수 있다.
인식 결과 제공부(1020-4)는 데이터 획득부(1020-1)에서 획득된 데이터를 입력 값으로 학습된 데이터 인식 모델에 적용하여 상황을 판단할 수 있다. 인식 결과 제공부(1020-4)는 데이터의 인식 목적에 따른 인식 결과를 제공할 수 있다. 또는, 인식 결과 제공부(1020-4)는 후술할 전처리부(1020-2)에서 전처리된 데이터를 입력 값으로 학습된 데이터 인식 모델에 적용하여 획득된 인식 결과를 제공할 수 있다. 또는, 인식 결과 제공부(1020-4)는 후술할 인식 데이터 선택부(1020-3)에 의해 선택된 데이터를 입력 값으로 데이터 인식 모델에 적용하여 인식 결과를 제공할 수 있다.
데이터 인식부(1210)는 데이터 인식 모델의 인식 결과를 향상시키거나, 인식 결과의 제공을 위한 자원 또는 시간을 절약하기 위하여, 전처리부(1020-2) 및 인식 데이터 선택부(1020-3)를 더 포함할 수도 있다.
전처리부(1020-2)는 상황 판단을 위한 인식에 이용하기 위하여 데이터 획득부(1020-1)에서 획득된 데이터를 전처리할 수 있다.
전처리부(1020-2)는 인식 결과 제공부(1020-4)가 상황 판단을 위한 데이터의 이용이 용이하도록, 획득된 데이터를 기 정의된 포맷으로 가공할 수 있다. 특히, 본 개시의 일 실시예에 따르면, 데이터 획득부(1020-1)는 상황 판단(조건 및 액션, 조건에 따른 이벤트, 액션에 따른 기능, 이벤트 검출을 위한 검출 자원 등에 대한 판단)을 위해 음성 데이터 및 영상 데이터를 획득하고, 전처리부(1020-2)는 전술한 바와 같이, 기 정의된 포맷으로 전처리할 수 있다.
인식 데이터 선택부(1020-3)는 전처리된 데이터 중에서 상황 판단에 필요한 인식 데이터를 선택할 수 있다. 선택된 인식 데이터는 인식 결과 제공부(1020-4)에게 제공될 수 있다. 인식 데이터 선택부(1020-3)는 기 설정된 선별 기준에 따라, 전처리된 데이터 중에서 상황 판단에 필요한 인식 데이터를 선별할 수 있다. 또한, 인식 데이터 선택부(1020-3)는 전술한 모델 학습부(1010-4)에 의한 학습에 의해 기 설정된 선별 기준에 따라 데이터를 선택할 수도 있다.
모델 갱신부(1020-5)는 인식 결과 제공부(1020-4)에 의해 제공되는 인식 결과에 대한 평가에 기초하여, 데이터 인식 모델이 갱신되도록 제어할 수 있다. 예를 들어, 모델 갱신부(1020-5)는 인식 결과 제공부(1020-4)에 의해 제공되는 인식 결과를 모델 학습부(1010-4)에게 제공함으로써, 모델 학습부(1010-4)가 데이터 인식 모델을 갱신하도록 제어할 수 있다.
전술한, 데이터 인식부(1020) 내의 데이터 획득부(1020-1), 전처리부(1020-2), 인식 데이터 선택부(1020-3), 인식 결과 제공부(1020-4) 및 모델 갱신부(1020-5) 중 적어도 하나는, 소프트웨어 모듈로 구현되거나 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(1020-1), 전처리부(1020-2), 인식 데이터 선택부(1020-3), 인식 결과 제공부(1020-4) 및 모델 갱신부(1020-5) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
또한, 데이터 획득부(1020-1), 전처리부(1020-2), 인식 데이터 선택부(1020-3), 인식 결과 제공부(1020-4) 및 모델 갱신부(1020-5)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(1020-1), 전처리부(1020-2), 인식 데이터 선택부(1020-3), 인식 결과 제공부(1020-4) 및 모델 갱신부(1020-5) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.
또한, 데이터 획득부(1020-1), 전처리부(1020-2), 인식 데이터 선택부(1020-3), 인식 결과 제공부(1020-4) 및 모델 갱신부(1020-5) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(1020-1), 전처리부(1020-2), 인식 데이터 선택부(1020-3), 인식 결과 제공부(1020-4) 및 모델 갱신부(1020-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 13은 일부 실시예에 따른 전자 장치(100) 및 서버(1300)가 서로 연동함으로써 데이터를 학습하고 인식하는 예시를 나타내는 도면이다.
도 13을 참조하면, 서버(1300)는 상황 판단을 위한 기준을 학습할 수 있으며, 전자 장치(100)는 서버(1300)에 의한 학습 결과에 기초하여 상황을 판단할 수 있다.
이 경우, 서버(1300)의 모델 학습부(1010-4)는 소정의 상황을 판단하기 위하여 어떤 데이터를 이용할 지, 데이터를 이용하여 상황을 어떻게 판단할 지에 관한 기준을 학습할 수 있다. 모델 학습부(1010-4)는 학습에 이용될 데이터를 획득하고, 획득된 데이터를 후술할 데이터 인식 모델에 적용함으로써, 상황 판단을 위한 기준을 학습할 수 있다.
또한, 전자 장치(100)의 인식 결과 제공부(1020-4)는 인식 데이터 선택부(1020-3)에 의해 선택된 데이터를 서버(1300)에 의해 생성된 데이터 인식 모델에 적용하여 상황을 판단할 수 있다. 구체적으로, 인식 결과 제공부(1020-4)는 인식 데이터 선택부(1020-3)에 의해 선택된 데이터를 서버(1300)에게 전송하고, 서버(1300)가 인식 데이터 선택부(1020-3)에 의해 선택된 데이터를 인식 모델에 적용하여 상황을 판단할 것을 요청할 수 있다. 또한, 인식 결과 제공부(1020-4)는 서버(1300)에 의해 판단된 상황에 관한 정보를 서버(1300)로부터 수신할 수 있다. 예를 들어, 인식 데이터 선택부(1020-3)에 의해 음성 데이터 및 영상 데이터가 서버(1300)에게 전송된 경우, 서버(1300)는 기 저장된 데이터 인식 모델에 음성 데이터 및 영상 데이터를 적용하여 상황에 대한 정보(예를 들어, 조건 및 액션, 조건에 따른 이벤트, 액션에 따른 기능 등)을 전자 장치(100)로 전송할 수 있다.
또는, 전자 장치(100)의 인식 결과 제공부(1020-4)는 서버(1300)에 의해 생성된 인식 모델을 서버(1300)로부터 수신하고, 수신된 인식 모델을 이용하여 상황을 판단할 수 있다. 이 경우, 전자 장치(100)의 인식 결과 제공부(1020-4)는 인식 데이터 선택부(1020-3)에 의해 선택된 데이터를 서버(1300)로부터 수신된 데이터 인식 모델에 적용하여 상황을 판단할 수 있다. 예를 들어, 전자 장치(100)는 서버(1300)로부터 데이터 인식 모델을 수신하여 저장하고, 인식 데이터 선택부(1020-3)에 의해 선택된 음성 데이터 및 영상 데이터를 서버(1300)로부터 수신된 데이터 인식 모델에 적용하여 상황에 대한 정보(예를 들어, 조건 및 액션, 조건에 따른 이벤트, 액션에 따른 기능 등)을 판단할 수 있다.
도 14a 내지 도 14c는 본 개시의 실시예에 따른 데이터 인식 모델을 이용하는 전자 장치(100)의 흐름도들이다.
먼저, 도 14a의 동작 1401에서, 전자 장치(100)는 조건에 따라 실행할 액션을 설정하는 사용자의 자연어 및 행위로부터 생성된 음성 정보 및 영상 정보를 획득할 수 있다.
동작 1403에서, 전자 장치(100)는 획득한 음성 정보 및 영상 정보를 학습된 데이터 인식 모델에 적용하여, 조건에 따라 검출할 이벤트 및 액션에 따라 실행할 기능을 획득할 수 있다. 예로, 도 3a에 개시된 예에서, 사용자(1)가 "다른 사람이 저기 있는 서랍을 열면 영상을 녹화해"라고 자연어를 발화하면서, 손가락으로 서랍을 지시하는 제스처를 수행하거나 또는 시선을 서랍을 향하는 행위를 수행하는 경우, 전자 장치(100)는 상기 자연어에 따라 생성된 음성 정보를 획득하고, 상기 행위에 따라 생성된 영상 정보를 획득할 수 있다. 그리고, 전자 장치(100)는 음성 정보 및 영상 정보를 인식 데이터로 학습된 데이터 인식 모델에 적용하여, 조건에 따라 검출할 이벤트로서 "서랍(330)이 열리는 이벤트 및 다른 사람을 인식하는 이벤트"를 결정할 수 있으며, 액션에 따른 실행할 기능으로 "다른 사람이 서랍(330)을 여는 상황을 영상으로 녹화하는 기능"을 결정할 수 있다.
다음으로, 동작 1405에서, 전자 장치(100)는 결정된 이벤트 및 기능에 기초하여, 이벤트를 검출할 검출 자원 및 기능을 실행할 실행 자원을 결정할 수 있다.
검출 자원 및 실행 자원이 결정된 상태에서, 동작 1407에서, 전자 장치(100)는 결정된 검출 자원을 이용하여 조건을 만족하는 적어도 하나의 이벤트가 검출되는지를 판단할 수 있다.
적어도 하나의 이벤트가 검출되는 경우(1407-Y), 동작 1409에서, 전자 장치(100)는 액션에 따른 기능이 실행되도록 제어할 수 있다.
다른 실시예로, 도 14b의 동작 1411에서, 전자 장치(100)는 조건에 따라 실행할 액션을 설정하는 사용자의 자연어 및 행위로부터 생성된 음성 정보 및 영상 정보를 획득할 수 있다.
동작 1413에서, 전자 장치(100)는 획득된 음성 정보 및 영상 정보에 기초하여, 조건에 따라 검출할 이벤트 및 액션에 따라 실행할 기능을 결정할 수 있다.
다음으로, 동작 1415에서, 전자 장치(100)는 결정된 이벤트 및 기능을 데이터 인식 모델에 적용하여, 이벤트를 검출할 검출 자원 및 기능을 실행할 실행 자원을 획득할 수 있다. 예로, 도 3a에 개시된 예에서, 결정된 이벤트 및 기능이 각각 "서랍(330)이 열리는 이벤트 및 다른 사람을 인식하는 이벤트" 이고, 액션에 따른 실행할 기능이 "다른 사람이 서랍(330)을 여는 상황을 영상으로 녹화하는 기능"인 경우, 전자 장치(100)는 결정된 이벤트 및 기능을 인식 데이터로 데이터 인식 모델에 적용할 수 있다. 그리고, 전자 장치(100)는 데이터 인식 모델 적용 결과로서, 검출 자원으로 서랍(330)의 열리는 이벤트를 검출하는 거리 감지 센서 및 다른 사람을 인식하는 이벤트를 검출하는 지문 인식 센서 또는 홍채 인식 센서를 결정하고, 실행 자원으로 서랍(330)의 주변에 위치한 카메라를 결정할 수 있다.
이하, 동작 1417 내지 동작 1419에서, 전자 장치(100)는 조건을 만족하는 적어도 하나의 이벤트가 검출되는 경우, 액션에 따른 기능이 실행되도록 제어할 수 있다.
또 다른 실시예로, 도 14c의 동작 1421에서, 전자 장치(100)는 조건에 따라 실행할 액션을 설정하는 사용자의 자연어 및 행위로부터 생성된 음성 정보 및 영상 정보를 획득할 수 있다.
동작 1423에서, 전자 장치(100)는 획득된 음성 정보 및 영상 정보를 데이터 인식 모델에 적용하여, 이벤트를 검출할 검출 자원 및 기능을 실행할 실행 자원을 결정할 수 있다. 예로, 도 3a에 개시된 예에서, 획득된 음성 정보가 "다른 사람이 저기 있는 서랍을 열면 영상을 녹화해"이며, 영상 정보가 손가락으로 서랍을 지시하는 제스처를 포함하는 경우, 전자 장치(100)는 획득된 음성 정보 및 영상 정보를 인식 데이터로 데이터 인식 모델에 적용할 수 있다. 그리고, 전자 장치(100)는 데이터 인식 모델의 적용 결과로서, 예로, 검출 자원으로 서랍(330)의 열리는 이벤트를 검출하고, 실행 자원으로 서랍(330)의 주변에 위치한 카메라를 결정할 수 있다.
이하, 동작 1425 내지 동작 1427에서, 전자 장치(100)는 조건을 만족하는 적어도 하나의 이벤트가 검출되는 경우, 액션에 따른 기능이 실행되도록 제어할 수 있다.
도 15a 내지 도 15c는, 본 개시의 실시예에 따른 데이터 인식 모델을 이용하는 네트워크 시스템의 흐름도들이다.
도 15a내지 도 15c에서, 데이터 인식 모델을 이용하는 네트워크 시스템은 제1 구성 요소(1501) 및 제2 구성 요소(1502)를 포함할 수 있다.
일 예로, 제1 구성 요소(1501)는 전자 장치(100)이고, 제2 구성 요소(1502)는 데이터 인식 모델이 저장된 서버(1300)가 될 수 있다. 또는, 제1 구성 요소(1501)는 범용 프로세서이고, 제2 구성 요소(1502)는 인공 지능 전용 프로세서가 될 수 있다. 또는, 제1 구성 요소(1501)는 적어도 하나의 어플리케이션이 될 수 있고, 제2 구성 요소(1502)는 운영 체제(operating system, OS)가 될 수 있다. 즉, 제2 구성 요소(1502)는 제1 구성 요소(1501)보다 더 집적화되거나, 전용화되거나, 딜레이(delay)가 작거나, 성능이 우세하거나 또는 많은 리소스를 가진 구성 요소로서 데이터 인식 모델의 생성, 갱신 또는 적용 시에 요구되는 많은 연산을 제1 구성 요소(1501)보다 신속하고 효과적으로 처리 가능한 구성 요소가 될 수 있다.
이 경우, 제1 구성 요소(1501) 및 제2 구성 요소(1502) 간에 데이터를 송/수신하기 위한 인터페이스가 정의될 수 있다.
예로, 데이터 인식 모델에 적용할 학습 데이터를 인자 값(또는, 매개 값 또는 전달 값)으로 갖는 API(application program interface)가 정의될 수 있다. API는 어느 하나의 프로토콜(예로, 전자 장치(100)에서 정의된 프로토콜)에서 다른 프로토콜(예로, 서버(1300)에서 정의된 프로토콜)의 어떤 처리를 위해 호출할 수 있는 서브 루틴 또는 함수의 집합으로 정의될 수 있다. 즉, API를 통하여 어느 하나의 프로토콜에서 다른 프로토콜의 동작이 수행될 수 있는 환경을 제공될 수 있다.
일 실시예로, 도 15a의 동작 1511에서, 제1 구성 요소(1501)는 조건에 따라 실행할 액션을 설정하는 사용자의 자연어 및 행위로부터 생성된 음성 정보 및 영상 정보를 획득할 수 있다.
동작 1513에서, 제1 구성 요소(1501)는 획득한 음성 정보 및 영상 정보에 관한 데이터(또는, 메시지)를 제2 구성 요소(1502)로 전송할 수 있다. 예로, 제1 구성 요소(1501)가 API 함수를 호출하여 데이터 인자 값으로 음성 정보 및 영상 정보를 입력하면, API 함수는 음성 정보 및 영상 정보를 데이터 인식 모델에 적용할 인식 데이터로서 제2 구성 요소(1502)로 전달할 수 있다.
동작 1515에서, 제2 구성 요소(1502)는 수신한 음성 정보 및 영상 정보를 데이터 인식 모델에 적용하여 조건에 따라 검출할 이벤트 및 액션에 따라 실행할 기능을 획득할 수 있다.
동작 1517에서, 제2 구성 요소(1502)는 획득한 이벤트 및 기능에 관한 데이터(또는, 메시지)를 제1 구성 요소(1501)로 전송할 수 있다.
동작 1519에서, 제1 구성 요소(1501)는 수신한 이벤트 및 기능에 기초하여, 이벤트를 검출할 검출 자원 및 기능을 실행할 실행 자원을 결정할 수 있다.
동작 1521에서, 제1 구성 요소(1501)는 결정된 검출 자원을 이용하여 조건을 만족하는 적어도 하나의 이벤트가 검출되면, 결정된 실행 자원을 이용하여 액션에 따른 기능을 실행할 수 있다.
다른 실시예로, 도 15b의 동작 1531에서, 제1 구성 요소(1501)는 조건에 따라 실행할 액션을 설정하는 사용자의 자연어 및 행위로부터 생성된 음성 정보 및 영상 정보를 획득할 수 있다.
동작 1533에서, 제1 구성 요소(1501)는 획득된 음성 정보 및 영상 정보에 기초하여, 조건에 따라 검출할 이벤트 및 액션에 따라 실행할 기능을 결정할 수 있다.
동작 1535에서, 제1 구성 요소(1501)는 결정된 이벤트 및 기능에 관한 데이터(또는, 메시지)를 제2 구성 요소(1502)로 전송할 수 있다. 예로, 제1 구성 요소(1501)가 API 함수를 호출하여 데이터 인자 값으로 이벤트 및 기능을 입력하면, API 함수는 이벤트 및 기능을 데이터 인식 모델에 적용할 인식 데이터로서 제2 구성 요소(1502)로 전달할 수 있다.
동작 1537에서, 제2 구성 요소(1502)는 수신한 이벤트 및 기능을 데이터 인식 모델에 적용하여, 이벤트를 검출할 검출 자원 및 기능을 실행할 실행 자원을 획득할 수 있다.
동작 1539에서, 제2 구성 요소(1502)는 획득한 검출 자원 및 실행 자원에 관한 데이터(또는, 메시지)를 제1 구성 요소(1501)로 전송할 수 있다.
동작 1541에서, 제1 구성 요소(1501)는 수신한 검출 자원을 이용하여 조건을 만족하는 적어도 하나의 이벤트가 검출되면, 수신한 실행 자원을 이용하여 액션에 따른 기능을 실행할 수 있다.
또 다른 실시예로, 도 15c의 동작 1551에서, 제1 구성 요소(1501)는 조건에 따라 실행할 액션을 설정하는 사용자의 자연어 및 행위로부터 생성된 음성 정보 및 영상 정보를 획득할 수 있다.
동작 1553에서, 제1 구성 요소(1501)는 획득된 음성 정보 및 영상 정보에 관한 데이터(또는, 메시지)를 제2 구성 요소(1502)로 전송할 수 있다. 예로, 제1 구성 요소(1501)가 API 함수를 호출하여 데이터 인자 값으로 음성 정보 및 영상 정보를 입력하면, API 함수는 영상 정보 및 음성 정보를 데이터 인식 모델에 적용할 인식 데이터로서 제2 구성 요소(1502)로 전송할 수 있다.
동작 1557에서, 제2 구성 요소(1502)는 수신한 음성 정보 및 영상 정보를 데이터 인식 모델에 적용하여, 이벤트를 검출할 검출 자원 및 기능을 실행할 실행 자원을 획득할 수 있다.
동작 1559에서, 제2 구성 요소(1502)는 획득한 검출 자원 및 실행 자원에 관한 데이터(또는, 메시지)를 제1 구성 요소(1501)로 전송할 수 있다.
동작 1561에서, 제1 구성 요소(1501)는 수신한 검출 자원을 이용하여 조건을 만족하는 적어도 하나의 이벤트가 검출되면, 수신한 실행 자원을 이용하여 액션에 따른 기능을 실행할 수 있다.
한편, 본 개시의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다.
다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장된 명령어로 구현될 수 있다. 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다.
여기서, 프로그램은 컴퓨터가 읽을 수 있는 비일시적 기록매체에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 개시의 실시 예를 구현할 수 있다.
여기서 비일시적 판독 가능 기록매체란, 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미할 뿐만 아니라 레지스터, 캐쉬, 버퍼 등을 포함하며, 신호(signal), 전류(current) 등과 같은 전송 매개체는 포함하지 않는다.
구체적으로, 상술한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 내장 메모리(예: 메모리(110)), 메모리 카드, ROM 또는 RAM 등과 같은 비일시적 판독가능 기록매체에 저장되어 제공될 수 있다.
또한, 개시된 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)으로 제공될 수 있다.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체 또는 판매자 및 구매자 간에 거래되는 상품을 포함할 수 있다.
예를 들어, 컴퓨터 프로그램 제품은 전자 장치 또는 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사 또는 전자 마켓의 서버, 또는 중계 서버의 저장매체가 될 수 있다.
이상에서는 본 개시의 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
100: 전자 장치 110: 메모리
120: 프로세서 130: 카메라
140: 마이크 150: 통신부
120: 프로세서 130: 카메라
140: 마이크 150: 통신부
Claims (20)
- 전자 장치의 제어 방법에 있어서,
조건에 따라 실행될 액션을 설정하는 사용자의 자연어 및 행위로부터 생성된 음성 정보 및 영상 정보를 획득하는 동작;
상기 음성 정보 및 상기 영상 정보에 기초하여, 상기 조건에 따라 검출할 이벤트 및 상기 액션에 따라 실행할 기능을 결정하는 동작;
상기 이벤트를 검출할 적어도 하나의 검출 자원을 결정하는 동작; 및
상기 적어도 하나의 검출 자원을 이용하여 상기 조건을 만족하는 이벤트가 검출되면, 상기 액션에 따른 기능이 실행되도록 제어하는 동작
을 포함하는 제어 방법.
- 제1항에 있어서,
상기 적어도 하나의 검출 자원을 결정하는 동작은,
기 설치되어 있는 가용 자원들을 검색하는 동작; 및;
상기 검색된 가용 자원들이 검출 가능한 기능에 기초하여, 상기 가용 자원들 중에서 상기 이벤트를 검출할 적어도 하나의 검출 자원을 결정하는 동작
을 포함하는 제어 방법.
- 제1항에 있어서,
상기 검출 자원은,
상기 전자 장치에 포함된 모듈 또는 상기 전자 장치의 외부에 위치한 외부 장치인 것
을 특징으로 하는 제어 방법.
- 제1항에 있어서,
상기 적어도 하나의 검출 자원이 결정되면,
상기 결정된 적어도 하나의 검출 자원에게, 상기 이벤트의 검출을 요청하는 제어 정보를 전송하는 동작
을 더 포함하는 제어 방법.
- 제1항에 있어서,
기 설치되어 있는 가용 자원들을 검색하는 동작; 및;
상기 검색된 가용 자원들이 제공 가능한 기능에 기초하여, 상기 가용 자원들 중에서 상기 액션에 따른 기능을 실행할 적어도 하나의 실행 자원을 결정하는 동작
을 더 포함하는 제어 방법.
- 제1항에 있어서,
기 설치되어 있는 가용 자원들을 검색하는 동작; 및;
상기 검색된 가용 자원들이 제공 가능한 기능에 기초하여, 상기 가용 자원들 중에서 상기 액션에 따른 기능을 실행할 적어도 하나의 실행 자원을 결정하는 동작
을 더 포함하는 제어 방법.
- 제1항에 있어서,
상기 액션에 따른 기능이 실행되도록 제어하는 동작은,
상기 검출 자원으로부터 상기 이벤트의 검출 결과를 수신하는 동작;
상기 수신된 검출 결과에 기초하여, 상기 액션에 따른 기능이 실행되도록 제어하는 동작
을 포함하는 제어 방법.
- 제1항에 있어서,
상기 이벤트를 검출할 검출 자원이 없거나 또는 상기 검출 자원이 상기 이벤트를 검출할 수 없는 경우,
상기 조건에 따른 액션의 실행이 불가능함을 알리는 알림 UI를 제공하는 동작
을 더 포함하는 제어 방법.
- 제1항에 있어서,
상기 음성 정보 및 상기 영상 정보에 기초하여, 상기 조건에 따라 검출할 이벤트 및 상기 액션에 따라 실행할 기능을 결정하는 동작은,
상기 음성 정보 및 상기 영상 정보를 학습 알고리즘을 이용하여 생성된 데이터 인식 모델에 적용하여, 상기 사용자의 의도에 따른 상기 조건 및 상기 액션을 결정하는 동작
을 포함하는 제어 방법.
- 제9항에 있어서,
상기 사용자의 의도에 따른 조건 및 상기 액션을 결정하는 동작은,
상기 사용자에게 상기 조건 및 상기 액션을 확인하기 위한 확인 UI를 제공하는 동작
을 더 포함하는 제어 방법.
- 전자 장치에 있어서,
메모리; 및
조건에 따라 실행될 액션을 설정하는 사용자의 자연어 및 행위로부터 생성된 음성 정보 및 영상 정보를 각각 획득하고,
상기 음성 정보 및 상기 영상 정보에 기초하여, 상기 조건에 따라 검출할 이벤트 및 상기 액션에 따라 실행할 기능을 결정하고,
상기 이벤트를 검출할 적어도 하나의 검출 자원을 결정하고,
상기 결정된 적어도 하나의 검출 자원을 이용하여 상기 조건을 만족하는 이벤트가 검출되면, 상기 액션에 따른 기능이 실행되도록 제어하는 프로세서
를 포함하는 전자 장치.
- 제11항에 있어서,
상기 프로세서는,
상기 적어도 하나의 검출 자원을 결정하는 경우,
기 설치되어 있는 가용 자원들을 검색하고,
상기 검색된 가용 자원들이 검출 가능한 기능에 기초하여, 상기 가용 자원들 중에서 상기 이벤트를 검출할 적어도 하나의 검출 자원을 결정하는 것
을 특징으로 하는 전자 장치.
- 제11항에 있어서,
상기 검출 자원은,
상기 전자 장치에 포함된 모듈 또는 상기 전자 장치의 외부에 위치한 외부 장치인 것
을 특징으로 하는 전자 장치.
- 제11항에 있어서,
상기 검출 자원은,
상기 전자 장치에 포함된 모듈 또는 상기 전자 장치의 외부에 위치한 외부 장치인 것
을 특징으로 하는 전자 장치.
- 제11항에 있어서,
상기 프로세서는,
기 설치되어 있는 가용 자원들을 검색하고,
상기 검색된 가용 자원들이 제공 가능한 기능에 기초하여, 상기 가용 자원들 중에서 상기 액션에 따른 기능을 실행할 적어도 하나의 실행 자원을 결정하는 것
을 특징으로 하는 전자 장치.
- 제15항에 있어서,
상기 전자 장치는,
상기 실행 자원과 통신 가능한 통신부를 더 포함하고,
상기 프로세서는,
상기 액션에 따른 기능이 실행되도록 제어하는 경우,
상기 결정된 실행 자원이 상기 액션에 따른 기능을 실행하도록 상기 실행 자원으로 제어 정보를 전송하는 것
을 특징으로 하는 전자 장치.
- 제11항에 있어서,
상기 프로세서는,
상기 액션에 따른 기능이 실행되도록 제어하는 경우,
상기 검출 자원으로부터 상기 이벤트의 검출 결과를 수신하고,
상기 수신된 검출 결과에 기초하여, 상기 액션에 따른 기능이 실행되도록 제어하는 것
을 특징으로 하는 전자 장치.
- 제11항에 있어서,
상기 전자 장치는,
UI를 표시하는 디스플레이를 더 포함하고,
상기 프로세서는,
상기 이벤트를 검출할 검출 자원이 없거나 또는 상기 검출 자원이 상기 이벤트를 검출할 수 없는 경우,
상기 조건에 따른 액션의 실행이 불가능함을 알리는 알림 UI가 표시되도록 상기 디스플레이를 제어하는 것
을 특징으로 하는 전자 장치.
- 제11항에 있어서,
상기 프로세서는,
상기 음성 정보 및 상기 영상 정보에 기초하여, 상기 조건에 따라 검출할 이벤트 및 상기 액션에 따라 실행할 기능을 결정하는 경우,
상기 음성 정보 및 상기 영상 정보를 학습 알고리즘을 이용하여 생성된 데이터 인식 모델에 적용하여, 상기 사용자의 의도에 따른 상기 조건 및 상기 액션을 결정하고, 상기 조건에 따라 검출할 이벤트 및 상기 액션에 따라 실행할 기능을 결정하는 것
을 특징으로 하는 전자 장치.
- 제19항에 있어서,
상기 전자 장치는,
UI를 표시하는 디스플레이를 더 포함하고,
상기 프로세서는,
상기 사용자의 의도에 따른 조건 및 상기 액션을 결정하는 경우,
상기 사용자에게 상기 조건 및 상기 액션을 확인하기 위한 확인 UI가 표시되도록 상기 디스플레이를 제어하는 것
을 특징으로 하는 전자 장치.
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201780081769.2A CN110121696B (zh) | 2016-11-03 | 2017-11-01 | 电子设备及其控制方法 |
EP17866553.5A EP3523709B1 (en) | 2016-11-03 | 2017-11-01 | Electronic device and controlling method thereof |
PCT/KR2017/012271 WO2018084576A1 (en) | 2016-11-03 | 2017-11-01 | Electronic device and controlling method thereof |
EP23165640.6A EP4220630A1 (en) | 2016-11-03 | 2017-11-01 | Electronic device and controlling method thereof |
US15/803,051 US10679618B2 (en) | 2016-11-03 | 2017-11-03 | Electronic device and controlling method thereof |
US16/893,643 US11908465B2 (en) | 2016-11-03 | 2020-06-05 | Electronic device and controlling method thereof |
KR1020230113902A KR102643027B1 (ko) | 2016-11-03 | 2023-08-29 | 전자 장치, 그의 제어 방법 |
US18/581,974 US20240194201A1 (en) | 2016-11-02 | 2024-02-20 | Electronic device and controlling method thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20160145742 | 2016-11-03 | ||
KR1020160145742 | 2016-11-03 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230113902A Division KR102643027B1 (ko) | 2016-11-03 | 2023-08-29 | 전자 장치, 그의 제어 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180049787A true KR20180049787A (ko) | 2018-05-11 |
Family
ID=62185697
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170106127A KR20180049787A (ko) | 2016-11-02 | 2017-08-22 | 전자 장치, 그의 제어 방법 |
KR1020240028103A KR20240032779A (ko) | 2016-11-03 | 2024-02-27 | 전자 장치, 그의 제어 방법 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020240028103A KR20240032779A (ko) | 2016-11-03 | 2024-02-27 | 전자 장치, 그의 제어 방법 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3523709B1 (ko) |
KR (2) | KR20180049787A (ko) |
CN (1) | CN110121696B (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190141350A (ko) * | 2018-06-14 | 2019-12-24 | 한양대학교 산학협력단 | 로봇에서의 음성인식 장치 및 방법 |
US10679618B2 (en) | 2016-11-03 | 2020-06-09 | Samsung Electronics Co., Ltd. | Electronic device and controlling method thereof |
WO2021006401A1 (ko) * | 2019-07-11 | 2021-01-14 | 엘지전자 주식회사 | 자율주행시스템에서 차량의 제어 방법 및 그 장치 |
KR102302029B1 (ko) * | 2020-11-23 | 2021-09-15 | (주)펜타유니버스 | 인공지능 기반 복합 입력 인지 시스템 |
US11521038B2 (en) | 2018-07-19 | 2022-12-06 | Samsung Electronics Co., Ltd. | Electronic apparatus and control method thereof |
KR20240010198A (ko) * | 2022-07-15 | 2024-01-23 | 박병훈 | 관리 서버 및 사용자 단말의 자원 가용 여부에 따라 자원 이용 대상이 달라지는 인공지능 서비스 구동 시스템 및 방법 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114013372A (zh) * | 2021-10-19 | 2022-02-08 | 深圳市美通视讯科技有限公司 | 一种汽车电子外后视镜系统及控制方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008069519A1 (en) * | 2006-12-04 | 2008-06-12 | Electronics And Telecommunications Research Institute | Gesture/speech integrated recognition system and method |
US20120004910A1 (en) * | 2009-05-07 | 2012-01-05 | Romulo De Guzman Quidilig | System and method for speech processing and speech to text |
US8847881B2 (en) * | 2011-11-18 | 2014-09-30 | Sony Corporation | Gesture and voice recognition for control of a device |
CN102945672B (zh) * | 2012-09-29 | 2013-10-16 | 深圳市国华识别科技开发有限公司 | 一种多媒体设备语音控制系统及方法 |
KR102091003B1 (ko) * | 2012-12-10 | 2020-03-19 | 삼성전자 주식회사 | 음성인식 기술을 이용한 상황 인식 서비스 제공 방법 및 장치 |
KR20140088449A (ko) * | 2013-01-02 | 2014-07-10 | 엘지전자 주식회사 | 중앙 제어 장치 및 그것의 제어 방법 |
KR102182398B1 (ko) * | 2013-07-10 | 2020-11-24 | 엘지전자 주식회사 | 전자 기기 및 그 제어 방법 |
KR101828460B1 (ko) * | 2013-07-30 | 2018-02-14 | 삼성전자주식회사 | 가전기기 및 그 제어방법 |
KR102123062B1 (ko) * | 2013-08-06 | 2020-06-15 | 삼성전자주식회사 | 콘텐츠에 관한 정보를 획득하는 방법 및 이를 이용한 영상 표시 장치, 그리고 콘텐츠에 관한 정보를 제공하는 서버 시스템. |
KR102188090B1 (ko) * | 2013-12-11 | 2020-12-04 | 엘지전자 주식회사 | 스마트 가전제품, 그 작동방법 및 스마트 가전제품을 이용한 음성인식 시스템 |
EP3063646A4 (en) * | 2013-12-16 | 2017-06-21 | Nuance Communications, Inc. | Systems and methods for providing a virtual assistant |
US20170017501A1 (en) * | 2013-12-16 | 2017-01-19 | Nuance Communications, Inc. | Systems and methods for providing a virtual assistant |
KR20160071732A (ko) * | 2014-12-12 | 2016-06-22 | 삼성전자주식회사 | 음성 입력을 처리하는 방법 및 장치 |
CN105204743A (zh) * | 2015-09-28 | 2015-12-30 | 百度在线网络技术(北京)有限公司 | 用于语音和视频通讯的交互控制方法及装置 |
CN105446146B (zh) * | 2015-11-19 | 2019-05-28 | 深圳创想未来机器人有限公司 | 基于语义分析的智能终端控制方法、系统及智能终端 |
-
2017
- 2017-08-22 KR KR1020170106127A patent/KR20180049787A/ko not_active Application Discontinuation
- 2017-11-01 CN CN201780081769.2A patent/CN110121696B/zh active Active
- 2017-11-01 EP EP17866553.5A patent/EP3523709B1/en active Active
-
2024
- 2024-02-27 KR KR1020240028103A patent/KR20240032779A/ko not_active Application Discontinuation
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10679618B2 (en) | 2016-11-03 | 2020-06-09 | Samsung Electronics Co., Ltd. | Electronic device and controlling method thereof |
US11908465B2 (en) | 2016-11-03 | 2024-02-20 | Samsung Electronics Co., Ltd. | Electronic device and controlling method thereof |
KR20190141350A (ko) * | 2018-06-14 | 2019-12-24 | 한양대학교 산학협력단 | 로봇에서의 음성인식 장치 및 방법 |
US11521038B2 (en) | 2018-07-19 | 2022-12-06 | Samsung Electronics Co., Ltd. | Electronic apparatus and control method thereof |
WO2021006401A1 (ko) * | 2019-07-11 | 2021-01-14 | 엘지전자 주식회사 | 자율주행시스템에서 차량의 제어 방법 및 그 장치 |
US11628851B2 (en) | 2019-07-11 | 2023-04-18 | Lg Electronics Inc. | Method and apparatus for controlling a vehicle in autonomous driving system |
KR102302029B1 (ko) * | 2020-11-23 | 2021-09-15 | (주)펜타유니버스 | 인공지능 기반 복합 입력 인지 시스템 |
KR20240010198A (ko) * | 2022-07-15 | 2024-01-23 | 박병훈 | 관리 서버 및 사용자 단말의 자원 가용 여부에 따라 자원 이용 대상이 달라지는 인공지능 서비스 구동 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN110121696A (zh) | 2019-08-13 |
EP3523709A1 (en) | 2019-08-14 |
EP3523709A4 (en) | 2019-11-06 |
KR20240032779A (ko) | 2024-03-12 |
CN110121696B (zh) | 2022-10-14 |
EP3523709B1 (en) | 2023-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102643027B1 (ko) | 전자 장치, 그의 제어 방법 | |
EP3523709B1 (en) | Electronic device and controlling method thereof | |
US12005579B2 (en) | Robot reacting on basis of user behavior and control method therefor | |
US20220116340A1 (en) | Electronic device and method for changing chatbot | |
US10692495B2 (en) | Method of receiving commands for activating voice-recognition service and electronic device for implementing same | |
US10628714B2 (en) | Entity-tracking computing system | |
KR102453603B1 (ko) | 전자 장치 및 그 제어 방법 | |
KR102669026B1 (ko) | 전자 장치 및 이의 제어 방법 | |
US11954150B2 (en) | Electronic device and method for controlling the electronic device thereof | |
KR102595790B1 (ko) | 전자 장치 및 그의 제어방법 | |
US11270565B2 (en) | Electronic device and control method therefor | |
US20240095143A1 (en) | Electronic device and method for controlling same | |
US11817097B2 (en) | Electronic apparatus and assistant service providing method thereof | |
KR20220144346A (ko) | 컨텍스트에 따라 이벤트의 출력 정보를 제공하는 전자 장치 및 이의 제어 방법 | |
KR20200044173A (ko) | 전자 장치 및 그의 제어 방법 | |
US20230290343A1 (en) | Electronic device and control method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application | ||
E801 | Decision on dismissal of amendment |