Medical file formats

#Medical File Formats

  • Medical 분야에서 자주 사용되는 Image file format들 정리
  • Pixel depth, photometric interpretation, metadata, pixel data concepts

  • 4 Major File Formats

    • Analyze, Neuro-imaging Informatics Technology Initiative(Nifti), Minc, Digital Imaging and Communications in Medicine(Dicom)
  • Basic concepts

    : Medical Image는 pixels 혹은 voxels로 불리는 신체 내부 구조 이미지 배열로 되어있다. Sampling 혹은 Reconstruction 프로세스를 통해 생성된 이산적인 값들이며, 어떠한 공간에 대한 위치 값들이다. 이러한 값들은 Imaing modality, acquisition protocol, Reconstruction, post-processing 방법들에 의해 영향을 받는다.

    • Pixel Depth
      각각 pixel들의 정보들을 인코드 하는데 사용되는 bit 개수이다. pixels image는 12 or 16 bits(컴퓨터는 2bytes를 항상 사용) 을 갖는다. −32,768 and +32,767 using 15 bits to representthe numbers and 1 bit to represent the sign
    • Photometric interpretation
      photometric interpretation란 어떻게 올바르게 pixel data를 해석하여 monochrome or color image로 display 할 것인가에 대한 것이다. color information이 저장되어 있는지의 여부를 나타내기 위해 Samples per pixel(a.k.a number of channels)라는 concept을 사용한다.
      • Monochrome images(grayscale)은 하나의 채널만을 갖으며 검은색부터 흰색으로 이미지를 표현한다. Clinical radiological images, (e.g x-ray, CT, MR)들은 gray sacle photometric interpretation을 사용한다.
      • Nuclear medicine images (e.g positron emission tomography:PET, single photon emission tomography:SPECT)는 일반적으로 color map or color palette를 사용한다. 이러한 경우에는 각각의 픽셀들은 미리 정해진 color map을 사용하는데, display를 위한 것이지, 픽셀 자체에는 저장되지 않는다.
      • 그 외에 여전히 one sample per pixel을 갖는 이미지가 있는데 pseudo-color라 불리며 color를 인코드하기 위해 여러 샘플들을 바인딩해서 color를 표현한다.
      • Ultrasound Images는 일반적으로 RGB형태로 저장된다. 이러한 경우는 3가지의 primary color들로 결합되어 있는 것이다. 즉 픽셀 당 세가지의 샘플들이 저장된다. Color는 혈액의 흐름을 표현하거나 다른 추가적인 정보들을 표현하기 위해 사용된다. gray scale 이미지에서 혈액을 표현하기 위해 사용되는 fMRI나 PET/CT, PET/MRI 같은 이미지에서 사용된다.
      fmri
      fMRI Image
    • Metadata
      이미지를 설명하는 정보(the file as a header and contains at least the image matrix dimensions, the spatial resolution, the pixel depth, and the photometric interpretation)로써, medical 이미지에서는 꽤 중요한 역할을 한다. 예를 들어 이미지가 어떻게 생성되었는지, MRI이미지에서는 pulse squence와 관련된 파라미터를 갖는지 또는 timing 정보, flip angle, number of acquistions 등의 정보를 갖는다. 이와 같이 어떠한 진단 방식이 사용됐는지, post-processed는 어떻게 수행되었는지에 대한 powerful한 tool을 제공한다.
    • Pixel Data
      pixel 값들이 저장되는 부분으로 정수형 혹은 floating-point형으로 값들을 표현한다. fixed-size haeder를 갖는 file들은 header 크기를 skip한 이후의 위치부터 pixel data가 저장된다. 또한 복소수 형태로 저장이 되기도 하는데 자주 사용되지는 않으며, 저장할때도 가수부를 제외한 실수 부분만 저장이 되기도 한다. 이러한 형태는 MRI 이미지에서 Reconstruction 전 단계에서 저장할 때 얻을 수 있다. \(Pixel Data Size = Rows * Columns * Pixel Depth * Number of Frames\) \(Image file Size = Header Size + Pixel Data size\) pixel data
    • File Formats
      Medical image file formats은 2가지의 카테고리로 나뉘는데 첫번째는 diagonostic modalities에 의해 만들어진 이미지를 standardize한 것이고(e.g Dicom), 두번째는 post-processing anaylsis를 위해 수정된 타입(e.g Analyze, Nifti, Minc)이다. 또한 이미지들이 저장될 때도 두가지 방식이 있는데, metadata와 image data가 함께 저장되는 것과 나뉘어 저장되는 것이다. 전자는 Dicom, Minc, Nifti가 해당하며 후자는 Analyze이다(.hdr, .img)
      • Analyze
        1980년 말에 만들어진것으로 3D or 4D데이터와 같이 multidimensional data(volume)형태로 저장된다. .img, .hdr 확장자로 voxel과 metadata를 따로 저장한다. unsigned 16bit와 같은 basic data types을 포함하지 않아 scale factor 혹은 depth를 직접 바꿔야 한다. 오래되었지만 여전히 널리 사용되며 새로운 format인 AnalyzeAVW가 최신 버전의 소프트웨어에서 사용된다.
      • Nifti
        2000년대 초반에 Natonal Institutes of Health 기구에 의해 만들어졌으며 Neuroimaging을 유지보수하기 위해 Analyze format의 장점을 이용하고 단점을 보완시켰다. Analyzer 7.5 Header에 안쓰는 필드에 image orientation이나 left-right ambiguity를 없애는 의도로 보완되었다. header와 pixel data가 따로 저장하게끔도 할 수 있지만 합쳐서 저장하는 .nii 포멧을 지원한다. 이 포멧은 급속하게 Analyze에서 대체되었으며, 가장 널리 퍼진 default format이다. 더 큰 데이터를 처리하기 위해 Nifti-2 Version이 2011년에 만들어졌다.
      • Minc
        Montreal Neurological Institute (MNI)에서 1992년부터 flexible한 data format을 위해 만들어졌다. 큰 데이터를 처리하가ㅣ 위해 HDF5 형태로 변환하며 이전 것과는 호환되지 않지만 Minc2로 불리며 사용되고 있다.
      • Dicom
        the American College of Radiology and the National Electric Manufacturers Association에 의해 1993년에 만들어졌지만 90년말부터 실제적으로는 사용되었으며 모든 medical imaging의 backbone이다. Dicom은 파일 format일 뿐만 아니라 network Communications protocol이었다. Dicom의 혁신은 Pixel Data와 Metadata가 분리될 시 의미없는 데이터와 같다고 생각되어 Pixel Data와 Metadata(e.g 환자의 이름, 성, 나이, 체중 등)과 같은 정보들도 포함시켰으며 이는 다양한 사이즈의 데이터를 만들었고, 결국에는 “Phoenix”라는 시스템으로 Dicom image series에서 acquisition window protocol을 이용하여 새로운 정보들을 획득하였다. Dicom은 jpeg와 같은 non-Dicom-formatted 들도 Dicom file에 encapsulate 할 수 있다.
  • Discussion

    : Dicom같은 경우에는 너무 많은 정보가 들어가있으며 사용하는데 복잡하다는 단점이 있다. 또한 privacy한 정보 또한 포함되어 있다는 점에서 문제가 있다. Nifti는 다양한 data types을 지원하며 적당한 정보가 들어가 있다는점에서 가장 적절한 format인 듯 하다.

