[출처 - 강의] 컴퓨터비전, 머신러닝, 딥러닝을 이용한 의료영상분석 - DGIST 박상현 교수
1. Introduction to medical image analysis
4. PACS/DICOM/Visualization
- PACS (Picture Archiving and Communication System)
의료 장비에서 취득한 Acquisition Modlity(e.g MRI, CT, X-ray)를 DICOM image로 변환해 PACS에 저장한다. (중앙 서버)
PACS와 연결된 개인 호스트에서 DICOM image를 시각화해서 볼 수 있다.
- DICOM (Digital Imaging and COmmunications in Medicine)
- RSNA 방사선 학회에서 1990년대에 지정한 medical image 국제 표준
- Format of medical images with clinical information
`+) 통신을 위한 정보
Medical Image Format
- Dimensions (x,y,z): 영상의 크기
- Voxel Spacing (x,y,z)
- Origin (x,y,z)
* Voxel: 3차원 공간에서 정규 격자 단위의 값 (volume + pixel)
위 항목들을 포함한 여러 정보가 헤더파일에 저장되어 있다. (DICOM 경우 파일 안에 포함되어 있음)
이런 정보들은 Preprocessing, Registration에 필요하다.
Medical Image Visualization
PACS 시스템에서 3D 영상을 가져와 시각화할 수 있는 visualization tool이 존재한다.
- ITK-SNAP
- 3D Slicer
- ImageJ
- Q-path
5. Image acquisition
Image를 얻기 위해서는 light source와 객체에서 반사된 빛을 받아들이는 sensor가 필요하다.
가시광선으로 얻을 수 있는 이미지
- Endoscopy (내시경): 내시경 앞부분에 light source, sensor가 붙어있다.
- Micropscopy (현미경): 조직을 채취해서 검사
방사선으로 얻을 수 있는 이미지
X-ray
X-tube(light source)에서 나온 X-ray가 조직을 통과하면서 투과율(X-ray intensity)에 따라 image를 구성한다.
Detector는 X-ray를 전기 신호로 변환해준다.
CT (Coputed Tomography)
Endoscopy, Microscopy, X-ray는 2D image였다. CT는 3D image이다.
X-ray와 비슷한 원리를 사용해 여러 장의 2D image를 얻고, 여러 이미지들을 컴퓨팅 작업을 통해 한 장의 3D image로 reconstruction 한다.
(1D signal을 filtering 한 후에 신호들을 합해주면 더 선명한 reconstructing image를 얻을 수 있음)
- CT에서 이슈
- X-ray dose는 줄이고 3D reconstructing image의 resolution은 높이는 방법
PET (Positron Emission Tomography, 양전자)
X-ray는 광원이 몸 밖에 위치하는 반면, PET는 방사선 물질을 몸에 주입해서, 몸에서 나오는 방사선을 감지해서 image를 얻는다.
Positron을 몸에 주입해서 체내 전자와 만나 gamma-ray가 생성된다. 생성된 gamma-ray가 양방향으로 나와 Detector에서 감지하게 된다.
암을 조기 진단하는 데 사용
- PET에서 이슈
- 정확한 structure를 확인하기는 어렵다.
MRI (Magnetic Resonance Imaging)
* magnetic resonance: 자기 공명
체내에 존재하는 수소 원자핵에 강한 magnetic field(자기장, e.g. 1.5T, 3T, 7T scanner)를 걸어주면 수소 원자핵이 특정 방향을 바라보면서 회전하게 된다. (회전 속도는 자기장으로 결정됨) 그리고 회전 속도와 동일한 주파수의 RF pulse를 주면 공명 파장이 발생한다.
공명이 발생하면 주던 RF pulse를 끊어준다. 그럼 RF pulse로 생긴 에너지는 사라지고 여전히 magnetic field는 걸려있어 수소 원자핵이 원래 방향으로 돌아가게 된다(receive coil의 X축 값 감소, Z축 값 증가).
이때 Z축의 값이 일정 값에 도달하면 그때 image를 생성한다. => T1-weighted image
또는 X축의 값이 일정 수준으로 낮아지면 그때 image를 생성한다. => T2-weighted image
(어떤 방향에서 imaging 하느냐에 따라 다른 image를 얻을 수 있다)
- MRI의 특징
- MRI는 Tissue의 성질에 따라 값의 증가(감소) 속도가 다르다. 이런 특성을 활용해 tissue 별로 imaging 할 수 있다.
- 서로 다른 타입의 tissue에 다른 contrast를 줄 수 있다. (Soft tissue imaging에 유리)
- 공명은 몸에 유해하지 않음
- CT에 비해 영상을 얻는데 오래 걸림
- MRI 장치 구성요소
- Radio frequency coils
- magnet
- scanner
- Gradient coils**: 몸의 부위별로 자기장의 gradient를 다르게 주어 부위별로 수소 원자핵의 회전 속도에 차이를 준다. (원하는 부위의 신호만 추출 가능)
- Patient table
Imaging 기법 비교
Pros | Cons | |
CT | - Good for imaging of microfracture, cerebral hemorrhage, and calcification - Short image acquisition time |
- Radiation exposure - Contrast media in dangerous for renal failure patients |
MRI | - No radiation exposure - Good for imaging of soft tissues(muscle, ligament, brain verves) - Detecting cancers in soft tissues |
- Long acquisition time - Expensive |
PET | - Studying metabolic functions in patients - Detecting disease brefore changes in the anatomy become apparent |
- Radiation exposure - Require cyclotrons which is an expensive machine that creates the radioisotopes |
2. Medical Image Segmentation (1)
1. Segmenation
영상을 분할하는 기법
Conventional methods | Deep Learning methods | |
Segmenation | Thresholding Region growing Graph cut Active contour model Active shape model (학습 기반) |
FCN U-Net DeepLab (전부 학습 기반) |
2. Otsu Thresholding
Thresholding
임계값(threshold) 보다 작거나 큰 값을 추출하는 기법
thresold 값을 어떻게 정의하느냐에 따라 segmenation의 결과가 달라지게 된다.
일반적으로 manual로 정의하지만, 자동으로 정해주는 Otsu Thresolding 기법이 있다.
Otsu Thresholding
background와 foreground의 variance값을 최소화하는 threshold를 찾음
$$\sigma_w^2 = W_b\cdot\sigma_b^2+w_f\cdot\sigma_f^2$$
- 단점: 분산을 구하는데 오래 걸린다.
그래서 클래스 간의 variance를 최대화하는 threshold를 찾음
$$\sigma_B^2 = \sigma^2+\sigma_w^2 = W_b(\mu_b - \mu)^2+(\mu_f-\mu)^2 $$
$$=\mu^2(W_b + W_f) -2\mu(w_b\mu_b + W_f\mu_f) + W-b\mu_b^2+W_f\mu_f^2$$
$$=\mu^2(W_b + W_f-2)$$
weight의 합은 1이기 때문에
$$=-\mu^2$$
앞서 mu의 식을 알고 있기 때문에 이를 대입하면
$$\mu = w_b\mu_b + W_f\mu_f$$
$$-\mu^2=-(W_b^2\mu_b^2+W_f^2\mu_f^2+2W_bW_f\mu_b\mu_f)$$
$$=W_bW_f(\mu_b-\mu_f)^2$$
최종적으로 식을 얻게 된다. background의 평균값과 foreground의 평균값, weight를 구해서 위 식이 최대가 되는 threshold를 찾게 된다.
- Within Class variance
$$\sigma_W^2 = W_b\sigma_b^2 + W_f\sigma_f^2$$
- Between Class Variance
$$\sigma_B^2 = W_bW_f(\mu_b- \mu_f)^2$$
보통 각 포인트마다 Between class variance를 구하고, 가장 optimal 한 포인트를 찾게 된다.
Threshold는 원하는 부분만 추출하는 것이 어렵다는 한계를 가진다. 원하는 부분만 추출하기 위해 Image Processing을 사용한다.
**이후 내용 추가
'CS' 카테고리의 다른 글
[생활코딩] 지옥에서 온 Git - Github (0) | 2021.10.06 |
---|---|
[생활코딩] 지옥에서 온 Git - 원격저장소 (0) | 2021.10.02 |
[생활코딩] 지옥에서 온 Git - 원리 (0) | 2021.10.01 |
[생활코딩] 지옥에서 온 Git - Branch&Merge 원리 (0) | 2021.09.25 |
[생활코딩] 지옥에서 온 Git - Git 원리 (0) | 2021.09.17 |