KR101283266B1 - Method and apparatus for monte-carlo simulation gamma-ray scattering estimation in positron emission tomography using graphics processing unit - Google Patents

Method and apparatus for monte-carlo simulation gamma-ray scattering estimation in positron emission tomography using graphics processing unit Download PDF

Info

Publication number
KR101283266B1
KR101283266B1 KR1020120041100A KR20120041100A KR101283266B1 KR 101283266 B1 KR101283266 B1 KR 101283266B1 KR 1020120041100 A KR1020120041100 A KR 1020120041100A KR 20120041100 A KR20120041100 A KR 20120041100A KR 101283266 B1 KR101283266 B1 KR 101283266B1
Authority
KR
South Korea
Prior art keywords
sinogram
photons
gpu
scattering
detector
Prior art date
Application number
KR1020120041100A
Other languages
Korean (ko)
Other versions
KR20120127214A (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 US13/467,896 priority Critical patent/US8983162B2/en
Publication of KR20120127214A publication Critical patent/KR20120127214A/en
Application granted granted Critical
Publication of KR101283266B1 publication Critical patent/KR101283266B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/003Reconstruction from projections, e.g. tomography
    • G06T11/005Specific pre-processing for tomographic reconstruction, e.g. calibration, source positioning, rebinning, scatter correction, retrospective gating
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B6/00Apparatus for radiation diagnosis, e.g. combined with radiation therapy equipment
    • A61B6/02Devices for diagnosis sequentially in different planes; Stereoscopic radiation diagnosis
    • A61B6/03Computerised tomographs
    • A61B6/037Emission tomography
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01TMEASUREMENT OF NUCLEAR OR X-RADIATION
    • G01T1/00Measuring X-radiation, gamma radiation, corpuscular radiation, or cosmic radiation
    • G01T1/16Measuring radiation intensity
    • G01T1/161Applications in the field of nuclear medicine, e.g. in vivo counting

Landscapes

  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Molecular Biology (AREA)
  • General Physics & Mathematics (AREA)
  • High Energy & Nuclear Physics (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Optics & Photonics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Radiology & Medical Imaging (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • Pathology (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Biophysics (AREA)
  • Theoretical Computer Science (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Measurement Of Radiation (AREA)

Abstract

감마선 산란 사이노그램을 생성하여 영상을 재구성하기 위한 방법 및 장치가 제공된다. 초기의 산란 보정이 되지 않은 재구성 영상에서, 광자의 발생 위치가 결정된다. GPU는 몬테카를로 시뮬레이션을 사용하여 광자의 이동을 연산한다. 광자가 검출기에 도달한 위치를 통해 3차원 측정선이 계산되며, 계산된 측정선은 3차원 사이노그램 형식으로 변환되어 프롬프트 사이노그램 및 감마선 산란 사이노그램에 저장된다. 감마선 산란 사이노그램의 스케일을 조정함으로써 최종적인 감마선 산란 사이노그램이 생성된다.A method and apparatus are provided for generating a gamma ray scattering sinogram to reconstruct an image. In the reconstructed image without initial scattering correction, the photon generation position is determined. The GPU uses Monte Carlo simulation to compute the photon's movement. The three-dimensional measurement line is calculated from the position where the photon reaches the detector, and the calculated measurement line is converted into the three-dimensional sinogram form and stored in the prompt sinogram and gamma ray scattering sinogram. The final gamma ray scattering sinogram is generated by scaling the gamma ray scattering sinogram.

Description

GPU를 이용한 양전자 방출 단층 촬영 영상에서의 몬테카를로 시뮬레이션 감마선 산란 추정 방법 및 장치{METHOD AND APPARATUS FOR MONTE-CARLO SIMULATION GAMMA-RAY SCATTERING ESTIMATION IN POSITRON EMISSION TOMOGRAPHY USING GRAPHICS PROCESSING UNIT}METHOD AND APPARATUS FOR MONTE-CARLO SIMULATION GAMMA-RAY SCATTERING ESTIMATION IN POSITRON EMISSION TOMOGRAPHY USING GRAPHICS PROCESSING UNIT}

아래의 실시예들은 양전자 방출 단층 촬영(Positron Emission Tomography; PET)에 관련된 것이다.The examples below relate to Positron Emission Tomography (PET).

감마선 산란 추정을 위해 GPU를 사용하여 몬테카를로 시뮬레이션을 병렬로 처리하는 방법 및 장치가 개시된다.A method and apparatus are disclosed for processing Monte Carlo simulations in parallel using a GPU for gamma ray scattering estimation.

단층 촬영은 검출기를 180° 또는 360° 회전하여 물체의 특정 단면을 인접한 다른 단면과의 중첩 없이 비침슴적으로 관찰할 수 있는 영상기법이다. Tomography is an imaging technique in which a detector is rotated 180 ° or 360 ° to observe a particular section of an object non-invasively without overlapping another adjacent section.

사이노그램(sinogram)은 단층 촬영에 의해 획득된 복수 개의 영상을 의미한다. 사이노그램은 3차원 영상으로 재구성(reconstruct)된다. 관찰자는 재구성된 3차원 영상을 통해 촬영된 물체의 특정 단면을 관찰할 수 있다.A sinogram refers to a plurality of images obtained by tomography. The sinogram is reconstructed into a 3D image. An observer can observe a specific cross section of the photographed object through the reconstructed three-dimensional image.

핵의학 단층 영상은, 피촬영자의 체내에 투여된 방사성 의약품이 생화학적 특성에 따라 피촬영자의 체내에서 분포되는 특성이 영상으로 표현된 것이다.In nuclear medicine tomography, radiopharmaceuticals administered to the subject's body are represented by images of the distribution of the radiopharmaceutical in the subject's body according to their biochemical properties.

체내에 투여되는 방사성 의약품은 기준치에 의해 그 방사선량이 제한된다. 따라서, 극소량의 광자에 의해 기록된 투사값으로부터 높은 해상도의 영상이 재구성되기는 어렵다.Radiopharmaceuticals administered to the body are limited in radiation dose by reference values. Therefore, it is difficult to reconstruct a high resolution image from the projection value recorded by the very small amount of photons.

핵의학 영상 장비를 사용하여 단층을 촬영하는 경우, 관측된 신호의 세기가 약한 것에 비해, 상대적으로 잡음은 강하다.When imaging a tomography using nuclear medical imaging equipment, the noise is relatively strong compared to the weak intensity of the observed signal.

따라서, 감마선의 산란은 영상을 재구성한 결과에 큰 영향을 미치며, 감마선의 산란에 따른 영상 잡음을 보정하기 위해서, 단일 산란 시뮬레이션과 같은 근사화 된 감마선 산란 추정 알고리즘이 널리 사용된다.Therefore, scattering of gamma rays has a great influence on the reconstructed image, and an approximated gamma scattering estimation algorithm, such as a single scattering simulation, is widely used to correct image noise due to scattering of gamma rays.

몬테카를로 시뮬레이션은 감마선 광자를 하나씩 발생시키고 감마선 광자의 이동(migration)을 실제와 흡사하게 시뮬레이션 하는 방법이다.Monte Carlo simulation is a method of generating gamma ray photons one by one and simulating the migration of gamma ray photons similarly to the real world.

몬테카를로 시뮬레이션은, 연구자들에게는 실제 발생 가능한 현상을 예측하고 평가하는 기준이 되는 방법이다. 그러나, 몬테카를로 시뮬레이션을 위해서는 기본적으로 수 시간에서 수 일의 연산시간이 소요된다. 따라서, 몬테카를로 시뮬레이션은 실제 임상에서는 거의 사용되지 않는다. 마찬가지로, 몬테카를로 시뮬레이션을 이용한 감마선 산란 추정(scatter estimation) 및 보정(correction)은 연구적으로도 거의 사용되지 않고 있다.Monte Carlo simulation is a way for researchers to predict and evaluate what can actually happen. However, Monte Carlo simulations typically take hours to days of computational time. Thus, Monte Carlo simulations are rarely used in actual clinical practice. Similarly, gamma ray scattering estimation and correction using Monte Carlo simulations are rarely used in research.

양전자 방출 단층 촬영(Positron Emission Tomography; PET) 영상을 3차원 영상으로 재구성하는 과정에 있어서, 감마선 산란 추정 과정 및 이를 이용한 최종적인 3차원 영상 재구성 과정에서 가장 많은 시간이 소요된다.In the process of reconstructing a Positron Emission Tomography (PET) image into a 3D image, gamma ray scattering estimation process and the final 3D image reconstruction process using the same are the most time-consuming.

이러한 연산시간을 감소시키기 위해 병렬 처리 기법이 사용될 수 있다. 병렬 처리는 복수 개의 연산 코어(core)에서 동종의 일을 나누어서 동시에 연산하는 방법이다.Parallel processing techniques can be used to reduce this computation time. Parallel processing is a method of dividing the same kind of work in a plurality of computing cores at the same time.

멀티코어가 탑재된 CPU(central processing unit) 또는 GPU가 병렬 처리에 사용될 수 있다. 특히, GPU는 일반적으로 수십 개에서 수백 개의 코어를 탑재하여 대규모의 처리를 병렬로 수행할 수 있으며, 그래픽 연산뿐만 아니라 수학적인 연산을 처리할 수 있다.A multi-core central processing unit (CPU) or GPU can be used for parallel processing. In particular, GPUs typically have dozens or hundreds of cores to perform massive processing in parallel, and can handle mathematical operations as well as graphic operations.

본 발명의 일 실시예는, 가장 정확하다고 알려진 몬테카를로 시뮬레이션을 이용한 감마선 산란 추정에 있어서, GPU를 사용함으로써 수백 배 이상 향상된 속도를 갖는 방법 및 장치를 제공할 수 있다.One embodiment of the present invention, in the gamma ray scattering estimation using the Monte Carlo simulation known to be the most accurate, can provide a method and apparatus having a speed several hundred times more improved by using a GPU.

본 발명의 일 실시예는, 임상에서도 사용 가능한 수준으로 향상된 속도를 갖는 몬테카를로 시뮬레이션을 이용한 감마선 산란 추정 방법 및 장치를 제공할 수 있다.An embodiment of the present invention may provide a method and apparatus for estimating gamma ray scattering using Monte Carlo simulation having an improved speed to a level that can be used even in a clinic.

본 발명의 일 실시예는, 하이브리드 CPU-GPU 구조를 사용하여 감마선 산란 사이노그램을 생성하는 방법 및 장치를 제공할 수 있다.One embodiment of the present invention may provide a method and apparatus for generating a gamma ray scattering sinogram using a hybrid CPU-GPU structure.

본 발명의 일 측에 따르면, 물체를 측정하여 생성된 실제 측정된 사이노그램을 수신하는 단계, 상기 물체에서 감마선이 발생하는 초기 발생 위치들에 대한 몬테카를로 시뮬레이션을 수행하는 단계 - 상기 몬테카를로 시뮬레이션은 GPU를 사용함으로써 광자들의 초기 발생 위치들 별로 병렬로 수행됨 -, 상기 몬테카를로 시뮬레이션에 의해 생성된 산란된 광자에 대한 정보에 기반하여 감마선 산란이 보정된 감마선 산란 사이노그램을 생성하는 단계 및 상기 감마선 산란 사이노그램에 기반하여 재구성된 영상을 생성하는 단계를 포함하는, 영상 재구성 방법이 제공된다.According to one aspect of the invention, the step of receiving the actual measured sinogram generated by measuring the object, performing a Monte Carlo simulation for the initial occurrence of the gamma rays generated in the object-the Monte Carlo simulation is GPU Generating a gamma ray scattering sinogram with gamma ray scattering corrected based on the information about the scattered photons generated by the Monte Carlo simulation, and between the gamma ray scattering An image reconstruction method is provided, which includes generating a reconstructed image based on a nogram.

본 발명의 다른 일 측에 따르면, 재구성된 영상 내에서 광자의 발생 위치를 결정하는 단계, 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계, 2 개의 검출기 위치들 및 이동 중 변화된 값들을 계산하는 단계 - 상기 2 개의 검출기 위치들은 상기 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이고, 상기 이동 중 변화된 값들은 상기 2 개의 광자들 각각이 물체를 통과하고 이동한 동안에 변화된 값들임 -, 상기 2 개의 검출기 위치들을 잇는 3차원 측정선을 계산하는 단계, 상기 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성하는 단계 및 상기 감마선 산란 사이노그램의 스케일을 조정하는 단계를 포함하는, 감마선 산란 사이노그램 생성 방법이 제공된다.According to another aspect of the present invention, there is provided a method of determining a generation position of a photon in a reconstructed image, calculating a movement of two photons generated at the generation position by using Monte Carlo simulation, two detector positions, and a movement. Calculating the changed values of the detectors, wherein the two detector positions are detector coordinates when each of the two photons reaches the detector, and the changed values during the movement are determined by the movement of each of the two photons through and through the object. Are values changed during the step of: calculating a three dimensional measurement line connecting the two detector positions, generating a prompt sinogram and a gamma ray scattering sinogram based on the three dimensional measurement line and the gamma ray scattering sino A method for generating gamma ray scattering sinograms is provided, the method comprising scaling a gram. .

상기 발생 위치는 복수 개일 수 있다.The generation position may be a plurality.

상기 복수 개의 발생 위치들 각각은 GPU의 복수 개의 코어들 중 하나의 코어에게 할당될 수 있다.Each of the plurality of generation positions may be assigned to one core of the plurality of cores of the GPU.

상기 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계 및 상기 2 개의 검출기 위치들 및 이동 중 변화된 값들을 계산하는 단계는 상기 복수 개의 코어들에 의해 병렬로 수행될 수 있다.Calculating the movement of the two photons generated at the generation position by using the Monte Carlo simulation and calculating the two detector positions and the values changed during the movement may be performed in parallel by the plurality of cores. .

상기 재구성된 영상 내에서 광자의 발생 위치를 결정하는 단계는, 상기 재구성 영상 내에서 값을 갖는 위치들을 상기 복수 개의 발생 위치들로 간주하는 단계 및 상기 복수 개의 발생 위치들을 포함하는 테이블을 생성하는 단계를 포함할 수 있다.Determining a generation position of a photon in the reconstructed image includes: recognizing positions having values in the reconstructed image as the plurality of occurrence positions and generating a table including the plurality of occurrence positions. It may include.

상기 GPU의 상기 복수 개의 코어들 각각은 상기 테이블 내의 코어의 번호에 기반하여 결정된 하나 이상의 발생 위치들을 할당 받을 수 있다.Each of the plurality of cores of the GPU may be assigned one or more occurrence positions determined based on the number of cores in the table.

상기 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계는, GPU의 코어가 상기 발생 위치를 할당 받는 단계, 상기 코어가 광자의 상기 할당 받은 발생 위치에서의 초기 이동 방향을 랜덤으로 생성하는 단계, 상기 코어가 상기 광자의 이동 거리를 랜덤으로 생성하는 단계, 상기 코어가 상기 광자가 상기 초기 이동 방향으로 상기 이동 거리만큼 이동한 위치를 계산하는 단계, 상기 코어가 상기 이동한 위치로의 이동에 따른 상기 광자의 감쇄를 연산하는 단계 및 상기 광자가 상기 검출기에 도달하였는지 확인하는 단계를 포함할 수 있다.Computing the movement of the two photons generated at the generation position by using the Monte Carlo simulation, wherein the core of the GPU is assigned the generation position, the core is to determine the initial movement direction at the assigned generation position of photons Randomly generating, the core randomly generating a moving distance of the photons, the core calculating a position at which the photons move by the moving distance in the initial moving direction, and the core is moved Calculating the attenuation of the photon as it moves into position and confirming that the photon has reached the detector.

상기 코어가 상기 이동한 위치로의 이동에 따른 상기 광자의 감쇄를 연산하는 단계는, 상기 광자의 감쇄는 상기 코어가 감쇄 계수의 3차원 영상에서 상기 이동한 위치의 3차원 좌표에 해당하는 값을 획득함으로써 연산될 수 있고, 상기 코어는 상기 GPU가 제공하는 3차원 선형 보간법을 사용함으로써 상기 3차원 좌표에 해당하는 값을 독출하여 획득할 수 있다.Computing the attenuation of the photon according to the movement of the core to the moved position, the attenuation of the photon is a value corresponding to the three-dimensional coordinates of the moved position in the three-dimensional image of the attenuation coefficient of the core The core may be acquired by reading a value corresponding to the three-dimensional coordinates by using a three-dimensional linear interpolation method provided by the GPU.

상기 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계는, 상기 코어가 상기 이동한 위치에서의 상기 광자의 산란의 발생 여부를 결정하는 단계, 상기 산란이 발생한 경우, 상기 코어가 상기 산란의 산란 각도를 랜덤으로 생성하는 단계, 상기 산란이 발생한 경우, 상기 코어가 상기 산란의 콤프턴 산란 값을 계산하는 단계를 더 포함할 수 있다.Calculating the movement of two photons generated at the generation position by using the Monte Carlo simulation, the core determines whether scattering of the photons at the moved position occurs, if the scattering has occurred, The core may further include randomly generating a scattering angle of the scattering, and when the scattering occurs, the core calculates the Compton scattering value of the scattering.

상기 코어가 상기 이동한 위치에서의 상기 광자의 산란의 발생 여부를 결정하는 단계는, 상기 코어가 상기 이동한 위치의 감쇄 계수가 경계 값 이하이면 상기 산란이 발생하지 않은 것으로 결정하고, 상기 이동한 위치의 상기 감쇄 계수가 상기 경계 값보다 더 크면 상기 산란이 발생한 것으로 결정하는 단계를 포함할 수 있다.Determining whether the scattering of the photons at the moved position of the core is determined, if the attenuation coefficient of the moved position of the core is less than a boundary value, the scattering does not occur, And determining that scattering has occurred if the attenuation coefficient of a location is greater than the boundary value.

상기 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성하는 단계는, 상기 3차원 측정선을 사이노그램 형식으로 변환하는 단계, 상기 사이노그램 형식으로 변환된 3차원 측정선을 프롬프트 사이노그램에 저장하는 단계 및 상기 2 개의 광자들이 산란이 된 광자인 경우 상기 사이노그램 형식으로 변환된 3차원 측정선을 상기 감마선 산란 사이노그램에 저장하는 단계를 포함할 수 있다.Generating a prompt sinogram and a gamma ray scattering sinogram based on the 3D measurement line may include converting the 3D measurement line into a sinogram form, and converting the 3D measurement line into the sinogram form. Storing a line in a prompt sinogram and storing a three-dimensional measurement line converted to the sinogram form in the gamma ray scattering sinogram when the two photons are scattered photons. .

상기 3차원 측정선을 사이노그램 형식으로 변환하는 단계는, 상기 3차원 측정선을 X-Y 방향 및 Z 방향의 벡터로 구분하는 단계 및 상기 벡터에 기반하여 상기 3차원 측정선을 상기 사이노그램 형식으로 변환하는 단계를 포함할 수 있다.The converting of the 3D measurement line into a sinogram form may include: dividing the 3D measurement line into a vector in an XY direction and a Z direction, and converting the 3D measurement line into the sinogram form based on the vector. It may include the step of converting.

상기 감마선 산란 사이노그램의 스케일을 조정하는 단계는, 상기 실제 측정된 사이노그램 및 상기 프롬프트 사이노그램 간의 오차를 최소화하는 스케일 상수를 계산하는 단계 및 상기 스케일 상수를 상기 감마선 산란 사이노그램에 곱함으로써 상기 감마선 산란 사이노그램의 스케일을 조정하는 단계를 포함할 수 있다.Adjusting the scale of the gamma ray scattering sinogram comprises: calculating a scale constant that minimizes the error between the actual measured sinogram and the prompt sinogram and adding the scale constant to the gamma ray scattering sinogram And scaling the gamma ray scattering sinogram by multiplying.

본 발명의 또 다른 일 측에 따르면, 물체를 측정하여 생성된 실제 측정된 사이노그램을 수신하는 수신부, 실제 측정된 사이노그램을 사용하여 제1 재구성된 영상을 생성하는 CPU 및 상기 물체에서 감마선이 발생하는 초기 발생 위치들에 대한 몬테카를로 시뮬레이션을 수행하는 GPU; - 상기 GPU는 상기 몬테카를로 시뮬레이션을 하나 이상의 코어들을 사용함으로써 광자들의 초기 발생 위치들 별로 병렬로 수행함 -을 포함하고, 상기 CPU는 상기 몬테카를로 시뮬레이션에 의해 생성된 산란된 광자에 대한 정보에 기반하여 감마선 산란이 보정된 사이노그램을 생성하고, 상기 감마선 산란이 보정된 사이노그램에 기반하여 재구성된 영상을 생성하는, 영상 재구성 장치가 제공된다.According to another aspect of the present invention, a receiver for receiving an actual measured sinogram generated by measuring an object, a CPU for generating a first reconstructed image using the actually measured sinogram and a gamma ray in the object A GPU that performs Monte Carlo simulations for these initial occurrence locations; Wherein the GPU performs the Monte Carlo simulation in parallel by initial generation positions of photons by using one or more cores, and wherein the CPU scatters gamma rays based on information about scattered photons generated by the Monte Carlo simulation An image reconstruction apparatus is provided, which generates this corrected sinogram and generates a reconstructed image based on the sinogram whose gamma ray scattering is corrected.

본 발명의 또 다른 일 측에 따르면, 재구성된 영상 내에서 광자의 발생 위치를 결정하고, 2 개의 검출기 위치들을 잇는 3차원 측정선을 계산하고, 상기 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성하고, 상기 감마선 산란 사이노그램의 스케일을 조정하는 CPU 및 몬테카를로 시뮬레이선을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하고, 상기 2 개의 검출기 위치들 및 이동 중 변화된 값들을 계산하는 GPU - 상기 2 개의 검출기 위치들은 상기 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이고, 상기 이동 중 변화된 값들은 상기 2 개의 광자들 각각이 물체를 통과하고 이동한 동안에 변화된 값들임 - 을 포함하는, 감마선 산란 사이노그램 생성 장치가 제공된다.According to yet another aspect of the present invention, a generation position of a photon in a reconstructed image is determined, a three-dimensional measuring line connecting two detector positions, a prompt sinogram based on the three-dimensional measuring line and Compute the movement of the two photons generated at the generation position by using a Monte Carlo simulation and a CPU to generate a gamma ray scattering sinogram and scale the gamma ray scattering sinogram, the two detector positions and GPU for calculating changed values during movement-the two detector positions are detector coordinates when each of the two photons reaches the detector, and the changed values during the movement are each of the two photons passing through the object and moving Gamma-ray scattering sinogram generation apparatus is provided, wherein the values vary over time.

본 발명의 또 다른 일 측에 따르면, CPU가 재구성된 영상 내에서 광자의 발생 위치를 결정하는 단계, GPU가 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 광자 쌍에 대한 2 개의 검출기 위치들을 잇는 3차원 측정선의 정보를 생성하는 단계 - 상기 검출기 위치들은 상기 광자 쌍의 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들임 - 및 상기 CPU가 상기 3차원 측정선의 정보에 기반하여 사이노그램 리비닝을 수행하는 단계를 포함하고, 상기 발생 위치는 복수 개이며, 상기 GPU는 상기 복수 개의 발생 위치들 각각을 상기 GPU의 복수 개의 쓰레드들 각각에게 할당하고, 상기 3차원 측정선의 정보를 생성하는 단계 및 상기 사이노그램 리비닝을 수행하는 단계는 각각 상기 CPU 및 상기 GPU에 의해 병렬로 실행되는, 사이노그램 리비닝 방법이 제공된다.According to another aspect of the invention, the CPU determines the location of the photon's occurrence in the reconstructed image, the GPU three-dimensionally connecting two detector positions for the pair of photons generated at the generation position by using Monte Carlo simulation Generating information of a measurement line, wherein the detector positions are detector coordinates when each of the two photons of the photon pair reaches the detector, and the CPU rebinds the sinogram based on the information of the three-dimensional measurement line And generating a plurality of generation positions, and assigning each of the plurality of generation positions to each of a plurality of threads of the GPU, generating information of the 3D measurement line; And performing the sinogram rebinding is performed in parallel by the CPU and the GPU, respectively. This method is provided.

상기 복수 개의 발생 위치들은 복수 개의 그룹들로 분리될 수 있다.The plurality of generation positions may be divided into a plurality of groups.

상기 복수 개의 그룹들은 각각 상기 3차원 측정선의 정보를 생성하는 단계 및 상기 사이노그램 리비닝을 수행하는 단계의 되풀이(iteration)들에 의해 처리될 수 있다.Each of the plurality of groups may be processed by iterations of generating information of the 3D measurement line and performing the sinogram rebinding.

상기 3차원 측정선의 정보는 비동기적인 메모리 전송을 통해 상기 GPU로부터 상기 CPU로 전송될 수 있다.Information of the 3D measurement line may be transmitted from the GPU to the CPU through an asynchronous memory transfer.

본 발명의 또 다른 일 측에 따르면, 재구성된 영상 내에서 광자의 발생 위치를 결정하는, 3차원 측정선의 정보에 기반하여 사이노그램 리비닝을 수행하는 CPU 및 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 광자 쌍에 대한 2 개의 검출기 위치들을 잇는 상기 3차원 측정선의 정보를 생성하는 GPU를 포함하고, 상기 검출기 위치들은 상기 광자 쌍의 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이고, 상기 발생 위치는 복수 개이며, 상기 GPU는 상기 복수 개의 발생 위치들 각각을 상기 GPU의 복수 개의 쓰레드들 각각에게 할당하고, 상기 3차원 측정선의 정보를 생성하는 단계 및 상기 사이노그램 리비닝을 수행하는 단계는 각각 상기 CPU 및 상기 GPU에 의해 병렬로 실행되는, 사이노그램 생성 장치가 제공된다.According to another aspect of the invention, by using the CPU and Monte Carlo simulation to perform the sinogram revision based on the information of the three-dimensional measurement line, to determine the location of the photon in the reconstructed image at the location of the generation A GPU for generating information of the three-dimensional measurement line joining two detector positions for the generated photon pair, wherein the detector positions are detector coordinates when each of the two photons of the photon pair reaches the detector; There are a plurality of generation positions, and the GPU assigns each of the plurality of generation positions to each of a plurality of threads of the GPU, generating information of the 3D measurement line, and performing the sinogram rebinding. Steps are provided by a sinogram generating apparatus, each executed in parallel by the CPU and the GPU.

병렬 처리를 이용함으로써 연산 시간이 감축된 감마선 산란 추정 방법 및 장치가 제공된다.A gamma ray scattering estimation method and apparatus are provided in which computation time is reduced by using parallel processing.

GPU의 병렬 처리를 이용한 몬테카를로 시뮬레이션 산란 사이노그램 생성 방법 및 장치가 제공된다.A method and apparatus for generating a Monte Carlo simulation scattering sinogram using parallel processing of a GPU is provided.

하이브리드 CPU-GPU 구조를 사용하여 감마선 산란 사이노그램을 생성하는 방법 및 장치가 제공된다.A method and apparatus are provided for generating gamma ray scattering sinograms using a hybrid CPU-GPU architecture.

도 1은 본 발명의 일 실시예에 따른 감마선 산란 사이노그램을 이용한 영상 재구성 장치이다.
도 2는 본 발명의 일 실시예에 따른 감마선 산란 사이노그램을 이용한 영상 재구성 방법을 나타내는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 몬테카를로 시뮬레이선을 나타내는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 사이노그램 생성 방법의 흐름도이다.
도 5는 본 발명의 일 예에 따른 감마선 산란 사이노그램의 스케일 조정 방법의 흐름도이다.
도 6은 본 발명의 일 예에 따른 검출기에 도달하기까지 광자의 이동에 따른 연산을 수행하는 방법을 나타내는 흐름도이다.
1 is an image reconstruction apparatus using a gamma ray scattering sinogram according to an embodiment of the present invention.
2 is a flowchart illustrating an image reconstruction method using a gamma ray scattering sinogram according to an embodiment of the present invention.
3 is a flowchart illustrating a Monte Carlo simulation line according to an embodiment of the present invention.
4 is a flowchart of a sinogram generation method according to an embodiment of the present invention.
5 is a flowchart illustrating a method of adjusting a scale of a gamma ray scattering sinogram according to an embodiment of the present invention.
6 is a flowchart illustrating a method of performing an operation according to movement of photons until reaching a detector according to an example of the present invention.

이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to or limited by the embodiments. Like reference symbols in the drawings denote like elements.

도 1은 본 발명의 일 실시예에 따른 감마선 산란 사이노그램을 이용한 영상 재구성 장치이다.1 is an image reconstruction apparatus using a gamma ray scattering sinogram according to an embodiment of the present invention.

영상 재구성 장치(100)는 수신부(110), 중앙 처리 장치(Central Processing Unit; CPU)(120) 및 그래픽 처리 장치(Graphics Processing Unit; GPU)(130)를 포함한다. 상기의 영상 재구성 장치(100)는 감마선 산란 사이노그램을 생성하는 사이노그램 생성 장치일 수 있다. The image reconstruction apparatus 100 includes a receiver 110, a central processing unit (CPU) 120, and a graphics processing unit (GPU) 130. The image reconstruction apparatus 100 may be a sinogram generating apparatus that generates a gamma ray scattering sinogram.

수신부(110)는 유무선 네트워크를 통해 실제 측정된 사이노그램을 나타내는 데이터를 수신할 수 있다.The receiver 110 may receive data representing a sinogram actually measured through a wired or wireless network.

GPU(130)는 하나 이상의 코어(140)들을 포함할 수 있다. 코어(140)들은 그래픽 연산을 병렬로 수행할 수 있다.GPU 130 may include one or more cores 140. The cores 140 may perform graphics operations in parallel.

GPU(130)는 몬테카를로 시뮬레이션을 연산한다. 여기서, 몬테카를로 연산은, 광자의 이동을 계산하는 것을 의미한다.GPU 130 calculates the Monte Carlo simulation. Here, the Monte Carlo operation means calculating the photon movement.

코어(140)들 각각은 하나의 초기 발생 위치에서 발생한 감마선 광자 쌍의 이동(즉, 광자 쌍의 이동 경로)을 계산한다.Each of the cores 140 calculates the movement of the gamma ray photon pair (ie, the path of travel of the photon pair) that occurred at one initial generation position.

광자 쌍의 이동은 산란을 포함할 수 있다. 광자의 상태 값은 광자가 산란이 되었는지 또는 산란이 되지 않았는지에 대한 정보를 포함한다.Movement of the photon pairs can include scattering. The photon's state value includes information about whether or not the photon is scattered.

산란이 발생한 경우, 산란 각도 및 광자의 이동 거리는 랜덤으로 결정된다.When scattering occurs, the scattering angle and the moving distance of the photons are determined randomly.

광자들이 검출기에 도달한 경우, 연산이 종료한다.When the photons reach the detector, the operation ends.

GPU(120)는 CPU(120)에 포함될 수 있다.GPU 120 may be included in CPU 120.

CPU(120)는 몬테카를로 시뮬레이션에 의해 획득된 검출기의 좌표를 사용함으로써 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성할 수 있다.CPU 120 may generate a prompt sinogram and gamma ray scattering sinogram by using the coordinates of the detector obtained by Monte Carlo simulation.

프롬프트 사이노그램은 모든 데이터를 포함하는 사이노그램이다. 감마선 산란 사이노그램은 감마선 산란만을 포함하는 사이노그램이다.The prompt sinogram is a sinogram that contains all the data. Gamma ray scattering sinograms are sinograms that contain only gamma ray scattering.

또한, CPU(120)는 실제 측정된 사이노그램과 프롬프트 사이노그램을 비교함으로써 오차가 가장 적은 스케일 상수를 계산할 수 있고, 계산된 스케일 상수를 감마선 산란 사이노그램에 곱함으로써 최종 감마선 산란 사이노그램을 획득할 수 있다.In addition, the CPU 120 may calculate a scale constant having the least error by comparing the measured sinogram and the prompt sinogram, and multiply the calculated scale constant by the gamma ray scattering sinogram to obtain the final gamma ray scattering sinogram. Gram can be obtained.

영상 재구성 장치(100)는 감마선 산란 사이노그램을 이용하여 영상을 재구성할 수 있다.The image reconstruction apparatus 100 may reconstruct an image using a gamma ray scattering sinogram.

또한, CPU(120) 및 GPU(130)에 의해 감마선 산란 사이노그램이 생성될 수 있다. 따라서, CPU(120) 및 GPU(130)는 감마선 산란 사이노그램 생성 장치를 구성할 수 있다.
In addition, a gamma ray scattering sinogram may be generated by the CPU 120 and the GPU 130. Therefore, the CPU 120 and the GPU 130 may configure a gamma ray scattering sinogram generating apparatus.

도 2는 본 발명의 일 실시예에 따른 감마선 산란 사이노그램을 이용한 영상 재구성 방법을 나타내는 흐름도이다.2 is a flowchart illustrating an image reconstruction method using a gamma ray scattering sinogram according to an embodiment of the present invention.

본 실시예는 영상 재구성 장치(100)에 의해 수행될 수 있다. 즉, GPU를 포함하는 영상 재구성 장치(100)는 감마선 산란 사이노그램을 이용하여 영상을 재구성할 수 있다.This embodiment may be performed by the image reconstruction apparatus 100. That is, the image reconstruction apparatus 100 including the GPU may reconstruct an image using a gamma ray scattering sinogram.

상기의 재구성되는 영상은 3D 영상일 수 있다.The reconstructed image may be a 3D image.

단계(210)에서, 예컨대 수신부(110)에 의해, 영상을 재구성하기 위한 사이노그램이 수신된다.In step 210, for example, by the receiver 110, a sinogram for reconstructing an image is received.

수신된 사이노그램은 실제 기계(즉, 양전자 방출 단층 촬영기)가 물체를 측정하여 생성된 실제 측정된 사이노그램이다.The received sinogram is the actual measured sinogram generated by the real machine (ie, positron emission tomography) measuring the object.

수신된 데이터는 양전자 방출 단층 촬영기로부터 전송된 것일 수 있다. 또는, 수신된 데이터는 데이터 제공을 위한 서버로부터 전송된 것일 수 있다.The received data may be from a positron emission tomography camera. Alternatively, the received data may be transmitted from a server for providing data.

CPU(120)에 의해, 실제 측정된 사이노그램을 사용함으로써 산란이 보정되지 않은 재구성된 영상이 생성될 수 있으며, 재구성된 영상에 기반하여 물체가 인식될 수 있다.By using the actually measured sinogram, the CPU 120 may generate a reconstructed image without scattering correction, and an object may be recognized based on the reconstructed image.

단계(220)에서, 예컨대 GPU(130)에 의해, 물체에서 감마선이 발생하는 초기 발생 위치들에 대한 몬테카를로 시뮬레이션이 수행된다.In step 220, for example, by the GPU 130, a Monte Carlo simulation is performed on the initial occurrence locations where gamma rays occur in the object.

초기 발생 위치들은 산란이 보정되지 않은 재구성된 영상 내에서의 위치일 수 있다. 즉, 예컨대 CPU(120)에 의해, 산란이 보정되지 않은 재구성된 영상 내에서 감마선이 발생하는 초기 발생 위치들이 결정될 수 있다.The initial occurrence locations may be locations within the reconstructed image where scattering is not corrected. That is, for example, the CPU 120 may determine initial generation positions at which gamma rays occur in the reconstructed image in which scattering is not corrected.

몬테카를로 시뮬레이션은 가상의 광자를 발생하여 발생된 가상의 광자를 임의로 실제와 흡사하게 이동시키는 시뮬레이션이다. 즉, 몬테카를로 시뮬레이션 실제 광자의 이동을 모델링 하는 것이다.Monte Carlo simulation is a simulation in which virtual photons are generated to move the virtual photons generated randomly, similar to actual ones. In other words, Monte Carlo simulation is to model the actual photon movement.

몬테카를로 시뮬레이션은 GPU(130) 상에서의 병렬 처리를 통해 구현될 수 있다. 즉, 몬테카를로 시뮬레이션은 GPU(130)를 사용함으로써 광자들의 초기 발생 위치들 별로 병렬로 수행될 수 있다.Monte Carlo simulation can be implemented through parallel processing on GPU 130. That is, the Monte Carlo simulation may be performed in parallel for each of the initial generation positions of the photons by using the GPU 130.

병렬 처리는 병렬 처리 코드에 의해 구현된다.Parallel processing is implemented by parallel processing code.

동일한 알고리즘(algorithm)을 구현하는 병렬 처리 코드들에 대해서도, 각각의 병렬 처리 코드의 연산 속도는 코드 내부의 복잡도에 따라서 서로 상이하다.Even for parallel processing codes that implement the same algorithm, the operation speed of each parallel processing code is different from each other depending on the complexity inside the code.

따라서, 병렬 처리 코드는 적은 수의 변수를 사용하여 간단하게 구성될 필요가 있다.Therefore, parallel processing code needs to be simply constructed using a small number of variables.

예컨대, 몬테카를로 시뮬레이션을 수행하는 영상 재구성 장치(100) 내의 CPU(예컨대, CPU(120))는 파일 입출력 등에만 관여하고, 몬테카를로 시뮬레이션을 위한 실제 연산은 병렬 처리 장치(예컨대, GPU(130))에서 병렬적으로 나뉘어 처리된다면, 이러한 병렬 처리 장치 내에서 수행되는 병렬 처리 코드는 최대한 간결한 코드로 구성될 필요가 있다.For example, a CPU (eg, the CPU 120) in the image reconstruction apparatus 100 performing Monte Carlo simulation is involved only in file input / output, etc., and the actual operation for the Monte Carlo simulation is performed in the parallel processing apparatus (eg, the GPU 130). If divided and processed in parallel, the parallel processing code executed in such a parallel processing apparatus needs to be composed of the most concise code.

병렬 처리에 있어서 핵심이 되는 병렬 처리 코드의 연산 속도를 향상시키기 위해서, 데이터의 송수신의 빈도를 최소한으로 줄이는 것이 매우 중요하다. 일반적으로 하나의 연산은 수 나노 초 내에서 완료될 수 있지만, 메모리를 독출(read) 또는 기입(write)하는 연산은 수백 나노 초 이상이 소요될 수 있다.In order to improve the operation speed of parallel processing code which is the core of parallel processing, it is very important to reduce the frequency of data transmission and reception to a minimum. In general, one operation can be completed within a few nanoseconds, but operations that read or write memory can take hundreds of nanoseconds or more.

수신된 데이터가 양전자 방출 단층 촬영기로부터 생성된 것일 경우, 영상을 재구성하기 위해 요구되는 사이노그램은 연산이 시작되기 전에 단 1회만 수신될 수 있으며, 재구성 영상은 연산이 끝난 후에 단 1회만 수신될 수 있다.If the received data is from a positron emission tomography, the sinogram required to reconstruct the image may only be received once before the operation begins, and the reconstructed image may only be received once after the operation is completed. Can be.

단계(220)에 대해, 도 3을 참조하여 하기에서 상세히 설명된다.For step 220, it is described in detail below with reference to FIG.

단계(230)에서, 예컨대 CPU(120)에 의해 감마선 산란 사이노그램이 생성된다.In step 230, for example, a gamma ray scattering sinogram is generated by the CPU 120.

감마선 산란 사이노그램은 감마선 산란이 보정된 사이노그램이다.Gamma-ray scattering sinograms are sinograms with gamma-ray scattering corrected.

감마선 산란 사이노그램은 전술된 몬테카를로 시뮬레이션에 의해 생성된 산란된 광자에 대한 정보에 기반하여 생성될 수 있다. 즉, CPU(120)는 전술된 몬테카를로 시뮬레이션으로부터 산란된 광자에 대한 정보를 획득할 수 있고, 획득된 정보를 바탕으로 감마선 산란 사이노그램을 생성할 수 있다.A gamma ray scattering sinogram can be generated based on the information about the scattered photons generated by the Monte Carlo simulation described above. That is, the CPU 120 may obtain information about scattered photons from the Monte Carlo simulation described above, and generate a gamma ray scattering sinogram based on the obtained information.

단계(230)를 수행함에 있어서 스케일 조정이 요구될 수 있다. 스케일 조정에 대해 도 4를 참조하여 하기에서 상세히 설명된다.Scaling may be required in performing step 230. Scale adjustment is described in detail below with reference to FIG. 4.

단계(240)에서, 예컨대 CPU(120)에 의해, 생성된 감마선 산란 사이노그램에 기반하여 산란이 보정된 재구성된 영상이 생성된다.
In step 240, for example, the CPU 120 generates a reconstructed image with scattering corrected based on the generated gamma ray scattering sinogram.

도 3은 본 발명의 일 실시예에 따른 몬테카를로 시뮬레이선을 나타내는 흐름도이다.3 is a flowchart illustrating a Monte Carlo simulation line according to an embodiment of the present invention.

단계들(310 내지 340)은 전술된 단계(220)에 포함될 수 있다.Steps 310-340 may be included in step 220 described above.

단계(310)에서, 예컨대 CPU(120)에 의해, 재구성된 영상 내에서 광자의 발생 위치가 결정된다.In step 310, for example, by the CPU 120, the generation position of the photons in the reconstructed image is determined.

발생 위치는 복수 개일 수 있다.There may be a plurality of generation positions.

재구성된 영상은 도 2를 참조하여 전술된 산란이 보정되지 않은 재구성 영상일 수 있다.The reconstructed image may be a reconstructed image in which the scattering described above with reference to FIG. 2 is not corrected.

단계(310)는 단계들(312 및 314)를 포함할 수 있다.Step 310 may include steps 312 and 314.

단계(312)에서, 예컨대 CPU(120)에 의해, 재구성된 영상 내에서 값을 갖는 위치들이 광자들의 초기의 발생 위치로서 생성될 수 있다.In step 312, positions with values in the reconstructed image, for example, by the CPU 120, may be generated as the initial occurrence position of the photons.

상기의 발생 위치는 감마선 발생 위치일 수 있다. 또한, 상기의 광자는 감마선 광자일 수 있다.The generation position may be a gamma ray generation position. Also, the photon may be a gamma ray photon.

단계(314)에서, 예컨대 CPU(120)에 의해, 이러한 발생 위치들만을 모음으로써 복수 개의 발생 위치들을 포함하는 테이블이 생성될 수 있다. 테이블은 감마선의 발생 양(즉, 발생 위치들의 개수)을 반영할 수 있다.In step 314, a table including a plurality of occurrence positions may be generated, for example by CPU 120, by collecting only these occurrence positions. The table may reflect the amount of occurrence of gamma rays (ie the number of occurrence positions).

GPU(130)의 복수 개의 코어(140)들 각각은 코어(140)의 번호에 따라 생성된 테이블에서 서로 상이한 위치를 일괄적으로 독출해 올 수 있다. 이는, GPU(130)의 복수 개의 코어(140)들 각각은 테이블 내의 복수 개의 발생 위치들 중 발생 위치를 하나 이상 할당 받음을 의미한다.Each of the plurality of cores 140 of the GPU 130 may read out different positions from each other in a table generated according to the number of the cores 140. This means that each of the plurality of cores 140 of the GPU 130 is assigned one or more occurrence positions among the plurality of occurrence positions in the table.

말하자면, 복수 개의 발생 위치들 각각은 GPU(130)의 복수 개의 코어(140)들 중 하나의 코어(140)에게 할당될 수 있다. 여기서, 코어(140)에게 할당되는 하나 이상의 발생 위치들은 코어(140)의 번호에 기반하여 결정될 수 있다.In other words, each of the plurality of generation positions may be assigned to one core 140 of the plurality of cores 140 of the GPU 130. Here, one or more occurrence locations assigned to the core 140 may be determined based on the number of the core 140.

복수 개의 발생 위치들 각각은 GPU(130)가 포함하는 복수 개의 코어(140)들의 개수에 무관하게, 순차적으로 번갈아 가면서 독출될 수 있다. 예컨대, 발생 위치들이 60 개이고, GPU(130)의 코어(140)들이 30 개인 경우, 코어(140)들 각각은 2 개의 발생 위치들을 할당 받을 수 있다.Each of the plurality of generation positions may be sequentially read out alternately, regardless of the number of cores 140 included in the GPU 130. For example, if there are 60 generation positions and 30 cores 140 of the GPU 130, each of the cores 140 may be assigned two generation positions.

GPU(130)의 복수 개의 코어(140)들은 복수 개의 코어(140)들 각각에게 할당된 하나 이상의 발생 위치들에 대한 연산(예컨대, 단계(320) 및 단계(330))을 병렬로 수행할 수 있다.The plurality of cores 140 of the GPU 130 may perform operations (eg, steps 320 and 330) in parallel on one or more occurrence positions assigned to each of the plurality of cores 140. have.

단계(320)에서, 예컨대 GPU(130)의 코어(140)에 의해, 몬테카를로 시뮬레이션을 사용함으로써 발생 위치에서 발생한 2 개의 광자들의 이동이 계산된다.In step 320, for example, by the core 140 of the GPU 130, the movement of the two photons generated at the location of generation by using Monte Carlo simulation is calculated.

단계(320)에 대해, 도 6을 참조하여 하기에서 상세히 설명된다.For step 320, it is described in detail below with reference to FIG.

단계(330)에서, 예컨대 GPU(130)의 코어(140)에 의해, 2 개의 검출기 위치들 및 이동 중 변화된 값들이 계산된다.In step 330, for example, by the core 140 of the GPU 130, the two detector positions and the values changed during movement are calculated.

2 개의 검출기 위치들은 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이다.The two detector positions are the detector coordinates when each of the two photons reaches the detector.

이동 중 변화된 값들은 2 개의 광자들 각각이 물체를 통과하고 이동한 동안에 변화된 값들이다.The values changed during movement are the values changed while each of the two photons passes through and moves through the object.

양전자 방출 단층 촬영이 사용되는 경우, 감마선이 쌍으로 발생한다. 감마선이 쌍으로 발생함에 따른 2 개의 광자들 각각이 검출기에 도달하였을 때의 검출기 위치 좌표들이 요구된다.When positron emission tomography is used, gamma rays occur in pairs. Detector position coordinates are required when each of the two photons reaches the detector as gamma rays occur in pairs.

검출기 위치 좌표들을 통해 측정선(Line of Response; LoR)을 계산함으로써 사이노그램이 획득될 수 있다.The sinogram can be obtained by calculating the Line of Response (LoR) through the detector position coordinates.

따라서, 한 번의 연산 단위에서, 각각의 코어(140)는 하나의 감마선 발생 위치를 담당하여, 감마선 발생 위치에서 발생한 감마선 광자 쌍에 대한 물리적 연산을 통해 최종적인 두 개의 검출기 위치들을 출력할 수 있다. 이 때, 각각의 코어(140)는 감마선 광자 쌍이 물체(예컨대, 피측정자)를 통과하고 이동한 동안에 변화된 값들을 같이 출력할 수 있다.Therefore, in one operation unit, each core 140 may be responsible for one gamma ray generating position, and output the final two detector positions through physical operation on the gamma ray photon pair generated at the gamma ray generating position. In this case, each core 140 may output values that are changed while the gamma ray photon pair passes and moves through the object (eg, the subject).

단계(340)에서, 예컨대 GPU(130)의 코어(140)에 의해, 2 개의 검출기 위치들 및 이동 중 변화된 값들이 저장된다.In step 340, for example, by the core 140 of the GPU 130, the two detector positions and the values changed during movement are stored.

코어(140)는 2 개의 검출기 위치들 및 이동 중 변화된 값들을 CPU(120)로 송신할 수 있다.
The core 140 may send two detector positions and values changed during movement to the CPU 120.

도 4는 본 발명의 일 실시예에 따른 사이노그램 생성 방법의 흐름도이다.4 is a flowchart of a sinogram generation method according to an embodiment of the present invention.

단계들(410 내지 450)은 전술된 단계(230)에 포함될 수 있다.Steps 410-450 may be included in step 230 described above.

단계(410)에서, 예컨대 CPU(120)에 의해, 2 개의 광자들 각각이 도달한 2 개의 검출기 위치들 및 이동 중 변화된 값들이 수신된다.In step 410, for example, by the CPU 120, two detector positions each of the two photons has reached and values changed during the movement are received.

단계(420)에서, 예컨대 CPU(120)에 의해, 2 개의 검출기 좌표들을 잇는 3차원 측정선(또는, 3차원 측정선의 방정식)이 계산된다.In step 420, for example, by the CPU 120, a three-dimensional measuring line (or equation of three-dimensional measuring line) connecting two detector coordinates is calculated.

단계(430)에서, 예컨대 CPU(120)에 의해, 계산된 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램이 생성된다.In step 430, for example, by the CPU 120, a prompt sinogram and a gamma ray scattering sinogram are generated based on the calculated three-dimensional measurement line.

단계(430)는 하기의 단계들(432, 434, 436, 438 및 440)을 포함할 수 있다.Step 430 may include the following steps 432, 434, 436, 438, and 440.

단계들(432 및 434)에서, 예컨대 CPU(120)에 의해, 생성된 3차원 측정선이 사이노그램 형식으로 변환될 수 있다.In steps 432 and 434, for example, by the CPU 120, the generated three-dimensional measurement line may be converted into sinogram format.

단계(432)에서, 예컨대 CPU(120)에 의해, 생성된 3차원 측정선이 X-Y 방향 및 Z 방향의 벡터로 구분된다.In step 432, for example, by the CPU 120, the generated three-dimensional measurement line is divided into vectors in the X-Y direction and the Z direction.

단계(434)에서, 예컨대 CPU(120)에 의해, 상기의 벡터에 기반하여 3차원 측정선이 사이노그램 형식으로 변환된다.In step 434, for example, by the CPU 120, the three-dimensional measurement line is converted into sinogram form based on the vector.

단계(436)에서, 예컨대 CPU(120)에 의해, 사이노그램 형식으로 변환된 3차원 측정선이 프롬프트 사이노그램에 저장된다. 3차원 측정선은, 3차원 측정선에 대응하는 사이노그램 좌표를 통해 프롬프트 사이노그램 내에 저장될 수 있다.In step 436, for example, by the CPU 120, the three-dimensional measurement line converted into the sinogram format is stored in the prompt sinogram. The three-dimensional measurement line may be stored in the prompt sinogram through the sinogram coordinates corresponding to the three-dimensional measurement line.

프롬프트 사이노그램은 산란을 포함한 모든 측정선을 포함한다. 따라서, 프롬프트 사이노그램은 기계(즉, 양전자 방출 단층 촬영기)에 의해 실제 측정된 사이노그램과 동일한 형식의 데이터인 것으로 볼 수 있다. 이러한 특성에 의해, 몬테카를로 시뮬레이션에 의해 획득된 프롬프트 사이노그램 및 기계에 의해 실제 측정된 사이노그램을 비교함으로써 스케일 조정 상수가 계산될 수 있다. 스케일 조성 상수를 계산하는 구체적인 방법이 도 5를 참조하여 하기에서 상세히 설명된다.Prompt sinograms include all measurement lines, including scattering. Thus, the prompt sinogram may be considered to be data in the same format as the sinogram actually measured by the machine (ie, positron emission tomography). With this property, the scale adjustment constant can be calculated by comparing the prompt sinogram obtained by Monte Carlo simulation and the sinogram actually measured by the machine. A specific method of calculating the scale composition constant is described in detail below with reference to FIG. 5.

단계(438)에서, 예컨대 CPU(120)에 의해, 2 개의 광자들이 이동하면서 산란이 발생하였는지 여부가 확인된다.In step 438, for example, by the CPU 120, it is checked whether scattering has occurred while the two photons are moving.

2 개의 광자들 각각은 상태 값을 갖는다. 광자의 상태 값은 광자가 산란이 되었는지 또는 산란이 되지 않았는지에 대한 정보를 포함한다. 따라서, CPU(120)는 광자의 상태 값을 통해 산란의 발생 유무를 확인할 수 있다.Each of the two photons has a state value. The photon's state value includes information about whether or not the photon is scattered. Therefore, the CPU 120 may check whether scattering has occurred through the state value of the photons.

산란이 발생한 경우, 단계(440)에서, 예컨대 CPU(120)에 의해, 사이노그램 형식으로 변환된 3차원 측정선이 감마선 산란 사이노그램에 저장된다.If scattering has occurred, in step 440, for example, by the CPU 120, the three-dimensional measurement line converted into the sinogram format is stored in the gamma ray scattering sinogram.

감마선 산란을 추정하여 보정하기 위해서는, 감마선 산란 사이노그램이 요구된다. 따라서, 본 실시예에서는 산란 사이노그램이 별개로 저장된다.In order to estimate and correct gamma ray scattering, a gamma ray scattering sinogram is required. Therefore, scattering sinograms are stored separately in this embodiment.

단계(450)에서, 예컨대 CPU(120)에 의해, 감마선 산란 사이노그램의 스케일이 조정된다.In step 450, for example, by the CPU 120, the scale of the gamma ray scattering sinogram is adjusted.

단계(450)에 대해, 도 5를 참조하여 하기에서 상세히 설명된다.
For step 450, it is described in detail below with reference to FIG.

도 5는 본 발명의 일 예에 따른 감마선 산란 사이노그램의 스케일 조정 방법의 흐름도이다.5 is a flowchart illustrating a method of adjusting a scale of a gamma ray scattering sinogram according to an embodiment of the present invention.

실제의 양전자 방출 단층을 촬영하는 동안, 기계(즉, 양전자 방출 단층 촬영기)에서 몇 억 개의 광자가 발생하였는지는 정확하게 가늠될 수 없다. 따라서, 우선 충분한 양의 광자들을 사용하여 시뮬레이션을 연산하고, 시뮬레이션의 결과를 실제 측정 값과 비교함으로써 감마선 산란 사이노그램의 스케일이 조정될 수 있다.While photographing the actual positron emission tomography, hundreds of millions of photons generated by the machine (ie, positron emission tomography) cannot be accurately estimated. Thus, the scale of the gamma ray scattering sinogram can be adjusted by first calculating the simulation using a sufficient amount of photons and comparing the results of the simulation with the actual measured values.

단계(510)에서, 예컨대 CPU(110)에 의해, 기계(즉, 양전자 방출 단층 촬영기)에서 실제 측정된 사이노그램이 수신된다.In step 510, for example, by the CPU 110, the sinogram actually measured at the machine (ie, positron emission tomography) is received.

단계(520)에서, 예컨대 CPU(110)에 의해, 몬테카를로 시뮬레이션을 통해 획득된 프롬프트 사이노그램이 수신된다.In step 520, for example, by the CPU 110, a prompt sinogram obtained through Monte Carlo simulation is received.

단계(530)에서, 예컨대 CPU(110)에 의해, 실제 측정된 사이노그램 및 프롬프트 사이노그램을 비교함으로써 양자 간의 오차를 최소화하는 스케일 상수가 계산된다.In step 530, for example, by the CPU 110, a scale constant is calculated that minimizes the error between both by comparing the measured sinogram and the prompt sinogram.

프롬프트 사이노그램의 분포는 실제 측정된 사이노그램의 분포와 거의 일치하기 때문에, 상수가 계산된다.Since the distribution of the prompt sinogram closely matches the distribution of the actually measured sinogram, a constant is calculated.

실제 측정된 사이노그램은 기계에 의해 획득된 실제 데이터이므로, 산란을 모두 포함한다. 따라서, 실제 측정된 사이노그램은 프롬프트 사이노그램과 비교될 수 있다.Since the actual measured sinogram is the actual data obtained by the machine, it includes all the scattering. Thus, the actual measured sinogram can be compared with the prompt sinogram.

단계(540)에서, 예컨대 CPU(110)에 의해, 스케일 상수를 감마선 산란 사이노그램에 곱함으로써 감마선 산란 사이노그램의 스케일이 조정된다.In step 540, for example, by the CPU 110, the scale of the gamma ray scattering sinogram is adjusted by multiplying the scale constant by the gamma ray scattering sinogram.

전술된 단계들(510 내지 540)을 통해 감마선 산란 사이노그램은 실제 측정된 사이노그램과 동일한 스케일을 가질 수 있다.Through the steps 510 to 540 described above, the gamma ray scattering sinogram may have the same scale as the actually measured sinogram.

도 6은 본 발명의 일 예에 따른 검출기에 도달하기까지 광자의 이동에 따른 연산을 수행하는 방법을 나타내는 흐름도이다.6 is a flowchart illustrating a method of performing an operation according to movement of photons until reaching a detector according to an example of the present invention.

광자의 이동에 따른 연산은 GPU(130)에서 수행될 수 있다. GPU(130)의 코어(140)는 하나의 발생 위치에서 발생한 2 개의 광자들(즉, 광자 쌍)의 경로를 연산할 수 있다.Operation based on the movement of photons may be performed in the GPU 130. The core 140 of the GPU 130 may calculate a path of two photons (ie, photon pairs) generated at one generation position.

단계(610)에서, 각각의 코어(140)는 광자의 초기 발생 위치를 할당 받는다.In step 610, each core 140 is assigned an initial generation location of photons.

단계들(620 내지 690)에서, 각각의 코어(140)는 광자의 초기 경로를 생성한다. 초기 경로는 초기 발생 위치에서부터 임의의 방향으로의 경로를 의미한다. 또한, 각각의 코어(140)는 임의의 거리 및 산란 각도를 포함하는 경로를 생성하여, 생성된 경로에 따라 광자를 이동시키면서 연산할 수 있다.In steps 620-690, each core 140 creates an initial path of photons. The initial path means a path from the initial occurrence position in any direction. In addition, each core 140 may generate a path including an arbitrary distance and scattering angle, and compute the moving photons according to the generated path.

임의의 방향으로의 경로, 임의의 거리 및 산란 각도와 같은, 랜덤 값들은 랜덤 넘버(random number) 발생기에 의해 생성될 수 있다. GPU(130)가 제공하는 랜덤 발생 함수를 사용함으로써 랜덤 값들이 생성될 수 있다.Random values, such as a path in any direction, any distance and scattering angle, can be generated by a random number generator. Random values may be generated by using a random generation function provided by the GPU 130.

단계(620)에서, 각각의 코어(140)는 광자의 할당 받은 발생 위치에서의 초기 이동 방향을 랜덤으로 생성한다.In step 620, each core 140 randomly generates an initial direction of movement at the assigned generation location of photons.

단계(630)에서, 각각의 코어(140)는 광자의 이동 거리를 랜덤으로 생성한다. 즉, 각각의 코어(140)는 랜덤으로 결정된 이동 방향으로 얼마만큼 이동을 할 것인지를 랜덤으로 결정한다.In step 630, each core 140 randomly generates a moving distance of the photons. That is, each core 140 randomly determines how much to move in a randomly determined movement direction.

단계(635)에서, 각각의 코어(140)는 광자가 초기 이동 방향으로 이동 거리만큼 이동한 위치를 계산한다.In step 635, each core 140 calculates the position at which the photons moved by the moving distance in the initial moving direction.

단계(640)에서, 각각의 코어(140)는 광자가 이동한 위치에서, 광자의 산란의 발생 여부를 결정한다.In step 640, each core 140 determines whether scattering of photons occurs at the location where the photons have moved.

코어(140)는 광자가 이동한 위치의 감쇄 계수가 경계 값 이하이면 산란이 발생하지 않은 것으로 결정할 수 있고, 이동한 위치의 감쇄 계수가 경계 값보다 더 크면 산란이 발생한 것으로 결정할 수 있다.The core 140 may determine that scattering does not occur when the attenuation coefficient of the position where the photon is moved is less than or equal to the boundary value, and determine that scattering occurs when the attenuation coefficient of the moved position is larger than the boundary value.

감쇄 계수는, 단층 촬영기에 의해 촬영된, 감쇄 계수의 3차원 영상을 통해 획득될 수 있다.The attenuation coefficient may be obtained through a three-dimensional image of the attenuation coefficient photographed by a tomography camera.

산란이 발생한 경우, 단계들(650 내지 660)이 실행된다. 산란이 발생하지 않은 경우 단계(570)이 실행된다.If scattering has occurred, steps 650 through 660 are executed. If scattering has not occurred, step 570 is executed.

단계(650)에서, 각각의 코어(140)는 산란의 각도를 랜덤으로 생성한다.In step 650, each core 140 randomly generates scattering angles.

산란의 각도는 다음 단계에서의 광자의 이동 방향에 영향을 줄 수 있다.The angle of scattering can affect the direction of movement of the photons in the next step.

단계(660)에서, 각각의 코어(140)는 산란의 콤프턴 산란(Compton Scattering) 값을 계산한다. 즉, 각각의 코어(140)는 산란의 콤프턴 산란에 따른 효과를 연산한다.In step 660, each core 140 calculates a Compton Scattering value of scattering. That is, each core 140 calculates the effect of Compton scattering of scattering.

각각의 코어(140)는 클라인-니시나(Klein-Nishina) 공식을 사용함으로써 콤프턴 산란 값을 계산할 수 있다.Each core 140 can calculate Compton scattering values by using the Klein-Nishina formula.

콤프턴 산란 값을 계산하기 위해 사용되는 수식은, 산란 각도에 의한 에너지 감소를 반영한다.The equation used to calculate the Compton scattering value reflects the energy reduction due to the scattering angle.

단계(670)에서, 각각의 코어(140)는 광자가 이동한 위치로 이동함에 따른 광자의 감쇄를 연산한다. 즉, 각각의 코어(140)는 광자가 지나는 경로에 해당하는 물체의 감쇄 계수(attenuation coefficient)들을 합할 수 있다.In step 670, each core 140 calculates the attenuation of the photons as they move to the location where the photons have moved. That is, each core 140 may sum the attenuation coefficients of the object corresponding to the path of the photons.

광자의 감쇄는, 전술된 단층 촬영기에 의해 촬영된 감쇄 계수의 3차원 영상을 통해 계산될 수 있다. 즉, 광자의 감쇄는 코어(140)가 감쇄 계수의 3차원 영상에서 광자가 이동한 위치의 3차원 좌표에 해당하는 값을 획득함으로써 연산될 수 있다.The attenuation of the photons can be calculated through a three-dimensional image of the attenuation coefficient photographed by the tomography camera described above. That is, the attenuation of the photons may be calculated by the core 140 acquiring a value corresponding to the three-dimensional coordinates of the position where the photons are moved in the three-dimensional image of the attenuation coefficient.

이 때, 코어(140)는 GPU(130)가 제공하는 3차원 선형 보간법을 사용함으로써 3차원 물체로부터 3차원 좌표에 해당하는 값을 독출하여 획득할 수 있다.In this case, the core 140 may obtain a value corresponding to three-dimensional coordinates from the three-dimensional object by using the three-dimensional linear interpolation provided by the GPU 130.

3차원 선형 보간법을 사용하기 위해, CPU(120)는 감마선 방출 재구성 영상 및 감쇠 재구성 영상을 GPU(130)의 3차원 텍스처 메모리를 연결할 수 있다. GPU(130)는 3차원 텍스처 메모리 연결을 사용하여 몬테카를로 시뮬레이션 시 3차원 선형 보간법을 제공할 수 있다. 따라서, 감쇄 연산의 속도가 현격히 증가될 수 있다.In order to use the 3D linear interpolation method, the CPU 120 may connect the gamma ray emission reconstruction image and the attenuation reconstruction image to the 3D texture memory of the GPU 130. The GPU 130 may provide a 3D linear interpolation method in Monte Carlo simulation using 3D texture memory connection. Thus, the speed of the attenuation operation can be significantly increased.

단계(680)에서, 각각의 코어(140)는 광자가 검출기에 도달하였는지 확인한다.In step 680, each core 140 checks whether photons have reached the detector.

단계(680)는, 각각의 코어(140)는 실제로 모델링한 기계의 사양에서 제공하는 지름 및 검출기 블록의 개수를 고려함으로써 검출기에 광자가 도달하였을 때의 광자의 위치를 계산할 수 있다.In step 680, each core 140 may calculate the photon location when the photon arrives at the detector by considering the number of detector blocks and the diameter provided by the specifications of the modeled machine.

광자가 검출기에 도달하지 않은 경우, 단계(620) 및 이후의 단계들(630 내지 680)이 다시 수행될 수 있다.If the photon has not reached the detector, step 620 and subsequent steps 630-680 can be performed again.

광자가 검출기에 도달한 경우, 단계(690)이 수행된다.If the photons have reached the detector, step 690 is performed.

단계(690)에서, 각각의 코어(140)는 검출기에 광자가 도달하였을 때의 검출기의 위치를 CPU(120)로 송신한다. 또는, 각각의 코어(140)는 검출기에 광자가 도달하였을 때의 광자의 위치를 저장할 수 있다.
In step 690, each core 140 transmits the position of the detector to CPU 120 when the photons arrive at the detector. Alternatively, each core 140 may store the location of the photons when they arrive at the detector.

도 7은 본 발명의 일 실시예에 따른 하이브리드 CPU-GPU 구현을 사용하는 영상 재구성 방법을 나타내는 흐름도이다.7 is a flowchart illustrating an image reconstruction method using a hybrid CPU-GPU implementation according to an embodiment of the present invention.

단계들(710, 720, 730 및 740)는 각각 도 2를 참조하여 전술된 단계(210, 220, 230 및 240)에 대응할 수 있다.Steps 710, 720, 730, and 740 may correspond to steps 210, 220, 230, and 240 described above with reference to FIG. 2, respectively.

단계(720)는 CPU(120) 및 GPU(130)에 의해 수행될 수 있다. 예컨대 단계(720)에서, CPU(120)는 재구성된 영상 내에서 광자의 발생 위치를 결정할 수 있다. GPU(130)는 광자의 이동을 실행하기 위해 사용될 수 있다. GPU(130)는 몬테카를로 시뮬레이션을 사용함으로써 발생 위치에서 발생한 광자 쌍에 대한 2 개의 검출기 위치들을 잇는 3차원 측정선의 정보를 생성할 수 있다. 3차원 측정선의 정보는, 1) 3차원 측정선에 관련된 정보 또는 2) 3차원 측정선의 정보 및 기타 발생 위치에서 바생한 광자 쌍에 관련하여 사이노그램 리비닝을 위해 사용되는 정보를 포괄적으로 의미할 수 있다.Step 720 may be performed by the CPU 120 and the GPU 130. For example, at step 720, the CPU 120 may determine the location of the photon generation within the reconstructed image. GPU 130 may be used to perform photon movement. The GPU 130 may generate information of a three-dimensional measurement line connecting two detector positions for photon pairs generated at a generation position by using Monte Carlo simulation. The information on the three-dimensional measurement line is used to mean 1) information related to the three-dimensional measurement line or 2) information used for sinogram reconstruction with respect to the information on the three-dimensional measurement line and other photon pairs generated at the location of occurrence. can do.

