심심하니 논문을 읽어요. 아 배고파
-
Towards Unified Surgical Skill Assessment
NELVT
Surgical Skill 평가가 몹시 중요하다.
이를 위해 surgical skill을 평가해왔는데, 일일이 하려면 비효율적이니 이 역시 자동화 하려고 한다.
따라서 수술 영상이 주어지면 수술이 얼마나 성공적으로 이루어졌는지를 평가하는 것이 이 논문의 목적이다.
- multi-path framework
- 뭘 평가하는가: surgical tool usage, intraoperative event pattern, and other skill proxies
- 위 요소들의 관계 또한 모델링하기 위해서 path dependency module을 정의했음
- Dataset: JIGSAWS의 시뮬레이션 데이터, (자체 취득한) 실제 복강경 수술 데이터
코드가 공개되어있다!
https://github.com/Finspire13/Towards-Unified-Surgical-Skill-Assessment
Intro.
수술 평가를 해야 안전한 정도를 알 수 있으며 수술에 대한 피드백도 할 수 있으니 중요하다.
그런데 사람이 평가하면 문제점이, 시간이 오래 걸리는데다가 reproducability가 떨어진다. 사람마다 보는 기준도 다르고...
요즘에는 수술 로봇 등장하면서 자동으로 녹화가 되니까 학습모델을 만들어서 평가할 수 있는 기반은 갖춰진 것 같다.
그런데 수술을 평가한다는 것 자체가 굉장히 복잡하고 정의내리기 어렵기 때문에, 현재까지는 통상적으로 받아들여진 skill assessment criterion이 없다.
이 논문에서는 clinician들과 토의하여 가장 중요한 3가지 요소를 정의했다는데:
1. surgical tool usage
수술 도구의 움직임. 수술자의 도구 핸들링의 숙련도나 모션의 효율성을 평가한다.
숙련된 서전의 경우 trajectory가 부드러우며 간결한 특징을 가지고 있다.
2. surgical field clearness
operation field의 clearness를 의미하는 skill proxy이다. 여기서 skill proxy는 surgical skill과 correlation이 높기 때문에 간접적인 지표로서 활용될 수 있다. anatomy structure가 잘 보이도록 visibility가 높은 operation field여야 수술이 잘 되는데, 예를 들면 excessive bleeding이라든가 burnt tissue, smoke 등이 많다면 anatomy가 잘 보이지 않기 때문에 visibility를 해치게 된다.
3. surgical event pattern
수술을 잘 하는 경우에는 linear pattern을 가진다. 아래 그림을 보면 알 수 있는데, 뭔가 처치를 잘못해서 이전 단계로 돌아가야하는 루프가 발생한다는 것은 반대로 수술이 잘 되지 못했다는 의미가 된다.
이전에도 세가지 중 하나에 초점을 둔 surgical skill assessment하는 연구는 있었는데, 수술의 복잡한 요인들을 고려한다면 이 논문에서 제시하는 것과 같이 3가지 요소를 다 고려해야한다.
그렇지만 weight score의 경우 annotation을 얻기 어려우니 self-supervised contrastive learning 했다.
기존 연구는?
도구 모션 관련
- video object tracking or detection
- video spatiotemporal descriptors
- robotic kinematics
- external sensors
- virtual reality interfaces
등등...
proxy 관련
- 이 연구소에서 예전에 썼던 논문이 하나 있다. "Surgical Skill Assessment on In-Vivo Clinical Data via the Clearness of Operating Field"
event 관련
일반적으로 다들 fine-grained event로 쪼개서 접근했다. 이건 이벤트 각각에 대해 자세히 피드백하기 위함인데, 이 논문의 경우는 그렇진 않다. occurance pattern을 분석하여 skill을 결정한다는 관점이라 차이가 있다.
그 외에, 3가지 요소 모두 고려하지 않고 순수하게 학습만을 기반으로한 연구도 존재한다.
Method
간단하게 task부터 정의를 하면,
input: surgery video
output: skill score
이다.
4 paths: 3개는 앞에 나온 factors 각각에 대한 것, 나머지 하나는 visual feature를 통해 바로 semantic을 추출하는 path
각 path의 인풋은 feature의 시퀀스 형태이다.
encoding function, score function을 거친다. 각각을 파이와 람다로 표현했다.
weight Wm를 도입하여 각 path의 temporal importance를 부여할건데, 이를 위해 각 피쳐 정보를 aggregation(aggregation function은 모든 path가 공유)한 후 weight function을 거친다.
최종적으로 skill prediction은 supervised learning을 할 것이며, MSE로 학습한다.
self-supervisesd contrastive loss
video predictive coding에서 영감을 받아, future prediction을 auxiliary task로 뒀다.
과거~현재의 임베딩으로 부터 future embedding을 예측하는 것이다.
그러면 similarity loss를 사용할 수 있다!
이게 위에서의 encoding function(파이)이 temporal dynamics를 더 잘 인코딩하도록 돕는다.
최종적으로, loss는 supervised인 MSE와 self-supervised인 contrastive loss를 사용한다.
Experiments.
데이터셋.
JIGSAWS는 시뮬레이션 데이터이다. 설명은 아래에.
Clinical Data에서도 진행했다.
위암 수술 데이터(partial 및 total 위 절제술, 림프 절제술)이며, 비디오는 20건이다. 림프를 통해 암이 전이되기 때문에 포함되어있는 것 같다.
데이터는 960*540 resolution, 25 fps이다.
실제 operation room에서 취득한 데이터이고, 비디오는 평균적으로 199분이라고 한다.
OSATS protocol을 수정한 것을 기준으로 하여 7가지 metrics으로 평가했다.
GRS(global rating score)는 7개의 metrics들의 합이다. 값은 7~35이다.
Settings.
JIGSAWS: 4 fold cross-validation, leave-one-user-out cross-validation
Clinical Data: 3 fold cross-validation
Evaluation Metric: Spearman's rank correlation (SROCC)
JIGSAWS의 경우, Fisher's z-value를 사용하여 3가지 surgical task간의 correlation을 계산했다.
실험은 여러번 진행해서 평균냈다.
visual path: ResNet-101, ImageNet pretrained, feature dim=2048 사용
Tool path:
clinical data의 경우, unsupervised too segmentation method. output은 segmentation mask들의 spatial histogram인데, 3*3, 4*4, 5*5 크기의 spatial grid 형태로 마스크를 가지게 된다. 각 surgical tools에 해당하는 픽셀의 퍼센트가 feature로서 활용된다. 사이즈는 9+16+25=50이다.
JIGSAWS의 경우, kinematic 정보가 같이 들어가있기 때문에 이걸 쓴다. dim=14이다. 3d positions, 3d velocities, gripper angles of the two patient-side manipulators.
proxy path:
clinical의 경우, (본인들이) 이전 논문에서 했던 proxy 구하는거 동일하게 사용해서 frame-level feature 뽑았다.
그런데 JIGSAWS에는 없어가지고 task completion time만 사용했다는 것 같다.
Event Path:
MS-TCN을 학습시켜서 clinical data나 surgical gestures를 detect한다. 그리고나서 이벤트나 제스처에 대해 frame-level probability를 뱉는다. 각각 클래스의 개수는 suturing 10, needle passing 8, knot-tying 6, clinical dataset 15이다.
aggregation function: 일단은 feature dimension 따라서 모든 피쳐를 concat.
proxy 아닌 것
encoding function: TCN (temporal convolutional network)
score function, weight function, prediction function: 전부 MLP
proxy path
identity나 uniform한 constant 함수 사용.
contrastive loss, prediction function은 proxy path에 없다고 한다.
[Results]
아래 visualization은 weighted score이다. 거의 0에 가깝다가 중간중간 값이 튀는 경우가 있는데, 이에 해당하는 프레임을 뽑아서 같이 보여주고 있는 그림이다.
아래 표 2개중에서 위에 것이 clinical dataset 실험 결과.
이건 자체 데이터셋이라 SOTA 비교를 위해 실험을 직접 해야했는데, 이를 위해 USDL은 오픈된 코드를 썼고 MICCAI 2019는 구현했다고 한다.
그리고 동등한 비교를 위해서 추가 annotation 관련 path는 제외했다고 한다. 예를 들면 USDL과 비교할때는 proxy 및 이벤트 path를 제외했고, MICCAI 19와 비교하기 위해서는 event path를 제외했다.
아래는 JIGSAWS dataset 실험 결과.
같은 annotation을 사용한 것 끼리 그룹핑해서 보여줬다.
ablation 결과를 보면, 데이터가 부족한 clinical dataset의 경우에 contrastive learning이 중요했음을 알 수 있다. (시그마, 다시말해 prediection 함수)
-
또한, Model output과 surgical gesture/event와의 상관관계를 구해봤다.
모델이 surgical skill에 대해 어떻게 이해하는지 알기 위함이다.
Weighted Scores Sequence와 input feature sequence를 temporal 축을 따라 SROCC를 구해 상관관계를 구했다.
선택된 채널 c에서만 계산한다. 그다음 절대값을 취하여 +이든 -이든 상관관계의 정도를 구한다.
아래는 JIGSAWS의 suturing task, tool features 각각을 model output과 비교한 결과다.
아래는 clinical data에서 surgical gesture와 모델간의 correlation이다.
상관관계가 죄다 0.1보다 낮을 정도인데, 데이터가 부족해서 그런 것이니까 더 늘면 상관관계가 높아질거라고 논문에서 말한다.
그렇다고 한다.
'AIML 분야 > 의료인공지능' 카테고리의 다른 글
[학회 리뷰] MICCAI 21 살펴보기 (0) | 2021.10.01 |
---|---|
A 3D Stereo System to Assist SurgicalTreatment of Prostate Cancer (0) | 2021.05.24 |
댓글