Welcome to our weekly FiftyOne tips and tricks blog where we recap interesting questions and answers that have recently popped up on
Slack,
GitHub, Stack Overflow, and Reddit.
As an open source community, the FiftyOne community is open to all. This means everyone is welcome to ask questions, and everyone is welcome to answer them. Continue reading to see the latest questions asked and answers provided!
Wait, what’s FiftyOne?
FiftyOne is an open source machine learning toolset that enables data science teams to improve the performance of their computer vision models by helping them curate high quality datasets, evaluate models, find mistakes, visualize embeddings, and get to production faster.
Ok, let’s dive into this week’s tips and tricks!
Working with video object tracking
Community Slack member Rustem asked:
In regards to video object tracking, is there a way in FiftyOne to visualize and evaluate tracks?
Take a look at the
FiftyOne quickstart video dataset, which consists of 10 video segments with dense object detections generated by human annotators. In it you'll notice that the object identities are preserved through the index parameter. Also, check out
to_trajectories()
. You can use
trajectory views to create views into your video datasets that contain one sample per each unique object trajectory defined by their
(label, index)
in a frame-level
Detections
or
Polylines
field.
Visualizing CVAT annotated skeletons
Community Slack member Queenie asked:
I used skeletons to annotate objects on CVAT. How can I add skeleton annotation data to the samples output so I can visualize the labels and skeleton in FiftyOne?
- What are pose skeletons?
- Preparing the dataset
- Annotating the skeleton in CVAT
- Loading and visualizing the annotations in FiftyOne
[@portabletext/react] Unknown block type "externalImage", specify a component for it in the `components.types` prop
Annotations is CVAT
Visualizing the annotations in FiftyOne
Computing embeddings on video frames
Community Slack member Dan asked:
Is there a way to compute the embeddings of the video frames if I have a video dataset that uses the compute_embeddings()
function?
You can use:
…to create a view of the frames of your video and get access to image functions like compute embeddings. For more information about the frames class check out the
FiftyOne Docs. For tips on how to use embeddings, check out
this blog and
this tutorial in the FiftyOne Docs.
Geospatial queries in FiftyOne
Community Slack member Manikandan asked:
I have samples with a GeoLocation
field containing GPS coordinates. Is it possible to use the FiftyOne App or the SDK to query the field? For example after importing fogeojson:
Although FiftyOne’s
GeoLocation
field only stores longitude and latitude, you can perform some basic queries based on those fields. There are also two functions you can use with geospatial data:
geo_near()
- Sorts the samples in the collection by their proximity to a specified geolocation.geo_within()
- Filters the samples in this collection to only include samples whose geolocation is within a specified boundary.
Learn more about geospatial support in the FiftyOne Docs.
Importing videos annotated in JSON with Labelbox
Community Slack member Yashovardhan asked:
Is there a way to import videos with JSON file annotations that were created using Labelbox? with a width and height of 720 and 1280: