KR102485272B1 - 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치 및 이를 위한 방법 - Google Patents

확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치 및 이를 위한 방법 Download PDF

Info

Publication number
KR102485272B1
KR102485272B1 KR1020200032598A KR20200032598A KR102485272B1 KR 102485272 B1 KR102485272 B1 KR 102485272B1 KR 1020200032598 A KR1020200032598 A KR 1020200032598A KR 20200032598 A KR20200032598 A KR 20200032598A KR 102485272 B1 KR102485272 B1 KR 102485272B1
Authority
KR
South Korea
Prior art keywords
collision
layer
probability
grid map
neural network
Prior art date
Application number
KR1020200032598A
Other languages
English (en)
Other versions
KR20210116004A (ko
Inventor
문창배
조준형
Original Assignee
전남대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 전남대학교 산학협력단 filed Critical 전남대학교 산학협력단
Priority to KR1020200032598A priority Critical patent/KR102485272B1/ko
Publication of KR20210116004A publication Critical patent/KR20210116004A/ko
Application granted granted Critical
Publication of KR102485272B1 publication Critical patent/KR102485272B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Image Analysis (AREA)

Abstract

본 발명의 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습하기 위한 장치는 어느 하나의 계층의 연산 결과에 가중치가 적용되어 다음 계층의 입력이 되는 복수의 연산을 포함하는 복수의 계층을 포함하는 인공신경망과, 포인트 클라우드 영상을 2차원의 평면의 분포를 나타내는 제1 채널 및 거리를 나타내는 제2 채널을 포함하는 2채널의 충돌격자지도로 변환하는 데이터처리부와, 상기 충돌격자지도를 통해 상기 인공신경망이 충돌 여부에 대한 확률을 출력하도록 상기 인공신경망을 학습시키는 학습부를 포함한다.

Description

확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치 및 이를 위한 방법{Apparatus and Method for Learning and Recognizing Collision Situation Using Collision Grid Map Based on Probability Scheme}
본 발명은 충돌 상황 학습 및 인지 기술에 관한 것으로, 보다 상세하게는, 확률 체계에 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치 및 이를 위한 방법에 관한 것이다.
인공신경망은 사람 또는 동물 두뇌의 신경망에 착안하여 구현된 컴퓨팅 시스템의 총칭이다. 기계 학습(machine learning)의 세부 방법론 중 하나로, 신경 세포인 뉴런(neuron)이 여러 개 연결된 망의 형태이다. 구조 및 기능에 따라 여러 종류로 구분되며, 가장 일반적인 인공 신경망은 한 개의 입력층과 출력층 사이에 다수의 은닉층(hidden layer)이 있는 다층 퍼셉트론(multilayer perceptron)이다.
인공신경망은 하드웨어로 구현될 수도 있으나, 주로 컴퓨터 소프트웨어로 구현된다. 인공 신경망은 기초 컴퓨팅 단위인 뉴런 여러 개가 가중된 링크(weighted link)로 연결된 형태이다. 가중된 링크(weighted link)는 주어진 환경에 적응할 수 있도록 가중치를 조정할 수 있다.
인공신경망은 자기 조직화 지도(SOM: Self-Organizing Map), 순환 신경망(RNN: Recurrent Neural Network), 콘볼루션 신경망(CNN: Convolutional Neural Network)과 같은 다양한 모델에 대한 총칭으로, 그 종류는 수십 가지에 이른다.
최초의 인공 신경망 모델은 1943년 워렌 맥컬로치(Warren McCulloch)와 월터 피츠(Walter Pitts)에 의해 제안되었으며, 1958년 프랑크 로젠블라트(Frank Rosenblatt)는 지도 학습(supervised learning)이 가능한 퍼셉트론(perceptron) 모델을 개발하였다. 당시 컴퓨터의 낮은 성능과 단층 퍼셉트론(single-layer perceptron)의 한계 등으로 인해 쇠퇴했던 인공 신경망에 대한 연구는 1970년대 군집 분석을 위한 자기 조직화 지도 등의 모델이 연구되며 그 명맥을 이었고, 1986년 다층 퍼셉트론(multi-layer perceptron)의 지도 학습을 위한 역확산 알고리즘(back-propagation algorithm)이 재발견되며, 다시 활성화되었다.
근래에는 컴퓨터 하드웨어 및 학습 알고리즘의 발달로 수십 개의 은닉층(hidden layer)이 있는 심층 신경망(DNN: Deep Neural Network)이 널리 사용되게 되었다. 바둑을 비롯해 이미지 및 자연어 처리, 음성 인식 등의 분야에서 기존의 기계 학습 방법의 성능을 뛰어 넘는 결과를 보이고 있다.
한국공개특허 제2013-0094997호 2013년 08월 27일 공개 (명칭: 장애물 검출 및 충돌 경보 장치 및 방법)
본 발명의 목적은 확률 체계에 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치 및 이를 위한 방법을 제공함에 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습하기 위한 장치는 어느 하나의 계층의 연산 결과에 가중치가 적용되어 다음 계층의 입력이 되는 복수의 연산을 포함하는 복수의 계층을 포함하는 인공신경망과, 포인트 클라우드 영상을 2차원의 평면의 분포를 나타내는 제1 채널 및 거리를 나타내는 제2 채널을 포함하는 2채널의 충돌격자지도로 변환하는 데이터처리부와, 상기 충돌격자지도를 통해 상기 인공신경망이 충돌 여부에 대한 확률을 출력하도록 상기 인공신경망을 학습시키는 학습부를 포함한다.
상기 데이터처리부는 포인트 클라우드의 영상에서 포인트 클라우드를 포인트 클라우드의 x 및 y값에 매핑되는 제1 채널의 셀에 사상하고, 제2 채널의 셀에 x 및 y의 값에 대한 모든 포인트 클라우드의 z 값의 평균을 해당하는 제2 채널의 셀에 사상하여 상기 충돌격자지도를 생성하는 것을 특징으로 한다.
상기 학습부는 충돌 여부에 대응하는 기댓값을 설정하고, 상기 충돌격자지도를 상기 인공신경망에 입력한 후, 상기 인공신경망이 상기 충돌격자지도에 대해 가중치가 적용되는 복수의 연산을 수행하여 출력값을 산출하면, 산출된 출력값과 설정된 기댓값의 차이가 최소가 되도록 상기 인공신경망의 가중치를 최적화하는 것을 특징으로 한다.
상기 인공신경망은 상기 충돌격자지도를 입력받는 입력계층과, 상기 입력계층의 충돌격자지도에 대해 가중치 행렬로 구성된 제1 필터를 통해 컨볼루션 연산을 수행하여 제1 특징지도를 구성하는 컨볼루션계층과, 상기 컨볼루션계층의 제1 특징지도에 대해 가중치 행렬로 구성된 제2 필터를 통해 풀링 연산을 수행하여 제2 특징지도를 구성하는 풀링계층과, 상기 풀링계층의 제2 특징지도를 변환하여 하나의 열로 정렬하는 평탄화계층과, 복수의 연산 노드를 포함하며, 복수의 연산 노드 각각이 하나의 열로 정렬된 제2 특징지도에 대해 활성화함수를 통한 연산 결과에 가중치를 적용하여 출력하는 완전연결계층과, 충돌 확률 및 비충돌 확률 각각에 대응하는 2개의 출력 노드를 포함하며, 상기 완전연결계층의 상기 복수의 연산 노드의 입력에 대해 활성화함수를 통한 연산을 수행하여 충돌 확률 및 비충돌 확률을 산출하고, 산출된 충돌 확률 및 비충돌 확률을 출력값으로 출력하는 출력계층을 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 인지하기 위한 장치는 어느 하나의 계층의 연산 결과에 가중치가 적용되어 다음 계층의 연산에 입력이 되는 복수의 연산을 포함하는 복수의 계층을 포함하며, 충돌격자지도가 입력되면, 충돌격자지도에 대해 복수의 계층의 가중치가 적용되는 복수의 연산을 수행하여 충돌 여부를 확률로 출력하도록 학습된 인공신경망과, 촬영을 통해 3차원 영상을 생성하는 카메라부와, 상기 3차원 영상을 변환하여 포인트 클라우드 영상을 생성하고, 생성된 포인트 클라우드 영상을 2차원의 평면의 분포를 나타내는 제1 채널과 거리를 나타내는 제2 채널을 포함하는 2채널의 충돌격자지도로 변환하는 데이터처리부와 상기 변환된 충돌격자지도를 상기 인공신경망에 입력하여 상기 인공신경망이 충돌 여부를 확률을 출력하면, 상기 확률에 따라 충돌 여부를 인지하는 인지부를 포함한다.
상기 데이터처리부는 포인트 클라우드의 영상에서 포인트 클라우드를 포인트 클라우드의 x 및 y값에 매핑되는 제1 채널의 셀에 사상하고, 제2 채널의 셀에 x 및 y의 값에 대한 모든 포인트 클라우드의 z 값의 평균을 해당하는 제2 채널의 셀에 사상하여 상기 충돌격자지도를 생성하는 것을 특징으로 한다.
상기 인공신경망은 출력값으로 충돌 확률 및 비충돌 확률을 출력하며, 상기 인지부는 상기 충돌 확률이 상기 비충돌 확률 보다 크면서 상기 충돌 확률이 기 설정된 임계치 이상인 경우에 충돌하는 것으로 인지하는 것을 특징으로 한다.
상기 인공신경망은 상기 충돌격자지도를 입력받는 입력계층과, 상기 입력계층의 충돌격자지도에 대해 가중치 행렬로 구성된 제1 필터를 통해 컨볼루션 연산을 수행하여 제1 특징지도를 구성하는 컨볼루션계층과, 상기 컨볼루션계층의 제1 특징지도에 대해 가중치 행렬로 구성된 제2 필터를 통해 풀링 연산을 수행하여 제2 특징지도를 구성하는 풀링계층과, 상기 풀링계층의 제2 특징지도를 변환하여 하나의 열로 정렬하는 평탄화계층과, 복수의 연산 노드를 포함하며, 복수의 연산 노드 각각이 하나의 열로 정렬된 제2 특징지도에 대해 활성화함수를 통한 연산 결과에 가중치를 적용하여 출력하는 완전연결계층과, 충돌 확률 및 비충돌 확률 각각에 대응하는 2개의 출력 노드를 포함하며 상기 완전연결계층의 상기 복수의 연산 노드의 입력에 대해 활성화함수를 통한 연산을 수행하여 충돌 확률 및 비충돌 확률을 산출하고, 산출된 충돌 확률 및 비충돌 확률을 출력값으로 출력하는 출력계층을 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습하기 위한 방법은 데이터처리부가 충돌 여부가 알려진 3차원 영상을 획득하는 단계와, 상기 데이터처리부가 상기 3차원 영상을 변환하여 클라우드 포인트 영상을 생성하는 단계와, 상기 데이터처리부가 상기 클라우드 포인트 영상을 변환하여 2차원의 평면의 분포를 나타내는 제1 채널 및 거리를 나타내는 제2 채널을 포함하는 2채널의 충돌격자지도를 생성하는 단계와, 학습부가 상기 충돌격자지도의 기초가 되는 상기 3차원 영상의 충돌 여부에 따라 기댓값을 설정하는 단계와, 상기 학습부가 상기 충돌격자지도를 입력함에 따라 상기 인공신경망이 상기 충돌격자지도에 대해 상기 복수의 연산을 통해 출력값을 산출하는 단계와, 상기 학습부가 상기 출력값과 상기 기댓값의 차이가 최소가 되도록 상기 인공신경망의 가중치를 최적화하는 단계를 포함한다.
상기 충돌격자지도를 생성하는 단계는 상기 데이터처리부가 포인트 클라우드의 영상에서 포인트 클라우드를 포인트 클라우드의 x 및 y값에 매핑되는 제1 채널의 셀에 사상하는 단계와, 상기 데이터처리부가 제2 채널의 셀에 x 및 y의 값에 대한 모든 포인트 클라우드의 z 값의 평균을 해당하는 제2 채널의 셀에 사상하는 단계를 포함한다.
상기 인공신경망이 상기 충돌격자지도에 대해 상기 복수의 연산을 통해 출력값을 산출하는 단계는 입력계층이 상기 충돌격자지도를 입력받는 단계와, 컨볼루션계층이 상기 입력계층의 충돌격자지도에 대해 가중치 행렬로 구성된 제1 필터를 통해 컨볼루션 연산을 수행하여 제1 특징지도를 구성하는 단계와, 풀링계층이 상기 컨볼루션계층의 제1 특징지도에 대해 가중치 행렬로 구성된 제2 필터를 통해 풀링 연산을 수행하여 제2 특징지도를 구성하는 단계와, 평탄화계층이 상기 풀링계층의 제2 특징지도를 변환하여 하나의 열로 정렬하는 단계와, 완전연결계층이 복수의 연산 노드를 통해 하나의 열로 정렬된 제2 특징지도에 대해 활성화함수를 통한 연산 결과에 가중치를 적용하여 출력하는 단계와, 출력계층이 상기 완전연결계층의 상기 복수의 연산 노드로부터 출력을 입력받아 활성화함수를 통한 연산을 수행하여 충돌 확률 및 비충돌 확률을 산출하고, 산출된 충돌 확률 및 비충돌 확률을 출력값으로 출력하는 단계를 포함한다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 바람직한 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 인지하기 위한 방법은 카메라부가 로봇팔의 전방을 촬영하여 3차원 영상을 생성하는 단계와, 상기 데이터처리부가 상기 3차원 영상을 변환하여 클라우드 포인트 영상을 생성하는 단계와, 상기 데이터처리부가 상기 클라우드 포인트 영상을 변환하여 2차원의 평면의 분포를 나타내는 제1 채널 및 거리를 나타내는 제2 채널을 포함하는 2채널의 충돌격자지도를 생성하는 단계와, 인지부가 상기 충돌격자지도를 입력함에 따라 상기 인공신경망이 상기 충돌격자지도에 대해 상기 복수의 연산을 통해 출력값을 산출하는 단계와, 상기 인지부가 상기 출력값의 확률에 따라 충돌 여부를 인지하는 단계와, 제어부가 상기 인지부가 인지한 충돌 여부에 따라 상기 로봇팔의 움직임을 제어하는 단계를 포함한다.
상기 충돌격자지도를 생성하는 단계는 상기 데이터처리부가 포인트 클라우드의 영상에서 포인트 클라우드를 포인트 클라우드의 x 및 y값에 매핑되는 제1 채널의 셀에 사상하는 단계와, 상기 데이터처리부가 제2 채널의 셀에 x 및 y의 값에 대한 모든 포인트 클라우드의 z 값의 평균을 해당하는 제2 채널의 셀에 사상하는 단계를 포함한다.
상기 인공신경망이 상기 충돌격자지도에 대해 상기 복수의 연산을 통해 출력값을 산출하는 단계는 입력계층이 상기 충돌격자지도를 입력받는 단계와, 컨볼루션계층이 상기 입력계층의 충돌격자지도에 대해 가중치 행렬로 구성된 제1 필터를 통해 컨볼루션 연산을 수행하여 제1 특징지도를 구성하는 단계와, 풀링계층이 상기 컨볼루션계층의 제1 특징지도에 대해 가중치 행렬로 구성된 제2 필터를 통해 풀링 연산을 수행하여 제2 특징지도를 구성하는 단계와, 평탄화계층이 상기 풀링계층의 제2 특징지도를 변환하여 하나의 열로 정렬하는 단계와, 완전연결계층이 복수의 연산 노드를 통해 하나의 열로 정렬된 제2 특징지도에 대해 활성화함수를 통한 연산 결과에 가중치를 적용하여 출력하는 단계와, 출력계층이 상기 완전연결계층의 상기 복수의 연산 노드로부터 출력을 입력받아 활성화함수를 통한 연산을 수행하여 충돌 확률 및 비충돌 확률을 산출하고, 산출된 충돌 확률 및 비충돌 확률을 출력값으로 출력하는 단계를 포함한다.
본 발명에 따르면, 확률 체계에 기반 충돌격자지도를 이용하여 충돌 상황을 학습 및 인지할 수 있어 가축에 먹이를 주는 로봇을 효율적으로 운영할 수 있다.
도 1은 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치가 적용되는 환경을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 제어장치의 구성을 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 설명하기 위한 도면이다.
도 4 및 도 5는 본 발명의 실시예에 따른 인공신경망을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습하는 방법을 설명하기 위한 흐름도이다.
도 7 및 도 8은 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습하는 방법을 설명하기 위한 화면 예이다.
도 9는 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 인지하는 방법을 설명하기 위한 흐름도이다.
본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 실시예에 불과할 뿐, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이때, 첨부된 도면에서 동일한 구성 요소는 가능한 동일한 부호로 나타내고 있음을 유의해야 한다. 또한, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략할 것이다. 마찬가지의 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 또는 개략적으로 도시되었으며, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다.
먼저, 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치에 대해서 설명하기로 한다. 도 1은 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치가 적용되는 환경을 설명하기 위한 도면이다. 도 2는 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 제어장치의 구성을 설명하기 위한 도면이다. 도 3은 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 충돌 상황을 학습 및 인지하기 위한 장치(10, 이하, '학습인지장치'로 축약함)는 로봇팔(300) 및 제어장치(100)를 포함한다.
학습인지장치(10)의 로봇팔(300)은 외양간에서 소에게 먹이를 주기 위한 것이며, 학습인지장치(10)의 제어장치(100)는 로봇팔(300)이 소에게 먹이를 주는 동작을 수행할 때, 소와 로봇팔(300)의 엔드이펙터(E) 간의 충돌을 예측하기 위하여 충돌 상황을 학습하고, 인지하기 위한 것이다. 이러한 제어장치(100)는 충돌 상황을 학습한 후, 충돌 상황이 인지되면, 로봇팔(300)을 제어하여 충돌을 방지한다.
도 2를 참조하면, 본 발명의 실시예에 따른 제어장치(100)는 카메라부(110), 데이터처리부(120), 학습부(130), 인지부(140), 제어부(150) 및 인공신경망(200)을 포함한다.
카메라부(110)는 영상을 촬영하기 위한 것이다. 카메라부(110)는 이미지 센서를 포함하며, 이미지 센서는 피사체에서 반사되는 빛을 입력받아 전기신호로 변환하며, CCD(Charged Coupled Device), CMOS(Complementary Metal-Oxide Semiconductor) 등을 기반으로 구현될 수 있다. 카메라부(110)는 아날로그-디지털 변환기(Analog to Digital Converter)를 더 포함할 수 있으며, 이미지 센서에서 출력되는 전기신호를 디지털 수열로 변환하여 각 픽셀의 픽셀값(예컨대, RGB값)을 출력할 수 있다. 특히, 카메라부(110)는 깊이 센서(depth camera sensor) 혹은 3D 센서를 더 포함한다. 깊이 센서는 비접촉 방식으로 영상의 각 픽셀에 대한 3차원 좌표를 획득하기 위한 센서이다. 카메라부(110)는 객체를 촬영함과 동시에 깊이 센서를 통해 촬영된 영상의 깊이, 즉, z 값을 검출할 수 있다. 이로써, 카메라부(110)는 이미지 센서와 더불어 깊이 센서를 이용하여 촬영된 영상의 각 픽셀에 대한 3차원 좌표의 좌표값(예컨대, x, y, z값)을 검출할 수 있다. 이때, 3차원 좌표의 좌표값은 카메라부(110)의 초점을 0점으로 하였을 때의 좌표값이다. 깊이 센서는 레이저, 적외선, 가시광 등을 이용하는 다양한 방식의 센서를 이용할 수 있다. 이러한 깊이 센서는 TOF(Time of Flight), 위상변위(Phase-shift) 및 Online Waveform Analysis 중 어느 하나를 이용하는 레이저 방식 3차원 스캐너, 광 삼각법을 이용하는 레이저 방식 3차원 스캐너, 백색광 혹은 변조광을 이용하는 광학방식 3차원 스캐너, Handheld Real Time 방식의 PHOTO, 광학방식 3차원 스캐너, Pattern Projection 혹은 Line Scanning을 이용하는 광학방식, 레이저 방식 전신 스캐너, 사진 측량(Photogrammetry)을 이용하는 사진방식 스캐너, 키네틱(Kinect Fusion)을 이용하는 실시간(Real Time) 스캐너 등을 예시할 수 있다.
데이터처리부(120)는 카메라부(110)가 촬영한 영상으로부터 3차원 포인트 클라우드 영상을 생성할 수 있다. 즉, 본 발명의 실시예에 따른 카메라부(110)가 촬영한 영상은 객체의 표면을 형성하는 복수의 점 각각에 대한 3차원 좌표를 포함하기 때문에 객체의 표면을 형성하는 복수의 점을 3차원의 포인트 클라우드로 변형하여 3차원 포인트 클라우드 영상을 생성할 수 있다.
또한, 데이터처리부(120)는 3차원 포인트 클라우드 영상으로부터 본 발명의 실시예에 따른 충돌격자지도(CGM: Collision Grid Map)를 생성할 수 있다. 충돌격자지도(CGM)는 격자로 구분되는 복수의 셀을 포함하며, 2 채널로 형성된다. 2채널 중 제1 채널은 2차원의 평면의 분포를 나타내고, 제2 채널은 거리를 나타낸다.
예컨대, 도 3의 (가)는 3차원 포인트 클라우드 영상의 일부를 나타낸다. 포인트 클라우드 영상은 복수의 포인트 클라우드가 군집된 형태이다. 표시된 점들 각각은 포인트 클라우드를 나타낸다. 이러한 포인트 클라우드 각각은 3차원 좌표값, 즉, x, y, z값을 가진다.
이에 따라, 데이터처리부(120)는 도 3의 (가)에 도시된 3차원 포인트 클라우드 영상으로부터 도 3의 (나)와 같이 충돌격자지도(CGM)의 제1 채널(CH1)을 형성할 수 있다. 이때, 데이터처리부(120)는 포인트 클라우드를 포인트 클라우드의 x 및 y값에 매핑되는 제1 채널의 셀에 사상한다. 이때, 하나의 셀에 복수의 포인트 클라우드가 매핑될 수 있으며, 이러한 경우, 해당하는 셀에 누적되어 사상된다. 예컨대, 포인트 클라우드 s의 x 및 y값은 제1 채널(CH1)의 2열 3행에 위치한 셀에 매핑한다. 따라서 데이터처리부(120)는 포인트 클라우드 s를 제1 채널(CH1)의 2열 3행의 셀에 사상할 수 있다.
또한, 데이터처리부(120)는 도 3의 (가)에 도시된 3차원 포인트 클라우드 영상으로부터 (다)와 같이 충돌격자지도(CGM)의 제2 채널을 형성할 수 있다. 이때, 데이터처리부(120)는 제2 채널의 셀에 x 및 y의 값에 대한 모든 포인트 클라우드의 z 값의 평균을 해당하는 제2 채널의 셀에 사상한다. 예컨대, 포인트 클라우드 a, b, c의 x 및 y값은 모두 제2 채널(CH1)의 1열 1행의 셀에 매핑된다. 따라서 데이터처리부(120)는 포인트 클라우드 a, b, c의 z값의 평균을 산출하고, 산출된 z 값의 평균을 제2 채널(CH1)의 1열 1행의 셀에 사상한다.
학습부(130)는 인공신경망(200)을 학습시키기 위한 것이다. 학습부(130)는 데이터처리부(120)가 생성한 충돌격자지도(CGM)를 통해 인공신경망(200)이 충돌 여부에 대한 확률을 출력하도록 인공신경망(200)을 학습시킨다. 이러한 학습부(130)의 학습 방법에 대해서는 아래에서 더 상세하게 설명될 것이다.
인지부(140)는 학습된 인공신경망(200)의 출력에 따라 충돌 여부를 인지하기 위한 것이다. 인지부(140)는 데이터처리부(120)가 생성한 충돌격자지도(CGM)를 인공신경망(200)에 입력한 후, 입력된 충돌격자지도(CGM)에 대한 인공신경망(200)의 출력값을 획득한다. 인공신경망(200)의 출력값은 충돌 여부 대한 확률이며, 인지부(140)는 그 확률에 따라 소와 로봇팔(300)의 엔드이펙터(E) 간의 충돌을 인지한다. 이러한 인지부(140)의 인지 방법에 대해서는 아래에서 더 상세하게 설명될 것이다.
제어부(150)는 인지부(140)가 인지한 충돌 여부에 따라 로봇팔(300)의 움직임을 제어한다. 예컨대, 제어부(150)는 인지부(140)를 통해 충돌이 인지되면, 데이터처리부(120)로부터 해당 충돌격자지도(CGM)에 대응하는 카메라부(110)가 촬영한 영상을 수신하여 실제 충돌 위치를 획득한 후, 충돌 위치를 피하여 로봇팔(300)이 운용되도록 로봇팔(300)의 움직임을 제어한다.
다음으로, 본 발명의 실시예에 따른 인공신경망(200)에 대해 보다 상세하게 설명하기로 한다. 도 4 및 도 5는 본 발명의 실시예에 따른 인공신경망을 설명하기 위한 도면이다.
도 4 및 도 5를 참조하면, 본 발명의 실시예에 따른 인공신경망(200)은 복수의 계층을 포함한다. 즉, 인공신경망(200)은 순차로 입력계층(input layer: INL), 컨볼루션계층(convolution layer: CVL), 풀링계층(pooling layer: POL), 평탄화계층(Flatten Layer, FLL) 및 완전연결계층(fully-connected layer: FCL) 및 출력계층(output layer: OUL)을 포함한다.
입력계층(INL)은 소정 크기의 입력 행렬로 이루어진다. 입력계층(INL)은 소정 크기의 입력 행렬로 이루어진다. 입력계층(INL) 입력 행렬의 원소는 충돌격자지도(CGM)의 2채널의 복수의 셀에 대응한다. 이에 따라, 충돌격자지도(CGM)의 2채널의 복수의 셀의 값이 입력계층(INL) 입력 행렬의 각 원소의 값으로 입력된다.
컨볼루션계층(CVL) 및 풀링계층(POL)은 적어도 하나의 특징 지도(Feature Map)로 구성된다. 특징 지도는 소정 크기의 행렬로 구성된다. 특징 지도는 이전 계층의 값에 대해 가중치가 적용된 연산 수행 결과로 생성된다. 이러한 가중치는 필터를 통해 적용된다. 여기서, 필터는 소정 크기(예컨대, N이 자연수일 때, N×N)의 행렬이며, 필터를 이루는 행렬의 각 원소의 값이 가중치(w)가 된다. 따라서 특징 지도를 이루는 행렬의 각 원소에는 이전 계층에서 필터(W)를 이용한 가중치가 적용된 연산에 따라 산출된 값이 저장된다.
컨볼루션계층(CVL)은 적어도 하나의 제1 특징지도를 포함한다. 컨볼루션계층(CVL)을 구성하는 제1 특징지도는 입력계층(INL)에 입력된 충돌격자지도(CGM)에 대해 가중치 행렬로 구성된 제1 필터(W1)를 통해 컨볼루션 연산(convolution)을 수행한 결과로 생성된다.
풀링계층(POL)은 적어도 하나의 제2 특징지도를 포함한다. 풀링계층(POL)을 구성하는 제2 특징지도는 제1 특징지도에 대해 가중치 행렬로 구성된 제2 필터(W2)를 통해 풀링(pooling 또는 subsampling) 연산을 수행한 결과로 생성된다.
평탄화계층(FLL)은 다음 계층의 형태에 맞춰 이전 계층의 형태를 변환하는 역할을 수행한다. 즉, 평탄화계층(FLL)은 행렬 형태인 풀링계층(POL)의 제2 특징지도를 완전연결계층(fully-connected layer: FCL)의 연산 노드에 맞춰 열 형태로 변경한다. 예컨대, 평탄화계층(FLL)은 제2 특징지도가 8×8×1(행×열×채널)의 형태라면, 이를 64×1(열×채널)의 형태로 변경한다. 이러한 변경에 따라 제2 특징지도의 행렬 형태의 값들이 순차로 하나의 열로 정렬되어 완전연결계층(fully-connected layer: FCL)의 복수의 연산 노드에 입력될 수 있다.
도 5를 참조하면, 완전연결계층(FCL)은 복수의 연산 노드(f1, f2, ..., fn)를 포함한다. 완전연결계층(FCL)의 복수의 연산 노드(f1, f2, ..., fn) 각각의 값은 평탄화계층(FLL)에 의해 제2 특징지도의 행렬의 값이 열로 변환되어 입력된 것이다. 완전연결계층(FCL)의 복수의 연산 노드(f1, f2, ..., fn) 각각은 하나의 열로 정렬된 제2 특징지도에 대해 활성화함수를 통한 연산 결과에 가중치(w)가 적용하여 출력계층(OUL)으로 출력한다. 여기서, 활성화함수는 시그모이드(Sigmoid), 하이퍼볼릭탄젠트(tanh: Hyperbolic tangent), ELU(Exponential Linear Unit), ReLU(Rectified Linear Unit), Leakly ReLU, Maxout, Minout, Softmax 등을 예시할 수 있다.
출력계층(OUL)은 2개의 출력 노드(O1, O2)를 포함한다. 출력계층(OUL)의 2개의 출력 노드(O1, O2)에는 완전연결계층(FCL)의 복수의 연산 노드(f1, f2, ..., fn) 각각의 출력이 입력된다. 출력계층(OUL)의 2개의 출력 노드(O1, O2)는 복수의 연산 노드(f1, f2, ..., fn)로부터 입력되는 값에 대해 활성화함수를 통한 연산을 수행하고, 그 결과를 출력값으로 출력한다. 이러한 출력계층(OUL)의 출력값은 인공신경망(200)의 출력값이 된다. 2개의 출력 노드(O1, O2)는 충돌 및 비충돌 상황에 대응하며, 2개의 출력 노드(O1, O2) 각각의 출력값은 충돌 확률과 비충돌 확률을 나타낸다. 예컨대, 제1 출력노드(O1)는 충돌 상황에 대응하고, 제2 출력노드(O2)는 비충돌 상황에 대응한다고 가정한다. 이때, 제1 출력노드(O1)의 출력값이 0.45이고, 제2 출력노드(O2)의 출력값이 0.55라면, 충돌 확률은 45%이고, 비충돌 확률이 55%임을 의미한다.
다음으로, 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습하는 방법을 설명하기로 한다. 도 6은 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습하는 방법을 설명하기 위한 흐름도이다. 도 7 및 도 8은 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습하는 방법을 설명하기 위한 화면 예이다.
도 6을 참조하면, 로봇팔(300)이 소에게 먹이를 주는 동작을 수행할 때, 소와 로봇팔(300)의 엔드이펙터(E) 간의 충돌 여부에 대한 확률을 학습하기 위하여, 데이터처리부(120)는 S110 단계에서 충돌 여부가 알려진 3차원 영상을 획득할 수 있다. 이러한 3차원 영상은 각 픽셀의 3차원 좌표에 대한 정보를 포함한다. 일 실시예에 따르면, 데이터처리부(120)는 카메라부(110)를 통해 3차원 영상을 촬영하여 획득할 수 있다. 다른 실시예에 따르면, 사용자의 입력에 의해 3차원 영상을 획득할 수도 있다. 예컨대, 도 7의 (a)는 충돌 상황을 나타내는 3차원 영상이며, 도 8의 (a)는 비충돌 상황을 나타내는 3차원 영상이다.
이어서, 데이터처리부(120)는 S120 단계에서 3차원 영상을 변환하여 클라우드 포인트 영상을 생성한다. 즉, 데이터처리부(120)는 3차원 영상의 객체의 표면을 3차원 영상의 3차원 좌표를 통해 3차원 좌표를 가지는 클라우드 포인트로 변환함으로써 클라우드 포인트 영상을 생성할 수 있다. 예컨대, 도 7의 (b)는 도 7의 (a)의 충돌 상황을 나타내는 학습 영상을 클라우드 포인트 영상으로 변환한 것이다. 또한, 도 8의 (b)는 도 8의 (a)의 비충돌 상황을 나타내는 학습 영상을 클라우드 포인트 영상으로 변환한 것이다.
다음으로, 데이터처리부(120)는 S130 단계에서 클라우드 포인트 영상을 변환하여 충돌격자지도(CGM)를 생성한다. 충돌격자지도(CGM)는 격자로 구분되는 복수의 셀을 포함하며, 2 채널로 형성된다. 2채널 중 제1 채널은 2차원의 평면의 분포를 나타내고, 2채널 중 제2 채널은 객체와의 거리를 나타낸다. 데이터처리부(120)는 포인트 클라우드 영상의 포인트 클라우드 각각의 3차원 좌표값, 즉, x, y, z값을 통해 포인트 클라우드 영상을 충돌격자지도(CGM)로 변환한다. 이때, 데이터처리부(120)는 포인트 클라우드를 그 포인트 클라우드의 x 및 y값에 대응하는 제1 채널의 셀에 사상한다. 또한, 데이터처리부(120)는 제2 채널의 셀에 x 및 y값이 매핑되는 적어도 하나의 포인트 클라우드를 검출하고, 검출된 모든 포인트 클라우드의 z 값의 평균을 해당하는 제2 채널의 셀에 사상한다. 이로써 충돌격자지도(CGM)가 생성된다. 예컨대, 도 7의 (c) 및 (d)는 도 7의 (b)의 클라우드 포인트 영상으로부터 변환된 충돌격자지도이며, 도 7의 (c) 및 (d) 각각은 충돌격자지도의 제1 채널 및 제2 채널을 나타낸다. 또한, 도 8의 (c) 및 (d)는 도 8의 (b)의 클라우드 포인트 영상으로부터 변환된 충돌격자지도이며, 도 8의 (c) 및 (d) 각각은 충돌격자지도의 제1 채널 및 제2 채널을 나타낸다.
전술한 바와 같이 데이터처리부(120)에 의해 생성된 충돌격자지도(CGM)는 그 충돌격자지도의 기초가 되는 3차원 영상의 충돌 여부에 대한 정보와 함께 학습부(130)에 전달된다. 그러면, 학습부(130)는 S140 단계에서 충돌격자지도(CGM)의 기초가 되는 3차원 영상의 충돌 여부에 따라 기댓값을 설정할 수 있다. 예컨대, 학습부(130)는 도 7의 (c) 및 (d)와 같은 충돌격자지도의 기초가 되는 3차원 영상, 즉, 도 7의 (a)가 충돌 상황을 나타내기 때문에 도 7의 (c) 및 (d)와 같은 충돌격자지도에 대응하여 충돌 확률이 비충돌 확률을 초과하면서 기 설정된 임계치(75%) 이상이 되도록 기댓값을 설정할 수 있다(예컨대, O1>O2 AND O1≥0.75). 반대로, 학습부(130)는 도 8의 (c) 및 (d)와 같은 충돌격자지도의 기초가 되는 3차원 영상, 즉, 도 8의 (a)가 충돌 상황을 나타내기 때문에 도 8의 (c) 및 (d)와 같은 충돌격자지도에 대응하여 충돌 확률이 비충돌 확률 이하이거나, 기 설정된 임계치(75%) 미만이 기댓값을 설정할 수 있다(예컨대, O1≤O2 OR O1<0.75).
그런 다음, 학습부(130)는 S150 단계에서 충돌격자지도(CGM)를 인공신경망(200)에 입력한다. 그러면, 인공신경망(200)은 복수의 계층의 가중치가 적용되는 복수의 연산을 통해 출력값을 산출하여 출력할 것이다. 보다 구체적으로 설명하면 다음과 같다. 인공신경망(200)의 입력계층(INL)에 충돌격자지도(CGM)가 입력된다. 즉, 2채널의 충돌격자지도(CGM)의 복수의 셀의 값이 입력계층(INL) 입력 행렬의 각 원소의 값으로 입력된다. 그러면, 컨볼루션계층(CVL)은 입력계층(INL)의 충돌격자지도(CGM)에 대해 가중치 행렬로 구성된 제1 필터(W1)를 통해 컨볼루션 연산(convolution)을 수행하여 제1 특징지도를 구성한다. 이어서, 풀링계층(POL)은 컨볼루션계층(CVL)의 제1 특징지도에 대해 가중치 행렬로 구성된 제2 필터(W2)를 통해 풀링(pooling 또는 subsampling) 연산을 수행하여 제2 특징지도를 구성한다. 그런 다음, 평탄화계층(FLL)은 풀링계층(POL)의 행렬 형태인 제2 특징지도를 변환하여 하나의 열로 정렬한다. 이에 따라, 완전연결계층(FCL)의 복수의 연산 노드 각각은 하나의 열로 정렬된 제2 특징지도에 대해 활성화함수를 통한 연산 결과에 가중치(w)를 적용하여 출력계층(OUL)으로 출력한다. 그러면, 출력계층(OUL)의 2개의 출력 노드(O1, O2)는 완전연결계층(FCL)의 복수의 연산 노드의 입력에 대해 활성화함수를 통한 연산을 수행하여 충돌 확률 및 비충돌 확률을 산출하고, 산출된 충돌 확률 및 비충돌 확률을 출력값으로 출력한다.
이와 같이, 학습부(130)가 인공신경망(200)에 충돌격자지도(CGM)를 입력하고, 인공신경망(200)이 충돌격자지도(CGM)에 대해 복수의 계층의 가중치가 적용되는 연산을 통해 출력값을 산출하여 출력하면, 학습부(130)는 S160 단계에서 앞서(S150) 입력된 충돌격자지도(CGM)에 대응한 인공신경망(200)의 출력값과 앞서(S140) 설정된 기댓값을 비교하여 그 차이가 최소화되도록 인공신경망(200)의 가중치를 최적화한다.
예컨대, 앞서, 도 7의 (c) 및 (d)와 같은 충돌격자지도에 대응하여 설정된 기댓값은 충돌 확률이 비충돌 확률을 초과하면서 기 설정된 임계치(75%) 이상이 되도록 기댓값을 설정하였다(예컨대, O1>O2 AND O1≥0.75). 이때, 제1 출력 노드의 출력값이 0.65이고, 제2 출력 노드의 출력값이 0.35라고 가정한다. 제1 출력 노드의 출력값, 즉, 충돌 확률이 제2 출력 노드의 출력값, 즉, 비충돌 확률을 초과하지만, 제1 출력 노드의 출력값이 임계치인 75% 이상과는 차이가 있다. 따라서 학습부(130)는 이러한 차이가 최소화되도록 인공신경망(200)의 가중치를 수정하는 최적화를 수행한다. 이를 위하여, 예컨대, 역확산(back-propagation) 알고리즘을 이용할 수 있다.
학습부(130)는 인공신경망(200)이 충분히 학습된 것으로 판단될 때까지, 복수의 3차원 영상을 이용하여 전술한 바와 같은 학습 절차(S110 내지 SS160)를 반복하여 수행한다. 즉, 학습부(130)는 복수의 3차원 영상을 이용하여 기댓값과 출력값의 차이가 소정 수치 이하가 될 때까지 전술한 바와 같은 학습 절차를 반복한다.
인공신경망(200)의 학습이 완료되면, 인공신경망(200)을 이용하여 충돌 여부를 예측할 수 있다. 이러한 방법에 대해 설명하기로 한다. 도 9는 본 발명의 실시예에 따른 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 인지하는 방법을 설명하기 위한 흐름도이다.
도 9를 참조하면, 로봇팔(300)이 소에게 먹이를 주는 동작을 수행할 때, 소와 로봇팔(300)의 엔드이펙터(E) 간의 충돌 여부를 인지하기 위하여 카메라부(110)는 S210 단계에서 로봇팔(300)의 전방을 촬영하여 3차원 영상을 생성한다. 3차원 영상은 각 픽셀의 3차원 좌표에 대한 정보를 포함한다. 예컨대, 도 7의 (a)는 충돌 상황을 나타내는 3차원 영상이며, 도 8의 (a)는 비충돌 상황을 나타내는 3차원 영상이다.
이어서, 데이터처리부(120)는 S220 단계에서 3차원 영상을 변환하여 클라우드 포인트 영상을 생성한다. 즉, 데이터처리부(120)는 3차원 영상의 객체 표면을 3차원 영상의 3차원 좌표를 통해 3차원 좌표를 가지는 클라우드 포인트로 변환함으로써 클라우드 포인트 영상을 생성할 수 있다. 예컨대, 도 7의 (b)는 도 7의 (a)의 충돌 상황을 나타내는 3차원 영상을 클라우드 포인트 영상으로 변환한 것이다. 또한, 도 8의 (b)는 도 8의 (a)의 비충돌 상황을 나타내는 3차원 영상을 클라우드 포인트 영상으로 변환한 것이다.
다음으로, 데이터처리부(120)는 S230 단계에서 클라우드 포인트 영상을 변환하여 충돌격자지도(CGM)를 생성한다. 충돌격자지도(CGM)는 격자로 구분되는 복수의 셀을 포함하며, 2 채널로 형성된다. 2채널 중 제1 채널은 2차원의 평면의 분포를 나타내고, 2채널 중 제2 채널은 객체와의 거리를 나타낸다. 데이터처리부(120)는 포인트 클라우드 영상의 포인트 클라우드 각각의 3차원 좌표값, 즉, x, y, z값을 통해 포인트 클라우드 영상을 충돌격자지도(CGM)로 변환한다. 이때, 데이터처리부(120)는 포인트 클라우드를 그 포인트 클라우드의 x 및 y값에 대응하는 제1 채널의 셀에 사상한다. 또한, 데이터처리부(120)는 제2 채널의 셀에 x 및 y값이 매핑되는 적어도 하나의 포인트 클라우드를 검출하고, 검출된 모든 포인트 클라우드의 z 값의 평균을 해당하는 제2 채널의 셀에 사상한다. 이로써 충돌격자지도(CGM)가 생성된다. 예컨대, 도 7의 (c) 및 (d)는 도 7의 (b)의 클라우드 포인트 영상으로부터 변환된 충돌격자지도이며, 도 7의 (c) 및 (d) 각각은 충돌격자지도의 제1 채널 및 제2 채널을 나타낸다. 또한, 도 8의 (c) 및 (d)는 도 8의 (b)의 클라우드 포인트 영상으로부터 변환된 충돌격자지도이며, 도 8의 (c) 및 (d) 각각은 충돌격자지도의 제1 채널 및 제2 채널을 나타낸다.
전술한 바와 같이 데이터처리부(120)에 의해 생성된 충돌격자지도(CGM)는 인지부(140)에 전달된다. 그러면, 인지부(140)는 S240 단계에서 충돌격자지도(CGM)를 인공신경망(200)에 입력한다. 그러면, 인공신경망(200)은 복수의 계층의 가중치가 적용되는 복수의 연산을 통해 출력값을 산출하여 출력할 것이다. 보다 구체적으로 설명하면 다음과 같다. 인공신경망(200)의 입력계층(INL)에 충돌격자지도(CGM)가 입력된다. 즉, 2채널의 충돌격자지도(CGM)의 복수의 셀의 값이 입력계층(INL) 입력 행렬의 각 원소의 값으로 입력된다. 그러면, 컨볼루션계층(CVL)은 입력계층(INL)의 충돌격자지도(CGM)에 대해 가중치 행렬로 구성된 제1 필터(W1)를 통해 컨볼루션 연산(convolution)을 수행하여 제1 특징지도를 구성한다. 이어서, 풀링계층(POL)은 컨볼루션계층(CVL)의 제1 특징지도에 대해 가중치 행렬로 구성된 제2 필터(W2)를 통해 풀링(pooling 또는 subsampling) 연산을 수행하여 제2 특징지도를 구성한다. 그런 다음, 평탄화계층(FLL)은 풀링계층(POL)의 행렬 형태인 제2 특징지도를 변환하여 하나의 열로 정렬한다. 이에 따라, 완전연결계층(FCL)의 복수의 연산 노드 각각은 하나의 열로 정렬된 제2 특징지도에 대해 활성화함수를 통한 연산 결과에 가중치(w)를 적용하여 출력계층(OUL)으로 출력한다. 그러면, 출력계층(OUL)의 2개의 출력 노드(O1, O2)는 완전연결계층(FCL)의 복수의 연산 노드의 입력에 대해 활성화함수를 통한 연산을 수행하여 충돌 확률 및 비충돌 확률을 산출하고, 산출된 충돌 확률 및 비충돌 확률을 출력값을 산출한다.
이와 같이, 인지부(140)가 인공신경망(200)에 충돌격자지도(CGM)를 입력하고, 인공신경망(200)이 충돌격자지도(CGM)에 대해 복수의 계층의 가중치가 적용되는 연산을 통해 출력값을 산출하여 출력하면, 인지부(140)는 S250 단계에서 인공신경망(200)의 출력값에 따라 충돌 여부를 판단한다.
제1 출력노드(O1)의 값이 제2 출력노드(O2)의 값을 초과하고, 동시에 제1 출력노드(O1)의 값이 기 설정된 임계치(75%) 이상이면(예컨대, O1>O2 AND O1≥0.75). 이는 충돌 확률이 비충돌 확률을 초과하고, 그 충돌 확률이 기 설정된 임계치 이상임을 의미한다. 이러한 경우, 인지부(140)는 로봇팔(300)이 소에게 먹이를 주는 동작을 수행하면, 소와 로봇팔(300)의 엔드이펙터(E) 간의 충돌이 발생할 것으로 판단할 수 있다. 즉, 인지부(140)는 충돌 상황을 예측한다. 예컨대, O1 = 0.80, O2 = 0.20인 경우, 충돌 확률이 80%로 비충돌 확률 20%를 초과하고 임계치 75% 이상이기 때문에 인지부(140)는 소와 로봇팔(300)의 엔드이펙터(E) 간의 충돌이 발생할 것으로 판단할 수 있다.
제1 출력노드(O1)의 값이 제2 출력노드(O2)의 값 이하이거나, 제1 출력노드(O1)의 값이 기 설정된 임계치(75%) 미만(예컨대, O1≤O2 OR O1<0.75). 이는 충돌 확률이 비충돌 확률 이하이거나, 기 설정된 임계치(75%) 미만임을 의미한다. 이러한 경우, 인지부(140)는 로봇팔(300)이 소에게 먹이를 주는 동작을 수행하는 경우에도, 소와 로봇팔(300)의 엔드이펙터(E) 간의 충돌이 발생하지 않을 것으로 판단할 수 있다. 예컨대, O1 = 0.60, O2 = 0.40인 경우, 충돌 확률이 60%로 비충돌 확률 40%를 초과하지만, 임계치 75% 미만이기 때문에 인지부(140)는 소와 로봇팔(300)의 엔드이펙터(E) 간의 충돌이 발생하지 않을 것으로 판단할 수 있다. 즉, 인지부(140)는 비충돌 상황을 예측한다.
마지막으로, 제어부(150)는 S260 단계에서 인지부(140)가 인지한 충돌 여부에 따라 로봇팔(300)의 움직임을 제어한다. 예컨대, 제어부(150)는 인지부(140)를 통해 충돌이 인지되면, 데이터처리부(120)로부터 해당 충돌격자지도(CGM)에 대응하는 카메라부(110)가 촬영한 영상을 수신하여 실제 충돌 위치를 획득한 후, 충돌 위치를 피하여 로봇팔(300)이 운용되도록 로봇팔(300)의 움직임을 제어한다.
한편, 앞서 설명된 본 발명의 실시예에 따른 방법은 다양한 컴퓨터수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 이와 같이, 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 균등론에 따라 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.
10: 학습인지장치 100: 제어장치
110: 카메라부 120: 데이터처리부
130: 학습부 140: 인지부
150: 제어부 200: 인공신경망
300: 로봇팔 E: 엔드이펙트
INL: 입력계층 CVL: 컨볼루션계층
POL: 풀링계층 FLL: 평탄화계층
FCL: 완전연결계층 OUL: 출력계층

Claims (14)

  1. 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습하기 위한 장치에 있어서,
    어느 하나의 계층의 연산 결과에 가중치가 적용되어 다음 계층의 입력이 되는 복수의 연산을 포함하는 복수의 계층을 포함하는 인공신경망;
    포인트 클라우드 영상을 2차원의 평면의 분포를 나타내는 제1 채널 및 거리를 나타내는 제2 채널을 포함하는 2채널의 충돌격자지도로 변환하는 데이터처리부; 및
    상기 충돌격자지도를 통해 상기 인공신경망이 충돌 여부에 대한 확률을 출력하도록 상기 인공신경망을 학습시키는 학습부;
    를 포함하는 것을 특징으로 하는
    충돌 상황을 학습하기 위한 장치.
  2. 제1항에 있어서,
    상기 데이터처리부는
    포인트 클라우드의 영상에서 포인트 클라우드를 포인트 클라우드의 x 및 y값에 매핑되는 제1 채널의 셀에 사상하고,
    제2 채널의 셀에 x 및 y값이 매핑되는 적어도 하나의 포인트 클라우드를 검출하고, 검출된 모든 포인트 클라우드의 z 값의 평균을 해당하는 제2 채널의 셀에 사상하여
    상기 충돌격자지도를 생성하는 것을 특징으로 하는
    충돌 상황을 학습하기 위한 장치.
  3. 제1항에 있어서,
    상기 학습부는
    충돌 여부에 대응하는 기댓값을 설정하고, 상기 충돌격자지도를 상기 인공신경망에 입력한 후, 상기 인공신경망이 상기 충돌격자지도에 대해 가중치가 적용되는 복수의 연산을 수행하여 출력값을 산출하면, 산출된 출력값과 설정된 기댓값의 차이가 최소가 되도록 상기 인공신경망의 가중치를 최적화하는 것을 특징으로 하는
    충돌 상황을 학습하기 위한 장치.
  4. 제1항에 있어서,
    상기 인공신경망은
    상기 충돌격자지도를 입력받는 입력계층;
    상기 입력계층의 충돌격자지도에 대해 가중치 행렬로 구성된 제1 필터를 통해 컨볼루션 연산을 수행하여 제1 특징지도를 구성하는 컨볼루션계층;
    상기 컨볼루션계층의 제1 특징지도에 대해 가중치 행렬로 구성된 제2 필터를 통해 풀링 연산을 수행하여 제2 특징지도를 구성하는 풀링계층;
    상기 풀링계층의 제2 특징지도를 변환하여 하나의 열로 정렬하는 평탄화계층;
    복수의 연산 노드를 포함하며, 복수의 연산 노드 각각이 하나의 열로 정렬된 제2 특징지도에 대해 활성화함수를 통한 연산 결과에 가중치를 적용하여 출력하는 완전연결계층; 및
    충돌 확률 및 비충돌 확률 각각에 대응하는 2개의 출력 노드를 포함하며, 상기 완전연결계층의 상기 복수의 연산 노드의 입력에 대해 활성화함수를 통한 연산을 수행하여 충돌 확률 및 비충돌 확률을 산출하고, 산출된 충돌 확률 및 비충돌 확률을 출력값으로 출력하는 출력계층;
    을 포함하는 것을 특징으로 하는
    충돌 상황을 학습하기 위한 장치.
  5. 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 인지하기 위한 장치에 있어서,
    어느 하나의 계층의 연산 결과에 가중치가 적용되어 다음 계층의 연산에 입력이 되는 복수의 연산을 포함하는 복수의 계층을 포함하며, 충돌격자지도가 입력되면, 충돌격자지도에 대해 복수의 계층의 가중치가 적용되는 복수의 연산을 수행하여 충돌 여부를 확률로 출력하도록 학습된 인공신경망;
    촬영을 통해 3차원 영상을 생성하는 카메라부;
    상기 3차원 영상을 변환하여 포인트 클라우드 영상을 생성하고, 생성된 포인트 클라우드 영상을 2차원의 평면의 분포를 나타내는 제1 채널과 거리를 나타내는 제2 채널을 포함하는 2채널의 충돌격자지도로 변환하는 데이터처리부; 및
    상기 변환된 충돌격자지도를 상기 인공신경망에 입력하여 상기 인공신경망이 충돌 여부를 확률을 출력하면, 상기 확률에 따라 충돌 여부를 인지하는 인지부;
    를 포함하는 것을 특징으로 하는
    충돌 상황을 인지하기 위한 장치.
  6. 제5항에 있어서,
    상기 데이터처리부는
    포인트 클라우드의 영상에서 포인트 클라우드를 포인트 클라우드의 x 및 y값에 매핑되는 제1 채널의 셀에 사상하고,
    제2 채널의 셀에 x 및 y의 값에 대한 모든 포인트 클라우드의 z 값의 평균을 해당하는 제2 채널의 셀에 사상하여
    상기 충돌격자지도를 생성하는 것을 특징으로 하는
    충돌 상황을 인지하기 위한 장치.
  7. 제5항에 있어서,
    상기 인공신경망은
    출력값으로 충돌 확률 및 비충돌 확률을 출력하며,
    상기 인지부는
    상기 충돌 확률이 상기 비충돌 확률 보다 크면서 상기 충돌 확률이 기 설정된 임계치 이상인 경우에 충돌하는 것으로 인지하는 것을 특징으로 하는
    충돌 상황을 인지하기 위한 장치.
  8. 제5항에 있어서,
    상기 인공신경망은
    상기 충돌격자지도를 입력받는 입력계층;
    상기 입력계층의 충돌격자지도에 대해 가중치 행렬로 구성된 제1 필터를 통해 컨볼루션 연산을 수행하여 제1 특징지도를 구성하는 컨볼루션계층;
    상기 컨볼루션계층의 제1 특징지도에 대해 가중치 행렬로 구성된 제2 필터를 통해 풀링 연산을 수행하여 제2 특징지도를 구성하는 풀링계층;
    상기 풀링계층의 제2 특징지도를 변환하여 하나의 열로 정렬하는 평탄화계층;
    복수의 연산 노드를 포함하며, 복수의 연산 노드 각각이 하나의 열로 정렬된 제2 특징지도에 대해 활성화함수를 통한 연산 결과에 가중치를 적용하여 출력하는 완전연결계층; 및
    충돌 확률 및 비충돌 확률 각각에 대응하는 2개의 출력 노드를 포함하며, 상기 완전연결계층의 상기 복수의 연산 노드의 입력에 대해 활성화함수를 통한 연산을 수행하여 충돌 확률 및 비충돌 확률을 산출하고, 산출된 충돌 확률 및 비충돌 확률을 출력값으로 출력하는 출력계층;
    을 포함하는 것을 특징으로 하는
    충돌 상황을 인지하기 위한 장치.
  9. 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습하기 위한 방법에 있어서,
    데이터처리부가 충돌 여부가 알려진 3차원 영상을 획득하는 단계;
    상기 데이터처리부가 상기 3차원 영상을 변환하여 클라우드 포인트 영상을 생성하는 단계;
    상기 데이터처리부가 상기 클라우드 포인트 영상을 변환하여 2차원의 평면의 분포를 나타내는 제1 채널 및 거리를 나타내는 제2 채널을 포함하는 2채널의 충돌격자지도를 생성하는 단계;
    학습부가 상기 충돌격자지도의 기초가 되는 상기 3차원 영상의 충돌 여부에 따라 기댓값을 설정하는 단계;
    상기 학습부가 상기 충돌격자지도를 입력함에 따라 인공신경망이 상기 충돌격자지도에 대해 복수의 연산을 통해 출력값을 산출하는 단계; 및
    상기 학습부가 상기 출력값과 상기 기댓값의 차이가 최소가 되도록 상기 인공신경망의 가중치를 최적화하는 단계;
    를 포함하는 것을 특징으로 하는
    충돌 상황을 학습하기 위한 방법.
  10. 제9항에 있어서,
    상기 충돌격자지도를 생성하는 단계는
    상기 데이터처리부가 포인트 클라우드의 영상에서 포인트 클라우드를 포인트 클라우드의 x 및 y값에 매핑되는 제1 채널의 셀에 사상하는 단계; 및
    상기 데이터처리부가 제2 채널의 셀에 x 및 y의 값에 대한 모든 포인트 클라우드의 z 값의 평균을 해당하는 제2 채널의 셀에 사상하는 단계;
    를 포함하는 것을 특징으로 하는
    충돌 상황을 학습하기 위한 방법.
  11. 제9항에 있어서,
    상기 인공신경망이 상기 충돌격자지도에 대해 상기 복수의 연산을 통해 출력값을 산출하는 단계는
    입력계층이 상기 충돌격자지도를 입력받는 단계;
    컨볼루션계층이 상기 입력계층의 충돌격자지도에 대해 가중치 행렬로 구성된 제1 필터를 통해 컨볼루션 연산을 수행하여 제1 특징지도를 구성하는 단계;
    풀링계층이 상기 컨볼루션계층의 제1 특징지도에 대해 가중치 행렬로 구성된 제2 필터를 통해 풀링 연산을 수행하여 제2 특징지도를 구성하는 단계;
    평탄화계층이 상기 풀링계층의 제2 특징지도를 변환하여 하나의 열로 정렬하는 단계;
    완전연결계층이 복수의 연산 노드를 통해 하나의 열로 정렬된 제2 특징지도에 대해 활성화함수를 통한 연산 결과에 가중치를 적용하여 출력하는 단계; 및
    출력계층이 상기 완전연결계층의 상기 복수의 연산 노드로부터 출력을 입력받아 활성화함수를 통한 연산을 수행하여 충돌 확률 및 비충돌 확률을 산출하고, 산출된 충돌 확률 및 비충돌 확률을 출력값으로 출력하는 단계;
    를 포함하는 것을 특징으로 하는
    충돌 상황을 학습하기 위한 방법.
  12. 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 인지하기 위한 방법에 있어서,
    카메라부가 로봇팔의 전방을 촬영하여 3차원 영상을 생성하는 단계;
    데이터처리부가 상기 3차원 영상을 변환하여 클라우드 포인트 영상을 생성하는 단계;
    상기 데이터처리부가 상기 클라우드 포인트 영상을 변환하여 2차원의 평면의 분포를 나타내는 제1 채널 및 거리를 나타내는 제2 채널을 포함하는 2채널의 충돌격자지도를 생성하는 단계;
    인지부가 상기 충돌격자지도를 입력함에 따라 인공신경망이 상기 충돌격자지도에 대해 복수의 연산을 통해 출력값을 산출하는 단계;
    상기 인지부가 상기 출력값의 확률에 따라 충돌 여부를 인지하는 단계; 및
    제어부가 상기 인지부가 인지한 충돌 여부에 따라 상기 로봇팔의 움직임을 제어하는 단계;
    를 포함하는 것을 특징으로 하는
    충돌 상황을 인지하기 위한 방법.
  13. 제12항에 있어서,
    상기 충돌격자지도를 생성하는 단계는
    상기 데이터처리부가 포인트 클라우드의 영상에서 포인트 클라우드를 포인트 클라우드의 x 및 y값에 매핑되는 제1 채널의 셀에 사상하는 단계; 및
    상기 데이터처리부가 제2 채널의 셀에 x 및 y의 값에 대한 모든 포인트 클라우드의 z 값의 평균을 해당하는 제2 채널의 셀에 사상하는 단계;
    를 포함하는 것을 특징으로 하는
    충돌 상황을 인지하기 위한 방법.
  14. 제12항에 있어서,
    상기 인공신경망이 상기 충돌격자지도에 대해 상기 복수의 연산을 통해 출력값을 산출하는 단계는
    입력계층이 상기 충돌격자지도를 입력받는 단계;
    컨볼루션계층이 상기 입력계층의 충돌격자지도에 대해 가중치 행렬로 구성된 제1 필터를 통해 컨볼루션 연산을 수행하여 제1 특징지도를 구성하는 단계;
    풀링계층이 상기 컨볼루션계층의 제1 특징지도에 대해 가중치 행렬로 구성된 제2 필터를 통해 풀링 연산을 수행하여 제2 특징지도를 구성하는 단계;
    평탄화계층이 상기 풀링계층의 제2 특징지도를 변환하여 하나의 열로 정렬하는 단계;
    완전연결계층이 복수의 연산 노드를 통해 하나의 열로 정렬된 제2 특징지도에 대해 활성화함수를 통한 연산 결과에 가중치를 적용하여 출력하는 단계; 및
    출력계층이 상기 완전연결계층의 상기 복수의 연산 노드로부터 출력을 입력받아 활성화함수를 통한 연산을 수행하여 충돌 확률 및 비충돌 확률을 산출하고, 산출된 충돌 확률 및 비충돌 확률을 출력값으로 출력하는 단계;
    를 포함하는 것을 특징으로 하는
    충돌 상황을 인지하기 위한 방법.
KR1020200032598A 2020-03-17 2020-03-17 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치 및 이를 위한 방법 KR102485272B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200032598A KR102485272B1 (ko) 2020-03-17 2020-03-17 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치 및 이를 위한 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200032598A KR102485272B1 (ko) 2020-03-17 2020-03-17 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치 및 이를 위한 방법

Publications (2)

Publication Number Publication Date
KR20210116004A KR20210116004A (ko) 2021-09-27
KR102485272B1 true KR102485272B1 (ko) 2023-01-04

Family

ID=77926050

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200032598A KR102485272B1 (ko) 2020-03-17 2020-03-17 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치 및 이를 위한 방법

Country Status (1)

Country Link
KR (1) KR102485272B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114236553B (zh) * 2022-02-23 2022-06-10 杭州蓝芯科技有限公司 一种基于深度学习的自主移动机器人定位方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200016756A1 (en) 2018-07-13 2020-01-16 Massachusetts Institute Of Technology Systems and methods for distributed training and management of ai-powered robots using teleoperation via virtual spaces

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101912453B1 (ko) 2012-02-17 2018-10-26 현대모비스 주식회사 장애물 검출 및 충돌 경보 장치 및 방법
KR101615687B1 (ko) * 2014-05-27 2016-04-26 한국생산기술연구원 충돌 예측 로봇 원격 제어 시스템 및 그 방법
WO2017151926A1 (en) * 2016-03-03 2017-09-08 Google Inc. Deep machine learning methods and apparatus for robotic grasping
KR102095842B1 (ko) * 2017-12-13 2020-04-28 연세대학교 산학협력단 격자지도 생성 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200016756A1 (en) 2018-07-13 2020-01-16 Massachusetts Institute Of Technology Systems and methods for distributed training and management of ai-powered robots using teleoperation via virtual spaces

Also Published As

Publication number Publication date
KR20210116004A (ko) 2021-09-27

Similar Documents

Publication Publication Date Title
CN107533754B (zh) 在深度卷积网络中降低图像分辨率
US9630318B2 (en) Feature detection apparatus and methods for training of robotic navigation
EP3405845B1 (en) Object-focused active three-dimensional reconstruction
EP0737938B1 (en) Method and apparatus for processing visual information
US9489623B1 (en) Apparatus and methods for backward propagation of errors in a spiking neuron network
US9367798B2 (en) Spiking neuron network adaptive control apparatus and methods
US9189730B1 (en) Modulated stochasticity spiking neuron network controller apparatus and methods
US9082079B1 (en) Proportional-integral-derivative controller effecting expansion kernels comprising a plurality of spiking neurons associated with a plurality of receptive fields
EP2065842B1 (en) Adaptive driver assistance system with robust estimation of object properties
KR20180004898A (ko) 딥러닝 기반의 이미지 처리 기술 및 그 방법
JP7110884B2 (ja) 学習装置、制御装置、学習方法、及び学習プログラム
CN114723955A (zh) 图像处理方法、装置、设备和计算机可读存储介质
KR102485272B1 (ko) 확률 체계 기반 충돌격자지도를 이용한 충돌 상황을 학습 및 인지하기 위한 장치 및 이를 위한 방법
US9552546B1 (en) Apparatus and methods for efficacy balancing in a spiking neuron network
CN113553943B (zh) 目标实时检测方法以及装置、存储介质、电子装置
CN112733710A (zh) 用于灌溉装置的灌溉水压控制的神经网络的训练方法
Andersen et al. Event-based navigation for autonomous drone racing with sparse gated recurrent network
CN115830711A (zh) 基于深度学习的手语词汇识别方法、系统、设备及介质
US11836988B2 (en) Method and apparatus for recognizing an object from input data
CN116700228A (zh) 机器人路径规划方法、电子设备及可读存储介质
Marques et al. Manipulation of bio-inspired robot with gesture recognition through fractional calculus
KR102428941B1 (ko) 광대역 라이다 스캔 기반 이미지 정합을 통해 텍스처가 구현된 3d 스캔 데이터 생성 방법, 장치 및 시스템
KR102646894B1 (ko) 고정된 기기 또는 이동가능한 기기에 장착되고, 인공지능 반도체를 탑재한 전자 장치
KR102454452B1 (ko) 3d 스캔 데이터를 이용한 차체 구조 역설계 방법, 장치 및 시스템
CN113554700B (zh) 一种不可见光瞄准方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant