KR20240079863A - 포인트 클라우드 데이터 처리 장치 및 그 동작 방법 - Google Patents

포인트 클라우드 데이터 처리 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR20240079863A
KR20240079863A KR1020220163222A KR20220163222A KR20240079863A KR 20240079863 A KR20240079863 A KR 20240079863A KR 1020220163222 A KR1020220163222 A KR 1020220163222A KR 20220163222 A KR20220163222 A KR 20220163222A KR 20240079863 A KR20240079863 A KR 20240079863A
Authority
KR
South Korea
Prior art keywords
point cloud
memory
data
calculation unit
accelerator
Prior art date
Application number
KR1020220163222A
Other languages
English (en)
Inventor
박준영
김지혜
Original Assignee
주식회사 유엑스팩토리
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 유엑스팩토리 filed Critical 주식회사 유엑스팩토리
Priority to KR1020220163222A priority Critical patent/KR20240079863A/ko
Priority to PCT/KR2023/019395 priority patent/WO2024117752A1/ko
Publication of KR20240079863A publication Critical patent/KR20240079863A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • Z05S12/00

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)
  • Microelectronics & Electronic Packaging (AREA)

Abstract

본 개시는 포인트 클라우드 데이터 처리 장치 및 동작 방법에 관한 것으로, 본 개시의 실시예에 따른 포인트 클라우드 데이터 처리 장치는, 센서부로부터 수집되는 포인트 클라우드 데이터에 기초하여 3차원 포인트 클라우드 맵(map)을 생성하는 포인트 클라우드 생성기; 및 상기 3차원 포인트 클라우드 맵을 저장하는 메모리; 및 상기 메모리와 접속되어 직접 데이터를 송수신하며, 뉴럴 네트워크를 통해 상기 3차원 포인트 클라우드 맵으로부터 특징을 추출하는 연산부;를 포함하는 PIM(Processing In Memory) 구조의 포인트 클라우드 가속기를 포함할 수 있다.

Description

