KR102623574B1 - 전자 장치 및 그 동작 방법 - Google Patents
전자 장치 및 그 동작 방법 Download PDFInfo
- Publication number
- KR102623574B1 KR102623574B1 KR1020220121079A KR20220121079A KR102623574B1 KR 102623574 B1 KR102623574 B1 KR 102623574B1 KR 1020220121079 A KR1020220121079 A KR 1020220121079A KR 20220121079 A KR20220121079 A KR 20220121079A KR 102623574 B1 KR102623574 B1 KR 102623574B1
- Authority
- KR
- South Korea
- Prior art keywords
- driving
- situation
- electronic device
- data
- context data
- Prior art date
Links
- 238000011017 operating method Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 26
- 239000000284 extract Substances 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 31
- 238000011156 evaluation Methods 0.000 description 21
- 238000005516 engineering process Methods 0.000 description 14
- 238000007781 pre-processing Methods 0.000 description 13
- 238000012549 training Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009408 flooring Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000013519 translation Methods 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
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0221—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0231—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
- G05D1/0246—Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N99/00—Subject matter not provided for in other groups of this subclass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/768—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using context analysis, e.g. recognition aided by known co-occurring patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/57—Mechanical or electrical details of cameras or camera modules specially adapted for being embedded in other devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Automation & Control Theory (AREA)
- Aviation & Aerospace Engineering (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Electromagnetism (AREA)
- Medical Informatics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Databases & Information Systems (AREA)
- Social Psychology (AREA)
- Human Computer Interaction (AREA)
- Psychiatry (AREA)
- Image Analysis (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Manipulator (AREA)
- Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
전자 장치 및 그 동작 방법이 제공된다. 전자 장치는, 저장부, 적어도 하나의 센싱부, 및 전자 장치가 주행하는 중에, 센싱부를 이용하여 주변 영상을 촬영하고, 전자 장치가 주행하는 중에 주행 불능 상황이 발생함에 따라, 주행 불능 상황이 발생한 시점으로부터 미리 정해진 시간 범위 내에 촬영된 주변 영상을 포함하는 컨텍스트 데이터를 생성하고, 발생된 주행 불능 상황에 대응하는 컨텍스트 데이터를 저장부에 저장하고, 하나 이상의 데이터 인식 모델을 이용하여, 저장된 컨텍스트 데이터를 학습하는, 프로세서를 포함할 수 있다.
Description
본 개시는 전자 장치 및 그 동작 방법에 관한 것으로서, 더욱 상세하게는, 로봇의 주행을 보조하는 전자 장치 및 방법에 관한 것이다.
또한 본 개시는 딥러닝 등의 기계 학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 인공 지능(Artificial Intelligence, AI) 시스템 및 그 응용 기술에 관련된 것이다.
인공지능(Artificial Intelligence, AI) 시스템은 인간 수준의 지능을 구현하는 컴퓨터 시스템이며, 기존 규칙 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 규칙 기반 스마트 시스템은 점차 딥러닝 기반 인공지능 시스템으로 대체되고 있다.
인공지능 기술은 기계학습(딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
로봇의 주행을 보조하는 전자 장치 및 방법을 제공하는 데 있다. 또한, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다. 해결하려는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
일 측면에 따른 전자 장치는, 저장부, 적어도 하나의 센싱부, 및 전자 장치가 주행하는 중에, 센싱부를 이용하여 주변 영상을 촬영하고, 전자 장치가 주행하는 중에 주행 불능 상황이 발생함에 따라, 주행 불능 상황이 발생한 시점으로부터 미리 정해진 시간 범위 내에 촬영된 주변 영상을 포함하는 컨텍스트 데이터를 생성하고, 발생된 주행 불능 상황에 대응하는 컨텍스트 데이터를 저장부에 저장하고, 하나 이상의 데이터 인식 모델을 이용하여, 저장된 컨텍스트 데이터를 학습하는, 프로세서를 포함할 수 있다.
또한, 일 측면에 따른 전자 장치는, 복수의 주행 불능 상황 각각에 대응하는, 주변 영상과 주변 영상이 촬영된 위치 정보를 포함하는 컨텍스트 데이터를 저장하는 저장부, 적어도 하나의 센싱부, 및 전자 장치가 주행하는 중에, 센싱부를 이용하여 주변 영상과 위치 정보를 획득하고, 하나 이상의 데이터 인식 모델을 이용하여, 전자 장치가 주행하는 중에 획득한 주변 영상과 위치 정보를, 저장부에 저장된 컨텍스트 데이터와 매칭되는지 판단하고, 컨텍스트 데이터에 매칭됨에 따라, 매칭되는 컨텍스트 데이터에 대응하는 주행 불능 상황이 발생할 것으로 추정하는, 프로세서를 포함할 수 있다.
또한, 일 측면에 따른 전자 장치의 동작 방법은, 전자 장치가 주행하는 중에, 주변 영상을 촬영하는 단계, 전자 장치가 주행하는 중에 주행 불능 상황이 발생함에 따라, 주행 불능 상황이 발생한 시점으로부터 미리 정해진 시간 범위 내에 촬영된 주변 영상을 포함하는 컨텍스트 데이터를 생성하는 단계, 발생된 주행 불능 상황에 대응하는 컨텍스트 데이터를 저장하는 단계, 및 하나 이상의 데이터 인식 모델을 이용하여, 저장된 컨텍스트 데이터를 학습하는 단계를 포함할 수 있다.
또 다른 측면에 따른 컴퓨터로 읽을 수 있는 기록매체는 상술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체를 포함한다.
도 1은 일 실시 예에 따른 로봇의 주행을 보조하는 전자 장치가 동작하는 일 예를 도시하는 도면이다.
도 2는 일 실시 예에 따른 전자 장치의 동작 방법의 흐름도이다.
도 3은 일 실시 예에 따라 주변 영상을 촬영하는 예를 설명하기 위한 도면이다.
도 4는 일 실시 예에 따라 컨텍스트 데이터를 생성하는 예를 설명하기 위한 도면이다.
도 5는 일 실시 예에 따라 가상 영상을 생성하는 예를 설명하기 위한 흐름도이다.
도 6은 일 실시 예에 따라 가상 영상을 생성하는 예를 설명하기 위한 도면이다.
도 7은 일 실시 예에 따라 진입 지점 정보를 결정하는 예를 설명하기 위한 흐름도이다.
도 8은 일 실시 예에 따라 진입 지점 정보를 결정하는 예를 설명하기 위한 도면이다.
도 9는 일 실시 예에 따라 주행 불능 상황을 학습하고, 주행 불능 상황을 추정하는 예를 설명하기 위한 흐름도이다.
도 10은 일 실시 예에 따라 주행 불능 상황을 추정하는 예를 설명하기 위한 흐름도이다.
도 11은 일 실시 예에 따라 주행 불능 상황을 회피하기 위한 주행 경로를 결정하는 예를 설명하기 위한 흐름도이다.
도 12는 일 실시 예에 따라 주행 불능 상황을 회피하기 위한 주행 경로를 결정하는 예를 설명하기 위한 도면이다.
도 13은 다른 일 실시 예에 따라 주행 불능 상황을 판단하는 예를 설명하기 위한 흐름도이다.
도 14는 다른 일 실시 예에 따라 주행 불능 상황을 판단하는 예를 설명하기 위한 도면이다.
도 15는 일 실시예에 따른 전자 장치의 블록 구성도(block diagram)이다.
도 16은 다른 실시예에 따른 전자 장치의 블록 구성도(block diagram)이다.
도 17은 일 실시예에 따른 로봇의 블록 구성도(block diagram)이다.
도 18은 일 실시예에 따른 프로세서의 블록도이다.
도 19는 일 실시예에 따른 데이터 학습부의 블록도이다.
도 20은 일 실시예에 따른 데이터 인식부의 블록도이다.
도 21은 일 실시예에 따른 전자 장치 및 서버가 서로 연동함으로써 데이터를 학습하고 인식하는 예시를 나타내는 도면이다.
도 2는 일 실시 예에 따른 전자 장치의 동작 방법의 흐름도이다.
도 3은 일 실시 예에 따라 주변 영상을 촬영하는 예를 설명하기 위한 도면이다.
도 4는 일 실시 예에 따라 컨텍스트 데이터를 생성하는 예를 설명하기 위한 도면이다.
도 5는 일 실시 예에 따라 가상 영상을 생성하는 예를 설명하기 위한 흐름도이다.
도 6은 일 실시 예에 따라 가상 영상을 생성하는 예를 설명하기 위한 도면이다.
도 7은 일 실시 예에 따라 진입 지점 정보를 결정하는 예를 설명하기 위한 흐름도이다.
도 8은 일 실시 예에 따라 진입 지점 정보를 결정하는 예를 설명하기 위한 도면이다.
도 9는 일 실시 예에 따라 주행 불능 상황을 학습하고, 주행 불능 상황을 추정하는 예를 설명하기 위한 흐름도이다.
도 10은 일 실시 예에 따라 주행 불능 상황을 추정하는 예를 설명하기 위한 흐름도이다.
도 11은 일 실시 예에 따라 주행 불능 상황을 회피하기 위한 주행 경로를 결정하는 예를 설명하기 위한 흐름도이다.
도 12는 일 실시 예에 따라 주행 불능 상황을 회피하기 위한 주행 경로를 결정하는 예를 설명하기 위한 도면이다.
도 13은 다른 일 실시 예에 따라 주행 불능 상황을 판단하는 예를 설명하기 위한 흐름도이다.
도 14는 다른 일 실시 예에 따라 주행 불능 상황을 판단하는 예를 설명하기 위한 도면이다.
도 15는 일 실시예에 따른 전자 장치의 블록 구성도(block diagram)이다.
도 16은 다른 실시예에 따른 전자 장치의 블록 구성도(block diagram)이다.
도 17은 일 실시예에 따른 로봇의 블록 구성도(block diagram)이다.
도 18은 일 실시예에 따른 프로세서의 블록도이다.
도 19는 일 실시예에 따른 데이터 학습부의 블록도이다.
도 20은 일 실시예에 따른 데이터 인식부의 블록도이다.
도 21은 일 실시예에 따른 전자 장치 및 서버가 서로 연동함으로써 데이터를 학습하고 인식하는 예시를 나타내는 도면이다.
실시 예들에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 “…부”, “…모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하에서는 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
본 명세서에서, 로봇(1, 도 1, 도 17)은 로봇(1)의 주행을 보조 또는 제어하는 전자 장치(100, 도 15 내지 도 17)(이하, 전자 장치(100))를 포함할 수 있다. 일 실시 예에 따른 전자 장치(100)는, 로봇(1)(예컨대, 로봇 청소기)에 포함되어 동작함으로써, 자율 주행할 수 있다.
도 1은 일 실시 예에 따른 로봇의 주행을 보조하는 전자 장치가 동작하는 일 예를 도시하는 도면이다.
일 실시 예에 따라 자율 주행하는 로봇(1)이 주행하는 중에, 주행 불능 상황이 발생할 수 있다. 일 실시 예에 따른 주행 불능 상황은, 전자 장치(100)가 포함된 로봇(1)이 자율 주행하는 중에 접촉하게 된 외부 요소(예컨대, 바닥의 재질, 형태, 굴곡, 구조물에 의한 끼임 등)로 인해, 주행이 정지되고, 로봇(1)의 자율적인 제어에 의해서는 주행을 재개할 수 없게 된 상황일 수 있다.
예를 들어, 로봇 청소기가 주행하는 중에 바닥재의 재질이나, 형태로 인해 더 이상 이동할 수 없게 되거나, 의자와 같은 가구 아래로 진입하여 끼임으로써 더 이상 이동할 수 없게 되는 상황이 발생할 수 있다.
도 1을 참조하면, 일 실시 예에 따른 전자 장치(100)는, 센싱부(110, 도 15, 16)를 이용하여 주변 영상을 촬영하면서 주행할 수 있고, 구조물(예컨대, 의자)(15) 아래에 끼여서 더 이상 이동할 수 없는 주행 불능 상황이 발생하면, DNN(Deep Neural Network) 등의 뉴럴 네트워크(Neural Network)를 기반으로 하는 데이터 인식 모델을 이용하여, 주행 불능 상황을 학습할 수 있다. 전자 장치(100)는 주행 불능 상황을 학습함으로써, 이후 동일한 주행 불능 상황이 발생하기 이전에, 주행 불능 상황이 발생할 것으로 미리 추정할 수 있고, 주행 불능 상황이 발생하지 않도록 주행 경로를 변경하여 주행할 수 있다.
일 실시 예에 따르면, 전자 장치(100)는 주행 불능 상황 학습을 통해, 주행 불능 상황을 미리 예측하여 회피할 수 있도록 주행 동작을 제어함으로써, 보다 안전하고 효율적인 로봇 주행 환경을 제공할 수 있다.
도 2는 일 실시 예에 따라 전자 장치의 동작 방법의 흐름도이다. 도 3은 일 실시 예에 따라 주변 영상을 촬영하는 예를 설명하기 위한 도면이다. 도 4는 일 실시 예에 따라 컨텍스트 데이터를 생성하는 예를 설명하기 위한 도면이다. 도 2의 흐름도를 설명하면서, 도 3 내지 도 4의 도면을 참조하여 설명하기로 한다.
도 2의 단계 S201에서, 일 실시 예에 따른 전자 장치(100)는, 전자 장치(100)가 주행하는 중에 센싱부(110, 도 16)를 이용하여 주변 영상을 촬영할 수 있다. 일 실시 예에 따른 센싱부(110, 도 16)는 이미지를 촬영할 수 있는 이미지 센서(228, 도 16)를 포함할 수 있다.
도 3을 참조하면, 일 실시 예에 따라, 로봇(1)이 주행하는 중에, 전자 장치(100)의 프로세서(120, 도 15)는 센싱부(110)가 전방 영상을 촬영하면서 복수의 영상 프레임(30)을 획득하도록 제어할 수 있다.
일 실시 예에 따르면, 전자 장치(100)의 프로세서(120)는 획득된 영상 프레임으로부터, 복수의 특징점(keypoint)을 추출할 수 있다. 프로세서(120)는 영상 프레임으로부터 추출된 특징점을 이용하여, 영상 데이터를 벡터 데이터로 변환한 영상 디스크립터(descriptor)를 생성할 수 있다. 프로세서(120)는 영상 디스크립터(descriptor)를 저장부(140)에 저장할 수 있다.
일 실시 예에 따르면, 후술할 도 9 내지 도 10에서, 영상의 매칭 시, 영상 디스크립터를 이용하여 매칭하는 방법이 이용될 수 있으며, 영상 매칭 방법은 이에 제한되는 것은 아니다.
한편, 일 실시 예에 따라, 프로세서(120)는, 로봇(1)이 주행하는 중에 촬영되는 주변 영상이 저장부(140)의 임시 저장 영역에 저장되도록 제어하고, 미리 설정된 용량이 초과되면, 오래된 영상 데이터부터 삭제되도록 제어할 수 있다.
도 2의 단계 S202에서, 일 실시 예에 따른 전자 장치(100)는, 주행하는 중에 주행 불능 상황이 발생함에 따라, 주행 불능 상황이 발생한 시점으로부터 미리 정해진 시간 범위 내에 촬영된 주변 영상을 포함하는 컨텍스트 데이터를 생성할 수 있다.
도 4를 참조하면, 전자 장치(100)가 주행하는 중에 주행 불능 상황이 발생하면, 주행 불능 상황이 발생한 시점으로부터 미리 정해진 시간 범위(예컨대, 주행 불능 상황이 발생한 시점으로부터 1분 이내)에 촬영된 영상 프레임(41, 42, 43)을 포함하는 컨텍스트 데이터를 생성할 수 있다.
도 2의 단계 S203에서, 일 실시 예에 따른 전자 장치(100)는, 주행 불능 상황에 대응하는 컨텍스트 데이터를 저장부(140, 도 15)에 저장할 수 있다.
예를 들어, 도 4를 참조하면, 주행 불능 상황(context 1)에 대응하는 복수의 영상 프레임(41, 42, 43)을 포함하는 컨텍스트 데이터가 저장될 수 있다.
또한, 일 실시 예에 따른 전자 장치(100)는, 위치 정보를 센싱할 수 있는 센싱부(110, 도 16)를 이용하여, 전자 장치(100)가 주행하는 중에 전자 장치(100)의 위치를 나타내는 위치 정보를 획득할 수 있다.
일 실시 예에 따라, 도 4를 참조하면, 전자 장치(100)는 주행하는 중에 복수의 영상 프레임(41, 42, 43)이 촬영된 지점에 대응하는 각각의 위치 정보를 획득할 수 있다. 예컨대, 전자 장치(100)는 각 영상(41)에 대응하는 위치 정보(45)를 더 포함하는 컨텍스트 데이터를 저장할 수 있다.
또한, 일 실시 예에 따른 전자 장치(100)는, 획득된 복수의 영상 프레임(41, 42, 43) 각각으로부터 특징 정보를 추출할 수 있다. 일 실시 예에 따라, 전자 장치(100)는 각 영상 프레임(41, 도 4)으로부터 추출된 특징 정보(46, 도 4)를 더 포함하는 컨텍스트 데이터를 저장할 수 있다.
예를 들어, 특징 정보는, 영상에 포함된 오브젝트(예컨대, 영상에 포함된 가구, 구조물 등)를 식별하기 위한 식별 정보일 수 있다.
또한, 예를 들어, 특징 정보는, 복수의 영상 프레임이 촬영된 지점과 주행 불능 상황이 발생된 지점과의 상대 거리 및 방향에 관한 정보일 수 있다.
또한, 예를 들어, 특징 정보는, 촬영된 주변 영상으로부터 추정되는 주행 경로를 나타내는 경로 정보일 수 있다.
한편, 일 실시 예에 따른 전자 장치(100)의 프로세서(120, 도 15)는, 주행 불능 상황에 따라 생성된 컨텍스트 데이터를, 로봇 주행 중에 촬영되는 주변 영상이 저장되는 저장부(140)의 임시 저장 영역과는 다른 영역에 저장할 수 있다. 프로세서(120)는 주행 불능 상황에 대응하는 컨텍스트 데이터가 임의로 삭제되지 않도록, 저장부(140)의 영구 저장 영역에 저장할 수 있다.
도 2의 단계 S204에서, 일 실시 예에 따른 전자 장치(100)는, 하나 이상의 데이터 인식 모델을 이용하여, 컨텍스트 데이터를 학습할 수 있다.
일 실시 예에 따르면, 전자 장치(100)의 프로세서(120)는 뉴럴 네트워크(Neural Network)를 기반으로 하는 데이터 인식 모델을 이용하여, 주행 불능 상황에 대응하는 컨텍스트 데이터를 학습할 수 있다.
일 실시 예에 따르면, 프로세서(120)는, 주행 불능 상황에 대응하는 영상 데이터, 영상 데이터로부터 변환된 영상 디스크립터(discriptor)를 학습할 수 있다.
또한, 일 실시 예에 따르면, 프로세서(120)는, 데이터 인식 모델을 이용하여, 주행 불능 상황에 대응하는 주변 영상 데이터에 기초하여, 가상 영상을 생성하고, 가상 영상이 더 포함된 컨텍스트 데이터를 학습할 수 있다. 가상 영상 생성에 관해서는, 도 5 내지 도 6에 관한 설명에서 후술하기로 한다.
또한, 일 실시 예에 따르면, 프로세서(120)는, 데이터 인식 모델을 이용하여, 주행 불능 상황에 대응하는 컨텍스트 데이터에 기초하여, 주행 불능 상황이 발생한 지점으로 도달하게 된 진입 지점에 대응하는 영상 프레임 및 위치 정보를 포함하는 진입 지점 정보를 결정할 수 있다. 프로세서(120)는, 데이터 인식 모델을 이용하여, 진입 지점 정보를 더 포함하는 컨텍스트 데이터를 학습할 수 있다. 진입 지점 정보에 관해서는, 도 7 내지 도 8에 관한 설명에서 후술하기로 한다.
또한, 일 실시 예에 따르면, 프로세서(120)는, 데이터 인식 모델을 이용하여, 복수의 영상 프레임으로부터 각각 추출된 디스크립터(discriptor)를 비교하고, 복수의 디스크립터 간의 관계를 학습할 수 있다. 프로세서(120)는 복수의 디스크립터 간의 관계 정보를 더 포함하는 컨텍스트 데이터를 생성할 수 있다.
일 실시 예에 따르면, 프로세서(120)는, 컨텍스트 데이터를 학습함에 따라, 데이터 인식 모델을 업데이트할 수 있다.
도 1 내지 도 4는 일 실시 예를 설명하기 위해 도시한 것으로서 이에 한정되지 않는다.
도 5는 일 실시 예에 따라 가상 영상을 생성하는 예를 설명하기 위한 흐름도이다. 도 6은 일 실시 예에 따라 가상 영상을 생성하는 예를 설명하기 위한 도면이다. 도 5의 흐름도를 설명하면서, 도 6의 도면을 참조하여 설명하기로 한다.
도 5의 단계 S501에서, 일 실시 예에 따른 전자 장치(100)는, 하나 이상의 데이터 인식 모델을 이용하여, 주변 영상을 포함하는 컨텍스트 데이터를 기초로, 가상 영상을 생성할 수 있다.
일 실시 예에 따라, 가상 영상은, 컨텍스트 데이터에 대응하는 주행 불능 상황이 발생한 지점을, 다른 방향에서 접근할 때 획득될 것으로 추정되는 영상일 수 있다.
도 6을 참조하면, 전자 장치(100)는, 컨텍스트 데이터(context 1)에 포함된 복수의 영상 프레임(50)을 기초로, 주행 불능 상황이 발생한 지점을 로봇(1)이 다른 방향에서 접근한다고 가정할 때 획득될 수 있는 가상의 영상 프레임(60)을 가정하여 생성할 수 있다.
또한, 예를 들어, 복수의 가상 영상 프레임은, 주행 불능 상황이 발생한 지점을 밝기가 다른 환경에서 접근할 때 획득될 것으로 추정되는 영상 프레임일 수 있다.
또한, 예를 들어, 복수의 가상 영상 프레임은, 주행 불능 상황이 발생한 지점에서 충돌한 구조물이 다른 위치에 놓일 때를 가정하여, 영상 프레임내의 구조물을 제외한 영역이 상이한 경우를 가정하여 생성된 영상일 수 있다.
도 5의 단계 S502에서, 일 실시 예에 따른 전자 장치(100)는, 가상 영상을 더 포함하는 컨텍스트 데이터를 저장부(140, 도 15)에 저장할 수 있다. 또한, 일 실시 예에 따른 프로세서(120)는, 데이터 인식 모델을 이용하여, 가상 영상을 더 포함하는 컨텍스트 데이터를 학습할 수 있다.
도 5 내지 도 6은 일 실시 예를 설명하기 위해 도시한 것으로서 이에 한정되지 않는다.
도 7은 일 실시 예에 따라 진입 지점 정보를 결정하는 예를 설명하기 위한 흐름도이다. 도 8은 일 실시 예에 따라 진입 지점 정보를 결정하는 예를 설명하기 위한 도면이다. 도 7의 흐름도를 설명하면서, 도 8의 도면을 참조하여 설명하기로 한다.
일 실시 예에 따르면, 로봇(1)이 주행하는 중에 특정 공간에 진입하게 됨으로써, 수 초 후에 주행 불능 상황이 발생할 수 밖에 없는 진입 지점을 분석하여, 로봇(1)이 진입 지점에서 다른 방향으로 회피 주행할 수 있도록 제어할 수 있다.
도 7의 단계 S701에서, 일 실시 예에 따른 전자 장치(100)는, 하나 이상의 데이터 인식 모델을 이용하여, 컨텍스트 데이터에 기초하여, 주행 불능 상황이 발생한 지점으로 도달하게 된 진입 지점에 대응하는 진입 지점 정보를 결정할 수 있다.
도 8을 참조하면, 예를 들어, 프로세서(120)는 주행 불능 상황에 대응하는 복수의 영상 프레임(81,82,83) 중 주행 불능 상황이 발생한 지점으로 도달하게 된 원인이 되는 진입 지점에 대응하는 영상 프레임(81)을 결정할 수 있다.
프로세서(120)는, 진입 지점에 대응하는 영상 프레임을 식별하는 정보, 진입 지점의 위치 정보를 포함하는 진입 지점 정보(85)를 결정할 수 있다.
도 7의 단계 S702에서, 일 실시 예에 따른 전자 장치(100)는, 진입 지점 정보를 더 포함하는 컨텍스트 데이터를 저장부(140, 도 15)에 저장할 수 있다. 또한, 일 실시 예에 따른 프로세서(120)는, 데이터 인식 모델을 이용하여, 진입 지점 정보를 더 포함하는 컨텍스트 데이터를 학습할 수 있다.
도 7 내지 도 8은 일 실시 예를 설명하기 위해 도시한 것으로서 이에 한정되지 않는다.
도 9는 일 실시 예에 따라 주행 불능 상황을 학습하고, 주행 불능 상황을 추정하는 예를 설명하기 위한 흐름도이다.
도 9의 단계 S901에서, 일 실시 예에 따른 전자 장치(100)는 주행할 수 있다. 일 실시 예에 따른 전자 장치(100)는, 로봇(1, 도 1)(예컨대, 로봇 청소기)에 포함되어 동작함으로써, 자율 주행할 수 있다.
도 9의 단계 S902에서, 일 실시 예에 따른 전자 장치(100)는 주변 영상을 촬영할 수 있다. 전자 장치(100)는 이미지 센서(228)를 포함하는 센싱부(110)를 이용하여, 전자 장치(100)가 주행하는 중에 주변 영상을 촬영할 수 있다.
도 9의 단계 S903에서, 일 실시 예에 따른 전자 장치(100)는, 주행하는 중에 주행 불능 상황 발생한 것으로 판단할 수 있다. 일 실시 예에 따른 전자 장치(100)는, 주행 중에 접촉하게 되는 외부 요소(예컨대, 바닥, 구조물 사이에 끼임 등)로 인해 주행이 정지되고, 로봇(1)의 자율적인 제어에 의해서는 주행을 재개할 수 없게 된 상황이 되면, 주행 불능 상황이 발생한 것으로 판단할 수 있다.
도 9의 단계 S904에서, 일 실시 예에 따른 전자 장치(100)는, 주행 불능 상황에 대응하는 컨텍스트 데이터를 저장부(140, 도 15)에 저장할 수 있다. 일 실시 예에 따라, 전자 장치(100)는 주행 불능 상황에 대응하는 주변 영상, 영상을 벡터 데이터로 변환한 영상 디스크립터(discriptor), 위치 정보 등을 포함하는 컨텍스트 데이터를 저장할 수 있다.
도 9의 단계 S905에서, 일 실시 예에 따른 전자 장치(100)는, 데이터 인식 모델을 이용하여, 컨텍스트 데이터를 학습할 수 있다. 일 실시 예에 따라, 전자 장치(100)는 데이터 인식 모델을 이용하여, 컨텍스트 데이터에 포함된 영상을 기초로, 가상 영상을 생성하고, 가상 영상을 더 포함하는 컨텍스트 데이터를 학습할 수 있다. 또한, 일 실시 예에 따라, 전자 장치(100)는 데이터 인식 모델을 이용하여, 영상으로부터 추출된 특징 정보, 진입 지점 정보 등을 더 포함하는 컨텍스트 데이터를 생성하고 학습할 수 있다.
도 9의 단계 S906에서, 일 실시 예에 따른 전자 장치(100)는, 촬영된 주변 영상이 컨텍스트 데이터와 매칭되는지 판단할 수 있다. 일 실시 예에 따른 전자 장치(100)는 주행하는 중에(S901), 주변 영상을 촬영하면서(S902), 촬영된 주변 영상이, 저장부에 저장된(S904) 컨텍스트 데이터와 매칭되는지 판단할 수 있다.
일 실시 예에 따른 전자 장치(100)는 주행 중에 촬영된 주변 영상이, 저장부에 저장된 컨텍스트 데이터와 매칭된다고 판단하면, 매칭되는 컨텍스트 데이터에 대응하는 주행 불능 상황이 발생할 것으로 추정할 수 있다(S907).
단계 S908에서, 일 실시 예에 따른 전자 장치(100)는, 주행 불능 상황을 회피하기 위한 주행 경로를 결정할 수 있다. 일 실시 예에 따른 전자 장치(100)는 주행 불능 상황을 회피하기 위해 결정된 주행 경로에 기초하여, 주행을 지속할 수 있다.
한편, 단계 S906에서, 일 실시 예에 따른 전자 장치(100)는, 주행 중에 촬영된 주변 영상이, 저장부에 저장된 컨텍스트 데이터와 매칭되지 않는 것으로 판단되면, 주행을 지속하면서 주변 영상을 촬영하는 동작을 수행할 수 있다(S902).
도 10은 일 실시 예에 따라 주행 불능 상황을 추정하는 예를 설명하기 위한 흐름도이다. 도 11은 일 실시 예에 따라 주행 불능 상황을 회피하기 위한 주행 경로를 결정하는 예를 설명하기 위한 흐름도이다. 도 12는 일 실시 예에 따라 주행 불능 상황을 회피하기 위한 주행 경로를 결정하는 예를 설명하기 위한 도면이다. 도 10 및 도 11의 흐름도를 설명하면서, 도 12의 도면을 참조하여 설명하기로 한다.
도 10의 단계 S1001에서, 일 실시 예에 따른 전자 장치(100)는, 주행하는 중에 센싱부(110, 도 15)를 이용하여 주변 영상과 위치 정보를 획득할 수 있다.
일 실시 예에 따라, 전자 장치(100)는 센싱부(110, 도 16)를 이용하여 주변 영상을 획득할 수 있다. 또한, 전자 장치(100)는 센싱부(110, 도 16)를 이용하여 위치 정보를 획득할 수 있다.
도 10의 단계 S1002에서, 일 실시 예에 따른 전자 장치(100)는, 하나 이상의 데이터 인식 모델을 이용하여, 전자 장치가 주행하는 중에 획득한 주변 영상과 위치 정보를, 저장부(140, 도 15)에 저장된 컨텍스트 데이터와 매칭되는지 판단할 수 있다.
도 10의 단계 S1003에서, 일 실시 예에 따른 전자 장치(100)는, 컨텍스트 데이터에 매칭됨에 따라, 매칭되는 컨텍스트 데이터에 대응하는 주행 불능 상황이 발생할 것으로 추정할 수 있다.
도 11의 단계 S1101에서, 일 실시 예에 따른 전자 장치(100)는, 하나 이상의 데이터 인식 모델을 이용하여, 주행 불능 상황이 발생한 지점의 위치 정보에 기초하여, 전자 장치의 현재 위치 정보와의 상대 거리 및 방향을 결정할 수 있다.
도 11의 단계 S1102에서, 일 실시 예에 따른 전자 장치(100)는, 단계 S1101에서 결정된, 상대 거리 및 방향을 기초로, 주행 불능 상황을 회피하기 위한 주행 경로를 결정할 수 있다.
일 실시 예에 따라, 전자 장치(100)는 데이터 인식 모델을 이용하여, 현재 위치로부터, 주행 불능 상황이 발생한 지점과의 상대 거리 및 방향을 분석하고, 어떤 방향으로 이동하면 주행 불능 상황을 회피할 수 있을지 분석할 수 있다.
도 12를 참조하면, 전자 장치(100)는 주행 중 촬영된 주변 영상을, 저장부(140, 도 15)에 저장된 컨텍스트 데이터(21, 22, 23)와 매칭되는지 판단할 수 있다. 전자 장치(100)는 주행 중 획득된 주변 영상이 컨텍스트 데이터(21)와 매칭되는 것으로 판단함에 따라, 컨텍스트 데이터(21)에 대응하는 주행 불능 상황이 발생할 것으로 추정하고, 주행 불능 상황을 회피 하기 위해 주행 경로를 변경(25)할 수 있다.
일 실시 예에 따르면, 로봇(1)이 특정 구조물에 접촉하면서 주행 불능 상황이 발생했을 때의 상황에 관한 컨텍스트 데이터를 저장하고 학습함으로써, 추후 동일한 구조물에 다시 근접하게 되면, 주행 불능 상황을 추정하고 미연에 회피 주행하도록 제어할 수 있다.
도 13은 다른 일 실시 예에 따라 주행 불능 상황을 판단하는 예를 설명하기 위한 흐름도이다. 도 14는 다른 일 실시 예에 따라 주행 불능 상황을 판단하는 예를 설명하기 위한 도면이다. 도 13의 흐름도를 설명하면서, 도 14의 도면을 참조하여 설명하기로 한다.
도 1에서 설명한 바와 같이, 일 실시 예에 따른 전자 장치(100)는, 주행 중에 접촉하게 되는 외부 요소(예컨대, 바닥이나 구조물 사이에 끼임 등)로 인해 주행이 정지되고, 로봇(1)의 자율적인 제어에 의해서는 주행을 재개할 수 없게 된 상황이 되면, 주행 불능 상황이 발생한 것으로 판단할 수 있다.
또 다른 예로, 일 실시 예에 따른 전자 장치(100)는 주행하는 중에 획득한 영상에 미리 설정된 사용자 제스쳐가 포함된 것으로 판단함에 따라, 주행 불능 상황이 발생한 것으로 판단할 수 있다(S1301, 도 13).
도 14를 참조하면, 전자 장치(100)는 주행하는 중에 센싱부(110)를 이용하여 주변 영상을 촬영할 수 있다. 전자 장치(100)는 미리 설정된 사용자 제스쳐(50)(예컨대, 전자 장치(100)를 향해 사용자가 손바닥을 펼쳐 드는 제스쳐)가 포함된 주변 영상을 획득함에 따라, 주행 불능 상황이 발생한 것으로 판단할 수 있다.
예를 들어, 사용자는 특정 공간(예컨대, 아기 방)에 대해서는 로봇 청소기(1)가 진입하지 못하도록 설정할 필요가 있을 수 있다. 이 때, 사용자가 전자 장치(100)를 향해, 전자 장치(100)에 미리 설정된 제스쳐(예컨대, 손바닥을 펼쳐 드는 제스쳐)를 하면, 전자 장치(100)는 사용자 제스쳐가 입력된 공간을 주행 불능 상황과 동일하게 처리할 수 있다.
도 13의 단계 S1302에서, 일 실시 예에 따른 전자 장치(100)는, 주행 불능 상황에 대응하는 컨텍스트 데이터를 생성할 수 있다.
일 실시 예에 따라, 전자 장치(100)는 주행 불능 상황 발생에 따른 동작을 수행할 수 있다. 전자 장치(100)는, 미리 설정된 사용자 제스쳐가 포함된 영상을 획득한 시점을 기초로, 컨텍스트 데이터를 생성할 수 있다. 전자 장치(100)는 데이터 인식 모델을 이용하여, 컨텍스트 데이터를 학습할 수 있다.
도 15는 일 실시예에 따른 전자 장치의 블록 구성도(block diagram)이다.
전자 장치(100)는 일 실시 예에 따라, 센싱부(110), 저장부(140) 및 프로세서(120)를 포함할 수 있다. 도 15에 도시된 전자 장치(100)는 본 실시 예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 15에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
일 실시 예에 따라, 센싱부(110)는 로봇(1)이 주행하는 중에, 로봇(1)의 주변 영상을 촬영할 수 있다. 또한, 센싱부(110)는 로봇(1)이 주행하는 중에, 로봇(1)의 위치 정보를 획득할 수 있다.
센싱부(110)는 로봇(1)의 주변 영상을 획득하기 위한 다수의 센서들을 포함할 수 있다. 예를 들어, 센싱부(110)는 카메라와 같은 이미지 센서(228)를 포함할 수 있다.
또한, 센싱부(110)는 로봇(1)의 위치 정보를 획득하기 위한 다수의 센서들을 포함할 수 있다. 예를 들어, 센싱부(110)는 RADAR 센서(226), LIDAR 센서(227) 및 Odometery 센서(230)와 같은 거리 센서를 포함할 수 있다.
또한, 센싱부(110)는 다수의 센서들의 위치 및/또는 배향을 수정하도록 구성되는 하나 이상의 액추에이터들을 포함할 수 있는 바, 로봇(1)의 전방, 후방, 및 측방 각각의 방향의 영상을 촬영할 수 있다.
저장부(140)는, 마그네틱 디스크 드라이브, 광학 디스크 드라이브, 플래쉬 메모리를 포함할 수 있다. 또는 저장부(140)는 휴대 가능한 USB 데이터 저장 장치가 될 수 있다. 저장부(140)는 본원과 관련되는 예들을 실행하기 위한 시스템 소프트웨어를 저장할 수 있다. 본원과 관련되는 예들을 실행하기 위한 시스템 소프트웨어는 휴대 가능한 저장 매체에 저장될 수 있다.
일 실시 예에 따라 저장부(140)는, 주행 불능 상황에 대응하는 컨텍스트 데이터를 저장할 수 있다.
*또한, 일 실시 예에 따라 저장부(140)는 전자 장치(100)가 주행하는 중에 촬영한 주변 영상을 저장할 수 있다.
일 실시예에 따라, 프로세서(120)는 적어도 하나의 프로세서로 구성될 수 있다.
일 실시 예에 따라, 프로세서(120)는 전자 장치(100)가 주행하는 중에, 센싱부(110)를 이용하여 주변 영상을 촬영할 수 있다.
또한, 프로세서(120)는, 전자 장치(100)가 주행하는 중에 주행 불능 상황이 발생함에 따라, 주행 불능 상황이 발생한 시점으로부터 미리 정해진 시간 범위 내에 촬영된 주변 영상을 포함하는 컨텍스트 데이터를 생성할 수 있다.
또한, 프로세서(120)는, 주행 불능 상황에 대응하는 컨텍스트 데이터를 저장부(140)에 저장할 수 있다.
또한, 프로세서(120)는, 하나 이상의 데이터 인식 모델을 이용하여, 저장부(140)에 저장된 컨텍스트 데이터를 학습할 수 있다.
또한, 프로세서(120)는, 하나 이상의 데이터 인식 모델을 이용하여, 주변 영상을 포함하는 컨텍스트 데이터를 기초로, 컨텍스트 데이터에 대응하는 주행 불능 상황이 발생한 지점을, 다른 방향에서 접근할 때 획득될 것으로 추정되는 가상 영상을 생성할 수 있다.
또한, 프로세서(120)는, 생성된 가상 영상을 더 포함하는 컨텍스트 데이터를 저장부(140)에 저장할 수 있다.
또한, 프로세서(120)는, 센싱부(110)를 이용하여, 전자 장치(100)가 주행하는 중에, 전자 장치(100)의 위치를 나타내는 위치 정보를 획득할 수 있다.
또한, 프로세서(120)는, 전자 장치(100)가 주행하는 중에 주행 불능 상황이 발생함에 따라, 주행 불능 상황이 발생한 지점에 대응하는 위치 정보를 더 포함하는 컨텍스트 데이터를 저장부(140)에 저장할 수 있다.
또한, 프로세서(120)는, 하나 이상의 데이터 인식 모델을 이용하여, 컨텍스트 데이터에 포함된 주변 영상으로부터 특징 정보를 추출하고, 추출된 특징 정보를 더 포함하는 컨텍스트 데이터를 저장부(140)에 저장할 수 있다.
또한, 프로세서(120)는, 하나 이상의 데이터 인식 모델을 이용하여, 주변 영상을 포함하는 컨텍스트 데이터에 기초하여, 주행 불능 상황이 발생한 지점으로 도달하게 된 진입 지점에 대응하는 영상 프레임 및 위치 정보를 포함하는 진입 지점 정보를 결정할 수 있다.
또한, 프로세서(120)는, 진입 지점 정보를 더 포함하는 컨텍스트 데이터를 저장부(140)에 저장할 수 있다.
또한, 프로세서(120)는, 하나 이상의 데이터 인식 모델을 이용하여, 전자 장치(100)가 주행하는 중에 촬영된 주변 영상이, 저장부(140)에 저장된 컨텍스트 데이터에 매칭되는지 판단할 수 있다.
또한, 프로세서(120)는, 촬영된 주변 영상이 컨텍스트 데이터에 매칭됨에 따라, 매칭되는 컨텍스트 데이터에 대응하는 주행 불능 상황이 발생할 것으로 추정할 수 있다.
또한, 프로세서(120)는, 주행 불능 상황이 발생할 것으로 추정됨에 따라, 하나 이상의 데이터 인식 모델을 이용하여, 매칭되는 컨텍스트 데이터에 포함된 주행 불능 상황이 발생한 지점의 위치 정보에 기초하여, 전자 장치(100)의 현재 위치 정보와의 상대 거리 및 방향을 결정할 수 있다. 또한, 프로세서(120)는, 상대 거리 및 방향에 기초하여, 주행 불능 상황을 회피하기 위한 주행 경로를 결정할 수 있다.
또한, 프로세서(120)는, 미리 설정된 사용자 제스쳐가 포함된 영상이 획득됨에 따라, 주행 불능 상황이 발생한 것으로 판단할 수 있다.
도 16은 다른 실시예에 따른 전자 장치의 블록 구성도(block diagram)이다.
전자 장치(100)는 도 15에서 설명한 센싱부(110), 프로세서(120) 및 저장부(140)와, 출력부(130), 입력부(150), 및 통신부(160)를 더 포함할 수 있다.
센싱부(110)는 로봇(1)이 위치해 있는 주변 환경에 관한 정보를 감지하도록 구성되는 다수의 센서들을 포함할 수 있고, 센서들의 위치 및/또는 배향을 수정하도록 구성되는 하나 이상의 액추에이터들을 포함할 수 있다. 예를 들어, 센싱부(110)는 GPS(Global Positioning System)(224), IMU(Inertial Measurement Unit)(225), RADAR 센서(226), LIDAR 센서(227), 이미지 센서(228) 및 Odometery 센서(230)를 포함할 수 있다. 또한, 센싱부(110)는 온/습도 센서(232), 적외선 센서(233), 기압 센서(235), 근접 센서(236), 및 RGB 센서(illuminance sensor)(237) 중 적어도 하나를 포함할 수 있으나, 이에 한정되는 것은 아니다. 각 센서들의 기능은 그 명칭으로부터 당업자가 직관적으로 추론할 수 있으므로, 구체적인 설명은 생략하기로 한다.
또한, 센싱부(110)는 로봇(1)의 움직임을 센싱할 수 있는 움직임 센싱부(238)를 포함할 수 있다. 움직임 센싱부(238)는 지자기 센서(Magnetic sensor)(229), 가속도 센서(Acceleration sensor)(231), 및 자이로스코프 센서(234)를 포함할 수 있다.
GPS(224)는 로봇(1)의 지리적 위치를 추정하도록 구성되는 센서일 수 있다. 즉, GPS(224)는 지구에 대한 로봇(1)의 위치를 추정하도록 구성되는 송수신기를 포함할 수 있다.
IMU(225)는 관성 가속도에 기초하여 로봇(1)의 위치 및 배향 변화들을 감지하도록 구성되는 센서들의 조합이 될 수 있다. 예를 들어, 센서들의 조합은, 가속도계들 및 자이로스코프들을 포함할 수 있다.
RADAR 센서(226)는 무선 신호를 사용하여 로봇(1)이 위치해 있는 환경 내의 물체들을 감지하도록 구성되는 센서일 수 있다. 또한, RADAR 센서(226)는, 물체들의 속도 및/또는 방향을 감지하도록 구성될 수 있다.
LIDAR 센서(227)는 레이저를 사용하여 로봇(1)이 위치해 있는 환경 내의 물체들을 감지하도록 구성되는 센서일 수 잇다. 보다 구체적으로, LIDAR 센서(227)는 레이저를 방출하도록 구성되는 레이저 광원 및/또는 레이저 스캐너와, 레이저의 반사를 검출하도록 구성되는 검출기를 포함할 수 잇다. LIDAR 센서(227)는 코히런트(coherent)(예컨대, 헤티로다인 검출을 사용함) 또는 비코히런트(incoherent) 검출 모드에서 동작하도록 구성될 수 있다.
이미지 센서(228)는 로봇(1) 외부의 환경을 기록하도록 구성되는 스틸 카메라 또는 비디오 카메라가 될 수 있다. 예를 들어, 이미지 센서(228)는 다수의 카메라들을 포함할 수 있고, 다수의 카메라들은 로봇(1)의 외부 상의 다수의 위치들에 배치될 수 있다.
Odometery 센서(230)는 로봇(1)의 위치를 추정하고, 이동 거리를 측정할 수 있다. 예를 들어, Odometery 센서(230)는 로봇(1)의 바퀴의 회전 수를 이용하여 로봇(1)의 위치 변화 값을 측정할 수 있다.
통신부(160)는 다른 디바이스와 무선으로 통신하기 위한 적어도 하나의 안테나를 포함할 수 있다. 예를 들어, 통신부(160)는 와이파이 또는 블루투스를 통해 무선으로 셀룰러 네트워크 또는 다른 무선 프로토콜 및 시스템과 통신하기 위해 이용될 수 있다. 프로세서(120)에 의해 제어되는 통신부(160)는 무선 신호를 송수신할 수 있다. 예를 들어, 프로세서(120)는, 통신부(160)가 셀룰러 네트워크와 무선 신호를 송수신하기 위해, 저장부(140)에 포함된 프로그램을 실행시킬 수 있다.
입력부(150)는 로봇(1)을 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 입력부(150)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다. 또한, 입력부(150)는 마이크를 포함할 수 있는 바, 마이크는, 사용자로부터 오디오(예를 들어, 음성 명령)를 수신하도록 구성될 수 있다.
출력부(130)는 오디오 신호 또는 비디오 신호를 출력할 수 있으며, 출력 장치(280)는 디스플레이(281), 및 음향 출력부(282)를 포함할 수 있다.
디스플레이(281)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 출력부(130)의 구현 형태에 따라, 출력부(130)는 디스플레이(281)를 2개 이상 포함할 수도 있다.
음향 출력부(282)는 통신부(160)로부터 수신되거나 저장부(140)에 저장된 오디오 데이터를 출력한다. 또한, 음향 출력부(282)에는 스피커(speaker), 버저(Buzzer) 등이 포함될 수 있다.
입력부(150) 및 출력부(130)는 네트워크 인터페이스를 포함할 수 있고, 터치 스크린으로 구현될 수 있다.
프로세서(120)는, 저장부(140)에 저장된 프로그램들을 실행함으로써, 센싱부(110), 통신부(160), 입력부(150), 저장부(140), 및 출력부(130)를 전반적으로 제어할 수 있다.
도 17은 일 실시예에 따른 로봇의 블록 구성도(block diagram)이다.
로봇(1)은 일 실시 예에 따라, 전자 장치(100) 및 주행 장치(200)를 포함할 수 있다. 도 17에 도시된 로봇(1)은 본 실시 예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 17에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
전자 장치(100)는 센싱부(110), 저장부(140) 및 프로세서(120)를 포함할 수 있다.
센싱부(110), 저장부(140) 및 프로세서(120)에 대한 설명은, 도 15, 도 16에서 상술하였으므로, 생략하기로 한다.
주행 장치(200)는 브레이크 유닛(221), 조향 유닛(222) 및 스로틀(223)을 포함할 수 있다.
조향 유닛(222)은 로봇(1)의 방향을 조절하도록 구성되는 매커니즘들의 조합이 될 수 있다.
스로틀(223)은 엔진/모터의 동작 속도를 제어하여, 로봇(1)의 속도를 제어하도록 구성되는 매커니즘들의 조합이 될 수 있다.
브레이크 유닛(221)은 로봇(1)을 감속시키도록 구성되는 매커니즘들의 조합이 될 수 있다. 예를 들어, 브레이크 유닛(221)은 로봇(1)의 바퀴/휠의 속도를 줄이기 위해 마찰을 사용할 수 있다.
도 18은 일부 실시예에 따른 프로세서(120)의 블록도이다.
도 18을 참조하면, 일부 실시예에 따른 프로세서(120)는 데이터 학습부(1310) 및 데이터 인식부(1320)를 포함할 수 있다.
데이터 학습부(1310)는 상황 판단을 위한 기준을 학습할 수 있다. 데이터 학습부(1310)는 소정의 상황을 판단하기 위하여 어떤 데이터를 이용할 지, 데이터를 이용하여 상황을 어떻게 판단할 지에 관한 기준을 학습할 수 있다. 데이터 학습부(1310)는 학습에 이용될 데이터를 획득하고, 획득된 데이터를 후술할 데이터 인식 모델에 적용함으로써, 상황 판단을 위한 기준을 학습할 수 있다.
데이터 인식부(1320)는 데이터에 기초한 상황을 판단할 수 있다. 데이터 인식부(1320)는 학습된 데이터 인식 모델을 이용하여, 소정의 데이터로부터 상황을 인식할 수 있다. 데이터 인식부(1320)는 학습에 의한 기 설정된 기준에 따라 소정의 데이터를 획득하고, 획득된 데이터를 입력 값으로 하여 데이터 인식 모델을 이용함으로써, 소정의 데이터에 기초한 소정의 상황을 판단할 수 있다. 또한, 획득된 데이터를 입력 값으로 하여 데이터 인식 모델에 의해 출력된 결과 값은, 데이터 인식 모델을 갱신하는데 이용될 수 있다.
데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
이 경우, 데이터 학습부(1310) 및 데이터 인식부(1320)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 하나는 전자 장치에 포함되고, 나머지 하나는 서버에 포함될 수 있다. 또한, 데이터 학습부(1310) 및 데이터 인식부(1320)는 유선 또는 무선으로 통하여, 데이터 학습부(1310)가 구축한 모델 정보를 데이터 인식부(1320)로 제공할 수도 있고, 데이터 인식부(1320)로 입력된 데이터가 추가 학습 데이터로서 데이터 학습부(1310)로 제공될 수도 있다.
한편, 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 학습부(1310) 및 데이터 인식부(1320) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 19는 일 실시예에 따른 데이터 학습부의 블록도이다.
도 19는 일부 실시예에 따른 데이터 학습부(1310)의 블록도이다.
도 19를 참조하면, 일부 실시예에 따른 데이터 학습부(1310)는 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5)를 포함할 수 있다.
데이터 획득부(1310-1)는 상황 판단에 필요한 데이터를 획득할 수 있다. 데이터 획득부(1310-1)는 상황 판단을 위한 학습을 위하여 필요한 데이터를 획득할 수 있다.
일 실시 예에 따라, 데이터 획득부(1310-1)는, 주행 불능 상황이 발생하면, 주행 불능 상황에 관한 컨텍스트 데이터를 획득할 수 있다. 예를 들어, 데이터 획득부(1310-1)는, 주행 불능 상황이 발생한 시점의 로봇(1)의 주변 영상을 입력 받을 수 있다. 일 예로, 데이터 획득부(1310-1)는 전자 장치의 입력 기기(예: 마이크로폰, 카메라 또는 센서 등)를 통해 데이터를 입력 받을 수 있다. 또는, 데이터 획득부(1310-1)는 전자 장치와 통신하는 외부 장치를 통해 데이터를 획득할 수 있다.
일 실시 예에 따라, 주변 영상은 복수의 이미지(또는, 프레임(frame))들로 구성될 수 있다. 일 예로, 데이터 획득부(1310-1)는 데이터 학습부(1310)를 포함하는 전자 장치의 카메라, 또는 데이터 학습부(1310)를 포함하는 전자 장치와 통신 가능한 외부의 카메라(예로, CCTV 또는 블랙박스 등)를 통하여 동영상을 입력 받을 수도 있다.
여기서, 카메라는 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있다.
전처리부(1310-2)는 상황 판단을 위한 학습에 획득된 데이터가 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(1310-2)는 후술할 모델 학습부(1310-4)가 상황 판단을 위한 학습을 위하여 획득된 데이터를 이용할 수 있도록, 획득된 데이터를 기 설정된 포맷으로 가공할 수 있다. 예를 들어, 전처리부(1310-2)는 입력된 동영상의 적어도 일부를 구성하는 복수의 이미지(또는 프레임(frame))들 각각에 포함된 공통 영역을 기초로, 복수의 이미지들의 적어도 일부를 중첩하여 하나의 합성 이미지를 생성할 수 있다. 이 경우, 하나의 동영상에서 복수 개의 합성 이미지들이 생성될 수도 있다. 공통 영역은, 복수의 이미지들 각각에서 동일 또는 유사한 공통 오브젝트(예로, 물체, 동식물 또는 사람 등)를 포함한 영역이 될 수 있다. 또는, 공통 영역은, 복수의 이미지들 각각에서 색, 음영, RGB 값 또는 CMYK 값 등이 동일 또는 유사한 영역이 될 수 있다.
학습 데이터 선택부(1310-3)는 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 선택된 데이터는 모델 학습부(1310-4)에 제공될 수 있다. 학습 데이터 선택부(1310-3)는 상황 판단을 위한 기 설정된 기준에 따라, 전처리된 데이터 중에서 학습에 필요한 데이터를 선택할 수 있다. 또한, 학습 데이터 선택부(1310-3)는 후술할 모델 학습부(1310-4)에 의한 학습에 의해 기 설정된 기준에 따라 데이터를 선택할 수도 있다.
예를 들어, 로봇(1)의 주행 불능 상황이 발생했던 주행 경로 상에 영향을 미칠 수 있는 가구, 구조물 등에 관한 데이터가 선택될 수 있다.
모델 학습부(1310-4)는 학습 데이터에 기초하여 상황을 어떻게 판단할 지에 관한 기준을 학습할 수 있다. 또한, 모델 학습부(1310-4)는 상황 판단을 위하여 어떤 학습 데이터를 이용해야 하는 지에 대한 기준을 학습할 수도 있다.
일 실시 예에 따라, 모델 학습부(1310-4)는 발생된 주행 불능 상황에 관한 컨텍스트 데이터에 기초하여, 어떤 주행 불능 상황을 추정할지에 관한 기준을 학습할 수 있다.
또한, 모델 학습부(1310-4)는 상황 판단에 이용되는 데이터 인식 모델을 학습 데이터를 이용하여 학습시킬 수 있다. 이 경우, 데이터 인식 모델은 미리 구축된 모델일 수 있다. 예를 들어, 데이터 인식 모델은 기본 학습 데이터(예를 들어, 샘플 이미지 등)을 입력 받아 미리 구축된 모델일 수 있다.
데이터 인식 모델은, 인식 모델의 적용 분야, 학습의 목적 또는 장치의 컴퓨터 성능 등을 고려하여 구축될 수 있다. 데이터 인식 모델은, 예를 들어, 신경망(Neural Network)을 기반으로 하는 모델일 수 있다. 예컨대, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 데이터 인식 모델로서 사용될 수 있으나, 이에 한정되지 않는다.
다양한 실시예에 따르면, 모델 학습부(1310-4)는 미리 구축된 데이터 인식 모델이 복수 개가 존재하는 경우, 입력된 학습 데이터와 기본 학습 데이터의 관련성이 큰 데이터 인식 모델을 학습할 데이터 인식 모델로 결정할 수 있다. 이 경우, 기본 학습 데이터는 데이터의 타입 별로 기 분류되어 있을 수 있으며, 데이터 인식 모델은 데이터의 타입 별로 미리 구축되어 있을 수 있다. 예를 들어, 기본 학습 데이터는 학습 데이터가 생성된 지역, 학습 데이터가 생성된 시간, 학습 데이터의 크기, 학습 데이터의 장르, 학습 데이터의 생성자, 학습 데이터 내의 오브젝트의 종류 등과 같은 다양한 기준으로 기 분류되어 있을 수 있다.
또한, 모델 학습부(1310-4)는, 예를 들어, 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient descent)을 포함하는 학습 알고리즘 등을 이용하여 데이터 인식 모델을 학습시킬 수 있다.
또한, 모델 학습부(1310-4)는, 예를 들어, 학습 데이터를 입력 값으로 하는 지도 학습(supervised learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또한, 모델 학습부(1310-4)는, 예를 들어, 별다른 지도 없이 상황 판단을 위해 필요한 데이터의 종류를 스스로 학습함으로써, 상황 판단을 위한 기준을 발견하는 비지도 학습(unsupervised learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다. 또한, 모델 학습부(1310-4)는, 예를 들어, 학습에 따른 상황 판단의 결과가 올바른 지에 대한 피드백을 이용하는 강화 학습(reinforcement learning)을 통하여, 데이터 인식 모델을 학습시킬 수 있다.
또한, 데이터 인식 모델이 학습되면, 모델 학습부(1310-4)는 학습된 데이터 인식 모델을 저장할 수 있다. 이 경우, 모델 학습부(1310-4)는 학습된 데이터 인식 모델을 데이터 인식부(1320)를 포함하는 전자 장치의 메모리에 저장할 수 있다. 또는, 모델 학습부(1310-4)는 학습된 데이터 인식 모델을 후술할 데이터 인식부(1320)를 포함하는 전자 장치의 메모리에 저장할 수 있다. 또는, 모델 학습부(1310-4)는 학습된 데이터 인식 모델을 전자 장치와 유선 또는 무선 네트워크로 연결되는 서버의 메모리에 저장할 수도 있다.
이 경우, 학습된 데이터 인식 모델이 저장되는 메모리는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 함께 저장할 수도 있다. 또한, 메모리는 소프트웨어 및/또는 프로그램을 저장할 수도 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API) 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다.
모델 평가부(1310-5)는 데이터 인식 모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 인식 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(1310-4)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 데이터 인식 모델을 평가하기 위한 기 설정된 데이터일 수 있다.
예를 들어, 모델 평가부(1310-5)는 평가 데이터에 대한 학습된 데이터 인식 모델의 인식 결과 중에서, 인식 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정된 임계치를 초과하는 경우 소정 기준을 만족하지 못한 것으로 평가할 수 있다. 예컨대, 소정 기준이 비율 2%로 정의되는 경우, 학습된 데이터 인식 모델이 총 1000개의 평가 데이터 중의 20개를 초과하는 평가 데이터에 대하여 잘못된 인식 결과를 출력하는 경우, 모델 평가부(1310-5)는 학습된 데이터 인식 모델이 적합하지 않은 것으로 평가할 수 있다.
한편, 학습된 데이터 인식 모델이 복수 개가 존재하는 경우, 모델 평가부(1310-5)는 각각의 학습된 동영상 인식 모델에 대하여 소정 기준을 만족하는지를 평가하고, 소정 기준을 만족하는 모델을 최종 데이터 인식 모델로서 결정할 수 있다. 이 경우, 소정 기준을 만족하는 모델이 복수 개인 경우, 모델 평가부(1310-5)는 평가 점수가 높은 순으로 미리 설정된 어느 하나 또는 소정 개수의 모델을 최종 데이터 인식 모델로서 결정할 수 있다.
한편, 데이터 학습부(1310) 내의 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
또한, 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.
또한, 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(1310-1), 전처리부(1310-2), 학습 데이터 선택부(1310-3), 모델 학습부(1310-4) 및 모델 평가부(1310-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 20은 일 실시예에 따른 데이터 인식부의 블록도이다.
도 20은 일부 실시예에 따른 데이터 인식부(1320)의 블록도이다.
도 20을 참조하면, 일부 실시예에 따른 데이터 인식부(1320)는 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5)를 포함할 수 있다.
데이터 획득부(1320-1)는 상황 판단에 필요한 데이터를 획득할 수 있으며, 전처리부(1320-2)는 상황 판단을 위해 획득된 데이터가 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 전처리부(1320-2)는 후술할 인식 결과 제공부(1320-4)가 상황 판단을 위하여 획득된 데이터를 이용할 수 있도록, 획득된 데이터를 기 설정된 포맷으로 가공할 수 있다.
인식 데이터 선택부(1320-3)는 전처리된 데이터 중에서 상황 판단에 필요한 데이터를 선택할 수 있다. 선택된 데이터는 인식 결과 제공부(1320-4)에게 제공될 수 있다. 인식 데이터 선택부(1320-3)는 상황 판단을 위한 기 설정된 기준에 따라, 전처리된 데이터 중에서 일부 또는 전부를 선택할 수 있다. 또한, 인식 데이터 선택부(1320-3)는 후술할 모델 학습부(1310-4)에 의한 학습에 의해 기 설정된 기준에 따라 데이터를 선택할 수도 있다.
인식 결과 제공부(1320-4)는 선택된 데이터를 데이터 인식 모델에 적용하여 상황을 판단할 수 있다. 인식 결과 제공부(1320-4)는 데이터의 인식 목적에 따른 인식 결과를 제공할 수 있다. 인식 결과 제공부(1320-4)는 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 입력 값으로 이용함으로써, 선택된 데이터를 데이터 인식 모델에 적용할 수 있다. 또한, 인식 결과는 데이터 인식 모델에 의해 결정될 수 있다.
일 실시 예에 따라, 추정된 로봇(1)의 주행 불능 상황은, 텍스트, 음성, 동영상, 이미지 또는 명령어(예로, 어플리케이션 실행 명령어, 모듈 기능 실행 명령어 등) 등으로 제공될 수도 있다.
모델 갱신부(1320-5)는 인식 결과 제공부(1320-4)에 의해 제공되는 인식 결과에 대한 평가에 기초하여, 데이터 인식 모델이 갱신되도록 할 수 있다. 예를 들어, 모델 갱신부(1320-5)는 인식 결과 제공부(1320-4)에 의해 제공되는 인식 결과를 모델 학습부(1310-4)에게 제공함으로써, 모델 학습부(1310-4)가 데이터 인식 모델을 갱신하도록 할 수 있다.
한편, 데이터 인식부(1320) 내의 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나는, 적어도 하나의 하드웨어 칩 형태로 제작되어 전자 장치에 탑재될 수 있다. 예를 들어, 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나는 인공 지능(AI; artificial intelligence)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 전술한 각종 전자 장치에 탑재될 수도 있다.
또한, 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5)는 하나의 전자 장치에 탑재될 수도 있으며, 또는 별개의 전자 장치들에 각각 탑재될 수도 있다. 예를 들어, 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 일부는 전자 장치에 포함되고, 나머지 일부는 서버에 포함될 수 있다.
또한, 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나는 소프트웨어 모듈로 구현될 수 있다. 데이터 획득부(1320-1), 전처리부(1320-2), 인식 데이터 선택부(1320-3), 인식 결과 제공부(1320-4) 및 모델 갱신부(1320-5) 중 적어도 하나가 소프트웨어 모듈(또는, 인스터력션(instruction) 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록매체(non-transitory computer readable media)에 저장될 수 있다. 또한, 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 소정의 애플리케이션에 의해 제공될 수 있다. 또는, 적어도 하나의 소프트웨어 모듈 중 일부는 OS(Operating System)에 의해 제공되고, 나머지 일부는 소정의 애플리케이션에 의해 제공될 수 있다.
도 21은 일 실시예에 따른 전자 장치 및 서버가 서로 연동함으로써 데이터를 학습하고 인식하는 예시를 나타내는 도면이다.
도 21은 일부 실시 예에 따른 전자 장치(100) 및 서버(2000)가 서로 연동함으로써 데이터를 학습하고 인식하는 예시를 나타내는 도면이다.
도 21을 참조하면, 서버(2000)는 상황 판단을 위한 기준을 학습할 수 있으며, 디바이스(1000)는 서버(2000)에 의한 학습 결과에 기초하여 상황을 판단할 수 있다.
이 경우, 서버(2000)의 모델 학습부(2340)는 도 19에 도시된 데이터 학습부(1310)의 기능을 수행할 수 있다. 서버(2000)의 모델 학습부(2340)는 소정의 상황을 판단하기 위하여 어떤 데이터를 이용할 지, 데이터를 이용하여 상황을 어떻게 판단할 지에 관한 기준을 학습할 수 있다. 모델 학습부(2340)는 학습에 이용될 데이터를 획득하고, 획득된 데이터를 후술할 데이터 인식 모델에 적용함으로써, 상황 판단을 위한 기준을 학습할 수 있다.
또한, 디바이스(1000)의 인식 결과 제공부(1320-4)는 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 서버(2000)에 의해 생성된 데이터 인식 모델에 적용하여 상황을 판단할 수 있다. 예를 들어, 인식 결과 제공부(1320-4)는 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 서버(2000)에게 전송하고, 서버(2000)가 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 인식 모델에 적용하여 상황을 판단할 것을 요청할 수 있다. 또한, 인식 결과 제공부(1320-4)는 서버(2000)에 의해 판단된 상황에 관한 정보를 서버(2000)로부터 수신할 수 있다.
예를 들어, 전자 장치(100)는 로봇(1)의 주행 불능 상황에 대응하는 컨텍스트 데이터를 서버(2000)에게 전송하고, 서버(2000)가 컨텍스트 데이터를 데이터 인식 모델에 적용하여 로봇(1)의 주행 불능 상황을 추정할 것을 요청할 수 있다. 또한, 전자 장치(100)는 서버(2000)에 의해 추정된 주행 불능 상황에 관한 정보를 서버(2000)로부터 수신할 수 있다.
또는, 전자 장치(100)의 인식 결과 제공부(1320-4)는 서버(2000)에 의해 생성된 인식 모델을 서버(2000)로부터 수신하고, 수신된 인식 모델을 이용하여 상황을 판단할 수 있다. 이 경우, 디바이스(1000)의 인식 결과 제공부(1320-4)는 인식 데이터 선택부(1320-3)에 의해 선택된 데이터를 서버(2000)로부터 수신된 데이터 인식 모델에 적용하여 상황을 판단할 수 있다.
예를 들어, 전자 장치(100)는 로봇(1)의 주행 불능 상태에 대응하는 컨텍스트 데이터를, 서버(2000)로부터 수신된 데이터 인식 모델에 적용하여, 로봇(1)의 주행 불능 상황을 추정할 수 있다.
상기 살펴 본 실시 예들에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
100 : 전자 장치
110 : 센싱부
140 : 저장부
120 : 프로세서
110 : 센싱부
140 : 저장부
120 : 프로세서
Claims (16)
- 전자 장치에 있어서,
저장부;
적어도 하나의 센싱부; 및
프로세서를 포함하고,
상기 프로세서는,
상기 전자 장치가 주행하는 중에, 상기 센싱부를 이용하여 주변 영상을 촬영하고,
상기 전자 장치가 주행하는 중에 주행 불능 상황이 발생함에 따라, 상기 주행 불능 상황이 발생한 시점으로부터 미리 정해진 시간 범위 내에 촬영된 주변 영상을 포함하는 컨텍스트 데이터를 생성하고,
상기 발생된 주행 불능 상황에 대응하는 상기 생성된 컨텍스트 데이터를 상기 저장부에 저장하고,
상기 생성된 컨텍스트 데이터를 서버에 제공하고,
상기 서버로부터, 상기 컨텍스트 데이터를 학습데이터로 이용하여 상기 주행 불능 상황의 기준이 학습된 하나 이상의 데이터 인식 모델을 수신하고,
상기 수신된 하나 이상의 데이터 인식 모델을 이용하여, 상기 전자 장치가 주행하는 중에 획득한 주변 영상과 위치 정보를, 상기 저장부에 저장된 상기 컨텍스트 데이터와 매칭되는지 판단하고,
상기 컨텍스트 데이터에 매칭됨에 따라, 상기 매칭되는 컨텍스트 데이터에 대응하는 주행 불능 상황이 발생할 것으로 추정하고,
상기 추정된 주행 불능 상황을 회피하도록 제어하는, 전자 장치.
- 제1 항에 있어서,
상기 프로세서는,
상기 하나 이상의 데이터 인식 모델을 이용하여, 상기 주변 영상을 포함하는 컨텍스트 데이터를 기초로, 상기 컨텍스트 데이터에 대응하는 주행 불능 상황이 발생한 지점을, 다른 방향에서 접근할 때 획득될 것으로 추정되는 가상 영상을 생성하고,
상기 생성된 가상 영상을 더 포함하는 상기 컨텍스트 데이터를 저장하는, 전자 장치.
- 제1 항에 있어서,
상기 프로세서는,
상기 센싱부를 이용하여, 상기 전자 장치가 주행하는 중에, 상기 전자 장치의 위치를 나타내는 위치 정보를 획득하고,
상기 전자 장치가 주행하는 중에 주행 불능 상황이 발생함에 따라, 상기 주행 불능 상황이 발생한 지점에 대응하는 위치 정보를 더 포함하는 상기 컨텍스트 데이터를 저장하는, 전자 장치.
- 제1 항에 있어서,
상기 프로세서는,
상기 하나 이상의 데이터 인식 모델을 이용하여, 상기 컨텍스트 데이터에 포함된 상기 주변 영상으로부터 특징 정보를 추출하고, 상기 추출된 특징 정보를 더 포함하는 상기 컨텍스트 데이터를 저장하는, 전자 장치.
- 제4 항에 있어서,
상기 특징 정보는,
상기 주변 영상에 포함된 오브젝트를 식별하기 위한 식별 정보,
복수의 영상 프레임이 촬영된 지점과 상기 주행 불능 상황이 발생된 지점과의 상대 거리 및 방향에 관한 정보, 및
상기 주변 영상으로부터 추정되는 주행 경로를 나타내는 경로 정보 중 적어도 하나를 포함하는, 전자 장치.
- 제1 항에 있어서,
상기 프로세서는,
상기 하나 이상의 데이터 인식 모델을 이용하여, 상기 주변 영상을 포함하는 상기 컨텍스트 데이터에 기초하여, 상기 주행 불능 상황이 발생한 지점으로 도달하게 된 진입 지점에 대응하는 영상 프레임 및 위치 정보를 포함하는 진입 지점 정보를 결정하고,
상기 진입 지점 정보를 더 포함하는 상기 컨텍스트 데이터를 저장하는, 전자 장치.
- 제1 항에 있어서,
상기 프로세서는,
상기 주행 불능 상황이 발생할 것으로 추정됨에 따라, 상기 하나 이상의 데이터 인식 모델을 이용하여, 상기 매칭되는 컨텍스트 데이터에 포함된 상기 주행 불능 상황이 발생한 지점의 위치 정보에 기초하여, 상기 전자 장치의 현재 위치 정보와의 상대 거리 및 방향을 결정하고,
상기 상대 거리 및 방향에 기초하여, 상기 주행 불능 상황을 회피하기 위한 주행 경로를 결정하는, 전자 장치.
- 제1 항에 있어서,
상기 프로세서는,
미리 설정된 사용자 제스쳐가 포함된 영상이 획득됨에 따라, 상기 주행 불능 상황이 발생한 것으로 판단하는, 전자 장치.
- 제1항에 있어서,
상기 컨텍스트 데이터를 상기 학습된 하나 이상의 데이터 인식 모델에 적용하여, 상기 서버에게 상기 전자 장치의 주행 불능 상황을 추정할 것을 요청하고,
상기 서버에 의해 추정된 주행 불능 상황에 관한 정보를 수신하고,
상기 수신된 주행 불능 상황에 관한 정보에 기초하여, 상기 추정된 주행 불능 상황을 회피하도록 제어하는, 전자 장치.
- 전자 장치의 동작 방법에 있어서,
상기 전자 장치가 주행하는 중에, 주변 영상을 촬영하는 단계;
상기 전자 장치가 주행하는 중에 주행 불능 상황이 발생함에 따라, 상기 주행 불능 상황이 발생한 시점으로부터 미리 정해진 시간 범위 내에 촬영된 주변 영상을 포함하는 컨텍스트 데이터를 생성하는 단계;
상기 발생된 주행 불능 상황에 대응하는 상기 생성된 컨텍스트 데이터를 저장하는 단계;
상기 생성된 컨텍스트 데이터를 서버에 제공하는 단계;
상기 서버로부터, 상기 컨텍스트 데이터를 학습데이터로 이용하여 상기 주행 불능 상황의 기준이 학습된 하나 이상의 데이터 인식 모델을 수신하는 단계;
상기 하나 이상의 데이터 인식 모델을 이용하여, 상기 전자 장치가 주행하는 중에 획득한 주변 영상과 위치 정보를, 저장부에 저장된 상기 컨텍스트 데이터와 매칭되는지 판단하는 단계;
상기 하나 이상의 데이터 인식 모델을 이용하여, 상기 컨텍스트 데이터에 매칭됨에 따라, 상기 매칭되는 컨텍스트 데이터에 대응하는 주행 불능 상황이 발생할 것으로 추정하는 단계; 및
상기 하나 이상의 데이터 인식 모델을 이용하여, 상기 추정된 주행 불능 상황을 회피하도록 제어하는 단계를 포함하는, 방법.
- 제10 항에 있어서,
상기 하나 이상의 데이터 인식 모델을 이용하여, 상기 주변 영상을 포함하는 컨텍스트 데이터를 기초로, 상기 컨텍스트 데이터에 대응하는 주행 불능 상황이 발생한 지점을, 다른 방향에서 접근할 때 획득될 것으로 추정되는 가상 영상을 생성하는 단계; 및
상기 생성된 가상 영상을 더 포함하는 상기 컨텍스트 데이터를 저장하는 단계를 포함하는, 방법.
- 제10 항에 있어서,
상기 전자 장치가 주행하는 중에, 상기 전자 장치의 위치를 나타내는 위치 정보를 획득하는 단계; 및
상기 전자 장치가 주행하는 중에 주행 불능 상황이 발생함에 따라, 상기 주행 불능 상황이 발생한 지점에 대응하는 위치 정보를 더 포함하는 상기 컨텍스트 데이터를 저장하는 단계를 포함하는, 방법.
- 제10 항에 있어서,
상기 하나 이상의 데이터 인식 모델을 이용하여, 상기 주변 영상을 포함하는 상기 컨텍스트 데이터에 기초하여, 상기 주행 불능 상황이 발생한 지점으로 도달하게 된 진입 지점에 대응하는 영상 프레임 및 위치 정보를 포함하는 진입 지점 정보를 결정하는 단계; 및
상기 진입 지점 정보를 더 포함하는 상기 컨텍스트 데이터를 저장하는 단계를 포함하는, 방법.
- 제10 항에 있어서,
상기 주행 불능 상황이 발생할 것으로 추정됨에 따라, 상기 하나 이상의 데이터 인식 모델을 이용하여, 상기 매칭되는 컨텍스트 데이터에 포함된 상기 주행 불능 상황이 발생한 지점의 위치 정보에 기초하여, 상기 전자 장치의 현재 위치 정보와의 상대 거리 및 방향을 결정하는 단계; 및
상기 상대 거리 및 방향에 기초하여, 상기 주행 불능 상황을 회피하기 위한 주행 경로를 결정하는 단계를 포함하는, 방법.
- 제10항에 있어서,
상기 추정된 주행 불능 상황을 회피하도록 제어하는 단계는,
상기 컨텍스트 데이터를 상기 학습된 하나 이상의 데이터 인식 모델에 적용하여, 상기 서버에게 상기 전자 장치의 주행 불능 상황을 추정할 것을 요청하고,
상기 서버에 의해 추정된 주행 불능 상황에 관한 정보를 수신하고,
상기 수신된 주행 불능 상황에 관한 정보에 기초하여, 상기 추정된 주행 불능 상황을 회피하도록 제어하는 단계를 포함하는, 방법.
- 제 10 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220121079A KR102623574B1 (ko) | 2017-08-08 | 2022-09-23 | 전자 장치 및 그 동작 방법 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170100435A KR102448287B1 (ko) | 2017-08-08 | 2017-08-08 | 전자 장치 및 그 동작 방법 |
KR1020220121079A KR102623574B1 (ko) | 2017-08-08 | 2022-09-23 | 전자 장치 및 그 동작 방법 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170100435A Division KR102448287B1 (ko) | 2017-08-08 | 2017-08-08 | 전자 장치 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220136312A KR20220136312A (ko) | 2022-10-07 |
KR102623574B1 true KR102623574B1 (ko) | 2024-01-11 |
Family
ID=65271490
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170100435A KR102448287B1 (ko) | 2017-08-08 | 2017-08-08 | 전자 장치 및 그 동작 방법 |
KR1020220121079A KR102623574B1 (ko) | 2017-08-08 | 2022-09-23 | 전자 장치 및 그 동작 방법 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170100435A KR102448287B1 (ko) | 2017-08-08 | 2017-08-08 | 전자 장치 및 그 동작 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11592825B2 (ko) |
EP (1) | EP3605409B1 (ko) |
KR (2) | KR102448287B1 (ko) |
CN (1) | CN110998614B (ko) |
WO (1) | WO2019031825A1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102448287B1 (ko) * | 2017-08-08 | 2022-09-28 | 삼성전자주식회사 | 전자 장치 및 그 동작 방법 |
WO2020180051A1 (en) * | 2019-03-07 | 2020-09-10 | Samsung Electronics Co., Ltd. | Electronic apparatus and control method thereof |
CN111860851A (zh) * | 2019-04-30 | 2020-10-30 | 百度时代网络技术(北京)有限公司 | 用于识别图像的方法和系统 |
IT201900012777A1 (it) * | 2019-07-24 | 2021-01-24 | Thales Alenia Space Italia Spa Con Unico Socio | Odometria a flusso ottico basata sulla tecnologia dei sensori dei mouse ottici |
CN110490126B (zh) * | 2019-08-15 | 2023-04-18 | 成都睿晓科技有限公司 | 一种基于人工智能的保险柜安全管控系统 |
KR102287460B1 (ko) * | 2019-08-16 | 2021-08-10 | 엘지전자 주식회사 | 인공지능 무빙 에이전트 |
KR20190105214A (ko) | 2019-08-23 | 2019-09-16 | 엘지전자 주식회사 | 인공 지능을 통해 구속 상황을 회피하는 로봇 청소기 및 그의 동작 방법 |
KR20190106874A (ko) * | 2019-08-27 | 2019-09-18 | 엘지전자 주식회사 | 인공 지능을 통해 구속 상황을 인식하는 로봇 청소기 및 그의 동작 방법 |
KR20210047431A (ko) * | 2019-10-21 | 2021-04-30 | 엘지전자 주식회사 | 구속 위험 영역 정보를 공유하는 인공 지능 장치 및 그 방법 |
US11656628B2 (en) * | 2020-09-15 | 2023-05-23 | Irobot Corporation | Learned escape behaviors of a mobile robot |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090057881A (ko) * | 2007-12-03 | 2009-06-08 | 한국전자통신연구원 | 인간지각을 이용한 네트워크 로봇 및 제어 방법 |
US8744665B2 (en) * | 2009-07-28 | 2014-06-03 | Yujin Robot Co., Ltd. | Control method for localization and navigation of mobile robot and mobile robot using the same |
KR101782057B1 (ko) * | 2010-05-03 | 2017-09-26 | 삼성전자주식회사 | 지도 생성 장치 및 방법 |
KR101366860B1 (ko) * | 2011-09-20 | 2014-02-21 | 엘지전자 주식회사 | 이동 로봇 및 이의 제어 방법 |
JP6132659B2 (ja) * | 2013-02-27 | 2017-05-24 | シャープ株式会社 | 周囲環境認識装置、それを用いた自律移動システムおよび周囲環境認識方法 |
US9008840B1 (en) | 2013-04-19 | 2015-04-14 | Brain Corporation | Apparatus and methods for reinforcement-guided supervised learning |
KR102071575B1 (ko) | 2013-04-23 | 2020-01-30 | 삼성전자 주식회사 | 이동로봇, 사용자단말장치 및 그들의 제어방법 |
ES2613138T3 (es) * | 2013-08-23 | 2017-05-22 | Lg Electronics Inc. | Robot limpiador y método para controlar el mismo |
KR102280210B1 (ko) | 2013-12-04 | 2021-07-22 | 삼성전자주식회사 | 청소 로봇 및 그 제어 방법 |
US9480380B2 (en) | 2013-12-04 | 2016-11-01 | Samsung Electronics Co., Ltd. | Cleaning robot and control method thereof |
JP6648411B2 (ja) * | 2014-05-19 | 2020-02-14 | 株式会社リコー | 処理装置、処理システム、処理プログラム及び処理方法 |
WO2016028021A1 (ko) | 2014-08-20 | 2016-02-25 | 삼성전자주식회사 | 청소 로봇 및 그 제어 방법 |
KR102527645B1 (ko) | 2014-08-20 | 2023-05-03 | 삼성전자주식회사 | 청소 로봇 및 그 제어 방법 |
US9704043B2 (en) | 2014-12-16 | 2017-07-11 | Irobot Corporation | Systems and methods for capturing images and annotating the captured images with information |
WO2016123421A1 (en) | 2015-01-31 | 2016-08-04 | Mini-Mole Llc | Automatic floor cleaning robot |
KR102023966B1 (ko) | 2015-02-10 | 2019-09-23 | 에브리봇 주식회사 | 로봇 청소기 및 그의 제어 방법 |
US9953648B2 (en) | 2015-05-11 | 2018-04-24 | Samsung Electronics Co., Ltd. | Electronic device and method for controlling the same |
KR102411619B1 (ko) | 2015-05-11 | 2022-06-21 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
JP6630515B2 (ja) * | 2015-08-25 | 2020-01-15 | 株式会社トプコン | 位置誘導装置、位置誘導方法、プログラム |
DE102015119501A1 (de) * | 2015-11-11 | 2017-05-11 | RobArt GmbH | Unterteilung von Karten für die Roboternavigation |
CN105511478B (zh) | 2016-02-23 | 2019-11-26 | 百度在线网络技术(北京)有限公司 | 应用于扫地机器人的控制方法、扫地机器人及终端 |
US11327475B2 (en) * | 2016-05-09 | 2022-05-10 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for intelligent collection and analysis of vehicle data |
CN207979622U (zh) * | 2016-05-17 | 2018-10-19 | Lg电子株式会社 | 机器人吸尘器 |
KR102448287B1 (ko) * | 2017-08-08 | 2022-09-28 | 삼성전자주식회사 | 전자 장치 및 그 동작 방법 |
KR20190105214A (ko) * | 2019-08-23 | 2019-09-16 | 엘지전자 주식회사 | 인공 지능을 통해 구속 상황을 회피하는 로봇 청소기 및 그의 동작 방법 |
-
2017
- 2017-08-08 KR KR1020170100435A patent/KR102448287B1/ko active IP Right Grant
-
2018
- 2018-08-07 US US16/615,557 patent/US11592825B2/en active Active
- 2018-08-07 EP EP18844791.6A patent/EP3605409B1/en active Active
- 2018-08-07 CN CN201880051420.9A patent/CN110998614B/zh active Active
- 2018-08-07 WO PCT/KR2018/008988 patent/WO2019031825A1/ko unknown
-
2022
- 2022-09-23 KR KR1020220121079A patent/KR102623574B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
EP3605409B1 (en) | 2021-10-20 |
WO2019031825A1 (ko) | 2019-02-14 |
US20200174489A1 (en) | 2020-06-04 |
CN110998614B (zh) | 2024-03-01 |
CN110998614A (zh) | 2020-04-10 |
US11592825B2 (en) | 2023-02-28 |
EP3605409A1 (en) | 2020-02-05 |
KR20220136312A (ko) | 2022-10-07 |
KR20190016333A (ko) | 2019-02-18 |
EP3605409A4 (en) | 2020-03-04 |
KR102448287B1 (ko) | 2022-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102623574B1 (ko) | 전자 장치 및 그 동작 방법 | |
KR102255273B1 (ko) | 청소 공간의 지도 데이터를 생성하는 장치 및 방법 | |
KR102458664B1 (ko) | 차량의 주행을 보조하는 전자 장치 및 방법 | |
KR102491546B1 (ko) | 객체를 인식하는 방법 및 장치 | |
KR20200131664A (ko) | 차량의 주행을 보조하는 전자 장치 및 방법 | |
KR102519064B1 (ko) | 사용자에게 서비스를 제공하는 이동형 로봇 장치 및 방법 | |
KR102480416B1 (ko) | 차선 정보를 추정하는 방법 및 전자 장치 | |
KR20190078543A (ko) | 이미지 획득 장치 및 그의 제어 방법 | |
KR20210072362A (ko) | 인공 지능 모델에 대한 학습 데이터를 생성하는 인공 지능 장치 및 그 방법 | |
KR102452636B1 (ko) | 차량의 주행을 보조하는 장치 및 방법 | |
US20210107488A1 (en) | Electronic device and operating method thereof | |
KR20190135394A (ko) | 청소 동작을 실행하는 청소 장치 및 청소 방법 | |
KR20190096752A (ko) | 컨텐츠에 대한 텍스트 코멘트를 생성하는 방법 및 전자 장치 | |
KR20210022941A (ko) | Slam을 구현하는 방법 및 전자 장치 | |
KR102464906B1 (ko) | 패션 상품을 추천하는 전자 장치, 서버 및 그 동작 방법 | |
KR102697346B1 (ko) | 영상에서 오브젝트를 인식하는 전자 장치 및 그 동작 방법 | |
US20210389767A1 (en) | Information processing apparatus, information processing method, and program | |
KR20200145356A (ko) | 차량 탑승자를 위한 컨텐츠 제공 방법 및 장치 | |
KR102327441B1 (ko) | 인공지능 장치 | |
KR102314385B1 (ko) | 로봇 및 그의 제어 방법 | |
KR20210066602A (ko) | 인공 지능 청소기 및 그의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |