Project page : https://riponazad.github.io/echotracker/

 

EchoTracker: Advancing Myocardial Point Tracking in Echocardiography

Tissue tracking in echocardiography is challenging due to the complex cardiac motion and the inherent nature of ultrasound acquisitions. Although optical flow methods are considered state-of-the-art (SOTA), they struggle with long-range tracking, noise occ

riponazad.github.io

 

 


➡️ Abstract

  • 심장초음파를 통한 tissue tracking은 심장의 복잡한 움직임과 초음파 자체의 특성 때문에 어려움
  • 해당 task의 기존 SOTA인 Optical flow 방법론은 SOTA로 여겨지기는 하나, 장기간 tracking을 수행하기 힘들고 noise occlusion, drift를 고려하지 못함
  • 최근에는 위 문제들을 극복하기 위한 학습기반의 point tracking 방법론이 소개되고 있음
  • 본 논문에서는 초음파 영상의 query point를 tracking 할 수 있는 EchoTracker라는 two-fold coarse-to-fine 모델을 제안함 
    • 초기에 trajectory에 대한 coarse initialization 진행
    • Reinforcement iteration을 통해 trajectory를 개선
  • Code link: https://github.com/riponazad/echotracker/.

 


➡️ Introduction

심장초음파를 통한 Myocardial imaging은 심장 근육의 형태를 평가하고 정량화하는 데 사용된다. 이를 통해 심장 기능성 저하나 근육의 불규칙성을 찾을 수 있고, 다양한 심장의 상태를 진단할 수 있다. Deformation을 측정하기 위한 myocardial strain은 ejection fraction과 같은 다른 measurement보다 더 민감하게 상위 질병과 연관 있다. Motion estimation은 정밀한 strain 측정을 위해서 필수적이지만, 영상 획득과 측정하는 방식의 다양성과 초음파 자체의 한계에 때문에 정밀한 측정은 쉽지 않다. 근래에 motion 측정과 strain imaging은 block 및 feature matching을 통한 speckle tracking 방법론이 일반적이었다. 최근에는 학습 기반의 기술이 발전하면서 FlowNet 및 PWC-Net과 같이 optical flow 기반의 모델이 발전했고, 이는 초음파 영상에도 적용시키고자 하는 연구들이 진행되었다. 하지만 optical flow는 긴 영상의 시간적인 정보를 고려하지 못하고 연속한 frame 사이에서의 displacement field를 계산한다는 단점이 있다. 따라서 저자는 모델 구조를 초음파 데이터에 맞게 설계해서 간단한 구조로 효율적인 학습이 가능하고 좋은 성능을 낼 수 있었다.

 


➡️ Tracking Any Point (TAP)

