日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

运行iDT算法代码及后续特征编码

發布時間:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 运行iDT算法代码及后续特征编码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DT&IDT算法應該算是行為識別領域中經典中的經典了,自從13年提出以來,在HMDB-51和UCF-101等若干個數據庫上得到了非常好的效果,雖然DT&IDT算法做不過深度學習,但是由于其算法的有效性,現在大部分都是以“Ours+IDT”的形式呈現在論文里,并且加上了IDT后,結果的確能得到很明顯的提升。
具體IDT算法的講解可以參考博客:行為識別筆記:improved dense trajectories算法(iDT算法)
IDT算法的代碼可以在作者的主頁上下載,另外作者給出的代碼只包括了密集采樣+軌跡跟蹤+特征提取三個部分,后續的特征編碼部分請點擊此處下載。


1. 運行IDT算法代碼

下載好代碼后可以仔細閱讀一下Readme文件,首先需要配置好Opencv和ffmpeg兩個庫,具體的版本請參考Readme文件。配置好后就可以在目錄下直接make,編譯好的可執行文件在./release/下。
可以運行他的demo視頻來看一下是否編譯成功:./release/DenseTrackStab ./test_sequences/person01_boxing_d1_uncomp.avi,如果編譯成功的話會在屏幕上打印出一系列的數字,這些就是軌跡特征以及HOG, HOF和MBH特征。
IDT代碼只是將各個特征打印了出來,如果需要改成保存到文件的話,更改第248-251行的代碼即可:

PrintDesc(iTrack->hog, hogInfo, trackInfo); PrintDesc(iTrack->hof, hofInfo, trackInfo); PrintDesc(iTrack->mbhX, mbhInfo, trackInfo); PrintDesc(iTrack->mbhY, mbhInfo, trackInfo);

另外,在做自己的數據庫時,不可能一個視頻一個視頻的去輸入,這時可以寫一個vim腳本,來批量運行,可以參考如下代碼:

#!/usr/bin/env bash cmd="release/DenseTrackStab" filePath="" #數據存放路徑 fileType=".txt" function readfile(){for file in `ls $1`doif [ -d $1"/"$file ]thenreadfile $1"/"$fileelseecho $file$cmd $1"/"$filefidone } readfile $filePath

2. 特征編碼

后續的特征編碼采用了dtfv代碼運行,具體可以參考src/中的Readme.rst文件,大致步驟如下:

1. 下載vl_feat并編譯

編譯好vl_feat工具箱后,將vlfeats/bin/glnx64中的libvl.so文件拷貝到dtfv/src/vl文件夾中,如果拷貝glnx86中的libvl.so后編譯時會報錯

2. 編譯

  • 在src文件夾中輸入make進行編譯:
  • 改變路徑
    在../script/extract_fv.py文件中更改一下幾個變量:dtBin、fvBin、tmpDir、pID、pcaList,具體可以參考Readme文件。
    這里貼一下我所用的變量:

  • 運行代碼
    在../data/文件夾中運行:python extract_fv.py [videoList] [outputDir] [totalCores]。之后會在tmpDir中得到resize之后的視頻文件,每個視頻將在outputDir文件夾中得到五個文件,分別以[Videoname].avi.[traj|hog|hof|mbhx|mbhy].fv.txt命名。


  • 遇到的bug:

    error while loading shared libraries: libvl.so: cannot open shared object file: No such file or directory
    【解決方法】LD_LIBRARY_PATH=$LD_LIBRARY_PATH:dtfv-master/src/vl
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH: dtfv-master/src/alglib
    (注意,路徑要輸入的是絕對路徑)

    總結

    以上是生活随笔為你收集整理的运行iDT算法代码及后续特征编码的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。