포인트 클라우드 데이터 처리 장치 및 그 동작 방법{APPARATUS FOR PROCESSING POINT CLOUD DATA AND OPERATION METHOD THEREOF}
본 개시(disclosure)의 기술적 사상은 포인트 클라우드 데이터 처리 장치 및 그 동작 방법에 관한 것이다.
포인트 클라우드(point cloud)는 3차원 공간상에 배치된 복수의 데이터 포인트(point)의 집합을 의미하는 것으로서, 이러한 점들이 합쳐져 3차원 형상이나 객체를 표현할 수 있다(도 1 참조). 포인트 클라우드 데이터는, 예를 들어, LiDAR 스캐너, RGB-D와 같은 센서에 의해 수집될 수 있다. 구체적으로, 빛이 물체에 닿았다가 반사되어 돌아오는 빛의 방향과 돌아오는 시간을 통해 3차원 포인트의 좌표를 생성하고 이를 모아 포인트 클라우드를 형성한다. 대용량 포인트 클라우드 데이터는 자율주행 자동차, 로봇, 3차원 지도 제작 등 컴퓨터 비전 기술을 이용하는 다양한 분야에 널리 활용될 수 있다.
한편, 이러한 대용량 포인트 클라우드 데이터의 분석을 위하여 딥러닝 모델이 적용된다. 그런데, 3차원 포인트 클라우드 기반 딥러닝 알고리즘은 기존 전통적인 2차원 영상 기반 딥러닝 대비 연산과 메모리 접근 패턴의 복잡도 증가로 발생하는 Latency 및 소모 전력 증가로 인해 컴퓨팅/메모리 리소스가 제한적인 CPU나 GPU에서 실시간 처리가 불가능하다는 문제점이 있다. 즉, GPU는 병렬 연산을 위해 수천 개의 코어를 사용하기 때문에 다른 프로세서들보다 전력 소모량이 높으며, CPU는 Von Neumann 구조로, 제어신호/명령어/데이터를 모두 하나의 버스로 이용하여 프로세서와 메모리간 병목 현상이 발생하는 데, 이는 데이터의 병렬 처리에 적합하지 않다.
최근 무인 이동체(로봇 , 자동차 , 드론 등)에서의 포인트 클라우드 센서의 채택 및 활용이 활발해지고 포인트 클라우드 기반의 딥러닝 어플리케이션의 요구가 커짐에 따라, 이를 디바이스 상에서 실시간/저전력으로 구동하기 위한 포인트 클라우드 데이터 처리 장치에 대한 요구가 증대되고 있다.
본 개시의 기술적 사상은 상기 과제를 해결하기 위한 포인트 클라우드 데이터 처리 장치 및 그 동작 방법을 제공하는 것을 목적으로 한다.
본 개시의 기술적 사상에 따른 포인트 클라우드 데이터 처리 장치 및 그 동작 방법이 이루고자 하는 기술적 과제는 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제는 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 개시의 기술적 사상에 의한 일 양태에 따르면, 포인트 클라우드(point cloud) 데이터 처리 장치는, 센서부로부터 수집되는 포인트 클라우드 데이터에 기초하여 3차원 포인트 클라우드 맵(map)을 생성하는 포인트 클라우드 생성기; 및 상기 3차원 포인트 클라우드 맵을 저장하는 메모리; 및 상기 메모리와 접속되어 직접 데이터를 송수신하며, 뉴럴 네트워크를 통해 상기 3차원 포인트 클라우드 맵으로부터 특징을 추출하는 연산부;를 포함하는 PIM(Processing In Memory) 구조의 포인트 클라우드 가속기를 포함할 수 있다.
예시적인 실시예에 따르면, 적어도 하나의 입출력 경로를 통해 데이터 및 신호를 전달함으로써, 상기 포인트 클라우드 생성기와 상기 포인트 클라우드 가속기의 동작을 제어하는 호스트 프로세서를 더 포함할 수 있다.
예시적인 실시예에 따르면, 상기 메모리는 데이터의 직접 송수신이 가능하도록 물리적인 인터커넥트를 통해 상기 연산부와 전자적으로 연결될 수 있다.
예시적인 실시예에 따르면, 상기 메모리는 각각 독립적인 인터페이스 대역폭을 가지는 복수의 메모리 영역을 포함할 수 있다.
예시적인 실시예에 따르면, 상기 메모리는, 상기 3차원 포인트 클라우드 맵을 저장하는 제 1 메모리 영역; 상기 3차원 포인트 클라우드 맵으로부터 상기 특징을 추출하는 상기 뉴럴 네트워크의 복수의 레이어(layer)를 생성하기 위한 레이어 생성 알고리즘을 저장하는 제 2 메모리 영역; 및 상기 연산부를 통해 추출된 상기 특징에 대응하는 객체에 대한 레이블(label) 정보를 저장하는 제 3 메모리 영역을 포함할 수 있다.
예시적인 실시예에 따르면, 상기 연산부는, 다층 퍼셉트론(Multi-Layer Perceptron)을 통해 상기 3차원 포인트 클라우드 맵에 포함되는 각 포인트에서 독립적으로 특징을 학습하는 학습부; 및 맥스 풀링(max pooling)을 이용하여 전역 특징(global feature)을 추출하는 특징 추출부;를 포함할 수 있다.
본 개시의 기술적 사상에 의한 일 양태에 따르면, 포인트 클라우드(point cloud) 데이터 처리 장치의 동작 방법은, 포인트 클라우드 생성기가 센서부를 통해 획득되는 포인트 클라우드 데이터를 기초로 3차원 포인트 클라우드 맵을 생성하는 단계; 상기 포인트 클라우드 생성기가 상기 3차원 포인트 클라우드 맵을 포인트 클라우드 가속기의 메모리에 전달하는 단계; 상기 포인트 클라우드 가속기의 연산부가 뉴럴 네트워크를 통해 상기 메모리에 저장된 상기 3차원 포인트 클라우드 맵으로부터 특징을 추출하는 단계; 및 상기 포인트 클라우드 가속기의 연산부가 상기 특징에 대응하는 객체에 대한 레이블(label) 정보를 생성하고, 상기 메모리에 저장하는 단계를 포함하고, 상기 포인트 클라우드 가속기는 PIM(Processing In Memory) 구조로서, 상기 연산부는 상기 메모리와 접속되어 직접 데이터를 송수신할 수 있다.
본 개시의 기술적 사상에 의한 실시예들에 따르면, 포인트 클라우드 가속기에 PIM(Processing In Memory)구조를 접목시켜, 호스트 프로세서를 거치지 않고 연산부(가속기 프로세서)가 분석과정에서 필요한 데이터를 메모리에서 직접 가져와 처리하도록 구현함으로써, 포인트 클라우드 데이터의 분석 시간을 현저히 단축시키며, 시스템 크기를 줄이고, 전력 소모 전략을 절감시킬 수 있다.
본 개시의 기술적 사상에 의한 실시예들에 따르면, 호스트 프로세서가 전반적인 제어흐름을 담당하고, 연산부가 하드웨어 상태에서 메모리와 직접 연결되어, 학습 및 특징 추출 과정을 담당하도록 구성함으로써, 많은 하드웨어 리소스 없이도 높은 가속 성능을 구현할 수 있다.
본 개시의 기술적 사상에 따른 포인트 클라우드 데이터 처리 장치 및 그 동작 방법이 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 포인트 클라우드 데이터를 설명하기 위한 도면이다.
도 2는 본 개시의 실시예에 따른 포인트 클라우드 데이터 처리 장치의 구성을 도시한 블록도이다.
도 3은 본 개시의 실시예에 따른 포인트 클라우드 생성기의 구성을 도시한 블록도이다.
도 4는 본 개시의 실시예에 따른 포인트 클라우드 가속기의 구성을 도시한 블록도이다.
도 5는 본 개시의 실시예에 따른 포인트 클라우드 데이터 처리 장치의 동작 방법을 설명하기 위한 흐름도이다.
본 개시의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세히 설명하고자 한다. 그러나, 이는 본 개시의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 개시의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 개시의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 개시에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 개시에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processer), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
그리고 본 개시에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
본 명세서에 걸쳐, 뉴럴 네트워크(neural network)는 연산 모델, 신경망, 네트워크 함수와 동일한 의미로 사용될 수 있다. 신경망은 일반적으로 노드라 지칭될 수 있는 상호 연결된 계산 단위들의 집합으로 구성될 수 있다. 이러한 노드들은 뉴런(neuron)들로 지칭될 수도 있다. 신경망은 적어도 하나 이상의 노드들을 포함하여 구성된다. 신경망들을 구성하는 노드(또는 뉴런)들은 하나 이상의 링크에 의해 상호 연결될 수 있다.
신경망 내에서, 링크를 통해 연결된 하나 이상의 노드들은 상대적으로 입력 노드 및 출력 노드의 관계를 형성할 수 있다. 입력 노드 및 출력 노드의 개념은 상대적인 것으로서, 하나의 노드에 대하여 출력 노드 관계에 있는 임의의 노드는 다른 노드와의 관계에서 입력 노드 관계에 있을 수 있으며, 그 역도 성립할 수 있다. 상술한 바와 같이, 입력 노드 대 출력 노드 관계는 링크를 중심으로 생성될 수 있다. 하나의 입력 노드에 하나 이상의 출력 노드가 링크를 통해 연결될 수 있으며, 그 역도 성립할 수 있다.
하나의 링크를 통해 연결된 입력 노드 및 출력 노드 관계에서, 출력 노드의 데이터는 입력 노드에 입력된 데이터에 기초하여 그 값이 결정될 수 있다. 여기서 입력 노드와 출력 노드를 상호 연결하는 링크는 가중치(weight)를 가질 수 있다. 가중치는 가변적일 수 있으며, 신경망이 원하는 기능을 수행하기 위해, 사용자 또는 알고리즘에 의해 가변 될 수 있다. 예를 들어, 하나의 출력 노드에 하나 이상의 입력 노드가 각각의 링크에 의해 상호 연결된 경우, 출력 노드는 상기 출력 노드와 연결된 입력 노드들에 입력된 값들 및 각각의 입력 노드들에 대응하는 링크에 설정된 가중치에 기초하여 출력 노드 값을 결정할 수 있다.
신경망을 구성하는 노드들의 부분 집합은 레이어(layer)를 구성할 수 있다. 신경망을 구성하는 노드들 중 일부는, 최초 입력 노드로부터의 거리들에 기초하여, 하나의 레이어(layer)를 구성할 수 있다. 예를 들어, 최초 입력 노드로부터 거리가 n인 노드들의 집합은, n 레이어를 구성할 수 있다. 최초 입력 노드로부터 거리는, 최초 입력 노드로부터 해당 노드까지 도달하기 위해 거쳐야 하는 링크들의 최소 개수에 의해 정의될 수 있다. 그러나, 이러한 레이어의 정의는 설명을 위한 임의적인 것으로서, 신경망 내에서 레이어의 차수는 상술한 것과 상이한 방법으로 정의될 수 있다. 예를 들어, 노드들의 레이어는 최종 출력 노드로부터 거리에 의해 정의될 수도 있다.
뉴럴 네트워크는 입력 레이어와 출력 레이어 외에 복수의 히든 레이어를 포함하는 딥 뉴럴 네트워크(Deep Neural Network, DNN)를 포함할 수 있다. 딥 뉴럴 네트워크를 이용하면 데이터의 잠재적인 구조(latent structures)를 파악할 수 있다. 딥 뉴럴 네트워크는 컨볼루션 뉴럴 네트워크(CNN: convolutional neural network), 리커런트 뉴럴 네트워크(RNN: recurrent neural network), 오토 인코더(auto encoder), GAN(Generative Adversarial Networks), 제한 볼츠만 머신(RBM: restricted boltzmann machine), 심층 신뢰 네트워크(DBN: deep belief network), Q 네트워크, U 네트워크, 샴 네트워크, 적대적 생성 네트워크(GAN: Generative Adversarial Network) 등을 포함할 수 있다. 전술한 딥 뉴럴 네트워크의 기재는 예시일 뿐이며 본 개시는 이에 제한되지 않는다.
뉴럴 네트워크는 교사 학습(supervised learning), 비교사 학습(unsupervised learning), 반교사학습(semi supervised learning), 또는 강화학습(reinforcement learning) 중 적어도 하나의 방식으로 학습될 수 있다. 뉴럴 네트워크의 학습은 뉴럴 네트워크가 특정한 동작을 수행하기 위한 지식을 뉴럴 네트워크에 적용하는 과정일 수 있다.
도 2는 본 개시의 실시예에 따른 포인트 클라우드 데이터 처리 장치의 구성을 도시한 블록도이고, 도 3은 본 개시의 실시예에 따른 포인트 클라우드 생성기의 구성을 도시한 블록도이며, 도 4는 본 개시의 실시예에 따른 포인트 클라우드 가속기의 구성을 도시한 블록도이다.
도 1을 참조하면, 장치(1000)는 포인트 클라우드 생성기(100), 포인트 클라우드 가속기(200) 및 호스트 프로세서(300)를 포함할 수 있다.
포인트 클라우드 생성기(100)는 포인트 클라우드 데이터를 획득하고, 이를 기초로 3차원 포인트 클라우드 맵을 생성할 수 있다. 이를 위해, 포인트 클라우드 생성기(100)는 센서부(110) 및 노이즈 제거부(120)를 포함할 수 있다.
센서부(110)는 객체에 대응하는 포인트 클라우드 데이터를 획득할 수 있다. 예를 들어, 센서부(110)는 물체를 향해 조사된 적외선 등의 빛이 물체에 맞아 반사되어 돌아오는 시간을 측정하는 방식으로 구동되며, 빛의 방향과 돌아오는 시간(비행 시간)을 통해 3차원 포인트의 좌표를 생성하고 이를 모아 포인트 클라우드 데이터를 생성할 수 있다. 실시예에서, 센서부(110)는 ToF(Time of Flight) 방식의 센서일 수 있으며, 보다 구체적으로 LiDAR(Light Detection and Ranging) 스캐너일 수 있다. 다만, 이는 예시적인 것으로서, 포인트 클라우드를 획득할 수 있는 다양한 센서가 적용될 수 있다.
노이즈 제거부(120)는 포인트 클라우드 데이터로부터 노이즈 등을 제거하여 3차원 포인트 클라우드 맵을 생성할 수 있다. 즉, 직접 취득한 3차원 포인트 클라우드 데이터는 노이즈나 불균일한 샘플링 문제를 갖을 수 있다. 예를 들어, 이상점(outlier)이나 data missing 같은 노이즈가 있을 수 있다. 여기서, 이상점은 잘못 평가된 값으로, 샘플의 전체적인 패턴에서 벗어나게 관측되는 값을 말한다. 노이즈 제거부(120)는 시각화 도구(Box-plot, Histogram, Scatter Plot 등)를 사용하여 이러한 이상점을 발견할 수 있으며, 이를 변형 또는 구간화(binning)를 통해 제거할 수 있다. 또한, 센서부(110)를 통해 취득한 3차원 포인트 클라우드 데이터는 통상 수십만개의 포인트를 생성하며, 노이즈 제거부(120)는 포인트의 수가 급격히 늘어나는 경우, 다운 샘플링으로 데이터의 수를 줄일 수 있다.
포인트 클라우드 생성기(100)에 의해 생성된 3차원 포인트 클라우드 맵은 호스트 프로세서(300)의 제어에 의해 포인트 클라우드 가속기(200)로 전달되어 메모리(220)의 제 1 메모리 영역(221)에 저장될 수 있다.
포인트 클라우드 가속기(200)는 포인트 클라우드 생성기(100)에서 생성된 3차원 포인트 클라우드 맵을 저장하며, 뉴럴 네트워크를 통해 3차원 포인트 클라우드 맵으로부터 특징을 추출하여 추출 결과를 저장할 수 있다. 실시예에서, 포인트 클라우드 가속기(200)는 PIM(Processing In Memory) 구조가 적용되는 메모리 디바이스일 수 있다. 상기 메모리 디바이스는 메모리 기능에 연산 작업을 수행하는 프로세서의 기능을 합친 반도체 메모리를 지칭할 수 있다.
포인트 클라우드 가속기(200)는, 예를 들어, SSD(Solid State Drive), DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), PRAM(Persistent Random Access Memory), 강유전성 랜덤 액세스 메모리(FRAM), 또는 MRAM(Magneto-resistive Random Access Memory) 등의 NVRAM(Non-Volatile Random Access Memory)와 같은 임의의 다양한 메모리 장치 또는 상이한 메모리 유형의 조합을 통해 구현될 수 있다.
포인트 클라우드 가속기(200)는 연산부(210) 및 메모리(220)를 포함할 수 있다. 이때, 포인트 클라우드 데이터의 고속처리를 위해 연산부(210)와 메모리(220)가 직접 데이터를 주고받을 수 있도록 구성될 수 있다.
연산부(210)는 포인트 클라우드 가속기(200)의 프로세서 기능을 수행하는 것으로서, 네트워크의 연산을 담당한다. 여기서 뉴럴 네트워크란, 이하 상술되는, 학습부(211)에서 사용하는 다층 퍼셉트론이나 특징 추출부(212)에서 사용하는 맥스 풀링(max pooling) 레이어로 구성된 특징 추출 네트워크 일 수 있다. 이러한 뉴럴 네트워크를 구성하는 다양한 레이어는 제 2 메모리 영역(222)에서 가져올 수 있다.
연산부(210)는 호스트 프로세서(300)를 거치지 않고 메모리(220)와 접속되어 직접 데이터를 송수신하며, 뉴럴 네트워크를 통해 3차원 포인트 클라우드 맵으로부터 특징을 추출할 수 있다. 이를 위해, 연산부(210)는 학습부(211) 및 특징 추출부(212)를 포함할 수 있다.
학습부(211)는 메모리(220)의 제 1 메모리 영역(221)에 저장된 3차원 포인트 클라우드 맵을 토대로 학습을 수행할 수 있다. 예를 들어, 학습부(211)는 다층 퍼셉트론(Multi-Layer Perceptron, MLP)을 통해 각 포인트에서 독립적으로 특징을 학습하도록 구성될 수 있다.
특징 추출부(212)는 학습부(211)의 학습 결과에 기초하여 맥스 풀링(max pooling) 레이어를 통해 전역 특징(global feature)을 추출할 수 있다.
연산부(210)는 추출된 특징(전역 특징)에 대응하는 객체에 대한 레이블 정보 생성하고, 이를 메모리(220)의 제 3 메모리 영역(223)에 저장할 수 있다.
메모리(220)는 프로그램들, 데이터, 또는 명령들을 저장할 수 있으며, 특히, 연산부(210)의 뉴럴 네트워크를 생성하기 위한 레이어 생성 알고리즘과, 뉴럴 네트워크의 연산 수행 과정에 필요한 입력값(예를 들어, 3차원 포인트 클라우드 맵)과, 연산 수행의 결과로 생성되는 중간 및 최종 결과들(예를 들어, 레이블 정보)을 저장할 수 있다.
메모리(220)는 데이터를 직접 송수신할 수 있도록 물리적인 인터커넥트를 통해 연산부(210)와 전자적으로 연결될 수 있다. 예를 들어, 연산부(210)와 메모리(220)가 적어도 하나의 I/O 버스를 통해 상호 연결되어, 제어 신호 및/또는 데이터를 직접 주고 받을 수 있도록 구현될 수 있다.
메모리(220)는 복수의 메모리 영역을 포함할 수 있다. 실시예에서, 메모리(220)는 독립적인 인터페이스 대역폭을 가지는 제 1 메모리 영역(221), 제 2 메모리 영역(222) 및 제 3 메모리 영역(223)을 포함할 수 있다.
예를 들어, 제 1 메모리 영역(221)에는 포인트 클라우드 생성기(100)에서 생성된 3차원 포인트 클라우드 맵을 저장될 수 있다. 또한, 예를 들어, 제 2 메모리 영역(222)에는 3차원 포인트 클라우드 맵으로부터 특징을 추출하는 뉴럴 네트워크의 복수의 레이어를 생성하기 위한 레이어 생성 알고리즘이 저장될 수 있다. 또한, 예를 들어, 제 3 메모리 영역(223)에는 연산부(210)를 통해 추출된 특징에 대응하는 객체에 대한 레이블(label) 정보를 저장될 수 있다.
호스트 프로세서(300)는 프로세싱 기능을 갖는 하드웨어로서, 장치(1000)의 전반적인 동작을 제어할 수 있다. 예를 들어, 장치(1000)는 입출력 장치(I/O device)를 포함할 수 있고, 호스트 프로세서(300)는 메모리 맵 입출력(Memory-mapped I/O, MMIO) 방식에 따라 적어도 하나의 입출력 경로를 통해 데이터 및 신호를 전달함으로써, 포인트 클라우드 처리 장치(1000)의 각 구성의 동작을 제어할 수 있다.
호스트 프로세서(300)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 호스트 프로세서(300)는 CPU(Central Processing Unit), GPU(Graphic Processing Unit), AP(Application Processor) 등으로 구현될 수 있다.
호스트 프로세서(300)는 연산부(210)의 데이터 처리시 연산 효율을 높이기 위하여 포인트 클라우드 생성기(100) 및/또는 포인트 클라우드 가속기(200)에서 처리할 데이터를 전체적으로 제어할 수 있다. 예를 들어, 센서부(110)에서 형성된 데이터를 감지/처리하여 3차원 포인트 클라우드 맵이 신속하게 생성될 수 있도록 데이터 처리시 연산 효율을 높인다.
호스트 프로세서(300)는 데이터를 전송하기 위한 데이터 버스 및 코맨드(CMD) 및 어드레스(ADDR)를 전송하기 위한 콘트롤 버스 등을 통해 각종 데이터 및 정보들을 포인트 클라우드 생성기(100) 및/또는 포인트 클라우드 가속기(200)에 전달할 수 있다.
호스트 프로세서(300)는 포인트 클라우드 가속기(200)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 실시예에서, 호스트 프로세서(300)는 포인트 클라우드 가속기(200)를 제어하기 위한 메모리 컨트롤러를 포함할 수 있다.
다만, 이러한 장치(1000)의 구성은 예시적인 것으로서, 실시예에 따라, 일부 구성이 변형되거나, 추가될 수 있다.
도 5는 본 개시의 실시예에 따른 포인트 클라우드 데이터 처리 장치의 동작 방법을 설명하기 위한 흐름도이다
S510 단계에서, 포인트 클라우드 생성기(100)는 센서부(110)를 통해 3차원의 포인트 클라우드 데이터를 획득할 수 있다.
이어서, S520 단계에서, 포인트 클라우드 생성기(100)는 노이즈 제거부(120)를 통해 원시의 포인트 클라우드 데이터로부터 노이즈를 제거할 수 있으며, 3차원의 포인트 클라우드 맵을 생성할 수 있다.
생성된 3차원의 포인트 클라우드 맵은 호스트 프로세서(300)의 제어에 따라, 포인트 클라우드 가속기(200)의 메모리(220)로 전달되어, 제 1 메모리 영역(221)에 저장될 수 있다.
S530 단계 및 S540 단계에서, 포인트 클라우드 가속기(200)의 연산부(210)는 호스트 프로세서(300)의 제어에 따라 메모리(220)에 직접 접속하여 3차원 포인트 클라우드 맵을 전달받고, 뉴럴 네트워크 연산을 통해 3차원 포인트 클라우드 맵으로부터 적어도 하나의 특징을 추출할 수 있다.
구체적으로, S530 단계에서, 학습부(211)는 다층 퍼셉트론을 형성되는 복수의 레이어를 통해 3차원 포인트 클라우드 맵을 기초로 각 포인트에서 독립적으로 특징을 학습할 수 있다. 이어서, S540 단계에서, 특징 추출부(212)는 학습부(211)의 학습 결과를 전달받아, 맥스 풀링(max pooling)을 이용하여 전역 특징(global feature)을 추출할 수 있다.
이때, 학습부(211) 및 특징 추출부(212)를 구성하는 뉴럴 네트워크의 복수의 레이어는 메모리(220)의 제 2 메모리 영역(222)에 저장된 레이어 생성 알고리즘에 의해 생성될 수 있다.
이어서, S550 단계에서, 포인트 클라우드 가속기(200)는 추출된 특징(전역 특징)에 대응하는 객체에 대한 레이블 정보를 생성하고, 이를 메모리(220)의 제 3 메모리 영역(223)에 저장할 수 있다.
다만, 이러한 장치(1000)의 동작 방법(500)은 예시적인 것으로서, 실시예에 따라, 일부 단계가 변형되거나, 추가될 수 있다.
본 개시의 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 개시를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
또한, 개시된 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 S/W 프로그램, S/W 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 전자 장치의 제조사 또는 전자 마켓(예, 구글 플레이 스토어, 앱 스토어)을 통해 전자적으로 배포되는 S/W 프로그램 형태의 상품(예, 다운로더블 앱)을 포함할 수 있다. 전자적 배포를 위하여, S/W 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 제조사의 서버, 전자 마켓의 서버, 또는 SW 프로그램을 임시적으로 저장하는 중계 서버의 저장매체가 될 수 있다.
컴퓨터 프로그램 제품은, 서버 및 클라이언트 장치로 구성되는 시스템에서, 서버의 저장매체 또는 클라이언트 장치의 저장매체를 포함할 수 있다. 또는, 서버 또는 클라이언트 장치와 통신 연결되는 제 3 장치(예, 스마트폰)가 존재하는 경우, 컴퓨터 프로그램 제품은 제 3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 서버로부터 클라이언트 장치 또는 제 3 장치로 전송되거나, 제 3 장치로부터 클라이언트 장치로 전송되는 S/W 프로그램 자체를 포함할 수 있다.
이 경우, 서버, 클라이언트 장치 및 제 3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 서버, 클라이언트 장치 및 제 3 장치 중 둘 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 서버(예로, 클라우드 서버 또는 인공 지능 서버 등)가 서버에 저장된 컴퓨터 프로그램 제품을 실행하여, 서버와 통신 연결된 클라이언트 장치가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 개시의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 개시의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 개시의 권리범위에 속한다.

