안녕하세요.

이번 글에서는 디지털 뉴딜 사업의 일환인 AI hub를 소개하려고 합니다.

 

최근 딥러닝 학습을 하기 위해 양질의 데이터가 절실히 필요한 상황입니다.

특히, 의료 데이터의 경우에는 우수 인력들이 동원되어야 학습데이터를 구축 할 수 있습니다. 

 

그래서 정부에서는 대규모 투자를 하여 양질의 데이터 생산할 수 있게 지원하고 있는데,

그 중의 하나가 디지털 뉴딜 사업이고, 이러한 디지털 뉴딜 사업의 일환이 AI hub입니다. 

 

그래서 딥러닝을 공부하고 모델을 개발하는 사람들이 데이터를 구하는데 어려움이 없도록 AI hub신청하면 다양한 데이터 (ex: 공공의료데이터, 위성데이터 등) 제공 받을 수 있습니다.

 

이번 글에서는 위에서 설명한 내용들을 좀 더 구체적으로 알아보도록 하려고 합니다.

 

디지털 뉴딜을 설명하기에 앞서 뉴딜이 무엇이고, 한국판 뉴딜이 무엇인지 먼저 알아본 후 디지털 뉴딜과 AI hub에 대해서 설명하도록 하겠습니다.

 

 

1. 뉴딜이 무엇인가요?

루즈벨트를 미국 역사상 최초로 4번 연속 대통령으로 이끌었던 정부주도 사업뉴딜정책입니다.

이 뉴딜 정책을 설명하기 위해 잠시 짧게 역사적인 배경을 설명하도록 하겠습니다. 

 

1) 1865년 미국: 남북전쟁 종료

  • 1865년 미국의 남북전쟁이 끝나면서 통합된 정부가 수립이 됩니다.

 

2) 1865~1918년 미국: 미국 재건 시작

  • 이 시기에 유럽을 중심으로 다른 대륙에서 2750만 명이라는 이민자들이 미국으로 몰려들어오게 됩니다.
  • 이러한 이민자들 덕분에 노동력을 공급 받을 수 있었고, 캘리포니아와 같이 개발되지 않은 지역에 다양한 지역 사회형성할 수 있었습니다.

 

3) 1920년 미국: 미국 경제 호황

  • 1918년 1차 세계대전이 영국, 러시아, 프랑스 연합국승리로 끝났습니다.
  • 당시 영국은 러시아와 프랑스에 엄청난 돈을 빌려준 상태였습니다.
  • 하지만, 영국 역시 전쟁 중 이었기 때문에 부족한 돈을 미국 금융가에게서 빌리게 됩니다.
  • 영국은 미국에게 빌린 돈을 패전국인 독일에게 막대한 배상금을 주며 받으려 했습니다.
  • 물론, 러시아와 프랑스에게 빌려줬던 돈도 받아 미국에게 주려고 했습니다.
  • 하지만, 유럽의 경제는 이미 파탄이 난 상태였기 때문에 영국과 미국 모두 돈을 받기 힘든 상태가 되었습니다.
  • 그래서, 미국유럽 경제를 살리기 위해 대규모 투자를 하여 공장을 늘리고 많은 일자리(노동자)를 만들어 냈습니다. 이로 인해 투자 활발해 지면서 미국 또한 대규모 경제 호황을 맞이하게 됐죠

(↓↓↓ 미국의 1920년대 배경을 잘 설명해주는 동영상↓↓↓)

https://www.youtube.com/watch?v=xatt7AQPnMc 

 

 

 

4) 1930년 미국: 미국 경제 대공황

  • 늘어난 공장을 통해 공급수요앞서게 되자 기업가 또는 투자자들의 이윤줄어들게 되었습니다.
  • 그러자 노동자들을 해고시켜 노동임금을 줄이고 이윤증가시키려고 했습니다.
  • 하지만, 노동자들이 곧 수요자였기 때문에 미국 경제공장도 멈추고 대규모 실업자가 생겨나게 됩니다.

(↓↓↓1930년대 미국 대공황을 잘 설명한 영상↓↓↓)

https://www.youtube.com/watch?v=1W3_kkmHR5I 

 

 

 

5) 1930년 미국: 미국 경제 대공황

  • 1933년 루즈벨트 대통령은 미국 경제 대공황극복하고자 뉴딜 정책을 실시합니다.
  • 뉴딜 정책중 하나가 대규모 토목 사업후버 댐 건설입니다.
    • 서부개척과 이민자들의 유입으로 서부지역환경개선할 필요가 있었습니다.
    • 하지만, 특히 후버 댐이 건설되기 전까지 홍수 또는 가뭄에 의해 적절한 농업을 할 수 없게 되었죠.
    • 그래서 후버 대통령 (1929년 3월 4일 ~ 1933년 3월 4일) 은 1931년에 농장을 현대화하고 전력을 공급하고 홍수를 억제하기 위해 엄청난 규모의 댐 공사를 추진합니다. 그리고, 자신의 이름을 따 댐의 일음을 후버 댐이라고 명명합니다.
    • 루즈벨트 대통령은 본래 하고 있던 후버 댐 사업을 이어받아 1935년에 준공(=공사를 마침)을 선언합니다.

 

결국 뉴딜 정책이란 아래와 같이 정리할 수 있습니다.

 

"경제 위기를 극복하고자 정부에서 지원한 대규모 공공사업"

 

 

 

 

 

2. 한국판 뉴딜은 무엇인가요?

2020.04.22청와대 제5차 비상경제회의에서 정부가 국가 프로젝트로한국판 뉴딜구상하겠다는 의사를 처음 밝힙니다.

 

코로나와 일자리 문제로 인한 경제 위기를 극복하고자 정부에서 대규모 공공사업을 진행하려고 한 것이죠.

 

그리고 2020.07.14일에 '한국판 뉴딜' 국민보고대회를 통해 1시간 정도 '한국판 뉴딜' 정책 설명을 진행합니다.

 

(↓↓↓'한국판 뉴딜' 국민보고대회 관련 뉴스 (풀영상은 따로 검색하면 1시간 짜리 영상이 나옵니다↓↓↓)

https://www.youtube.com/watch?v=8baEZB88dNY 

 

'한국판 뉴딜' 정책은 크게 두 가지 사업(정책)으로 구성되어 있습니다.

  1. 디지털 뉴딜
  2. 그린 뉴딜

2020.07.14일 발표한 '한국판 뉴딜 1.0'에서는 2025년까지 국고 114조원, 민간과 지자체 포함 160조원을 투자하여 관련 일자리를 창출할 것이라고 밝혔습니다.

 

'한국판 뉴딜 1.0'방향성은 아래 "그림1"과 같이 '10대 대표과제'를 통해 파악할 수 있습니다.

 

그림1. 이미지 출처: https://www.korea.kr/special/policyCurationView.do?newsId=148874860

 

 

https://www.korea.kr/special/policyCurationView.do?newsId=148874860 

 

[정책위키] 한눈에 보는 정책 - 한국판 뉴딜

1. 한국판 뉴딜이란?2.한국판 뉴딜의 구조와 추진체계3.분야별 주요 내용4.한국판 뉴딜 주요 추진과제5.한국판 뉴딜 펀드 6.사례로 본 한국판 뉴딜 7.그 밖의 참고자료 / 누리집 1. 한국판 뉴딜이란?

www.korea.kr

 

 

그리고 1년 뒤 2021.07.14일 '한국판 뉴딜 2.0'을 발표하게 됩니다. 

'한국판 뉴딜1.0'의 방향성을 그대로 가져가면서 투자액을 좀 더 증액할 것이라고 합니다.

 

https://www.youtube.com/watch?v=ap0Wz5CTMOM 

 

 

앞서 언급했듯이 '한국판 뉴딜' 정책은 크게 두 가지로 분류 할 수 있습니다.

  1. 디지털 뉴딜
  2. 그린 뉴딜

 

앞서 디지털 뉴딜에 대해서 알아보기로 했으니, 지금부터 디지털 뉴딜에 대해 좀 더 자세히 설명드리도록 하겠습니다.

 

 

 

 

 

3. 디지털 뉴딜은 무엇인가요?

'한국판 뉴딜' 중 하나의 중심축을 담당하는 디지털 뉴딜은 크게 세 가지 방향성을 갖고 있습니다.

  1. 데이터 댐
  2. 지능형 정부
  3. 스마트 의료인프라

 

그림1. 이미지 출처: https://www.korea.kr/special/policyCurationView.do?newsId=148874860

 

 

여기서 제가 소개해 드릴 부분은 "데이터 댐""스마트 의료인프라"입니다.

 

 

3-1. 데이터 댐

오늘 날 적용하는 인공지능의 대표격인 딥러닝은 크게 두 가지 요소를 필요로 합니다.

  1. 데이터
  2. 딥러닝 모델 with 학습 방법론

 

학계에서 열심히 연구하는 부분들은 "2. 딥러닝 모델 with 학습 방법론"입니다.

수 많은 연구자들이 어떻게 하면 효율적인 딥러닝 모델을 만들 수 있을지 연구하여 논문으로 발표합니다.

 

하지만, 이러한 딥러닝 연구가 진행되기 위해서 반드시 선행되어야 하는 작업이 있습니다.

바로 딥러닝 모델을 학습 시키기 위한 '데이터'만드는 작업입니다.

 

결국 양질의 '데이터'가 있어야 효율적인 인공지능 연구들이 가능합니다.

 

그래서 정부는 디지털 뉴딜의 일환으로 데이터들을 한 곳에 저장 시킬 "데이터 댐"을 만들기로 합니다.

 

정부는 데이터 댐에 관련 이야기를 언급하면서 "D.N.A 생태계 강화"를 강조했습니다.

'D.N.A''Data. Network. AI' 약자인데, 데이터들을 하나의 저장소(=데이터 댐)에 모아 5G 기반의 통신만 기술을 이용해 AI 관련 사업하는 사람들에게 제공하면 어떻게 될까요?

 

위와 같이 공공 데이터 저장소가 있으면 많은 인공지능 기업과 연구자들이 데이터를 모으는 수고를 덜 면서 연구에만 몰두 할 수 있게 됩니다.

 

(↓↓↓'디지털 뉴딜'에서 데이터 댐에 관한 설명↓↓↓)

https://www.youtube.com/watch?v=9iNjaG72SSo 

 

 

(↓↓↓'데이터 댐' 관련 설명↓↓↓)

https://www.youtube.com/watch?v=EWIq6aWxbdg 

 

 

 

3-2. 스마트 의료인프라

의료 인공지능 및 IT결합하면서 개선될 수 있는 부분은 굉장히 많습니다.

 

몇 가지 예를 들면, 웨어러블 디바이스 또는 실시간 감지를 통해 사람의 생처정보 및 행동패턴을 분석하여 환자들을 지속 관찰할 수 도 있고, 성능 좋은 의료인공지능 모델로 인해 정확성 높고 더 빠른 진료를 가능하게 할 수도 있습니다. 또한 원격의료 시스템을 지원할 수 도 있고, 불필요한 중간체계를 줄여주어 의료비용을 감소시킬 수 도 있습니다.

 

(↓↓↓디지털 헬스케어와 관련해서 작성한 글↓↓↓)

https://89douner.tistory.com/195?category=986138 

 

1. 미국의 Healthcare환경 및 의료시스템

안녕하세요. 이번 글에서는 미국의 healthcare환경 및 의료 시스템에 대해서 알아보도록 하겠습니다. 사실, 각 나라마다 의료환경이 다릅니다. 예를 들어, 유럽의 의료환경, 한국의 의료환경, 미국

89douner.tistory.com

 

 

 

(↓↓↓디지털 뉴딜 사업 중 "스마트 의료인프라"관련 영상↓↓↓)

https://www.youtube.com/watch?v=d2d6-hRXXg4 

 

 

 

결국 의료분야에서 인공지능 모델을 이용하려는 연구자들은 위에서 언급한 '데이터 댐', '스마트 의료인프라'와 모두 관련있는 일을 하고 있으시다고 보셔도 될 것 같습니다.

 

 

 

 

 

 

4. AI hub는 무엇인가요?

만약 본인이 의료 인공지능을 연구하고 있다고 하신다면 연구를 어떻게 하고 있으신가요?

 

딥러닝 모델, 그 외 인공지능 학습방법론 등과 관련된 분야들 (ex: unsupervised learning, domain adaptation, CNN, GNN, etc ...) 을 연구하시고 있으실텐데, 이러한 연구를 하기 위해서는 데이터필요하실 겁니다.

 

보통 의료 분야에서 인공지능 모델을 연구하기 위한 방법은 두 가지 입니다.

  1. 사설 병원 (ex: 서울아산병원, 삼성서울병원, 서울대병원, 연세대병원, 고려대 병원 등..)의 private dataset을 이용한 연구 진행 방식
  2. Kaggle, MICCAI 에서 개최하는 challenge에서 제공해주는 public dataset을 이용한 연구 진행 방식

 

Private dataset양질의 데이터이지만 일반 연구자들이 접근하기가 쉽지 않고, public dataset의 경우에는 접근성좋지 품질떨어지는 경우가 종종 있습니다.

 

그래서 정부 양질의 데이터를 공공 개방할 수 있도록 '데이터 댐'을 만들기로 했는데, 이를 대표하는 곳AI-hub라는 곳입니다. (미리 말씀 드리면 의료 데이터는 다른 데이터들에 비해 데이터를 신청하는 것이 까다롭습니다. 아무래도 사람과 관련된 데이터라 엄격할 수 밖에 없겠죠? 하지만, private dataset은 보통 해당 기관 사람 아니면 접근이 거의 불가능 한 점을 보면 상대적으로 이용하기 수월하다고도 할 수 있을 것 같습니다)

 

(↓↓↓ AI-hub 사업 설명 영상↓↓↓)

https://www.youtube.com/watch?v=sEFPh1f63aE

 

 

(↓↓↓ AI-hub 사이트↓↓↓)

https://aihub.or.kr/

 

홈 | AI 허브

AI 데이터를 찾으시나요? AI 학습에 필요한 다양한 데이터를 제공합니다. 원하시는 분야를 선택해 보세요.

aihub.or.kr

 

 

위의 사이트에 접속하시면 아래와 같은 화면을 보실 수 있습니다.

굉장히 다양한 데이터들 종류가 있는데, 이 중에 헬스케어와 관련된 데이터들은 무엇이 있는지 살펴보도록 하겠습니다 (아래 '헬스케어' 부분을 클릭하시면 됩니다)

그림2

 

 

 

헬스케어 데이터들을 살펴보니 '이미지', '비디오', '오디오', '3D', '센서' 등 다양한 의료데이터들이 있네요.

이 중에서 '간암 진단 의료 영상'을 클릭해서 보도록 하겠습니다.

그림3

 

 

 

'간암 진단 의료 영상' 데이터와 관련된 정보들이 보이네요.

아래 "그림4"에서 우측 하단을 부분에서 교육활용동영상이라는 부분이 있는데, 해당 영상을 클릭하면 데이터에 대한 설명을 유튜브 영상으로 보여줍니다.

 

그림4

(↓↓↓간암 진단 의료 영상 관련 교육활용동영상↓↓↓)

https://www.youtube.com/watch?v=QQXQhWsy2YE 

 

 

 

 

굉장히 다양한 기관에서 의료 데이터를 만들기 위해 참여했다는것을 확인할 수 있었습니다.

그림5

 

데이터 형테는 DICOM, PNG, JSON 형식으로 제공되고, 폴더 트리에 대한 설명도 자세하게 적어놓은 것을 알 수 있습니다.

그림6

 

(↓↓↓DICOM 파일 관련 설명↓↓↓)

https://89douner.tistory.com/293

 

3-1. DICOM 파일이란? (Feat. Definition, PACS, digital image 습득과정)

안녕하세요. 이번 글에서는 의료 영상(Medical imaging)에서 사용하는 DICOM 파일이 어떻게 생겨났는지, 어떻게 이용되고 있는지 알아보도록 하겠습니다. 또한 DICOM이라는 것이 digital image이기 때문에,

89douner.tistory.com

 

 

그렇다면 이러한 데이터들을 어떻게 이용할 수 있을까요?

 

앞서 '그림3'에서 '간암 진단 의료 영상'을 클릭하고 들어가면 아래 화면이 나오는걸 '그림4'에서 확인하셨을 거에요. 이 화면에서 아래 "그림7"과 같이 '이용신청'을 클릭해줍니다. 

 

그림7

 

 

아래 화면과 같이 데이터를 신청하는 절차가 나오네요.

의료 데이터는 이용신청을 위해 좀 더 까다로운 절차가 진행됩니다.

 

그림8

 

 

위에서 설명하고 있는 절차중 'IRB'관련 내용은 아래 글을 참고해주시면 좋을 것 같습니다.

https://89douner.tistory.com/295

 

4. 한국에서 의료 데이터를 다루기 위한 행정절차

안녕하세요. 이번 글에서는 한국에서 의료 데이터를 다루기 위한 행정적 절차에 대해 소개해드리려고 합니다. 1. Motivation (의료 데이터를 사용하는데 왜 행정적 절차가 필요할까요?) 딥러닝 모델

89douner.tistory.com

 

이외에 "생명윤리준수서약서"도 작성하여 제출해야 하니 참고하시면 될 것 같습니다.

 

 

 

 

지금까지 '한국판 뉴딜', '디지털 뉴딜', 'AI-hub'를 소개하면서 의료 인공지능을 하시는 분들이 어떻게 양질의 데이터를 신청하고 모을 수 있는지 알아보았습니다.

 

감사합니다.

 

안녕하세요.

이번 글에서는 한국에서 의료 데이터를 다루기 위한 행정적 절차에 대해 소개해드리려고 합니다.

 

 

1. Motivation (의료 데이터를 사용하는데 왜 행정적 절차가 필요할까요?)

딥러닝 모델을 이용해 Chest-Xray, CT 등의 의료 영상을 classification, segmentation, detection을 할 때, 많은 분들이 Kaggle과 같은 public data를 이용합니다.

 

반면 병원에서 마련한 private dataset을 이용할 때도 있습니다. 즉, 병원소속 연구원들은 private dataset을 이용해 병원 자체 연구를 하기도 하죠. 

 

그런데, 병원 데이터(=private dataset)이라는 것이 대부분 임상데이터입니다. 

 

Q. 임상시험이란?

A. 사람을 직접 대상으로, 사람에게서 추출(또는 적출)된 검체나 사람에 대한 정보를 이용하여 이루어지는 모든 시험 → 즉, 임상데이터는 사람으로 부터 얻어지는 데이터

 

즉, 사람에 대한 데이터를 사용하는 것이기 때문에 굉장히 엄격한 윤리적 기준이 적용됩니다. 결국 연구자들은 이러한 윤리적 기준에 대해서 잘 알고 있어야 하기 때문에 관련 교육이 필요합니다.

 

 

 

2. 프로그램 수강 절차

위에서 언급한 교육을 수강하는 순서를 말씀드리도록 하겠습니다.

 

2-1. 질병보건통합관리시스템 접속후 사용자 가입

해당 프로그램을 듣기 위해서는 "질병관리청 교육시스템"에 접속해야 합니다. 

"질병관리청 교육시스템"에 접속하기 위해서는 "질병관리청 질병보건통합관리시스템"에서 먼저 사용자 가입을 해야 합니다.

 

https://is.kdca.go.kr/

 

질병관리청 질병보건통합관리시스템

 

is.kdca.go.kr

 

 

가입 시 근무하고 있는 병원소속같은 정보를 기입해주면 정상적으로 가입이 완료됩니다.

 

 

2-2. 질병관리청 교육시스템에서 임상교육개론 강의듣기

앞서 "질병관리청 질병보건통합관리시스템"에 사용자 가입을 완료 하셨다면, "질병관리청 교육시스템"에서 임상교육개론 강의를 들으시면 됩니다. (로그인시 공인인증서가 필요합니다)

 

강의를 듣는 순서는 아래와 같습니다.

 

1) 질병관리청 교육시스템 접속 및 로그인

