KR101283266B1 - Gpu를 이용한 양전자 방출 단층 촬영 영상에서의 몬테카를로 시뮬레이션 감마선 산란 추정 방법 및 장치 - Google Patents
Gpu를 이용한 양전자 방출 단층 촬영 영상에서의 몬테카를로 시뮬레이션 감마선 산란 추정 방법 및 장치 Download PDFInfo
- 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
Links
- 238000001131 gamma-ray scattering spectroscopy Methods 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000000342 Monte Carlo simulation Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 title claims description 25
- 238000002600 positron emission tomography Methods 0.000 title description 12
- 238000005259 measurement Methods 0.000 claims abstract description 61
- 239000013598 vector Substances 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 9
- 238000012937 correction Methods 0.000 abstract description 3
- 230000005251 gamma ray Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000004088 simulation Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000003325 tomography Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000010521 absorption reaction Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 239000012217 radiopharmaceutical Substances 0.000 description 3
- 229940121896 radiopharmaceutical Drugs 0.000 description 3
- 230000002799 radiopharmaceutical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- MHWLWQUZZRMNGJ-UHFFFAOYSA-N nalidixic acid Chemical compound C1=C(C)N=C2N(CC)C=C(C(O)=O)C(=O)C2=C1 MHWLWQUZZRMNGJ-UHFFFAOYSA-N 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009206 nuclear medicine Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 239000000700 radioactive tracer Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/003—Reconstruction from projections, e.g. tomography
- G06T11/005—Specific pre-processing for tomographic reconstruction, e.g. calibration, source positioning, rebinning, scatter correction, retrospective gating
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B6/00—Apparatus or devices for radiation diagnosis; Apparatus or devices for radiation diagnosis combined with radiation therapy equipment
- A61B6/02—Arrangements for diagnosis sequentially in different planes; Stereoscopic radiation diagnosis
- A61B6/03—Computed tomography [CT]
- A61B6/037—Emission tomography
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01T—MEASUREMENT OF NUCLEAR OR X-RADIATION
- G01T1/00—Measuring X-radiation, gamma radiation, corpuscular radiation, or cosmic radiation
- G01T1/16—Measuring radiation intensity
- G01T1/161—Applications 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차원 사이노그램 형식으로 변환되어 프롬프트 사이노그램 및 감마선 산란 사이노그램에 저장된다. 감마선 산란 사이노그램의 스케일을 조정함으로써 최종적인 감마선 산란 사이노그램이 생성된다.
Description
아래의 실시예들은 양전자 방출 단층 촬영(Positron Emission Tomography; PET)에 관련된 것이다.
감마선 산란 추정을 위해 GPU를 사용하여 몬테카를로 시뮬레이션을 병렬로 처리하는 방법 및 장치가 개시된다.
단층 촬영은 검출기를 180° 또는 360° 회전하여 물체의 특정 단면을 인접한 다른 단면과의 중첩 없이 비침슴적으로 관찰할 수 있는 영상기법이다.
사이노그램(sinogram)은 단층 촬영에 의해 획득된 복수 개의 영상을 의미한다. 사이노그램은 3차원 영상으로 재구성(reconstruct)된다. 관찰자는 재구성된 3차원 영상을 통해 촬영된 물체의 특정 단면을 관찰할 수 있다.
핵의학 단층 영상은, 피촬영자의 체내에 투여된 방사성 의약품이 생화학적 특성에 따라 피촬영자의 체내에서 분포되는 특성이 영상으로 표현된 것이다.
체내에 투여되는 방사성 의약품은 기준치에 의해 그 방사선량이 제한된다. 따라서, 극소량의 광자에 의해 기록된 투사값으로부터 높은 해상도의 영상이 재구성되기는 어렵다.
핵의학 영상 장비를 사용하여 단층을 촬영하는 경우, 관측된 신호의 세기가 약한 것에 비해, 상대적으로 잡음은 강하다.
따라서, 감마선의 산란은 영상을 재구성한 결과에 큰 영향을 미치며, 감마선의 산란에 따른 영상 잡음을 보정하기 위해서, 단일 산란 시뮬레이션과 같은 근사화 된 감마선 산란 추정 알고리즘이 널리 사용된다.
몬테카를로 시뮬레이션은 감마선 광자를 하나씩 발생시키고 감마선 광자의 이동(migration)을 실제와 흡사하게 시뮬레이션 하는 방법이다.
몬테카를로 시뮬레이션은, 연구자들에게는 실제 발생 가능한 현상을 예측하고 평가하는 기준이 되는 방법이다. 그러나, 몬테카를로 시뮬레이션을 위해서는 기본적으로 수 시간에서 수 일의 연산시간이 소요된다. 따라서, 몬테카를로 시뮬레이션은 실제 임상에서는 거의 사용되지 않는다. 마찬가지로, 몬테카를로 시뮬레이션을 이용한 감마선 산란 추정(scatter estimation) 및 보정(correction)은 연구적으로도 거의 사용되지 않고 있다.
양전자 방출 단층 촬영(Positron Emission Tomography; PET) 영상을 3차원 영상으로 재구성하는 과정에 있어서, 감마선 산란 추정 과정 및 이를 이용한 최종적인 3차원 영상 재구성 과정에서 가장 많은 시간이 소요된다.
이러한 연산시간을 감소시키기 위해 병렬 처리 기법이 사용될 수 있다. 병렬 처리는 복수 개의 연산 코어(core)에서 동종의 일을 나누어서 동시에 연산하는 방법이다.
멀티코어가 탑재된 CPU(central processing unit) 또는 GPU가 병렬 처리에 사용될 수 있다. 특히, GPU는 일반적으로 수십 개에서 수백 개의 코어를 탑재하여 대규모의 처리를 병렬로 수행할 수 있으며, 그래픽 연산뿐만 아니라 수학적인 연산을 처리할 수 있다.
본 발명의 일 실시예는, 가장 정확하다고 알려진 몬테카를로 시뮬레이션을 이용한 감마선 산란 추정에 있어서, GPU를 사용함으로써 수백 배 이상 향상된 속도를 갖는 방법 및 장치를 제공할 수 있다.
본 발명의 일 실시예는, 임상에서도 사용 가능한 수준으로 향상된 속도를 갖는 몬테카를로 시뮬레이션을 이용한 감마선 산란 추정 방법 및 장치를 제공할 수 있다.
본 발명의 일 실시예는, 하이브리드 CPU-GPU 구조를 사용하여 감마선 산란 사이노그램을 생성하는 방법 및 장치를 제공할 수 있다.
본 발명의 일 측에 따르면, 물체를 측정하여 생성된 실제 측정된 사이노그램을 수신하는 단계, 상기 물체에서 감마선이 발생하는 초기 발생 위치들에 대한 몬테카를로 시뮬레이션을 수행하는 단계 - 상기 몬테카를로 시뮬레이션은 GPU를 사용함으로써 광자들의 초기 발생 위치들 별로 병렬로 수행됨 -, 상기 몬테카를로 시뮬레이션에 의해 생성된 산란된 광자에 대한 정보에 기반하여 감마선 산란이 보정된 감마선 산란 사이노그램을 생성하는 단계 및 상기 감마선 산란 사이노그램에 기반하여 재구성된 영상을 생성하는 단계를 포함하는, 영상 재구성 방법이 제공된다.
본 발명의 다른 일 측에 따르면, 재구성된 영상 내에서 광자의 발생 위치를 결정하는 단계, 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계, 2 개의 검출기 위치들 및 이동 중 변화된 값들을 계산하는 단계 - 상기 2 개의 검출기 위치들은 상기 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이고, 상기 이동 중 변화된 값들은 상기 2 개의 광자들 각각이 물체를 통과하고 이동한 동안에 변화된 값들임 -, 상기 2 개의 검출기 위치들을 잇는 3차원 측정선을 계산하는 단계, 상기 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성하는 단계 및 상기 감마선 산란 사이노그램의 스케일을 조정하는 단계를 포함하는, 감마선 산란 사이노그램 생성 방법이 제공된다.
상기 발생 위치는 복수 개일 수 있다.
상기 복수 개의 발생 위치들 각각은 GPU의 복수 개의 코어들 중 하나의 코어에게 할당될 수 있다.
상기 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계 및 상기 2 개의 검출기 위치들 및 이동 중 변화된 값들을 계산하는 단계는 상기 복수 개의 코어들에 의해 병렬로 수행될 수 있다.
상기 재구성된 영상 내에서 광자의 발생 위치를 결정하는 단계는, 상기 재구성 영상 내에서 값을 갖는 위치들을 상기 복수 개의 발생 위치들로 간주하는 단계 및 상기 복수 개의 발생 위치들을 포함하는 테이블을 생성하는 단계를 포함할 수 있다.
상기 GPU의 상기 복수 개의 코어들 각각은 상기 테이블 내의 코어의 번호에 기반하여 결정된 하나 이상의 발생 위치들을 할당 받을 수 있다.
상기 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계는, GPU의 코어가 상기 발생 위치를 할당 받는 단계, 상기 코어가 광자의 상기 할당 받은 발생 위치에서의 초기 이동 방향을 랜덤으로 생성하는 단계, 상기 코어가 상기 광자의 이동 거리를 랜덤으로 생성하는 단계, 상기 코어가 상기 광자가 상기 초기 이동 방향으로 상기 이동 거리만큼 이동한 위치를 계산하는 단계, 상기 코어가 상기 이동한 위치로의 이동에 따른 상기 광자의 감쇄를 연산하는 단계 및 상기 광자가 상기 검출기에 도달하였는지 확인하는 단계를 포함할 수 있다.
상기 코어가 상기 이동한 위치로의 이동에 따른 상기 광자의 감쇄를 연산하는 단계는, 상기 광자의 감쇄는 상기 코어가 감쇄 계수의 3차원 영상에서 상기 이동한 위치의 3차원 좌표에 해당하는 값을 획득함으로써 연산될 수 있고, 상기 코어는 상기 GPU가 제공하는 3차원 선형 보간법을 사용함으로써 상기 3차원 좌표에 해당하는 값을 독출하여 획득할 수 있다.
상기 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계는, 상기 코어가 상기 이동한 위치에서의 상기 광자의 산란의 발생 여부를 결정하는 단계, 상기 산란이 발생한 경우, 상기 코어가 상기 산란의 산란 각도를 랜덤으로 생성하는 단계, 상기 산란이 발생한 경우, 상기 코어가 상기 산란의 콤프턴 산란 값을 계산하는 단계를 더 포함할 수 있다.
상기 코어가 상기 이동한 위치에서의 상기 광자의 산란의 발생 여부를 결정하는 단계는, 상기 코어가 상기 이동한 위치의 감쇄 계수가 경계 값 이하이면 상기 산란이 발생하지 않은 것으로 결정하고, 상기 이동한 위치의 상기 감쇄 계수가 상기 경계 값보다 더 크면 상기 산란이 발생한 것으로 결정하는 단계를 포함할 수 있다.
상기 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성하는 단계는, 상기 3차원 측정선을 사이노그램 형식으로 변환하는 단계, 상기 사이노그램 형식으로 변환된 3차원 측정선을 프롬프트 사이노그램에 저장하는 단계 및 상기 2 개의 광자들이 산란이 된 광자인 경우 상기 사이노그램 형식으로 변환된 3차원 측정선을 상기 감마선 산란 사이노그램에 저장하는 단계를 포함할 수 있다.
상기 3차원 측정선을 사이노그램 형식으로 변환하는 단계는, 상기 3차원 측정선을 X-Y 방향 및 Z 방향의 벡터로 구분하는 단계 및 상기 벡터에 기반하여 상기 3차원 측정선을 상기 사이노그램 형식으로 변환하는 단계를 포함할 수 있다.
상기 감마선 산란 사이노그램의 스케일을 조정하는 단계는, 상기 실제 측정된 사이노그램 및 상기 프롬프트 사이노그램 간의 오차를 최소화하는 스케일 상수를 계산하는 단계 및 상기 스케일 상수를 상기 감마선 산란 사이노그램에 곱함으로써 상기 감마선 산란 사이노그램의 스케일을 조정하는 단계를 포함할 수 있다.
본 발명의 또 다른 일 측에 따르면, 물체를 측정하여 생성된 실제 측정된 사이노그램을 수신하는 수신부, 실제 측정된 사이노그램을 사용하여 제1 재구성된 영상을 생성하는 CPU 및 상기 물체에서 감마선이 발생하는 초기 발생 위치들에 대한 몬테카를로 시뮬레이션을 수행하는 GPU; - 상기 GPU는 상기 몬테카를로 시뮬레이션을 하나 이상의 코어들을 사용함으로써 광자들의 초기 발생 위치들 별로 병렬로 수행함 -을 포함하고, 상기 CPU는 상기 몬테카를로 시뮬레이션에 의해 생성된 산란된 광자에 대한 정보에 기반하여 감마선 산란이 보정된 사이노그램을 생성하고, 상기 감마선 산란이 보정된 사이노그램에 기반하여 재구성된 영상을 생성하는, 영상 재구성 장치가 제공된다.
본 발명의 또 다른 일 측에 따르면, 재구성된 영상 내에서 광자의 발생 위치를 결정하고, 2 개의 검출기 위치들을 잇는 3차원 측정선을 계산하고, 상기 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성하고, 상기 감마선 산란 사이노그램의 스케일을 조정하는 CPU 및 몬테카를로 시뮬레이선을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하고, 상기 2 개의 검출기 위치들 및 이동 중 변화된 값들을 계산하는 GPU - 상기 2 개의 검출기 위치들은 상기 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이고, 상기 이동 중 변화된 값들은 상기 2 개의 광자들 각각이 물체를 통과하고 이동한 동안에 변화된 값들임 - 을 포함하는, 감마선 산란 사이노그램 생성 장치가 제공된다.
본 발명의 또 다른 일 측에 따르면, CPU가 재구성된 영상 내에서 광자의 발생 위치를 결정하는 단계, GPU가 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 광자 쌍에 대한 2 개의 검출기 위치들을 잇는 3차원 측정선의 정보를 생성하는 단계 - 상기 검출기 위치들은 상기 광자 쌍의 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들임 - 및 상기 CPU가 상기 3차원 측정선의 정보에 기반하여 사이노그램 리비닝을 수행하는 단계를 포함하고, 상기 발생 위치는 복수 개이며, 상기 GPU는 상기 복수 개의 발생 위치들 각각을 상기 GPU의 복수 개의 쓰레드들 각각에게 할당하고, 상기 3차원 측정선의 정보를 생성하는 단계 및 상기 사이노그램 리비닝을 수행하는 단계는 각각 상기 CPU 및 상기 GPU에 의해 병렬로 실행되는, 사이노그램 리비닝 방법이 제공된다.
상기 복수 개의 발생 위치들은 복수 개의 그룹들로 분리될 수 있다.
상기 복수 개의 그룹들은 각각 상기 3차원 측정선의 정보를 생성하는 단계 및 상기 사이노그램 리비닝을 수행하는 단계의 되풀이(iteration)들에 의해 처리될 수 있다.
상기 3차원 측정선의 정보는 비동기적인 메모리 전송을 통해 상기 GPU로부터 상기 CPU로 전송될 수 있다.
본 발명의 또 다른 일 측에 따르면, 재구성된 영상 내에서 광자의 발생 위치를 결정하는, 3차원 측정선의 정보에 기반하여 사이노그램 리비닝을 수행하는 CPU 및 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 광자 쌍에 대한 2 개의 검출기 위치들을 잇는 상기 3차원 측정선의 정보를 생성하는 GPU를 포함하고, 상기 검출기 위치들은 상기 광자 쌍의 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이고, 상기 발생 위치는 복수 개이며, 상기 GPU는 상기 복수 개의 발생 위치들 각각을 상기 GPU의 복수 개의 쓰레드들 각각에게 할당하고, 상기 3차원 측정선의 정보를 생성하는 단계 및 상기 사이노그램 리비닝을 수행하는 단계는 각각 상기 CPU 및 상기 GPU에 의해 병렬로 실행되는, 사이노그램 생성 장치가 제공된다.
병렬 처리를 이용함으로써 연산 시간이 감축된 감마선 산란 추정 방법 및 장치가 제공된다.
GPU의 병렬 처리를 이용한 몬테카를로 시뮬레이션 산란 사이노그램 생성 방법 및 장치가 제공된다.
하이브리드 CPU-GPU 구조를 사용하여 감마선 산란 사이노그램을 생성하는 방법 및 장치가 제공된다.
도 1은 본 발명의 일 실시예에 따른 감마선 산란 사이노그램을 이용한 영상 재구성 장치이다.
도 2는 본 발명의 일 실시예에 따른 감마선 산란 사이노그램을 이용한 영상 재구성 방법을 나타내는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 몬테카를로 시뮬레이선을 나타내는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 사이노그램 생성 방법의 흐름도이다.
도 5는 본 발명의 일 예에 따른 감마선 산란 사이노그램의 스케일 조정 방법의 흐름도이다.
도 6은 본 발명의 일 예에 따른 검출기에 도달하기까지 광자의 이동에 따른 연산을 수행하는 방법을 나타내는 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 감마선 산란 사이노그램을 이용한 영상 재구성 방법을 나타내는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 몬테카를로 시뮬레이선을 나타내는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 사이노그램 생성 방법의 흐름도이다.
도 5는 본 발명의 일 예에 따른 감마선 산란 사이노그램의 스케일 조정 방법의 흐름도이다.
도 6은 본 발명의 일 예에 따른 검출기에 도달하기까지 광자의 이동에 따른 연산을 수행하는 방법을 나타내는 흐름도이다.
이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 감마선 산란 사이노그램을 이용한 영상 재구성 장치이다.
영상 재구성 장치(100)는 수신부(110), 중앙 처리 장치(Central Processing Unit; CPU)(120) 및 그래픽 처리 장치(Graphics Processing Unit; GPU)(130)를 포함한다. 상기의 영상 재구성 장치(100)는 감마선 산란 사이노그램을 생성하는 사이노그램 생성 장치일 수 있다.
수신부(110)는 유무선 네트워크를 통해 실제 측정된 사이노그램을 나타내는 데이터를 수신할 수 있다.
GPU(130)는 하나 이상의 코어(140)들을 포함할 수 있다. 코어(140)들은 그래픽 연산을 병렬로 수행할 수 있다.
GPU(130)는 몬테카를로 시뮬레이션을 연산한다. 여기서, 몬테카를로 연산은, 광자의 이동을 계산하는 것을 의미한다.
코어(140)들 각각은 하나의 초기 발생 위치에서 발생한 감마선 광자 쌍의 이동(즉, 광자 쌍의 이동 경로)을 계산한다.
광자 쌍의 이동은 산란을 포함할 수 있다. 광자의 상태 값은 광자가 산란이 되었는지 또는 산란이 되지 않았는지에 대한 정보를 포함한다.
산란이 발생한 경우, 산란 각도 및 광자의 이동 거리는 랜덤으로 결정된다.
광자들이 검출기에 도달한 경우, 연산이 종료한다.
GPU(120)는 CPU(120)에 포함될 수 있다.
CPU(120)는 몬테카를로 시뮬레이션에 의해 획득된 검출기의 좌표를 사용함으로써 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성할 수 있다.
프롬프트 사이노그램은 모든 데이터를 포함하는 사이노그램이다. 감마선 산란 사이노그램은 감마선 산란만을 포함하는 사이노그램이다.
또한, CPU(120)는 실제 측정된 사이노그램과 프롬프트 사이노그램을 비교함으로써 오차가 가장 적은 스케일 상수를 계산할 수 있고, 계산된 스케일 상수를 감마선 산란 사이노그램에 곱함으로써 최종 감마선 산란 사이노그램을 획득할 수 있다.
영상 재구성 장치(100)는 감마선 산란 사이노그램을 이용하여 영상을 재구성할 수 있다.
또한, CPU(120) 및 GPU(130)에 의해 감마선 산란 사이노그램이 생성될 수 있다. 따라서, CPU(120) 및 GPU(130)는 감마선 산란 사이노그램 생성 장치를 구성할 수 있다.
도 2는 본 발명의 일 실시예에 따른 감마선 산란 사이노그램을 이용한 영상 재구성 방법을 나타내는 흐름도이다.
본 실시예는 영상 재구성 장치(100)에 의해 수행될 수 있다. 즉, GPU를 포함하는 영상 재구성 장치(100)는 감마선 산란 사이노그램을 이용하여 영상을 재구성할 수 있다.
상기의 재구성되는 영상은 3D 영상일 수 있다.
단계(210)에서, 예컨대 수신부(110)에 의해, 영상을 재구성하기 위한 사이노그램이 수신된다.
수신된 사이노그램은 실제 기계(즉, 양전자 방출 단층 촬영기)가 물체를 측정하여 생성된 실제 측정된 사이노그램이다.
수신된 데이터는 양전자 방출 단층 촬영기로부터 전송된 것일 수 있다. 또는, 수신된 데이터는 데이터 제공을 위한 서버로부터 전송된 것일 수 있다.
CPU(120)에 의해, 실제 측정된 사이노그램을 사용함으로써 산란이 보정되지 않은 재구성된 영상이 생성될 수 있으며, 재구성된 영상에 기반하여 물체가 인식될 수 있다.
단계(220)에서, 예컨대 GPU(130)에 의해, 물체에서 감마선이 발생하는 초기 발생 위치들에 대한 몬테카를로 시뮬레이션이 수행된다.
초기 발생 위치들은 산란이 보정되지 않은 재구성된 영상 내에서의 위치일 수 있다. 즉, 예컨대 CPU(120)에 의해, 산란이 보정되지 않은 재구성된 영상 내에서 감마선이 발생하는 초기 발생 위치들이 결정될 수 있다.
몬테카를로 시뮬레이션은 가상의 광자를 발생하여 발생된 가상의 광자를 임의로 실제와 흡사하게 이동시키는 시뮬레이션이다. 즉, 몬테카를로 시뮬레이션 실제 광자의 이동을 모델링 하는 것이다.
몬테카를로 시뮬레이션은 GPU(130) 상에서의 병렬 처리를 통해 구현될 수 있다. 즉, 몬테카를로 시뮬레이션은 GPU(130)를 사용함으로써 광자들의 초기 발생 위치들 별로 병렬로 수행될 수 있다.
병렬 처리는 병렬 처리 코드에 의해 구현된다.
동일한 알고리즘(algorithm)을 구현하는 병렬 처리 코드들에 대해서도, 각각의 병렬 처리 코드의 연산 속도는 코드 내부의 복잡도에 따라서 서로 상이하다.
따라서, 병렬 처리 코드는 적은 수의 변수를 사용하여 간단하게 구성될 필요가 있다.
예컨대, 몬테카를로 시뮬레이션을 수행하는 영상 재구성 장치(100) 내의 CPU(예컨대, CPU(120))는 파일 입출력 등에만 관여하고, 몬테카를로 시뮬레이션을 위한 실제 연산은 병렬 처리 장치(예컨대, GPU(130))에서 병렬적으로 나뉘어 처리된다면, 이러한 병렬 처리 장치 내에서 수행되는 병렬 처리 코드는 최대한 간결한 코드로 구성될 필요가 있다.
병렬 처리에 있어서 핵심이 되는 병렬 처리 코드의 연산 속도를 향상시키기 위해서, 데이터의 송수신의 빈도를 최소한으로 줄이는 것이 매우 중요하다. 일반적으로 하나의 연산은 수 나노 초 내에서 완료될 수 있지만, 메모리를 독출(read) 또는 기입(write)하는 연산은 수백 나노 초 이상이 소요될 수 있다.
수신된 데이터가 양전자 방출 단층 촬영기로부터 생성된 것일 경우, 영상을 재구성하기 위해 요구되는 사이노그램은 연산이 시작되기 전에 단 1회만 수신될 수 있으며, 재구성 영상은 연산이 끝난 후에 단 1회만 수신될 수 있다.
단계(220)에 대해, 도 3을 참조하여 하기에서 상세히 설명된다.
단계(230)에서, 예컨대 CPU(120)에 의해 감마선 산란 사이노그램이 생성된다.
감마선 산란 사이노그램은 감마선 산란이 보정된 사이노그램이다.
감마선 산란 사이노그램은 전술된 몬테카를로 시뮬레이션에 의해 생성된 산란된 광자에 대한 정보에 기반하여 생성될 수 있다. 즉, CPU(120)는 전술된 몬테카를로 시뮬레이션으로부터 산란된 광자에 대한 정보를 획득할 수 있고, 획득된 정보를 바탕으로 감마선 산란 사이노그램을 생성할 수 있다.
단계(230)를 수행함에 있어서 스케일 조정이 요구될 수 있다. 스케일 조정에 대해 도 4를 참조하여 하기에서 상세히 설명된다.
단계(240)에서, 예컨대 CPU(120)에 의해, 생성된 감마선 산란 사이노그램에 기반하여 산란이 보정된 재구성된 영상이 생성된다.
도 3은 본 발명의 일 실시예에 따른 몬테카를로 시뮬레이선을 나타내는 흐름도이다.
단계들(310 내지 340)은 전술된 단계(220)에 포함될 수 있다.
단계(310)에서, 예컨대 CPU(120)에 의해, 재구성된 영상 내에서 광자의 발생 위치가 결정된다.
발생 위치는 복수 개일 수 있다.
재구성된 영상은 도 2를 참조하여 전술된 산란이 보정되지 않은 재구성 영상일 수 있다.
단계(310)는 단계들(312 및 314)를 포함할 수 있다.
단계(312)에서, 예컨대 CPU(120)에 의해, 재구성된 영상 내에서 값을 갖는 위치들이 광자들의 초기의 발생 위치로서 생성될 수 있다.
상기의 발생 위치는 감마선 발생 위치일 수 있다. 또한, 상기의 광자는 감마선 광자일 수 있다.
단계(314)에서, 예컨대 CPU(120)에 의해, 이러한 발생 위치들만을 모음으로써 복수 개의 발생 위치들을 포함하는 테이블이 생성될 수 있다. 테이블은 감마선의 발생 양(즉, 발생 위치들의 개수)을 반영할 수 있다.
GPU(130)의 복수 개의 코어(140)들 각각은 코어(140)의 번호에 따라 생성된 테이블에서 서로 상이한 위치를 일괄적으로 독출해 올 수 있다. 이는, GPU(130)의 복수 개의 코어(140)들 각각은 테이블 내의 복수 개의 발생 위치들 중 발생 위치를 하나 이상 할당 받음을 의미한다.
말하자면, 복수 개의 발생 위치들 각각은 GPU(130)의 복수 개의 코어(140)들 중 하나의 코어(140)에게 할당될 수 있다. 여기서, 코어(140)에게 할당되는 하나 이상의 발생 위치들은 코어(140)의 번호에 기반하여 결정될 수 있다.
복수 개의 발생 위치들 각각은 GPU(130)가 포함하는 복수 개의 코어(140)들의 개수에 무관하게, 순차적으로 번갈아 가면서 독출될 수 있다. 예컨대, 발생 위치들이 60 개이고, GPU(130)의 코어(140)들이 30 개인 경우, 코어(140)들 각각은 2 개의 발생 위치들을 할당 받을 수 있다.
GPU(130)의 복수 개의 코어(140)들은 복수 개의 코어(140)들 각각에게 할당된 하나 이상의 발생 위치들에 대한 연산(예컨대, 단계(320) 및 단계(330))을 병렬로 수행할 수 있다.
단계(320)에서, 예컨대 GPU(130)의 코어(140)에 의해, 몬테카를로 시뮬레이션을 사용함으로써 발생 위치에서 발생한 2 개의 광자들의 이동이 계산된다.
단계(320)에 대해, 도 6을 참조하여 하기에서 상세히 설명된다.
단계(330)에서, 예컨대 GPU(130)의 코어(140)에 의해, 2 개의 검출기 위치들 및 이동 중 변화된 값들이 계산된다.
2 개의 검출기 위치들은 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이다.
이동 중 변화된 값들은 2 개의 광자들 각각이 물체를 통과하고 이동한 동안에 변화된 값들이다.
양전자 방출 단층 촬영이 사용되는 경우, 감마선이 쌍으로 발생한다. 감마선이 쌍으로 발생함에 따른 2 개의 광자들 각각이 검출기에 도달하였을 때의 검출기 위치 좌표들이 요구된다.
검출기 위치 좌표들을 통해 측정선(Line of Response; LoR)을 계산함으로써 사이노그램이 획득될 수 있다.
따라서, 한 번의 연산 단위에서, 각각의 코어(140)는 하나의 감마선 발생 위치를 담당하여, 감마선 발생 위치에서 발생한 감마선 광자 쌍에 대한 물리적 연산을 통해 최종적인 두 개의 검출기 위치들을 출력할 수 있다. 이 때, 각각의 코어(140)는 감마선 광자 쌍이 물체(예컨대, 피측정자)를 통과하고 이동한 동안에 변화된 값들을 같이 출력할 수 있다.
단계(340)에서, 예컨대 GPU(130)의 코어(140)에 의해, 2 개의 검출기 위치들 및 이동 중 변화된 값들이 저장된다.
코어(140)는 2 개의 검출기 위치들 및 이동 중 변화된 값들을 CPU(120)로 송신할 수 있다.
도 4는 본 발명의 일 실시예에 따른 사이노그램 생성 방법의 흐름도이다.
단계들(410 내지 450)은 전술된 단계(230)에 포함될 수 있다.
단계(410)에서, 예컨대 CPU(120)에 의해, 2 개의 광자들 각각이 도달한 2 개의 검출기 위치들 및 이동 중 변화된 값들이 수신된다.
단계(420)에서, 예컨대 CPU(120)에 의해, 2 개의 검출기 좌표들을 잇는 3차원 측정선(또는, 3차원 측정선의 방정식)이 계산된다.
단계(430)에서, 예컨대 CPU(120)에 의해, 계산된 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램이 생성된다.
단계(430)는 하기의 단계들(432, 434, 436, 438 및 440)을 포함할 수 있다.
단계들(432 및 434)에서, 예컨대 CPU(120)에 의해, 생성된 3차원 측정선이 사이노그램 형식으로 변환될 수 있다.
단계(432)에서, 예컨대 CPU(120)에 의해, 생성된 3차원 측정선이 X-Y 방향 및 Z 방향의 벡터로 구분된다.
단계(434)에서, 예컨대 CPU(120)에 의해, 상기의 벡터에 기반하여 3차원 측정선이 사이노그램 형식으로 변환된다.
단계(436)에서, 예컨대 CPU(120)에 의해, 사이노그램 형식으로 변환된 3차원 측정선이 프롬프트 사이노그램에 저장된다. 3차원 측정선은, 3차원 측정선에 대응하는 사이노그램 좌표를 통해 프롬프트 사이노그램 내에 저장될 수 있다.
프롬프트 사이노그램은 산란을 포함한 모든 측정선을 포함한다. 따라서, 프롬프트 사이노그램은 기계(즉, 양전자 방출 단층 촬영기)에 의해 실제 측정된 사이노그램과 동일한 형식의 데이터인 것으로 볼 수 있다. 이러한 특성에 의해, 몬테카를로 시뮬레이션에 의해 획득된 프롬프트 사이노그램 및 기계에 의해 실제 측정된 사이노그램을 비교함으로써 스케일 조정 상수가 계산될 수 있다. 스케일 조성 상수를 계산하는 구체적인 방법이 도 5를 참조하여 하기에서 상세히 설명된다.
단계(438)에서, 예컨대 CPU(120)에 의해, 2 개의 광자들이 이동하면서 산란이 발생하였는지 여부가 확인된다.
2 개의 광자들 각각은 상태 값을 갖는다. 광자의 상태 값은 광자가 산란이 되었는지 또는 산란이 되지 않았는지에 대한 정보를 포함한다. 따라서, CPU(120)는 광자의 상태 값을 통해 산란의 발생 유무를 확인할 수 있다.
산란이 발생한 경우, 단계(440)에서, 예컨대 CPU(120)에 의해, 사이노그램 형식으로 변환된 3차원 측정선이 감마선 산란 사이노그램에 저장된다.
감마선 산란을 추정하여 보정하기 위해서는, 감마선 산란 사이노그램이 요구된다. 따라서, 본 실시예에서는 산란 사이노그램이 별개로 저장된다.
단계(450)에서, 예컨대 CPU(120)에 의해, 감마선 산란 사이노그램의 스케일이 조정된다.
단계(450)에 대해, 도 5를 참조하여 하기에서 상세히 설명된다.
도 5는 본 발명의 일 예에 따른 감마선 산란 사이노그램의 스케일 조정 방법의 흐름도이다.
실제의 양전자 방출 단층을 촬영하는 동안, 기계(즉, 양전자 방출 단층 촬영기)에서 몇 억 개의 광자가 발생하였는지는 정확하게 가늠될 수 없다. 따라서, 우선 충분한 양의 광자들을 사용하여 시뮬레이션을 연산하고, 시뮬레이션의 결과를 실제 측정 값과 비교함으로써 감마선 산란 사이노그램의 스케일이 조정될 수 있다.
단계(510)에서, 예컨대 CPU(110)에 의해, 기계(즉, 양전자 방출 단층 촬영기)에서 실제 측정된 사이노그램이 수신된다.
단계(520)에서, 예컨대 CPU(110)에 의해, 몬테카를로 시뮬레이션을 통해 획득된 프롬프트 사이노그램이 수신된다.
단계(530)에서, 예컨대 CPU(110)에 의해, 실제 측정된 사이노그램 및 프롬프트 사이노그램을 비교함으로써 양자 간의 오차를 최소화하는 스케일 상수가 계산된다.
프롬프트 사이노그램의 분포는 실제 측정된 사이노그램의 분포와 거의 일치하기 때문에, 상수가 계산된다.
실제 측정된 사이노그램은 기계에 의해 획득된 실제 데이터이므로, 산란을 모두 포함한다. 따라서, 실제 측정된 사이노그램은 프롬프트 사이노그램과 비교될 수 있다.
단계(540)에서, 예컨대 CPU(110)에 의해, 스케일 상수를 감마선 산란 사이노그램에 곱함으로써 감마선 산란 사이노그램의 스케일이 조정된다.
전술된 단계들(510 내지 540)을 통해 감마선 산란 사이노그램은 실제 측정된 사이노그램과 동일한 스케일을 가질 수 있다.
도 6은 본 발명의 일 예에 따른 검출기에 도달하기까지 광자의 이동에 따른 연산을 수행하는 방법을 나타내는 흐름도이다.
광자의 이동에 따른 연산은 GPU(130)에서 수행될 수 있다. GPU(130)의 코어(140)는 하나의 발생 위치에서 발생한 2 개의 광자들(즉, 광자 쌍)의 경로를 연산할 수 있다.
단계(610)에서, 각각의 코어(140)는 광자의 초기 발생 위치를 할당 받는다.
단계들(620 내지 690)에서, 각각의 코어(140)는 광자의 초기 경로를 생성한다. 초기 경로는 초기 발생 위치에서부터 임의의 방향으로의 경로를 의미한다. 또한, 각각의 코어(140)는 임의의 거리 및 산란 각도를 포함하는 경로를 생성하여, 생성된 경로에 따라 광자를 이동시키면서 연산할 수 있다.
임의의 방향으로의 경로, 임의의 거리 및 산란 각도와 같은, 랜덤 값들은 랜덤 넘버(random number) 발생기에 의해 생성될 수 있다. GPU(130)가 제공하는 랜덤 발생 함수를 사용함으로써 랜덤 값들이 생성될 수 있다.
단계(620)에서, 각각의 코어(140)는 광자의 할당 받은 발생 위치에서의 초기 이동 방향을 랜덤으로 생성한다.
단계(630)에서, 각각의 코어(140)는 광자의 이동 거리를 랜덤으로 생성한다. 즉, 각각의 코어(140)는 랜덤으로 결정된 이동 방향으로 얼마만큼 이동을 할 것인지를 랜덤으로 결정한다.
단계(635)에서, 각각의 코어(140)는 광자가 초기 이동 방향으로 이동 거리만큼 이동한 위치를 계산한다.
단계(640)에서, 각각의 코어(140)는 광자가 이동한 위치에서, 광자의 산란의 발생 여부를 결정한다.
코어(140)는 광자가 이동한 위치의 감쇄 계수가 경계 값 이하이면 산란이 발생하지 않은 것으로 결정할 수 있고, 이동한 위치의 감쇄 계수가 경계 값보다 더 크면 산란이 발생한 것으로 결정할 수 있다.
감쇄 계수는, 단층 촬영기에 의해 촬영된, 감쇄 계수의 3차원 영상을 통해 획득될 수 있다.
산란이 발생한 경우, 단계들(650 내지 660)이 실행된다. 산란이 발생하지 않은 경우 단계(570)이 실행된다.
단계(650)에서, 각각의 코어(140)는 산란의 각도를 랜덤으로 생성한다.
산란의 각도는 다음 단계에서의 광자의 이동 방향에 영향을 줄 수 있다.
단계(660)에서, 각각의 코어(140)는 산란의 콤프턴 산란(Compton Scattering) 값을 계산한다. 즉, 각각의 코어(140)는 산란의 콤프턴 산란에 따른 효과를 연산한다.
각각의 코어(140)는 클라인-니시나(Klein-Nishina) 공식을 사용함으로써 콤프턴 산란 값을 계산할 수 있다.
콤프턴 산란 값을 계산하기 위해 사용되는 수식은, 산란 각도에 의한 에너지 감소를 반영한다.
단계(670)에서, 각각의 코어(140)는 광자가 이동한 위치로 이동함에 따른 광자의 감쇄를 연산한다. 즉, 각각의 코어(140)는 광자가 지나는 경로에 해당하는 물체의 감쇄 계수(attenuation coefficient)들을 합할 수 있다.
광자의 감쇄는, 전술된 단층 촬영기에 의해 촬영된 감쇄 계수의 3차원 영상을 통해 계산될 수 있다. 즉, 광자의 감쇄는 코어(140)가 감쇄 계수의 3차원 영상에서 광자가 이동한 위치의 3차원 좌표에 해당하는 값을 획득함으로써 연산될 수 있다.
이 때, 코어(140)는 GPU(130)가 제공하는 3차원 선형 보간법을 사용함으로써 3차원 물체로부터 3차원 좌표에 해당하는 값을 독출하여 획득할 수 있다.
3차원 선형 보간법을 사용하기 위해, CPU(120)는 감마선 방출 재구성 영상 및 감쇠 재구성 영상을 GPU(130)의 3차원 텍스처 메모리를 연결할 수 있다. GPU(130)는 3차원 텍스처 메모리 연결을 사용하여 몬테카를로 시뮬레이션 시 3차원 선형 보간법을 제공할 수 있다. 따라서, 감쇄 연산의 속도가 현격히 증가될 수 있다.
단계(680)에서, 각각의 코어(140)는 광자가 검출기에 도달하였는지 확인한다.
단계(680)는, 각각의 코어(140)는 실제로 모델링한 기계의 사양에서 제공하는 지름 및 검출기 블록의 개수를 고려함으로써 검출기에 광자가 도달하였을 때의 광자의 위치를 계산할 수 있다.
광자가 검출기에 도달하지 않은 경우, 단계(620) 및 이후의 단계들(630 내지 680)이 다시 수행될 수 있다.
광자가 검출기에 도달한 경우, 단계(690)이 수행된다.
단계(690)에서, 각각의 코어(140)는 검출기에 광자가 도달하였을 때의 검출기의 위치를 CPU(120)로 송신한다. 또는, 각각의 코어(140)는 검출기에 광자가 도달하였을 때의 광자의 위치를 저장할 수 있다.
도 7은 본 발명의 일 실시예에 따른 하이브리드 CPU-GPU 구현을 사용하는 영상 재구성 방법을 나타내는 흐름도이다.
단계들(710, 720, 730 및 740)는 각각 도 2를 참조하여 전술된 단계(210, 220, 230 및 240)에 대응할 수 있다.
단계(720)는 CPU(120) 및 GPU(130)에 의해 수행될 수 있다. 예컨대 단계(720)에서, CPU(120)는 재구성된 영상 내에서 광자의 발생 위치를 결정할 수 있다. GPU(130)는 광자의 이동을 실행하기 위해 사용될 수 있다. GPU(130)는 몬테카를로 시뮬레이션을 사용함으로써 발생 위치에서 발생한 광자 쌍에 대한 2 개의 검출기 위치들을 잇는 3차원 측정선의 정보를 생성할 수 있다. 3차원 측정선의 정보는, 1) 3차원 측정선에 관련된 정보 또는 2) 3차원 측정선의 정보 및 기타 발생 위치에서 바생한 광자 쌍에 관련하여 사이노그램 리비닝을 위해 사용되는 정보를 포괄적으로 의미할 수 있다.
검출기 위치들은 광자 쌍의 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표일 수 있다. 여기서, 3차원 측정선의 정보는 상기의 3차원 측정선의 좌표를 의미할 수 있다.
단계(730)에서, CPU(120)는 3차원 측정선의 정보에 기반하여 사이노그램 리비닝(rebinning)을 수행할 수 있다. 여기서, 사이노그램 리비닝은 단계(720)에서 획득된 3차원 측정선의 정보를 사용함으로써 프롬프트 사이노그램 및 감마선 산란 사이노그램 중 하나 이상의 사이노그램을 생성하는 것을 의미할 수 있으며, 상기의 생성 중 일부의 과정을 의미할 수 있다
3차원 측정선의 정보를 생성하는 단계(720) 및 사이노그램 리비닝을 수행하는 단계(730)는 각각 CPU(120) 및 GPU(130)에 의해 병렬로 실행될 수 있다. 단계(720) 및 단계(730)은 CPU(120) 및 GPU(130)에 각각 별개로 할당될 수 있다. 단계(720) 및 단계(730)는 각각 특정한 계산을 되풀이하여(iteratively) 수행할 수 있다. 이전의 되풀이(iteration)에서의 계산 결과는 다음의 되풀이에서의 계산에 영향을 미치지 않을 수 있다.
단계(720)에서, 발생 위치는 복수 개일 수 있다. 즉, 서로 상이한 발생 위치를 갖는 복수 개의 광자 쌍들에 대해, 단계(720) 및 단계(730)가 수행될 수 있다. 단계(720)에서, GPU(130)는 복수 개의 발생 위치들 각각을 GPU(130)의 복수 개의 쓰레드들 각각에게 할당할 수 있다. 복수 개의 쓰레드들은 하나 이상의 코어(140)들에 의해 처리될 수 있다. 하나의 코어는 하나의 쓰레드를 처리할 수 있으며, 하나 이상의 코어(140)들에 의해 복수 개의 쓰레드들이 동시에 처리될 수 있다.
상술된 것과 같은 병렬 수행에 의해, CPU(120) 및 GPU(130)의 전체 자원이 효율적으로 사용될 수 있으며, CPU(120) 및 GPU(130) 간의 메모리 전송의 병목(bottleneck)이 회피(avoid)될 수 있다. 병렬 수행을 위해, CPU(120)에 대해 오픈 멀티-프로세싱(Open Multi-Processing; OpenMP)이 사용될 수 있고, GPU(120)에 대해 컴퓨트 유니파이드 디바이스 아키텍처(Compute Unified Device Architecthre; CUDA)가 사용될 수 있다.
도 8은 본 발명의 일 실시예에 따른 3D PET에서의 하이브리드 CPU-GPU 다중 산란 시뮬레이션의 동작 흐름도이다.
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)에 대응할 수 있다.
커널은 상수 메모리를 신속하게 접근할 수 있다. 따라서, 기하 파라미터는 상수 메모리 내에 저장될 수 있다. 여기서, 기하 파라미터는 지름(radius), 복셀(voxel) 및 검출기 크기를 포함할 수 있다.
단계(810)에서, CPU(120)는 테이블을 생성할 수 있다. 테이블은 방출 좌표(coordinate) 테이블일 수 있다. 방출 좌표 테이블은 방출 위치(position) 및 방사성트레이셔(radiotracer) 영상으로부터의 상기의 방출 위치의 세기(intensity)를 포함할 수 있다.
테이블을 생성하면, CPU(120)는 광자의 초기의 발생 위치를 생성할 수 있다.
단계(820)에서, GPU(130)는 광자 쌍을 런치(launch)할 수 있다. 여기서, 광자 쌍은 각각 방향의 단위 벡터가 나타내는 방향을 향해 런치될 수 있다. 단계(820)는 GPU(130)에서 수행되는 초기화를 나타낼 수 있다.
GPU(130)는 GPU(130)의 쓰레드(thread) i를 각 발생 위치 qi에 할당할 수 있다. 여기서, i는 1 이상 n 이하의 정수일 수 있다. n은 GPU(130)가 처리할 수 있는 쓰레드들의 최대 개수일 수 있다. 즉, GPU(130)는 각각 발생 위치를 할당받은 하나 이상의 쓰레드들을 동작시킬 수 있다.
상술된 쓰레드의 발생 위치로의 할당은 도 6을 참조하여 전술된 단계(610)에 대응할 수 있다.
GPU(130)는 각 쓰레드마다 상이한 시드(seed)를 사용하는, CUDA에 의해 지원되는 균일(uniform) 난수 생성기(random number generator; RNG)를 사용함으로써 초기의 방향의 단위 벡터(unit vector) u0을 정의할 수 있다. 여기서, RNG는 2190보다 큰 주기(period)를 갖는 배타적논리합쉬프트(xorshift) RNG일 수 있다.
광자 전파(propagation)의 맞은편의(opposite) 2 개의 단위 벡터들은 u로서 계산될 수 있다. 여기서, u = k-u0이고, k = -1, 1일 수 있다.
여기서, 방출 위치 p는 하기의 수학식 1과 같이 정의될 수 있다.
상술된 2 개의 단위 벡터들 각각의 계산은 도 6을 참조하여 전술된 단계(620)에 대응할 수 있다.
단계(830)에서, GPU(130)는 광자 쌍들 각각의 산란 길이를 계산할 수 있다. 단계(830)는 도 6을 참조하여 전술된 단계(630)에 대응할 수 있다.
여기서, 산란 길이는 방향 경로의 길이(direction path length) l를 의미할 수 있다. 방향 경로의 길이 l은 하기의 수학식 2에 기반하여 계산될 수 있다.
여기서, 는 객체의 재료(material)의 감쇄 계수일 수 있다. 는 범위 [0, 1] 내의 균등분포(uniform distribution)일 수 있다. IA가 텍스처 메모리를 나타낼 때, 수학식 2의 는 IA(p)로 대체될 수 있다.
단계(835)에서, GPU(130)는 광자 쌍의 2 개의 광자들 각각의 이동 및 흡수를 계산할 수 있다. 여기서, 흡수는 레이를 따르는(along) 광전의(photoelectric) 흡수일 수 있다.
고속 삼선형 보간(fast trilinear interpolation)을 제공하는 GPU(130)의 텍스처(texture) 메모리를 이용함으로써 감쇄(attenuation) 영상 내의 정의된 레이(ray)를 따르는(along) 선적분(line integral)이 계산될 수 있다. GPU(130)는 상기의 선적분을 계산함으로써 광자 쌍들 각각의 위치를 갱신할 수 있다. 여기서, 텍스처 메모리 내의 감쇄 맵은 감쇄 영상을 나타낼 수 있다.
광자가 뷰의 필드(Field of View; FoV)의 외부에 위치하게 될 때, GPU(130)는 상기의 적분을 중단할 수 있다.
단계(840)에서, GPU(130)는 광자 쌍의 2 개의 광자들 각각에 대한 콤프턴 산란을 계산할 수 있다. 단계(840)는 도 6을 참조하여 전숭된 단계들(640, 650, 660 및 670) 에 대응할 수 있다.
광자가 여전히 객체 내에 있을 경우, GPU(130)는 클라인-니시나 공식에 기반하여 콤프턴 산란을 계산할 수 있다. 여기서, GPU(130)는 균일 난수 [0, 1]을 사용하여 산란의 각도 를 정의할 수 있다.
또한, GPU(130)는 콤프턴 산란 후의 광자의 에너지를 검사할 수 있다. 만약, 광자 쌍의 2 개의 광자들의 에너지가 저 레벨 판별자(Low Level Discriminator; LLD)보다 더 낮다면, GPU(130는 광자 쌍을 거절(reject)할 수 있다. 광자 쌍의 거절은, 광자 쌍에 대한 연산을 중단(break)하고, 상기의 광자 쌍을 사이노그램 리비닝을 위해 사용하지 않는 것을 의미할 수 있다.
광자 쌍의 2 개의 광자들의 에너지가 LLD 이상이면, GPU(130)는 2 개의 광자들 각각의 전파 경로를 따름으로써 전술된 단계들(830, 835, 840, 845 및 850)을 계속할 수 있다.
단계(680)에서, GPU(130)는 광자 쌍이 검출기에 도달하였는지 여부를 검사할 수 있다. 단계(680)는 도 6을 참조하여 전술된 단계(680)에 대응할 수 있다.
여기서, 광자 쌍이 검출기에 도달하였다는 것은 광자 쌍의 2 개의 광자들이 FoV의 외부에 위치한다는 것을 의미할 수 있다. 또한, 광자 쌍이 검출기에 도달하였을 때, 검출기에 도달한 2 개의 광자들의 에너지는 LDD 이상일 수 있다.
광자 쌍이 검출기에 도달하지 않은 경우, 단계(850)에서 GPU(130)는 산란 벡터를 계산할 수 있다.
여기서, 산란 벡터의 계산은 산란 플래그(flag) 및 단위 벡터 u의 방향을 갱신하는 것을 의미할 수 있다. 산란 플래그를 사용함으로써 콤프턴 산란의 이벤트(scattering event)가 기록될 수 있다.
단계(850)가 수행된 후, 단계(830)가 반복될 수 있다.
광자 쌍이 검출기에 도달한 경우, 단계(860)가 수행될 수 있다.
단계(860)에서, 광자 쌍이 검출기에 도달한 후, GPU(130)는 2 개의 검출기 위치들을 LoR로 변환할 수 있다. GPU(130)는 2 개의 검출기 위치들을 계산할 수 있으며, 검출기 크로스-섹션(cross-section)들을 계산할 수 있다. 2 개의 검출기 위치들을 LoR로 변환함으로써 LoR이 계산될 수 있다.
전술된 3차원 측정선의 정보는, LoR, 2 개의 검출기 위치들 및 검출기 크로스-섹션들을 포함할 수 있다.
단계(870)에서, CPU(120)는 다운샘플된 사이노그램으로의 변환을 수행할 수 있다.. 여기서, 다운샘플된 사이노그램으로의 변환은, 양자의 이동에 대응하는 사이노그램 리비닝을 의미할 수 있다. 상기의 사이노그램 리비닝을 위해 CPU(120)는 단계(860)에서 계산된 정보를 사용할 수 있다.
단계(875)에서, CPU(120)는 종료 여부를 검사할 수 있다. 계산된 광자 쌍이 남은 경우, 단계(820)가 재수행될 수 있다. 모든 광자 쌍의 이동이 계산된 경우, 단계(880)가 수행될 수 있다.
단계(880)에서, CPU(120)는 산란 사이노그램을 업샘플할 수 있다.
CPU(120)는 산란 사이노그램을 업샘플하기 위한 스케일링 팩터를 계산할 수 있고, 산란 사이노드램을 획득할 수 있다.
GPU(130)에 의해 계산된 양자 이동 및 CPU(120)에 의한 사이노그램 리비닝 후, CPU(120)는 원래의 사이노그램 크기로 사이노그램을 업샘플링할 수 있다.
상기의 업샘플링을 위해 GPU(130)가 사용될 수 있다. 예컨대, 빠른 업스케일링을 위해, GPU(130)에 의해 지원되는 텍스처 메모리를 사용하는 고속 선형 보간이 사용될 수 있다. 텍스터 메모리를 사용하는 공간적인 평탄화(spatial smoothing)는 대규모의 가상 검출기 배열 덕분에 계산적으로 효율적일 수 있다.
최종적으로, CPU(120)는 MSS로부터의 시뮬레이트된(simulated) 프롬프트(prompt)를 사용함으로써 최소 오차 제곱법(least square fitting)을 계산할 수 있고, 스케일링 팩터(scaling factor)를 계산하기 위한 측정된 사이노그램을 계산할 수 있다. 또한, 측정의 산란 부분(scatter portion)보다 프롬프트 사이노그램이 직접적으로 비교될 수 있다.
하기의 코드 1은 전술된 하이브리드 CPU-GPU 다중 산란 시뮬레이션을 위한 CPU(120)에서 실행되는 슈도(pseudo) 코드를 나타낸다.
[코드 1]
하기의 코드 2는 전술된 하이브리드 CPU-GPU 다중 산란 시뮬레이션을 위한 GPU(130)에서 실행되는 슈도(pseudo) 코드를 나타낸다.
[코드 2]
도 9는 본 발명의 일 예에 따른 다중 테스크들의 연속적인 수행을 설명한다.
GPU(130) 내의 쓰레드들의 총 개수는 제한된다. 따라서, 모든 테스크들이 단일한 실행(single execution)에 할당되지 못할 수 있다.
다중 산란 시뮬레이션을 위한 테스크들은 하나 이상의 테스크들로 분리(divide)될 수 있다. 하나 이상의 테스크들 각각은 테스크는 하이브리드 CPU 및 GPU 계산을 위해 연속적으로 스케쥴될 수 있다.
GPU(130) 및 CPU(120)는 각각 n 개의 테스크들을 순차적으로 처리할 수 있다. 여기서, n은 1 이상의 정수일 수 있다.
CPU(120) 및 GPU(130)를 최대한으로 활용하기 위해, 2 개의 잡(job)들이 분리될 수 있다. 2 개의 잡들은 각각 광자 이동을 수행하는 테스크 및 사이노그램 변환을 수행하는 테스크로 표현될 수 있다.
도 9에서, GPU(130)가 처리하는 광자 이동을 수행하는 n 개의 테스크들이 도시되었고, CPU(120)가 처리하는 사이노그램 변환을 수행하는 n 개의 테스크들이 도시되었다. 하나의 되풀이에서, GPU(130) 및 CPU(120)는 각각 하나의 테스크를 처리할 수 있다. 도 9에서, 점선 사이의 공간이 하나의 되풀이를 나타낼 수 있다. 특정한 되풀이에서의 GPU(130)의 테스크의 계산 결과가, 다음의 되풀이에서의 CPU(120)의 테스크에서 사용될 수 있다.
단계(720)의 복수 개의 발생 위치들은 복수 개의 그룹(group)들로 분리될 수 있고, 복수 개의 그룹들은 각각 3차원 측정선의 정보를 생성하는 단계(720) 및 사이노그램 리비닝을 수행하는 단계(730)의 되풀이(iteration)들에 의해 처리될 수 있다. 복수 개의 그룹들은 순차적으로 처리될 수 있다. 복수 개의 테스크들은 각각 복수 개의 그룹들 중 하나의 그룹을 처리할 수 있다.
즉, 복수 개의 발생 위치들이 n 개의 그룹들로 분리될 수 있고, n 개의 그룹들이 n+1 회의 되풀이들에 의해 처리될 수 있다. k 번째의 되풀이에서 처리된 발생 위치들에 대한 3차원 측정선들의 정보는, k+1 번-의 되풀이에서의 사이노그램 리비닝에서 사용될 수 있다. 여기서, k는 1 이상 n+1 이하의 정수일 수 있다.
CPU(120) 및 GPU(130) 간의 동시 실행들을 위해, 이벤트 질의(event query) 및 비동기적인 메모리 전송이 사용될 수 있다. GPU(130)는 프로그램 내에서의 임의의 지점들에서의 이벤트들을 기록할 수 있고, 상기의 이벤트들이 완료되었을 때 이벤트들에 관련된 질의를 할 수 있다. 동기적인 함수(function)가 호출되었을 때, 제어는 함수의 완료를 대기할 수 있다. 반면, 비동기적인 함수가 호출되었을 때, 제어는 함수의 완료와 무관하게 계속될 수 있다. 따라서, 비동기적인 메모리 전송이 사용될 수 있다.
특히, GPU(130)의 테스크의 실행 후, 비동기적인 메모리 전송 함수가 호출될 수 있고, 상기의 전송의 완료와 무관하게 다음의 GPU(130)의 테스크가 시작될 수 있다. 3차원 측정선의 정보는 비동기적인 메모리 전송을 통해 GPU(130)로부터 CPU(120)로 전송될 수 있다. GPU(130)는 이벤트 쿼리를 항시적으로(persistently) 검사함으로써 전송의 완료를 대기할 수 있다.
GPU(130)가 양자 이동을 수행하는 중, 메모리 전송은 완료될 수 있다. CPU(120)는 OpenMP를 사용하여 상기의 양자 이동에 대응하는 사이노그램 리비닝을 계산할 수 있다.
상술된 아키텍처는 CPU(120)의 활용을 최대화할 수 있고, 감마선 산란 시뮬레이션에 있어서 전반적인 성능을 크게 향상시킬 수 있다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 영상 재구성 장치
110: 수신부
120: CPU
130: GPU
140: 코어
110: 수신부
120: CPU
130: GPU
140: 코어
Claims (18)
- 물체를 측정하여 생성된 실제 측정된 사이노그램을 수신하는 단계;
상기 물체에서 감마선이 발생하는 초기 발생 위치들에 대한 몬테카를로 시뮬레이션을 수행하는 단계 - 상기 몬테카를로 시뮬레이션은 GPU를 사용함으로써 광자들의 초기 발생 위치들 별로 병렬로 수행됨 -;
상기 몬테카를로 시뮬레이션에 의해 생성된 산란된 광자에 대한 정보에 기반하여 감마선 산란이 보정된 감마선 산란 사이노그램을 생성하는 단계; 및
상기 감마선 산란 사이노그램에 기반하여 재구성된 영상을 생성하는 단계
를 포함하는, 영상 재구성 방법. - 재구성된 영상 내에서 광자의 발생 위치를 결정하는 단계;
몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계;
2 개의 검출기 위치들 및 이동 중 변화된 값들을 계산하는 단계 - 상기 2 개의 검출기 위치들은 상기 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이고, 상기 이동 중 변화된 값들은 상기 2 개의 광자들 각각이 물체를 통과하고 이동한 동안에 변화된 값들임 -;
상기 2 개의 검출기 위치들을 잇는 3차원 측정선을 계산하는 단계;
상기 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성하는 단계; 및
상기 감마선 산란 사이노그램의 스케일을 조정하는 단계
를 포함하는, 감마선 산란 사이노그램 생성 방법. - 제2항에 있어서,
상기 발생 위치는 복수 개이고,
상기 복수 개의 발생 위치들 각각은 GPU의 복수 개의 코어들 중 하나의 코어에게 할당되고,
상기 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계 및 상기 2 개의 검출기 위치들 및 이동 중 변화된 값들을 계산하는 단계는 상기 복수 개의 코어들에 의해 병렬로 수행되는, 감마선 산란 사이노그램 생성 방법. - 제3항에 있어서,
상기 재구성된 영상 내에서 광자의 발생 위치를 결정하는 단계는,
상기 재구성 영상 내에서 값을 갖는 위치들을 상기 복수 개의 발생 위치들로 간주하는 단계; 및
상기 복수 개의 발생 위치들을 포함하는 테이블을 생성하는 단계
를 포함하고,
상기 GPU의 상기 복수 개의 코어들 각각은 상기 테이블 내의 코어의 번호에 기반하여 결정된 하나 이상의 발생 위치들을 할당 받는, 감마선 산란 사이노그램 생성 방법. - 제2항에 있어서,
상기 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계는,
GPU의 코어가 상기 발생 위치를 할당 받는 단계;
상기 코어가 광자의 상기 할당 받은 발생 위치에서의 초기 이동 방향을 랜덤으로 생성하는 단계;
상기 코어가 상기 광자의 이동 거리를 랜덤으로 생성하는 단계;
상기 코어가 상기 광자가 상기 초기 이동 방향으로 상기 이동 거리만큼 이동한 위치를 계산하는 단계;
상기 코어가 상기 이동한 위치로의 이동에 따른 상기 광자의 감쇄를 연산하는 단계; 및
상기 광자가 상기 검출기에 도달하였는지 확인하는 단계;
를 포함하는, 감마선 산란 사이노그램 생성 방법. - 제5항에 있어서,
상기 코어가 상기 이동한 위치로의 이동에 따른 상기 광자의 감쇄를 연산하는 단계는,
상기 광자의 감쇄는 상기 코어가 감쇄 계수의 3차원 영상에서 상기 이동한 위치의 3차원 좌표에 해당하는 값을 획득함으로써 연산되고,
상기 코어는 상기 GPU가 제공하는 3차원 선형 보간법을 사용함으로써 상기 3차원 좌표에 해당하는 값을 독출하여 획득하는, 감마선 산란 사이노그램 생성 방법. - 제5항에 있어서,
상기 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하는 단계는,
상기 코어가 상기 이동한 위치에서의 상기 광자의 산란의 발생 여부를 결정하는 단계;
상기 산란이 발생한 경우, 상기 코어가 상기 산란의 산란 각도를 랜덤으로 생성하는 단계; 및
상기 산란이 발생한 경우, 상기 코어가 상기 산란의 콤프턴 산란 값을 계산하는 단계
를 더 포함하는, 감마선 산란 사이노그램 생성 방법. - 제7항에 있어서,
상기 코어가 상기 이동한 위치에서의 상기 광자의 산란의 발생 여부를 결정하는 단계는,
상기 코어가 상기 이동한 위치의 감쇄 계수가 경계 값 이하이면 상기 산란이 발생하지 않은 것으로 결정하고, 상기 이동한 위치의 상기 감쇄 계수가 상기 경계 값보다 더 크면 상기 산란이 발생한 것으로 결정하는 단계
를 포함하는, 감마선 산란 사이노그램 생성 방법. - 제2항에 있어서,
상기 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성하는 단계는,
상기 3차원 측정선을 사이노그램 형식으로 변환하는 단계;
상기 사이노그램 형식으로 변환된 3차원 측정선을 프롬프트 사이노그램에 저장하는 단계; 및
상기 2 개의 광자들이 산란이 된 광자인 경우 상기 사이노그램 형식으로 변환된 3차원 측정선을 상기 감마선 산란 사이노그램에 저장하는 단계
를 포함하는, 감마선 산란 사이노그램 생성 방법. - 제9항에 있어서,
상기 3차원 측정선을 사이노그램 형식으로 변환하는 단계는,
상기 3차원 측정선을 X-Y 방향 및 Z 방향의 벡터로 구분하는 단계; 및
상기 벡터에 기반하여 상기 3차원 측정선을 상기 사이노그램 형식으로 변환하는 단계
를 포함하는, 감마선 산란 사이노그램 생성 방법. - 제2항에 있어서,
상기 감마선 산란 사이노그램의 스케일을 조정하는 단계는,
실제 측정된 사이노그램 및 상기 프롬프트 사이노그램 간의 오차를 최소화하는 스케일 상수를 계산하는 단계; 및
상기 스케일 상수를 상기 감마선 산란 사이노그램에 곱함으로써 상기 감마선 산란 사이노그램의 스케일을 조정하는 단계
를 포함하는, 감마선 산란 사이노그램 생성 방법. - 물체를 측정하여 생성된 실제 측정된 사이노그램을 수신하는 수신부;
실제 측정된 사이노그램을 사용하여 제1 재구성된 영상을 생성하는 중앙 처리 장치(Central Processing Unit; CPU); 및
상기 물체에서 감마선이 발생하는 초기 발생 위치들에 대한 몬테카를로 시뮬레이션을 수행하는 그래픽 처리 장치(Graphics Processing Unit; GPU); - 상기 GPU는 상기 몬테카를로 시뮬레이션을 하나 이상의 코어들을 사용함으로써 광자들의 초기 발생 위치들 별로 병렬로 수행함 -
을 포함하고,
상기 CPU는 상기 몬테카를로 시뮬레이션에 의해 생성된 산란된 광자에 대한 정보에 기반하여 감마선 산란이 보정된 사이노그램을 생성하고, 상기 감마선 산란이 보정된 사이노그램에 기반하여 재구성된 영상을 생성하는, 영상 재구성 장치. - 재구성된 영상 내에서 광자의 발생 위치를 결정하고, 2 개의 검출기 위치들을 잇는 3차원 측정선을 계산하고, 상기 3차원 측정선에 기반하여 프롬프트 사이노그램 및 감마선 산란 사이노그램을 생성하고, 상기 감마선 산란 사이노그램의 스케일을 조정하는 CPU; 및
몬테카를로 시뮬레이선을 사용함으로써 상기 발생 위치에서 발생한 2 개의 광자들의 이동을 계산하고, 상기 2 개의 검출기 위치들 및 이동 중 변화된 값들을 계산하는 GPU - 상기 2 개의 검출기 위치들은 상기 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이고, 상기 이동 중 변화된 값들은 상기 2 개의 광자들 각각이 물체를 통과하고 이동한 동안에 변화된 값들임 -;
를 포함하는, 감마선 산란 사이노그램 생성 장치. - 제13항에 있어서,
상기 발생 위치는 복수 개이고,
상기 복수 개의 발생 위치들 각각에서 발생한 2 개의 광자들에 대하여, 상기 GPU의 복수 개의 코어들은 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치들 각각에서 발생한 2 개의 광자들의 이동을 병렬로 계산하고, 상기 2 개의 검출기 위치들 및 이동 중 변화된 값들을 병렬로 계산하는, 감마선 산란 사이노그램 생성 장치. - CPU가 재구성된 영상 내에서 광자의 발생 위치를 결정하는 단계;
GPU가 몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 광자 쌍에 대한 2 개의 검출기 위치들을 잇는 3차원 측정선의 정보를 생성하는 단계 - 상기 검출기 위치들은 상기 광자 쌍의 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들임 -; 및
상기 CPU가 상기 3차원 측정선의 정보에 기반하여 사이노그램 리비닝을 수행하는 단계
를 포함하고,
상기 발생 위치는 복수 개이며,
상기 GPU는 상기 복수 개의 발생 위치들 각각을 상기 GPU의 복수 개의 쓰레드들 각각에게 할당하고,
상기 3차원 측정선의 정보를 생성하는 단계 및 상기 사이노그램 리비닝을 수행하는 단계는 각각 상기 CPU 및 상기 GPU에 의해 병렬로 실행되는, 사이노그램 리비닝 방법. - 제15항에 있어서,
상기 복수 개의 발생 위치들은 복수 개의 그룹들로 분리되고,
상기 복수 개의 그룹들은 각각 상기 3차원 측정선의 정보를 생성하는 단계 및 상기 사이노그램 리비닝을 수행하는 단계의 되풀이(iteration)들에 의해 처리되는, 사이노그램 리비닝 방법. - 제15항에 있어서,
상기 3차원 측정선의 정보는 비동기적인 메모리 전송을 통해 상기 GPU로부터 상기 CPU로 전송되는, 사이노그램 리비닝 방법. - 재구성된 영상 내에서 광자의 발생 위치를 결정하는, 3차원 측정선의 정보에 기반하여 사이노그램 리비닝을 수행하는 CPU; 및
몬테카를로 시뮬레이션을 사용함으로써 상기 발생 위치에서 발생한 광자 쌍에 대한 2 개의 검출기 위치들을 잇는 상기 3차원 측정선의 정보를 생성하는 GPU
를 포함하고,
상기 검출기 위치들은 상기 광자 쌍의 2 개의 광자들 각각이 검출기에 도달할 때의 검출기 좌표들이고,
상기 발생 위치는 복수 개이며,
상기 GPU는 상기 복수 개의 발생 위치들 각각을 상기 GPU의 복수 개의 쓰레드들 각각에게 할당하고,
상기 3차원 측정선의 정보를 생성하는 단계 및 상기 사이노그램 리비닝을 수행하는 단계는 각각 상기 CPU 및 상기 GPU에 의해 병렬로 실행되는, 사이노그램 생성 장치.
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 |
---|---|---|---|
KR1020110043725 | 2011-05-11 | ||
KR20110043725 | 2011-05-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120127214A KR20120127214A (ko) | 2012-11-21 |
KR101283266B1 true KR101283266B1 (ko) | 2013-07-17 |
Family
ID=47512420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120041100A KR101283266B1 (ko) | 2011-05-11 | 2012-04-19 | Gpu를 이용한 양전자 방출 단층 촬영 영상에서의 몬테카를로 시뮬레이션 감마선 산란 추정 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101283266B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101613391B1 (ko) | 2015-02-11 | 2016-04-19 | (의료)길의료재단 | 치료 계획용 ct 영상을 이용한 산란선 제거 방법 및 시스템 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101527656B1 (ko) * | 2013-12-12 | 2015-06-10 | 한국과학기술원 | 의료 영상에서 비강체 영상 정합을 이용한 점상 강도 분포 함수를 보간하는 방법 및 시스템 |
KR101531755B1 (ko) * | 2013-05-10 | 2015-06-25 | 한국과학기술원 | 패치 기반 최소 랭크 정규화를 이용한 영상 재구성 방법 및 장치 |
KR102039472B1 (ko) * | 2018-05-14 | 2019-11-01 | 연세대학교 산학협력단 | 컴퓨터 단층촬영 영상 재구성 장치 및 방법 |
CN117272687B (zh) * | 2023-11-20 | 2024-01-26 | 中国海洋大学 | 一种水下光学成像蒙特卡洛矢量化异构并行优化方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070085387A (ko) * | 2004-12-01 | 2007-08-27 | 트라이엄프,오퍼레이팅애즈어조인트벤쳐바이더거버너스 오브더유니버시티오브알버타더유니버시티오브브리티시콜롬비아 칼레톤유니버시티시몬프레이저유니버시티더유니버시티 오브토론토앤드더유니버시티오브빅토리아 | 양전자 방출 단층 촬영에서의 실제 동시 발생 사건들 선택시스템 |
KR20090046765A (ko) * | 2009-03-30 | 2009-05-11 | 중앙대학교 산학협력단 | 물체 구성의 3차원 영상화 방법 및 장치 |
-
2012
- 2012-04-19 KR KR1020120041100A patent/KR101283266B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070085387A (ko) * | 2004-12-01 | 2007-08-27 | 트라이엄프,오퍼레이팅애즈어조인트벤쳐바이더거버너스 오브더유니버시티오브알버타더유니버시티오브브리티시콜롬비아 칼레톤유니버시티시몬프레이저유니버시티더유니버시티 오브토론토앤드더유니버시티오브빅토리아 | 양전자 방출 단층 촬영에서의 실제 동시 발생 사건들 선택시스템 |
KR20090046765A (ko) * | 2009-03-30 | 2009-05-11 | 중앙대학교 산학협력단 | 물체 구성의 3차원 영상화 방법 및 장치 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101613391B1 (ko) | 2015-02-11 | 2016-04-19 | (의료)길의료재단 | 치료 계획용 ct 영상을 이용한 산란선 제거 방법 및 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR20120127214A (ko) | 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 | |
Markiewicz et al. | NiftyPET: a high-throughput software platform for high quantitative accuracy and precision PET imaging and analysis | |
US9189870B2 (en) | Method, computer readable medium and system for tomographic reconstruction | |
KR101283266B1 (ko) | Gpu를 이용한 양전자 방출 단층 촬영 영상에서의 몬테카를로 시뮬레이션 감마선 산란 추정 방법 및 장치 | |
US9111381B2 (en) | Shift-varying line projection using graphics hardware | |
Liu et al. | GPU-based branchless distance-driven projection and backprojection | |
Kösters et al. | EMRECON: An expectation maximization based image reconstruction framework for emission tomography data | |
Pedemonte et al. | GPU accelerated rotation-based emission tomography reconstruction | |
Ravi et al. | FPGA as a hardware accelerator for computation intensive maximum likelihood expectation maximization medical image reconstruction algorithm | |
Choi et al. | Acceleration of EM-based 3D CT reconstruction using FPGA | |
TW201514919A (zh) | 電腦斷層影像重建方法 | |
Nguyen et al. | GPU-accelerated 3D Bayesian image reconstruction from Compton scattered data | |
Liu et al. | GPU-based acceleration for interior tomography | |
CN110811667B (zh) | 一种基于gpu加速的高精度pet重建方法及装置 | |
Bexelius et al. | Implementation of GPU accelerated SPECT reconstruction with Monte Carlo-based scatter correction | |
JP2010204755A (ja) | 画像処理装置、画像再構成システム、画像処理方法およびプログラム | |
KR101128566B1 (ko) | Gpu를 이용한 양전자 방출 단층 촬영 영상에서의 감마선 산란 추정 방법 및 장치 | |
Frandes et al. | Image Reconstruction Techniques for Compton Scattering Based Imaging: An Overview [Compton Based Image Reconstruction Approaches] | |
Zhao et al. | Fast projection algorithm for voxel arrays with object dependent boundaries | |
Beasley et al. | Fast simulation of proton induced X-ray emission tomography using CUDA | |
Teimoorisichani et al. | A cube-based dual-GPU list-mode reconstruction algorithm for PET imaging | |
KR101082629B1 (ko) | Gpu를 이용한 양전자 방출 단층 촬영 영상 병렬 복원 방법 및 장치 | |
Saxena et al. | A parallel GPU algorithm for mutual information based 3D nonrigid image registration | |
Dimmock et al. | An OpenCL implementation of pinhole image reconstruction |
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 |