[딥러닝] U-Net 환경 구축 및 데이터셋 가져오기

양현지·2023년 5월 13일
1

딥러닝

목록 보기
1/7

0. 개요

이전 게시글에서 소개한 U-Net ConvNet 모델을 사용하여 CT 촬영 이미지에서 혈관 부분을 찾아내는 작업을 수행하고자 한다.

I. CT 촬영 이미지 데이터를 입력으로 사용
II. 입력된 데이터를 U-Net ConvNet 모델의 인코더(encoder) 부분을 통해 다운샘플링하여 이미지의 특징을 추출
III. 추출된 이미지 특징은 디코더(decoder) 부분을 통해 업샘플링되며, 이를 통해 입력 이미지의 크기와 같은 크기의 출력 이미지가 생성
V. 생성된 출력 이미지는 혈관이 존재하는 위치를 나타내는 이진 마스크(binary mask)로 사용
VI. 이진 마스크를 입력 이미지와 곱해주면, 입력 이미지에서 혈관 부분만을 추출

1. U-Net ConvNet

tensorflow와 keras를 사용하여 U-Net 모델 구축 및 학습 과정을 선행

1) 파이참 가상환경 설정

  • conda 사용
pip install tensorflow
import tensorflow as tf
from tensorflow.keras.layers import Input, Conv2D, MaxPooling2D, Dropout, concatenate, UpSampling2D
from tensorflow.keras.models import Model

2) 데이터셋 다운로드

3D IRCAD (DICOM fmt)
본 연구에서 사용하고자 하는 데이터셋은 DICOM fmt이다.

https://www.ircad.fr/research/data-sets/liver-segmentation-3d-ircadb-01/
위 링크에 방문하면 다음과 같이 다운로드를 진행할 수 있다.

  • 일반적으로 jpg, png 이미지 형식은 pixel의 가로 x 세로 집합으로 구성 (각 pixel은 0~255의 pixel value를 가짐)
  • DICOM 이미지 형식은 pixel value 뿐 아니라 메타 데이터를 포함하여 jpg나 png보다 훨씬 대용량 처리가 필요함

3) DICOM 라이브러리 설치

데이터셋(DICOM) 이미지를 처리하고자 dicom 라이브러리 설치를 진행

pip install dicom

선택한 데이터 세트의 이미지가 DICOM 형식이므로 이 데이터를 추출하는 데 파이썬 라이브러리를 사용하고 편의를 위해 이미지 처리, 크기 조정 및 PIL을 사용하여 이미지를 저장합니다.

  • Usage

    Reading from DICOM files
    import dicom
    def getDicomFile(filename):
       return dicom.read_file(filename)
    obtain the image data from DICOM file
    import dicom
    def getPixelDataFromDicom(filename):
       return dicom.read_file(filename).pixel_array

4) 영상 전처리

  • 2)에서 다운로드한 첫 번째 환자의 DICOM은 다음의 내용을 포함한다.

① PATIENT_DICOM : 실제 CT 스캔 데이터
② MASKS_DICOM : 분할 파일
(폴더 구조는 환자 마다 상이할 수 있으나 대부분 위와 유사하다고 함)

여기까지 U Net 을 사용하기 위해 DICOM, tensorflow 라이브러리 설치 및 데이터셋 다운로드가 완료되었다. 학습 전 전처리 과정은 다음 글에서 다룬다.

※ 참고
https://89douner.tistory.com/293
https://medium.com/@fabio.sancinetti/u-net-convnet-for-ct-scan-segmentation-6cc0d465eed3

0개의 댓글