https://edu.kdca.go.kr/edu/index.html

 

질병관리청 교육사이트

 

edu.kdca.go.kr

 

 

 

2) 과정안내 클릭

 

 

 

3) 과정명에 "임상연구개론" 입력 후, 관련 교육 신청

 

 

 

4) 나의 강의실에서 해당 강의 수강

영상길이는 2시간 정도이며, 따로 시험은 없었습니다.

 

 

 

5) 이후 수료증출력을 클릭하시고, 수료증을 pdf로 다운받으시면 됩니다. 

 

※참고로 임상교육개론으로 받은 수료증은 주기적으로 갱신해줘야 한다니 참고해두세요!

 

 

 

3. IRB(Institutional Review Board, 의학연구윤리심의위원회) 허가

의료 데이터 연구를 이용하여 연구를 진행하기 위해서는 해당 의료 데이터를 보유하고 있는 기관(ex: 병원)에 정식으로 IRB 허가를 신청해야합니다.

 

IRB 허가 신청을 하기 위해서는 GCP (Good Clinical Practice) 교육을 이수해야 하는데, 앞선 "임상교육개론"이 이에 해당합니다.

 

IRB 허가신청 절차는 앞선 "임상교육개론" 수료증 및 몇 가지 첨부 파일을 구비하여, 내가 근무하고 있는 병원 IRB 사이트에 등록을 하면 허가절차가 진행됩니다.

 

 

 

4. 과학기술인등록번호

보통 병원에서 의료 데이터를 기반으로 진행하는 연구들은 국가지원과제인 경우가 많습니다.

그래서 보통 국가정보사이트에 과학기술인으로 등록되어야 하기 때문에 아래 사이트에서 과학기술인 등록을 진행합니다. 

 

https://www.ntis.go.kr/hurims/hmreg/researcher/reg/checkRealNm.do

 

NTIS > 국가연구자번호

 

www.ntis.go.kr

 

 

 

지금까지 병원에서 의료 데이터를 사용하기 위한 간단한 행정절차에 대해서 알아봤습니다.

감사합니다.

 

 

 

[Reference]

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=atelierjpro&logNo=221330719904 

 

의료 데이터 연구자 윤리 교육 (필수)

의료 데이터를 사용하는 연구를 진행하기 위해서는 데이터 보유 기관에 정식으로 IRB라는 허가 절차를 ...

blog.naver.com

 

 

 

 

 

 

 

안녕하세요.

이번 글에서는 dicom 파일을 딥러닝 학습에 맞게 변환시켜주기 위해 조정해주는 전처리 기법에 대해서 알려드리려고 합니다.

 

 

 

1. DICOM 파일의 bit depth (Feat. Hounsfield unit)

한 이미지를 구성하고 있는 pixel 값의 범위는 기본적으로 0~255입니다.  \(0\sim2^8\)의 범위를 갖고 있기 때문에 8bit depth를 갖고 할 수 있습니다.

 

(↓↓↓bit depth (or color depth; 색 깊이)에 대한 설명은 아래 글을 참고해 주세요↓↓↓)

https://89douner.tistory.com/293

 

3-1. DICOM 파일이란? (Feat. Definition, PACS, digital image 습득과정)

안녕하세요. 이번 글에서는 의료 영상(Medical imaging)에서 사용하는 DICOM 파일이 어떻게 생겨났는지, 어떻게 이용되고 있는지 알아보도록 하겠습니다. 또한 DICOM이라는 것이 digital image이기 때문에,

89douner.tistory.com

 

<그림 출처: https://ai.stanford.edu/~syyeung/cvweb/tutorial1.html>

 

 

하지만, dicom 파일을 구성하고 있는 pixel은 0~255의 범위만 갖고 있는 것이 아니라, "-x ~ +x" 와 같이 범위가 마이너스부터 시작 되는 경우도 있고, bit depth가 12bit, 16bit로 구성되어 있는 것도 많습니다. 

 

예를 들어, CT에는 hounsfield unit (HU)이라는 것이 있습니다. X-ray 또는 CT 촬영 원리는 사람에게 방사선을 쏴서 방사능 투과율에 따라 detector 부분이 다르게 보이는 것입니다.  

 

 

 

결국 투과율에 따라 detector에 입력되는 값들이 다를 텐데, hounsfield라는 사람은 HU라는 단위를 통해 물체를 구분했습니다. HU 단위는 물을 기준으로 하고 뼈는 400~1000 HU 사이의 값을 갖고, 공기는 -1000의 값을 갖는다고 정의했습니다. 값이 작을 수록 검은색을 띄며, 값이 클 수록 흰색을 띕니다 (gray scale과 비슷하죠) 

 

<그림 출처: https://www.researchgate.net/figure/The-Hounsfield-scale-of-CT-numbers_fig2_306033192>

 

<그림 출처: https://www.researchgate.net/figure/Hounsfield-scale-table_tbl1_327863426>

 

<그림 출처: https://processing.org/tutorials/color>

 

 

실제로 dicom 파일 하나를 가져와서  max, min 값을 뿌려보면 아래와 같이 나옵니다.

(Note. DICOM 파일에서 추출한 pixel 값들이 완전히 HU 값을 표현한다고 볼 순 없습니다. 그 이유에 대해서는 다음 글의 "CT 전처리 관련 글"에서 'slope intercept equation' 부분에서 설명하도록 하겠습니다) 

 

 

2. DICOM 파일 전처리

앞서 DICOM 파일의 bit depth (color depth)와 실제 이미지 bit depth는 다르다고 언급했습니다.

딥러닝 모델에 들어가는 값은 보통 bit depth를 기반으로 하기 때문에, 이에 맞게 바꾸어 주어야 합니다. 즉, 12bit depth였다면, 0~255 range를 갖는 8bit depth로 변경시켜주어야 하는 것이죠.

 

8bit depth로 변경해주는 방법은 아래와 같습니다.

 

  1. 12bit depth 값들을 모두 0~1 사이로 normalization 해주기
  2. 0~1 사이로 normalization 해준 값들에 255를 곱해주어 이미지에 맞는 8bit depth로 변경해주기

 

 

(↓↓↓Normalization 공식↓↓↓)

<그림 출처: https://python.plainenglish.io/how-to-de-normalize-and-de-standardize-data-in-python-b4600cf9ee6>

 

 

 

 

이렇게 바꿔준 값들은 이미지로 저장시키거나 numpy로 저장시킵니다.

그리고, albumentation 같은 곳에서 load하기 쉽게 formatting을 해주죠.

 

(↓↓↓ albumentation 관련 글↓↓↓)

https://89douner.tistory.com/312?category=1001221 

 

1-2. Data Load (Feat. Albumentations)

안녕하세요. 이번 글에서는 Albumentations라는 패키지를 이용하여 데이터를 로드하는 방법에 대해서 설명하도록 하겠습니다. https://github.com/albumentations-team/albumentations GitHub - albumentations-te..

89douner.tistory.com

 

 

 

지금까지 DICOM 파일 전처리 관련된 설명이었습니다.

감사합니다~

안녕하세요.

이번 장에서는 Python으로 dicom 데이터를 읽는 방법에 대해서 말씀드리겠습니다.

 

Python에서는 pydicom 모듈 SimpleITK 모듈을 제공하고 있는데, 이러한 모듈들을 사용하여 dicom 파일을 읽어 필요한 데이터들을 추출(extraction)할 수 있습니다.

 

그럼 지금부터 데이터들을 추출하는 방법을 간단하게 설명하도록 하겠습니다.

 

 

1. Dicom 파일 다운받기

