Read cvat training set
Project description
cvat_reader
Package to read cvat training set zip file into numpy array image and annotations.
The cvat format is usefull because it contains the original video file. The original video file has two main advantage over image files:
- The original video file is much better compressed than a bunch of image files.
- The image files are re-compressed versions of the video file and therefore lower in quality
Install
pip install cvat_reader
Example
import cv2
from cvat_reader import open_cvat
with open_cvat("training.zip") as dataset:
print(dataset.labels)
labels = {}
for label in dataset.labels:
h = label['color'].lstrip('#')
labels[label['name']] = tuple(int(h[i:i + 2], 16) for i in (0, 2, 4))
for frame in dataset:
if frame.annotations:
img = frame.image.copy()
for label in dataset.labels:
for annotation in frame.annotations:
color = labels[annotation.label]
(x1, y1), (x2, y2) = annotation.bounding_box
cv2.rectangle(img, (x1, y1), (x2, y2), color)
cv2.imshow('image', img)
cv2.waitKey(0)
By default the video is loaded and all image data is put in the frame.image
attribute. When you are only interested in the data, or have an other way to process the video you can pass load_video=False
to open_cvat
and the images are not loaded. When you pass load_video=False
this library does not depend on cv2 or numpy.
from cvat_reader import open_cvat
def process_annotations(frame_id, annotations):
...
with open_cvat("training.zip", load_video=False) as dataset:
print(dataset.labels)
for frame in dataset:
"""
>>> frame.image
None
"""
if frame.annotations:
process_annotations(frame.frame_id, frame.annotations)
Support
cvat_reader
currently supports the following types of annotations:
- BoundingBox
Media types supported: all types cv2 supports
Changelog
0.3.1 (2021-12-03)
Bugfix:
- Fix typing
0.3.0 (2021-12-03)
Feature:
- Add
occluded
,outside
andattributes
toAnnotation
. WhenAnnotation
is interpolated theoccluded
,outside
andattributes
fields are copied from the first non-interpolated annotation.
0.2.1 (2021-11-04)
Bugfix:
- Include last frame
- Include
video_file
inDataset
0.2.0 (2021-11-04)
Feature:
- Add
load_video
flag toopen_cvat
to specify if video should be loaded too. This removes the dependecy on cv2/numpy when you don't need the video, or use another tool for processing.
0.1.2 (2021-10-26)
Bugfix:
- Stop iteration when last frame is reached
0.1.1 (2021-10-25)
Bugfix:
- data directory sometimes contains non-video files. Those files should not be picked as video files. This bugfix solves this by verifying if cv2 can load the file.
0.1.0 (2021-10-22)
Feature:
- Properly read tracks and interpolate
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file cvat_reader-0.3.1.tar.gz
.
File metadata
- Download URL: cvat_reader-0.3.1.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0216167c6e501e9e168c558890103861973e42c839d9a61877a3d7e03d957fdf |
|
MD5 | 24e6828f7cc9fe1a4812627eb96fbcf2 |
|
BLAKE2b-256 | 889ed2988fcbc043eed960b7c729b9a7410d9449a7dc96f22aba3f5a64c8d988 |