검출기 위치들은 광자 쌍의 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표일 수 있다. 여기서, 3차원 측정선의 정보는 상기의 3차원 측정선의 좌표를 의미할 수 있다.Detector positions may be detector coordinates when each of the two photons of the photon pair reaches the detector. Here, the information of the 3D measurement line may mean the coordinates of the 3D measurement line.

단계(730)에서, CPU(120)는 3차원 측정선의 정보에 기반하여 사이노그램 리비닝(rebinning)을 수행할 수 있다. 여기서, 사이노그램 리비닝은 단계(720)에서 획득된 3차원 측정선의 정보를 사용함으로써 프롬프트 사이노그램 및 감마선 산란 사이노그램 중 하나 이상의 사이노그램을 생성하는 것을 의미할 수 있으며, 상기의 생성 중 일부의 과정을 의미할 수 있다In operation 730, the CPU 120 may perform sinogram rebinding based on the information of the 3D measurement line. Here, the sinogram rebinding may mean generating one or more sinograms of the prompt sinogram and the gamma ray scattering sinogram by using the information of the 3D measurement line obtained in operation 720. It can mean part of the process of generation

3차원 측정선의 정보를 생성하는 단계(720) 및 사이노그램 리비닝을 수행하는 단계(730)는 각각 CPU(120) 및 GPU(130)에 의해 병렬로 실행될 수 있다. 단계(720) 및 단계(730)은 CPU(120) 및 GPU(130)에 각각 별개로 할당될 수 있다. 단계(720) 및 단계(730)는 각각 특정한 계산을 되풀이하여(iteratively) 수행할 수 있다. 이전의 되풀이(iteration)에서의 계산 결과는 다음의 되풀이에서의 계산에 영향을 미치지 않을 수 있다.Generating the information of the three-dimensional measurement line 720 and performing the sinogram reconstruction 730 may be executed in parallel by the CPU 120 and the GPU 130, respectively. Steps 720 and 730 may be separately assigned to the CPU 120 and the GPU 130, respectively. Steps 720 and 730 may each be performed repeatedly for a particular calculation. The result of the calculation in the previous iteration may not affect the calculation in the next iteration.

