天天看點

CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤

友情提示:如果隻希望了解如何利用作者釋出的預訓練網絡直接進行tracking(免訓練模式),可以閱讀本人另一篇部落格:CFNet視訊目标跟蹤源碼運作筆記(1)——only tracking

論文資訊

論文題目:End-to-end representation learning for Correlation Filter based tracking

論文出處:CVPR 2017

論文作者:Jack Valmadre,Luca Bertinetto等人

論文首頁:http://www.robots.ox.ac.uk/~luca/cfnet.html

源碼連結:https://github.com/bertinetto/cfnet

運作環境介紹

  • Windows 10 x64
  • MATLAB 2017b
  • Visual Studio 2015
  • CUDA 8.0.61 for win10
  • cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0
  • MatConvNet 1.0-beta25 (http://www.vlfeat.org/matconvnet/download/matconvnet-1.0-beta25.tar.gz)此處感謝“月色真美”同學的無私幫助~

準備

  1. 安裝CUDA,具體步驟可以參考本人另一篇部落格:

    https://blog.csdn.net/discoverer100/article/details/79758499

  2. 安裝cuDNN,具體步驟可以參考本人另一篇部落格:

    https://blog.csdn.net/discoverer100/article/details/79759282

  3. 檢查MatConvNet是否可用,具體步驟可以參考本人另一篇部落格:

    https://blog.csdn.net/discoverer100/article/details/78963233

  4. 下載下傳CFNet的MATLAB源碼:https://github.com/bertinetto/cfnet
  5. 下載下傳SiamFC目标跟蹤的MATLAB源碼:https://github.com/bertinetto/siamese-fc,後續進行crop圖像生成時需要借用裡面的部分代碼。
  6. 下載下傳

    cfnet_ILSVRC2015.stats.mat

    檔案,連結:

    https://drive.google.com/file/d/0B7Awq_aAemXQcndzY3M5dkprVTA/view?usp=sharing

  7. 下載下傳ILSVRC2015視訊圖像集,位址:http://bvisionweb1.cs.unc.edu/ilsvrc2015/ILSVRC2015_VID.tar.gz,如果不能直接下載下傳,則需要到網頁上進行注冊(http://bvisionweb1.cs.unc.edu/ilsvrc2015/download-videos-3j16.php#vid),在這個頁面中能夠看到一個VID檔案下載下傳連結(如下圖所示)。該檔案的檔案名為

    ILSVRC2015_VID.tar.gz

    ,大約占用86GB磁盤空間,強烈建議用迅雷下載下傳該檔案,有條件的也可以用淘寶的代下載下傳服務。
    CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤
  8. 下載下傳CFNet的官方Metadata,位址:http://bit.ly/cfnet_imdb_video,其檔案名為

    cfnet_imdb_video_2016-10.mat

    ,占用空間大約為6GB,同樣建議用迅雷或者淘寶上的代下載下傳服務。

Crop圖像生成

  1. 在CFNet源碼檔案夾中的

    data

    目錄中建立

    VID

    檔案夾(此時,建立後的VID檔案夾為空)
  2. 将準備工作中下載下傳的

    ILSVRC2015_VID.tar.gz

    檔案(大小約86GB)解壓,可以解壓到任何地方(友情提示:1.最好不要放太深或者有空格的路徑;2.一定不要放到CFNet源碼檔案夾

    data

    裡面,否則上述空

    VID

    檔案夾會受到影響),解壓後會得到一個

    ILSVRC2015

    檔案夾,其中我們關注的目錄有兩個:

    Data\VID\train

    Data\VID\val

    ,如下面兩張圖所示(注意:對于

    train

    目錄我們還關心它裡面的四個子檔案夾):
    CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤
    CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤
  3. 将上述

    val

    目錄移動到上述

    train

    目錄中(注意:是移動整個

    val

    檔案夾),移動後,

    Data\VID\train

    目錄就包含了五個檔案夾:四個自帶的檔案夾,加上新進來的

    val

    檔案夾,按照Windows資料總管預設的名稱增序排序如下:

    ILSVRC2015_VID_train_0000

    ILSVRC2015_VID_train_0001

    ILSVRC2015_VID_train_0002

    ILSVRC2015_VID_train_0003

    val

  4. 對上述五個檔案夾進行重命名,分别命名為

    a

    b

    c

    d

    e

    ,如下:

    ILSVRC2015_VID_train_0000 -> a

    ILSVRC2015_VID_train_0001 -> b

    ILSVRC2015_VID_train_0002 -> c

    ILSVRC2015_VID_train_0003 -> d

    val -> e

  5. 在CMD視窗中,利用

    xcopy

    指令(參考:https://superuser.com/questions/530128/how-to-copy-a-directory-structure-without-copying-files),将剛剛移動了檔案夾、并修改了檔案夾名字的ILSVRC15圖像資料集中的檔案夾結構複制到步驟1中建立的空VID檔案夾中(注意:隻是複制檔案目錄結構,不要複制裡面的檔案),具體指令形如:
    xcopy D:\ILSVRC15\data\VID D:\Dev\MATLAB_2017\cfnet-master\data\VID /t /e
    如果采用Linux系統,則需要用形如下面的指令來進行目錄結構複制(感謝yangkang779760348同學進行補充~)
    find ./VID/ -type d -exec mkdir -p VI/{} \; linux下的xcopy
    執行該指令可能需要花費幾分鐘至十幾分鐘的時間,執行完畢後到

    cfnet-master\data\VID

    目錄下檢查一下是否有一堆空的檔案夾(檔案夾裡面可能還會有檔案夾,但一定沒有任何檔案)。
  6. 将準備工作中下載下傳的

    cfnet_ILSVRC2015.stats.mat

    檔案(大小約728KB)複制到

    cfnet-master\data

    目錄中,并修改檔案名為

    ILSVRC2015.stats.mat

    ;将下載下傳的

    cfnet_imdb_video_2016-10.mat

    檔案(大小約6GB)複制到

    cfnet-master\data

    目錄中,并修改檔案名為

    imdb_video.mat

    ,複制後的

    data

    檔案夾如下所示:
    CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤
  7. 将準備工作中下載下傳的SiamFC源碼包進行解壓,将裡面的

    ILSVRC15-curation

    檔案夾拷貝到

    cfnet-master\src

    目錄中,這樣,

    src

    目錄中一共有四個檔案夾:

    ILSVRC15-curation

    tracking

    training

    util

  8. 在MATLAB中打開

    cfnet-master\src\ILSVRC15-curation\save_crops.m

    檔案,并在其指令視窗中一行一行地運作:

    imdb_video = load(‘D:/Dev/MATLAB_2017/cfnet-master/data/imdb_video.mat’);

    imdb_video = imdb_video.imdb_video;

    save_crops(imdb_video, 1, 4417, ‘D:\ILSVRC15’, ‘D:/Dev/MATLAB_2017/cfnet-master’);

    上述三條指令,其具體路徑與自己實際情況保持一緻。關于參數4417的來曆,可以在MATLAB中打開load後的

    imdb_video.mat

    變量,發現其

    id

    屬性有4417個元素。

    注意:該crop工作持續的時間可能非常長(配置Intel Core i5标壓CPU的機器可能需要40-50個小時),源碼也沒有斷點恢複機制,為防止機器斷電造成損失,可以通過修改參數1和4417來分段進行crop。

  9. Crop的圖像和标注資料會寫入到步驟1建立的

    VID

    空檔案夾中,該過程執行完畢後,其内部應該包含個8,021,672個檔案,占用37.4GB的磁盤空間,如下圖所示:
    CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤
  10. Crop操作相當于對視訊原始圖像進行了裁剪、縮小和補全等處理,以下是一個crop前(上圖)和crop後(下圖)比較的例子:
    CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤
    CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤

訓練

  1. 進入目錄

    cfnet-master\src\training

    ,複制

    env_paths_training.m.example

    startup.m.example

    檔案并去掉其

    .example

    字尾,如下圖所示:
    CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤
  2. 打開上述兩個檔案并修改裡面的配置資訊(注意有些地方需要在末尾帶上正斜杠,檔案名一定要與之前的對應起來),如下圖所示:
    CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤
    CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤
  3. 以訓練conv2為例,運作

    run_experiment_cfnet_conv2.m

    檔案,代碼中預設疊代100次,完整的訓練過程可能會花費很長的時間,如果隻是希望簡單體驗一下可以調低該源碼檔案中參數

    opts.train.numEpochs

    的值進行訓練,訓練時會産生類似下圖的輸出:
    CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤
  4. 訓練網絡時,代碼會在

    cfnet-master\src\training

    中建立一個檔案夾,每進行一次疊代,都會在該檔案夾中儲存一個網絡檔案。這樣,CFNet的網絡訓練是允許中途關機的。

跟蹤

選擇上述某一輪疊代儲存的網絡檔案,拷貝到

cfnet-master\pretrained\networks

目錄中,運作對應的源碼即可。以conv2層為例,打開檔案

run_cfnet2_evaluation.m

,修改參數

tracker_par.net

的值為剛剛拷貝的網絡檔案名,再運作即可。

關于跟蹤過程的詳細操作,可以閱讀本人另一篇部落格:

https://blog.csdn.net/discoverer100/article/details/79758131

這裡需要注意的是:代碼預設僅僅計算物體坐标,并不會在螢幕上顯示視訊畫面内容和标定。如果需要顯示畫面,可以進入

tracker.m

檔案,将第16行的

p.visualization

指派為

true

,這樣的效果如下圖所示:

CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤
CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤

更多内容,歡迎掃碼關注“視覺邊疆”微信訂閱号

CFNet視訊目标跟蹤源碼運作筆記(2)——training and then tracking論文資訊運作環境介紹準備Crop圖像生成訓練跟蹤

繼續閱讀