Prediction-Tracking-Segmentationhtml
2019-04-09 18:47:30git
Paper:https://arxiv.org/pdf/1904.03280.pdf github
之因此要講這篇文章,是由於,我很喜歡這個文章的思路,即:基於 prediction 的跟蹤。廢話很少說,來看文章的核心思想:Prediction-Tracking-Segmentation。文章的提到,現有的跟蹤和分割的方法都是基於 appearance 的,而不多有考慮 motion information;特別是基於 tracking-by-detection 的 framework,嚴重依賴於 Local search region;從而致使對某些挑戰性的因素,特別敏感。這些因素有:occlusion,fast motion and camera motion。算法
如上圖所示,即使是目前 SOTA 的跟蹤算法 SiamMask(CVPR-2019) 在處理遮擋問題上,也非常頭疼。因而做者提出充分利用 motion information 來解決上述難度:app
給定圖像的目標運動是 camera motion 和 object motion 的疊加。前者是隨機的,然後者是符合 Newton's First Law 。咱們首先每間隔 n 幀,選擇一個 reference frame,因此,將 long video 分解爲多個 n-frame video 的短視頻。第二,做者採用 ARIT("Action recognition with improved trajectories." ICCV 2013.)提出的方法來 camera motion 和 object motion 在每個短視頻內部進行分離。ARIT 假設 pending detection frame 及其 reference frame 是與 homography 相關的。這個假設在大部分的場景下都是成立的,由於通常兩幀時間的運動是較小的。爲了預測 homography,第一步是找到兩幀之間的對應關係。在 ARIT 中,咱們組合了 SURF features 和 從光流中獲得的 motion vectors,來產生足夠的和互補的候選匹配。此處,咱們採用 PWCNet (Project,Code) 來進行 dense flow generation。ide
因爲 homography matrix 包含 8 個 free variables,至少應該用 4 個 background points pairs。咱們用 Eq 1 來計算 the least square solution,而且用 RANSAC 優化獲得魯棒的 solution。因爲有以下的假設:the background occupies more than half of the images, 咱們將視頻幀之間的 matching points 分化爲 4 個部分,而後每個 point 在每個選擇的 piece 內部是隨機選擇的,用於改善 RANSAC algorithm 的效率:優化
簡單起見,全部的後續操做都是在 reference coordinate,投影回當來的視頻幀。圖3 展現了分解步驟的工做原理:spa
這個視頻是由手持攝像機拍攝的,而且有抖動的背景。行人的運動是高度不可預測的。可是,經過將 target frame 投影到 reference frame 上,行人的運動變的更加可預測和連續。爲了找到最具備表明性的目標位置,咱們計算了物體分割的 「center of mass」 :orm
背景運動預測 和 掩膜分割 的噪聲能夠被引入到物體位置預測中,從而影響預測的精度。爲了更好的預測物體狀態,咱們利用 Kalman Filter 經過當前和前一幀的度量(measurement),來提供準確的位置信息。做爲經典的跟蹤算法,the Kalman Filter 經過以下兩步來預測物體的狀態:prediction 和 correction。在 Prediction 步驟,基於 the dynamic model (Eq. 3) 來預測目標狀態,產生用於 Siamese Tracker 的搜索區域,以進行物體分割。因此,下一幀物體位置的預測度量能夠用 Eq. 2 來計算。而後,在 Correction 步驟,給定來自 Siamese Network 的位置度量,在當前的步驟中,能夠更加肯定位置度量的置信度。視頻
用於物體位置更新的 dynamic model 能夠表達爲:
在上述公式中,等號左側的 x 是 priori state estimation,是帶有位置信息的 4 維的向量 [x, y, dx, dy]。須要注意的是,速度項 (dx, dy) 是從 time t-1 and t 之間的信息預測獲得的。wt 是系統中的隨機噪聲。Ft 是從 time t-1 到 t 的轉移矩陣。
在預測狀態以後,the Kalman Filter 利用 measurements 來矯正其預測,用 Eq. 4。在公式中,$\hat{y}_t$ 是 prediction 和 measurement 之間的 residuals。$K_t$ 是給定的最優 Kalman gain,從預測的噪聲協方差,measure matrix and measurement matrxi covariance 中獲得的,如公式 5 所示。
須要注意的是,因爲 Kalman Filter 是一個 recursive algorithm,預測的 error covariance (P) 也應該根據預測結果,進行更新。
有了上述預測,咱們就能夠以上述預測的物體位置爲中心點,肯定一個搜索區域。咱們將預測的物體中心位置投影回到 pending detection frame,用 Eq. 6:
給定預測的位置,咱們從而能夠設置搜索區域 S:
搜索區域大小 S 應該根據 Eq. 8 預測的速度,進行調整。v 是 Kalman Filter 預測的速度,T 是速度的閾值。搜索區域以中心點 $P_{r_k+t}$ 裁剪下來,而後 resize 到 255*255。
爲了使得 one-shot segmentation framework 適合 tracking 任務,咱們採用用於自動包圍盒迴歸的優化策略,提供了較高的 IoU 和 mAP。
關於 Segmentation part,就和 SiamMask 很相似了,感興趣的讀者能夠參考 SiamMask。
==