reference: Medical image file formats

Image model modules

Image model 향상을 위한 기법들

Attention

Squeeze and Excitation(SE)

  • Image Model에서 채널간의 Features 들의 특징을 참조하게 하여 모델을 향상시키는 기법 SA
  • Squeeze
    • Global average pooling을 사용(shape: [N,C,1,1])하여 Channel-wise한 값들을 생성
    • output을 Local descrptors로써 사용 squeeze i, j:pixels, H,W: height, width, ${Z_c}$ = output
  • Excitation
    • fully captrue channel-wise dependecies를 목표로 한다
    • 채널간에 nonlinear interaction과, non-mutually-exclusive relationship을 학습한다. excitations \(\delta=ReLU\)
    • two fully-connected layers(FC)로 bottelneck을 만들어 dimension reduction을 r의 ratio로 수행
    • extension output과 channel-wise multiply \(\tilde X = [\tilde x_1, x_2, ..., x_C]\) \(\tilde x_c=F_{scale}(u_c, s_c)= s_cu_c\) SE-modules

Image Segmentation

A.I Image Segmentation

DeconvNet

  • 인코더 디코더 구조, 인코더는 FCN층을 제외한 VGG16 모델을 사용
  • Deconvolution Opertation을 사용하여 Upsamling
  • Low resolution에서 high resolution으로 변형해가는 디코더 구조에서 Deconvolution operation을 사용

U-Net

  • U-shaped models with skip-connections
  • Over-tile strategy
  • Data augmentation(morphological operation)
  • Weight regularization over the distance of cells and borders

ResUnet

  • U-net에서 Low level 쪽으로 갈수록 Detail한 특징을 잡아내지만 High Resolution에 대한 정보를 손실 이에 Residual 방식을 이용하여 backward propagation의 향상과 Low level에서 High level에 이르는 Semeantic 특징을 잘 잡아내도록 함
  • U-net 보다 적은 parameter 개수로 better performance
  • Pre-activation design을 사용하여 Residual Unit 구현 He et al. presented a detailed discussion on impacts of different combinations in He. Identity mappings in deep residual networks,” in ECCV, 2016 pp. 630–645. resUnet_Module resUnet resUnet_arch

