공부/AIFFEL

Exploration 14 : 폐렴아 기다려라!

dong_dong_2 2021. 3. 2. 17:28

1. 의료영상에 대해
    - 의료 영상 종류
       1) X-RAY
          (1) X-RAY는 전자를 물체에 충돌시킬 때 발생하는 투과력이 강한 복사선(전자기파)을 말한다.
          (2) X-RAY는 방사선의 일종으로 지방, 근육 같이 밀도가 낮은 것은 통과하지만, 밀도가 높은 뼈, 금속 같은 물질은 잘 통과하지 못한다.
       2) CT
          (1) CT는 Computed Tomography의 줄임말로, 환자를 중심으로 X-RAY를 빠르게 회전하여 3D 이미지를 만들어내는 영상이다.
          (2) 환자의 3차원 이미지를 형성하여 기본 구조뿐만 아니라 종양 또는 이상을 쉽게 식별하고 위치를 파악할 수 있다.
          (3) 신체의 단면 이미지를 "Slice"라고 한다. 이러한 Slice는 단층 촬영 이미지라고도 하며 기존의 X-RAY보다 더 자세한 정보를 포함한다.
       3) MRI
          (1) MRI는 Magnetic Resonance Imaging(자기 공명 영상)의 줄임말로 신체의 해부학적 과정과 생리적 과정을 보기 위해 사용하는 의료 영상 기술이다.
          (2) MRI 스캐너는 강한 자기장을 사용하여 신체 기관의 이미지를 생성한다.
          (3) MRI는 CT, X-RAY와 다르게 방사선을 사용하지 않아서 방사선의 위험성에서는 보다 안전하다.
2. X-RAY 이미지
    - 의료영상 자세 분류
       1) 시상면(Sagittal plane) : 인체를 왼쪽과 오른쪽으로 나누는 면이다.
       2) 관상면(Coronal plane) : 인체를 앞과 뒤로 나누는 면이다.
       3) 횡단면(Transverse plane, 수평면) : 인체를 상하로 나누는 면이다.
    - 오늘 실습에서 사용할 데이터는 모두 관상면 이미지이다.
    - 사진을 볼 때 주의해야 할 점은 왼쪽과 오른쪽의 구별이다.
    - 우리가 봤을 때 왼쪽이 아닌 찍힌 사람을 기준으로 왼쪽이 왼쪽이다. (그럼 우리가 보는 방향에서 오른쪽이 왼쪽이다.)
    - X-RAY의 특성
       1) X-RAY는 전자기파가 몸을 통과한 결과를 이미지화 시킨 것이다. 즉, 통과하고 남은 전자기파의 결과이기 때문에 색상이 아니라 흑백의 명암으로 나오게 된다.
       2) X-RAY는 부위에 따라 명암이 다르게 나온다. ex) 뼈 : 하얀색, 근육 및 지방 : 연한 회색, 공기 : 검은색.
3. 폐렴을 진단해보자(1)
    - 의료 인공지능은 다양한 분야에서 사용된다. 이 중 현재 가장 핫한 분야는 질병을 탐지해내는 인공지능이다.
    - 이번 노드에서는 폐렴을 찾아내는 딥러닝 모델을 만들 것이다. 데이터셋은 캐글의 Chest X-Ray Images이다.
    - 폐렴에 대해 간략히 개념 설명을 읽고, 간단한 폐렴 구별법을 배웠다.
    - 실습 순서
       1) 패키지 로딩하고 앞으로 필요한 변수를 미리 생성하기
       2) 데이터 가져오기 : tf -> io -> gfile의 glob을 이용하여 여러 이미지를 한번에 불러올 수 있도록 했다.
       3) 데이터 전처리
          (1) train data에 비해 validation data이 너무 없어서 둘을 합친 뒤 8:2 비율로 나눴다.
          (2) 각 이미지 파일에 label을 붙이는 함수를 만들었다.
          (3) 이미지를 읽어와서 이것저것 변환(uint8로 변환, float32로 변환, 사이즈 변환)을 해주는 함수를 만들었다.
          (4) 위에 만든 함수를 이용해서 train 데이터셋과 validation 데이터셋, test 데이터셋을 만들었다.
          (5) tf의 data 파이프라인을 사용해서 학습 데이터를 효율적으로 사용할 수 있도록 함수를 만들었다.
       4) train에 있는 batch중 첫 번째 배치를 추출하여 시각화를 해봤다.
       5) CNN 모델을 사용하여 모델링을 했다.
       6) 데이터 imbalance 처리를 했다. weight를 정상과 폐렴을 각각 다르게 했다.
       7) 모델을 훈련시키고, 훈련과정을 시각화 하고, 테스트 데이터로 평가를 해봤다.
4. 프로젝트 : 폐렴 진단기 성능 개선
    - 하이퍼 파라미터를 바꿔보기
    - data augmentation을 사용하기
    - 성능을 85% 이상으로 만들어보기