먼저 아래 사이트에 접속하여 dicom 파일 하나를 다운 받습니다.

http://www.rubomedical.com/dicom_files/

 

Sample DICOM files

DEMO 0015 (522 Kb) 1024x1024x8bits Single image Uncompressed Xray Radiofluoroscopic Monochrom2

www.rubomedical.com

 

 

 

 

2. DICOM Viewer로 dicom 파일 확인하기

다운받은 dicom 파일열어보기 위해서는 "DICOM Viewer" 응용프로그램이 설치되어 있어야 합니다. 

 

 

 

제 컴퓨터에서는 MicroDicom viewer가 설치되어 있기 때문에 해당 응용프로그램으로 DICOM 파일을 볼 수 있습니다.

 

 

 

 

 

3. pydicom 모듈로 dicom 파일 데이터 읽기

https://github.com/pydicom/pydicom

 

GitHub - pydicom/pydicom: Read, modify and write DICOM files with python code

Read, modify and write DICOM files with python code - GitHub - pydicom/pydicom: Read, modify and write DICOM files with python code

github.com

 

 

3-1. pydicom 설치

필자는 anaconda 가상환경에서 돌리고 있기 때문에 conda 명령어로 pydicom을 설치해주었습니다.

conda install -c conda-forge pydicom

(↓↓↓conda 명령어로 pydicom 설치 방법↓↓↓)

https://anaconda.org/conda-forge/pydicom

 

Pydicom :: Anaconda.org

Description pydicom is a pure python package for parsing DICOM files. DICOM is a standard (https://dicomstandard.org) for communicating medical images and related information such as reports and radiotherapy objects. pydicom makes it easy to read these com

anaconda.org

 

 

3-2. pydicom으로 데이터 읽기

pydicom으로 dicom 파일을 읽어드리는 명령어는 한 줄이면 됩니다

dcm = pydicom.dcmread(filename)

 

파일을 읽어들인 후, 특정 attribute에 접근하면 관련 데이터 값을 얻을 수 있습니다.

예를 들어. "dcm.PatientSex"에 접근하면 성별(M or F) 데이터 값을 얻을 수 있고,

 

 

"dcm.pixel_array"에 접근하면 이미지 데이터 값을 얻을 수 있습니다.

 

위의 DICOM 이미지 shape(96,512,512)=(channel, width, height)인데, channel이 의미하는 바는 시간 축이라고 보시면 됩니다. 예를 들어, "pixel_array[0] -> pixel_array[1] -> ... -> pixel_array[95]" 시간 순서대로 (512,512) gray scale 이미지가 변한다고 생각하시면 됩니다 (영상 관점에서 설명하면 pixel_array[0], pixel_array[1], ..., pixel_array[95]가 모두 frame이라고 볼 수 있습니다)

 

DICOM viewer에마우스 휠사용하면 dicom 이미지가 연속적으로 변하는걸 보실 수 있으실 겁니다! (image가 하나로만 구성될 수 도 있으니 알아두세요! ex: "Images: 1/1")

 

 

 

특정 시간대의 dicom 파일의 (gray scale) 2d 이미지 값을 얻으려면 아래와 같이 (=dcm.pixel_array[0]) 접근하면 됩니다. ipynb 파일에서 interactive mode를 사용하면 matpotlib를 이용해 실제 이미지를 visualization하여 확인할 수 있습니다. 

 

 

 

4. SimpleITK 모듈로 dicom 파일 데이터 읽기

파이썬에서는 pydicom 외에도 SimpleITK 모듈을 이용해 dicom 파일에 접근할 수 있습니다.

 

 

 

 

 

 

 

 

5. 그 외 dicom 파일 다루는 방법

아래 사이트에 접속하여 crtl+F 한다음 DICOM 이라고 검색하면 "Chapter10. Combining data sources into a unified dataset)" section이 나옵니다. (책(76p) or pdf페이지(106))  해당 section의 내용을 참고하시면 dicom 파일을 다루는 또 다른 방법도 소개하고 있으니 참고하시면 좋을 듯 합니다!

https://pytorch.org/assets/deep-learning/Deep-Learning-with-PyTorch.pdf

안녕하세요.

이번 글에서는 DICOM format이 무엇인지 알아보도록 하겠습니다.

또한, DICOM 파일로 부터 영상 이미지를 추출하는 방법에 대해서도 알아보도록 하겠습니다.

 

(DICOM은 저도 본지 얼마 안돼서 잘 못 된 부분이 있을 수 있으니 해당 부분을 꼭 댓글로 말씀해 주시면 감사하겠습니다!)

 

1. DICOM format (.dcm)

DICOM file(.dcm 파일)은 아래와 같이 크게 두 파트(File Meta Information + Object Instance)로 구성되어 있습니다.

 

이미지 출처: https://www.opswat.com/blog/opswat-deep-cdr-now-supports-dicom-file-format

 

먼저, File Meta Information 즉, Header라고 불리는 부분이 어떻게 구성되어 있는지 알아보도록 하겠습니다.

이미지 출처: https://www.sciencedirect.com/topics/computer-science/formatted-file

 

1) File Meta Information

  1. Preamble: 128 byte로 구성된 dummy byte입니다. 주로 zero 값으로 구성되어 있는데, 필요시 특별한 정보를 담을 수 도 있습니다.
  2. DICOM prefix: Preamble 다음에 곧 바로 "D", "I", "C", "M"라는 글자가 나와야 DICOM 파일임을 알 수 있습니다. 쉽게 말해 이 파일이 DICOM 파일이다라는 인증 마크와 같다고 보면 될 것 같습니다.
  3. File Meta elements: This section specifies the File Meta Elements needed to support the formatting of the File Meta Information of the DICOM File Format. 

(↓Preamble&Prefix)

이미지 출처: https://slidesplayer.org/slide/12934045/

 

(File Meta Elements↓)

ex) Transfer Syntax: 데이터를 보내는 데 사용되는 인코딩 → bit dendian, JPEG compression, ETC...

이미지 출처: http://dicom.nema.org/dicom/2013/output/chtml/part06/chapter_7.html

 

 

2) Information Object

 

이미지 출처: https://www.sciencedirect.com/topics/computer-science/formatted-file

 

Information object 부분은 Data Element로 구성되어 있는데, Data Element가 실질적인 dataset이라고 보시면 됩니다.

 

이미지 출처: https://www.leadtools.com/help/sdk/v21/dicom/api/overview-basic-dicom-file-structure.html

 

Information Object의 구성요소라 할 수 있는 Data Set은 IOD (Information Object Definition) 형식을 따릅니다. IOD는 Entity-relationship model을 중심으로 information entities, modules, attributes로 구성되어 있습니다.

 

예를 들어, MRI(=MR Image)라는 것을 하나의 객체(information object)라고 설정하고, 해당 객체를 여러 entitiy를 이용해 표현합니다. 환자정보를 나타나는 entity, 검사정보를 나타내는 entity, 이미지정보를 나타내는 entity 등이 있습니다.

 

그리고 각각의 entity는 해당 entity에 어울리는 데이터 종류(=Module)들로 구성됩니다. 예를 들어, 환자정보에는 나이, 체중, 이름과 같은 데이터 종류 등이 있을거에요. 그리고 실질적으로 부여되는 구체적인 값들을 attribute라고 합니다.

 

이미지 출처: https://libertegrace.tistory.com/m/entry/Medical-Image-DICOMDigital-Imaging-and-Communications-in-Medicine?category=905970

 

앞서 잠시 언급했듯이, Information entity 종류는 굉장히 많습니다. 아래 그림을 보면 진하게 칠해진 가장 바깥쪽 테두리 부분이 entity입니다.

이미지 출처: https://slidesplayer.org/slide/12934045/

 

각각의 entity에 대한 설명은 아래 링크를 참고해주시면 될 것 같습니다.

(↓↓↓아래링크 접속 후, ctrl+F키 누른후 "Patient IE"를 검색↓↓↓)

http://dicom.nema.org/dicom/2013/output/chtml/part03/chapter_A.html

 

A Composite Information Object Definitions (Normative)

 

dicom.nema.org

 

 

그리고 각각의 entity는 아래와 같은 계층구조(연결관계)를 이루고 있습니다.

이미지 출처: https://www.web3.lu/dicom-standard/

 

Data element는 attribute에 속합니다. 각각의 data element들은 group과 element로 구성된 tag를 통해 구분 합니다.

  • 태그별로 환자 정보, 영상 취득 날짜 등 부가적인 meta 정보 포함
  • ex1) (0008,~): Modality 및 study 정보
  • ex2) (0010,~): Patient information (환자정보)
  • ex3) (0028,~): Image information → dimension, scale, etc...

 이미지 출처: https://towardsdatascience.com/understanding-dicom-bce665e62b72?gi=c2adb34ff1a5

 

Data element(=attribute)의 인코딩과 길이, attribute에 속한 데이터 타입과 format은 VR(Value Representation)에 의해 결정됩니다. 

 

[예시] {0x0010, 0x0010} PN 9 David Kim

  • 0x0010, 0x0010: Patient Name에 접근하는 Tag Key 이며
  • VR: Person Name을 나타내는 데이터 형태 → PN
  • Length: 이름이 길이 → 9
  • Value Field: Patient Name에 해당되는 값인 환자의 이름을 나타냅니다. → David KIm 

이미지 출처: https://slidesplayer.org/slide/12934045/

 

아래 그림은 여러 VR 종류이니 한 번 확인해보셔도 좋을 것 같습니다.

이미지 출처: https://slidesplayer.org/slide/12934045/

 

 

 

Image is also a data element. An archive server receives DICOM images as information objects from the acquisition computers.

 

DICOM에서 실제 Image데이터는 "Image entity → Image Pixel module → PixelData attribute" 로 접근하면 됩니다. 

  • Compressed image data type: bitmap
  • Non-Compressed image data type: jpeg, gif, etc...

 

※DICOM format (.dcm) 외에 Nifti format (.nii)도 의료 영상 데이터 포맷으로 사용되고 있으니 알아두시면 좋을 것 같습니다.

 

 

 

 

 

2. DICOM Viewer

DICOM 파일 열어볼 수 있는 응용 프로그램 (Viewer) 중에서 프리웨어로 사용할 수 있는 대표적인 viewer program은 Sante DICOM viewer입니다.

 

(↓↓↓Sante DICOM Viewer 다운로드↓↓↓)

https://www.santesoft.com/win/sante-dicom-viewer-pro/download.html

 

Sante DICOM Viewer Pro | Download

Important! The program is actually the original version of our software, and it works in demo mode only if you don't have a license key. If you have a license key: - Download and install the program. To unlock the program, select "HelpRegistration" from pr

www.santesoft.com

 

View를 사용하는 방식은 아래 영상을 참고하시면 될 것 같습니다. (12분부터)

https://www.youtube.com/watch?v=ULiAURY5kAE 

 

 

이외 다른 DICOM viewer들도 있는데, 아래 사이트에 접속하시면 다양한 DICOM viewer 종류들을 살펴보실 수 있으실 겁니다.

http://www.dclunie.com/medical-image-faq/html/part8.html#DICOMFileConvertorsAndViewers

 

Medical Image Format FAQ - Part 8

DICOM PHP Software (tools and applications): DICOM software - Nanodicom Original PHP File_dicom now no longer maintained and superceded by Nanodicom Displaying DICOM Images in PowerPoint Presentations: DICOM Public Servers: DICOM Publications - General: Pi

www.dclunie.com

 

 

 

 

 

3. Image extraction from DICOM format 

(DICOM에서 이미지 추출하는 방법)

https://smoh.tistory.com/413

 

