KR101206213B1 - High speed slam system and method based on graphic processing unit - Google Patents
High speed slam system and method based on graphic processing unit Download PDFInfo
- Publication number
- KR101206213B1 KR101206213B1 KR1020100036122A KR20100036122A KR101206213B1 KR 101206213 B1 KR101206213 B1 KR 101206213B1 KR 1020100036122 A KR1020100036122 A KR 1020100036122A KR 20100036122 A KR20100036122 A KR 20100036122A KR 101206213 B1 KR101206213 B1 KR 101206213B1
- Authority
- KR
- South Korea
- Prior art keywords
- threads
- image
- feature point
- points
- sigma
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0014—Image feed-back for automatic industrial control, e.g. robot with camera
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Robotics (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
그래픽 가속기를 사용한 고속 SLAM 시스템 및 방법이 개시된다. 그래픽 가속기 기반 고속 SLAM 시스템은 그래픽 가속기(GPU: Graphics Processing Unit)를 포함하고, 상기 그래픽 가속기가 카메라에서 입력된 입력 영상의 스케일을 변환하여 복수의 피라미드 영상을 생성하며, 상기 그래픽 가속기가 상기 복수의 피라미드 영상 각각에 대하여 가우시안 커널을 적용하여 각각의 서브 이미지들의 차영상을 계산하고, 상기 그래픽 가속기가 상기 서브 이미지들의 차 영상에서 이미지 키를 추출하고, 상기 이미지 키의 안정성을 검증하여 특징점을 추출하며, 중앙 연산 처리 장치가 상기 특징점을 사용하여 특징점을 가진 오브젝트인 랜드마크를 식별하는 특징점 추출부; 및 상기 카메라가 장착된 로봇과 상기 랜드마크의 위치를 추정하여 상기 카메라가 장착된 로봇의 위치를 인식하고 지도를 작성하는 지도 작성부를 포함한다.A high speed SLAM system and method using a graphics accelerator is disclosed. A graphics accelerator-based high speed SLAM system includes a graphics processing unit (GPU), wherein the graphics accelerator converts a scale of an input image input from a camera to generate a plurality of pyramid images, and the graphics accelerator generates the plurality of pyramid images. A Gaussian kernel is applied to each pyramid image to calculate the difference image of each sub-image, the graphic accelerator extracts an image key from the difference image of the sub-images, and verifies the stability of the image key to extract feature points. A feature point extracting unit for identifying, by a central processing unit, a landmark that is an object having a feature point using the feature point; And a map preparation unit for recognizing the location of the camera-mounted robot and creating a map by estimating the location of the camera-mounted robot and the landmark.
Description
본 발명의 일실시예들은 그래픽 가속기를 사용하여 SIFT 알고리즘과 UKF SLAM 알고리즘의 처리 속도를 증가시킨 고속 SLAM 방법 및 시스템에 대한 것이다.Embodiments of the present invention are directed to a fast SLAM method and system that increases the processing speed of SIFT algorithm and UKF SLAM algorithm using a graphics accelerator.
최근 하드웨어의 발전과 더불어 서비스 로봇에 대한 수요와 기대가 증가하고 있다. Recently, with the development of hardware, the demand and expectation for service robot are increasing.
이러한 서비스 로봇들이 이동 중에 자신의 위치를 인식할 수 있는 방법으로는 초음파 센서, 레이저 스캐너, 관성 센서, 영상 센서를 사용하는 방법이 있다.Such service robots may use an ultrasonic sensor, a laser scanner, an inertial sensor, and an image sensor to recognize their location while moving.
이 중 영상 센서는 높은 반도체 집적도와 가격 경쟁력 측면에서 타 센서보다 우위에 있으며 정보 취득량이 가장 많은 센서이다. Among them, image sensor is superior to other sensors in terms of high semiconductor density and price competitiveness, and has the largest amount of information acquisition.
그러나 영상센서를 이용하여 특징을 추출하고, 추출된 정보를 바탕으로 위치인식 알고리즘을 수행하는 과정은 연산량에 대한 부담이 매우 크기 때문에 실시간성이 보장되지 않는 실정이다.However, the process of extracting the feature using the image sensor and performing the position recognition algorithm based on the extracted information does not guarantee real time because the burden on the computational amount is very large.
또한, 로봇이 자신의 위치를 확인하기 위하여 생성하는 지도를 구역별로 분할하여 생성함으로써 지도 생성에 필요한 정보의 계산량를 감소시켜 속도를 향상하는 방법이 있으나, 이 경우에는 분할된 지도간의 연속성을 보장하기 어렵다는 문제점이 있었다.In addition, there is a method of improving the speed by dividing the map generated by the robot to identify its location by area to reduce the calculation amount of information necessary for generating the map, but in this case, it is difficult to guarantee the continuity between the divided maps. There was a problem.
따라서, 영상 센서에서 수집되는 이미지로부터 특징을 추출하는 알고리즘과, 추출된 정보를 바탕으로 위치인식 알고리즘을 빠르게 수행할 수 있는 방법이나 시스템이 필요한 실정이다.Therefore, there is a need for an algorithm for extracting features from an image collected by an image sensor and a method or system for quickly performing a location recognition algorithm based on the extracted information.
본 발명의 일실시예들은 그래픽 가속기를 사용하여 SIFT 알고리즘에서 영상 피라미드 생성과정과 서브 이미지의 차영상을 생성하는 과정을 각 스케일의 피라미드 영상 별로 병렬 실행함으로써 SIFT 알고리즘의 처리 속도를 향상시킬 수 있는 그래픽 가속기 기반 고속 SLAM 시스템 및 방법을 제공한다.One embodiment of the present invention is a graphic accelerator that can improve the processing speed of the SIFT algorithm by performing the process of generating the image pyramid and the sub-image of the sub-image in the SIFT algorithm for each pyramid image of each scale in parallel An accelerator-based high speed SLAM system and method are provided.
또한, 본 발명의 일실시예들은 그래픽 가속기를 사용하여 UKF SLAM 알고리즘에서 시그마 포인트 개수에 따른 복수의 스레드를 생성하고, 복수의 스레드가 각기 하나씩의 시그마 포인트를 생성하고, 비선형 방정식을 적용하며, 기대 값과 분산을 계산함으로써 UKF SLAM 알고리즘의 처리 속도를 향상시킬 수 있는 그래픽 가속기 기반 고속 SLAM 시스템 및 방법을 제공한다.In addition, embodiments of the present invention generate a plurality of threads according to the number of sigma points in the UKF SLAM algorithm using a graphics accelerator, a plurality of threads each generates one sigma point, apply a nonlinear equation, and expect The present invention provides a graphics accelerator-based high speed SLAM system and method that can improve the processing speed of the UKF SLAM algorithm by calculating values and variances.
본 발명의 일실시예에 따른 그래픽 가속기 기반 고속 SLAM 시스템은 다중 프로세서의 파이프 라인 구조를 가진 그래픽 가속기(GPU: Graphics Processing Unit)를 포함하고, 상기 그래픽 가속기가 카메라에서 입력된 입력 영상의 스케일을 변환하여 복수의 피라미드 영상을 생성하며, 상기 그래픽 가속기가 상기 복수의 피라미드 영상 각각에 대하여 가우시안 커널을 적용하여 각각의 서브 이미지들의 차영상을 계산하고, 상기 그래픽 가속기가 상기 서브 이미지들의 차 영상에서 이미지 키를 추출하고, 상기 이미지 키의 안정성을 검증하여 특징점을 추출하며, 중앙 연산 처리 장치가 상기 특징점을 사용하여 특징점을 가진 오브젝트인 랜드마크를 식별하는 특징점 추출부; 및 상기 카메라가 장착된 로봇과 상기 랜드마크의 위치를 추정하여 상기 카메라가 장착된 로봇의 위치를 인식하고 지도를 작성하는 지도 작성부를 포함한다. A graphics accelerator-based high speed SLAM system according to an embodiment of the present invention includes a graphics processing unit (GPU) having a pipeline structure of a multiprocessor, and the graphics accelerator converts a scale of an input image input from a camera. Generate a plurality of pyramid images, the graphic accelerator to apply a Gaussian kernel to each of the plurality of pyramid images to calculate the difference image of each sub-image, and the graphic accelerator to calculate an image key in the difference image of the sub-images A feature point extraction unit for extracting a feature point by verifying the stability of the image key and extracting a feature point, and a central processing unit using the feature point to identify a landmark that is an object having the feature point; And a map preparation unit for recognizing the location of the camera-mounted robot and creating a map by estimating the location of the camera-mounted robot and the landmark.
본 발명의 일실시예에 따른 지도 작성부는, 상기 그래픽 가속기를 포함하고, 상기 특징점 추출부가 식별한 랜드마크의 개수에 따라 표본 추출 포인트인 시그마 포인트들의 개수를 설정하며, 상기 그래픽 가속기가 상기 시그마 포인트들의 개수에 따라 복수의 스레드를 생성하고, 상기 복수의 스레드가 특징점 정보를 기초로 각기 다른 복수의 시그마 포인트를 생성하며, 상기 복수의 스레드가 각각의 시그마 포인트에 비선형 방정식을 적용하며, 상기 복수의 스레드가 각각의 시그마 포인트에 비선형 방정식을 적용한 값의 기대 값과 분산을 계산하여 상기 카메라가 장착된 로봇과 상기 랜드마크의 위치를 추정할 수 있다.According to an embodiment of the present invention, the map generator includes the graphic accelerator, and sets the number of sigma points that are sampling points according to the number of landmarks identified by the feature point extractor, and the graphic accelerator sets the sigma points. Generate a plurality of threads according to the number of the plurality of threads, the plurality of threads generate a plurality of different sigma points based on feature point information, the plurality of threads apply a nonlinear equation to each sigma point, and the plurality of threads A thread may calculate the expected value and the variance of a value of applying a nonlinear equation to each sigma point to estimate the position of the robot and the landmark on which the camera is mounted.
본 발명의 일실시예들은 그래픽 가속기를 사용하여 SIFT 알고리즘에서 영상 피라미드 생성과정과 서브 이미지의 차영상을 생성하는 과정을 각 스케일의 피라미드 영상 별로 병렬 실행함으로써 SIFT 알고리즘의 처리 속도를 향상시킬 수 있다.Embodiments of the present invention can improve the processing speed of the SIFT algorithm by executing the process of generating the image pyramid and the difference image of the sub-image in the SIFT algorithm using the graphics accelerator in parallel for each pyramid image of each scale.
또한, 본 발명의 일실시예들은 그래픽 가속기를 사용하여 UKF SLAM 알고리즘에서 시그마 포인트 개수에 따른 복수의 스레드를 생성하고, 복수의 스레드가 각기 하나씩의 시그마 포인트를 생성하고, 비선형 방정식을 적용하며, 기대 값과 분산을 계산함으로써 UKF SLAM 알고리즘의 처리 속도를 향상시킬 수 있다.In addition, embodiments of the present invention generate a plurality of threads according to the number of sigma points in the UKF SLAM algorithm using a graphics accelerator, a plurality of threads each generates one sigma point, apply a nonlinear equation, and expect By calculating the values and variances, we can speed up the processing of the UKF SLAM algorithm.
도 1은 본 발명의 일실시예에 따른 그래픽 가속기 기반 고속 SLAM 시스템의 개괄적인 모습을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 특징점 추출부의 상세 구성도이다.
도 3은 본 발명의 일실시예에 따른 지도 작성부의 상세 구성도이다.
도 4는 본 발명의 일실시예에 따른 SIFT 알고리즘에 대한 흐름도이다.
도 5는 본 발명의 일실시예에 따른 SLAM 알고리즘에 대한 흐름도이다.1 is a view showing an overview of a graphics accelerator-based high speed SLAM system according to an embodiment of the present invention.
2 is a detailed block diagram of a feature point extraction unit according to an embodiment of the present invention.
3 is a detailed block diagram of a map preparation unit according to an embodiment of the present invention.
4 is a flowchart of an SIFT algorithm according to an embodiment of the present invention.
5 is a flowchart of a SLAM algorithm according to an embodiment of the present invention.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 바람직한 실시예들을 상세하게 설명하지만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings and the contents described in the accompanying drawings, but the present invention is not limited or limited to the embodiments.
본 발명의 일실시예에 따른 그래픽 가속기 기반 고속 SLAM 시스템은 다중 프로세서의 파이프 라인 구조를 가진 그래픽 가속기(GPU: Graphics Processing Unit)를 사용하여 SIFT 알고리즘과 UKF SLAM 알고리즘을 병렬로 실행함으로써, SIFT 알고리즘과 UKF SLAM 알고리즘의 처리 속도를 향상시킬 수 있다.The high-speed SLAM system based on the graphic accelerator according to an embodiment of the present invention executes the SIFT algorithm and the UKF SLAM algorithm in parallel by using a graphics processing unit (GPU) having a multiprocessor pipeline structure. The processing speed of the UKF SLAM algorithm can be improved.
도 1은 본 발명의 일실시예에 따른 그래픽 가속기 기반 고속 SLAM 시스템의 개괄적인 모습을 도시한 도면이다. 1 is a view showing an overview of a graphics accelerator-based high speed SLAM system according to an embodiment of the present invention.
본 발명의 일실시예에 따른 그래픽 가속기 기반 고속 SLAM 시스템은 도 1에 도시된 바와 같이 특징점 추출부(120)와 지도 작성부(130)로 구성될 수 있다. Graphic accelerator based high-speed SLAM system according to an embodiment of the present invention may be composed of a feature
특징점 추출부(110)는 CPU(210)와 GPU(220)를 포함하며, SIFT(Scale Invariant Feature Transform) 알고리즘을 실행하여 카메라(110)에서 입력된 영상에서 특징점을 추출한다. 이때, 특징점은 영상의 국소적인 명암 정보를 사용하여 돌출되어 보이거나 두드러지게 보이는 지점들을 추출한 점들이다. 이때, 특징점은 조명, 크기, 시점의 변화나 평행이동한 경우에도 변하지 않는 특성을 가지고 있으며 노이즈에도 민감하지 않은 지점일 수 있다.The
구체적으로 먼저, 특징점 추출부(110)의 CPU(210)는 도 2에 도시된 바와 같이 카메라(110)에서 입력된 영상을 RAM 메모리에 임시로 저장하고, 상기 영상의 해상도와 동일한 크기를 갖는 프레임 버퍼를 생성한다. 이때, CPU(210)는 각각의 화소가 픽셀 셰이더에서 처리될 수 있도록 화면 전체 크기의 사각형을 생성할 수 있다.Specifically, first, the
다음으로 CPU(210)는 RAM 메모리 상에 저장된 영상을 텍스처 메모리 형태(221)로 변환하여 GPU 메모리에 저장할 수 있다.Next, the
그 다음으로 GPU(220)의 픽셀 셰이더는 SIFT 알고리즘을 실행하여 특징점을 추출할 수 있다. 이때, SIFT 알고리즘은 NVIDIA에서 개발된 셰이딩 언어인 cg(C for Graphics)를 통해서 구현될 수 있다.Next, the pixel shader of the
이때, GPU(220)의 픽셀 셰이더는 추출한 특징점(226)의 정보인 특징점 정보(227)를 GPU 메모리에 저장할 수 있다.In this case, the pixel shader of the
마지막으로 CPU(210)는 기 저장된 특징점(212)과 GPU 메모리에 저장된 특징점의 정보(227)를 비교하여 특징점을 가진 오브젝트(213)인 랜드마크를 식별할 수 있다.Finally, the
이하에서 GPU(220)의 픽셀 셰이더의 특징점 추출 과정을 상세히 설명한다.Hereinafter, a feature point extraction process of the pixel shader of the
먼저, GPU(220)의 픽셀 셰이더는 GPU 메모리에 저장된 텍스처 메모리 형태의 입력 영상(221)의 스케일을 변환하여 복수의 피라미드 영상(Image Pyramids) (222)을 생성할 수 있다.First, the pixel shader of the
이때, GPU(220)의 픽셀 셰이더는 생성한 피라미드 영상(222)을 GPU 메모리에 저장하며, GPU 메모리에 저장된 이미지 피라미드 영상(223)들은 도 2에 도시된 바와 같이 각기 다른 n 종류의 스케일로 변환된 영상일 수 있다.In this case, the pixel shader of the
그 다음에, GPU(220)의 픽셀 셰이더는 GPU 메모리에 저장된 각각의 피라미드 영상(223)에 대하여 가우시안 커널(224)을 적용하여 각각의 서브 이미지들의 차영상(DoG(Differential of Gaussian)(225)을 생성할 수 있다.Next, the pixel shader of the
이때, GPU(220)의 픽셀 셰이더는 다중 프로세서의 파이프 라인 구조를 사용하여 GPU 메모리에 저장된 n개의 피라미드 영상(223)에 가우시안 커널(224)을 동시 적용함으로써 1회의 연산으로 n개의 DoG(225)를 생성하여 GPU 메모리에 저장할 수 있다.In this case, the pixel shader of the
마지막으로, GPU(220)의 픽셀 셰이더는 GPU 메모리에 저장된 서브 이미지들의 차영상(225)에서 이미지 키를 추출하고, 추출한 이미지 키의 안정성을 검증하여 특징점(226)을 추출할 수 있다.Finally, the pixel shader of the
지도 작성부(130)는 GPU를 포함하며, UKF(Unscented Kalman Filter) SLAM(Simultaneous Localization and Mapping) 알고리즘을 실행하여 카메라(110)가 장착된 로봇의 현재 위치를 인식하고 로봇 주변의 지도를 작성한다.The
이때, 지도 작성부(130)는 특징점 추출부(120)가 식별한 랜드마크에서 카메라(110)가 장착된 로봇과 랜드마크의 위치 정보가 포함된 상태 벡터를 추정하여 카메라(110)가 장착된 로봇의 위치를 인식하고 지도를 작성할 수 있다. 이때, 지도 작성부(130)가 추정하는 상태 벡터의 개수는 특징점 추출부(110)가 식별한 랜드마크의 개수가 증가함에 따라 함께 증가하는 개수다.In this case, the
구체적으로 먼저, 지도 작성부(130)는 특징점 추출부(120)가 식별한 랜드마크의 개수에 따라 표본 추출 포인트인 시그마 포인트들의 개수를 설정하고, 지도 작성부(130)의 GPU가 도 3에 도시된 바와 같이 시그마 포인트들의 개수에 따라 복수의 스레드(310,320,330)를 생성할 수 있다. Specifically, first, the
이때, 특징점 추출부(110)가 식별한 랜드마크의 개수에 따른 상태벡터의 개수가 n개인 경우에 지도 작성부(130)가 설정하는 시그마 포인트들의 개수는 2n개일 수 있다. 이때, 지도 작성부(130)의 GPU는 시그마 포인트를 생성하기 위한 2n개의 스레드(310)와, 비선형 방정식을 적용하기 위한 2n개의 스레드(320), 및 기대 값과 분산을 계산하기 위한 2n개의 스레드(330)를 생성할 수 있다.In this case, when the number of state vectors according to the number of landmarks identified by the
다음으로 복수의 스레드(310)는 특징점 정보를 기초로 각기 다른 복수의 시그마 포인트를 생성하여 GPU에 포함된 메모리인 글로벌(Global) 메모리(340)에 저장할 수 있다. 이때, 각각의 스레드(310)은 1개씩의 시그마 포인트를 생성할 수 있다.Next, the plurality of
그 다음으로 복수의 스레드(320)는 글로벌 메모리(340)에 저장된 각각의 시그마 포인트에 비선형 방정식을 적용하고, 각각의 시그마 포인트에 비선형 방정식을 적용한 값을 글로벌(Global) 메모리(340)에 저장할 수 있다. 이때, 각각의 스레드(320)은 각기 다른 시그마 포인트에 비선형 방정식을 적용할 수 있다.Next, the plurality of
그 다음에 복수의 스레드(330)가 각각의 시그마 포인트에 비선형 방정식을 적용한 값의 기대 값과 분산을 계산하여 글로벌 메모리(340)에 저장할 수 있다.The plurality of
마지막으로, 지도 작성부(130)는 기대 값과 분산을 사용하여 카메라(110)가 장착된 로봇과 랜드마크의 위치를 추정할 수 있다.Finally, the
지도 작성부(130)는 시그마 포인트의 개수와 동일한 개수의 스레드를 사용하여 동시에 복수의 시그마 포인트를 생성하고, 각각의 시그마 포인트에 비선형 방정식을 적용하며, 비선형 방정식을 적용한 값의 기대 값과 분산을 계산함으로써, 상태 벡터의 개수 증가에 따라 기대 값과 분산을 계산하는데 걸리는 시간이 증가하는 것을 방지할 수 있다.The
도 4는 본 발명의 일실시예에 따른 SIFT 알고리즘에 대한 흐름도이다.4 is a flowchart of an SIFT algorithm according to an embodiment of the present invention.
단계(S410)에서 CPU(210)는 카메라(110)에서 입력된 영상을 RAM 메모리에 임시로 저장하고, 상기 영상의 해상도와 동일한 크기를 갖는 프레임 버퍼를 생성한다. 이때, CPU(210)는 RAM 메모리 상에 저장된 영상을 텍스처 메모리 형태(221)로 변환하여 GPU 메모리에 저장할 수 있다.In operation S410, the
단계(S420)에서 GPU(220)의 픽셀 셰이더는 단계(S410)에서 GPU 메모리에 저장된 텍스처 메모리 형태의 입력 영상(221)의 스케일을 변환하여 복수의 피라미드 영상(222)을 생성할 수 있다. 이때, GPU(220)의 픽셀 셰이더는 생성한 피라미드 영상(222)을 GPU 메모리에 저장할 수 있다.In operation S420, the pixel shader of the
단계(S430)에서 GPU(220)의 픽셀 셰이더는 단계(S420)에서 GPU 메모리에 저장된 각각의 피라미드 영상(223)에 대하여 가우시안 커널(224)을 적용하여 각각의 서브 이미지들의 차영상(DoG(Differential of Gaussian)(225)을 생성할 수 있다.In operation S430, the pixel shader of the
이때, GPU(220)의 픽셀 셰이더는 GPU 메모리에 저장된 n개의 피라미드 영상(223)에 가우시안 커널(224)을 동시 적용하여 1회의 연산으로 n개의 DoG(225)를 생성하고, GPU 메모리에 저장할 수 있다.In this case, the pixel shader of the
단계(S440)에서 GPU(220)의 픽셀 셰이더는 단계(S430)에서 GPU 메모리에 저장된 서브 이미지들의 차영상(225)에서 이미지 키를 추출하고, 추출한 이미지 키의 안정성을 검증하여 특징점(226)을 추출할 수 있다. 이때, GPU(220)의 픽셀 셰이더는 추출한 특징점(226)의 정보인 특징점 정보(227)를 GPU 메모리에 저장할 수 있다.In operation S440, the pixel shader of the
단계(S450)에서 CPU(210)는 기 저장된 특징점(212)과 단계(S440)에서 GPU 메모리에 저장된 특징점의 정보(227)를 비교하여 특징점을 가진 오브젝트(213)인 랜드마크를 식별할 수 있다In operation S450, the
도 5는 본 발명의 일실시예에 따른 SLAM 알고리즘에 대한 흐름도이다.5 is a flowchart of a SLAM algorithm according to an embodiment of the present invention.
단계(S510)에서 지도 작성부(130)의 복수의 스레드(310)는 특징점 정보를 기초로 각기 다른 복수의 시그마 포인트를 생성하여 글로벌(Global) 메모리(340)에 저장할 수 있다. 이때, 각각의 스레드(310)은 1개씩의 시그마 포인트를 생성할 수 있다. 또한, 상기 복수의 스레드(310)는 지도 작성부(130)가 시그마 포인트들의 개수에 따라 생성한 스레드일 수 있다.In operation S510, the plurality of
단계(S520)에서 지도 작성부(130)의 복수의 스레드(320)는 단계(S510)에서 저장된 각각의 시그마 포인트에 비선형 방정식을 적용하고, 각각의 시그마 포인트에 비선형 방정식을 적용한 값을 글로벌(Global) 메모리(340)에 저장할 수 있다. 이때, 각각의 스레드(320)은 각기 다른 시그마 포인트에 비선형 방정식을 적용할 수 있다.In operation S520, the plurality of
단계(S530)에서 지도 작성부(130)의 복수의 스레드(330)는 단계(S520)에서 저장된 값의 기대 값과 분산을 계산하여 글로벌 메모리(340)에 저장할 수 있다.In operation S530, the plurality of
단계(S540)에서 지도 작성부(130)는 단계(S530)에서 저장된 기대 값과 분산을 사용하여 카메라(110)가 장착된 로봇과 랜드마크의 위치를 추정할 수 있다.In operation S540, the
단계(S550)에서 지도 작성부(130)는 단계(S540)에서 추정한 로봇과 랜드마크의 위치를 사용하여 로봇의 현재 위치를 인식하고, 로봇 주변의 지도를 작성할 수 있다.In operation S550, the
이와 같이, 본 발명의 일실시예에 따른 그래픽 가속기 기반 고속 SLAM 방법은 그래픽 가속기를 사용하여 SIFT 알고리즘에서 영상 피라미드 생성과정과 서브 이미지의 차영상을 생성하는 과정을 각 스케일의 피라미드 영상 별로 병렬 실행함으로써 SIFT 알고리즘의 처리 속도를 향상시킬 수 있다.As described above, the graphic accelerator-based high-speed SLAM method according to an embodiment of the present invention executes a process of generating an image pyramid and a difference image of a sub-image in a SIFT algorithm by performing a parallel accelerator for each pyramid image of each scale. The processing speed of the SIFT algorithm can be improved.
또한, 그래픽 가속기를 사용하여 UKF SLAM 알고리즘에서 시그마 포인트 개수에 따른 복수의 스레드를 생성하고, 복수의 스레드가 각기 하나씩의 시그마 포인트를 생성하고, 비선형 방정식을 적용하며, 기대 값과 분산을 계산함으로써 UKF SLAM 알고리즘의 처리 속도를 향상시킬 수 있다.In addition, the UKF SLAM algorithm uses a graphics accelerator to generate a plurality of threads according to the number of sigma points, a plurality of threads each to generate one sigma point, apply a nonlinear equation, calculate the expected value and the variance The processing speed of the SLAM algorithm can be improved.
그리고, UKF SLAM 알고리즘의 처리 속도를 향상시킴으로써 지도를 구역별로 분할하지 않고 전체 지도를 작성하여도 종래의 CPU만을 사용하여 구역별로 분할한 경우와 비슷한 시간이 소요되므로 전체 지도를 작성하여 사용할 수 있다.In addition, by improving the processing speed of the UKF SLAM algorithm, even if the entire map is not divided by zone, it takes a similar time as the case of dividing by zone using a conventional CPU alone, so that the entire map can be created and used.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.
110: 카메라
120: 특징점 추출부
130: 지도 작성부110: camera
120: Feature point extraction unit
130: Map Builder
Claims (5)
상기 그래픽 가속기가 카메라에서 입력된 입력 영상의 스케일을 변환하여 생성한 복수의 피라미드 영상 각각에 대하여 가우시안 커널을 적용하여 각각의 서브 이미지들의 차영상을 계산하고,
상기 그래픽 가속기가 상기 서브 이미지들의 차 영상에서 추출한 이미지 키의 안정성을 검증하여 특징점을 추출하며,
중앙 연산 처리 장치가 상기 특징점을 사용하여 특징점을 가진 오브젝트인 랜드마크를 식별하는 특징점 추출부; 및
상기 카메라가 장착된 로봇과 상기 랜드마크의 위치를 추정하여 상기 카메라가 장착된 로봇의 위치를 인식하고 지도를 작성하는 지도 작성부
를 포함하고,
상기 지도 작성부는,
식별한 랜드마크의 개수에 따라 표본 추출 포인트인 시그마 포인트들의 개수를 설정하며, 시그마 포인트들의 개수에 따라 복수의 제1 스레드와, 복수의 제2 스레드, 및 복수의 제3 스레드를 생성하고,
상기 제1 스레드들은,
특징점 정보를 기초로 시그마 포인트를 각각 생성하며,
상기 제2 스레드들은,
제1 스레드들이 생성한 시그마 포인트들 각각에 비선형 방정식을 적용하며,
상기 제3 스레드들은,
제2 스레드들이 비선형 방정식을 적용한 시그마 포인트의 기대 값과 분산을 계산하여 상기 카메라가 장착된 로봇과 상기 랜드마크의 위치를 추정하는 것을 특징으로 하는 그래픽 가속기 기반 고속 SLAM 시스템. Includes a graphics processor (GPU) with a multiprocessor pipeline structure,
Calculating a difference image of each sub-image by applying a Gaussian kernel to each of a plurality of pyramid images generated by converting the scale of the input image inputted from the camera by the graphic accelerator,
The graphic accelerator verifies the stability of the image key extracted from the difference image of the sub-images to extract feature points,
A feature point extracting unit for identifying, by the central processing unit, a landmark that is an object having a feature point using the feature point; And
A map preparation unit for recognizing the location of the camera-mounted robot and creating a map by estimating the location of the camera-mounted robot and the landmark.
Including,
The map creation unit,
Set the number of sigma points that are sampling points according to the number of landmarks identified, and generate a plurality of first threads, a plurality of second threads, and a plurality of third threads according to the number of sigma points,
The first threads,
Each of the sigma points is generated based on the feature point information.
The second threads,
Apply a nonlinear equation to each of the sigma points generated by the first threads,
The third threads,
And a second thread calculates an expected value and a variance of a sigma point to which a nonlinear equation is applied, and estimates the position of the robot and the landmark on which the camera is mounted.
상기 특징점 추출부의 중앙 연산 처리 장치는,
상기 카메라에서 입력된 입력 영상을 텍스처 메모리 형태로 변환한 다음에 상기 그래픽 가속기의 메모리에 저장하고,
상기 그래픽 가속기는 상기 그래픽 가속기의 메모리에 저장된 입력 영상의 스케일을 변환하여 복수의 피라미드 영상을 생성하는 것을 특징으로 하는 그래픽 가속기 기반 고속 SLAM 시스템.The method of claim 1,
The central processing unit of the feature point extraction unit,
Converts the input image input from the camera into a texture memory form and then stores it in the memory of the graphics accelerator,
And the graphic accelerator converts the scale of the input image stored in the memory of the graphic accelerator to generate a plurality of pyramid images.
상기 지도 작성부는,
상기 특징점 추출부가 식별한 랜드마크의 개수에 따라 표본 추출 포인트인 시그마 포인트들의 개수를 설정하는 것을 특징으로 하는 그래픽 가속기 기반 고속 SLAM 시스템.The method of claim 1,
The map creation unit,
And a number of sigma points that are sampling points according to the number of landmarks identified by the feature point extractor.
상기 그래픽 가속기가 상기 복수의 피라미드 영상 각각에 대하여 가우시안 커널을 적용하여 각각의 서브 이미지들의 차영상을 계산하는 단계;
상기 그래픽 가속기가 상기 서브 이미지들의 차 영상에서 이미지 키를 추출하는 단계;
상기 그래픽 가속기가 상기 이미지 키의 안정성을 검증하여 특징점을 추출하는 단계;
중앙 연산 처리 장치가 상기 특징점을 사용하여 특징점을 가진 오브젝트인 랜드마크를 식별하는 단계
식별한 랜드마크의 개수에 따라 표본 추출 포인트인 시그마 포인트들의 개수를 설정하는 단계;
시그마 포인트들의 개수에 따라 복수의 제1 스레드와, 복수의 제2 스레드, 및 복수의 제3 스레드를 생성하는 단계;
상기 제1 스레드들이 특징점 정보를 기초로 시그마 포인트를 각각 생성하는 단계;
상기 제2 스레드들이 시그마 포인트들 각각에 비선형 방정식을 적용하는 단계; 및
상기 제3 스레드들이 비선형 방정식을 적용한 시그마 포인트의 기대 값과 분산을 계산하여 상기 카메라가 장착된 로봇과 상기 랜드마크의 위치를 식별하는 단계
를 포함하는 SIFT 알고리즘 실행 방법. Generating a plurality of pyramid images by converting a scale of an input image input from a camera by a graphics processing unit having a pipeline structure of a multiprocessor;
Calculating, by the graphic accelerator, a difference image of each sub-image by applying a Gaussian kernel to each of the plurality of pyramid images;
Extracting an image key from the difference image of the sub-images by the graphic accelerator;
Extracting feature points by verifying the stability of the image key by the graphic accelerator;
Identifying, by the central processing unit, a landmark that is an object having a feature point using the feature point
Setting the number of sigma points that are sampling points according to the number of identified landmarks;
Creating a plurality of first threads, a plurality of second threads, and a plurality of third threads according to the number of sigma points;
Generating, by the first threads, sigma points respectively based on feature point information;
The second threads applying a nonlinear equation to each of the sigma points; And
Calculating the expected values and variances of the sigma points to which the third threads apply a nonlinear equation to identify the robot equipped with the camera and the location of the landmark.
SIFT algorithm execution method comprising a.
다중 프로세서의 파이프 라인 구조를 가진 그래픽 가속기(GPU: Graphics Processing Unit)가 상기 시그마 포인트들의 개수에 따라 복수의 제1 스레드와, 복수의 제2 스레드, 및 복수의 제3 스레드를 생성하는 단계;
상기 제1 스레드들이 특징점 정보를 기초로 시그마 포인트를 각각 생성하는 단계;
상기 제2 스레드들이 시그마 포인트들 각각에 비선형 방정식을 적용하는 단계;
상기 제3 스레드들이 비선형 방정식을 적용한 시그마 포인트의 기대 값과 분산을 계산하여 카메라가 장착된 로봇과 랜드마크의 위치를 추정하는 단계
를 포함하는 그래픽 가속기 기반 고속 SLAM 알고리즘 실행 방법.Setting the number of sigma points that are sampling points according to the number of landmarks identified by the feature point extractor;
Generating a plurality of first threads, a plurality of second threads, and a plurality of third threads according to the number of sigma points by a graphics processing unit (GPU) having a pipeline structure of a multiprocessor;
Generating, by the first threads, sigma points respectively based on feature point information;
The second threads applying a nonlinear equation to each of the sigma points;
Estimating the location of the robot and the landmark on which the camera is mounted by calculating the expected value and the variance of the sigma point to which the third threads apply the nonlinear equation.
Graphic accelerator based high speed SLAM algorithm execution method comprising a.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100036122A KR101206213B1 (en) | 2010-04-19 | 2010-04-19 | High speed slam system and method based on graphic processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100036122A KR101206213B1 (en) | 2010-04-19 | 2010-04-19 | High speed slam system and method based on graphic processing unit |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110116609A KR20110116609A (en) | 2011-10-26 |
KR101206213B1 true KR101206213B1 (en) | 2012-11-28 |
Family
ID=45030856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100036122A KR101206213B1 (en) | 2010-04-19 | 2010-04-19 | High speed slam system and method based on graphic processing unit |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101206213B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105467838A (en) * | 2015-11-10 | 2016-04-06 | 山西大学 | Synchronous positioning and map constructing method under random finite set framework |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101904203B1 (en) | 2012-06-20 | 2018-10-05 | 삼성전자주식회사 | Apparatus and method of extracting feature information of large source image using scalar invariant feature transform algorithm |
CN104539265A (en) * | 2014-11-25 | 2015-04-22 | 广东石油化工学院 | Self-adaptive UKF (Unscented Kalman Filter) algorithm |
CN105115511B (en) * | 2015-07-24 | 2017-09-26 | 浙江工业大学 | A kind of adaptive terrestrial reference choosing method navigated towards lunar surface |
CN106504229B (en) * | 2016-09-30 | 2019-11-12 | 上海联影医疗科技有限公司 | The detection method of characteristic point in image |
US10580135B2 (en) | 2016-07-14 | 2020-03-03 | Shanghai United Imaging Healthcare Co., Ltd. | System and method for splicing images |
CN109726168B (en) * | 2016-11-03 | 2021-09-21 | 中科寒武纪科技股份有限公司 | SLAM operation device and method |
CN106778726B (en) * | 2016-12-14 | 2020-06-30 | 广州视源电子科技股份有限公司 | Board card positioning method and device |
CN107341507B (en) * | 2017-06-20 | 2020-01-21 | 华中科技大学 | GPU and cascade hash based rapid image SIFT feature matching method |
CN109543694A (en) * | 2018-09-28 | 2019-03-29 | 天津大学 | A kind of visual synchronization positioning and map constructing method based on the sparse strategy of point feature |
CN109274119B (en) * | 2018-10-23 | 2021-06-01 | 中国矿业大学 | Three-phase current type grid-connected inverter control method |
CN109840517A (en) * | 2019-03-08 | 2019-06-04 | 兰州交通大学 | A kind of estimation of MEMS gyro noise and filtering method |
CN113112394A (en) * | 2021-04-13 | 2021-07-13 | 北京工业大学 | Visual SLAM front-end acceleration method based on CUDA technology |
-
2010
- 2010-04-19 KR KR1020100036122A patent/KR101206213B1/en not_active IP Right Cessation
Non-Patent Citations (2)
Title |
---|
논문 1 : 학위논문 인하대학교 |
논문 2 : 제어 로봇 시스템 학회지(2009년 6월)* |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105467838A (en) * | 2015-11-10 | 2016-04-06 | 山西大学 | Synchronous positioning and map constructing method under random finite set framework |
CN105467838B (en) * | 2015-11-10 | 2017-12-05 | 山西大学 | A kind of synchronous superposition method under stochastic finite collection framework |
Also Published As
Publication number | Publication date |
---|---|
KR20110116609A (en) | 2011-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101206213B1 (en) | High speed slam system and method based on graphic processing unit | |
Poirson et al. | Fast single shot detection and pose estimation | |
JP6942488B2 (en) | Image processing equipment, image processing system, image processing method, and program | |
JP4637618B2 (en) | Lane recognition device | |
Bagdanov et al. | Real-time hand status recognition from RGB-D imagery | |
US9928426B1 (en) | Vehicle detection, tracking and localization based on enhanced anti-perspective transformation | |
CN104933738A (en) | Visual saliency map generation method based on local structure detection and contrast | |
KR101478709B1 (en) | Method and apparatus for extracting and generating feature point and feature descriptor rgb-d image | |
Petit et al. | Augmenting markerless complex 3D objects by combining geometrical and color edge information | |
Głowacz et al. | Video detection algorithm using an optical flow calculation method | |
EP4123106A1 (en) | Image processing device, image processing method, and image processing program | |
US20220270327A1 (en) | Systems and methods for bounding box proposal generation | |
US20230082097A1 (en) | Method and device for multi-sensor data-based fusion information generation for 360-degree detection and recognition of surrounding object | |
US11600086B2 (en) | Dictionary learning device, dictionary learning method, and program storage medium | |
KR101394473B1 (en) | Method for detecting moving object and surveillance system thereof | |
Brauer et al. | Generative 2d and 3d human pose estimation with vote distributions | |
CN113743487A (en) | Enhanced remote sensing image target detection method and system | |
US11809997B2 (en) | Action recognition apparatus, action recognition method, and computer-readable recording medium | |
Ikoma | Hands and arms motion estimation of a car driver with depth image sensor by using particle filter | |
Fengjing et al. | Airport runway extraction method in aviation reconnaissance image | |
JP5719277B2 (en) | Object coordinate system conversion matrix estimation success / failure determination apparatus, object coordinate system conversion matrix estimation success / failure determination method, and program thereof | |
CN113312979B (en) | Image processing method and device, electronic equipment, road side equipment and cloud control platform | |
Inan et al. | Harnessing Vision Transformers for LiDAR Point Cloud Segmentation | |
Qiu et al. | Edge-Feature-Based Aircraft Cover Recognition and Pose Estimation for AR-Aided Inner Components Inspection | |
Al-Sabbag et al. | Real-Time quantitative visual inspection using extended reality |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20151001 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170829 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |