openTLD 源碼解讀

來源:互聯網
上載者:User

首先是run_TLD 在其次就是tldExample 最後到了初始化函數tldInit

第一個比較關鍵的函數   bb_scan

將映像網格化,將圖片首先 SCALE = 1.2.^[-10:10];(21 個規格),在每個規格上打網格 

這個函數有一個比較重要的方法

ntuples(就是重複) 因為網格上的點很多點有相同的X,或者Y 具體方法大家在matlab中調用一句ntuples([1 2],[1 2,3])看看答案就知道什麼意思了。

這個函數返回一個6*n的矩陣,這個矩陣每個列代表一個視窗。

1,代表視窗左上點X

2,代表視窗左上點y

3,代表視窗右下點X

4,代表視窗右下點Y

5,這種規格的編號

6,相同X的視窗數目

產生特徵點函數tldGenerateFeatures

就是產生一系列的隨機數 大概是(4*特徵個數)*樹的個數

初始化軌跡

記錄連續的圖片

訓練探測器

規格化和目標的相似性bb_overlap

將每個規格化視窗和目標視窗做運算得到相似性

公式:相交的面積/總面積(不相交則返回0.0)

注意矩陣運算返回一個向量,大小就是規格化的數目length(grid)

取出圖片的函數,當參數為4個時會進行變換img_patch

tldGeneratePositiveData產生正樣本資料

主要利用的是相似性來判定正負樣本既bb_overlap>閾值,則認為正樣本,反之亦然。

這裡主要就是有個編碼問題

隨機取出點比較大小進行編碼

for (int i=0; i<nFEAT; i++) {
index<<=1; 
int fp0 = img[off[0]+bbox[0]];
int fp1 = img[off[1]+bbox[0]];
if (fp0>fp1) { index |= 1;}
off += 2;
}

(fern.cpp的measure_tree_offset)

這個函數返回一個pX代表編碼後的矩陣,pEx代表最靠近目標視窗的規格化視窗(這個視窗進行了處理可以用於後面的訓練),

最靠近目標視窗的規格化視窗

類似的負樣本情況。

fern(2,......)

開始訓練隨機樹

if (Y[I] == 1) {
if (measure_forest(x) <= thrP)//防止某個特徵占的比重太大
update(x,1,1);
} else {
if (measure_forest(x) >= thrN)
update(x,0,1);

void update(double *x, int C, int N) {
for (int i = 0; i < nTREES; i++) {
int idx = (int) x[i];
(C==1) ? nP[i][idx] += N : nN[i][idx] += N;
if (nP[i][idx]==0) {
WEIGHT[i][idx] = 0;
} else {
WEIGHT[i][idx] = ((double) (nP[i][idx])) / (nP[i][idx] + nN[i][idx]);//正樣本增加相應位置的權重,集後面的信賴度
}
}
}

訓練樣本產生一個正確的特徵集

 tldTrainNN(pEx,nEx,tld)

tld.pex = [tld.pex(:,1:isin(2)) x(:,i) tld.pex(:,isin(2)+1:end)]; % 這個代碼就是通過隨機樹種產生比較高的規格化視窗在這些視窗放到正特徵集裡面

以後就可以拿這個和目標最比較來判斷目標視窗的位置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.