[C# | FO-DICOM] Dicom에서 이미지를 추출하는 방법: A generic error occurred in GDI+.

fo-dicom을 사용해 dicom파일에서 이미지를 추출하는 방법에 대해 알아봅니다. 또한 해당 작업을 수행하며 겪은 "A generic error occurred in GDI+." 에러를 해결하는 방법에 대해서도 알아봅니다. Git에 나온

smoh.tistory.com

 

 

이상 DICOM에 대한 설명을 마무리하도록 하겠습니다.

 

 

 

[Reference]

https://www.insilicogen.com/blog/358

 

人Co BLOG :: 의료 영상 분석의 개요

Posted at 2020/09/27 18:26 Filed under 지식관리 4차 산업혁명 시대에서 인공지능은 다양한 분야에서 쓰이고 있고, 그중 의료 영역 내에서도 적용 범위가 확대되어 가고 있습니다. 영상 이미지로 정상 유

www.insilicogen.com

 

https://slidesplayer.org/slide/12934045/

 

(Digital Imaging and COmmunictions in Medicine) -디지털정보융합학과- 홍각표 - ppt download

0. Index Introduction General DICOM Concepts DICOM Network DICOM Service Class DICOM Image SOP Instance New Feature of DICOM

slidesplayer.org

 

https://ksiim.org/api/society/journal/download/123/157.pdf

 

 

 

안녕하세요.

이번 글에서는 의료 영상(Medical imaging)에서 사용하는 DICOM 파일이 어떻게 생겨났는지, 어떻게 이용되고 있는지 알아보도록 하겠습니다.

 

또한 DICOM이라는 것이 digital image이기 때문에, 기본적으로 digital image가 어떻게 습득이 되는지에 대해서도 알아보도록 하겠습니다.

 

 

1. 기존 딥러닝 분야에서의 이미지 데이터 format

보통 딥러닝에서 이미지를 다룰 때, 보통 한 픽셀에 0~255의 pixel value를 갖는 파일형식(ex: jpg, png 등)을 이용합니다. 

 

이미지 출처: https://ai.stanford.edu/~syyeung/cvweb/tutorial1.html

 

또한, 우리가 알고 있는 딥러닝 CNN 논문들을 보면 224×224 또는 448×448 같이 이미지 크기를 표준으로 하고 있다는 것을 볼 수 있습니다.

 

이미지 출처: https://neurohive.io/en/popular-networks/vgg16/

 

물론 최근에는 GAP(Global Average Pooling) 덕에 입력 사이즈를 제한하고 있진 않지만, 보통 1000×1000을 넘는 test를 하진 않죠. 왜냐하면, 1000×1000 크기의 이미지는 학습시키기 어려울 수 있기 때문입니다.

 

예를들어, 이미 1000×1000×3 이미지 자체만으로도 엄청난 대용량인데, 이러한 큰 사이즈의 이미지를 학습시키려면 딥러닝 모델이 좀 더 deeper해져야 좋은 결과를 얻을 수 있거라 생각됩니다 (물론 아닐 수 도 있습니다). 이처럼 이미지 크기에 비례해서 딥러닝 크기도 커지는 것이 일반적이기 때문에, GPU memory가 "딥러닝 모델용량+한 장의 대용량 이미지"을 감당할 수 없게 됩니다. 

 

만약, 운 좋게 한 장의 이미지 정도는 감당할 수 있다고 하더라도, 8개 이상의 batch를 잡아주고 학습시키는 건 불가능하겠죠. 물론 이 부분도 분산처리 학습 (ex: horovod) 같은 방법을 이용하면 어느정도 해결할 수 있지만, 여전히 batch size를 크게 설정할 수 없기 때문에 딥러닝 모델을 학습시키는데 여러 불안요소를 가져갈 수 밖에 없습니다.

 

하지만, DICOM format의 의료 영상이미지들은 한 장에 엄청난 용량을 차지하고 있습니다. 3000×3000 resolution을 사용하는 경우도 있죠. 만약, 이러한 DICOM 데이터들의 이미지 크기를 기존 딥러닝에서 사용하는 이미지 크기(ex: 224×224) 만큼 줄여버린다면 굉장한 이미지 정보의 손실이 있을 수 있습니다. 그렇기 때문에 DICOM에서 제공하는 resolution에 기반한 딥러닝 모델 연구가 또 필요한 것이죠.

 

DICOM은 이미지 정보외에 다양한 메타 데이터들을 담고 있습니다. 이러한 메타 데이터에는 나이나 성별 등이 포함이 되는데, 실제로 의료 영역에서 성별과 나이는 굉장히 중요한 정보입니다.

 

예를 들어, 어떠한 Chest X-ray를 볼 때도 나이, 성별에 따라 진단방식이 달라질 수 있습니다. Chest X-ray에서 어떠한 소견이 있을 때, 나이가 있으신 분이라면 일반적인 현상이라고 해석할 수 있는 반면에 해당 소견이 젊은 사람에게 발생한거라면 조금 문제가 있다고 판별할 수 있습니다.

 

이러한 메타 데이터와 의료 이미지 데이터를 잘 이용하면 multimodal 딥러닝 모델도 만들 수 있게 됩니다. 

 

결국 의료 영상(medical imaging) 분야에서 딥러닝 모델을 만들기 위해 알아야할 가장 기본이 되는 데이터가  DICOM입니다. 그럼 지금부터 DICOM에 대한 정의와 기원부터 알아보도록 하겠습니다.

 

 

2. DICOM (Digital Imaging and COmmunication in Medicine)의 정의와 기원

전기전자를 다루는 분야(IEEE)에서도 여러 표준규약들이 있습니다. 예를 들어, USB 같은 경우도 출시하는 회사마다 규격이 다 다르면 사용자들 입장에서 제품 중 어떤 제품을 사용 할지 혼란이 올거에요. 그래서 보통 국제단체(ex: IEEE)에서는 범용적으로 많이 쓰일 것 같은 제품에 사용되는 기술들에 한해 표준(protocol)을 만들어 이를 따르도록 합니다.

 

이미지 출처: http://coewww.rutgers.edu/www1/linuxclass2006/lessons/lesson4/sec_3.1.html

 

위와 같은 이유로 의료분야 또한 수 많은 표준들이 존재합니다. DICOM은 의료분야에서 사용되는 수 많은 표준 중 하나인데, 의료용 기기에서 디지털 영상자료를 표현하거나 디지털 영상자료을 이용해 통신할 때 (→디지털 영상자료를 주고 받을 때) 지켜야할 표준이라고 보시면 됩니다.

 

"의료용 디지털 영상 및 통신(Digital Imaging and Communications in Medicine, DICOM) 표준은 의료용 기기에서 디지털 영상표현과 통신에 사용되는 여러 가지 표준을 총칭하는 말"

 

그렇다면, DICOM 표준은 어떻게 해서 만들어 졌을까요?

간략하게 DICOM 표준을 만들기 위해 어떤 단체들이 참여했는지 알아보도록 하겠습니다.

 

1) 1983: ACR(American College of Radiology; 미국 방사선 학회)&NEMA(National Electrical Manufacturers Association; 미국 전기 공업회)에서 ACR-NEMA 디지털 영상전송 표준 위원회를 발족

  • ACR 역시 journal이 있으며 딥러닝 관련된 논문들이 많이 쏟아져 나오고 있습니다.

https://www.acr.org/Media-Center/ACR-News-Releases/2020/Journal-of-the-American-College-of-Radiology-Increases-Impact-Factor-in-New-Rankings

 

Journal of the American College of Radiology Increases Impact Factor in New Rankings

 

www.acr.org

이미지 출처: https://academic-accelerator.com/Impact-Factor-IF/kr/Journal-of-the-American-College-of-Radiology

 

2) 1985: ACR-NEMA 표준 버전 1.0이 RSNA(Radiological Society of North America; 북미방사선학회)에서 처음으로 발표

  • 방사선이라는 것이 굉장히 다양한 분야를 다루기 때문에, RSNA에서는 아래와 같이 세부적으로 분야를 나누어 관리하고 있습니다.

이미지 출처: https://pubs.rsna.org/

https://pubs.rsna.org/

 

RSNA Publications Online | Home

Librarians, take advantage of our free online trial offers for any of our journals. Learn more >>

pubs.rsna.org

이미지 출처: https://academic-accelerator.com/Impact-Factor-IF/kr/Radiology

 

 

3) 1988: ACR-NEMA 표준 버전 2.0이 RSNA에서 발표

 

4) 1992: RSNA 회의에서 DICOM 명칭의 표준이 제안

 

5) 1993: DICOM 첫 데모 버전이 발표

 

 

 

3. PACS (Picture Archiving and Communication System)

앞서 언급했듯이 DICOM은 기본적으로 디지털 영상 자료입니다. 그렇다면 이러한 디지털 자료들은 네트워크 통신을 통해 서로 주고 받을 수 도 있겠죠? 

 

병원에서는 디지털 의료영상 이미지(Chest X-ray, CT, MRI) 같은 것을 촬영하게 되면 병원의 PACS 서버로 전송되고, 의사들이 client system을 이용해서 영상을 판독하게 됩니다.

 

PACS는 디지털 의료영상이미지를 DICOM이라는 국제표준규약에 맞게 저장,가공,전송하는 시스템입니다. 

 

이미지 출처: https://www.researchgate.net/figure/Major-PACS-components-and-sample-DICOM-messages_fig1_268195635

 

X-ray, CT, MRI 같은 디지털 의료영상 (digital medical imaging) 장비를 사용하여 획득된 의료영상이미지는 DICOM형식으로 저장되게 되며 판독결과와 진료기록이 추가될 수 있습니다. 또한 네트워크를 통해서 병원 내, 외의 단말로 전송이 가능합니다.

 

 

 

4. Digital image 습득

앞서 정의한 DICOM에 대해서 다시 한 번 살펴보도록 하겠습니다.

 

"의료용 디지털 영상 및 통신(Digital Imaging and Communications in Medicine, DICOM) 표준은 의료용 기기에서 디지털 영상표현과 통신에 사용되는 여러 가지 표준을 총칭하는 말"

 

결국, 의료용 디지털 영상이라는 것도 기본적으로 digital image이기 때문에, digital image가 어떻게 습득되는지를 알고 있어야 합니다.

 

그럼 지금부터 디지털 이미지가 어떻게 얻어 지는지 알아보도록 하겠습니다.

 

이미지 출처: https://www.insilicogen.com/blog/archive/202009

 

1) Source

어떠한 object(객체)를 이미지로 표현해주기 위해 가장 먼저 요구되는 요소가 energy source 입니다. 예를 들어, 우리가 카메라로 어떤 물체를 찍는 것은 빛(light source)에 반사되는 객체를 capture하는 것과 같습니다.

 

 

 

의료 영상(medical imaging)에서도 특정 객체를 디지털 이미지로 표현하기 위해서는 energy source가 필요한데, 방사선을 사용할 경우 X-ray, CT, PET 영상 이미지를 얻을 수 있고, 자기장을 이용하면 MRI 영상 이미지를 얻을 수 있습니다.

 

이미지 출처: https://en.wikipedia.org/wiki/Projectional_radiography

 

(↓↓↓X-ray, CT 이미지에 대한 설명 ↓↓↓)

https://89douner.tistory.com/257?category=991951 

 

2-1. 2D 영상의료(medical imaging) 이미지란? (Feat. X-ray, CT, 전처리)

안녕하세요. 이번 글에서는 2D 이미지로 사용되는 대표적인 영상이미지인 X-ray와 CT에 대해서 알아보도록 하겠습니다. 먼저, X-ray, CT에 대해 간단히 알아본 후, 2D 영상 이미지에서 사용되는 전처

89douner.tistory.com

 

(↓↓↓MRI PET에 대한 설명 ↓↓↓)

https://89douner.tistory.com/258?category=991951 

 

2-2. 2D 영상의료(medical imaging) 이미지란? (Feat. MRI, PET, 초음파, 내시경 영상이미지)

안녕하세요. 이번 글에서는 MRI, PET, 초음파, 내시경 영상 이미지에 대해 알아보도록 하겠습니다. 사실 MRI, PET, 초음파, 내시경 영상 등을 딥러닝에 적용해 본적이 없기 때문에, 해당 이미지들에

89douner.tistory.com

 

 

2) Sampler

특정 energy source로 부터 어떤 이미지(아래 그림의 맨 왼쪽 부분)를 획득했다고 가정해보겠습니다.

아래 그림의 맨 왼쪽 부분에 표시된 object에서 A에서 B까지 색의 변화를 표현하면 오른쪽 이미지 처럼 continous한 그래프 형태를 띄는 것을 알 수 있습니다. 이러한 continuous한 이미지를 디지털화 시켜주기 위해서 가장먼저 하는 것은 sampling 작업입니다.

 

이미지 출처: https://slidetodoc.com/image-processing-digital-image-fundamentals-by-dr-ferda/

 

[Sampling 작업]

  1. 우선 A에서 B까지의 continous한 그래프에서 일정 간격을 두고 값들을 sampling(표본추출)을 합니다.  
  2. sampling한 수가 결국 x축에서 discrete 범위가 됩니다.
    • 예를 들어, 아래의 그림 같은 경우는 23개의 영역이 되는데, 위에서 언급한 A에서 B까지의 영역이 23개의 pixel이 존재한다는 말과 동일합니다. (보통 2D에서는 pixel로 표현되고, 3D에서는 voxel로 표현됩니다)
  3. 즉, sampling 과정에서 추출한 sampling 수가 digital image의 resolution을 결정한다고 볼 수 있습니다.
  4. 그리고 이때 sampling을 통해 생겨난 각각의 pixel들의 값(=y축)을 intensity라고 합니다.
    • 여기서 중요한 것은 아직 이때의 pixel값이 우리가 흔히 알고 있는 discrete(0~255)의 범위를 갖는것이 아닌 continuous한 범위를 갖고 있다는 것을 인지해야 합니다 (아래 이미지에서는 sampling된 요소들의 값들(=파란색 points)이 discrete하게 표현되어 있으나 실제로는 sampling된 y값은 실수 값을 갖을 수 있습니다. 아래 파란색 points들은 quantization이 적용된 결과 입니다. quantization은 바로 뒤에서 설명하겠습니다.)

이미지 출처: https://commons.wikimedia.org/wiki/File:4-bit-linear-PCM.svg

 

3) Quantization

앞서 언급했듯이, sampling 단계에서 얻은 intensity는 continous 특성을 갖는 실수 범위를 갖습니다. 이러한 continous한 값을 디지털화 시켜주기 위해 quantization이라는 기법이 적용됩니다. 

 

"The continuous range of light(energy) intensity (0<x<i) received by the digital image acquisition system need to be quantized to gray level (0~255)"

이미지 출처: https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.slideshare.net%2FPournamyRameez%2Fimage-processing-presentation-6969121&psig=AOvVaw1EGZyQbsmINkTSnvo1xldb&ust=1625389599778000&source=images&cd=vfe&ved=0CAoQjRxqFwoTCJjJ1KPGxvECFQAAAAAdAAAAABAJ

 

우리가 흔히 알고 있는 pixel 값은 8비트 기준으로 0~255의 범위(2^8)로 표현합니다.

이미지 출처: https://www.processing.org/tutorials/color/

 

하지만 꼭 8bit로 표현할 필요는 없습니다. 때에 따라서는 16bit의 범위(2^16)로 표현할 수도 있고, 1bit의 범위로 표현할 수 도 있습니다. 즉, 사용되는 bit에 따라 표현하려는 색의 범위가 결정됩니다. 

 

이때, 색의 범위를 위해 사용되는 bit 수를 bit depth라고 합니다.

 

이미지 출처: https://digamation.wordpress.com/2008/07/18/understanding-bit-depth/

 

표현하려는 범위가 커질 수록 bit depth 또한 커지고, 이에 따라 디테일한 색정보를 표현할 수 있습니다.

 

이미지 출처: https://slidetodoc.com/image-processing-digital-image-fundamentals-by-dr-ferda/

 

