SlideShare une entreprise Scribd logo
1  sur  44
의료 AI를 위해
세상에 없는 양질의 Data
만드는 도구 제작하기
김상근 / sisobus1@gmail.com
Contents
1. 현재 의료 AI와 Labeling tool의 중요성
2. Labeling tool 제작
(치아, 폐CT, 세포핵, 안저, 뼈스캔 )
3. 폐쇄적인 병원에 Labeling tool 설치 및 관리하기
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

Contenu connexe

Tendances

Search Presentation
Search  PresentationSearch  Presentation
Search Presentation
Doug Green
 

Tendances (18)

InfoPak3 Personal Kanban Design Patterns
InfoPak3 Personal Kanban Design PatternsInfoPak3 Personal Kanban Design Patterns
InfoPak3 Personal Kanban Design Patterns
 
Lake Formation, 데이터레이크 관리와 운영을 하나로 :: 이재성 - AWS Community Day 2019
Lake Formation, 데이터레이크 관리와 운영을 하나로 :: 이재성 - AWS Community Day 2019Lake Formation, 데이터레이크 관리와 운영을 하나로 :: 이재성 - AWS Community Day 2019
Lake Formation, 데이터레이크 관리와 운영을 하나로 :: 이재성 - AWS Community Day 2019
 
Introduction to Aerospike
Introduction to AerospikeIntroduction to Aerospike
Introduction to Aerospike
 
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
효율적인 빅데이터 분석 및 처리를 위한 Glue, EMR 활용 - 김태현 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
 
Amazon S3: Masterclass
Amazon S3: MasterclassAmazon S3: Masterclass
Amazon S3: Masterclass
 
Aurora는 어떻게 다른가 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
Aurora는 어떻게 다른가 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 GamingAurora는 어떻게 다른가 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
Aurora는 어떻게 다른가 - 김일호 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
 
ABD217_From Batch to Streaming
ABD217_From Batch to StreamingABD217_From Batch to Streaming
ABD217_From Batch to Streaming
 
Search Presentation
Search  PresentationSearch  Presentation
Search Presentation
 
Migrating Your Databases to AWS - Deep Dive on Amazon RDS and AWS Database Mi...
Migrating Your Databases to AWS - Deep Dive on Amazon RDS and AWS Database Mi...Migrating Your Databases to AWS - Deep Dive on Amazon RDS and AWS Database Mi...
Migrating Your Databases to AWS - Deep Dive on Amazon RDS and AWS Database Mi...
 
HP - DaaS Service Plans
HP - DaaS Service PlansHP - DaaS Service Plans
HP - DaaS Service Plans
 
Cost Optimisation
Cost OptimisationCost Optimisation
Cost Optimisation
 
XDK없이 XBOX게임 개발하기(UWP on XBOX)
XDK없이 XBOX게임 개발하기(UWP on XBOX)XDK없이 XBOX게임 개발하기(UWP on XBOX)
XDK없이 XBOX게임 개발하기(UWP on XBOX)
 
Graph Database Meetup in Korea #2. Graph Database Usecase (그래프 데이터베이스 활용사례)
Graph Database Meetup in Korea #2. Graph Database Usecase (그래프 데이터베이스 활용사례)Graph Database Meetup in Korea #2. Graph Database Usecase (그래프 데이터베이스 활용사례)
Graph Database Meetup in Korea #2. Graph Database Usecase (그래프 데이터베이스 활용사례)
 
Messaging in the AWS Cloud
Messaging in the AWS CloudMessaging in the AWS Cloud
Messaging in the AWS Cloud
 
인공지능 방법론 - Deep Learning 쉽게 이해하기
인공지능 방법론 - Deep Learning 쉽게 이해하기인공지능 방법론 - Deep Learning 쉽게 이해하기
인공지능 방법론 - Deep Learning 쉽게 이해하기
 
Natural Language Processing.pptx
Natural Language Processing.pptxNatural Language Processing.pptx
Natural Language Processing.pptx
 
2.saliva
2.saliva 2.saliva
2.saliva
 