TAP는 deep learning의 새로운 분야로, optical flow 기반의 tracking의 한계를 극복하기 위해 발전해왔다. 또한 단단하지 않은 물체 표현에 있는 점에 대한 추적이 가능하다. TAP 분야를 최초로 정의한 저자 Doersch는 간단한 모델인 TAP-Net을 통해 향후의 성능평가를 위한 실제 및 임의 데이터에 대한 baseline 성능을 제공했다. TAP 알고리즘은 영상 데이터와 query point를 입력받게 되면 어떤 모든 시간 \({t}\)에 대한 tracking 된 위치 \({(x_t, y_t)}\)와 가려짐 여부 (\({o}_t\))를 출력한다. 이때 만약 occluded 된 것으로 (\({o_t = 1}\) 판단된 frame의 예측 위치는 의미가 없는 것으로 간주한다. 하지만 이러한 특징은 심장초음파에 적용하기에 모순이 있다. 이는 측정되고 있는 면을 벗어나는 점에 대해서까지도 GLS를 위한 움직인 위치를 계산할 수 있어야 하기 때문이다. 따라서 저자가 제안하는 모델에서는 Persistent Independent Particles (PIPs) 기반의 구조와 결합해서 사용한다. 하지만 여전히 PIP 기반의 방법은 각각의 점들을 독립적으로 tracking 할 뿐, trajectory 사이의 정보를 교환하지 않기 때문에 myocardial tissue와 같이 deformable 해서 초음파 측정 탐지봉의 view 범위를 벗어나는 물체를 tracking 하는데 큰 drift가 생기는 등의 어려움이 있다. 이와 같은 문제점은 CoTracker와 OmniMotion이라는 이전 연구들에서도 언급된 적이 있다.

  • CoTracker
    • naive initialization이후에 sliding window 방법을 사용하는 transformer 구조를 통해 iterative하게 trajectory를 개선
    • PIPs의 long-range tracking과 동일한 단점을 가지고, window 크기를 늘린다 해도 계산량이 많아짐 
  • OmniMotion
    • 입력 영상의 canonical 3D volume에 기반한 test-time 최적화 방법

 


➡️ Methods

학습 기반 모델의 전반적인 목표는 복잡한 움직임, 변형, 잡음이 섞여있는 심장 주기를 걸쳐서 특정 지점들을 tracking하는 것

  • 입력되는 초음파 영상 : \({U} = \{ u_s \in \mathbb{R}^{H \times W} \} \) for \({s}= 0,1,\ldots,S\)
    • 이미지의 높이 : \({H}\)
    • 이미지의 너비 : \({W}\)
  • 영상의 첫 frame속 query points : \({p}_0 = \{ (x_0^n, y_0^n) \} \) for \({n} = 0,1,\ldots,N \)
  • 출력되는 queried points : \({P}=\{ p_s \in (x_s^n, y_s^n) \} \)

 

✔️ EchoTracker

위 그림과 같이 EchoTracker는 두 단계로 나뉜다 (\({initialization},\;{iterative \; reinforcement}\)). 해당 접근법은 TAPIR에서 영감을 받은 two-fold coarse-to-fine 전략을 따른다. 해당 방식을 통해 적절한 계산 속도를 확보하면서, downsampling에 의한 정보 손실도 방지하는 효과를 얻는다.

  • Initalization
    • trajectory들은 coarse-network를 통해 feature map의 coarse resolution에 기반해서 초기화됨 
  • Iterative reinforcement
    • trajectory들은 fine-network를 통한 fine-grained feature map를 사용해서 반복적으로 개선됨

 

◾Initialization

  • 입력 데이터에는 \({S}\)개의 초음파 이미지와, \({N}\)개의 query point가 포함됨
  • Coarse feature map을 만들기 위해서 pruned 2D residual convolutional network (basic encoder)가 사용됨
    • Coarse feature map : \({F}_s \in \mathbb{R}^{d \times \frac{H}{k} \times \frac{W}{k} }\) 
    • \({k}=8\) 과 \({d}=64\) 가 사용됨
    • prunning은 계산 비용 절감과 초음파 영상의 제한된 특성 (grayscale, cyclic, velocity)을 고려하기 위해 고안되었음
  • 첫 frame에 대한 query point \({p}_0^n\)가 주어졌을 때 bilinear sampling을 통해 point에 대한 feature vector를 얻음
    • feature vector \({f}_{p_0^n} = \text{sample}(F_0, p_0^n) \)
  • 앞서 계산한 feature vector와 전체 영상에 대해 내적을 통해 cost volume을 계산
    • 이때 multi-scale feature pyramid를 사용함
      • \({L} = 4\)와 kernel size \({r}=3\)을 사용
    • Cost volume : \( {C}^n_s = {f}_{p_0^n} \cdot \text{pyramid}(F_s) \)
  • cost volume은 coarse 1D ResNet에 입력되어 initial trajectory를 출력함
    • initial trajectory : \({P}_s^n\)
    • 2D ResNet 대신 1D ResNet을 사용해서 시간적인 정보에 우선순위를 부여함, 공간적인 정보는 bilinear sampling에서 고려되었다고 가정

 

◾Iterative Reinforcement

PIPs와 최근의 point tracking 방법론들에서 영감을 받아 initial coarse trajectory를 iterative reinforcement 과정을 통해 개선했다. 저자는 본인들의 initialization 방식이 비교적 성공적으로 수행된다고 생각해서, 적은 iteration 횟수( \({I}=4\) )로도 개선된 trajectory로 잘 수렴할 것이라고 가정했다.

  • Initialization 이후 동일한 basic encoder를 사용하되, downsampling 인자는 줄여서 \({k}=2\) 를 사용함
    • fine feature maps : \({F_s} \in \mathbb{R}^{d \times \frac{H}{2} \times \frac{W}{2}} \)
  • Initialization과 달리 cost volume을 계산할 때, 현재 frame \({s}\)의 feature vector \({f}_{p^n_s}\)와 feature map의 point 위치 근처의 multi-scale crops of pyramid feature 사이의 내적값을 계산함
    • cost volume : \({C}_s^n = f_{p_s^n} \cdot \text{multicrop-pyramid}(F_s)\)
  • 현재 frame에서 고정된 간격을 갖는 다른 cost volume( \({i.e.,\; C^n_{s-2}, C^n_{s-4}}\) )과 첫 frame의 cost volume( \({C}^n_0\) )을 함께 tracking 예측에 사용함
    • 이러한 cost volume 들을 모두 더해서 linear layer에 입력함으로써 현재 frame에 대한 score map을 계산함
    • 위 과정을 모든 frame에 걸쳐서 수행
  • 모든 score map을 1D ResNet에 입력해서 업데이트 값 \(\Delta{p^n_s}\)을 계산함
    • 이때 사용되는 1D ResNet은 initialization에 사용된 coarse 한 네트워크 보다 더 깊고 많은 가중치를 가짐
    • 계산된 결괏값을 통해 업데이트를 진행
      • \({p_{s, i}^n} = p^n_{s, i-1} + \Delta{p_{s, i-1}^n}\)

 

+ Recent posts