KR20230152867A - 스스로 학습이 가능한 인공지능 자율 주행 로봇 및 이의 학습 방법 - Google Patents
스스로 학습이 가능한 인공지능 자율 주행 로봇 및 이의 학습 방법 Download PDFInfo
- Publication number
- KR20230152867A KR20230152867A KR1020220051931A KR20220051931A KR20230152867A KR 20230152867 A KR20230152867 A KR 20230152867A KR 1020220051931 A KR1020220051931 A KR 1020220051931A KR 20220051931 A KR20220051931 A KR 20220051931A KR 20230152867 A KR20230152867 A KR 20230152867A
- Authority
- KR
- South Korea
- Prior art keywords
- neural network
- processor
- node
- learning
- self
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 24
- 238000013473 artificial intelligence Methods 0.000 title description 7
- 238000013528 artificial neural network Methods 0.000 claims abstract description 137
- 238000012549 training Methods 0.000 claims description 7
- 230000006399 behavior Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000035582 behavioral recognition Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/008—Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
-
- 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/045—Combinations of networks
-
- 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
- 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/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Automation & Control Theory (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Fuzzy Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Manipulator (AREA)
Abstract
자율 주행 로봇이 개시된다. 상기 자율 주행 로봇은 객체가 포함된 이미지를 생성하는 카메라, 신경망의 학습을 위한 명령들을 실행하는 프로세서, 및 상기 명령들을 저장하는 메모리를 포함한다. 상기 명령들은 상기 카메라로부터 상기 객체가 포함된 상기 이미지를 수신하며, 상기 이미지를 제1신경망에 적용하여 상기 객체가 등록된 객체인지 결정하며, 상기 객체가 상기 등록된 객체가 아니라고 결정할 때, 상기 제1신경망의 출력 레이어에 하나의 노드를 더 추가하고, 상기 추가된 하나의 노드를 상기 제1신경망에 포함된 노드들과 연결하여 제2신경망을 생성하고 상기 제2신경망을 학습시키도록 구현된다.
Description
본 발명은 스스로 학습이 가능한 인공지능 자율 주행 로봇 및 이의 학습 방법에 관한 것으로, 상세하게는 자율 주행 로봇이 새로운 객체, 또는 객체의 새로운 행동을 인식할 때, 새로운 객체, 또는 객체의 새로운 행동을 식별하기 위한 신경망을 효율적으로 학습하기 위한 방법에 관한 것이다.
인공지능 기술, 클라우드 컴퓨팅 기술, 및 빅데이터 기술 등의 발전으로 다양한 분야에서 로봇이 활용되고 있다. 예컨대, 물류, 배송, 서빙, 감시, 및 순찰 등 다양한 목적으로 로봇이 활용되고 있다.
자율 주행 로봇은 스스로 이동하여 장애물이나 객체를 탐지하는 기능 등을 수행할 수 있는 로봇을 의미한다. 자율 주행 로봇은 장애물을 탐지하여 장애물을 회피하거나, 객체를 탐지하여 객체에게 필요한 서비스를 제공할 수 있다. 최근에 인공지능 기술의 발전으로 얼굴 인식, 행동 인식 등이 가능하다. 자율 주행 로봇은 얼굴 인식, 또는 행동 인식을 통해 노약자 보호, 시설 감시, 또는 위급상황 탐지 등을 수행할 수 있다.
자율 주행 로봇이 물류, 배송, 서빙, 노약자 보호, 시설 감시, 또는 위급상황 탐지 등과 같이 다양한 업무를 수행하기 위해서는 객체와 객체의 행동이 미리 인식되어야한다. 객체와 객체의 행동은 인공 신경망의 학습을 통해 인식될 수 있다. 새로운 객체, 또는 객체의 새로운 행동이 추가되여야할 때, 종래기술은 신경망을 다시 학습하여야만했다. 하지만, 자율 주행 로봇이 특정 동작을 수행하는 도중에 신경망을 다시 학습하는 것은 용이하지 않다. 이러한 문제점을 해결하기 위한 새로운 신경망 학습 방법이 요구된다.
본 발명이 이루고자 하는 기술적인 과제는 새로운 객체, 또는 객체의 새로운 행동의 인식을 위해 신경망을 효율적으로 학습하기 위한 스스로 학습이 가능한 인공지능 자율 주행 로봇 및 이의 학습 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 자율 주행 로봇은 객체가 포함된 이미지를 생성하는 카메라, 신경망의 학습을 위한 명령들을 실행하는 프로세서, 및 상기 명령들을 저장하는 메모리를 포함한다.
상기 명령들은 상기 카메라로부터 상기 객체가 포함된 상기 이미지를 수신하며, 상기 이미지를 제1신경망에 적용하여 상기 객체가 등록된 객체인지 결정하며, 상기 객체가 상기 등록된 객체가 아니라고 결정할 때, 상기 제1신경망의 출력 레이어에 하나의 노드를 더 추가하고, 상기 추가된 하나의 노드를 상기 제1신경망에 포함된 노드들과 연결하여 제2신경망을 생성하고 상기 제2신경망을 학습시키도록 구현된다.
상기 신경망을 학습시키는 명령들은 상기 이미지를 상기 제1신경망에 적용하여 가장 큰 출력 값을 가지는 출력 노드를 찾고, 상기 제2신경망에서 상기 가장 큰 출력 값을 가지는 출력 노드와 연결된 가중치들의 값들을 상기 추가된 하나의 노드와 연결된 가중치들의 초기 값들로 설정하며, 상기 제2신경망을 학습시키도록 구현된다.
본 발명의 실시 예에 따른 자율 주행 로봇의 학습 방법은 프로세서는 카메라로부터 객체가 포함된 이미지를 수신하는 단계, 상기 프로세서는 상기 이미지를 제1신경망에 적용하여 상기 객체가 등록된 객체인지 결정하는 단계, 및 상기 프로세서는 상기 객체가 상기 등록된 객체가 아니라고 결정할 때, 상기 프로세서는 상기 제1신경망의 출력 레이어에 하나의 노드를 더 추가하고, 상기 추가된 하나의 노드를 상기 제1신경망에 포함된 노드들과 연결하여 제2신경망을 생성하고, 상기 제2신경망을 학습시키는 단계를 포함한다.
상기 신경망을 학습시키는 단계는 상기 프로세서는 상기 이미지를 상기 제1신경망에 적용하여 가장 큰 출력 값을 갖는 출력 노드를 찾는 단계, 상기 프로세서는 상기 제2신경망에서 상기 가장 큰 출력 값을 갖는 출력 노드와 연결된 가중치들의 값들을 상기 추가된 하나의 노드와 연결된 가중치들의 초기 값들로 설정하는 단계, 및 상기 프로세서는 상기 제2신경망을 학습시키는 단계를 포함한다.
상기 신경망을 학습하는 단계는 상기 프로세서는 상기 제2신경망에서 추가된 하나의 노드를 제외한 나머지 노드들과 연결된 가중치들을 변경하지 않은 단계를 더 포함한다.
실시 예에 따라 상기 자율 주행 로봇의 학습 방법은 상기 프로세서는 상기 제2신경망의 학습 단계에서 상기 추가된 하나의 노드에서 출력 값과 참 값의 제1오차가 문턱값 이하인지 판단하는 단계, 및 상기 제1오차가 상기 문턱값 이하가 아닐 때, 상기 프로세서는 상기 제2신경망에서 출력 레이어와 연결된 제1히든 레이어에서 다른 하나의 노드를 더 추가하는 단계를 더 포함한다.
실시 예에 따라 상기 자율 주행 로봇의 학습 방법은 상기 프로세서는 상기 다른 하나의 노드를 더 추가한 후 상기 제2신경망의 학습 단계에서 상기 추가된 하나의 노드에서 출력 값과 참 값의 제2오차가 문턱값 이하인지 판단하는 단계, 및 상기 제2오차가 상기 문턱값 이하가 아닐 때, 상기 프로세서는 제1히든 레이어와 연결된 제2히든 레이어에서 또 다른 하나의 노드를 더 추가하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 스스로 학습이 가능한 인공지능 자율 주행 로봇 및 이의 학습 방법은 새로운 객체, 또는 객체의 새로운 행동을 인식하기 위해 기존의 가중치들을 최대한 활용함으로써 효율적으로 신경망을 학습시킬 수 있다는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 자율 주행 로봇의 블록도를 나타낸다.
도 2는 도 1에서 도시된 프로세서에 의해 수행되는 CNN(Convolution Neural Network)의 다이어그램을 나타낸다.
도 3 내지 6은 도 1에 도시된 프로세서의 동작을 설명하기 위해 수정된 CNN 의 다이어그램을 나타낸다.
도 7은 본 발명의 실시 예에 따른 자율 주행 로봇의 객체 인식 방법의 흐름도를 나타낸다.
도 8은 본 발명의 실시 예에 따른 자율 주행 로봇이 객체를 인식하지 못할 때, 새로운 객체를 신경망에서 학습하기 위한 방법의 흐름도를 나타낸다.
도 1은 본 발명의 실시 예에 따른 자율 주행 로봇의 블록도를 나타낸다.
도 2는 도 1에서 도시된 프로세서에 의해 수행되는 CNN(Convolution Neural Network)의 다이어그램을 나타낸다.
도 3 내지 6은 도 1에 도시된 프로세서의 동작을 설명하기 위해 수정된 CNN 의 다이어그램을 나타낸다.
도 7은 본 발명의 실시 예에 따른 자율 주행 로봇의 객체 인식 방법의 흐름도를 나타낸다.
도 8은 본 발명의 실시 예에 따른 자율 주행 로봇이 객체를 인식하지 못할 때, 새로운 객체를 신경망에서 학습하기 위한 방법의 흐름도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않은 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다." 또는 "가지다." 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 자율 주행 로봇의 블록도를 나타낸다.
도 1을 참고하면, 자율 주행 로봇(10)은 물류, 배송, 서빙, 노약자 보호, 시설 감시, 또는 위급상황 탐지 등과 같이 다양한 업무를 수행하기 위해 공장, 집, 회사, 음식점, 또는 시설 등 다양한 장소에서 이용될 수 있다. 자율 주행 로봇(10)은 이동 로봇, 인공 지능 자율 주행 로봇 등 다양한 용어로 호칭될 수 있다. 자율 주행 로봇(10)은 프로세서(11), 메모리(13), 카메라(15), 및 거리 센서(17, 19)를 포함할 수 있다.
프로세서(11)는 객체(21, 23, 25, 31, 또는 35)를 감지하고, 이를 인식할 수 있는 명령들을 실행한다.
자율 주행 로봇(10)이 이동하면서 카메라(15)는 객체(21, 23, 25, 31, 또는 35)를 촬영하여 객체(21, 23, 25, 31, 또는 35)가 포함된 이미지들을 생성한다. 객체(21, 23, 25, 31, 또는 35)란 사람, 또는 테이블, 의자 등과 같은 물건을 의미한다.
거리 센서(17, 19)는 자율 주행 로봇(10)과 객체(21, 23, 25, 31, 또는 35) 사이의 거리가 포함된 이미지를 생성할 수 있다. 거리 센서(17, 19)는 라이다 센서일 수 있다.
프로세서(11)는 카메라(15)로부터 객체(21, 23, 25, 31, 또는 35)가 포함된 상기 이미지를 수신한다. 프로세서(11)는 상기 이미지를 신경망에 적용하여 객체(21, 23, 25, 31, 또는 35)를 인식한다. 프로세서(11)가 객체(21, 23, 25, 31, 또는 35)를 인식하기 위해서는 미리 신경망을 통해 객체(21, 23, 25, 31, 또는 35)가 학습되어야한다. 객체(21, 23, 25, 31, 또는 35)가 신경망을 통해 미리 학습되지 않을 때, 프로세서(11)는 객체(21)가 누구인지 인식할 수 없다. 상기 신경망은 CNN(onvolution Neural Network)일 수 있다.
도 2는 도 1에서 도시된 프로세서에 의해 수행되는 CNN(Convolution Neural Network)의 다이어그램을 나타낸다.
도 1과 도 2를 참고하면, CNN은 이미지(IMG)에서 객체의 특징들을 추출하는 레이어들(240)과 추출된 특징들을 분류하는 레이어들(250)로 나눌 수 있다. 특징들을 추출하는 레이어들(240)은 컨볼루션(convolution) 레이어들(241)과 풀링(pooling) 레이어들(243)을 포함한다.
추출된 특징들을 분류하는 레이어들(240)은 입력 레이어(260), 히든 레이어들(270, 280), 및 출력 레이어(290)을 포함한다. 입력 레이어(260), 히든 레이어들(270, 280), 및 출력 레이어(290)은 풀리 커넥티드(fully connected)된다. 히든 레이어들(270, 280)의 수는 실시 예에 따라 다양할 수 있다. 입력 레이어(260), 히든 레이어들(270, 280), 및 출력 레이어(290)은 복수의 노드들을 포함한다. 실시 예에 따라 노드들의 수는 다양할 수 있다.
프로세서(11)는 카메라(15)로부터 객체(21, 23, 25, 또는 35)가 포함된 이미지(IMG)를 수신한다.
프로세서(11)는 이미지(IMG)를 제1신경망(200)에 적용하여 객체(21, 23, 25, 31, 또는 35)가 등록된 객체인지 결정한다. 상기 등록된 객체란 객체를 이용하여 제1신경망(200)이 학습된 객체를 의미한다. 예컨대, 테이블(25)이 제1신경망(200)을 통해 학습된 객체, 즉, 등록된 객체일 때, 프로세서(11)는 테이블(25)이 포함된 이미지(IMG)를 제1신경망(200)에 적용하여 테이블(25)을 등록된 객체로 결정할 수 있다. 프로세서(11)가 등록된 객체인지 결정은 제1신경망(200)에서 추론 단계에서 수행된다. 상기 추론 단계는 자율 주행 로봇(10)의 주행 중에 수행된다. 즉, 프로세서(11)가 등록된 객체인지 결정은 자율 주행 로봇(10)의 주행 중에 수행된다.
상기 추론 단계는 제1신경망(200)의 학습 단계가 종료된 단계를 의미한다. 제1신경망(200)의 학습 단계가 종료된 후, 이미지(IMG)를 제1신경망(100)에 적용하면 프로세서(11)는 이미지(IMG)에 포함된 객체(예컨대, 21, 23, 또는 25)를 인식할 수 있다. 프로세서(11)는 이미지(IMG)를 제1신경망(200)에 적용하여 사람(21, 또는 23)을 인식하거나, 테이블(25)을 인식할 수 있다.
실시 예에 따라 프로세서(11)는 이미지(IMG)를 제1신경망(200)에 적용하여 객체(23)의 행동이 등록된 객체의 행동(33)인지 결정할 수 있다. 즉, 프로세서(11)는 객체의 행동(33)에 대해서도 제1신경망(200)을 통해 학습시킬 수 있다.
프로세서(11)는 출력 노드들(291, 293, 295)의 값들을 분석하여 객체(21, 23, 25, 31, 또는 35)가 등록된 객체인지 결정할 수 있다. 이미지(IMG)를 제1신경망(200)에 적용하여 객체(21, 23, 25, 또는 35)가 등록된 객체일 때, 출력 노드들(291, 293, 295)의 값들 중 임의의 값(예컨대, 0.6) 이상을 가지는 출력 노드의 값이 존재한다. 예컨대, 이미지(IMG)를 제1신경망(200)에 적용하여 객체(21, 23, 25, 또는 35)가 등록된 객체일 때, 출력 노드들(291, 293, 293)의 값들은 0.1, 0.7, 0.2 일 수 있다. 출력 노드들(291, 293, 293)의 값들이 0.1, 0.7, 0.2 일 때, 프로세서(11)는 객체(21, 23, 25, 또는 35)를 등록된 객체로 결정한다.
이미지(IMG)를 제1신경망(200)에 적용하여 객체(예컨대, 31)가 등록된 객체가 아닐 때, 출력 노드들(291, 293, 295)의 값들 중 임의의 값(예컨대, 0.6) 이상을 가지는 출력 노드의 값이 존재하지 않는다. 예컨대, 이미지(IMG)를 제1신경망(200)에 적용하여 객체(예컨대, 31)가 등록된 객체가 아닐 때, 출력 노드들(291, 293, 293)의 값들은 0.1, 0.44. 0.46 일 수 있다. 출력 노드들(291, 293, 293)의 값들이 0.1, 0.44. 0.46 일 때, 프로세서(11)는 객체(31)를 등록된 객체가 아니라고 결정한다. 즉, 프로세서(11)는 다른 사람(31)을 인식할 수 없다. 왜냐하면 제1신경망(200)에서 다른 사람(31)이 학습되지 않았기 때문이다.
도 2에서는 CNN에 대해 도시되었으나, 본 발명은 CNN 이외에 Alexnet, GoogLeNet, 또는 ResNet 등 다양한 신경망 알고리즘이 적용될 수 있다.
도 3 내지 6은 도 1에 도시된 프로세서의 동작을 설명하기 위해 수정된 CNN 의 다이어그램을 나타낸다.
도 1 내지 도 3을 참고하면, 프로세서(11)는 상기 객체(예컨대, 31)가 상기 등록된 객체가 아니라고 결정할 때, 프로세서(11)는 제1신경망(200)의 출력 레이어(290)에 하나의 노드(297)를 더 추가하고, 상기 추가된 하나의 노드(297)를 제1신경망(200)에 포함된 노드들(281, 283, 285, 및 287)과 연결하여 제2신경망(201)을 생성하고 제2신경망(201)을 학습시킨다. 노드(297)는 출력 노드이다.
제2신경망(201)을 학습시키는 구체적인 동작들은 다음과 같다.
먼저, 프로세서(11)는 이미지(IMG)를 제1신경망(200)에 적용하여 가장 큰 출력 값을 가지는 출력 노드(예컨대, 293)를 찾는다.
제2신경망(201)에서 상기 가장 큰 출력 값을 가지는 출력 노드(예컨대, 293)와 연결된 가중치들(w1, w2, w3, 및 w4)의 값들을 상기 추가된 하나의 노드(예컨대, 297)와 연결된 가중치들의 초기 값들로 설정한다.
상기 가장 큰 출력 값을 가지는 출력 노드(예컨대, 293)의 값은 히든 레이어(280)에 포함된 노드들(281, 283, 285, 및 287)의 값들과 가중치들(w1, w2, w3, 및 w4)을 곱한 값이다. 유사하게, 추가된 하나의 노드(예컨대, 297)의 값은 히든 레이어(280)에 포함된 노드들(281, 283, 285, 및 287)의 값들과 가중치들(w1, w2, w3, 및 w4)을 곱한 값이다. 왜냐하면, 상기 추가된 하나의 노드(예컨대, 297)와 연결된 가중치들의 초기 값들은 출력 노드(예컨대, 293)와 연결된 가중치들(w1, w2, w3, 및 w4)의 값들로 설정되었기 때문이다.
프로세서(11)는 제2신경망(201)에서 추가된 하나의 노드(예컨대, 297)를 제외한 나머지 노드들과 연결된 가중치들을 변경하지 않는다. 즉, 새로운 노드(297)가 추가되더라도 제2신경망(201)에서 제1신경망(200)의 가중치들을 최대한 그대로 이용함으로써 제2신경망(201)의 학습 시간이 최소화될 수 있다. 왜냐하면, 프로세서(11)는 새로운 노드(297)가 추가되더라도 제2신경망(201)에서 모든 가중치들을 새롭게 초기화하는 것이 아니기 때문이다.
프로세서(11)는 추가된 하나의 노드(예컨대, 297)와 연결된 가중치들의 초기 값들을 설정한 후, 제2신경망(201)을 학습시킨다.
프로세서(11)는 제2신경망(201)의 학습 단계에서 추가된 하나의 노드(297)에서 출력 값(예컨대, 0.4)과 참 값(Ground Truth, 예컨대, 1)의 제1오차(예컨대, 0.6)가 문턱값(예컨대, 0.3) 이하인지 판단한다.
프로세서(11)는 제2신경망(201)을 임의의 횟수 동안 반복적으로 학습시킬 수 있다. 상기 임의의 횟수 동안 반복적으로 학습한 결과, 상기 제1오차가 상기 문턱값 이하가 되지 않을 수 있다.
출력 레이어(290)에 포함된 출력 노드들의 개수가 많을 때, 출력 레이어(290)에 하나의 출력 노드(297)를 추가하는 것만으로는 효율적으로 제2신경망(201)이 훈련될 수 없다. 따라서 본 발명에서는 히든 레이어(270, 또는 280)에서도 노드를 추가하는 방법이 제안된다.
도 1과 도 4를 참고하면, 상기 제1오차가 상기 문턱값 이하가 아닐 때, 프로세서(11)는 제2신경망(203)에서 출력 레이어(290)와 연결된 제1히든 레이어(280)에서 다른 하나의 노드(예컨대, 288)를 더 추가할 수 있다. 제2신경망(201)에서 제2히든 레이어(270)에 포함된 복수의 노드들 중 상기 가장 큰 출력 값을 가지는 노드와 연결된 가중치들의 값들을 상기 추가된 다른 하나의 노드(예컨대, 288)와 연결된 가중치들의 초기 값들로 설정한다.
도 4에서 제2신경망(203)은 도 3에 도시된 제2신경망(201)에서 다른 하나의 노드(예컨대, 288)가 더 추가된 신경망을 의미한다.
프로세서(11)는 상기 다른 하나의 노드(예컨대, 288)를 더 추가한 후 제2신경망(203)의 학습 단계에서 상기 추가된 하나의 노드(예컨대, 297)에서 출력 값과 참 값의 제2오차가 문턱값 이하인지 판단한다.
프로세서(11)는 제2신경망(203)을 임의의 횟수 동안 반복적으로 학습시킬 수 있다. 상기 임의의 횟수 동안 반복적으로 학습한 결과, 상기 제2오차가 상기 문턱값 이하가 되지 않을 수 있다.
도 1과 도 5를 참고하면, 상기 제2오차가 상기 문턱값 이하가 아닐 때, 프로세서(11)는 제1히든 레이어(280)에서 또 다른 하나의 노드(예컨대, 289)를 더 추가할 수 있다. 도 5에서 제2신경망(205)은 도 4에 도시된 제2신경망(203)에서 또 다른 하나의 노드(예컨대, 289)가 더 추가된 신경망을 의미한다.
도 1과 도 6을 참고하면, 실시 예에 따라 상기 제2오차가 상기 문턱값 이하가 아닐 때, 프로세서(11)는 제1히든 레이어(280)와 연결된 제2히든 레이어(270)에서 또 다른 하나의 노드(289-1)를 더 추가할 수 있다. 도 6에서 제2신경망(207)은 도 4에 도시된 제2신경망(203)에서 또 다른 하나의 노드(예컨대, 289-1)가 더 추가된 신경망을 의미한다.
도 7은 본 발명의 실시 예에 따른 자율 주행 로봇의 객체 인식 방법의 흐름도를 나타낸다.
도 1 내지 도 7을 참고하면, 프로세서(11)의 제어 하에 자율 주행 로봇(10)이 이동한다(S10). 자율 주행 로봇(10)은 다양한 업무를 수행하기 이동한다.
프로세서(11)는 카메라(15)로부터 객체(21, 23, 25, 31, 또는 35)가 포함된 이미지(IMG)를 수신한다(S20).
프로세서(11)는 이미지(IMG)를 제1신경망(200)에 적용하여 객체(21, 23, 25, 31, 또는 35)가 등록된 객체인지 결정한다(S30).
객체(21, 23, 25, 또는 35)가 등록된 객체로 결정될 때, 프로세서(11)는 자율 주행 로봇(10)이 사전에 정의된 서비스를 수행하도록 자율 주행 로봇(10)을 제어한다(S40). 사전에 정의된 서비스란 자율 주행 로봇(10)이 인식된 객체(21, 23)를 위해 수행하는 행동을 의미한다. 예컨대, 인식된 객체(21)가 관리자일 때, 자율 주행 로봇(10)이 현재 상황을 관리자에게 보고하는 서비스를 제공할 수 있다. 또한, 인식된 객체(23)가 고객일 때, 자율 주행 로봇(10)은 고객에게 상품 정보를 알려주는 서비스를 제공할 수 있다.
객체(예컨대, 31)가 상기 등록된 객체가 아니라고 결정할 때, 프로세서(11)는 객체(31)를 새로운 객체로 등록할 것인지 여부를 결정한다(S50).
객체(예컨대, 31)를 새로운 객체로 등록하지 않을 것으로 결정될 때, 프로세서(11)는 자율 주행 로봇(10)이 사전에 정의된 서비스를 수행하도록 자율 주행 로봇(10)을 제어한다.
객체(예컨대, 31)가 상기 등록된 객체가 아니고, 객체(예컨대, 31)를 새로운 객체로 등록하지 않을 것으로 결정될 때, 프로세서(11)는 상기 제1신경망(200)의 출력 레이어(290)에 하나의 노드(297)를 더 추가하고, 상기 추가된 하나의 노드(297)를 상기 제1신경망(200)에 포함된 노드들(281, 283, 285, 및 287)과 연결하여 제2신경망(201)을 생성하고 상기 제2신경망(201)을 학습시킨다(S60).
실시 예에 따라 객체(예컨대, 31)가 상기 등록된 객체가 아니라고 결정될 때, 프로세서(11)는 제2신경망(201)을 생성하고 제2신경망을 학습시킬 수 있다.
도 8은 본 발명의 실시 예에 따른 자율 주행 로봇이 객체를 인식하지 못할 때, 새로운 객체를 신경망에서 학습하기 위한 방법의 흐름도를 나타낸다.
도 1 내지 도 8을 참고하면, 프로세서(11)는 제1신경망(200)의 출력 레이어(290)에 하나의 노드(297)를 더 추가한다(S100). 프로세서(11)는 상기 추가된 하나의 노드(297)를 제1신경망(200)에 포함된 노드들(281, 283, 285, 및 287)과 연결하여 제2신경망(201)을 생성한다.
프로세서(11)는 이미지(IMG)를 제1신경망(200)에 적용하여 가장 큰 출력 값을 가지는 출력 노드(예컨대, 293)를 찾는다(S110).
프로세서(11)는 제2신경망(201)에서 상기 가장 큰 출력 값을 가지는 출력 노드(예컨대, 293)와 연결된 가중치들(w1, w2, w3, 및 w4)의 값들을 상기 추가된 하나의 노드(예컨대, 297)와 연결된 가중치들의 초기 값들로 설정한다(S120).
프로세서(11)는 제2신경망(201)을 학습시킨다(S130).
프로세서(11)는 제2신경망(201)의 학습 단계에서 추가된 하나의 노드(297)에서 출력 값과 참 값의 제1오차가 문턱값 이하인지 판단한다(S140).
프로세서(11)는 제2신경망(201)의 학습 동작(S130)과, 제1오차가 문턱값 이하인지 판단하는 동작(S140)을 정해진 횟수만큼 반복적으로 수행하였는지 판단한다(S150). 프로세서(11)는 제2신경망(201)의 학습 동작(S130)과, 제1오차가 문턱값 이하인지 판단하는 동작(S140)을 정해진 횟수만큼 반복적으로 수행한다.
제2신경망(201)의 학습 동작(S130)과, 제1오차가 문턱값 이하인지 판단하는 동작(S140)을 정해진 횟수만큼 반복적으로 수행하였음에도 제1오차가 문턱값 이하가 되지 않을 때, 프로세서(11)는 제2신경망(201)을 수정하여 수정된 제2신경망(203, 205, 또는 207)을 학습시킨다(S160).
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 자율 주행 로봇;
11: 프로세서;
13: 메모리;
15: 카메라;
17, 19: 거리 센서;
21, 23, 25, 31,35: 객체;
11: 프로세서;
13: 메모리;
15: 카메라;
17, 19: 거리 센서;
21, 23, 25, 31,35: 객체;
Claims (7)
- 객체가 포함된 이미지를 생성하는 카메라;
신경망의 학습을 위한 명령들을 실행하는 프로세서; 및
상기 명령들을 저장하는 메모리를 포함하며,
상기 명령들은,
상기 카메라로부터 상기 객체가 포함된 상기 이미지를 수신하며,
상기 이미지를 제1신경망에 적용하여 상기 객체가 등록된 객체인지 결정하며,
상기 객체가 상기 등록된 객체가 아니라고 결정할 때, 상기 제1신경망의 출력 레이어에 하나의 노드를 더 추가하고, 상기 추가된 하나의 노드를 상기 제1신경망에 포함된 노드들과 연결하여 제2신경망을 생성하고 상기 제2신경망을 학습시키도록 구현되는 자율 주행 로봇. - 제1항에 있어서, 상기 신경망을 학습시키는 명령들은,
상기 이미지를 상기 제1신경망에 적용하여 가장 큰 출력 값을 가지는 출력 노드를 찾고,
상기 제2신경망에서 상기 가장 큰 출력 값을 가지는 출력 노드와 연결된 가중치들의 값들을 상기 추가된 하나의 노드와 연결된 가중치들의 초기 값들로 설정하며,
상기 제2신경망을 학습시키도록 구현된 자율 주행 로봇. - 프로세서는 카메라로부터 객체가 포함된 이미지를 수신하는 단계;
상기 프로세서는 상기 이미지를 제1신경망에 적용하여 상기 객체가 등록된 객체인지 결정하는 단계; 및
상기 프로세서는 상기 객체가 상기 등록된 객체가 아니라고 결정할 때, 상기 프로세서는 상기 제1신경망의 출력 레이어에 하나의 노드를 더 추가하고, 상기 추가된 하나의 노드를 상기 제1신경망에 포함된 노드들과 연결하여 제2신경망을 생성하고, 상기 제2신경망을 학습시키는 단계를 포함하는 자율 주행 로봇의 학습 방법. - 제3항에 있어서, 상기 신경망을 학습시키는 단계는,
상기 프로세서는 상기 이미지를 상기 제1신경망에 적용하여 가장 큰 출력 값을 갖는 출력 노드를 찾는 단계;
상기 프로세서는 상기 제2신경망에서 상기 가장 큰 출력 값을 갖는 출력 노드와 연결된 가중치들의 값들을 상기 추가된 하나의 노드와 연결된 가중치들의 초기 값들로 설정하는 단계; 및
상기 프로세서는 상기 제2신경망을 학습시키는 단계를 포함하는 자율 주행 로봇의 학습 방법. - 제4항에 있어서, 상기 신경망을 학습하는 단계는,
상기 프로세서는 상기 제2신경망에서 추가된 하나의 노드를 제외한 나머지 노드들과 연결된 가중치들을 변경하지 않은 단계를 더 포함하는 자율 주행 로봇의 학습 방법. - 제3항에 있어서, 상기 자율 주행 로봇의 학습 방법은,
상기 프로세서는 상기 제2신경망의 학습 단계에서 상기 추가된 하나의 노드에서 출력 값과 참 값의 제1오차가 문턱값 이하인지 판단하는 단계; 및
상기 제1오차가 상기 문턱값 이하가 아닐 때, 상기 프로세서는 상기 제2신경망에서 출력 레이어와 연결된 제1히든 레이어에서 다른 하나의 노드를 더 추가하는 단계를 더 포함하는 자율 주행 로봇의 학습 방법. - 제6항에 있어서, 상기 자율 주행 로봇의 학습 방법은,
상기 프로세서는 상기 다른 하나의 노드를 더 추가한 후 상기 제2신경망의 학습 단계에서 상기 추가된 하나의 노드에서 출력 값과 참 값의 제2오차가 문턱값 이하인지 판단하는 단계; 및
상기 제2오차가 상기 문턱값 이하가 아닐 때, 상기 프로세서는 제1히든 레이어와 연결된 제2히든 레이어에서 또 다른 하나의 노드를 더 추가하는 단계를 더 포함하는 자율 주행 로봇의 학습 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220051931A KR20230152867A (ko) | 2022-04-27 | 2022-04-27 | 스스로 학습이 가능한 인공지능 자율 주행 로봇 및 이의 학습 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220051931A KR20230152867A (ko) | 2022-04-27 | 2022-04-27 | 스스로 학습이 가능한 인공지능 자율 주행 로봇 및 이의 학습 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230152867A true KR20230152867A (ko) | 2023-11-06 |
Family
ID=88748521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220051931A KR20230152867A (ko) | 2022-04-27 | 2022-04-27 | 스스로 학습이 가능한 인공지능 자율 주행 로봇 및 이의 학습 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230152867A (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101536437B1 (ko) | 2013-11-15 | 2015-07-13 | 주식회사 포스코 | 무인감시로봇 시스템 |
-
2022
- 2022-04-27 KR KR1020220051931A patent/KR20230152867A/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101536437B1 (ko) | 2013-11-15 | 2015-07-13 | 주식회사 포스코 | 무인감시로봇 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3735625B1 (en) | Method and system for training the navigator of an object tracking robot | |
US10699195B2 (en) | Training of artificial neural networks using safe mutations based on output gradients | |
US20190251340A1 (en) | Method and system for activity classification | |
US20190378019A1 (en) | Systems and methods enabling online one-shot learning and generalization by intelligent systems of task-relevant features and transfer to a cohort of intelligent systems | |
KR101967645B1 (ko) | 퍼지로직과 딥러닝 통합 기반의 화재 감지 장치 및 방법 | |
KR102474246B1 (ko) | 복수 개의 전자 디바이스를 이용하여 신경망 모델을 처리하는 방법 및 시스템 | |
Boukezzoula et al. | Multi-sensor information fusion: Combination of fuzzy systems and evidence theory approaches in color recognition for the NAO humanoid robot | |
US11347221B2 (en) | Artificial neural networks having competitive reward modulated spike time dependent plasticity and methods of training the same | |
KR20180096474A (ko) | 중대형 네트워크의 학습을 위한 점진적인 학습 기반 정보 이전 방법 및 그 장치 | |
Ramirez-Amaro et al. | A semantic-based method for teaching industrial robots new tasks | |
Madni et al. | Next generation adaptive cyber physical human systems | |
KR20230152867A (ko) | 스스로 학습이 가능한 인공지능 자율 주행 로봇 및 이의 학습 방법 | |
EP4283529B1 (en) | Method for training an object recognition model in a computing device | |
KR102508648B1 (ko) | 전기 및 소방 설비의 오동작 판단을 기반으로 한 비상상황 모니터링 방법, 장치 및 시스템 | |
EP4235507A1 (en) | Automatically quantifying an uncertainty of a prediction provided by a trained regression model | |
JP2020004037A (ja) | 出力変数値算出システム、出力変数算出装置、及び、出力変数値算出方法 | |
Özbilge | On-line expectation-based novelty detection for mobile robots | |
Gavrilov et al. | Mobile robot navigation using reinforcement learning based on neural network with short term memory | |
Lim | Shared representations of actions for alternative suggestion with incomplete information | |
Botzheim et al. | Growing neural gas for information extraction in gesture recognition and reproduction of robot partners | |
Vallejo et al. | A multi-agent architecture for multi-robot surveillance | |
Rahul et al. | Simulation of Self‐Driving Cars Using Deep Learning | |
Cai et al. | Asking for Help with the Right Question by Predicting Human Visual Performance. | |
Lanillos et al. | Multisensory object discovery via self-detection and artificial attention | |
WO2023243393A1 (ja) | 認識装置、認識システム及びコンピュータープログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |