vatic--视频标注工具(ubuntu16.04+python2.7)

前言

1.最近做要做行为识别的项目,中间要用到视频标注工具,受人推荐使用了vatic这款工具
2.目前在该系统上似乎只有用python2(最好是python2.7)才能成功安装,这个一定要注意,一定要注意。所以请用python3的小伙伴将python版本换成2.7,方法请自行百度了
3.需要安装 git,可执行pip指令,并记住github账户密码等

参考网址

github官网:https://github.com/cvondrick/vatic
博客:https://blog.csdn.net/baidu_26788951/article/details/80053760

1.安装

1.下载vatic-install.sh文件,这里不要下载官网上的vatic_install.sh文件,用那个文件的话安装会出错。下载完成后文件中部分内容需要进行修改,如下两张图,总共修改5处,user_name即使用用户,install_document即安装vatic所创建的安装目录,你可以修改成其他路径
脚本内容:

#!/bin/bash
export MYSQL_PASSWORD=${MYSQL_PASSWORD:-root}
export INSTALL_WITH_EXAMPLE_DATA=${INSTALL_WITH_EXAMPLE_DATA:-false}
export SERVER_NAME=${SERVER_NAME:-localhost}

set -e

if [[ "$INSTALL_WITH_EXAMPLE_DATA" = "true" ]]; then
    echo "(!) Warning: doing aggressive install (assuming empty box just for us and being rude in actions)"
fi;

sudo apt-get update

# set some mysql password so we can proceed without interactive prompt for it
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password $MYSQL_PASSWORD"
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $MYSQL_PASSWORD"

sudo apt-get -y install mysql-server
sudo apt-get install -y git python-setuptools python-dev libavcodec-dev libavformat-dev libswscale-dev libjpeg62 libjpeg62-dev libfreetype6 libfreetype6-dev apache2 libapache2-mod-wsgi mysql-server mysql-client libmysqlclient-dev gfortran
sudo apt-get install -y libav-tools

sudo easy_install -U SQLAlchemy pillow wsgilog mysql-python munkres==1.0.12 parsedatetime argparse
sudo easy_install -U numpy

git clone https://github.com/cvondrick/turkic.git
git clone https://github.com/cluePrints/pyvision.git
git clone -b contrib https://github.com/cvondrick/vatic.git

cd turkic
sudo python setup.py install
cd ..

# without this bit cython pyvision compilation fails
sudo apt-get install -y g++ make
sudo easy_install pip
sudo pip install cython==0.20

cd pyvision
sudo python setup.py install
cd ..

if [[ "$INSTALL_WITH_EXAMPLE_DATA" = "true" ]]; then
    sudo cp /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled
    mysql -u root -p$MYSQL_PASSWORD -e 'create database vatic;'

    sudo bash -c "cat > /etc/apache2/sites-enabled/000-default" <<EOF
    WSGIDaemonProcess www-data
    WSGIProcessGroup www-data

    <VirtualHost *:80>
        ServerName $SERVER_NAME
        DocumentRoot /home/user_name/install_document/vatic/public

        WSGIScriptAlias /server /home/user_name/install_document/vatic/server.py
        CustomLog /var/log/apache2/access.log combined
    </VirtualHost>

EOF

    sudo cp vatic/config.py-example vatic/config.py
    sudo sed -ibak "s/root@localhost/root:$MYSQL_PASSWORD@localhost/g" vatic/config.py

    sudo apache2ctl graceful

    cd vatic
    turkic setup --database
    turkic setup --public-symlink
    turkic status --verify

    # setup demo dataset
    mkdir -p /home/user_name/install_document/vagrant_data/example
    wget http://techslides.com/demos/sample-videos/small.mp4 -O /home/user_name/install_document/vagrant_data/small.mp4
    turkic extract /home/vagrant/vagrant_data/small.mp4 /home/vagrant/vagrant_data/example/
    turkic load example_id /home/user_name/install_document/vagrant_data/example/ example_label1 example_label2 example_label3 --offline

    wget -qO- "http://localhost:80/?id=1&hitId=offline" > /dev/null \
        && echo "We are rather done. Go to http://localhost:8080/?id=1&hitId=offline and see how this thing works" \
        || echo "Something went rather wrong and now you'll have to troubleshoot"
else
    echo "*****************************************************"
    echo "*** Please consult README to finish installation. ***"
    echo "*****************************************************"
fi;

在这里插入图片描述
2.将vatic-install.ch文件放在你要安装的目录下,并且在该目录下打开终端

sudo pip install cython==0.20
chmod +x vatic-install.sh
./vatic-install.sh
cd vatic

问题:
(1)no module named "xxx"的错误
执行 pip2 install 指令安装相应模块

(2)murkres 版本问题(最新的版本会有错误,这里要根据终端的提示安装相应版本,我安装时提示要使用1.0.12版本,所以就使用下面的指令)
pip install munkres== 1.0.12或者pip2 install munkres==1.0.12

(3)可能会让你输入github账户密码,输入即可,这里保证github能用

(4)如果是mysql sqlalchemy或者pillow之类的安装错误,请查看vatic-install.sh当中的安装这些软件包的语句,然后在vatic-install.sh文件中删除相应语句,并另外独自安装相关软件包,不要在该文件当中安装。

