일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 스태킹 앙상블
- 인프런
- 로그 변환
- 분석 패널
- pmdarima
- 리프 중심 트리 분할
- 부트 스트래핑
- WITH CUBE
- 그로스 해킹
- 그룹 연산
- 캐글 산탄데르 고객 만족 예측
- python
- Growth hacking
- 캐글 신용카드 사기 검출
- 그로스 마케팅
- 3기가 마지막이라니..!
- tableau
- XGBoost
- 컨브넷
- ImageDateGenerator
- splitlines
- DENSE_RANK()
- 데이터 증식
- 데이터 핸들링
- ARIMA
- 마케팅 보다는 취준 강연 같다(?)
- 데이터 정합성
- WITH ROLLUP
- lightgbm
- sql
- Today
- Total
LITTLE BY LITTLE
[3] 캐글 RSNA 2022 Cervical Spine Fracture Detection - DATA, TASK and PURPOSE 본문
[3] 캐글 RSNA 2022 Cervical Spine Fracture Detection - DATA, TASK and PURPOSE
위나 2022. 10. 20. 15:252. WHAT?
주제는 경추 골절 진단으로, 방사선사(radiologists)가 진단한 경추 골절과 얼마나 많이 매칭되는지 최대한 높은 정확도로 분류하는 것이 목표
2-1. DATA
크게 1. Csv 파일과 2. CT 이미지 데이터로 나뉨, *일부* 3. 분할된 이미지 및 4. 바운딩 박스도 주어짐
1. Csv 파일
2.Ct 이미지 데이터
- dcm 포맷, 횡단면
3.주어진 segmentation 데이터(mask)
- nii 포맷, 시상면, 전체의 4.3%
4. Bouding boxes 데이터
– 전체의 11.6%
=> 객체 탐지에 쓰이는거라 안써도되나?
- 3. segmeataion된 mask는 nii file로, NifTI 포맷을 따르는 형식이고, 시상면(sagittal plane)이기 때문에 횡단면(axial plane)으로 찍히고 dcm포맷인 ct scan과 다름 => segmentation 이미지 데이터의 방향(orientation)을 ct사진 데이터처럼 정렬(align)해주는 작업 필요
- 주어진 segmentation 데이터(mask)는 ALL SLICE 모든 슬라이스를 포함하고 있었다.
- 하지만 주어진 mask는 단 87개로, 전체의 4.3%밖에 되지 않음
- 따라서 이 데이터로 나머지 데이터를 훈련시키기 위해서 unet과 같이 segmentation mask를 예측하는 모델을 사용할 것이다.
1.CSV파일
TRAIN Data shape : (2019,9)
TRAIN bounding box : (7217,6)
TEST (3,3)
Sample submission (3,2)
골절이 있는 환자와 없는 환자의 CT사진으로 구성, 거의 1:1로 균형된 데이터
Single-bone injuries VS Multiple bone injuries
골절이 있는 환자 중 64.83%는 한 가지 경추에 골절이 발생한 경우이며, 나머지는 최소 2가지 부위에 골절이 발생하였고, 3.64%는 4가지 경추에 골절이 있는 경우
2. CT 이미지 데이터 (횡단면)
Number of TOTAL Slices: 268
Number of TOTAL Slices: 676
* 메타 데이터 (meta_train) <-이게 뭐지
- 의미
- Rows -> CT scan/image 높이
- Columns -> CT scan/image 너비
- SOPInstanceUID -> 식별자 containing the StudyInstanceUID + slice number
- ContentDate -> 날짜
- SliceThickness -> 이미지 슬라이스의 두께 (TO DO: maybe pair with Spacing Between Slices – 붙어 있는 두 가지 슬라이스 사이의 거리를 계산해야함)
- InstanceNumber -> slice number
- ImagePositionPatient -> the x, y, and z coordinates of the upper left hand corner (center of the first voxel transmitted) of the image, in mm
- ImageOrientationPatient -> the direction cosines of the first row and the first column with respect to the patien
=> ct scan 이미지 파일 개수 (dcm files) 711,601개
dcm파일의 분포!
=> 78%의 obs가 200-400개 사이(slice)
=> 6%만이 200개 슬라이스 이하
=> 600개 이상인것도 50개가 존재함
* 이미지 사이즈는 99.6%가 512 x 512로 동일하였고, 0.3%만 resize하면 됨
3. segmentation 이미지 데이터(시상면) = MASK 마스크 이미지
- 시상면 이미지인 mask는 척추의 위치를 알 수 있게 해준다. 골절이 위 사진의 위치 내에서만 발생할 수 있다는 사실을 알려주기 때문에 중요한 데이터.
- 또한 이미지가 C1~C7 중 어느 경추인지 알려준다. 각 슬라이스의 unique value가 c1~c7중 어느 경추인지 알려줌
(ex. 120 : 1은 c1경추, 2는 c2 경추, 0은 배경 => 1번과 2번 경추사진!)
2-2. TASK
- 7가지 경추 중 어느 부위의 골절인지 그 확률을 예측하는 대회이기 때문에, 객체 탐지 문제가 아님
- 크게 두 가지로 계획, 최종 목표인 분류 작업의 정확도를 높이기 위해서 segmentation을 분류 이전에 진행