ResUnet++

  • ResUnet에서 확장하여 Residual blocks, Squeeze and Excitation Block, ASPP , Attention block 사용
  • Squeeze and Excitation block
    모델이 relevant/unnecessary한 features들을 민감하게 만든다. Squeeze는 global average pooling을 통해 channel-wise한 값들을 만들고, Excitation은 channel-wise한 dependencies들을 캡쳐하게 끔한다.
  • ASPP
    multiple spatial 정보들을 captrue한다. Atrous convoluton은 field of view의 capturing을 정밀하게 끔한다.
  • Attention
    이미지에서 more attention 부분에 집중하도록 한다. ResUnet++

DeepLab V3+

  • Spatial pyramid pooling
    Apply several parallel atrous convolution with different rates(called Atrous Spatial Pyramid Pooling. ASPP) Deeplab v3+
    • Atrous convolution
      A powerful tool that allows us to explicitly control the resolution of features computed by deep convolutional neural networks and adjust filter’s field-of-view in order to capture multi-scale information, generalizes standard convolution operation. Atrous convolution
    • Depthwise separable convolution
    • It reduces computation complexity Depthwise separable convolution
  • Encoder-Decoder
  • Resnet101 / Xeption as Backbone

U-Net++

  • U-net모델에서 densely nested 구조로된 skip connection 사용

SegNet

  • 인코더 디코더 모델. 인코더는 VGG16 pre trained 모델을 FCN 제외하고 사용
  • 인코더 부분에서 Maxpooling indeices라고 해서 맥스풀링 후 사이즈 변화가 없게 0 값을 삽입 후 매번 풀링 값들을 저장하여 디코더에서 Upsamling시 사용
  • 인코더에서 저장한 max pooling 값들을 사용하므로 경계 부분이 비교적 선명함.

1) DeconvNet과의 차이점 - Unpooling이라는 유사한 Upsampling 방식이 사용되지만 - SegNet은 FCL이 존재하지 않는다.

2) U-Net과의 차이점 - U-Net은 주로 bio 이미지에서 사용되며 - Pooling Indices를 사용하는 대신 전체 feature map이 encoder에서 decoder로 전송된 다음 연결하여 Convolution을 수행한다. - 이는 모델을 더 크게 만들며 더 많은 메모리 사용을 하게 된다.

ICNN : Interlinked convolutional neural network

  • Face Parsing 용도
  • Input 이미지를 downsampling(max pooling)을 통해 여러가지 resolution으로 나누어 parallel Network를 만듬
  • 64x64 patch를 input으로 눈,코,입,귀 등의 부분으로 나누어 pixel-wise cross-entropy 학습

GridNet : Residual Conv-Deconv Grid Network for Semantic Segmentation

  • Grid 형태의 multiple interconnected Network

HRNet: Deep high resolution Representation Learning

  • Input image를 4개의 low resolutiond으로 parallel한 network 구성
  • low resolution path를 추가 할 때 마다 Densed Skip connection으로 feature map들을 연결
  • Final layer에서 수행할 Task에 맞춰 Concatenation 수행

OCR: Object-Contextual Representation for Semantic Segmentation

  • 클래스에 속하는 오브젝트와 해당 클리스에 속하는 픽셀을 결합하여 OCR을 생성

1) Pre-trained Model(Resnet)을 사용하여 Supervised learning 방식으로 Object들의 region 정보를 학습(Soft obejct regions)

2) 얻어진 Obejct들에 속하는 pixel로 Pixel Representation 생성

DANet: Dual Attention Network for Scene Segmentation

  • A position attention module is proposed to learn the spatial interdependencies of features
  • a channel attention module is designed to model channel interdependencies. It significantly improves the segmentation results by modeling rich contextual dependencies over local features

Image detection models

R-CNN

  • 논문 요약

  • ROI을 Selective Search Algorithm 사용
  • Region Proposals을 pre-trained 된 CNN 모델을 사용하여 feature map 추출
  • 피처맵을 Linear SVM을 사용하여 Classification

Fast R-CNN

  • 논문 요약

  • Selective Search Algorithm 사용
  • Feature map을 추출 후 ROI를 찾아서 R-CNN에 비해 연산량을 줄임
  • Classification과 location regression이 FC에 의해 구성

Fast-RCNN

Faster R_CNN

  • 논문 요약

  • ROI를 CNN을 사용하여 속도와 정확성을 높(RPN:A Region Proposal Network)
  • End To End 트레이닝 가능

Mask R_CNN

  • 논문 요약

  • Faster-RCNN을 확장한것으로 Segmentation branch를 ROI에 대해 parallel하게 추가
  • Faster-RCNN은 pixel-to-pixel alignment에 맞춰 디자인 된 것이 아니므로 RoiPool이라는 alignment를 fix하는 operation이 적용
  • Resent50/ResentXt/FPN(Feature Pyramid Network) backbone
  • Classification, location regression, Mask segementation 3개의 output 생성

Image classification models

VGGNet

  • Alexnet에서 깊은 레이어가 되도록 추가
  • 연산량 많음 VggNet VGGNet

ResNet

  • Skip connection architecture ResNet

Google Lenet

google lenet