學習筆記16

2021-10-02 23:41:26 字數 2208 閱讀 2449

提出該動機的原因有3個方面:1)檢測演算法是專門在複雜場景中精確定位和區分物件的,這可能導致更準確和穩健的***。

2)重用檢測模型可以減少跟蹤中的重複工作,因此我們可以將更多精力放在跟蹤特定的問題上,例如目標域適應和時間依賴性。

3)這種框架有可能促成多任務模型,即聯合檢測和跟蹤視覺物體, 這接近行業的需求。

需要解決的問題:1)目標檢測器是特定於類別的,而***是與類別無關的,即應該跟蹤任意移動的物件。2)目標檢測器無法區分類內例項,但這是***的一項關鍵能力。3)時間線索對於穩定的長期追蹤很重要,而在靜止影象檢測器中不考慮它們。

一、框架架構

我們將跟蹤看作為one-shot目標檢測和few-shot例項分類的聯合任務。前者是類等級子任務找到所有類似目標候選框,而後者是一種例項級子任務,它從干擾物中區分出目標。

提出了一種用於one-shot目標檢測的目標指導模組,該模組基於乙個基礎檢測器,該基礎檢測器由骨幹網路和幾個頂層組成(即檢測頭部和optional proposal以及roi池化層)。該模組對目標和搜尋區域特徵及其在骨幹網中的互動進行編碼,將其作為指導,在一小套類似目標的物體上致力於基礎檢測器。相當於讓網路更關注於與目標相關的instance。

該模組首先對目標特徵執行roi池化,然後跟隨卷積層以將輸出轉換為大小c×1×1的調製器,其中c為特徵通道的數量;然後,調製器用於重新加權搜尋影象的特徵通道。將原始和調製的搜尋區域特徵以及上取樣的目標全域性表示進行級聯,然後饋入1×1卷積層中以進行合併特徵。以這種方式,骨幹網對目標和搜尋區域特徵及其相互作用進行編碼,為後續檢測提供足夠的資訊。

2、model-agnostic meta-learning(maml) algorithm( an instance classifier)

為了解決在小樣本上直接訓練分類器導致的過擬合問題。maml可以學習敏感的初始引數,能夠快速適應新任務,僅須少量樣本和較少的訓練迭代次。簡言之,它學會了微調。我們發現檢測器的分類頭部對於例項分類器來說是乙個很好的初始化,因此我們用具有相同結構的元層 meta layer替換該頭部,並學會從大型訓練資料中針對不同目標快速進行微調。 注意以這種方式,只需要進行一次引導檢測就可以過濾出類間和類內的干擾物。

如圖,採用三元組作為訓練,exemplar影象代表目標指導,告訴檢測器「要看的地方」。support影象用於微調檢測器的分類頭,我們希望更新後的模型在query影象上能表現良好。inner optimization optimization中,support image上計算的loss用來微調meta-layers即detector heads的引數,然後將meta-loss的梯度用於更新outer optimization optimization。

指導檢測器,作為內部迴圈優化,在support集(zb,sb)上經過n步梯度更新獲得θn,即更新檢測器頭部引數。

θ0代表檢測器頭部層的引數,直接用檢測器的損失去優化θ0。其中在內部和外部優化迴圈中更新θ0,而檢測器的其他引數僅在外部優化迴圈中更新。

在第一幀,我們使用隨機水平翻轉和隨機裁剪生成16個訓練樣本,並用n1=5次訓練迭代微調探測器的頭部。對於其它幀,每幀採集乙個訓練樣本,在更新過程中,我們使用nr=1的訓練迭代去調整模型。

問題:由於元學習器的離線訓練階段無法確保持續學習的泛化能力,因此仍然存在過度擬合的風險。

解決:受錨損失的激發,引入錨定更新策略以減輕過擬合。

當在步驟t微調時,更新引數θt被定義為從最後乙個監測點θt-1和從最初引數θ0更新的組成。

Python學習筆記 16

自己總結的 遞迴就是將大的問題分解為相同的小問題,方法內重複呼叫自己 求10的階乘 10 deffactorial n for迴圈方法 result n for i in range 1 n result i return result n 4 print factorial n 遞迴就是將大的問題...

python學習筆記(16)

因為列舉成員不是有序的,所以它們只支援通過標識 identity 和相等性 equality 進行比較。enum 類的列舉是不支援大小運算子的比較的。使用 intenum 類進行列舉,就支援比較功能。usr bin env python3 coding utf 8 import enum class...

c 學習筆記 16

普通函式與函式模板的區別 普通函式呼叫時可以發生自動型別轉換 隱式型別轉換 函式模板呼叫時,如果利用自動型別推導,不會發生隱式型別轉換 如果利用顯示指定型別的方式,可以發生隱式型別轉換 int add1 int a,int b int a 10 char c a cout add1 a,c temp...