위에서 설명한 내용에서 중요한 용어들을 정리하면 아래와 같습니다.

  • Resolution: Sampling 갯수=이미지 사이즈
  • Intensity: Sampling point(위치: 2D→pixel, 3D→voxel)에서의 값
  • Gray level: quantization → pixel값 0~255

 

지금까지 언급한 내용들을 하나의 이미지로 표현하면 아래와 같습니다.

 

이미지 출처: https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.slideshare.net%2FAmnaakhaan%2Fimage-acquisition-and-representation&psig=AOvVaw2T0C6Z5qpYDoJkmnBMWi22&ust=1625391253561000&source=images&cd=vfe&ved=0CAoQjRxqFwoTCPCF3rfMxvECFQAAAAAdAAAAABAP

 

 

지금까지 DICOM에 대한 설명과 digital image를 습득하는 과정에대해 알아보았습니다.

다음 글에서는 지금까지 배운 내용을 기반으로 DICOM file format이 어떻게 구성되어 있는지 알아보도록 하겠습니다.

 

 

 

 

 

[Reference]

https://ko.wikipedia.org/wiki/%EC%9D%98%EB%A3%8C%EC%9A%A9_%EB%94%94%EC%A7%80%ED%84%B8_%EC%98%81%EC%83%81_%EB%B0%8F_%ED%86%B5%EC%8B%A0_%ED%91%9C%EC%A4%80

 

의료용 디지털 영상 및 통신 표준 - 위키백과, 우리 모두의 백과사전

의료용 디지털 영상 및 통신(Digital Imaging and Communications in Medicine, DICOM) 표준은 의료용 기기에서 디지털 영상표현과 통신에 사용되는 여러 가지 표준을 총칭하는 말로, 미국방사선의학회(ACR)와 미

ko.wikipedia.org

 

https://slidesplayer.org/slide/12934045/

 

(Digital Imaging and COmmunictions in Medicine) -디지털정보융합학과- 홍각표 - ppt download

0. Index Introduction General DICOM Concepts DICOM Network DICOM Service Class DICOM Image SOP Instance New Feature of DICOM

slidesplayer.org

 

안녕하세요.

이번 글에서는 MRI, PET, 초음파, 내시경 영상 이미지에 대해 알아보도록 하겠습니다.

 

사실 MRI, PET, 초음파, 내시경 영상 등을 딥러닝에 적용해 본적이 없기 때문에, 

해당 이미지들에 대한 자세한 정보들은 관련 프로젝트를 할 때,

더 추가하도록 하겠습니다.

 

 

1. MRI

(↓↓↓MRI 원리↓↓↓)

https://www.youtube.com/watch?v=P_ZD9epgwfU 

 

앞선 글에서 언급한 X-ray, CT 의 가장 큰 장점은 짧은 촬영시간과 적은 비용을 들 수 있습니다.

X-ray 같은 경우는  단 1분이내면 촬영이 끝나고, CT 촬영 또한 4분이면 마무리가 됩니다. 

 

하지만, X-ray, CT 같은 경우는 방사선 노출을 피할 수 없으며, 근육조직이나 혈관 같은 부분을 정밀하게 촬영하지 못하는 단점이 있습니다. 그래서 뇌의 구조적 변화를 살피는 것이 어려운 경우가 많습니다.

 

반면에, MRI의 경우에는 자기장을 이용하기 때문에 방사선에 노출될 위험이 없고, 뇌의 구조적 변화를 살필 수 있을 정도로 정밀한 해상도를 출력하기 때문에 'Alzheimer's Disease (치매)' 같은 질병을 영상학적으로 판단할 때 MRI를 주로 사용합니다. 

 

이미지 출처: https://www.nature.com/articles/s41598-018-29295-9

 

하지만 MRI 경우에도 단점은 있습니다.

  • 25분 정도 되는 긴 촬영시간 → 폐쇠공포 유발 가능
  • 큰 기계 소음
  • 자기장을 이용하기 때문에 몸 내부에 철로 만든 의료기기가 내장 되어 있으면 촬영이 불가능할 수 있음

 

 

 

2. PET (양전자 단층 촬영)

CT, MRI 같은 경우는 해부학적 변화를 보기 때문에 초기 질병을 발견하기 힘든 경우가 많습니다.

예를 들어, 암세포가 어느 정도있어야 CT로 확인이 가능한데, 암세포가 어느 정도 있다는 것은 어느 정도 암이 진전된 상태를 이야기 합니다.

 

다시말해, 암을 해부학적으로 확인하기 위해선 어느정도 암이 진전된 상태여야 CT 상으로 확인이 가능합니다. 

 

이러한 단점을 극복하고자, 핵 의학자들이 초기 질병을 발견할 수 있도록 만든 기술이 PET 입니다.

PET은 해부학적 변화가 일어나기 전에 생화학적 기능변화를 영상화하여 보는 기술입니다.

PET을 이용하면 인체의 생화학적 대사 이상을 보기 때문에 초기에 질병을 발견할 확률이 높죠.

 

이미지 출처: https://m.blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=lhc930102&logNo=221164468799&categoryNo=6&proxyReferer=

 

PET이 어떤 원리로 동작하는지 알아보도록 하겠습니다.

 

암은 기본적으로 에너지(혈액, 영양)을 흡수하는 성향이 있습니다. 그래서, 보통 암이 생기면 암세포에게 내 영양분을 다 뺏기게 되고, 필요한 기관에 충분한 에너지가 전달이 안되게 됩니다.

 

핵 의학자들은 이러한 암세포의 성향을 이용해 암의 위치를 발견하고자 했습니다. 

예를 들어, 암세포가 포도당을 흡수하는데, 흡수되는 포도당에 방사선 물질이 결합되어 있는 경우, 해당 방사선이 암세포에 붙게되고, 암세포에 붙은 방사선이 방출되면서 암세포 위치가 촬영이 되는 원리이죠.

 

쉽게 순서대로 정리해보면 아래와 같습니다.

  1. 포도당과 방사능 물질을 결합한 약물(=조영제)을 몸에 투과한다.
  2. 해당 약물을 몸 전체를 돌아다니면서 암세포 같은 곳에 들러붙는다.
  3. 암세포에 붙은 약물에는 양전자가 있는데, 이 양전자가 주위 음전자와 부딪혀 방사선을 방출한다.
  4. 이때 PET 촬영 기기가 방출하는 방사선을 capture해서 해당 위치들을 영상화 한다. 

 

(↓↓↓위의 순서를 보여주는 영상↓↓↓)

https://www.youtube.com/watch?v=oySvkmezdo0 

 

앞서 언급한 것 처럼 해부학적으로 발견하기 힘든 초기 암을 진단하기 위해 사용되기도 하지만,

PET-CT는 암 판정(by CT)을 받고 암의 형상, 전이여부를 알기 위해 찍기도 합니다.

 

하지만, PET 역시 단점을 갖고 있습니다.

아무래도 방사능 물질이 체내에 주입되다보니 걱정이 되긴 하겠죠.

 

 

 

3. 초음파

(↓↓↓ 초음파 원리 ↓↓↓)

https://www.youtube.com/watch?v=PwzbsVZIJ8k 

 

초음파의 가장 큰 장점은 아래와 같이 정리할 수 있습니다.

  1. 방사선에 노출되지 않음 → 그래서 보통 뱃속 태아 상태를 확인하기 위해 사용됨
  2. 관절염 같은 질병은 해당 관절에 물이 있는지 여부를 보고 판단하는데, 초음파는 물방울 만큼의 소량의 물만 있어도 확인이가능 → 관절염 또는 연부조직 같은 곳의 상태를 확인할 때 탁월
  3. 약물 투여 치료시, 정확한 위치에 투여해야 하는 경우 초음파로 미리 해당 부위를 찾아내고 주입 
  4. 한 부위 만을 실시간 촬영 가능  → 즉, 한 부위에서 시간별 이미지를 얻을 수 있음(시계열 데이터로도 분석가능)

 

개인적으로 위에서 언급한 '3, 4'번의 장점은 딥러닝의 장점과 잘 융합될 수 있을거라 생각합니다.

 

예를 들어, 3번 같은 경우는 어떤 약물을 사람의 체내에 주입해야 할 때, 실시간 초음파 이미지를 통해 해당 부위를 찾고, 찾은 위치에 약물을 주입하게 하면 많은 도움이 될 것이라 생각됩니다. (로봇이 주입하면 항상 정량대로 주입할 수 도 있겠죠?)

 

4번 같은 경우는 실시간 이미지들을 분석해, anomaly detection 기법을 적용해 볼 수 있겠네요. 예를들어, 근육의 움직임이 이상하다던가, 혈관과 관련된 움직임 패턴이 이상하던가 말이죠.

 

 

 

4. 내시경

(↓↓↓ 내시경 ↓↓↓)

https://www.youtube.com/watch?v=-QzM4wjMx28 

 

앞서 설명한 이미지들은 보통 무언가를 투과시켜 반사되는 양을 측정해 이미지화 한 것들입니다. 

그렇기 때문에, 실제 장기들의 상태를 확인하는 것이 힘들죠.

그래서, 내시경 같은 장비를 이용하면 직접 장기를 촬영하기 때문에 "식도, 위, 십이지장, 대장, 방광 등"에 대한 컬러 이미지를 얻을 수 있게 됩니다. 

 

Kaggle이나 MICCAI 같은 곳에 가면 아래와 같은 내시경 이미지를 이용해 classification, detection, segmentation 등의 challenge를 진행합니다.

이미지 출처: https://www.kaggle.com/balraj98/polyp-segmentation-in-colonoscopy-frames-deeplab

 

 

 

5. 조직검사 이미지 (Feat. digital pathology)

앞서 알아본 X-ray, CT, MRI 등과 같은 이미지들에서 암을 찾을 수 있다고 설명했습니다.

하지만, 암을 찾은 것이 아니라 "암을 추정"하는 것이라고 말하는 것이 더 정확한 표현이라고 할 수 있습니다.

 

보통 암을 확진하는 순서는 아래와 같습니다.

  1. CT, MRI, X-ray 등과 같은 영상 이미지를 통해 병변을 의심하게 된다.
  2. 특정 병(ex: 암)이라고 의심되면 조직검사를 하게 된다.
  3. 조직검사는 아래와 같은 순서로 진행된다.
    1. 의심되는 부위에서 일부 조직을 떼낸다.
    2. 해당 조직을 "병리과"에서 현미경으로 관찰한다. 이때, 현미경으로 관찰되는 이미지를 digital pathology image라고 한다.
    3. 해당 조직을 검사해 특정 병(ex:암)이라는 소견이 나오면, 최종적으로 확인을 판정한다.

확진 판정 후에 수술로 제거할 수 있으면 제거하고, 너무 단계가 많이 진행 됐으면 화학적 치료 (ex:항암치료) 까지 진행하게 됩니다.

 

요약하자면, 조직검사를 통해 얻은 digital pathology image를 기반으로 암인지 아닌지 classifciation 해야 확진판정을 할 수 있게 되는 것입니다.

 

이미지 출처: https://www.kaggle.com/c/histopathologic-cancer-detection

 

 

(↓↓↓조직검사 과정↓↓↓)

https://www.youtube.com/watch?v=Cg4nOLeOW5U 

 

(↓↓↓루닛에서 계획하는 의료 딥러닝 process↓↓↓)

https://www.youtube.com/watch?v=ohwucxAoODE 

 

 

지금까지 설명한 영상이미지외에 안과에서 사용하는 retina 이미지도 있으며, 

정말 다양한 영상 이미지들이 존재하기 때문에 딥러닝이 이러한 병변들을 발견하는데 큰 기여를 할 수 있을거라 생각합니다.

안녕하세요.

이번 글에서는 2D 이미지로 사용되는 대표적인 영상이미지인 X-ray와 CT에 대해서 알아보도록 하겠습니다.

 

먼저, X-ray, CT에 대해 간단히 알아본 후, 2D 영상 이미지에서 사용되는 전처리 기법에는 어떤 종류들이 있는지 알아보도록 하겠습니다.

 

아래 영상을 미리 한 번 보시면 글을 읽기 수월 하실 거에요!

 

(↓↓의료 이미지, X-ray, CT, MRI에 대한 간단한 설명)

https://www.youtube.com/watch?v=wbqeIpigxfs 

 

※Medical Imaging이라는 수업에서는 이러한 기기들의 물리적인 작동 방식에 대해서 설명하고 있으나, 여기에서는 단순히 기계의 작동원리나 어떻게 이미지들이 생성되는지만 간단히 알아보도록 하겠습니다.

 

 

 

 

1. X-ray 이미지 (Feat. Digital detector)

X-ray를 이용해 병변을 분류하는 과정은 아래와 같습니다.

 

1) X-ray generator에서 방사선 발사

2) 발사된 방사선이 Object(사람 또는 다른 객체)에 투과

 

이미지 출처: https://en.wikipedia.org/wiki/X-ray_detector

 

3) 사람 내부 인체 조직에 따라 X-ray detector에 있는 image receptor에 투과되는 방서선 양이 다름

 

이미지 출처: https://slideplayer.com/slide/7432411/

Symptom Color
Black Air
Dark gray Fat
Light gray Soft tissues
ex) Water
White Calcification
ex) bone
Whiter Metal

 

 

 

 

4)  투과된 방사선량에 따른 병변 분류

  • 예를 들어, X-ray를 기반으로 폐렴(pneumonia)을 분류한다고 해보겠습니다.
  • 보통 폐렴같은 경우는 X-ray 장비로도 진단을 합니다.
  • 폐렴이 의심되는 환자를 촬영할 땐, image Receptor를 가슴 쪽에 두고 사진을 찍게 되죠. 보통 이러한 사진을 Chest-Xray라고 합니다.
  • 폐는 사람의 호흡과 관련된 기관입니다. 폐를 구성하는 것 중하나는 폐포(alveoli)인데, 여기에서 혈액과 가스의 교환이 이루어집니다. 