مكونات أمبولة المخدر الموضعي
مكونات أمبولة المخدر الموضعيمكونات أمبولة المخدر الموضعي
مكونات أمبولة المخدر الموضعي
 

En vedette

백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
NAVER D2
 

En vedette (20)

[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
[225]빅데이터를 위한 분산 딥러닝 플랫폼 만들기
 
[232]mist 고성능 iot 스트림 처리 시스템
[232]mist 고성능 iot 스트림 처리 시스템[232]mist 고성능 iot 스트림 처리 시스템
[232]mist 고성능 iot 스트림 처리 시스템
 
[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)[211] HBase 기반 검색 데이터 저장소 (공개용)
[211] HBase 기반 검색 데이터 저장소 (공개용)
 
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색[216]네이버 검색 사용자를 만족시켜라!   의도파악과 의미검색
[216]네이버 검색 사용자를 만족시켜라! 의도파악과 의미검색
 
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
[244]네트워크 모니터링 시스템(nms)을 지탱하는 기술
 
[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현
 
[246]reasoning, attention and memory toward differentiable reasoning machines
[246]reasoning, attention and memory   toward differentiable reasoning machines[246]reasoning, attention and memory   toward differentiable reasoning machines
[246]reasoning, attention and memory toward differentiable reasoning machines
 
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
[231]운영체제 수준에서의 데이터베이스 성능 분석과 최적화
 
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
[223]rye, 샤딩을 지원하는 오픈소스 관계형 dbms
 
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
[224]nsml 상상하는 모든 것이 이루어지는 클라우드 머신러닝 플랫폼
 
[241]large scale search with polysemous codes
[241]large scale search with polysemous codes[241]large scale search with polysemous codes
[241]large scale search with polysemous codes
 
[221]똑똑한 인공지능 dj 비서 clova music
[221]똑똑한 인공지능 dj 비서 clova music[221]똑똑한 인공지능 dj 비서 clova music
[221]똑똑한 인공지능 dj 비서 clova music
 
[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법
[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법
[222]neural machine translation (nmt) 동작의 시각화 및 분석 방법
 
[213]building ai to recreate our visual world
[213]building ai to recreate our visual world[213]building ai to recreate our visual world
[213]building ai to recreate our visual world
 
[212]big models without big data using domain specific deep networks in data-...
[212]big models without big data using domain specific deep networks in data-...[212]big models without big data using domain specific deep networks in data-...
[212]big models without big data using domain specific deep networks in data-...
 
[215]streetwise machine learning for painless parking
[215]streetwise machine learning for painless parking[215]streetwise machine learning for painless parking
[215]streetwise machine learning for painless parking
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
 
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
백억개의 로그를 모아 검색하고 분석하고 학습도 시켜보자 : 로기스
 
유연하고 확장성 있는 빅데이터 처리
유연하고 확장성 있는 빅데이터 처리유연하고 확장성 있는 빅데이터 처리
유연하고 확장성 있는 빅데이터 처리
 

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

AI기반 공문서 내 민감 콘텐츠 마스킹 시스템 구현_발표 자료
AI기반 공문서 내 민감 콘텐츠 마스킹 시스템 구현_발표 자료AI기반 공문서 내 민감 콘텐츠 마스킹 시스템 구현_발표 자료
AI기반 공문서 내 민감 콘텐츠 마스킹 시스템 구현_발표 자료
sugyeong kim
 

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

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

Plus de NAVER D2

Plus de NAVER D2 (20)

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

Dernier

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 

Dernier (7)

[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 

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

  • 1. 의료 AI를 위해 세상에 없는 양질의 Data 만드는 도구 제작하기 김상근 / sisobus1@gmail.com
  • 2. Contents 1. 현재 의료 AI와 Labeling tool의 중요성 2. Labeling tool 제작 (치아, 폐CT, 세포핵, 안저, 뼈스캔 ) 3. 폐쇄적인 병원에 Labeling tool 설치 및 관리하기
  • 3.
  • 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

Notes de l'éditeur

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