삼차원 재구성 기법은 대상을 파괴하지 않고도 그 내부 구조의 공간적 해석을 가능하게 해주는 단층 영상을 생성해주기 때문에, 산업, 의료분야에서 널리 사용되고 있다. 최근 영상 장비의 성능 향상으로 고해상도의 CT 영상을 얻을 수 있게 되었으나, 대용량 데이터를 재구성하기 위해 많은 시간이 소요된다. 본 논문에서는 재구성에서 가장 많은 시간이 소요되는 여과와 역투사 과정을 범용 그래픽스 하드웨어를 사용하여 최적화하는 방법을 제안한다. 여과에서는 네 장의 영상을 압축하여 동시에 처리하는 기법을 적용하고, 역투사 과정에서는 깊이 테스트를 이용하여 계산량을 줄이는 방법을 사용한다. 제안된 방법으로 구현된 GPU 기반 프로그램은 OpenMP 를 사용하여 최적화 된 CPU 기반 프로그램에 비해 약 50 배 이상 속도가 향상되었다.
삼차원 재구성 기법은 대상을 파괴하지 않고도 그 내부 구조의 공간적 해석을 가능하게 해주는 단층 영상을 생성해주기 때문에, 산업, 의료분야에서 널리 사용되고 있다. 최근 영상 장비의 성능 향상으로 고해상도의 CT 영상을 얻을 수 있게 되었으나, 대용량 데이터를 재구성하기 위해 많은 시간이 소요된다. 본 논문에서는 재구성에서 가장 많은 시간이 소요되는 여과와 역투사 과정을 범용 그래픽스 하드웨어를 사용하여 최적화하는 방법을 제안한다. 여과에서는 네 장의 영상을 압축하여 동시에 처리하는 기법을 적용하고, 역투사 과정에서는 깊이 테스트를 이용하여 계산량을 줄이는 방법을 사용한다. 제안된 방법으로 구현된 GPU 기반 프로그램은 OpenMP 를 사용하여 최적화 된 CPU 기반 프로그램에 비해 약 50 배 이상 속도가 향상되었다.
Tomography images reconstructed from conebeam CT make it possible to observe inside of the projected object without any damage, and so it has been widely used in the industrial and medical fields. Recent advanced imaging equipment can produce high-resolution CT images. However, it takes much time to...
Tomography images reconstructed from conebeam CT make it possible to observe inside of the projected object without any damage, and so it has been widely used in the industrial and medical fields. Recent advanced imaging equipment can produce high-resolution CT images. However, it takes much time to reconstruct the obtained large dataset. To reduce the time to reconstruct CT images, we propose an accelerating method using GPU (graphics processing unit). Reconstruction consists of mainly two parts, filtering and back-projection. In filtering phase, we applied 4ch image compression method and in back-projection phase, computation reduction method using depth test is applied. The experimental results show that the proposed method accelerates the speed 50 times than the CPU-based program optimized with OpenMP by utilizing the high-computing power of parallelized GPU.
Tomography images reconstructed from conebeam CT make it possible to observe inside of the projected object without any damage, and so it has been widely used in the industrial and medical fields. Recent advanced imaging equipment can produce high-resolution CT images. However, it takes much time to reconstruct the obtained large dataset. To reduce the time to reconstruct CT images, we propose an accelerating method using GPU (graphics processing unit). Reconstruction consists of mainly two parts, filtering and back-projection. In filtering phase, we applied 4ch image compression method and in back-projection phase, computation reduction method using depth test is applied. The experimental results show that the proposed method accelerates the speed 50 times than the CPU-based program optimized with OpenMP by utilizing the high-computing power of parallelized GPU.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 기존의 삼차원 재구성 알고리즘을 GPU 상에서 구현하고 적용 가능한 가속 방법들을 제시하였다. 첫째로 일차원 고속 푸리에 변환을 사용한 여과 과정에서 네 장의 영상을 두 개의 복소수로 압축하고, 이를 GPU 의 RGBA 네 개의 채널을 이용하여 동시에 처리하는 방법이다.
본 논문에서는 재구성 알고리즘 중에서 빠르고 간단하여 가장 널리 쓰이는 FDK 여과후 재구성 과정(Filtered Backprojection)[9]을 GPU 에서 구현하는 최적화된 방법을 제안한다. 재구성 과정에서 가장 많은 시간이 소요되는 두 가지 과정 중 하나인 여과처리(filtering) 단계에서는 네 장의 영상을 압축하여 동시에 처리하고, 또 다른 하나인 역투사(backprojection) 과정에서는 깊이 테스트를 이용하여 전체 연산량을 줄이는 방법을 사용하여 속도를 향상 시켰다.
본 논문에서는 전술한 압축 방법과 GPU 의 이러한 장점을 이용하여, 각각의 색상 채널에 서로 다른 함수를 저장하면, 네 개의 영상을 동시에 여과 처리하는 방법을 제안한다. 각각의 색상 채널에 네 개의 함수를 저장하고, 이를 두 복소수로 다루어 일차원 푸리에 변환을 진행하는 방법이다.
본 논문은 GPU 를 사용하여 대용량 데이터의 빠른 재구성을 목표로 한다. 실험에서 사용한 대용량의 투영 영상을 한번에 읽어 들이기 위해 1GB 의 메모리를 가진 GPU 가 필요하지만 이를 지원하는 모델이 거의 없기 때문에 다양한 모델에 대한 실험은 생략하였다.
가설 설정
FDK 알고리즘은 다음의 두 가지 감쇄(attenuation) 모델 가정한다.
첫째는 깊이 감쇄로, x-ray 가 물체를 통과할 때 물체 내부의 특이성에 관계없이 빔 소스로부터 감지기까지의 거리에 따라서만 규칙적으로 감쇄한다는 것이다. 두 번째는 원형 감쇄로 빔 소스로부터 멀어질수록 감지기에 측정되는 에너지의 세기가 감쇄한다는 것이다. 감쇄로 인한 오차를 보정하기 위해 FDK 역전사 알고리즘은 깊은 가중치(death weight)와 원형 가중치 (circular weight)를 둔다.
제안 방법
3 장 에서는 여과 처리 단계에서 네 장의 실수 영상을 하나의 벡터(vector) 영상으로 압축하여 처리하는 방법과 역투사 과정에서 GPU 의 깊이 테스트 기능을 통해 불필요한 계산을 제거하여 속도를 향상 시키는 방법을 소개한다.
따라서 FFT 와 같은 순차적인 작업을 수행하기 위해서는 매 단계마다 이전 단계에서의 결과를 텍스쳐로 지정하고, 다시 기하처리 단계에서 시작하는 불필요한 연산을 반복해야 한다. DX10 에서 추가된 지오메트리 쉐이더는 픽셀 쉐이더, 즉 프래그먼트 연산 과정을 거친 최종 결과를 다시 이전 파이프라인 단계를 모두 거치지 않고 입력으로 활용하는 효율적인 방법을 제시한다. 그러나 본 논문에서는 제안하는 방법은 지오메트리 쉐이더를 사용하지 않으므로 자세한 설명은 생략한다.
실험은 1)CPU 를 OpenMP 를 사용하여 최적화 시킨 경우와 2)GPU 만을 사용한 경우, 3)마지막으로 GPU 에 제안된 최적화 방법을 적용한 경우, 각각의 결과를 비교하는 방법으로 진행하였다. <표 4.
두 번째로는 복잡도가 높아 가장 시간이 많이 걸리는 역투사 과정에서 깊이 테스트를 이용하여 불필요한 공간을 잘라내는 방법이다. 이러한 방법을 적용하여 기존의 FDK 알고리즘 GPU 상에서 최적으로 동작할 수 있도록 구현 방법을 제시하고 비교 분석하였다. 그 결과 CPU 기반 프로그램 대비 약 50 배, 기존 GPU 프로그램 대비 50% 정도의 속도향상이 있었다.
Intel 사의 최신 CPU 가 4 개의 코어(core)를 갖는데 반해, Nvidia 사의 비교적 최신 모델인 G80 계열의 GPU 는 128 개의 코어를 내장하고 있다. 이에 더해 각각의 코어 내부에서도 GPU 는, CPU 와 비교하여 볼 때, 프로그램의 실행을 제어하는 Control Unit 보다 데이터 연산을 담당하는 ALU(Arithmetic Logic Unit)에 더 많은 트랜지스터 (transistor)를 할당하는 구조로 설계되었다. 따라서 GPU 는 Control Unit 의 역할이 중요해지는 분기문(branch) 사용이 잦은 순차 프로그램에는 취약하지만, SIMD processor 로서 대형 데이터에 대한 반복 연산에서 CPU 에 구조적 우위를 갖는다.
데이터처리
4 장에서는 제안한 GPU 기반 방법과 OpenMP 를 이용하여 최적화 시킨 CPU 기반 프로그램 등을 비교하여 성능을 평가하였다. 마지막 5 장에서는 소개된 가속 기법을 요약하고 끝을 맺는다.
이론/모형
) 의 시간 복잡도가 요구되나 주파수 영역(frequency domain)에서 이를 수행할 경우 복잡도는 0(M x N) 으로 줄어든다. 주파수 영역에서 여과하기 위해, 공간 영역에서 정의된 투영 영상을 푸리에 변환(Fourier transform)을 사용하여 주파수 영역으로 변환한다.
성능/효과
이러한 방법을 적용하여 기존의 FDK 알고리즘 GPU 상에서 최적으로 동작할 수 있도록 구현 방법을 제시하고 비교 분석하였다. 그 결과 CPU 기반 프로그램 대비 약 50 배, 기존 GPU 프로그램 대비 50% 정도의 속도향상이 있었다.
3>의 첫 번째 실험과 두 번째 실험을 비교해 보면 최적화 없이도 GPU 사용하여 나타난 월등한 성능 향상을 볼 수 있다. 두 번째와 세 번째 실험의 여과 처리 결과를 비교해 보면, 네 개의 채널을 이용한 압축 효과가 4 배의 속도 향상으로 이어지지 않았다. 그 이유는 GPU 에서 여과 처리를 진행하기 위해 CPU 메모리 상의 데이터를 GPU 로 옮기는 작업이 필요하기 때문이다.
이는 여과 처리 과정에서 CPU 와 GPU 간의 통신이 차지하는 시간 비용이 크고, 이 비용이 1/4 로 줄어 들었기 때문에 나타난 결과이다. 따라서 제안된 4채널 압축 방법은 기존의 여과 처리 방법에 비해 월등한 성능 향상 효과를 가져온다.
따라서 GPU 는 Control Unit 의 역할이 중요해지는 분기문(branch) 사용이 잦은 순차 프로그램에는 취약하지만, SIMD processor 로서 대형 데이터에 대한 반복 연산에서 CPU 에 구조적 우위를 갖는다. 또한 전술한 방법으로 범용 프로그래밍이 가능하기 때문에, 이 논문의 주제인 CT 삼차원 재구성에 훌륭한 해결책이 될 수 있다.
본 논문에서는 일련의 수식 (3.1-8)~(3.1-13)를 통해 분리 복원 없이 여과 후 역 푸리에 변환한 결과와, 압축 없이 두 개의 함수를 각각 처리한 결과가 같음을 보인다. 수식 (3.
역투사 과정에서는 최적화 시킨 방법이 예측한 바와 같이 20%정도의 성능 향상을 보였다. 이는 여과 과정과는 달리 메모리 복사 등의 비용보다는 역투사 연산 자체가 차지하는 비율이 지배적이기 때문이다.
역투사 과정을 GPU 에서 실행시키는 데에는 두 가지 큰 이점이 있다. 첫째로, 투영 영상의 지정된 좌표에서 값을 읽어오는 과정(sampling)에서 계산 비용을 절감할 수 있다. 투영 영상은 정수형 좌표를 갖는 이차원 배열로 표현된다.
질의응답
핵심어
질문
논문에서 추출한 답변
삼차원 재구성 기법이 산업, 의료 분야에서 널리 사용되는 이유는 무엇인가?
삼차원 재구성 기법은 대상을 파괴하지 않고도 그 내부 구조의 공간적 해석을 가능하게 해주는 단층 영상을 생성해주기 때문에, 산업, 의료분야에서 널리 사용되고 있다. 최근 영상 장비의 성능 향상으로 고해상도의 CT 영상을 얻을 수 있게 되었으나, 대용량 데이터를 재구성하기 위해 많은 시간이 소요된다.
삼차원 재구성이란 무엇인가?
삼차원 재구성(Reconstruction)이란, 물체를 중심으로 일정 각도 간격으로 회전하며 얻은 투영 영상으로부터, 공간적 해석이 가능한 단층영상들을 생성하는 것을 말한다. 이렇게 생성된 삼차원 영상에 물체 내부를 보여주는 볼륨 렌더링(volume rendering)[1] 기법을 적용하면, 물체를 파괴하지 않고도 내부 구조를 정밀하게 관찰 할 수 있다.
본 논문에서 제안하는 범용 그래픽스 하드웨어를 사용하여 최적화하는 방법은 여과와 역투사 과정에서 어떤 방법을 사용하는가?
본 논문에서는 재구성에서 가장 많은 시간이 소요되는 여과와 역투사 과정을 범용 그래픽스 하드웨어를 사용하여 최적화하는 방법을 제안한다. 여과에서는 네 장의 영상을 압축하여 동시에 처리하는 기법을 적용하고, 역투사 과정에서는 깊이 테스트를 이용하여 계산량을 줄이는 방법을 사용한다. 제안된 방법으로 구현된 GPU 기반 프로그램은 OpenMP 를 사용하여 최적화 된 CPU 기반 프로그램에 비해 약 50 배 이상 속도가 향상되었다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.