단계(720)에서, 발생 위치는 복수 개일 수 있다. 즉, 서로 상이한 발생 위치를 갖는 복수 개의 광자 쌍들에 대해, 단계(720) 및 단계(730)가 수행될 수 있다. 단계(720)에서, GPU(130)는 복수 개의 발생 위치들 각각을 GPU(130)의 복수 개의 쓰레드들 각각에게 할당할 수 있다. 복수 개의 쓰레드들은 하나 이상의 코어(140)들에 의해 처리될 수 있다. 하나의 코어는 하나의 쓰레드를 처리할 수 있으며, 하나 이상의 코어(140)들에 의해 복수 개의 쓰레드들이 동시에 처리될 수 있다.In operation 720, there may be a plurality of generation positions. That is, step 720 and step 730 may be performed on a plurality of photon pairs having different generation positions. In operation 720, the GPU 130 may allocate each of the plurality of generation positions to each of the plurality of threads of the GPU 130. The plurality of threads may be processed by one or more cores 140. One core may process one thread, and a plurality of threads may be simultaneously processed by one or more cores 140.

상술된 것과 같은 병렬 수행에 의해, CPU(120) 및 GPU(130)의 전체 자원이 효율적으로 사용될 수 있으며, CPU(120) 및 GPU(130) 간의 메모리 전송의 병목(bottleneck)이 회피(avoid)될 수 있다. 병렬 수행을 위해, CPU(120)에 대해 오픈 멀티-프로세싱(Open Multi-Processing; OpenMP)이 사용될 수 있고, GPU(120)에 대해 컴퓨트 유니파이드 디바이스 아키텍처(Compute Unified Device Architecthre; CUDA)가 사용될 수 있다.
By parallel execution as described above, the entire resources of the CPU 120 and the GPU 130 can be used efficiently, and the bottleneck of memory transfer between the CPU 120 and the GPU 130 is avoided. Can be. For parallel execution, Open Multi-Processing (OpenMP) may be used for the CPU 120 and Compute Unified Device Architecth (CUDA) may be used for the GPU 120. Can be.