Claims (7)

  1. 포인트 클라우드(point cloud) 데이터 처리 장치에 있어서,
    센서부로부터 수집되는 포인트 클라우드 데이터에 기초하여 3차원 포인트 클라우드 맵(map)을 생성하는 포인트 클라우드 생성기; 및
    상기 3차원 포인트 클라우드 맵을 저장하는 메모리; 및 상기 메모리와 접속되어 직접 데이터를 송수신하며, 뉴럴 네트워크를 통해 상기 3차원 포인트 클라우드 맵으로부터 특징을 추출하는 연산부;를 포함하는 PIM(Processing In Memory) 구조의 포인트 클라우드 가속기를 포함하는, 장치.
  2. 제 1 항에 있어서,
    적어도 하나의 입출력 경로를 통해 데이터 및 신호를 전달함으로써, 상기 포인트 클라우드 생성기와 상기 포인트 클라우드 가속기의 동작을 제어하는 호스트 프로세서를 더 포함하는, 장치.
  3. 제 1 항에 있어서,
    상기 메모리는 데이터의 직접 송수신이 가능하도록 물리적인 인터커넥트를 통해 상기 연산부와 전자적으로 연결되는, 장치.
  4. 제 1 항에 있어서,
    상기 메모리는 각각 독립적인 인터페이스 대역폭을 가지는 복수의 메모리 영역을 포함하는, 장치.
  5. 제 1 항에 있어서,
    상기 메모리는,
    상기 3차원 포인트 클라우드 맵을 저장하는 제 1 메모리 영역;
    상기 3차원 포인트 클라우드 맵으로부터 상기 특징을 추출하는 상기 뉴럴 네트워크의 복수의 레이어(layer)를 생성하기 위한 레이어 생성 알고리즘을 저장하는 제 2 메모리 영역; 및
    상기 연산부를 통해 추출된 상기 특징에 대응하는 객체에 대한 레이블(label) 정보를 저장하는 제 3 메모리 영역을 포함하는, 장치.
  6. 제 1 항에 있어서,
    상기 연산부는,
    다층 퍼셉트론(Multi-Layer Perceptron)을 통해 상기 3차원 포인트 클라우드 맵에 포함되는 각 포인트에서 독립적으로 특징을 학습하는 학습부; 및
    맥스 풀링(max pooling)을 이용하여 전역 특징(global feature)을 추출하는 특징 추출부;를 포함하는, 장치,
  7. 포인트 클라우드(point cloud) 데이터 처리 장치의 동작 방법에 있어서,
    포인트 클라우드 생성기가 센서부를 통해 획득되는 포인트 클라우드 데이터를 기초로 3차원 포인트 클라우드 맵(map)을 생성하는 단계;
    상기 포인트 클라우드 생성기가 상기 3차원 포인트 클라우드 맵을 포인트 클라우드 가속기의 메모리에 전달하는 단계;
    상기 포인트 클라우드 가속기의 연산부가 뉴럴 네트워크를 통해 상기 메모리에 저장된 상기 3차원 포인트 클라우드 맵으로부터 특징을 추출하는 단계; 및
    상기 포인트 클라우드 가속기의 연산부가 상기 특징에 대응하는 객체에 대한 레이블(label) 정보를 생성하고, 상기 메모리에 저장하는 단계를 포함하고,
    상기 포인트 클라우드 가속기는 PIM(Processing In Memory) 구조로서, 상기 연산부는 상기 메모리와 접속되어 직접 데이터를 송수신하는, 방법.
