For video data, Kili Technology lets you decide if you want to import your data as native video files (Native Video projects) or extracted into lists of images (Frame projects). The labeling experience is very similar for both input types. Contrary to simple video classification, Native Video or Frame projects let you carry a classification frame by frame.
Two different intputs
Native Video project
For Native Video projects, videos are stored as video files. Inside the platform, the video is then sampled into timestamps separated by the same duration. The division is done such that there are 24 sampled timestamps within a second. Thus, annotation can be done for every 1/24th seconds of video
For Frame projects, videos are stored as lists of images. We extract images at the original frame rate of the video. You can then annotate frame by frame.
Native Video project
You can upload videos in a video input type project using a csv file with two columns : one for the external identifier, and the other containing a link to the video. For more information, see here.
You can also upload videos from the API.
In order to have a smooth interface, you should work on videos which contain less than 1000 frames. As performance also depends on the number of annotations, we recommend having a maximum of 10000 annotations accross all frames for each asset. You have three possibilities when it comes to importing frames in a frame project :
You can upload videos in mp4, mkv or any other format readable by ffmpeg. For more information, see here.
Uploading from a public cloud
You can upload videos using a csv file with two columns : one for the external identifier, and the other containing a link to the video. Videos are then converted to an array of images. For more information, see here.
Uploading a list of images from the API
We allow you to upload videos as lists of extracted images with the API (see the recipe). This can be useful for viewing 3D volumes of image data. We show you how to do that here.
This allows you to upload videos with up to 20000 images. If you want more, we advise to switch to the Native Video player.
Video or Frame play bar
The labeling interface is almost identical between frame projects and video projects. It includes a playbar below the video/frame display. The playbar is composed of
- a controller bar to control the video or to swith between frames.
- a speed selector. In FPS for Frame or in play rate speed for native Video.
- a frame bar (for Frame) or a timestamp bar (for Native Video)
The frame/timestamp bar allows you to display a specific frame/timestamp by clicking on it. When you hit pause on a video project, the video will be set to pause at the nearest sampled timestamp.
Classify one frame/timestamp
When you classify one frame/timestamp with propagation activated, it is propagated to all following frames/timestamps, until the end of the video. To classify only on one frame/timestamp, deactivate the propagation on the tool bar by clicking on the propagation button.
Classify multiple frames/timestamps
To classify the current frame/timestamp and all the following until the end of the video, activate the propagation and classify the current frame. To classify a specific range of frames/timestamps, select the start or the end frame/timestamp, click on Shift, and click on the final frame. The whole section will be selected. Then classify the section.
For single choice, choose input: radio button.
For multiple choice, choose input: check box.
For dropdown choice, choose input: dropdown. Dropdown is especially relevant for long lists. It allows to search, and to filter out the list easily. And it can be nested as on below example.
To build nested classification, choose input: check box. See configuration in the customize interface section.
In your classification tasks, some shortcuts are automatically generated to speed your annotation process. For more details, see shortcuts section
For both Native Video and Frame projects, the exported data has the same structure. You can see this structure here. For a Frame project, the Json response is split into frames and for a Native Video project, the Json response is split into timestamps. For example, for a Native Video project, the annotation in the Json response at the key value 0 is the annotation at timestamp 00:00:00, then at the key 1 the timestamp 00:00:1/24 etc.