도 8은 본 발명의 일 실시예에 따른 3D PET에서의 하이브리드 CPU-GPU 다중 산란 시뮬레이션의 동작 흐름도이다.8 is an operation flowchart of a hybrid CPU-GPU multi scattering simulation in 3D PET according to an embodiment of the present invention.

CPU(120)는 단계들(870 및 875)를 수행할 수 있다. 또한, CPU(120)는 단계들(810 및 880)을 수행할 수 있다. GPU(130)는 단계들(820, 830, 835, 840, 845, 850 및 860)을 수행할 수 있다. 단계들(870, 875 및 880)은 전술된 단계(730)에 대응할 수 있다. 단계들(810, 820, 830, 835, 840, 845, 850 및 860)은 전술된 단계(720)에 대응할 수 있다. 한편, 단계(810)은 단계(710)에 대응할 수 있다.CPU 120 may perform steps 870 and 875. In addition, the CPU 120 may perform steps 810 and 880. GPU 130 may perform steps 820, 830, 835, 840, 845, 850 and 860. Steps 870, 875, and 880 may correspond to step 730 described above. Steps 810, 820, 830, 835, 840, 845, 850, and 860 may correspond to step 720 described above. Meanwhile, step 810 may correspond to step 710.

커널은 상수 메모리를 신속하게 접근할 수 있다. 따라서, 기하 파라미터는 상수 메모리 내에 저장될 수 있다. 여기서, 기하 파라미터는 지름(radius), 복셀(voxel) 및 검출기 크기를 포함할 수 있다.The kernel can quickly access constant memory. Thus, geometric parameters can be stored in constant memory. Here, the geometric parameters may include a diameter, a voxel and a detector size.

