LoginSignup
10
9

More than 5 years have passed since last update.

ビデオアノテーションツールVATICのインストール

Last updated at Posted at 2017-03-11

ビデオアノテーションツールVATICのインストールメモ。

VATICについてはDERiVEの紹介記事で解説されていますが、こんな感じでフレーム単位でビデオアノテーションをするものです。

ビデオが開けなかった場合に表示されるテキスト

環境

  • ubuntu 16.04 LTS
  • Apache 2.4.18
  • Python 2.7

前準備

VATICのREADME.mdのままでは動かなかったので、この辺のpdfを参考にして依存ライブラリをインストールする。

terminal
sudo apt-get update
sudo apt autoremove
sudo apt-get install python-setuptools
sudo apt-get install git
sudo apt-get install build-essential
sudo apt-get install autoconf libtool pkg-config python-opengl python-imaging python-pyrex python-pyside.qtopengl idle-python2.7 qt4-dev-tools qt4-designer libqtgui4 libqtcore4 libqt4-xml libqt4-test libqt4-script libqt4-network libqt4-dbus python-qt4 python-qt4-gl libgle3 python-dev
sudo apt-get -y install apache2
sudo apt-get install libapache2-mod-wsgi
sudo a2enmod wsgi #WSGI有効化
sudo service apache2 restart
sudo apt-get install python-mysqldb
sudo apt-get install mysql-server
sudo easy_install munkres
sudo apt-get install python-pip
pip install --upgrade pip
sudo pip2 install --upgrade parsedatetime
sudo apt-get install libjpeg-dev
pip install -I pillow
sudo ln -s /usr/lib/x86 64-linux-gnu/libjpeg.so /usr/lib
pip install -I pillow
sudo pip install cython==0.20

インストール

VATIC tool本体

terminal
mkdir ~/vatic-tool
cd ~/vatic-tool
wget http://mit.edu/vondrick/vatic/vatic-install.sh
chmod +x vatic-install.sh
sh vatic-install.sh
cd vatic

HTTPサーバ設定

Apache設定ファイル(000-default.conf)を編集。
VATICのREADME.mdはApache2.2系なので、結構変えた。

terminal
sudo vi /etc/apache2/sites-enabled/000-default.conf
000-default.conf
WSGIDaemonProcess www-data python-eggs=/tmp/.python-eggs
WSGIProcessGroup www-data

<VirtualHost *:80>
    ServerName vatic.domain.edu
    DocumentRoot /home/USER/vatic-tool/vatic/public

    WSGIScriptAlias /server /home/USER/vatic-tool/vatic/server.py
    CustomLog /var/log/apache2/access.log combined
    <Directory "/home/USER/vatic-tool/vatic/public">
        Options Indexes FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>
    <Directory "/home/USER/vatic-tool/vatic">
        <Files server.py>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>

headers.loadをコピーして、Apacheを再起動

terminal
sudo cp /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled
sudo apache2ctl graceful

SQLサーバ設定

MYSQL設定。VATIC用のDBを作っておく。

terminal
mysql -u root -p
mysql> create database vatic;

VATIC設定

config.py設定

terminal
cd ~/vatic-tool/vatic
cp config.py-example config.py
vi config.py
config.py
signature   = "" # AWS secret access key
accesskey   = "" # AWS access key ID
sandbox     = True # if true, put on workersandbox.mturk.com
localhost   = "http://localhost/" # your local host
database    = "mysql://root:PASSWORD@localhost/vatic"
geolocation = "" # api key for ipinfodb.com
maxobjects = 25;

# probably no need to mess below this line
import multiprocessing
processes = multiprocessing.cpu_count()

import os.path
import sys
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
  • セットアップ
terminal
chmod 777 server.py
turkic setup --database
turkic setup --database --reset
turkic setup --public-symlink

動作確認

VATICツールが見えるようになっているかを確認。
localhostにアクセスすると"Welcome to vatic"が表示されるはず
welcome_to_vatic.png

VATICツールの状態を確認。AWSを使わない場合(オフラインモード)は以下でOK。

terminal
$ turkic status --verify
Configuration:
  Sandbox:     True
  Database:    mysql://root:PASSWORD@localhost/vatic
  Localhost:   http://localhost/

Testing access to Amazon Mechanical Turk... ERROR! Signature or access key missing
Testing access to database server... OK
Testing access to web server... OK

アノテーションタスク開始

