이번 포스팅의 목적
- NIH CXR Dataset Info 에서 데이터 셋의 readme를 해석하여 얻은 데이터에 대한 기초 정보를 기반으로,
데이터를 다운로드하여 1) 압축을 풀고, 2) 주피터 노트북에서 데이터를 로드한 뒤, 3) 데이터를 간단하게 핸들링하여 파악해보자!!
0. 데이터 다운로드
NIH cxr dataset 데이터 경로에 들어가면 readme를 비롯한 다양한 파일들과 영상 정보가 존재함을 알 수 있다.
전체 데이터를 다운로드하려니, 용량이 너무 커서 다운로드되지 않는다고 하여,
필요한 정보를 로컬로 일부 다운로드하여 핸들링해본 뒤, 나머지도 다운로드하기로 결심하였다.
현재 다운로드한 파일의 정보:
- train_val_list.txt & test_list.txt
- images
- images_001 ~005.tar
- batch_download_zips.py
위와 같이 총 2개의 텍스트 파일과 하나의 파이썬 파일 그리고 5개의 tar 로 압축되어있는 영상 파일을 다운로드하였다.
이 파일들을 하나의 디렉토리에 넣어두고 접근할 예정.
1. tar 확장자 아카이브 해제
* tar 확장자는 파일 디렉토리 구조나 파일 속성을 유지하여 하나의 파일로 묶는 파일 형식. 대상의 용량, 크기를 줄이기위한 파일 압축과는 다른 개념으로, 여러 파일을 하나의 파일로 묶는 역할을 수행하는 것. 따라서 gzip과 함께 잘 사용되는 편.
- tar file 해제하기
tar -xvf [file name]
- tar file 묶기
tar -cvf [tar file name] [file path]
포맷 해제 후 디렉토리 구조
2. 데이터 로드
먼저 주피터 노트북 파일을 하나 생성한 뒤, 이미지를 불러옵니다.
간단하게 opencv(cv2)와 matplotlib(plt)를 임포트하여, 이미지 파일을 읽어올 수 있습니다.
위와 같이 파일은 1024 x 1024 해상도의 RGB 색 공간(3채널)을 가지는 컬러 영상으로 확인할 수 있습니다.
3. 영상 데이터 핸들링
1) 색공간 변경하기
아시다시피 X선 영상은 현재는 3채널의 컬러로 이루어져 있지만, 흑백(gray-scale) 영상입니다.
따라서 2차원의 흑백 색공간을 가지도록 하여 영상의 용량을 줄일 수 있습니다.
- cv2.cvtColor() 메서드를 이용하여 색공간을 변경(흑백 외에 lab, hsv 등도 가능)
sample_gray = cv2.cvtColor(sample_color, cv2.COLOR_RGB2GRAY)
2) 영상 크기 변경하기
1024 x 1024 해상도는 딥러닝 모델을 학습하기에 너무 클 수도 있습니다.
학습의 속도를 줄이기 위해서 데이터의 해상도를 줄일 수 있으며, 해상도를 줄이는 예제는 다음과 같습니다.
- cv2.resize() 메서드를 이용하여 영상의 해상도 줄이기
sample_001_512 = cv2.resize(sample_1024, dsize=(512,512), interpolation=cv2.INTER_AREA)
- cv2.resize() 메서드를 이용하여 영상의 해상도 늘리기
sample_001_3024 = cv2.resize(sample_1024, dsize=(3024,3024), interpolation=cv2.INTER_LANCZOS4)
영상의 해상도를 조절할 때에는 "보간법(iterpolation)"을 사용합니다.
해상도를 줄이기 위해서는 보통 영역 보간법, 즉 cv2.INTER_AREA 인자를 사용하며,
해상도를 늘리기 위해서는 보통 cv2.INTER_LANCZOS4 혹은 cv2.INTER_CUBIC 인자를 사용합니다.
'인공지능' 카테고리의 다른 글
자연어 데이터 전처리 방법 - 영어 (0) | 2023.05.15 |
---|---|
gcloud scp로 데이터 전송하기 (0) | 2023.05.10 |
딥러닝 robust 의미 (0) | 2023.02.15 |
자연어 처리와 텍스트 마이닝(NLP vs. Text Mining) (0) | 2021.03.29 |
NIH Chest X-ray Dataset info (0) | 2021.02.20 |