단계(810)에서, CPU(120)는 테이블을 생성할 수 있다. 테이블은 방출 좌표(coordinate) 테이블일 수 있다. 방출 좌표 테이블은 방출 위치(position) 및 방사성트레이셔(radiotracer) 영상으로부터의 상기의 방출 위치의 세기(intensity)를 포함할 수 있다.In step 810, the CPU 120 may generate a table. The table may be an emission coordinate table. The emission coordinate table may include the intensity of the emission position from the emission position and the radiotracer image.

테이블을 생성하면, CPU(120)는 광자의 초기의 발생 위치를 생성할 수 있다.Upon generating the table, the CPU 120 may generate an initial generation position of the photons.

단계(820)에서, GPU(130)는 광자 쌍을 런치(launch)할 수 있다. 여기서, 광자 쌍은 각각 방향의 단위 벡터가 나타내는 방향을 향해 런치될 수 있다. 단계(820)는 GPU(130)에서 수행되는 초기화를 나타낼 수 있다.At step 820, GPU 130 may launch a photon pair. Here, the photon pairs may be launched toward the directions indicated by the unit vectors in the directions. Step 820 may indicate initialization performed in the GPU 130.

GPU(130)는 GPU(130)의 쓰레드(thread) i를 각 발생 위치 qi에 할당할 수 있다. 여기서, i는 1 이상 n 이하의 정수일 수 있다. n은 GPU(130)가 처리할 수 있는 쓰레드들의 최대 개수일 수 있다. 즉, GPU(130)는 각각 발생 위치를 할당받은 하나 이상의 쓰레드들을 동작시킬 수 있다.The GPU 130 may allocate a thread i of the GPU 130 to each occurrence position q i . Here, i may be an integer of 1 or more and n or less. n may be the maximum number of threads that the GPU 130 can process. That is, the GPU 130 may operate one or more threads, each of which is assigned a generation location.