KR1020220163222A 2022-11-29 2022-11-29 포인트 클라우드 데이터 처리 장치 및 그 동작 방법 KR20240079863A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220163222A KR20240079863A (ko) 2022-11-29 2022-11-29 포인트 클라우드 데이터 처리 장치 및 그 동작 방법
PCT/KR2023/019395 WO2024117752A1 (ko) 2022-11-29 2023-11-29 포인트 클라우드 데이터 처리 장치 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220163222A KR20240079863A (ko) 2022-11-29 2022-11-29 포인트 클라우드 데이터 처리 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20240079863A true KR20240079863A (ko) 2024-06-05

Family

ID=91324675

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220163222A KR20240079863A (ko) 2022-11-29 2022-11-29 포인트 클라우드 데이터 처리 장치 및 그 동작 방법

Country Status (2)

Country Link
KR (1) KR20240079863A (ko)
WO (1) WO2024117752A1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10408939B1 (en) * 2019-01-31 2019-09-10 StradVision, Inc. Learning method and learning device for integrating image acquired by camera and point-cloud map acquired by radar or LiDAR corresponding to image at each of convolution stages in neural network and testing method and testing device using the same
CN116783620A (zh) * 2020-11-16 2023-09-19 伟摩有限责任公司 根据点云的高效三维对象检测
JP2022098397A (ja) * 2020-12-21 2022-07-01 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、および情報処理方法、並びにプログラム
KR102342298B1 (ko) * 2021-04-26 2021-12-21 국민대학교산학협력단 3d 시뮬레이터 기반의 과실비율 산정 장치 및 방법

