SiameseFC-TensorFlow 程式碼詳細註解(一):預訓練模型下載轉換測試以及結果視覺化(轉載)
這篇部落格主要的目的就是簡單地跑一下實驗,讓下載的程式碼能用預訓練的模型去測試單個視訊,並對結果視覺化,從視覺上感受一下這個跟蹤演算法的效果,至於如果要自己訓練自己的模型該如何準備訓練資料,如何設計自己的模型,如何訓練自己的模型,以及如何評估自己的模型等,這些問題都將在後面的系列部落格中慢慢道來。
1: SiameseFC-TensorFlow環境配置
可參考原始碼中的說明,這裡將截圖放在這裡,大家自行準備可執行的環境。
2:預訓練模型下載轉換和測試
可參考原始碼中的說明,這裡也給個截圖,然後主要對一些檔案做一些詳細一點的註解。內容主要有預訓練模型和測試視訊的下載,模型轉換以及轉換前後的模型對比檢驗,視訊的測試和結果的視覺化。
2.1 預訓練模型和測試視訊下載
核心檔案:scripts/download_assets.py
核心功能:下載SiameseFC的matlab版本預訓練模型,同時下載用於測試的單個視訊。
- #! /usr/bin/env python
- # -*- coding: utf-8 -*-
- #
- # Copyright © 2017 bily Huazhong University of Science and Technology
- #
- # Distributed under terms of the MIT license.
- import os.path as osp
- import sys
- import
- import six.moves.urllib as urllib # 資料下載相關庫 , urllib
- CURRENT_DIR = osp.dirname(__file__) # 返回當前.py指令碼檔案的路徑
- ROOT_DIR = osp.join(CURRENT_DIR, '..')
- sys.path.append(ROOT_DIR) # 增加模組的搜尋路徑
- from utils.misc_utils import mkdir_p
- def download_or_skip(download_url, save_path): # 資料下載函式
- ifnot osp.exists(save_path): # 判斷資料是否已經下載,避免重複下載
- print('Downloading: {}'.format(download_url))
- opener = urllib.request.URLopener()
- opener.retrieve(download_url, save_path)
- else:
- print('File {} exists, skip downloading.'.format(save_path))
- if __name__ == '__main__': # 資料下載準備 主函式
- assets_dir = osp.join(ROOT_DIR, 'assets') # 新增資料資源儲存的路徑assets_dir
- # Make assets directory
- mkdir_p(assets_dir) # 生成路徑,儲存資料資源
- # Download the pretrained color model # 下載SiameseFC-color pretrained 模型
- download_base = 'https://www.robots.ox.ac.uk/~luca/stuff/siam-fc_nets/'
- model_name = '2016-08-17.net.mat'
- download_or_skip(download_base + model_name, osp.join(assets_dir, model_name))
- # Download the pretrained gray model # 下載SiameseFC-color-gray pretrained 模型
- download_base = 'https://www.robots.ox.ac.uk/~luca/stuff/siam-fc_nets/'
- model_name = '2016-08-17_gray025.net.mat'
- download_or_skip(download_base + model_name, osp.join(assets_dir, model_name))
- # Download one test sequence # 下載一個測試視訊,供測試和顯示
- download_base = "http://cvlab.hanyang.ac.kr/tracker_benchmark/seq_new/"
- seq_name = 'KiteSurf.zip'
- download_or_skip(download_base + seq_name, osp.join(assets_dir, seq_name))
- # Unzip the test sequence # 將下載的視訊.zip檔案解壓縮
- with zipfile.ZipFile(osp.join(assets_dir, seq_name), 'r') as zip_ref:
- zip_ref.extractall(assets_dir)
2.2 模型轉換
核心檔案:experiments/SiamFC-3s-color-pretrained.py、SiamFC-3s-gray-pretrained.py
相關檔案:scripts/convert_pretrained_model.py,utils/train_utils.py
核心功能:將siameseFC的color和gray模型由matlab格式轉換成tensorflow方便讀取的格式。
就從最外邊的實驗封裝檔案慢慢往裡看吧:experiments/SiamFC-3s-color-pretrained.py
- #! /usr/bin/env python
- # -*- coding: utf-8 -*-
- #
- # Copyright © 2017 bily Huazhong University of Science and Technology
- #
- # Distributed under terms of the MIT license.
- """Load pretrained color model in the SiamFC paper and save it in the TensorFlow format"""
- from __future__ import absolute_import
- from __future__ import division
- from __future__ import print_function
- import os.path as osp
- import sys
- CURRENT_DIR = osp.dirname(__file__)
- sys.path.append(osp.join(CURRENT_DIR, '..'))
- print( osp.join(CURRENT_DIR, '..')) # 新增搜尋路徑
- from configuration import LOG_DIR # 從配置檔案中匯入log儲存的路徑
- from scripts.convert_pretrained_model import ex # 匯入對應的experiment
- # 這裡只是實驗的表皮,具體實驗還得看scripts.convert_pretrained_model詳細內容
- if __name__ == '__main__':
- RUN_NAME = 'SiamFC-3s-color-pretrained'
- ex.run(config_updates={'model_config': {'embed_config': {'embedding_checkpoint_file': '/workspace/czx/Projects/SiamFC-TensorFlow/assets/2016-08-17.net.mat',
- 'train_embedding': False, },
- },
- 'train_config': {'train_dir': osp.join(LOG_DIR, 'track_model_checkpoints', RUN_NAME), },
- 'track_config': {'log_dir': osp.join(LOG_DIR, 'track_model_inference', RUN_NAME), }
- }, # 實驗執行管理,這裡的話就是根據需要更新一些配置檔案中的引數
- options={'--name': RUN_NAME,
- '--force': True,
- '--enforce_clean': False,
- })
模型轉換實驗檔案:scripts/convert_pretrained_model.py
- #! /usr/bin/env python
- # -*- coding: utf-8 -*-
- #
- # Copyright © 2017 bily Huazhong University of Science and Technology
- #
- # Distributed under terms of the MIT license.
- """Convert the matlab-pretrained model into TensorFlow format"""
- from __future__ import absolute_import
- from __future__ import division
- from __future__ import print_function
- import logging
- import os
- import os.path as osp
- import sys
- import numpy as np
- import tensorflow as tf
- CURRENT_DIR = osp.dirname(__file__)
- sys.path.append(osp.join(CURRENT_DIR, '..')) # 新增搜尋路徑
- import configuration
- import siamese_model
- from utils.misc_utils import auto_select_gpu, save_cfgs
- # Set GPU
- os.environ['CUDA_VISIBLE_DEVICES'] = auto_select_gpu() # 自動選擇GPU
- tf.logging.set_verbosity(tf.logging.DEBUG)
- from sacred import Experiment # 更好地進行實驗管理
- ex = Experiment(configuration.RUN_NAME)
- @ex
相關推薦
SiameseFC-TensorFlow 程式碼詳細註解(一):預訓練模型下載轉換測試以及結果視覺化(轉載)
這篇部落格主要的目的就是簡單地跑一下實驗,讓下載的程式碼能用預訓練的模型去測試單個視訊,並對結果視覺化,從視覺上感受一下這個跟蹤演算法的效果,至於如果要自己訓練自己的模型該如何準備訓練資料,如何設計自己的模型,如何訓練自己的模型,以及如何評估自己的模型等,這些問題都將在後面的
tensorflow利用預訓練模型進行目標檢測(一):預訓練模型的使用
err sync numpy sna sta porting trac git int32 一、運行樣例 官網鏈接:https://github.com/tensorflow/models/blob/master/research/object_detection/obje
Tensorflow學習之路(一):從MNIST資料集開始
MNIST資料集簡單介紹: MNIST 資料集可在 http://yann.lecun.com/exdb/mnist/ 獲取, 它包含了四個部分: Training set images: train-images-idx3-ubyte.gz (9.9 MB,
TensorFlow深度學習實戰(一):AlexNet對MNIST資料集進行分類
概要 進來一段時間在看深度學習中經典的CNN模型相關論文。同時,為了督促自己學習TensorFlow,通讀論文之後開始,利用TensorFlow實現各個模型,復現相關實驗。這是第一篇論文講解的是AlexNet,論文下載網址為:ImageNet Classific
泛型超詳細解讀(一):泛型基礎
一:什麼是泛型 泛型是jdk5才引進的,泛型其實指得就是引數化型別,使得程式碼可以適應多種型別。像容器,List< T >,大量使用了泛型,它的主要目的之一就是用來指定容器要持有什麼型別的物件。我認為,泛型的好處很多: 1.保證了型別安全
Tensorflow教程學習筆記(一)----將自己的資料集轉換成TFRecord
import tensorflow as tf import numpy as np import os import matplotlib.pyplot as plt import skimage.io as io os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # %%
實現一個程式碼自動生成(一):模板引擎Freemarker
目錄 前言 模板引擎FreeMarker 模板引擎是什麼? FreeMarker是什麼? FreeMarker如何使用? 加入依賴 建立Configuratio
EF6 學習筆記(一):Code First 方式生成數據庫及初始化數據庫實際操作
view sqlserver 4.5 xpl 安裝 右鍵 ef6 字符串 ref 參考原文地址: https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-wit
真實感海洋的繪制(一):基於統計學模型的水面模擬方法詳解
最簡 自動生成 nbsp imu gif bubuko fourier div img 真實感海洋的繪制(一):基於統計學模型的水面模擬方法詳解 學習了基本的OpenGL和圖形學知識後,第一個想做的事情就是畫水(笑),因為對我而言各種遊戲裏面往往最令人印象深刻的就是那波光粼
Java併發(四):volatile的實現原理 Java併發(一):Java記憶體模型乾貨總結
synchronized是一個重量級的鎖,volatile通常被比喻成輕量級的synchronized volatile是一個變數修飾符,只能用來修飾變數。 volatile寫:當寫一個volatile變數時,JMM會把該執行緒對應的本地記憶體中的共享變數重新整理到主記憶體。 volatile讀:當讀一
(一):小白的Flink學習計劃以及進度表
文章目錄 學習計劃 以下幾個階段,其實並不是這麼界限分明(比如你在學視訊時,也完全可以看書看原始碼什麼的),這只是我的大致劃分,適合自己的才是最好的。 第一階段 看視訊 在我看來,看視訊是快速的、粗
Java設計模式(一):單例模式,防止反射和反序列化漏洞
package com.iter.devbox.singleton; import java.io.ObjectStreamException; import java.io.Serializable; /** * 靜態內部類實現方式(也是一種懶載入方式) * 這種方式:執行緒安全,呼叫效率高,並且實
文字分類實戰(一)—— word2vec預訓練詞向量
1 大綱概述 文字分類這個系列將會有十篇左右,包括基於word2vec預訓練的文字分類,與及基於最新的預訓練模型(ELMo,BERT等)的文字分類。總共有以下系列: word2vec預訓練詞向量 textCNN 模型 charCNN 模型 Bi-LSTM 模型 Bi-LST
文字分類實戰(四)—— Bi-LSTM模型 文字分類實戰(一)—— word2vec預訓練詞向量
1 大綱概述 文字分類這個系列將會有十篇左右,包括基於word2vec預訓練的文字分類,與及基於最新的預訓練模型(ELMo,BERT等)的文字分類。總共有以下系列: word2vec預訓練詞向量 textCNN 模型 charCNN 模型 Bi-LSTM 模型 Bi-LST
文字分類實戰(七)—— Adversarial LSTM模型 文字分類實戰(一)—— word2vec預訓練詞向量
1 大綱概述 文字分類這個系列將會有十篇左右,包括基於word2vec預訓練的文字分類,與及基於最新的預訓練模型(ELMo,BERT等)的文字分類。總共有以下系列: word2vec預訓練詞向量 textCNN 模型 charCNN 模型 Bi-LSTM 模型 Bi-LST
不耗電傳輸資料(一):高效網路連線下載優化
Contents 高效網路連線下載優化... 1 無線狀態機... 1 應用如何影響無線狀態機... 2 預取資料... 2 批量傳輸和連線... 3 降低連線數量... 4 用網路分析器定位問題... 4 高效網絡連線下載優化 用無線網路傳輸資
計算機圖形學 學習筆記(一):概述,直線掃描轉換演算法:DDA,中點畫線演算法,Bresenham演算法
前言 感謝中國農大 趙明老師的分享~ 現在我要為我自己走向遊戲程式設計打下基石~ 1 計算機圖形學概論 1.1 計算機圖形學課程簡介 《計算機圖形學》是計算機、地理資訊系統、應用數學、機械、建築等專業本科教學中的一門重要的專業基礎課 如影
誰擋了我的神經網路?(一)—— 如何在訓練中得到更好的結果
誰擋了我的神經網路?(一)—— 如何在訓練中得到更好的結果 博主最近在嘗試訓練自己新設計的神經網路,但是網路收斂到的損失並不讓人滿意。於是,博主決定在這裡記錄下在嘗試讓網路收斂得更好的過程中,成功與失敗的經驗(包括實驗)。這一系列會隨著博主研究的不斷深入,有選擇地更新。本文更新於20
機器學習演算法(一):邏輯迴歸模型(Logistic Regression, LR)
轉自:https://blog.csdn.net/weixin_39910711/article/details/81607386 線性分類器:模型是引數的線性函式,分類平面是(超)平面;非線性分類器:模型分介面可以是曲面或者超平面的組合。 典型的線性分類器有感知機,LDA,邏輯斯特迴歸,SVM
文字分類實戰(十)—— BERT 預訓練模型 文字分類實戰(一)—— word2vec預訓練詞向量
1 大綱概述 文字分類這個系列將會有十篇左右,包括基於word2vec預訓練的文字分類,與及基於最新的預訓練模型(ELMo,BERT等)的文字分類。總共有以下系列: word2vec預訓練詞向量 textCNN 模型 charCNN 模型 Bi-LSTM 模型 Bi-LST