이미지 출처: https://kr.freepik.com/premium-vector/human-respiratory-system-lungs-alveoli-medical-diagram-inside-larynx-nasal-throttle-anatomy-breath-pneumonia-smoke-anatomy-illustration-healthcare-and-medicine-infographic_7289256.htm

 

  • 폐렴(Pneumonia)은 공기 중에 떠다니는 있는 세균, 곰팡이 및 바이러스가 체내에 흡입되고 폐포(pulmonary alveoli)에 안착한 후 염증을 일으키면서 발생합니다. 이 과정을 통해 다양한 호흡기 질환으로 합병증이 나타나고 폐 전체에 염증을 일으켜 심각한 결과를 초래하게 됩니다.

 

이미지 출처: https://www.shutterstock.com/ko/image-vector/pneumonia-concept-background-realistic-illustration-vector-1204624771

 

  • 정상적인 폐포의 내부는 기체로 이뤄진 상태이지만 폐렴으로 인해 손상된 폐포에는 염증이 있어 액체 물질로 가득 차 있습니다.
  • 본래 폐포는 공기(기체) 상태인데, 폐렴으로 인해 액체가 폐포에 가득해지면 X-ray 촬영 시, 아래와 같이 X-ray 이미지가 나오게 됩니다. (왼쪽 이미지: 정상(normal), 오른쪽 이미지: 폐렴(pneumonia))

이미지 출처: https://www.bmj.com/content/370/bmj.m2426

 

 

[Q. X-ray 이미지에서 AP, PA는 무엇을 의미하나요?]

Chest X-ray (CXR)를 찍을 때 찍는 방향에 따라 AP(Anterior-Posterior)PA(Posterior-Anterior)로 나눌 수 있습니다.

이미지 출처: https://www.youtube.com/watch?v=iG0gKrXLnpU

Chest X-ray의 경우 찍는 방향에 따라 나오는 X-ray 이미지 상태가 다릅니다.

보통, AP 방식으로 찍기보다 PA 방식을 찍는데 그 이유는 아래와 같습니다. 

  • AP view: 심장이 확대되어 보이며, 견갑골에 의해 폐야가 많이 가려지며, 횡경(Diaphragm)막이 높이 올라가 있어 폐가 좁게 나타남
  • 따라서 COVID-19 선별진료소와 같이 Chest AP에서 얻은 CXR 이미지는 폐 병변을 보기에는 사실 썩 좋지 않은 경우가 꽤 있다. (Dataset 수집할 때 이러한 부분도 고려하면 좋을 듯)

이미지 출처: https://www.slideshare.net/drvikrampatil/approach-to-chest-xray-and-interpretation

  • 위의 그림을 보면 같은 환자인데 Chest AP에서는 심장 size도 크고 그리고 견갑골에 의해서 폐야도 많이 가려지는 형태고 그 다음에 diaphragm도 많이 올라와 있기 때문에 PA와 비교했을 때 상당히 폐야가 좁고, 굉장히 내부의 vessel도 굉장히 engorgement(폐에서의 염증성 충혈)되어 보이는 경우가 많습니다.
  • 이러한 경우, GGO 병변을 딱히 구분할 수 없거나 잘 안보이는 경우가 생길 수 도 있습니다. → 참고로 GGO는 COVID-19에서 발견되는 주요 소견 중 하나입니다.

 

  • 또한, Chest X-ray는 누워서 찍기보단 서서 찍는 것이 좋습니다. 

이미지 출처: https://slideplayer.com/slide/7432411/

 

  • 아래의 환자는 effusion이 있던 환자인데, chest AP 를 누워서 찍으니까 effusion이 전부 뒤로 깔려서 폐 병변을 보기가 상당히 어렵게 됐습니다. 가끔 chest X-ray 데이터셋을 보면 저런 경우를 종종 볼 수 있는데 이런 경우 effusion이 있는 환자가 누워서 찍은건 아닌지 고려한 후 데이터셋을 제거하는 것이 필요할 듯 보입니다.

 

 

(↓↓↓AP, PA에 대한 자세한 설명은 아래 사이트를 참고해주세요↓↓↓)

https://www.radiologymasterclass.co.uk/tutorials/chest/chest_quality/chest_xray_quality_projection

 

Chest X-ray Quality - Projection

Key points Posterior-Anterior (PA) is the standard projectionPA projection is not always possibleBoth PA and AP views are viewed as if looking at the patient from the frontPA views are of higher quality and more accurately assess heart size than AP imagesI

www.radiologymasterclass.co.uk

 

 

 

 

2. CT 이미지

(↓↓CT 가 탄생한 이유↓)

https://youtu.be/xf1eZAp7Mq8

 

X-ray 이미지는 2D로 볼 수 있는 반면, CT는 X-ray generator(source)가 여러 측면에서 촬영하기 때문에 2D 이미지와, 회전을 통해 얻은 이미지들을 이용 (by interpolation ← 몰라도 될 것 같습니다 ㅎ;;) 해 3D 이미지를 얻기도 합니다.  

 

이미지 출처: https://en.wikipedia.org/wiki/CT_scan

 

아래 gif 이미지에서 보이는바와 같이 CT를 촬영하게 되면 360도 촬영을 하게 됩니다.

이미지 출처: https://gifs.com/gif/history-of-computerized-tomography-ct-scanner-vVe5bq

 

위와 같이 촬영을 하면 아래와 같은 축으로 여러 이미지가 나올 수 있죠.

이미지 출처: https://www.pinterest.co.kr/pin/114490015511169070/

 

위의 이미지에 해당하는 축(axis) 마다 다른 형태의 CT 이미지를 출력하게 됩니다.

이미지 출처: https://www.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/53745/versions/52/previews/html/examples.html

 

COVID-19 데이터 셋을 보면 대부분 Trans-axial(=Transverse)에 해당 하는 축의 이미지들로 구성되어 있습니다.

이미지 출처: https://www.kaggle.com/kmader/siim-medical-images

 

 

폐 위치 관련한 용어를 잠시 보여드리면 아래와 같습니다.

이미지 출처: https://www.researchgate.net/figure/Schema-of-central-and-peripheral-locations-This-diagram-showed-definition-of-central_fig2_279943115

 

이미지 출처: https://epos.myesr.org/posterimage/esr/ecr2010/104360/mediagallery/298132

 

 

(↓↓↓CT 이미지 읽는 장면 아래 영상에서 3:29~3:38 참고↓↓↓)

https://www.youtube.com/watch?v=P6nweaRTiLs 

 

 

아래 사진을보면 정상인, 폐렴, COVID-19 의 폐 CT 사진입니다.

아래 사진을 기반으로 하면 다음과 같이 해부학적으로 병변을 분류할 수 있겠죠.

  • Normal: 깨끗함
  • Pneumonia: 광범위하게 GGO(Ground Glass Opacity)가 퍼져있음
  • COVID-19: peripheral부분에 GGO가 위치하기도 하며, 진행단계에 따라 GGO 정도가 심해지는 consolidation 현상도 볼 수 있습니다.

※ 물론 이것은 아래 사진만 살펴본 예입니다. 실제로 폐렴(pneumonia)은 그 종류가 다양하기 때문에, CT 상에서 보여지는 특징도 굉장히 다양합니다.

이미치 출처: https://www.techscience.com/cmc/v68n1/41834/html

 

 

 

 

3. X-ray, CT 이미지 전처리하기 (Feat. 히스토그램)

전통적으로 사용되는 X-ray 이미지 같은 경우는 앞서 설명한 것처럼 image receptor에 투과된 방사선 양을 토대로 보여지게 됩니다.

 

예전에는 이미지를 필름에 찍어내는 방식을 이용한 X-Ray 검사를 많이 진행했지만,

몇년 전부터는 해당 방사선 양을 직접 전송해 영상화하는 Digital Radiography (DR)을 많이 사용하고 있다고 합니다.

 

 

이미지 출처: http://www.sprawls.org/resources/DIGRAD/module.htm

 

좀 더 구체적으로 설명하자면 아래와 같습니다.

  • receptor는 N×N grid 형태로 있습니다.
  • 각각의 위치는 하나의 pixel이 됩니다.
  • receptor에 exposure된 방사선 양은 analog/digital converter에 의해 픽셀 값을 갖는 digtal image로 변환됩니다.  

이미지 출처: http://www.sprawls.org/resources/DIGRAD/module.htm

 

 

1) Histogram analysis

히스토그램의 여러 어원 중 하나는

'똑바로 선 것'이라는 뜻을 가진 histos에 '그림'을 뜻하는 gram이 합쳐진 합성어라고 합니다.

풀어설명하면 '똑바로 선 막대 그림'이라는 뜻으로 사용되기도 합니다.

 

수학에서 히스토그램은 표로 되어 있는 도수 분포표를 정보 그림으로 나타낸 것입니다.

그렇다면 이미지에서 히스토그램은 무엇을 의미할까요?

 

쉽게 말하자면 이미지 상에 나타난 색상 값들을 도수분포표로 나타낸 것이라고 볼 수 있습니다.

예를 들어, 흑백 이미지에 대한 히스토그램은 아래와 같이 표현 할 수 있습니다.

  • (a) 이미지는 흑백 이기 때문에 X축은 pixel 값 범위 "0~255"로 표현할 수 있습니다.
  • 해당 픽셀 값들이 얼마나 많은지 도수분포표를 통해 나타내면 그것이 이미지 히스토그램입니다.

이미지 출처: https://www.semanticscholar.org/paper/Triad-Histogram-to-Enhance-Chest-X-Ray-Image-Senthilkumar/74557cf53787b0794fb3b6c3207010179abe81d4/figure/0

 

2) X-ray 이미지 전처리(preprocessing) 기법들

2-1) HEQ (Histogram EQualization)

몇몇 “Original(원본)" 이미지는 contrast 가 매우 떨어지는 경우가 있습니다. 

즉, 이미지 픽셀이 0~255에 고르게 퍼져있는 게 아니라, 일부분에 몰려있다는 것을 확인할 수 있죠.

아래 그림을 기준으로 설명하면, "Original" 이미지(→(a) 이미지)에 "Histogram Equalization“ 기법을 적용시킬(→(c) 이미지) 때, 이미지의 contrast 가 증가한 것을 확인할 수 있습니다.

 

"Histogram equalization (HEQ) is a digital image processing technique used for contrast enhancement across a number of modalities in radiology."

HEQ에 대한 수식은 아래와 같습니다.

수식에 대한 직관적인 설명은 여기링크를 참고해주세요! 

 

 

(↓↓↓HEQ Open CV 함수↓↓↓)

https://docs.opencv.org/3.4/d4/d1b/tutorial_histogram_equalization.html

 

OpenCV: Histogram Equalization

Prev Tutorial: Affine Transformations Next Tutorial: Histogram Calculation Goal In this tutorial you will learn: What an image histogram is and why it is useful To equalize histograms of images by using the OpenCV function cv::equalizeHist Theory What is a

docs.opencv.org

 

(↓↓↓HEQ pytorch 함수↓↓↓)

https://pytorch.org/vision/stable/transforms.html

 

torchvision.transforms — Torchvision master documentation

torchvision.transforms Transforms are common image transformations. They can be chained together using Compose. Additionally, there is the torchvision.transforms.functional module. Functional transforms give fine-grained control over the transformations. T

pytorch.org

 

 

2-2) AHE (Adaptive Histogram Equalization)

2-3) N-CLAHE (Contrast Limited Adaptive Histogram Equalization)

 

AHE와 N-CLAHE에 대한 설명은 아래 블로그를 참고하시는게 도움이 되실 것 같아, 따로 설명은 하지 않고 관련 링크를 걸어두도록 하겠습니다.

 

https://3months.tistory.com/407

 

Adaptive Histogram Equalization 이란 무엇인가?

Adaptive Histogram Equalization 이란 무엇인가? Adaptive Histogram Equalization (AHE) 이란 이미지 전처리 기법으로 이미지의 contrast 를 늘리는 방법이다. Histogram Equalization (HE) 방법을 조금 더 개..

3months.tistory.com

 

(↓↓↓ Open CV에서 N-CLAHE 사용 예제↓↓↓)

https://docs.opencv.org/master/d5/daf/tutorial_py_histogram_equalization.html

 

OpenCV: Histograms - 2: Histogram Equalization

Goal In this section, We will learn the concepts of histogram equalization and use it to improve the contrast of our images. Theory Consider an image whose pixel values are confined to some specific range of values only. For eg, brighter image will have al

docs.opencv.org

 

 

이미지 출처: https://www.semanticscholar.org/paper/Triad-Histogram-to-Enhance-Chest-X-Ray-Image-Senthilkumar/74557cf53787b0794fb3b6c3207010179abe81d4

 

 

위의 전처리 방식 외에 Contrast, brightness 등 여러 다른 방식들도 같이 사용될 수 있다는 점 알아두세요!

CT 이미지 또한 X-ray 선을 이용한 것이 때문에 X-ray와 비슷한 전처리 기법이 사용된다는 것을 알아두시면 좋을 것 같습니다~

 

 

 

[전처리를 배우고 딥러닝에 적용해본 후기]

위와 같은 전처리 기법을 딥러닝에 적용했을 때, 유의미하게 CNN 성능이 개선되는 것을 확인할 수 있었습니다.

 

다음 글에서 설명하겠지만, 전처리한 이미지를 segmentation 같은 모델에 적용했을 때 눈에 띄게 향상되는 모습들을 빈번하게 살펴볼 수 있었습니다. 

 

딥러닝 모델 자체에 대한 연구도 중요하지만, 의료 이미지를 다루는 영역에서는 전처리 영역에 대한 테크닉을 적절히 구사할 줄 알아야 한다고 생각했습니다. 즉, 전처리를 적절하게 구사해야 딥러닝 모델의 성능향상을 이끌 수 있을거라 생각합니다.

 

