1. 程式人生 > >【資料集使用】3D Mask Attack Dataset(3DMAD資料集)---raw_to_AVI.py指令碼的使用

【資料集使用】3D Mask Attack Dataset(3DMAD資料集)---raw_to_AVI.py指令碼的使用

【編輯時間】2018.09.17

【資料集使用】3D Mask Attack Dataset(3DMAD資料集)---raw_to_AVI.py指令碼的使用

概述

3DMAD資料集中的資料是.hdf5格式的,可以使用資料庫中的raw_to_AVI.py指令碼將其轉換為.avi的視訊檔案。但是原始碼中使用的bob庫中的指令由於版本更新變得不一樣了,本文主要是講述如何更改raw_to_AVI.py指令碼使得他能夠使用。

1、bob庫的安裝

【注意:Bob在windows上不工作,因此沒有Conda軟體包可供使用。即使從原始碼安裝它也不能工作。】

We offer pre-compiled binary installations of Bob using

 conda for Linux and MacOS 64-bit operating systems.

  1. Please install conda (miniconda is preferred) and get familiar with it.

  2. Make sure you have an up-to-date conda installation (conda 4.4 and above is needed) with thecorrect configuration by running the commands below:

    $ conda update -n base conda

    $ conda config --set show_channel_urls True

  3. Create an environment for Bob:

    $ conda create --name bob_py3 --override-channels \

    python=3 bob

    $ conda activate bob_py3

    $ conda config --env --add channels defaults

  4. Install the Bob packages that you need in that environment:

    $ conda install bob.io.image bob.bio.base ...

5、在原始碼中共用到了3個bob庫的指令:bob.io.HDF5File()、bob.ip.draw_cross、bob.io.VideoWriter,但是在新版本的bob庫中,這三個指令分別由bob.io.base.HDF5File()、

bob.ip.draw.cross、bob.io.video.writer代替,所以在第4步中要安裝的包分別為bob.io.base、bob.ip.draw、bob.io.video。

二、程式碼的更改

1、匯入的庫:

【原本】:import bob

【改為上面下載的三個包】:

import bob.io.base

import bob.ip.draw

import bob.io.video

PS:如果不替換的話,會提示bob庫沒有io屬性等

2、指令替換

原本用到bob.io.HDF5File()、bob.ip.draw_cross、bob.io.VideoWriter的地方,分別用bob.io.base.HDF5File()、bob.ip.draw.cross、bob.io.video.writer替換

三、程式碼的執行

1、【程式碼的使用方法】python %指令碼路徑%raw_to_AVI.py %轉換後視訊的儲存路徑%

2、執行結果

四、程式碼的改進

根據原本的程式碼,只能一個一個.hdf5檔案進行轉換,所以一共需要300此指令輸入。

此部分希望在原始碼基礎上修改,使得可以一次性將每個session下的所有.hdf5檔案轉換完畢。

【基本思路】:使用os.listdir()讀取路徑中的檔名,並返回一個列表;

使用os.system(cmd)執行指令,在for迴圈中

【程式碼】

#!transfor_all.py

import os

#讀取路徑中的檔名,並返回一個列表

path_old = '/home/ccx/Desktop/dataset/3dmad/session01'

filenames = os.listdir(path_old)#

#python指令碼的位置

path_py='/home/ccx/Desktop/dataset/3dmad/documentation/documentation/raw_to_AVI_all.py' #

#遍歷執行cmd指令

for filename in filenames:

cmd='python'+' '+path_py+' '+path_old+'/'+filename

os.system(cmd)

【執行結果】

-------------------------------------------------------------------end-----------------------------------------------------------