Vatic 安裝教學
前言
Vatic 是用來標註影片中 bounding box 的好用工具,因為它提供了 bounding box tracking 的功能,不需要一個一個 frame 去重新標註,所以想用 Machine Learning 學習影片中 bounding box 的人來說是很好用的工具。
因為 vatic 的安裝步驟有一點複雜,所以寫這篇教學提供給需要的讀者朋友。筆者自己有在 Ubuntu 16.04 裝成功,這篇教學主要會 cover 到如何在自己電腦上 locally 跑起來 vatic。
開始安裝
首先,大家可以先看看官方 tutorial,裡面的步驟就是我們要做的,只是如果只按照裡面的步驟做,會遇到不少的 error,所以接下來我們會補充一些相關的經驗。
Download
官方 tutorial 中會叫大家下載 install.sh 檔,但是他們提供的網址已經無法連上,這邊建議大家可以使用 此連結 裡面的檔案,是熱心的網友幫忙更新過的 installation script,裝起來比較沒有問題。
Apache server setup
這邊提供大家一個修改完的 /etc/apache2/sites-enabled/000-default.conf 範例:
1 | WSGIDaemonProcess www-data |
當你改完上面的檔案,想要重新啟動 apache 時,可能會遇到下面的 error:
1 | icaros@icaros-MS-7B61:/etc/apache2/sites-enabled$ sudo apache2ctl graceful |
這時候可以參考這篇回答 - Apache error “Could not reliably determine the server’s fully qualified domain name”,就可以繼續進行。
Database setup
當設定完 apache server 後,下一步我們要來設定儲存 annotation 需要用到的 database server。只是,當你按照官方教學的第一步做下去,你就會發現這個 error:
1 | icaros@icaros-MS-7B61:~/tool/vatic_home/vatic/public$ mysql -u root |
當你遇到這個情況,別擔心,請下 mysql -u root -p
,然後密碼請輸入 hail_ukraine
,就可以進去 mysql 的命令視窗了:
1 | icaros@icaros-MS-7B61:~/tool/vatic_home/vatic/public$ mysql -u root -p |
然後就可以建立 vatic 這個 database 並離開 mysql:
1 | mysql> create database vatic; |
Setup
接下來要處理 config.py,這邊提供大家一個範例:
1 | signature = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # AWS secret access key |
改完上面的範例,執行 turkic setup --database
,很可能會遇到下一個 error:
1 | icaros@icaros-MS-7B61:~/tool/vatic_home/vatic$ turkic setup --database |
會遇到這個 error 是因為 munkres 這個 library 在 1.1.0 版之後就不支援 Python 2 了,但 vatic 似乎都是用 Python 2.7 寫的,所以請用 pip install munkres==1.0.12
安裝較舊的版本。
好了,處理完 munkres 之後,你又會遇到下一個 error:
1 | icaros@icaros-MS-7B61:~/tool/vatic_home/vatic$ turkic setup --database |
這個 error 是源自於 mysql 需要 password 才能 access,但你可以用下面的指令將 password 設成空的:
1 | use mysql |
以下是執行範例:
1 | mysql> use mysql |
當你再執行一次 turkic setup --database
,你就可以看到成功設定 database 了:
1 | icaros@icaros-MS-7B61:~/tool/vatic_home/vatic$ turkic setup --database |
Verification
接下來要執行 turkic status --verify
(如果你還沒有要跟 MTurk 綁定,你可以忽略 Amazon Mechanical Turk 的 error):
1 | icaros@icaros-MS-7B61:~/tool/vatic_home/vatic$ turkic status --verify |
Amazon 的 MTurk 是一個 crowd labeling 的平台,你可以將 labeling 的工作放到網站上,讓世界上各地的人來為你標註 data,省下許多時間。
可是即使忽略 MTurk,還是有 web server error,這時候你會需要改一下 /etc/apache2/apache2.conf,加入下面幾行:
1 | <Directory /your_path_to_vatic/public> |
然後重新啟動 apache(sudo apache2ctl graceful
),應該就可以成功啦:
1 | icaros@icaros-MS-7B61:~/tool/vatic_home/vatic$ turkic status --verify |
這時候在瀏覽器輸入 localhost 就可以看到 vatic 的畫面。
Frame extraction
在把自己的 video frame extract 出來時,記得要在 vatic 的目錄下執行 turkic,不然會出現 error。
Publish in offline mode
最後一步就是在自己電腦上 offline publish 剛剛弄好的 video:
1 | turkic load identifier_off /home/icaros/Downloads/turkic_frames/my_video/ apple --offline |
你應該可以看到下列的 output:
1 | icaros@icaros-MS-7B61:~/tool/vatic_home/vatic$ turkic load identifier_off /home/icaros/Downloads/turkic_frames/my_video/ apple --offline |
要 access 你的 task,去瀏覽器輸入上面任意一個 url,例如 http://localhost/?id=86&hitId=offline
即可。 但如果你看到 server error, 請在 000-default.conf 檔案中加上 Directory tag
並重啟 apache:
1 | WSGIDaemonProcess www-data |
這時候再去瀏覽器輸入 http://localhost?id=86&hitId=offline
,你就可以看到 annotation 的視窗了:
總結
今天教大家要怎麼從無到有 setup vatic 這個可以更方便標註 video 中 bounding box 的工具,希望對有相關需求的讀者有幫助!
延伸閱讀
- BeaverDam: Video annotation tool for deep learning training labels
- Tool for annotating and evaluating video object detection or tracking ?
關於作者:
@pojenlai 演算法工程師,對機器人、電腦視覺和人工智慧有少許研究,正在學習用心體會事物的本質跟不斷進入學生心態改進。
留言討論