TLD 代碼學習(一)

OpenTLD 代碼

首先要

1:compile 其中是一些cpp文件,使用mex命令可以產生 mexw32文件,這部分牽涉到c和matlal 混編,有關mexfunction 和mxarray ,還是第一次接觸,查了點資料寫了個小測試cpp mex一下可以通過,然後繼續:

2: runtld 這裏是將參數初始化的部分 patchsize           = [15 15];這句在TLD 的論文裏有就是以15*15作爲一個patch 

      opt.p_par_init      = struct('num_closest',10,'num_warps',20,'noise',5,'angle',20,'shift',0.02,'scale',0.02); 
      opt.p_par_update    = struct('num_closest',10,'num_warps',10,'noise',5,'angle',10,'shift',0.02,'scale',0.02); 

      這兩句論文的5.6部分也提及了,就是第一幀選了框之後 提取初始的正樣本,不是一個而是200 了,對選的框周圍10個框進行旋轉,移動,放大放小等變化產生的,而負樣本沒有經過這些變化就是 initial bounding box  周圍的背景框

    [bb,conf] = tldExample(opt); 這句話講 初始化信息輸入tldExample 腳本,進行另一部分工作。

3 :tldExample 裏面包含進一步具體的初始化

         opt.source = tldInitSource(opt.source); 對opt裏的source域更改,添加了source.idx這個field 如果是圖片序列則           添加 source.file域。

        source.idx    = 1:length(source.files); 可見 idx 就是圖片序列的編號

        這種不斷變化的變量 有時候讓讀者 很是頭疼,不僅要記得名字還要記住經過幾個腳本後變量內容的變化

        figure(2); set(2,'KeyPressFcn', @handleKey);這其實是設置一個nested               funtion作爲回調函數,意思大概          就是 只要按下鍵 就調用handleKey 函數。

        tldInitFirstFrame 就是根據input 文件的第一張圖片讓你畫一框 或者是調用攝像頭

         source = tldInitFirstFrame(tld,opt.source,opt.model.min_win); 這一句對source 添加了source.im0 表示第一幀圖片,source.bb 表示框的座標

        tld = tldInit(opt,[]); 初始化tld這個 global 變量 因爲已經選擇了框 所以可以對detector初始化, 對於tracker 用的是           opencv提供的光流算法函數,所以這個不用作者自己再寫什麼東西。

4:tldInit 後續。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章