상술된 쓰레드의 발생 위치로의 할당은 도 6을 참조하여 전술된 단계(610)에 대응할 수 있다.The allocation of the above-mentioned thread to the origination location may correspond to step 610 described above with reference to FIG. 6.

GPU(130)는 각 쓰레드마다 상이한 시드(seed)를 사용하는, CUDA에 의해 지원되는 균일(uniform) 난수 생성기(random number generator; RNG)를 사용함으로써 초기의 방향의 단위 벡터(unit vector) u0을 정의할 수 있다. 여기서, RNG는 2190보다 큰 주기(period)를 갖는 배타적논리합쉬프트(xorshift) RNG일 수 있다.GPU 130 uses a uniform random number generator (RNG) supported by CUDA, which uses a different seed for each thread, so that the unit vector in the initial direction u 0 Can be defined. Here, the RNG may be an xorshift RNG having a period greater than 2 190 .

광자 전파(propagation)의 맞은편의(opposite) 2 개의 단위 벡터들은 u로서 계산될 수 있다. 여기서, u = k-u0이고, k = -1, 1일 수 있다.Two unit vectors opposite the photon propagation can be calculated as u. Here, u = ku 0 and k = -1, 1 may be.

여기서, 방출 위치 p는 하기의 수학식 1과 같이 정의될 수 있다.Here, the emission position p may be defined as in Equation 1 below.

Figure 112012031292262-pat00001
Figure 112012031292262-pat00001

상술된 2 개의 단위 벡터들 각각의 계산은 도 6을 참조하여 전술된 단계(620)에 대응할 수 있다.The calculation of each of the two unit vectors described above may correspond to step 620 described above with reference to FIG. 6.

단계(830)에서, GPU(130)는 광자 쌍들 각각의 산란 길이를 계산할 수 있다. 단계(830)는 도 6을 참조하여 전술된 단계(630)에 대응할 수 있다.In step 830, GPU 130 may calculate the scattering length of each of the photon pairs. Step 830 may correspond to step 630 described above with reference to FIG. 6.

여기서, 산란 길이는 방향 경로의 길이(direction path length) l를 의미할 수 있다. 방향 경로의 길이 l은 하기의 수학식 2에 기반하여 계산될 수 있다.Here, the scattering length may mean a length l of a direction path. The length l of the directional path may be calculated based on Equation 2 below.

Figure 112012031292262-pat00002
Figure 112012031292262-pat00002

여기서,

Figure 112012031292262-pat00003
는 객체의 재료(material)의 감쇄 계수일 수 있다.
Figure 112012031292262-pat00004
는 범위 [0, 1] 내의 균등분포(uniform distribution)일 수 있다. IA가 텍스처 메모리를 나타낼 때, 수학식 2의
Figure 112012031292262-pat00005
는 IA(p)로 대체될 수 있다.here,
Figure 112012031292262-pat00003
May be attenuation coefficient of the material of the object.
Figure 112012031292262-pat00004
Can be a uniform distribution within the range [0, 1]. When I A represents texture memory,
Figure 112012031292262-pat00005
May be replaced by I A (p).

단계(835)에서, GPU(130)는 광자 쌍의 2 개의 광자들 각각의 이동 및 흡수를 계산할 수 있다. 여기서, 흡수는 레이를 따르는(along) 광전의(photoelectric) 흡수일 수 있다.In step 835, GPU 130 may calculate the movement and absorption of each of the two photons of the photon pair. Here, the absorption may be photoelectric absorption along the ray.

고속 삼선형 보간(fast trilinear interpolation)을 제공하는 GPU(130)의 텍스처(texture) 메모리를 이용함으로써 감쇄(attenuation) 영상 내의 정의된 레이(ray)를 따르는(along) 선적분(line integral)이 계산될 수 있다. GPU(130)는 상기의 선적분을 계산함으로써 광자 쌍들 각각의 위치를 갱신할 수 있다. 여기서, 텍스처 메모리 내의 감쇄 맵은 감쇄 영상을 나타낼 수 있다.By utilizing the texture memory of the GPU 130 to provide fast trilinear interpolation, line integrals that define a defined ray in the attenuation image can be calculated. Can be. The GPU 130 may update the position of each of the photon pairs by calculating the shipment. Here, the decay map in the texture memory may represent a decay image.

광자가 뷰의 필드(Field of View; FoV)의 외부에 위치하게 될 때, GPU(130)는 상기의 적분을 중단할 수 있다.When the photons are located outside of the Field of View (FoV), the GPU 130 may stop the integration.

단계(840)에서, GPU(130)는 광자 쌍의 2 개의 광자들 각각에 대한 콤프턴 산란을 계산할 수 있다. 단계(840)는 도 6을 참조하여 전숭된 단계들(640, 650, 660 및 670) 에 대응할 수 있다.At step 840, GPU 130 may calculate Compton scattering for each of the two photons of the photon pair. Step 840 may correspond to steps 640, 650, 660, and 670 that are specialized with reference to FIG. 6.

광자가 여전히 객체 내에 있을 경우, GPU(130)는 클라인-니시나 공식에 기반하여 콤프턴 산란을 계산할 수 있다. 여기서, GPU(130)는 균일 난수 [0, 1]을 사용하여 산란의 각도

Figure 112012031292262-pat00006
를 정의할 수 있다.If the photons are still within the object, the GPU 130 may calculate Compton scattering based on the Klein-Nissin formula. Here, the GPU 130 uses the uniform random number [0, 1] to scatter angle
Figure 112012031292262-pat00006
Can be defined.