以下事例でアノテーションタスクを作成。
- Vimeo からDLしてきた素材1(input_video.mp4) をアノテーション
- identifierは"TESTTASK"
- 解像度は640x360に変更
- フレーム長は5000
- AWSを使わないオフラインモード
- アノテーション属性は"Human Car Building"の3種類

(1) mp4を静止画に分割

terminal
$ turkic extract ~/dat/input_video.mp4 ~/dat/input_video/ --width 640 --height 360

(2) 分割した静止画を読み込み

terminal
$ turkic load TESTTASK ~/dat/input_video/ Human Car Building --offline --length 5000
Checking integrity...
Searching for last frame...
Found 6116 frames.
Binding labels and attributes...
Creating symbolic link...
Creating segments...
Video loaded and ready for publication.

(3) タスク発行

terminal
$ turkic publish --offline

(4) アノテーション用のURLにアクセス

terminal
$ turkic find --id TESTTASK
http://localhost/?id=46&hitId=offline
http://localhost/?id=47&hitId=offline

上記サイトにアクセスすると静止画読み込みが始まる
load_video.png

(5) アノテーション
New Objectで新規オブジェクトを追加、フレーム補間を活用しながら仕上げる
annotation.png

(6) アノテーション結果をダンプ

terminal
turkic dump TESTTASK -o ~/dat/input_video/output.txt
Dumping video TESTTASK
output.txt
0 334 189 387 235 0 1 0 0 "Car"
 :
1 465 187 482 229 0 1 0 0 "Human"
 :
3 256 6 300 68 0 1 0 0 "Building"

各カラムの意味は以下の通り。

1 Track ID. All rows with the same ID belong to the same path.
2 xmin. The top left x-coordinate of the bounding box.
3 ymin. The top left y-coordinate of the bounding box.
4 xmax. The bottom right x-coordinate of the bounding box.
5 ymax. The bottom right y-coordinate of the bounding box.
6 frame. The frame that this annotation represents.
7 lost. If 1, the annotation is outside of the view screen.
8 occluded. If 1, the annotation is occluded.
9 generated. If 1, the annotation was automatically interpolated.
10 label. The label for this annotation, enclosed in quotation marks.
11+ attributes. Each column after this is an attribute.

トラブルシューティング

Q. Web interfaceにアクセスすると"You don't have permission to access / on this server."と表示される
A. Apache2.4系は仕様が変わったため、VATICのREADME.md(Apache2.2)のままでは動かない。/etc/apache2/sites-enabled/000-default.confに以下の記述を追加する。

000-default.conf
<Directory "/path/to/vatic/public">
  Require all granted
</Directory>

Q. Web interfaceにアクセスすると"ServerError"と表示される
A. /etc/apache2/sites-enabled/000-default.confに以下の記述を追加する。関連FAQ

000-default.conf
WSGIScriptAlias /server /path/to/vatic/server.py

Q. /var/www/.python-eggsにアクセス出来ないと言われる
A. コンソールで以下実行。関連FAQ

terminal
sudo mkdir /var/www/.python-eggs
sudo chown www-data:www-data /var/www/.python-eggs
sudo chmod -R 777 /var/www/.python-eggs
sudo chown www-data:www-data /var/www/.python-eggs

Q. Web interfaceにどうやってアクセスする?
A. turkic publish した際に表示されるアドレスにアクセスする

Q. turkic setup --public-symlinkとすると、Could not create symlink!と言われる
A. 二回目の実行以降はシンボリックリンクを作成できない。確認のためには/path/to/vatic/public/turkic以下のリンクを削除してから実行すれば以下のように表示される。

terminal
Created symblink /usr/local/lib/python2.7/dist-packages/turkic-0.2.5-py2.7.egg/turkic/public to /path/to/vatic/public/turkic

Q. http://localhost/?id=1&hitId=offline にアクセスできるがDownloading the video... 0%でとまる

A. /var/log/apache2/error.log を確認。自分の場合は以下のエラーが出ており、ディレクトリのアクセス権の問題だった。turkic extractでフレームを書き出す先をuser権限のディレクトにすることで解決。

error.log
[Sat Mar 04 16:40:48.626938 2017] [core:error] [pid 3857:tid 140653468055296] [client 127.0.0.1:56708] AH00037: Symbolic link not allowed or link target not accessible: /path/to/vatic/public/frames/identifier, referer: http://localhost/?id=1&hitId=offline

参考サイト

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9