(↓↓↓아래 글에 제가 적용했던 사례들이 있으니 확인해보셔도 좋을 것 같습니다↓↓↓)

https://89douner.tistory.com/256

 

 

 

지금까지 간단하게 X-ray, CT 이미지들과 관련 전처리 기법들을 알아봤습니다.

다음 글에서는 MRI, PET, 초음파, 내시경에서 얻어지는 medical imaging들을 알아보도록 하겠습니다~

 

안녕하세요

지난글에 이어 이번에도 의료 인공지능에서 사용하는 대표적인 지표들에 대해 소개하려고 합니다.

 

(↓↓↓지난 글 확인↓↓↓)

https://89douner.tistory.com/253

 

1. 의료 인공지능에서 사용하는 대표적인 지표들 (1) - TP, FP, TN, FN, and Confusion matrix

안녕하세요 이번에는 의료 인공지능에서 사용하는 대표적인 지표들에 대해서 소개하려고 합니다. 사실 머신러닝을 공부하신 분들이나, 의학통계를 공부하신 분들은 다들 알고 있을 개념이지만

89douner.tistory.com

 

이미지 출처:  https://www.thelancet.com/journals/landig/article/PIIS2589-7500(20)30199-0/fulltext

 

이전 글에서 설명했던 예시를 기반으로 글을 작성하도록 하겠습니다. 예시를 요약하면 아래와 같습니다.

  • COVID-19를 분류하는 딥러닝 모델
  • Positive class: COVID-19
  • Negative classes: Pneumonia, Normal

 

※ 이전에 작성해둔 PPT로 설명하는게 좋다고 판단하여, 해당 PPT 슬라이드를 이미지로 올렸습니다.

 

 

1. Specificity = Selectivity = TNR(True Negative Rate))

Specificity 지표가 낮다는건 TN에 비해 FP 비율이 높다는 것을 의미합니다.

FP가 높다는 건 실제 음성환자를 양성이라고 오진하는 경우가 많다는 것인데,

이러한 비율이 높다면 환자가 불필요한 비용을 지불한 사례가 많았다고 볼 수 있습니다.

이러한 문제가 생긴다면 의료소송이 많아질 수 도 있겠네요.

 

만약 아래 논문에서 나온 specificity 값이 좋은 수치라고 가정해보겠습니다. 

그렇다면 이 논문에서 제시한 딥러닝 모델을 하용해야 할까요?

 

결과부터 말씀드리면, 아직까진 섣불리 사용하긴 어렵습니다.

 

왜 일까요? 

예를 들어 보겠습니다.

  • 암을 진단하는 병원의 기계가 너무 구식이면 최신 기계에 비해 다양한 암을 발견해내기 힘듭니다.
  • A라는 병원이 정말 오래된 구식 기계를 사용한다고 가정해 보겠습니다.
  • 해당 병원의 경우 진료를 받으로 온 사람 대부분을 음성이라고 판단할 것 입니다.
  • 즉, 음성(=Negative)이라고 판단 할 확률이 높기 때문에 FP는 줄어들게 되겠죠. 
  • 극단적인 예를 들어, 구식 기계가 모두 음성이라고 판정 했다고 한다면 FP 0이 됩니다. 왜냐하면, 양성(Positive)으로 진단한 case가 없기 때문이죠. 

 

 

 

2. Sensitivity = Recall = TPR(True Positive Rate))

감염관련 질병을 다룰 때는 sensitivity가 굉장히 중요한 지표가 될 수 있습니다.

현재 COVID-19을 진단하는 RT-PCR 진단방식을 기준으로 왜 sensitivity가 중요한 지표가 되는지 설명해보도록 하겠습니다.

  1. RT-PCR의 문제점을 지적하는 부분중 하나는 낮은 sensitivity 성능 지표입니다.
  2. Sensitivity(=TP/(TP+FN))가 낮다는 것은 FN(False Negative)가 높다는 것을 의미합니다.
  3. False Negative가 의미하는 바는 실제 COVID-19 환자에게 음성이라고 (=COVID-19이 아니라고) 진단한 케이스인데, 감염학에 있어서 FN이 높다는 것은 굉장한 문제가 됩니다.
  4. 왜냐하면, 실제 COVID-19 환자가 안심하고 여러 사람을 접촉하면서 바이러스를 전파시킬 확률이 매우 높기 때문이죠. 
  5. RT-PCR에서 대상을 FN으로 판별하는 경우는 아래와 같습니다.
    • 이전에 음성으로 반단했지만 반복검사 끝에 양성으로 바뀐 경우

 

만약 아래 논문에서 나온 specificity 값이 준수하다고 해보겠습니다. 

그렇다면 sensitivity 지표를 준수하게 기록한 딥러닝 모델을 사용하면 될까요?

결과부터 말씀드리면, 이 모델 역시 섣불리 사용하긴 어렵습니다.

 

왜 일까요? 

예를 들어 보겠습니다.

  • 암환자를 진단할 때, 성급하거나 겁이 많은 의사는 아주 조금의 징후만 보여도 암인 것 같다고 할 것 입니다.
  • 즉, 양성이라고 판단 할 확률이 높기 때문에 FN은 줄어들게 되겠죠. 
  • 극단적인 예를 들어, 성급한 의사가 모두 양성이라고 판정 했다고 한다면 FN 0이 됩니다. 왜냐하면, 음성(Negative)으로 진단한 case가 없기 때문이죠. 

 

  • 이런 경우, TPR은 1에 가까워지지만 FNR은 반대로 매우 낮아집니다.
  • 음성인 사람도 다 암이라고 하니까 음성으로 진단한 case가 없어지기 때문이죠.

 

 

3. Fall-out = FPR(False Positive Rate)

FPR 지표 역시 예를 들어 설명해 보겠습니다.

  • 암환자를 진단할 때, 성급하거나 겁이 많은 의사는 아주 조금의 징후만 보여도 암인 것 같다고 할 것 입니다.
  • 즉, 양성이라고 판단 할 확률이 높기 때문에 TN은 줄어들게 되겠죠. 
  • 극단적인 예를 들어, 성급한 의사가 모두 양성이라고 판정 했다고 한다면 TN 0이 됩니다. 왜냐하면, 음성(Negative)으로 진단한 case가 없기 때문이죠. 

만약 FPR, TPR의 수치가 동시에 높을 경우 우리는 아래와 같은 예측을 해볼 수 있습니다.

 

"FPR과 TPR 수치가 높을 경우 분류모델(or 의사)이 모든 대상을 양성으로 판단했을 가능성도 있었겠구나"

 

그렇다면, FPR과 TPR이 차이에는 무엇이 있을까요?

  • FPR: 실제 음성인 대상자들 중에 양성이라고 오진할 확률
  • TPR: 실제 양성인 대상자들을 (양성이라고) 정확히 진단할 확률

 

(↓↓↓참고 사이트↓↓↓)

https://newsight.tistory.com/53

 

ROC curve, ROC_AUC, PR_AUC, 민감도, 특이도

ROC curve (Receiver Operating Characteristic curve) : FPR과 TPR을 각각 x,y축으로 놓은 그래프. ROC curve는 X,Y가 둘다 [0,1]의 범위이고, (0,0) 에서 (1,1)을 잇는 곡선이다. - ROC 커브는 그 면적이 1에..

newsight.tistory.com

 

 

 

4. ROC Curve and AUC

어떤 분류모델을 적용했을 때, FPR, TPR이라는 지표가 아무리 좋게 나왔다고 하더라도, 해당 분류모델을 좋다고 말할 수 없다고 한다면 왜 FPR, TPR을 배울까요?

 

결론부터 말씀드리면, FPR, TPR 각각의 지표를 통해 얻을 수 있는 정보보다, FPR, TPR 지표간의 관계를 파악함으로써 얻을 수 있는 정보가 굉장히 유의미하기 때문입니다.

 

예를 통해 알아보도록 하죠. (아래 예는 binary classification을 기준으로 설명하고 있는데, multi-classificaiton 관점에서 보시면 "정상=음성(관심없는 질병+정상)"으로 간주하고 이해하시면 될 것 같습니다)

 

  • 실험을 통해서 실제 정상인 사람들의 기준치와 암인 사람들의 기준치를 조사해보니 아래그림과 같은 분포를 얻었다고 가정하겠습니다 (즉, 정상인 사람들은 기준치 -1을 평균으로 표준편차가 있었고, 암인 환자들은 기준치 1을 평균으로 표준편차가 있었다고 가정하겠습니다).
  • X축은 기준치를 뜻합니다. , X축을 기준으로 특정 값 이하는 음성(-), 특정 값 이상은 양성(+)으로 판정하게 되는데, 아래 같은 경우는 기준치 값을 0으로 설정했습니다.

이미지 출처: https://angeloyeo.github.io/2020/08/05/ROC.html

  • 위의 분포에서 TP, FP, TN, FN을 표현하면 아래그림과 같습니다.

  • False positive 부분을 설명하자면 다음과 같습니다.
    • 실제 healthy 한 사람들이 있다고 가정해봅시다.
    • 대부분의 healthy 한 사람들은 질병인지 아닌지 측정했을 때 대부분 해당 집단의 평균 값을 갖게 됩니다 (by 중심극한 정리).
    • 하지만, healthy(=음성)한 사람 중에서도 소수는 그날 컨디션이 좋지 않아 질병 진단시 기준치 이상으로 나와 양성으로 판정되는 경우가 있을 수 있습니다. 
    • 보통 False에 해당하는 면적(false negative, false positive)가 적다면 해당 분류모델은 성능이 뛰어나다고 할 수 있겠죠.

 

  • 그런데 저 기준치가 되는 값을 변경해주면 어떻게 될까요? (아래의 그림의 경우 't')

이미지 출처: https://www.researchgate.net/figure/A-visualization-of-how-changing-the-threshold-changes-the-TP-TN-FP-and-FN-values_fig5_327148996

 

  • 어떤 의사가 그냥 기준치(X; threshold)를 -5로 설정하고, 그 이상이면 전부 암환자라고 분류하세요라고 해버린다면 positive 케이스가 많아지기 때문에 TPR, FPR 모두 높게 나옵니다.

이미지 출처: https://angeloyeo.github.io/2020/08/05/ROC.html

 

  • 반대로, 어떤 의사가 그냥 기준치(X; threshold)를 5라고 설정하고, 그 이상이면 전부 암환자라고 분류하세요라고 해버린다면 negative 케이스가 많아지기 때문에 TPR, FPR 모두 낮게 나옵니다.

  • 즉, TPR과 FPR이 기준치 값에 따라 비례적인 관계를 갖는다는 점을 알 수 있습니다.

 

결국 비례적인 관계를 갖는 TPRFPR을 기반으로, 그래프를 그릴 수 있게됩니다.

그리고, 이러한 그래프를 통해 의미있는 분석을 할 수 있게 되죠.

이 때 그려지는 그래프가 ROC 커브입니다

 

 

[ROC Curve]

기준치 값을 어떻게 설정하느냐에 따라서 아래와 같이 ROC Curve가 형성되게 됩니다.

아래의 그림을 보면 그래프가 비선형성을 더 강하게 띌 수록 분류기 성능이 더 좋다고 볼 수 있겠죠?

 

보통은 비선형성의 강도라고 표현하기 보다 해당 그래프 아래의 면적이 더 커지는 경우 분류기 성능이 더 좋다고 이야기 하는데, 해당 면적을 Area Under Curve (AUC) 라고 부르고 있습니다. 

 

 

[ROC Curve]

  • x, y 축 범위는 항상: [0,1]
  • ROC curve 아래 면적: AUC (Area Under Curve; AUROC)
  • AUC(면적)가 큰 게 더 좋은 성능을 나타냄
  • AUC 면적이 1에 가까울 수록 좋은 성능
    • 면적이 1에 가까운 ROC curve를 보일 수록 양성음성을 분류하는 모델이 더 성능이 좋다는 것을 알 수 있다

 

 

 

또한, 결국 기준치 값(=threshold; 아래 그림의 ③)이 높을 수록 TPR, FPR이 모두 낮게 나오고, threshold가 낮을 수록 TPR, FPR이 높게 나오는걸 알 수 있습니다.

 

이미지 출처: https://angeloyeo.github.io/2020/08/05/ROC.html

 

이미지 출처: https://angeloyeo.github.io/2020/08/05/ROC.html

 

요약해서 말하자면, ROC커브는 TPR FPR관계를 그래프로 표현하여, 어떤 지점을 기준으로 잡을 지 결정하기 쉽게 시각화 한 것이라고 볼 수 있습니다

 

그럼 이제 아래와 같이 논문에서 제시되는 성능지표를 파악하고 분석할 수 있으시겠죠?

이미지 출처:  https://www.thelancet.com/journals/landig/article/PIIS2589-7500(20)30199-0/fulltext

 

 

 

 

(↓↓↓ROC Curve에 대한 내용 참고 사이트↓↓↓)

https://angeloyeo.github.io/2020/08/05/ROC.html

 

ROC curve - 공돌이의 수학정리노트

 

angeloyeo.github.io

 

(↓↓↓ROC Curve에 대한 내용 참고 사이트↓↓↓)

https://www.youtube.com/watch?v=nMAtFhamoRY 

 

 

(↓↓↓ROC Curve 추천 영상↓↓↓)

https://www.youtube.com/watch?v=4jRBRDbJemM 

 

 

5. PPV (Positive Predictive Value)

 

마지막으로 PPV라는 지표를 알아보고 마무리 하도록 하겠습니다.

 

PPV는 Precision, 정밀도라는 용어와 동의어로 사용됩니다.