(5)执行vatic-install.sh可能会更新系统的内核,所以保证安装过程使用的是一个内核,不然会安装报错,例如使用pip时内核更新了,就会出现pip指令无法使用的情况,这里可以重新安装pip或者换回内核或者删除vatic-install.sh中更新的语句。

2.配置 http server

/etc/apache2/sites-enabled/000-default.conf

替换以下内容,这里同样要修改user_name和install_document为自己的那个数据,其中
ErrorLog /etc/apache2/error.log语句可以让我们在error.log文件里查看到服务器登录错误的信息,这一步在后面有可能会用到

WSGIDaemonProcess www-data python-eggs=/home/user_name/.python-eggs
WSGIProcessGroup www-data
 <VirtualHost *:80>
   ServerName 0.0.0.0
   DocumentRoot /home/user_name/install_document/public
   WSGIScriptAlias /server /home/user_name/install_document/vatic/server.py
   ErrorLog /etc/apache2/error.log
   CustomLog /var/log/apache2/access.log combined
   <Directory /home/user_name/install_document/vatic> 
   <Files server.py>
        Require all granted
 </Files>
</Directory>
</VirtualHost>
ServerName localhost:80

启用mod_headers模块:

$ sudo cp /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled

重启Apache:

$ sudo apache2ctl graceful

3.配置SQL

创建vatic数据库:

 mysql -u root -r
 mysql> create database vatic;

这里的登录密码是 root

更新mysql root为无密码:

update user set authentication_string=PASSWORD("") where User='root'; 
update user set plugin="mysql_native_password"; 
flush privileges; #更新所有操作权限 
quit;

这些地方如果碰到问题请自行百度,因为这些问题都比较容易解决

启动:

$ cp config.py-example config.py

注意,这一句一定要执行,其他博客上说如果不要线上服务则不需要执行是错误的,我看了下官网,发现那些博客要么是翻译有误要么是纯粹复制粘贴的。

初始化数据库:(在vatic文件下执行,有关于turkic指令的都在vatic文件夹下执行)

$ turkic setup --database

重启数据库:

$ turkic setup --database --reset

允许vatic访问turkic:

$ turkic setup --public-symlink

这一步会在*/vatic/public文件夹下创建名为turkic软链接文件,如果你重新安装的时候执行cp config.py-example config.py时遇到错误 Could not create symlink的错误,删掉这个turkic文件即可

4.验证是否安装完成

$ turkic status --verify

注意:不打算使用Mechanical Turk,忽略由Mechanical Turk引起的任何错误(即执行后出现的第一个错误)

执行上一句后,会出现错误

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... ERROR! HTTP Error 403: Forbidden

One or more tests FAILED!

解决:改Apache配置/etc/apache2/apache2.conf添加(user_name,install_docment仍旧要修改)

<Directory /home/user_name/install_document/vatic/public> 
	Options Indexes FollowSymLinks 
	AllowOverride All 
	Require all granted 
</Directory>

重启后解决问题 $ sudo apache2ctl graceful
如果还有错误404的提示
在这里插入图片描述则在之前提到的000-default.conf文件中添加(仍旧不要忘了修改user_name这两个东西)

<Directory /home/user_name/install_document/vatic/public>
		Options Indexes FollowSymLinks
		AllowOverride All
		Require all granted
</Directory>

当执行验证指令后后两项为OK时,则安装成功

5.示例

1.视频帧提取

$ mkdir /path/to/output/directory 
$ turkic extract /path/to/video.mp4 /path/to/output/directory 

创建自定义的视频帧输出文件夹
在vatic文件下执行,抽取帧到输出文件夹

已经取好的视频帧可通过命令转化为vatic的格式

$ turkic formatframes /path/to/frames/ /path/to/output/directory

2.导入离线视频

$ turkic load identifier /path/to/output/directory Label1 Label2 Label3

标签Label1 Label2的用法见官网,identifier即工作名称,你可以命名为job1,work1等等

3.publish视频(离线)

$ turkic publish --offline

问题:publish后打开http://localhost?id=1&hitId=offline 网址显示 Server Error
在这里插入图片描述
解决方法:在/etc/apache2/sites-enabled/000-default.conf添加(install_doucument即安装路径)

<Directory /install_document/vatic>
    <Files server.py>
        Require all granted
    </Files>
</Directory>

执行上一步之后若还是出错,则打开我们之前提到的文件
/etc/apache2/error.log文件,若出现红框中的错误,则是因为途图中所示的路径文件__init__.py文件需要进行一些修改

在这里插入图片描述
我们打开该文件,在代码 import os 下面添加(修改user_name)

os.environ['PYTHON_EGG_CACHE'] = '/home/user_name/.python-eggs'

如果仍旧不行,则修改/home/user_name/.python-eggs中的到.python-eggs文件的路径,这个请根据自己实际修改,该文件可使用 Ctrl+h键在/home/user下找到。如果还不行……我就真的不知道了……请各位百度解决问题[抱歉]

4.导出voc数据

$ turkic dump identifier -o /output --pascal --pascal-skip 1

–pascal -skip n 的用法即每隔n帧取一帧,不加这个属性默认为15帧取一次

6.其他

1.更多的教程请参照官网
2.每个线下地址只能publish 300帧,相对于视频的长度大致为10s,每个identifier可放置的帧数似乎没限制,一次放几千帧都没问题,你可以放上2k帧或者更多帧然后再publish,vatic会自动生成溢出的线下地址
3.拉取/导出voc数据会直接拉取所有identifier 中的数据

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值