또한, GPU(130)는 콤프턴 산란 후의 광자의 에너지를 검사할 수 있다. 만약, 광자 쌍의 2 개의 광자들의 에너지가 저 레벨 판별자(Low Level Discriminator; LLD)보다 더 낮다면, GPU(130는 광자 쌍을 거절(reject)할 수 있다. 광자 쌍의 거절은, 광자 쌍에 대한 연산을 중단(break)하고, 상기의 광자 쌍을 사이노그램 리비닝을 위해 사용하지 않는 것을 의미할 수 있다.In addition, the GPU 130 may inspect the energy of photons after Compton scattering. If the energy of the two photons of the photon pair is lower than the Low Level Discriminator (LLD), the GPU 130 may reject the photon pair. It can mean to break the operation on, and not use the photon pair for sinogram rebinding.

광자 쌍의 2 개의 광자들의 에너지가 LLD 이상이면, GPU(130)는 2 개의 광자들 각각의 전파 경로를 따름으로써 전술된 단계들(830, 835, 840, 845 및 850)을 계속할 수 있다.If the energy of the two photons of the photon pair is greater than or equal to the LLD, the GPU 130 may continue with the steps 830, 835, 840, 845 and 850 described above by following the propagation path of each of the two photons.

단계(680)에서, GPU(130)는 광자 쌍이 검출기에 도달하였는지 여부를 검사할 수 있다. 단계(680)는 도 6을 참조하여 전술된 단계(680)에 대응할 수 있다.At step 680, GPU 130 may check whether the photon pair has reached the detector. Step 680 may correspond to step 680 described above with reference to FIG. 6.

여기서, 광자 쌍이 검출기에 도달하였다는 것은 광자 쌍의 2 개의 광자들이 FoV의 외부에 위치한다는 것을 의미할 수 있다. 또한, 광자 쌍이 검출기에 도달하였을 때, 검출기에 도달한 2 개의 광자들의 에너지는 LDD 이상일 수 있다.Here, that the photon pair has reached the detector may mean that two photons of the photon pair are located outside of the FoV. In addition, when the photon pair reaches the detector, the energy of the two photons that reach the detector may be greater than or equal to the LDD.

광자 쌍이 검출기에 도달하지 않은 경우, 단계(850)에서 GPU(130)는 산란 벡터를 계산할 수 있다.If the photon pair has not reached the detector, the GPU 130 may calculate a scatter vector at step 850.

여기서, 산란 벡터의 계산은 산란 플래그(flag) 및 단위 벡터 u의 방향을 갱신하는 것을 의미할 수 있다. 산란 플래그를 사용함으로써 콤프턴 산란의 이벤트(scattering event)가 기록될 수 있다.Here, the calculation of the scattering vector may mean updating the direction of the scattering flag and the unit vector u. By using the scattering flag, the scattering event of the Compton scattering can be recorded.

단계(850)가 수행된 후, 단계(830)가 반복될 수 있다.After step 850 is performed, step 830 may be repeated.

광자 쌍이 검출기에 도달한 경우, 단계(860)가 수행될 수 있다.If the photon pair has reached the detector, step 860 may be performed.

단계(860)에서, 광자 쌍이 검출기에 도달한 후, GPU(130)는 2 개의 검출기 위치들을 LoR로 변환할 수 있다. GPU(130)는 2 개의 검출기 위치들을 계산할 수 있으며, 검출기 크로스-섹션(cross-section)들을 계산할 수 있다. 2 개의 검출기 위치들을 LoR로 변환함으로써 LoR이 계산될 수 있다.In step 860, after the photon pair reaches the detector, GPU 130 may convert the two detector positions into LoR. GPU 130 may calculate two detector locations and may calculate detector cross-sections. LoR can be calculated by converting two detector positions to LoR.

전술된 3차원 측정선의 정보는, LoR, 2 개의 검출기 위치들 및 검출기 크로스-섹션들을 포함할 수 있다.The information of the three-dimensional measurement line described above may include LoR, two detector positions and detector cross-sections.

단계(870)에서, CPU(120)는 다운샘플된 사이노그램으로의 변환을 수행할 수 있다.. 여기서, 다운샘플된 사이노그램으로의 변환은, 양자의 이동에 대응하는 사이노그램 리비닝을 의미할 수 있다. 상기의 사이노그램 리비닝을 위해 CPU(120)는 단계(860)에서 계산된 정보를 사용할 수 있다.In step 870, the CPU 120 may perform the conversion to the downsampled sinogram. Here, the conversion to the downsampled sinogram may include a sinogram liby corresponding to the movement of both. Can mean Ning. The CPU 120 may use the information calculated in step 860 for the sinogram revival.

단계(875)에서, CPU(120)는 종료 여부를 검사할 수 있다. 계산된 광자 쌍이 남은 경우, 단계(820)가 재수행될 수 있다. 모든 광자 쌍의 이동이 계산된 경우, 단계(880)가 수행될 수 있다.In step 875, the CPU 120 may check whether it is finished. If the calculated photon pairs remain, step 820 may be performed again. If the movement of all photon pairs has been calculated, step 880 may be performed.

단계(880)에서, CPU(120)는 산란 사이노그램을 업샘플할 수 있다.In step 880, the CPU 120 may upsample the scattering sinogram.

CPU(120)는 산란 사이노그램을 업샘플하기 위한 스케일링 팩터를 계산할 수 있고, 산란 사이노드램을 획득할 수 있다.The CPU 120 may calculate a scaling factor for upsampling the scattering sinogram and obtain the scattering sinogram.

GPU(130)에 의해 계산된 양자 이동 및 CPU(120)에 의한 사이노그램 리비닝 후, CPU(120)는 원래의 사이노그램 크기로 사이노그램을 업샘플링할 수 있다. After quantum shift computed by GPU 130 and sinogram rebinding by CPU 120, CPU 120 may upsample the sinogram to the original sinogram size.

상기의 업샘플링을 위해 GPU(130)가 사용될 수 있다. 예컨대, 빠른 업스케일링을 위해, GPU(130)에 의해 지원되는 텍스처 메모리를 사용하는 고속 선형 보간이 사용될 수 있다. 텍스터 메모리를 사용하는 공간적인 평탄화(spatial smoothing)는 대규모의 가상 검출기 배열 덕분에 계산적으로 효율적일 수 있다.GPU 130 may be used for the upsampling. For example, for fast upscaling, fast linear interpolation using texture memory supported by GPU 130 may be used. Spatial smoothing using text memory can be computationally efficient thanks to large virtual detector arrays.

최종적으로, CPU(120)는 MSS로부터의 시뮬레이트된(simulated) 프롬프트(prompt)를 사용함으로써 최소 오차 제곱법(least square fitting)을 계산할 수 있고, 스케일링 팩터(scaling factor)를 계산하기 위한 측정된 사이노그램을 계산할 수 있다. 또한, 측정의 산란 부분(scatter portion)보다 프롬프트 사이노그램이 직접적으로 비교될 수 있다.
Finally, the CPU 120 can calculate the minimum square fitting by using a simulated prompt from the MSS, and measure the calculated factor to calculate the scaling factor. The nogram can be calculated. In addition, prompt sinograms can be directly compared to the scatter portion of the measurement.

하기의 코드 1은 전술된 하이브리드 CPU-GPU 다중 산란 시뮬레이션을 위한 CPU(120)에서 실행되는 슈도(pseudo) 코드를 나타낸다.Code 1 below represents a pseudo code executed in CPU 120 for the hybrid CPU-GPU multiscattering simulation described above.

[코드 1][Code 1]

Figure 112012031292262-pat00007
Figure 112012031292262-pat00007

하기의 코드 2는 전술된 하이브리드 CPU-GPU 다중 산란 시뮬레이션을 위한 GPU(130)에서 실행되는 슈도(pseudo) 코드를 나타낸다.Code 2 below represents pseudo code executed on GPU 130 for the hybrid CPU-GPU multiscattering simulation described above.

[코드 2][Code 2]

Figure 112012031292262-pat00008

Figure 112012031292262-pat00008

도 9는 본 발명의 일 예에 따른 다중 테스크들의 연속적인 수행을 설명한다.9 illustrates the sequential performance of multiple tasks in accordance with an example of the present invention.

GPU(130) 내의 쓰레드들의 총 개수는 제한된다. 따라서, 모든 테스크들이 단일한 실행(single execution)에 할당되지 못할 수 있다.The total number of threads in GPU 130 is limited. Thus, all tasks may not be assigned to a single execution.

다중 산란 시뮬레이션을 위한 테스크들은 하나 이상의 테스크들로 분리(divide)될 수 있다. 하나 이상의 테스크들 각각은 테스크는 하이브리드 CPU 및 GPU 계산을 위해 연속적으로 스케쥴될 수 있다.Tasks for multiple scattering simulations can be divided into one or more tasks. Each of the one or more tasks may be continuously scheduled for hybrid CPU and GPU computations.

GPU(130) 및 CPU(120)는 각각 n 개의 테스크들을 순차적으로 처리할 수 있다. 여기서, n은 1 이상의 정수일 수 있다.The GPU 130 and the CPU 120 may each sequentially process n tasks. Here, n may be an integer of 1 or more.

CPU(120) 및 GPU(130)를 최대한으로 활용하기 위해, 2 개의 잡(job)들이 분리될 수 있다. 2 개의 잡들은 각각 광자 이동을 수행하는 테스크 및 사이노그램 변환을 수행하는 테스크로 표현될 수 있다.In order to make the most of the CPU 120 and the GPU 130, two jobs may be separated. The two jobs may be represented as a task to perform photon shift and a task to perform sinogram transformation, respectively.

도 9에서, GPU(130)가 처리하는 광자 이동을 수행하는 n 개의 테스크들이 도시되었고, CPU(120)가 처리하는 사이노그램 변환을 수행하는 n 개의 테스크들이 도시되었다. 하나의 되풀이에서, GPU(130) 및 CPU(120)는 각각 하나의 테스크를 처리할 수 있다. 도 9에서, 점선 사이의 공간이 하나의 되풀이를 나타낼 수 있다. 특정한 되풀이에서의 GPU(130)의 테스크의 계산 결과가, 다음의 되풀이에서의 CPU(120)의 테스크에서 사용될 수 있다.In FIG. 9, n tasks for performing photon shifting processed by the GPU 130 are illustrated, and n tasks for performing sinogram transformation processed by the CPU 120 are illustrated. In one iteration, GPU 130 and CPU 120 may each process one task. In FIG. 9, the space between the dotted lines may represent one iteration. The result of calculating the task of the GPU 130 at a particular iteration may be used in the task of the CPU 120 at the next iteration.

단계(720)의 복수 개의 발생 위치들은 복수 개의 그룹(group)들로 분리될 수 있고, 복수 개의 그룹들은 각각 3차원 측정선의 정보를 생성하는 단계(720) 및 사이노그램 리비닝을 수행하는 단계(730)의 되풀이(iteration)들에 의해 처리될 수 있다. 복수 개의 그룹들은 순차적으로 처리될 수 있다. 복수 개의 테스크들은 각각 복수 개의 그룹들 중 하나의 그룹을 처리할 수 있다.The plurality of occurrence positions of step 720 may be divided into a plurality of groups, and each of the plurality of groups generates information of a three-dimensional measurement line (720) and performs sinogram rebinding. It can be processed by iterations of 730. The plurality of groups may be processed sequentially. Each of the plurality of tasks may process one group of the plurality of groups.

즉, 복수 개의 발생 위치들이 n 개의 그룹들로 분리될 수 있고, n 개의 그룹들이 n+1 회의 되풀이들에 의해 처리될 수 있다. k 번째의 되풀이에서 처리된 발생 위치들에 대한 3차원 측정선들의 정보는, k+1 번-의 되풀이에서의 사이노그램 리비닝에서 사용될 수 있다. 여기서, k는 1 이상 n+1 이하의 정수일 수 있다.That is, a plurality of occurrence positions may be divided into n groups, and n groups may be processed by n + 1 repetitions. The information of the three-dimensional measurement lines for the generated positions processed at the k-th iteration can be used in sinogram rebinding at the k + 1 iterations. Here, k may be an integer of 1 or more and n + 1 or less.

CPU(120) 및 GPU(130) 간의 동시 실행들을 위해, 이벤트 질의(event query) 및 비동기적인 메모리 전송이 사용될 수 있다. GPU(130)는 프로그램 내에서의 임의의 지점들에서의 이벤트들을 기록할 수 있고, 상기의 이벤트들이 완료되었을 때 이벤트들에 관련된 질의를 할 수 있다. 동기적인 함수(function)가 호출되었을 때, 제어는 함수의 완료를 대기할 수 있다. 반면, 비동기적인 함수가 호출되었을 때, 제어는 함수의 완료와 무관하게 계속될 수 있다. 따라서, 비동기적인 메모리 전송이 사용될 수 있다.For concurrent executions between CPU 120 and GPU 130, event query and asynchronous memory transfer can be used. GPU 130 may record the events at any point in the program and may query the events when the above events are completed. When a synchronous function is called, control can wait for the function to complete. On the other hand, when an asynchronous function is called, control can continue regardless of the completion of the function. Thus, asynchronous memory transfer can be used.

특히, GPU(130)의 테스크의 실행 후, 비동기적인 메모리 전송 함수가 호출될 수 있고, 상기의 전송의 완료와 무관하게 다음의 GPU(130)의 테스크가 시작될 수 있다. 3차원 측정선의 정보는 비동기적인 메모리 전송을 통해 GPU(130)로부터 CPU(120)로 전송될 수 있다. GPU(130)는 이벤트 쿼리를 항시적으로(persistently) 검사함으로써 전송의 완료를 대기할 수 있다.In particular, after execution of the task of the GPU 130, an asynchronous memory transfer function can be called, and the task of the next GPU 130 can be started regardless of the completion of the transfer. Information of the 3D measurement line may be transmitted from the GPU 130 to the CPU 120 through an asynchronous memory transfer. The GPU 130 may wait for completion of the transmission by constantly checking the event query.

GPU(130)가 양자 이동을 수행하는 중, 메모리 전송은 완료될 수 있다. CPU(120)는 OpenMP를 사용하여 상기의 양자 이동에 대응하는 사이노그램 리비닝을 계산할 수 있다.While the GPU 130 is performing quantum movement, the memory transfer may be completed. The CPU 120 may calculate the sinogram rebinding corresponding to the quantum shift using OpenMP.

상술된 아키텍처는 CPU(120)의 활용을 최대화할 수 있고, 감마선 산란 시뮬레이션에 있어서 전반적인 성능을 크게 향상시킬 수 있다.
The above-described architecture can maximize the utilization of the CPU 120 and can greatly improve the overall performance in gamma ray scattering simulation.

본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Method according to an embodiment of the present invention is implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.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 by the equivalents of the claims, as well as the claims.

100: 영상 재구성 장치
110: 수신부
120: CPU
130: GPU
140: 코어
100: video reconstruction device
110:
120: CPU
130: GPU
140: core

Claims (18)

물체를 측정하여 생성된 실제 측정된 사이노그램을 수신하는 단계;
상기 물체에서 감마선이 발생하는 초기 발생 위치들에 대한 몬테카를로 시뮬레이션을 수행하는 단계 - 상기 몬테카를로 시뮬레이션은 GPU를 사용함으로써 광자들의 초기 발생 위치들 별로 병렬로 수행됨 -;
상기 몬테카를로 시뮬레이션에 의해 생성된 산란된 광자에 대한 정보에 기반하여 감마선 산란이 보정된 감마선 산란 사이노그램을 생성하는 단계; 및
상기 감마선 산란 사이노그램에 기반하여 재구성된 영상을 생성하는 단계
를 포함하는, 영상 재구성 방법.
Receiving an actual measured sinogram generated by measuring an object;
Performing a Monte Carlo simulation on the initial occurrence locations of gamma rays in the object, wherein the Monte Carlo simulation is performed in parallel for each of the initial generation locations of photons by using a GPU;
Generating a gamma ray scattering sinogram with gamma ray scattering corrected based on information on scattered photons generated by the Monte Carlo simulation; And
Generating a reconstructed image based on the gamma ray scattering sinogram
Image reconstruction method comprising a.
재구성된 영상 내에서 광자의 발생 위치를 결정하는 단계;
몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계;
2 개의 검출기 위치들 및 이동 중 변화된 값들을 계산하는 단계 - 상기 2 개의 검출기 위치들은 상기 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이고, 상기 이동 중 변화된 값들은 상기 2 개의 광자들 각각이 물체를 통과하고 이동한 동안에 변화된 값들임 -;
상기 2 개의 검출기 위치들을 잇는 3차원 측정선을 계산하는 단계;
상기 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성하는 단계; 및
상기 감마선 산란 사이노그램의 스케일을 조정하는 단계
를 포함하는, 감마선 산란 사이노그램 생성 방법.
Determining a location of generation of photons in the reconstructed image;
Calculating the movement of the two photons generated at the location of occurrence by using a Monte Carlo simulation;
Calculating two detector positions and values changed during the movement, wherein the two detector positions are detector coordinates when each of the two photons reaches the detector, and the values changed during the movement are each of the two photons Values changed during the passage and movement of this object;
Calculating a three-dimensional measurement line connecting the two detector positions;
Generating a prompt sinogram and a gamma ray scattering sinogram based on the three-dimensional measurement line; And
Scaling the gamma ray scattering sinogram
Including, gamma-ray scattering sinogram generation method.
제2항에 있어서,
상기 발생 위치는 복수 개이고,
상기 복수 개의 발생 위치들 각각은 GPU의 복수 개의 코어들 중 하나의 코어에게 할당되고,
상기 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계 및 상기 2 개의 검출기 위치들 및 이동 중 변화된 값들을 계산하는 단계는 상기 복수 개의 코어들에 의해 병렬로 수행되는, 감마선 산란 사이노그램 생성 방법.
The method of claim 2,
The generation position is a plurality,
Each of the plurality of occurrence positions is assigned to one core of the plurality of cores of the GPU,
Calculating the movement of the two photons generated at the generation position by using the Monte Carlo simulation and calculating the two detector positions and the values changed during the movement are performed in parallel by the plurality of cores Scattering sinogram generation method.
제3항에 있어서,
상기 재구성된 영상 내에서 광자의 발생 위치를 결정하는 단계는,
상기 재구성 영상 내에서 값을 갖는 위치들을 상기 복수 개의 발생 위치들로 간주하는 단계; 및
상기 복수 개의 발생 위치들을 포함하는 테이블을 생성하는 단계
를 포함하고,
상기 GPU의 상기 복수 개의 코어들 각각은 상기 테이블 내의 코어의 번호에 기반하여 결정된 하나 이상의 발생 위치들을 할당 받는, 감마선 산란 사이노그램 생성 방법.
The method of claim 3,
Determining a generation position of photons in the reconstructed image,
Considering positions having values within the reconstructed image as the plurality of occurrence positions; And
Generating a table including the plurality of occurrence locations
Lt; / RTI >
Wherein each of the plurality of cores of the GPU is assigned one or more occurrence locations determined based on the number of cores in the table.
제2항에 있어서,
상기 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계는,
GPU의 코어가 상기 발생 위치를 할당 받는 단계;
상기 코어가 광자의 상기 할당 받은 발생 위치에서의 초기 이동 방향을 랜덤으로 생성하는 단계;
상기 코어가 상기 광자의 이동 거리를 랜덤으로 생성하는 단계;
상기 코어가 상기 광자가 상기 초기 이동 방향으로 상기 이동 거리만큼 이동한 위치를 계산하는 단계;
상기 코어가 상기 이동한 위치로의 이동에 따른 상기 광자의 감쇄를 연산하는 단계; 및
상기 광자가 상기 검출기에 도달하였는지 확인하는 단계;
를 포함하는, 감마선 산란 사이노그램 생성 방법.
The method of claim 2,
Calculating the movement of two photons generated at the generation position by using the Monte Carlo simulation,
A core of a GPU being allocated the generation position;
Randomly generating, by the core, an initial direction of movement at the assigned occurrence position of photons;
The core randomly generating a moving distance of the photons;
Calculating a position at which the core moves the photon by the movement distance in the initial movement direction;
Calculating attenuation of the photons as the core moves to the moved position; And
Confirming that the photon has reached the detector;
Including, gamma-ray scattering sinogram generation method.
제5항에 있어서,
상기 코어가 상기 이동한 위치로의 이동에 따른 상기 광자의 감쇄를 연산하는 단계는,
상기 광자의 감쇄는 상기 코어가 감쇄 계수의 3차원 영상에서 상기 이동한 위치의 3차원 좌표에 해당하는 값을 획득함으로써 연산되고,
상기 코어는 상기 GPU가 제공하는 3차원 선형 보간법을 사용함으로써 상기 3차원 좌표에 해당하는 값을 독출하여 획득하는, 감마선 산란 사이노그램 생성 방법.
The method of claim 5,
Computing the attenuation of the photon according to the movement of the core to the moved position,
The attenuation of the photons is calculated by obtaining a value corresponding to the three-dimensional coordinates of the moved position of the core in the three-dimensional image of the attenuation coefficient,
And the core is obtained by reading a value corresponding to the three-dimensional coordinates by using a three-dimensional linear interpolation method provided by the GPU.
제5항에 있어서,
상기 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계는,
상기 코어가 상기 이동한 위치에서의 상기 광자의 산란의 발생 여부를 결정하는 단계;
상기 산란이 발생한 경우, 상기 코어가 상기 산란의 산란 각도를 랜덤으로 생성하는 단계; 및
상기 산란이 발생한 경우, 상기 코어가 상기 산란의 콤프턴 산란 값을 계산하는 단계
를 더 포함하는, 감마선 산란 사이노그램 생성 방법.
The method of claim 5,
Calculating the movement of two photons generated at the generation position by using the Monte Carlo simulation,
Determining whether scattering of the photons occurs at the moved position of the core;
When the scattering occurs, the core randomly generating scattering angles of the scattering; And
If the scattering occurs, the core calculating a Compton scattering value of the scattering
Further comprising, gamma scattering sinogram generation method.
제7항에 있어서,
상기 코어가 상기 이동한 위치에서의 상기 광자의 산란의 발생 여부를 결정하는 단계는,
상기 코어가 상기 이동한 위치의 감쇄 계수가 경계 값 이하이면 상기 산란이 발생하지 않은 것으로 결정하고, 상기 이동한 위치의 상기 감쇄 계수가 상기 경계 값보다 더 크면 상기 산란이 발생한 것으로 결정하는 단계
를 포함하는, 감마선 산란 사이노그램 생성 방법.
The method of claim 7, wherein
Determining whether or not scattering of the photons in the moved position of the core,
Determining that the scattering has not occurred if the attenuation coefficient of the moved position of the core is less than or equal to a boundary value, and determining that the scattering has occurred if the attenuation coefficient of the moved position is greater than the boundary value of the core;
Including, gamma-ray scattering sinogram generation method.
제2항에 있어서,
상기 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성하는 단계는,
상기 3차원 측정선을 사이노그램 형식으로 변환하는 단계;
상기 사이노그램 형식으로 변환된 3차원 측정선을 프롬프트 사이노그램에 저장하는 단계; 및
상기 2 개의 광자들이 산란이 된 광자인 경우 상기 사이노그램 형식으로 변환된 3차원 측정선을 상기 감마선 산란 사이노그램에 저장하는 단계
를 포함하는, 감마선 산란 사이노그램 생성 방법.
The method of claim 2,
Generating a prompt sinogram and gamma ray scattering sinogram based on the three-dimensional measurement line,
Converting the three-dimensional measurement line into a sinogram format;
Storing the 3D measurement line converted into the sinogram format in a prompt sinogram; And
When the two photons are scattered photons, storing the three-dimensional measurement line converted into the sinogram format in the gamma ray scattering sinogram
Including, gamma-ray scattering sinogram generation method.
제9항에 있어서,
상기 3차원 측정선을 사이노그램 형식으로 변환하는 단계는,
상기 3차원 측정선을 X-Y 방향 및 Z 방향의 벡터로 구분하는 단계; 및
상기 벡터에 기반하여 상기 3차원 측정선을 상기 사이노그램 형식으로 변환하는 단계
를 포함하는, 감마선 산란 사이노그램 생성 방법.
10. The method of claim 9,
Converting the three-dimensional measurement line in the sinogram format,
Dividing the three-dimensional measurement line into a vector in an XY direction and a Z direction; And
Converting the three-dimensional measurement line into the sinogram format based on the vector
Including, gamma-ray scattering sinogram generation method.
제2항에 있어서,
상기 감마선 산란 사이노그램의 스케일을 조정하는 단계는,
실제 측정된 사이노그램 및 상기 프롬프트 사이노그램 간의 오차를 최소화하는 스케일 상수를 계산하는 단계; 및
상기 스케일 상수를 상기 감마선 산란 사이노그램에 곱함으로써 상기 감마선 산란 사이노그램의 스케일을 조정하는 단계
를 포함하는, 감마선 산란 사이노그램 생성 방법.
The method of claim 2,
Adjusting the scale of the gamma ray scattering sinogram,
Calculating a scale constant that minimizes the error between the actual measured sinogram and the prompt sinogram; And
Scaling the gamma ray scattering sinogram by multiplying the scale constant by the gamma ray scattering sinogram
Including, gamma-ray scattering sinogram generation method.
물체를 측정하여 생성된 실제 측정된 사이노그램을 수신하는 수신부;
실제 측정된 사이노그램을 사용하여 제1 재구성된 영상을 생성하는 중앙 처리 장치(Central Processing Unit; CPU); 및
상기 물체에서 감마선이 발생하는 초기 발생 위치들에 대한 몬테카를로 시뮬레이션을 수행하는 그래픽 처리 장치(Graphics Processing Unit; GPU); - 상기 GPU는 상기 몬테카를로 시뮬레이션을 하나 이상의 코어들을 사용함으로써 광자들의 초기 발생 위치들 별로 병렬로 수행함 -
을 포함하고,
상기 CPU는 상기 몬테카를로 시뮬레이션에 의해 생성된 산란된 광자에 대한 정보에 기반하여 감마선 산란이 보정된 사이노그램을 생성하고, 상기 감마선 산란이 보정된 사이노그램에 기반하여 재구성된 영상을 생성하는, 영상 재구성 장치.
A receiver configured to receive an actual measured sinogram generated by measuring an object;
A central processing unit (CPU) for generating a first reconstructed image using the actually measured sinogram; And
A graphics processing unit (GPU) for performing a Monte Carlo simulation on initial generation positions at which gamma rays are generated in the object; The GPU performs the Monte Carlo simulation in parallel by initial occurrence positions of photons by using one or more cores.
/ RTI >
The CPU generates a gamma ray-corrected sinogram based on the information about scattered photons generated by the Monte Carlo simulation, and generates a reconstructed image based on the gamma ray-corrected sinogram. Image reconstruction device.
재구성된 영상 내에서 광자의 발생 위치를 결정하고, 2 개의 검출기 위치들을 잇는 3차원 측정선을 계산하고, 상기 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성하고, 상기 감마선 산란 사이노그램의 스케일을 조정하는 CPU; 및
몬테카를로 시뮬레이선을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하고, 상기 2 개의 검출기 위치들 및 이동 중 변화된 값들을 계산하는 GPU - 상기 2 개의 검출기 위치들은 상기 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이고, 상기 이동 중 변화된 값들은 상기 2 개의 광자들 각각이 물체를 통과하고 이동한 동안에 변화된 값들임 -;
를 포함하는, 감마선 산란 사이노그램 생성 장치.
Determine a generation location of photons in the reconstructed image, calculate a three dimensional measurement line connecting two detector positions, generate a prompt sinogram and a gamma ray scattering sinogram based on the three dimensional measurement line, A CPU for scaling the gamma ray scattering sinogram; And
A GPU that calculates the movement of the two photons generated at the generation position by using a Monte Carlo simulation line and calculates the two detector positions and the values changed during the movement-the two detector positions are each Detector coordinates upon reaching the detector, the values changed during the movement being the values changed while each of the two photons passes through the object and moves;
Including, gamma-ray scattering sinogram generating device.
제13항에 있어서,
상기 발생 위치는 복수 개이고,
상기 복수 개의 발생 위치들 각각에서 발생한 2 개의 광자들에 대하여, 상기 GPU의 복수 개의 코어들은 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치들 각각에서 발생한 2 개의 광자들의 이동을 병렬로 계산하고, 상기 2 개의 검출기 위치들 및 이동 중 변화된 값들을 병렬로 계산하는, 감마선 산란 사이노그램 생성 장치.
The method of claim 13,
The generation position is a plurality,
For two photons generated at each of the plurality of generation positions, the plurality of cores of the GPU calculates the movement of two photons generated at each of the generation positions in parallel by using Monte Carlo simulation, and the two detectors An apparatus for generating gamma ray scattering sinograms that calculates the positions and values changed during movement in parallel.
CPU가 재구성된 영상 내에서 광자의 발생 위치를 결정하는 단계;
GPU가 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 광자 쌍에 대한 2 개의 검출기 위치들을 잇는 3차원 측정선의 정보를 생성하는 단계 - 상기 검출기 위치들은 상기 광자 쌍의 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들임 -; 및
상기 CPU가 상기 3차원 측정선의 정보에 기반하여 사이노그램 리비닝을 수행하는 단계
를 포함하고,
상기 발생 위치는 복수 개이며,
상기 GPU는 상기 복수 개의 발생 위치들 각각을 상기 GPU의 복수 개의 쓰레드들 각각에게 할당하고,
상기 3차원 측정선의 정보를 생성하는 단계 및 상기 사이노그램 리비닝을 수행하는 단계는 각각 상기 CPU 및 상기 GPU에 의해 병렬로 실행되는, 사이노그램 리비닝 방법.
Determining a generation position of photons in the reconstructed image by the CPU;
GPU generating information of a three-dimensional measurement line connecting two detector positions for the photon pair generated at the generation position by using Monte Carlo simulation, wherein the detector positions are such that each of the two photons of the photon pair will reach the detector. Detector coordinates when; And
The CPU performing sinogram revision based on the information of the 3D measurement line;
Lt; / RTI >
The generation position is plural,
The GPU allocates each of the plurality of occurrence positions to each of the plurality of threads of the GPU,
Generating the information of the three-dimensional measurement line and performing the sinogram rebinding are executed in parallel by the CPU and the GPU, respectively.
제15항에 있어서,
상기 복수 개의 발생 위치들은 복수 개의 그룹들로 분리되고,
상기 복수 개의 그룹들은 각각 상기 3차원 측정선의 정보를 생성하는 단계 및 상기 사이노그램 리비닝을 수행하는 단계의 되풀이(iteration)들에 의해 처리되는, 사이노그램 리비닝 방법.
16. The method of claim 15,
The plurality of occurrence positions are divided into a plurality of groups,
And said plurality of groups are each processed by iterations of generating information of said three-dimensional measurement line and performing said sinogram rebinding.
제15항에 있어서,
상기 3차원 측정선의 정보는 비동기적인 메모리 전송을 통해 상기 GPU로부터 상기 CPU로 전송되는, 사이노그램 리비닝 방법.
16. The method of claim 15,
And information of the three-dimensional measurement line is transmitted from the GPU to the CPU through an asynchronous memory transfer.
재구성된 영상 내에서 광자의 발생 위치를 결정하는, 3차원 측정선의 정보에 기반하여 사이노그램 리비닝을 수행하는 CPU; 및
몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 광자 쌍에 대한 2 개의 검출기 위치들을 잇는 상기 3차원 측정선의 정보를 생성하는 GPU
를 포함하고,
상기 검출기 위치들은 상기 광자 쌍의 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이고,
상기 발생 위치는 복수 개이며,
상기 GPU는 상기 복수 개의 발생 위치들 각각을 상기 GPU의 복수 개의 쓰레드들 각각에게 할당하고,
상기 3차원 측정선의 정보를 생성하는 단계 및 상기 사이노그램 리비닝을 수행하는 단계는 각각 상기 CPU 및 상기 GPU에 의해 병렬로 실행되는, 사이노그램 생성 장치.
A CPU for performing sinogram revision based on information of a three-dimensional measurement line, which determines a location of generation of photons in the reconstructed image; And
GPU using Monte Carlo simulation to generate information of the three-dimensional measurement line connecting two detector positions for the photon pair generated at the generation position
Lt; / RTI >
The detector positions are detector coordinates when each of the two photons of the photon pair reaches the detector,
The generation position is plural,
The GPU allocates each of the plurality of occurrence positions to each of the plurality of threads of the GPU,
And generating the information of the three-dimensional measurement line and performing the sinogram rebinding are executed in parallel by the CPU and the GPU, respectively.
KR1020120041100A 2011-05-11 2012-04-19 Method and apparatus for monte-carlo simulation gamma-ray scattering estimation in positron emission tomography using graphics processing unit KR101283266B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/467,896 US8983162B2 (en) 2011-05-11 2012-05-09 Method and apparatus for estimating monte-carlo simulation gamma-ray scattering in positron emission tomography using graphics processing unit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20110043725 2011-05-11
KR1020110043725 2011-05-11

Publications (2)

Publication Number Publication Date
KR20120127214A KR20120127214A (en) 2012-11-21
KR101283266B1 true KR101283266B1 (en) 2013-07-17

Family

ID=47512420

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120041100A KR101283266B1 (en) 2011-05-11 2012-04-19 Method and apparatus for monte-carlo simulation gamma-ray scattering estimation in positron emission tomography using graphics processing unit

Country Status (1)

Country Link
KR (1) KR101283266B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101613391B1 (en) 2015-02-11 2016-04-19 (의료)길의료재단 Method and system for removing scatter using plan CT images

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101527656B1 (en) * 2013-12-12 2015-06-10 한국과학기술원 Method and system for interpolating point spread function using nongrid image registration in medical image
KR101531755B1 (en) * 2013-05-10 2015-06-25 한국과학기술원 Method and apparatus for dynamic image reconstruction using patch based low rank regularization in positron emission tomography
KR102039472B1 (en) * 2018-05-14 2019-11-01 연세대학교 산학협력단 Device and method for reconstructing computed tomography image
CN117272687B (en) * 2023-11-20 2024-01-26 中国海洋大学 Underwater optical imaging Monte Carlo vectorization isomerism parallel optimization method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070085387A (en) * 2004-12-01 2007-08-27 트라이엄프,오퍼레이팅애즈어조인트벤쳐바이더거버너스 오브더유니버시티오브알버타더유니버시티오브브리티시콜롬비아 칼레톤유니버시티시몬프레이저유니버시티더유니버시티 오브토론토앤드더유니버시티오브빅토리아 System for selecting true coincidence events in positron emission tomography
KR20090046765A (en) * 2009-03-30 2009-05-11 중앙대학교 산학협력단 Method and apparatus for imaging object 3-dimensionally

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070085387A (en) * 2004-12-01 2007-08-27 트라이엄프,오퍼레이팅애즈어조인트벤쳐바이더거버너스 오브더유니버시티오브알버타더유니버시티오브브리티시콜롬비아 칼레톤유니버시티시몬프레이저유니버시티더유니버시티 오브토론토앤드더유니버시티오브빅토리아 System for selecting true coincidence events in positron emission tomography
KR20090046765A (en) * 2009-03-30 2009-05-11 중앙대학교 산학협력단 Method and apparatus for imaging object 3-dimensionally

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101613391B1 (en) 2015-02-11 2016-04-19 (의료)길의료재단 Method and system for removing scatter using plan CT images

Also Published As

Publication number Publication date
KR20120127214A (en) 2012-11-21

Similar Documents

Publication Publication Date Title
US8983162B2 (en) Method and apparatus for estimating monte-carlo simulation gamma-ray scattering in positron emission tomography using graphics processing unit
US8620054B2 (en) Image reconstruction based on accelerated method using polar symmetries
US9189870B2 (en) Method, computer readable medium and system for tomographic reconstruction
Markiewicz et al. NiftyPET: a high-throughput software platform for high quantitative accuracy and precision PET imaging and analysis
KR101283266B1 (en) Method and apparatus for monte-carlo simulation gamma-ray scattering estimation in positron emission tomography using graphics processing unit
US9111381B2 (en) Shift-varying line projection using graphics hardware
Liu et al. GPU-based branchless distance-driven projection and backprojection
Pedemonte et al. GPU accelerated rotation-based emission tomography reconstruction
Choi et al. Acceleration of EM-based 3D CT reconstruction using FPGA
Ravi et al. FPGA as a hardware accelerator for computation intensive maximum likelihood expectation maximization medical image reconstruction algorithm
TW201514919A (en) Computed tomography image reconstruction method
Nguyen et al. GPU-accelerated 3D Bayesian image reconstruction from Compton scattered data
Liu et al. GPU-based acceleration for interior tomography
Bexelius et al. Implementation of GPU accelerated SPECT reconstruction with Monte Carlo-based scatter correction
JP2010204755A (en) Image processor, image reconstruction system, image processing method, and program
CN110811667B (en) High-precision PET reconstruction method and device based on GPU acceleration
Kim et al. Ultra-fast hybrid CPU–GPU multiple scatter simulation for 3-D PET
Frandes et al. Image Reconstruction Techniques for Compton Scattering Based Imaging: An Overview [Compton Based Image Reconstruction Approaches]
Weinlich et al. Comparison of high-speed ray casting on GPU using CUDA and OpenGL
Beasley et al. Fast simulation of proton induced X-ray emission tomography using CUDA
KR20110124685A (en) Method and apparatus for gamma-ray scattering estimation in positron emission tomography using graphic processing unit
Zhao et al. Fast projection algorithm for voxel arrays with object dependent boundaries
KR101082629B1 (en) Method and apparatus for reconstructing tomography image parallelly using graphic processing unit
Teimoorisichani et al. A cube-based dual-GPU list-mode reconstruction algorithm for PET imaging
Saxena et al. A parallel GPU algorithm for mutual information based 3D nonrigid image registration

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160627

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170627

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180626

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190625

Year of fee payment: 7