---
title: 'VoTT 安裝流程與建立專案(Ubuntu 18.04) '
disqus: hackmd
---
VoTT 安裝流程與建立專案(Ubuntu 18.04)
===
[TOC]
## Ubuntu 18.04 VoTT 安裝流程與建立專案
### 1. 下載 VoTT source code
> (1) 為了方便管理整個專案,請先開一個資料夾後進入*
```gherkin=
$ mkdir VoTT
$ cd VoTT
```
* 註: 請選擇安裝位置,注意此份安裝文件可能會與您安裝的位置不同
> (2) 下載 source code*
```gherkin=
$ git clone https://github.com/masteree108/VoTT_NTUT_Ubuntu18.git
```
* 註: 此包 source code 是基於在 [microsoft/VoTT](https://github.com/microsoft/VoTT/) 2.2.0版本上開發新功能
### 2. 安裝相關套件
> (1) 由於編譯與執行需要使用到NPM與node.js相關套件,所以使用[PPA](https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-18-04)進行安裝,若直接安裝如下容易出錯
~~$ sudo apt install npm~~
~~$ sudo apt install nodejs~~
[詳細安裝方法1](https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-18-04)
[詳細安裝方法2](https://github.com/nodesource/distributions)
> (2) 由於編譯與執行需要使用到NPM與node.js相關套件,所以使用PPA進行安裝,若直接安裝如下容易出錯
```gherkin=
若有舊版 nodejs 和 npm 請先移除
$ sudo apt-get purge nodejs
$ sudo npm uninstall npm -g (若上一行移除成功則不須做此行)
```
```gherkin=
安裝
$ cd /tmp
$ curl -sL https://deb.nodesource.com/setup_10.x -o nodesource_setup.sh \
&& sudo chmod +x nodesource_setup.sh \
&& sudo ./nodesource_setup.sh \
&& sudo apt-get install -y nodejs \
&& sudo apt install build-essential
```
> (3) 檢查安裝板本
```gherkin=
$ nodejs -v
v10.23.1
$ npm -v
6.14.10
```
### 3. VoTT 安裝、編譯與運行
> (1) 回到VoTT/VoTT_NTUT 資料夾
```gherkin=
$ cd VoTT/VoTT_NTUT
```
> (2) 執行編譯與運行*
```gherkin=
$ npm ci
$ npm start
```
* 註: 若是source code有修改,在執行npm start即會進行編譯檢查
運行後會出現 web 與 local版本,由於官方文件有說明 web 版本只能載入雲端上的專案,
這份文件沒有使用此功能,所以文件範例會已local版本當教學(下圖為local版本)

### 4. 關於 security token
> 引述官方文件如下
#### NOTE: Project files can be shared among multiple people. In order to share sensitive project settings, all parties must
為了讓專案讓LAB的同學共同使用, security token 使用先前研究留下來的key
```gherkin=
Name : NTUTDrone Token
Key : qITjd1Rj6hFqC7uB0OGxPKYVxIFSdcMrprQAMS5rEhc=
```
點選左下角的齒輪,輸入之前的 security token

### 5. 建立專案
> (1)建立一個專案資料夾
```gherkin=
$ cd VoTT
$ mkdir Drone_Project
$ cd Drone_Project
$ mkdir -p Drone_Target/001 //用來放置專案的.vott檔案*
$ mkdir -p Drone_Source/001 //用來放置來源影片*
```
* 註:Drone_001是代表影片代號名稱,每個影片都會個別建立自己的資料夾以免混亂,
若有002影片就分別在Drone_Target與Drone_Source建立002資料夾,依此類推
> (2) 執行VoTT
```gherkin=
$ cd ../VoTT_NTUT
$ npm start
```
> (3) 新建專案設定(名稱、專案路徑、來源路徑等)
* 在VoTT內點選 New Project

* 專案名稱:NTUT_Drone

* Security Token: 選擇 "**4. 關於 security token**" 所建立的設定,
下拉即可找到 **NTUTDrone Token** 選項

* Source Connection
選擇右邊的Add Connection會進入Connection Settings畫面
按照下圖選擇
輸入Display Name: Drone_Source_001 (_00X請依據影片名稱創立)
Provider 選擇 Local File System
Local File System 選擇剛剛在 "**(1)建立一個專案資料夾**" 建立的source資料夾 Drone_Source/001
按下Save Connection回到 Project Settings

選擇剛剛設定的資料夾

* Target Connection
選擇右邊的Add Connection會進入Connection Settings畫面
按照下圖選擇
輸入Display Name: Drone_Target_001 (_00X請依據影片名稱創立)
Provider 選擇 Local File System
Local File System 選擇剛剛在 "**(1)建立一個專案資料夾**" 建立的target資料夾 Drone_Target/001
按下Save Connection回到 Project Settings

選擇剛剛設定的資料夾

* Video Settings 使用預設的15,下圖為整個專案設定,按下 Save Project 按鈕完成新建專案設定

* 完成後會看到的專案畫面

### 6. 載入專案
> 選擇Open Local Project, 找到剛剛在"**(1)建立一個專案資料夾**" 建立的target資料夾 Drone_Target/001 ,可看到NTUT_Drone.vott


### 7. 匯出專案
> (1) 匯出專案設定
* 這邊統一採匯出csv與json格式,請專案負責人這兩種格式都必須要匯出!!
Asset State 選擇 Only tagged Assets
另外取消include Images選項
匯出 CSV

匯出 JSON

> (2) 匯出專案範例
* 若是標注完成,可按下右上角匯出按鈕 

!!請注意,csv格式會匯出在Drone_Target/001資料夾!!

!!另外請在更改一次匯出設定,在匯出JSON檔案!!

!!**請再次確認這兩種格式必須都要匯出**,否則期末無法算出誰標的最多,攸關分數很重要!!
###### tags: `setup`, `VoTT`