5. 1.1 Deep Learning과 의료 AI
Explaining Deep Learning in One Sentence
You could think of Deep Learning as the building of learning
machines, say pattern recognition systems or whatever, by
assembling lots of modules or elements that all train the same
way.
Deep learning is a branch of machine learning based on a set
of algorithms that attempt to model high level abstractions in
data by using a deep graph with multiple processing layers,
composed of multiple linear and non-linear transformations.
IEEE Spectrum, Feb. 2015
7. 1.1 Deep Learning과 의료 AI
데이터 기반의 일관적이고 객관적인 특징 학습 및 분석 방법
1. 데이터가 많고
2. 좋은 데이터를 이용해 학습하면
3. 좋은 결과가 나온다.
4. 좋은 데이터란?
8. 병원에는
1. 데이터가 많고
2. 좋은 데이터를 이용해 학습하면
3. 좋은 결과가 나온다.
4. 과연 좋은 데이터인가?
1.1 Deep Learning과 의료 AI
9. 의료 AI
1. 특정 병변의 검출 및 분류
2. 인체 기관의 세부 구조 분할
3. 유사 영상 검색 등
1.1 Deep Learning과 의료 AI
10. Automated Detection of Diabetic Retinopathy
1. 당뇨성 망막증(DR)은 실명의 가장 빠른 성장 원인
2. DR은 초기에 찾으면 치료 가능
3. 병변의 유형에 의해 DR의 심각도를 판단
1.2 의료 AI의 실제 사례
V. Gulshan et.al., JAMA, 2016
11. Automated Detection of Diabetic Retinopathy
1. 128,000장의 Fundus 이미지를
2. 54명의 의사가
3. 한 이미지에 3-7명이 Labeling
4. 안과 의사에 버금가는 성능
1.2 의료 AI의 실제 사례
V. Gulshan et.al., JAMA, 2016
18. 2.1 Labeling tool 설명
Dental Panorama X-ray Labeling tool
1. 26개의 카테고리와 81개의 질병(색으로 구분)
2. DICOM Viewer 기능(Viewer, Windowing, …)
3. 그리기 도구(2-layer)
4. 결과는 Labeling image와 선택된 정보를 저장
19. 2.1 Labeling tool 설명
Lung CT Nodule Labeling tool
1. 3D DICOM Viewer(Stack scroll, Windowing, Zoom, …)
2. Nodule의 심각한 정도를 색으로 표현
3. Nodule의 크기 재는 도구
4. 전공의/전문의로 나누어 Labeling
21. 2.1 Labeling tool 설명
Fundus Labeling tool
1. DICOM Viewer(Viewer, Windowing, Zoom, …)
2. 좌안/우안 구분 및 Dist/Fovea 자동 설정
3. 8개의 구획을 나누어 병이 있는 구획 Labeling
4. 이미지 한장당 세 명의 의사가 Labeling
22. 2.2 공통적으로 필요한 기능
Image viewer
1. *.dcm file reader (dicomParser.js)
2. Windowing (cornerstone.js)
3. Zoom / Pan / Length (cornerstoneTools.js)
4. Annotation Tools
5. Colors
6. Undo / Redo
7. Image Save(2-Layer)
8. 태블릿 PC 지원
23. 2.2 공통적으로 필요한 기능
DICOM file
1. 의료용 디지털 영상 및 통신 표준
2. 환자 이름, 환자 ID, raw data, 검사 날짜 등
(약 4000개 정도가 있음)
3. (4자리 16진수, 4자리 16진수)를 key로 가짐
0 (128 bytes)
DICM (4 bytes)
Header
Data Element
Value length
Value representation
Tag ( 0x????, 0x????)
Value field
Data Element
Value length
Value representation
Tag ( 0x????, 0x????)
Value field
Data set
24. 2.2 공통적으로 필요한 기능
dicomParser.js
1. 다이콤 표준문서(http://dicom.nema.org/standard.html)를 보고
2. 원하는 데이터의 Tag를 찾아 파싱
25. 2.2 공통적으로 필요한 기능
Windowing (Window width, center)
1. 인체의 각 조직과 기관은 특정 값을 갖고 있음 (e.g. 물=0, 공기=-1000, 뼈
=1000[HU])
2. 영상에서 보고자 하는 조직을 기준으로 하여(Window Center)
3. 얼마만큼(Window Width)의 값을 볼 것인지 정하는 것
4. 임상에서 일반적으로 사용하는 Windowing 값이 존재
• 폐실질 : 1,000~1,700 / -700~-800
• 뼈 : 1,000~2,000 / 200~300
• 뇌실질 : 80~100 / 0~30
• 흉부종격 : 400~500 / 40 ~ 60
26. 2.2 공통적으로 필요한 기능
Windowing (Window width, center)
1. DICOM파일에서의 Brightness / Contrast 조정
2. 일반적으로 마우스 오른쪽 버튼 이용 (OsiriX)
3. 이미지의 값을 계산 및 변경하는데 오래걸림
4. WebGL을 이용해 개선!
27. 2.2 공통적으로 필요한 기능
Annotation Tools
1. Brush
2. Elliptical ROI
3. Rectangle ROI
4. Probe
5. Eraser
28. 2.2 공통적으로 필요한 기능
약속
1. Labeling data format
2. 한 데이터에 몇 명이 Labeling을 할 것인지
3. 단축키
29. 2.2 공통적으로 필요한 기능
Dashboard
1. 관리자의 관리용
2. 사용자의 경쟁심리 유도
30. 2.3 부위 별로 다르게 필요한 기능
CT 3D DICOM Image viewer
1. DICOM header 중 instance number 기준으로 정렬
2. 첫 이미지 로드 후 나머지 이미지 load and cache
3. Mouse 혹은 방향키로 scroll
4. 슬라이드 별 Labeling을 해야하기 때문에 다음과 같이 저장
31. 2.3 부위 별로 다르게 필요한 기능
전공의와 전문의의 분리
1. 대부분의 Labeling은 대학병원 의사분들이 함
2. 먼저 전공의 Level에서 Labeling을 함
3. 전공의가 끝낸 이미지에 대해 다시 한번 전문의가 확인
4. 이 때, 전공의가 Labeling한 정보는 그대로 Copy
5. 전문의가 수정하여 저장하면 새로운 데이터가 됨
6. 따라서 한 이미지에 대해 전공의/전문의 두 Label이 남음
7. 학습에는 전문의 데이터를 사용
32. 2.3 부위 별로 다르게 필요한 기능
Fundus region 나누기
1. Disk와 Fovea가 기준점(이 둘은 학습을 통해 자동으로 찾음) Disk / Fovea
33. 2.3 부위 별로 다르게 필요한 기능
Fundus region 나누기
2. Disk-Fovea거리의 2/3, 2/5의 반지름을 갖는 두 원을 그리고
3. 수학으로 두 원의 교점을 찾은 뒤
4. 나머지 선들을 그린다.
34. 2.3 부위 별로 다르게 필요한 기능
Fundus 선택한 region 판단
1. 선택한 좌표가 두 원 안에 존재하는지 먼저 확인
2. 선택한 좌표와 가까운 두 점과의 ccw를 통해 판단
Counter
Clock Wise
Clock Wise
선택한 좌표
선택한 좌표
P1
P2
35. 2.3 부위 별로 다르게 필요한 기능
Fundus 선택한 region 색채우기
1. 선택한 지역의 둘레를 그린 후 색을 채운다.
2. 이 때, 원의 각도를 삼각함수를 이용해 구한다.
3. (노가다)
theta
37. 3.1 왜 설치 및 관리가 어려운가
클라우드
1. Labeling을 위해서는 데이터가 있어야함
2. 병원의 데이터는 환자 데이터(!)
3. IRB를 받더라도 외부로 반출되면 안됨
4. 따라서 클라우드 서비스는 불가능
38. 3.1 왜 설치 및 관리가 어려운가
환경
1. 병원은 내부망을 씀
2. 내부망은 외부 인터넷 연결이 되지 않음(!)
3. 따라서 외부에서 접속하여 관리 할 수 없음
4. 운영체제가 다 다름
39. 3.2 설치 및 관리하기
Docker
1. 개발 환경이 단일화 된다는 것은 신경 쓸 것이 많이 사라짐을 의미
2. Docker image 덮어 씌움으로 해결되는 쉬운 업데이트
3. 같은 Labeling tool로 여러 system을 만들기가 수월함
(e.g. 정상 이미지가 많은 시스템, 녹내장 시스템, …)
40. 3.2 설치 및 관리하기
설치 파일 전달
1. 외부망을 전혀 연결 할 수 없는 최악의 경우
2. Install Shield를 만들어 배포 (간편함)
3. 외부 인터넷이 안되는데 .. 업데이트는 ?
4. 무분별한 Copy를 확인 할 방법이 없음
41. 3.2 설치 및 관리하기
직접 설치 및 관리
1. 외부망을 전혀 연결 할 수 없는 최악의 경우
2. Labeling tool을 docker image로 만들어서
3. USB에 담아 직접 설치한다.
4. 업데이트도 직접 가서 한다.
5. 학습도 가서 한다..
42. 3.2 설치 및 관리하기
VPN + PC
1. GPU PC를 병원 내부에 둠
2. VPN을 이용해 외부에서 접속
3. 설치 및 관리를 전부 VPN을 연결한 상태에서 함
(Packet log를 통해 데이터를 빼가는지 확인 가능)
4. 업데이트도 용이하고
5. Labeling data 학습도 쉽게 가능