Also Published As

Publication number Publication date
WO2024117752A1 (ko) 2024-06-06

Similar Documents

Publication Publication Date Title
He et al. Explainable Deep Reinforcement Learning for UAV autonomous path planning
TWI746865B (zh) 深度視覺處理器
US20210390653A1 (en) Learning robotic tasks using one or more neural networks
Leroux et al. The cascading neural network: building the internet of smart things
US11580367B2 (en) Method and system for processing neural network
US10510146B2 (en) Neural network for image processing
US10372968B2 (en) Object-focused active three-dimensional reconstruction
Xie et al. Point clouds learning with attention-based graph convolution networks
EP4198826A1 (en) Deep learning training method and apparatus for use in computing device
JP6742554B1 (ja) 情報処理装置およびそれを備えた電子機器
DE102018129975A1 (de) Codierung von Lidar-Signalen zur Vermeidung von Störungen
WO2018160267A2 (en) Cloud based robotic control systems and methods
JP2018533138A (ja) 選択的バックプロパゲーション
JP2018527677A (ja) 分類のための強制的なスパース性
Rahman et al. Performance evaluation of deep learning object detectors for weed detection for cotton
US11119507B2 (en) Hardware accelerator for online estimation
Alam et al. Comparison of decision trees and deep learning for object classification in autonomous driving
Xia et al. Cooperative multi-target hunting by unmanned surface vehicles based on multi-agent reinforcement learning
Saguil et al. A layer-partitioning approach for faster execution of neural network-based embedded applications in edge networks
Xuan et al. MV-C3D: A spatial correlated multi-view 3d convolutional neural networks
Rahman et al. Deep neural networks for weed detections towards precision weeding
Badawy et al. New approach to enhancing the performance of cloud-based vision system of mobile robots
KR20240079863A (ko) 포인트 클라우드 데이터 처리 장치 및 그 동작 방법
Kamal et al. Architectural design for inspection of machine objects using small DNNs as TinyML for machine vision of defects and faults in the manufacturing processes
US20220383073A1 (en) Domain adaptation using domain-adversarial learning in synthetic data systems and applications