Video Annotation Tools for Action Labeling
This file is primarily a to-do list for the development. We wil fill in the proper readme later.
We now have
- A simple and clean interface for labeling & trimming video events;
- A working demo that query a task from server and return user annotations.
- Python (2): flask flask_cors werkzeug tornado boto (pip install them)
- Cross-Origin Resource Sharing is supported via flask_cors
- Internet Access.
- simple_vatic --> all the js/python/html/css files
- simple_vatic/www/ --> frontend web UI (js/html/css)
- simple_vatic/server/ --> backend python code
- Use ELAN to create annotations. Mark chuncks of the video in the timeline by clicking and dragging, Alt+N to create an annotation, and Enter to create the empty label.
- Use crop_videos.py to create a directory of cropped videos
- Use create_db.py to create video database
- Use create_mturk_db.py to create an empty database to store Amazon Mechanical Turk data
- You will need a web server for hosting the web UI (e.g. apache or nginx)
- Copy all files (and folders) in simple_vatic/www/ to your web hosting folder (default: /var/www/html/), or point the server to simple_vatic/www/
- Copy folder of cropped videos to same place
- In simple_vatic/server modify .sh files to add your AWS secret keys and file directories, adding the command line arguments you want
- Make .sh files executable with chmod +x filename
- Run create_hit sh files to create hits if you're using Mechanical Turk
- ./serve.sh to start the server
- In your browser, type "websitename/trim.html" or "websitename/name.html". Now you should see the interface (you can use debug mode to check console logs).
- If you want to run it using NGINX/Apache as a reverse proxy, as is reccomended in tutorials, you'll need to change the port number in name.html and trim.html from 5050 to 80.
- Improve front-end to be more usable.
- All Communications between the fronend and backend are done through a RESTful API using JSON files