Spaces:
Build error
Build error
Taken from: https://www.vision.rwth-aachen.de/page/mots | |
Annotation Format | |
We provide two alternative and equivalent formats, one encoded as png images, and one encoded as txt files. The txt files are smaller, and faster to be read in, but the cocotools are needed to decode the masks. For code to read the annotations also see mots_tools/blob/master/mots_common/io.py | |
Note that in both formats an id value of 10,000 denotes an ignore region and 0 is background. The class id can be obtained by floor divison of the object id by 1000 (class_id = obj_id // 1000) and the instance id can be obtained by the object id modulo 1000 (instance_id = obj_id % 1000). The object ids are consistent over time. | |
The class ids are the following | |
car 1 | |
pedestrian 2 | |
png format | |
The png format has a single color channel with 16 bits and can for example be read like this: | |
import PIL.Image as Image | |
img = np.array(Image.open("000005.png")) | |
obj_ids = np.unique(img) | |
# to correctly interpret the id of a single object | |
obj_id = obj_ids[0] | |
class_id = obj_id // 1000 | |
obj_instance_id = obj_id % 1000 | |
When using a TensorFlow input pipeline for reading the annotations, you can use | |
ann_data = tf.read_file(ann_filename) | |
ann = tf.image.decode_image(ann_data, dtype=tf.uint16, channels=1) | |
txt format | |
Each line of an annotation txt file is structured like this (where rle means run-length encoding from COCO): | |
time_frame id class_id img_height img_width rle | |
An example line from a txt file: | |
52 1005 1 375 1242 WSV:2d;1O10000O10000O1O100O100O1O100O1000000000000000O100O102N5K00O1O1N2O110OO2O001O1NTga3 | |
Which means | |
time frame 52 | |
object id 1005 (meaning class id is 1, i.e. car and instance id is 5) | |
class id 1 | |
image height 375 | |
image width 1242 | |
rle WSV:2d;1O10000O10000O1O100O100O1O100O1000000000000000O100O...1O1N | |
image height, image width, and rle can be used together to decode a mask using cocotools. |