아래 식을 보시면 "분류모델이 양성 환자라고 판별한 대상들 중에서 실제 양성환자를 선별할 확률"을 의미합니다.

 

양성판별 관점에서는 PPV 하나 만으로도 유용한 지표가 될 수 있기 때문에, 다양한 곳에서 아래 지표를 사용합니다.

 

 

 

이외 F1 score 같은 개념도 사용이 되는데 이러한 개념들은 이미 다룬바가 있기 때문에 굳이 설명은 하지 않도록 하겠습니다. (혹시 필요하시다면 아래 영상을 참고해주세요!)

 

https://www.youtube.com/watch?v=8DbC39cvvis 

 

안녕하세요

이번에는 의료 인공지능에서 사용하는 대표적인 지표들에 대해서 소개하려고 합니다.

 

사실 머신러닝을 공부하신 분들이나, 의학통계를 공부하신 분들은 다들 알고 있을 개념이지만, 의료 인공지능을 처음 접하시는 분들을 위해 몇몇 지표들을 알기 쉽게 설명 하려고 합니다.

 

의학논문을 보시거나, 딥러닝을 의료분야에 적용하면 아래와 같은 지표들을 확인하실 수 있으실 겁니다.

 

 

이미지 출처:  https://www.thelancet.com/journals/landig/article/PIIS2589-7500(20)30199-0/fulltext

 

 그럼 지금부터 의료 인공지능에서 사용되는 대표적인 성과지표들을 하나씩 차례대로 알아보도록 하겠습니다.

 

(이 카테고리는 질병을 다루는 의료관련 내용이기 때문에 관련 예시도 질병을 위주로 다루도록 하겠습니다.)

 

 

 

 

1. Positive, Negative, True, False

1-1. Positive and Negataive = Prediction

 

“If the condition is a disease, "positive" means "diseased" and "negative" means "healthy“

  • 질병 감염 여부를 알기 위해 병원체(=병의 원인이 되는 본체) 검사를 시행했을 때 피검체(=검사를 받는 주체)의 병원체가 기준치보다 높을 때를 ‘양성(positive)’, 기준보다 낮을 때를 ‘음성(negative)’이라고 합니다
  • 예를들어, COVID19 확인여부를 판별하는 기준이 되는 온도가 37도 라고 했을 때, 37도 이상은 기준치보다 이상("+"="positive")이기 때문에 COVID-19 질병에 걸렸다고 할 수 있으므로 positive(+, 양성)이라고 부릅니다. 반대로, 37도 이하 기준치보다 아래("-"="negative")이기 때문에, COVID-19 질병에 걸리지 않았다고 할 수 있으므로 negative(-, 음성)라고 정의합니다.

 

  • 여기서 조금 유의해서 봐야할 부분이 있는데, 우리가 어떤 기준치라는 것에 절대적인 신뢰를 갖고 있으면 안된다는 점입니다.
  • 예를 들어, A라는 사람의 온도를 측정한 결과 37도 이상이 나와 COVID-19이라고 분류했는데, 실제로 COVID-19 화나자가 아니였을 수 있습니다. 
  • 또 다른 예를 들면, 시골에 어떤 기계를 이용해 암이라고 판정했는데, 실제로 큰 병원에서 사람 몸을 해부해보거나 암인지 아닌지를 판정하는 여러 검사를 통해 봤을 때 암이 아닐 수 있습니다.
  • 이 때, 생각해 볼 수 있는 부분은 두 가지 입니다. 
    • 기준치가 잘 못 됐다.
    • A라는 사람이 outlier(특이치)이다.  

 

  • 드라마에서 의사가 환자에게 "안타깝지만, 양성 판정이 나왔습니다"라고 말했을 때, 환자가 눈물을 보이는 이유는 해당 의사의 말을 100% 믿었기 때문이죠. 이 의사의 말을 100% 믿었다는건, 의사가 진단을 위해 적용했던 모든 기준치들을 신뢰했다는 말이 됩니다. 하지만, 낙후된 진단 기법을 사용한다거나 사용하고 있는 진단 기법의 성능이 좋지 못하다면 오진을 할 가능성이 있습니다. 
  • 이러한 이야기를 하는 이유는 우리가 어떤 대상을 positive라고 판정했다고 하더라도 잘 못 진단을 했을 수 있다는 것을 알려드리기 위해서 입니다.
  • 그렇기 때문에, Positive, Negative은 어떤 병의 진위 여부를 결정 짓는 요소가 아니라, 무언가를 “예측(prediction) 또는 분류(classification)”할 때 사용되는 용어로써 인식해야 하는 것이죠.

 

  • 보통 질병이 맞는지 아닌지를 판정하기 때문에, binary classification을 한다고 볼 수 있는데, 좀 더 다양한 classes(병의 중증도 정도; ex: A 클래스=치매초기, B 클래스=치매중기, C 클래스=치매말기)에 대해서는 어떻게 양성, 음성 조건을 정해 줄 수 있을까요?
  • 이 경우에는 내가 알아보려고 하는 특정 질병이 condition(조건)이 되며, 해당 condition에 부합하는 질병이라고 판정한 경우에는 (해당 질병 관점에서) positive 라고 하고, 나머지를 모두 negative라고 하게 됩니다.
  • 예를 들어, 치매초기에 관심이 있다고 했을 때, 치매초기라고 진단하는 경우에만 양성(positive)이라고 하고, 치매중기, 치매말기라고 진단하는 경우에는 negative(음성)판단을 했다고 볼 수 있는 것이죠.

 

1-2. True and False = Answer

  • 우리가 무언가를 예측했다면 그 예측(positive or negative)이 틀렸다면 False, 맞았다면 True라고 합니다.
  • 예를 들어, 양성판정을 받은 사람이 실제로 양성이거나, 음성판정을 받은 사람이 실제로 음성이라면 True라고 합니다.
  • 이렇게, true인 경우가 많아지면 예측(prediction) 확률이 높아지기 때문에 예측모델(or 의사)의 신뢰성이 굉장히 높아지겠죠.
  • 그런데, 이렇게 true인지 false인지 판별하기 위해서는 정답지(Answer)가 필요합니다.
  • 현실에서는 정답지를 아는 사람은 신 뿐입니다.
  • 현실에서 정답지를 미리 알고 있었다면 굳이 positive, negative 라는 개념이 만들어질 필요도 없었겠죠. 
  • 하지만, true, false를 판단하기 위해서는 여전히 정답지(answer)가 필요합니다. 그렇다면, 이러한 정답지는 어떻게 만들 수 있을까요?

 

1-3. AI 모델

  • 의료 인공지능 분야에서는 의사들이 신의 역할을 대신합니다.
  • 즉, 앞서 "1-2"에서 언급한 정답지는 저명한 의사들 논의하여 만들게 되죠. 예를 들어, 의료 이미지 같은 경우, X-ray에 있는 특징들을 보고 여러 영상의학과 의사들이 모여 의논하고 소견을 밝힌 후, 해당 병변을 진단하게 되는데, 의료 인공지능 분야에서는 이러한 진단결과를 정답으로 간주합니다 (물론 이 과정에서 잘 못된 진단을 할 수 도 있겠지만, 저명한 의사들이 라벨링 했기 때문에 정답일거다라는 믿음이 전제가 되어 있는거죠)
  • 그렇다면 누군가는 positive, negative를 판단하는 존재가 있어야 하겠죠?
  • 의료 인공지능 분야에서는 양성, 음성을 판단하는 다양한 예측 모델들이 이 역할을 하고 있습니다.
  • 그래서, 우리가 연구해서 어떤 인공지능 예측 모델을 만들면, 예측을 정말 잘하는지 의사들이 라벨링한 데이터들을 기반으로 판단하게 됩니다. 만약, true인 경우가 많으면 당연히 해당 연구가 가치있는 연구로써 인정 받을 수 있게되겠죠? 

이미지 출처: https://medium.com/intro-to-artificial-intelligence/simple-image-classification-using-deep-learning-deep-learning-series-2-5e5b89e97926

  • 딥러닝을 예로 들면 우리가 자동차를 구분해주는 것에 관심이 있다고 했을 때, 앞서 언급한 condition이 자동차가 됩니다. → Positive={CAR}. Negative={TRUCK, …, BICYCLE}
  • 위의 그림에서는 딥러닝이 자동차라고 분류했기 때문에 positive 판정을 내렸다고 할 수 있습니다.
  • 실제 입력 데이터가 CAR라는 것을 알고 있다고 했을 때, 예측과 실제 값을 비교한 결과 옳게 예측했으므로 이 경우는 true라고 할 수 있습니다. 다시 말해, 판단한 prediction 클래스와 실제 정답에 해당하는 클래스가 일치하면 true라고 하는데, 이러한 case가 많으면 해당 모델을 신뢰하게 되는 것이죠.

 

 

 

 

 

2. TP(True Positive), FP(False Positive), TN(True Negative), FN(False Negative), and Confusion matrix

지금까지 의료 인공지능 관점에서 positive, negative, true, false를 살펴봤으니, 이러한 지표들을 조합하면 어떠한 분석들을 할 수 있게되는지 알아보도록 하겠습니다.

 

내가 관심있는 질병이 COVID-19이라는 가정하에서 설명해보도록 하겠습니다

 

 

2-1. TP: True Positive

  • True Positive는 양성(관심있는 질병=positive)으로 진단했고 실제 결과도 관심있는 질병(=positive)이었을(=true) 경우를 뜻합니다
  • 아래와 같은 질문을 통해 TP의 여부를 확인해 볼 수 있습니다.
    • Q1. 딥러닝이 COVID 19(condition)으로 판단했는가? → If YES, then POSITIVE
    • Q2. 딥러닝이 positive라고 분류 했을 때, labeled data class(실제정답)도 positive class인가? → If YES, then TRUE

이미지 출처: https://www.cs.tau.ac.il/~wolf/papers/SPIE15chest.pdf

 

 

 

2-2. FP: False Positive

  • False Positive는 양성(관심있는 질병=positive)으로 진단했지만 실제 결과가 관심있는 질병(=positive)이 아닌(=false) 경우를 뜻합니다
  • 아래와 같은 질문을 통해 FP의 여부를 확인해 볼 수 있습니다.
    • Q1. 딥러닝이 COVID 19(condition)으로 판단했는가? → If YES, then POSITIVE
    • Q2. 딥러닝이 positive라고 분류 했을 때, labeled data class(실제정답)도 positive class인가? → If NO, then FALSE
  • 아래 그림을 기준으로 설명하면, prediction은 covid-19으로 했지만, labeled data가 covid-19이 아닌 모든 class(normal, pneumonia, ..)인 경우에는 false positive가 됩니다.

이미지 출처: https://www.cs.tau.ac.il/~wolf/papers/SPIE15chest.pdf

 

 

 

2-3. TN: True Negative

  • True Negative는 음성(관심없는 질병=negative)으로 진단했고, 실제 결과도 관심없는(=negative) 질병(or 정상)인(=true) 경우를 뜻합니다.
  • 아래와 같은 질문을 통해 TN의 여부를 확인해 볼 수 있습니다.
    • Q1. 딥러닝이 COVID 19(condition)으로 판단했는가? → If NO, then NEGATIVE
    • Q2. 딥러닝이 negative라고 분류 했을 때, labeled data class(실제정답)도 negative class인가? → If YES, then TRUE
  • 이때 중요한건 음성으로 판정한 경우(=COVID19이라고 예측하지 않은 모든 경우)에는 prediction 결과와 labeled data가 굳이 일치하지 않아도 TRUE가 될 수 있다는 사실입니다. 
    • 예를들어, prediction 결과가 pneumonia(=negative)라고 했을 때, labeleld data Normal이어도 True Negative에 속하게 됩니다.

 

 

2-4. FN: False Negative

  • False Negative는 음성(관심없는 질병=negative)으로 진단했지만, 실제 결과는 관심있는(=positive) 질병인(=true) 경우를 뜻합니다.
  • 아래와 같은 질문을 통해 FN의 여부를 확인해 볼 수 있습니다.
    • Q1. 딥러닝이 COVID 19(condition)으로 판단했는가? → If NO, then NEGATIVE
    • Q2. 딥러닝이 negative라고 분류 했을 때, labeled data class(실제정답)도 negative class인가? → If NO, then FALSE

 

 

2-5. Confusion Matrix

  • 위에서 설명한 TP, TN, FP, FN 개념을 하나의 matrix로 볼 수 있는데, 이것을 confusion matrix라고 합니다.
  • X축에 위치한 것들이 예측 모델이 prediction한 결과들을 보여줍니다.
    • 예를 들어, 관심있는 질병인 COVID-19은 3번 째 위치에 있는데, 해당 X축 위치에 있는 y축 요소들 ((3,1), (3,2), (3,3))은 모두 positive라고 보시면 됩니다. 그 외의 값들은 모두 negative가 되겠죠.
  • TP의 경우에는 대각성분 ((1,1), (2,2), (3,3))에 위치해 있다고 볼 수 있습니다. 
  • 그 외의 지표들을 표시하면 아래와 같습니다.

이미지 출처:  https://arxiv.org/pdf/2003.09871.pdf

 

 

 

이제부터는 confusion matrirx나 아래의 지표들이 나오면 어떻게 해석해야할지 아시겠죠?

이미지 출처:  https://www.thelancet.com/journals/landig/article/PIIS2589-7500(20)30199-0/fulltext
이미지 출처:  https://www.thelancet.com/journals/landig/article/PIIS2589-7500(20)30199-0/fulltext

 

 

 

다음 글에서는 이 글의 연장선이 되는 추가적인 성능지표들에 대해서 알아보도록 하겠습니다!

      • Sensitivity = Recall = TPR(Ture Positive Rate)
      • Specificity = Selectivity = TNR(True Negative Rate)
      • FPR = False Positive Rate
      • Relationship between TPR and FPR

+ Recent posts