의료 AI를 위해
세상에 없는 양질의 Data
만드는 도구 제작하기
김상근 / sisobus1@gmail.com
Contents
1. 현재 의료 AI와 Labeling tool의 중요성
2. Labeling tool 제작
(치아, 폐CT, 세포핵, 안저, 뼈스캔 )
3. 폐쇄적인 병원에 Labeling tool 설치 및 관리하기
[213] 의료 ai를 위해 세상에 없는 양질의 data 만드는 도구 제작하기
1.
현재의 의료AI와
데이터 Labeling tool의 중요성
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
1.1 Deep Learning과 의료 AI
Brief History of Neural Networks
1.1 Deep Learning과 의료 AI
데이터 기반의 일관적이고 객관적인 특징 학습 및 분석 방법
1. 데이터가 많고
2. 좋은 데이터를 이용해 학습하면
3. 좋은 결과가 나온다.
4. 좋은 데이터란?
병원에는
1. 데이터가 많고
2. 좋은 데이터를 이용해 학습하면
3. 좋은 결과가 나온다.
4. 과연 좋은 데이터인가?
1.1 Deep Learning과 의료 AI
의료 AI
1. 특정 병변의 검출 및 분류
2. 인체 기관의 세부 구조 분할
3. 유사 영상 검색 등
1.1 Deep Learning과 의료 AI
Automated Detection of Diabetic Retinopathy
1. 당뇨성 망막증(DR)은 실명의 가장 빠른 성장 원인
2. DR은 초기에 찾으면 치료 가능
3. 병변의 유형에 의해 DR의 심각도를 판단
1.2 의료 AI의 실제 사례
V. Gulshan et.al., JAMA, 2016
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
좋은 데이터란
1. 질 좋은 데이터
2. Labeling이 잘 된 데이터
1.3 결국
좋은 성능을 내는 AI를 만들기 위해서는
1. 데이터가 많고
2. 좋은 데이터를 이용해 학습하면(잘 Labeling 된 데이터)
3. 좋은 결과가 나온다.
4. 그럼 실제 병원의 데이터는?
5. ImageNet, Kaggle의 데이터는?
1.3 결국
데이터 Labeling tool의 필요성
1. 좋은 성능의 AI를 만들기 위해서는
2. 좋은 데이터가 필요하고
3. 좋은 데이터를 만들기 위해
4. 의사분들이 빨리 Labeling 할 수 있는 도구가 필요
1.4 결론
2.
Labeling tool
Contents
1. Labeling tool 설명
2. 공통적으로 필요한 기능
3. 의료 영상 및 부위 별로 다르게 필요한 기능
2.1 Labeling tool 설명
공통 구조
1. HTML5 canvas, javascript, WebGL, gulp, babel, …
2. Flask, Celery, Keras, PyInstaller, …
3. MySQL, SQLite3, …
2.1 Labeling tool 설명
Dental Panorama X-ray Labeling tool
1. 26개의 카테고리와 81개의 질병(색으로 구분)
2. DICOM Viewer 기능(Viewer, Windowing, …)
3. 그리기 도구(2-layer)
4. 결과는 Labeling image와 선택된 정보를 저장
2.1 Labeling tool 설명
Lung CT Nodule Labeling tool
1. 3D DICOM Viewer(Stack scroll, Windowing, Zoom, …)
2. Nodule의 심각한 정도를 색으로 표현
3. Nodule의 크기 재는 도구
4. 전공의/전문의로 나누어 Labeling
2.1 Labeling tool 설명
(Nucleus, Bonescan) Labeling tool
1. Ctrl+C
2. Ctrl+V
2.1 Labeling tool 설명
Fundus Labeling tool
1. DICOM Viewer(Viewer, Windowing, Zoom, …)
2. 좌안/우안 구분 및 Dist/Fovea 자동 설정
3. 8개의 구획을 나누어 병이 있는 구획 Labeling
4. 이미지 한장당 세 명의 의사가 Labeling
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 지원
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
2.2 공통적으로 필요한 기능
dicomParser.js
1. 다이콤 표준문서(http://dicom.nema.org/standard.html)를 보고
2. 원하는 데이터의 Tag를 찾아 파싱
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
2.2 공통적으로 필요한 기능
Windowing (Window width, center)
1. DICOM파일에서의 Brightness / Contrast 조정
2. 일반적으로 마우스 오른쪽 버튼 이용 (OsiriX)
3. 이미지의 값을 계산 및 변경하는데 오래걸림
4. WebGL을 이용해 개선!
2.2 공통적으로 필요한 기능
Annotation Tools
1. Brush
2. Elliptical ROI
3. Rectangle ROI
4. Probe
5. Eraser
2.2 공통적으로 필요한 기능
약속
1. Labeling data format
2. 한 데이터에 몇 명이 Labeling을 할 것인지
3. 단축키
2.2 공통적으로 필요한 기능
Dashboard
1. 관리자의 관리용
2. 사용자의 경쟁심리 유도
2.3 부위 별로 다르게 필요한 기능
CT 3D DICOM Image viewer
1. DICOM header 중 instance number 기준으로 정렬
2. 첫 이미지 로드 후 나머지 이미지 load and cache
3. Mouse 혹은 방향키로 scroll
4. 슬라이드 별 Labeling을 해야하기 때문에 다음과 같이 저장
2.3 부위 별로 다르게 필요한 기능
전공의와 전문의의 분리
1. 대부분의 Labeling은 대학병원 의사분들이 함
2. 먼저 전공의 Level에서 Labeling을 함
3. 전공의가 끝낸 이미지에 대해 다시 한번 전문의가 확인
4. 이 때, 전공의가 Labeling한 정보는 그대로 Copy
5. 전문의가 수정하여 저장하면 새로운 데이터가 됨
6. 따라서 한 이미지에 대해 전공의/전문의 두 Label이 남음
7. 학습에는 전문의 데이터를 사용
2.3 부위 별로 다르게 필요한 기능
Fundus region 나누기
1. Disk와 Fovea가 기준점(이 둘은 학습을 통해 자동으로 찾음) Disk / Fovea
2.3 부위 별로 다르게 필요한 기능
Fundus region 나누기
2. Disk-Fovea거리의 2/3, 2/5의 반지름을 갖는 두 원을 그리고
3. 수학으로 두 원의 교점을 찾은 뒤
4. 나머지 선들을 그린다.
2.3 부위 별로 다르게 필요한 기능
Fundus 선택한 region 판단
1. 선택한 좌표가 두 원 안에 존재하는지 먼저 확인
2. 선택한 좌표와 가까운 두 점과의 ccw를 통해 판단
Counter
Clock Wise
Clock Wise
선택한 좌표
선택한 좌표
P1
P2
2.3 부위 별로 다르게 필요한 기능
Fundus 선택한 region 색채우기
1. 선택한 지역의 둘레를 그린 후 색을 채운다.
2. 이 때, 원의 각도를 삼각함수를 이용해 구한다.
3. (노가다)
theta
3.
병원에
설치 및 관리하기
3.1 왜 설치 및 관리가 어려운가
클라우드
1. Labeling을 위해서는 데이터가 있어야함
2. 병원의 데이터는 환자 데이터(!)
3. IRB를 받더라도 외부로 반출되면 안됨
4. 따라서 클라우드 서비스는 불가능
3.1 왜 설치 및 관리가 어려운가
환경
1. 병원은 내부망을 씀
2. 내부망은 외부 인터넷 연결이 되지 않음(!)
3. 따라서 외부에서 접속하여 관리 할 수 없음
4. 운영체제가 다 다름
3.2 설치 및 관리하기
Docker
1. 개발 환경이 단일화 된다는 것은 신경 쓸 것이 많이 사라짐을 의미
2. Docker image 덮어 씌움으로 해결되는 쉬운 업데이트
3. 같은 Labeling tool로 여러 system을 만들기가 수월함
(e.g. 정상 이미지가 많은 시스템, 녹내장 시스템, …)
3.2 설치 및 관리하기
설치 파일 전달
1. 외부망을 전혀 연결 할 수 없는 최악의 경우
2. Install Shield를 만들어 배포 (간편함)
3. 외부 인터넷이 안되는데 .. 업데이트는 ?
4. 무분별한 Copy를 확인 할 방법이 없음
3.2 설치 및 관리하기
직접 설치 및 관리
1. 외부망을 전혀 연결 할 수 없는 최악의 경우
2. Labeling tool을 docker image로 만들어서
3. USB에 담아 직접 설치한다.
4. 업데이트도 직접 가서 한다.
5. 학습도 가서 한다..
3.2 설치 및 관리하기
VPN + PC
1. GPU PC를 병원 내부에 둠
2. VPN을 이용해 외부에서 접속
3. 설치 및 관리를 전부 VPN을 연결한 상태에서 함
(Packet log를 통해 데이터를 빼가는지 확인 가능)
4. 업데이트도 용이하고
5. Labeling data 학습도 쉽게 가능
Q & A
Thank you

More Related Content

PPTX
Internet of-thing
PDF
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
PDF
[232]mist 고성능 iot 스트림 처리 시스템
PPTX
[211] HBase 기반 검색 데이터 저장소 (공개용)
PDF
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
PPTX
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
PDF
[242]open stack neutron dataplane 구현
PDF
[246]reasoning, attention and memory toward differentiable reasoning machines
Internet of-thing
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[232]mist 고성능 iot 스트림 처리 시스템
[211] HBase 기반 검색 데이터 저장소 (공개용)
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[242]open stack neutron dataplane 구현
[246]reasoning, attention and memory toward differentiable reasoning machines

Viewers also liked (20)

PDF
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
PDF
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
PDF
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
PDF
[241]large scale search with polysemous codes
PDF
[221]똑똑한 인공지능 dj 비서 clova music
PDF
[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법
PDF
[213]building ai to recreate our visual world
PDF
[212]big models without big data using domain specific deep networks in data-...
PDF
[215]streetwise machine learning for painless parking
PDF
[234]멀티테넌트 하둡 클러스터 운영 경험기
PDF
인공지능추천시스템 airs개발기_모델링과시스템
PDF
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
PDF
유연하고 확장성 있는 빅데이터 처리
PDF
[124]자율주행과 기계학습
PDF
[141]네이버랩스의 로보틱스 연구 소개
PDF
[112]clova platform 인공지능을 엮는 기술
PDF
웨일브라우저 성능 및 메모리 최적화
PDF
[131]chromium binging 기술을 node.js에 적용해보자
PDF
밑바닥부터시작하는360뷰어
PDF
[111]open, share, enjoy 네이버의 오픈소스 활동
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
[241]large scale search with polysemous codes
[221]똑똑한 인공지능 dj 비서 clova music
[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법
[213]building ai to recreate our visual world
[212]big models without big data using domain specific deep networks in data-...
[215]streetwise machine learning for painless parking
[234]멀티테넌트 하둡 클러스터 운영 경험기
인공지능추천시스템 airs개발기_모델링과시스템
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
유연하고 확장성 있는 빅데이터 처리
[124]자율주행과 기계학습
[141]네이버랩스의 로보틱스 연구 소개
[112]clova platform 인공지능을 엮는 기술
웨일브라우저 성능 및 메모리 최적화
[131]chromium binging 기술을 node.js에 적용해보자
밑바닥부터시작하는360뷰어
[111]open, share, enjoy 네이버의 오픈소스 활동
Ad

Similar to [213] 의료 ai를 위해 세상에 없는 양질의 data 만드는 도구 제작하기 (20)

PDF
Review of the Paper on Capabilities of Gemini Models in Medicine
PPTX
권기훈_포트폴리오
PPTX
AI기반 공문서 내 민감 콘텐츠 마스킹 시스템 구현_발표 자료
PDF
소프트웨어설계론
PPTX
Deep Learning for AI (1)
PPTX
[경북] I'mcloud opensight
PPTX
[2A7]Linkedin'sDataScienceWhyIsItScience
PPTX
실감영상 에트리
PPTX
LINC3.0 캡스톤디자인 경진대회_로운팀.pptx
PDF
2018 tech trends_and_present_report
PDF
뉴럴웍스 이미지 인식 AI 암진단AI 대장암, 위암
PPTX
이미지(비디오)를 대상으로 한 빅 데이터 시스템 기술 동향 및 고려사항
PDF
Workshop 210417 dhlee
PPTX
Druid+superset
PDF
Spark & Zeppelin을 활용한 머신러닝 실전 적용기
PDF
How to Create Value from Data, and Its Difficulty
PDF
[DDC 2018] 통신 데이터 분석환경 구축사례 (SKT, 홍태희)
PPTX
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강
PDF
[Blt]ai patent strategy(ver2.0) 20181029 karl_final
PDF
(18’) 부산대 창의융합해커톤_1. 결과보고서_해커톤.pdf
Review of the Paper on Capabilities of Gemini Models in Medicine
권기훈_포트폴리오
AI기반 공문서 내 민감 콘텐츠 마스킹 시스템 구현_발표 자료
소프트웨어설계론
Deep Learning for AI (1)
[경북] I'mcloud opensight
[2A7]Linkedin'sDataScienceWhyIsItScience
실감영상 에트리
LINC3.0 캡스톤디자인 경진대회_로운팀.pptx
2018 tech trends_and_present_report
뉴럴웍스 이미지 인식 AI 암진단AI 대장암, 위암
이미지(비디오)를 대상으로 한 빅 데이터 시스템 기술 동향 및 고려사항
Workshop 210417 dhlee
Druid+superset
Spark & Zeppelin을 활용한 머신러닝 실전 적용기
How to Create Value from Data, and Its Difficulty
[DDC 2018] 통신 데이터 분석환경 구축사례 (SKT, 홍태희)
딥러닝을 이용한 사용자 선호도 기반 의상 추천 알고리즘 Ppt 선수강
[Blt]ai patent strategy(ver2.0) 20181029 karl_final
(18’) 부산대 창의융합해커톤_1. 결과보고서_해커톤.pdf
Ad

More from NAVER D2 (20)

PDF
[211] 인공지능이 인공지능 챗봇을 만든다
PDF
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
PDF
[215] Druid로 쉽고 빠르게 데이터 분석하기
PDF
[245]Papago Internals: 모델분석과 응용기술 개발
PDF
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
PDF
[235]Wikipedia-scale Q&A
PDF
[244]로봇이 현실 세계에 대해 학습하도록 만들기
PDF
[243] Deep Learning to help student’s Deep Learning
PDF
[234]Fast & Accurate Data Annotation Pipeline for AI applications
PDF
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
PDF
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
PDF
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
PDF
[224]네이버 검색과 개인화
PDF
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
PDF
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
PDF
[213] Fashion Visual Search
PDF
[232] TensorRT를 활용한 딥러닝 Inference 최적화
PDF
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
PDF
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
PDF
[223]기계독해 QA: 검색인가, NLP인가?
[211] 인공지능이 인공지능 챗봇을 만든다
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[215] Druid로 쉽고 빠르게 데이터 분석하기
[245]Papago Internals: 모델분석과 응용기술 개발
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[235]Wikipedia-scale Q&A
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[243] Deep Learning to help student’s Deep Learning
[234]Fast & Accurate Data Annotation Pipeline for AI applications
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[224]네이버 검색과 개인화
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[213] Fashion Visual Search
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[223]기계독해 QA: 검색인가, NLP인가?

[213] 의료 ai를 위해 세상에 없는 양질의 data 만드는 도구 제작하기

  • 1. 의료 AI를 위해 세상에 없는 양질의 Data 만드는 도구 제작하기 김상근 / sisobus1@gmail.com
  • 2. Contents 1. 현재 의료 AI와 Labeling tool의 중요성 2. Labeling tool 제작 (치아, 폐CT, 세포핵, 안저, 뼈스캔 ) 3. 폐쇄적인 병원에 Labeling tool 설치 및 관리하기
  • 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
  • 6. 1.1 Deep Learning과 의료 AI Brief History of Neural Networks
  • 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
  • 12. 좋은 데이터란 1. 질 좋은 데이터 2. Labeling이 잘 된 데이터 1.3 결국
  • 13. 좋은 성능을 내는 AI를 만들기 위해서는 1. 데이터가 많고 2. 좋은 데이터를 이용해 학습하면(잘 Labeling 된 데이터) 3. 좋은 결과가 나온다. 4. 그럼 실제 병원의 데이터는? 5. ImageNet, Kaggle의 데이터는? 1.3 결국
  • 14. 데이터 Labeling tool의 필요성 1. 좋은 성능의 AI를 만들기 위해서는 2. 좋은 데이터가 필요하고 3. 좋은 데이터를 만들기 위해 4. 의사분들이 빨리 Labeling 할 수 있는 도구가 필요 1.4 결론
  • 16. Contents 1. Labeling tool 설명 2. 공통적으로 필요한 기능 3. 의료 영상 및 부위 별로 다르게 필요한 기능
  • 17. 2.1 Labeling tool 설명 공통 구조 1. HTML5 canvas, javascript, WebGL, gulp, babel, … 2. Flask, Celery, Keras, PyInstaller, … 3. MySQL, SQLite3, …
  • 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
  • 20. 2.1 Labeling tool 설명 (Nucleus, Bonescan) Labeling tool 1. Ctrl+C 2. Ctrl+V
  • 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 학습도 쉽게 가능
  • 43. Q & A

Editor's Notes

  • #14: imagenet이나 kaggle에는 데이터가 정말 많지만 .. 인종이나 존재하지 않은 부위 등으로 바로 쓰기 문제있음
  • #19: 학습에는 마스크 이미지와 저장된 정보를 이용해 어느 치아에 어떤 병이 있는지를 이용
  • #26: 예를들어 폐에는 공기가 많으므로 폐를 보기 위해서는 공기를 기준으로 잡고 그로부터 너비를 잡으면되는데, 1500/-600 이면 -2100~1100 이니까 잘 보인다
  • #29: 2. 판독자들간의 reliability나 consistency 등을 구할 수 있음
  • #31: 2. 용량이 커서 로딩이 오래걸리는 문제