Tracking By Detection의 약자로, detection과 tracking을 단계적, 독립적으로 수행하는 방식이다. 2단계 처리로 인해 end-to-end 최적화가 이루어지지 않으며, detection과 tracking의 결합을 위해 별도의 신경망도 사용한다. 따라서, 최근에는 JDT방식이 선호된다.
1.3. JDT
Joint Detection and Tracking의 약자로, backbone network는 공유하지만, detection과 tracking을 동시에 독립적으로 수행하는 방식이다. 일반적인 tracking loss(re-ID loss)는 공유하는 backbone을 훈련할 때 detection loss와 호환이 되지 않아 detection 성능에 부정적인 영향을 미친다. 그 이유는, tracking은 intra-class 분산을 최대화 하여 object를 구분하는 것이 목표지만, detection은 intra-class 차이를 최소화하고, inter-class 차이를 확대하는것이 목표이기 때문이다.
1.4. Cost Volume
두 이미지의 intensity 차이를 pixel 단위로 계산하여 similarity를 측정한 것을 하나의 volume으로 쌓은 것이다. 이미지 매칭에 이용된다.
1.5. DCN
Deformable Convolution Network의 약자로, CNN에서의 고정된 크기와 모양의 filter를 이용해서 feature를 추출하는 것이 아닌, flexible한 영역에서 feature를 추출하는 방식을 사용한다. 즉, feature map에서 규직적인 grid내의 값을 sampling을 하는 것이 아닌, 광범위한 grid cell의 값을 sampling하는 것이다. 따라서 filter의 크기를 학습하여 object의 크기에 맞춰 변화하게 되며, 다양한 크기의 object에 대한 detection 성능이 향상된다고 한다.
1.6. CenterNet
성능이 좋은 실시간 object detection 모델로, anchor box를 사용자가 정의하지 않고 사전 정의된 key point들을 예측 및 이용하여 bounding box 생성하는 방식을 이용하여 detection을 수행한다. 신경망에서 이미지를 연산하여 출력되는 feature는 서로 다른 key point들에 대하여 heatmap을 가지게 되는데, heatmap의 peak이 object의 중심으로 예측한다. 이 중심을 이용하여 bounding box의 좌표를 예측하는데, 각 중앙점은 고유한 width와 height를 가지므로 NMS를 사용하지 않는다. object를 classification할 때도 heatmap의 peak를 사용하게 된다.
input image I∈RH×W×3I∈RH×W×3에서 base feature f∈RHF×WF×64(HF=H4,WF=W4)f∈RHF×WF×64(HF=H4,WF=W4)는 backbone network ϕ(∙)ϕ(∙)에 의해 생성된다. head Conv branch에서 ff를 이용해 class-wise center heatmap P∈RHF×WF×NclsP∈RHF×WF×Ncls (NclsNcls는 class의 수)를 생성하고, 작업별(2D, 3D, mask, … etc) prediction map을 생성한다. 대략적인 model의 구조는 아래와 같다.
ItIt에 있는 object x의 중심 (i,j)(i,j)에 대해 It−τIt−τ의 모든 point와 matching similarity가 계산된 Ci,jCi,j를 CC에서 추출
Ci,jCi,j를 HC×1HC×1, 1×WC1×WC kernel로 각각 max pool 하여 object x가 특정 height, width에서 등장할 확률이 담긴 CHi,j∈[0,1]HC×1CHi,j∈[0,1]HC×1, CWi,j∈[0,1]1×WCCWi,j∈[0,1]1×WC를 추출
Step 2
CHi,jCHi,j, CWi,jCWi,j 를 최종 tracking offset에 반영하기 위해 width와 height방향에 대해 각각 It−τIt−τ에서 실제 object x의 offset정보를 담은 template Mi,j∈R1×WCMi,j∈R1×WC, Vi,j∈RHC×1Vi,j∈RHC×1이용
계산에 이용되는 It−τIt−τ에서 실제 object x가 (∗,l)(∗,l), (k,∗)(k,∗)에 등장했을 때의 offset인 Mi,j,lMi,j,l, Vi,j,kVi,j,k는 아래와 같이 계산
{Mi,j,l=(l−j)×s1≤l≤WCVi,j,k=(k−i)×s1≤k≤HC, s is stride value, 8.
offset은 e를 기반으로한 C를 이용하여 구하므로, robust한 motion단서로 이용될 수 있음