For the complete documentation index, see llms.txt. This page is also available as Markdown.

Composable Pops

Build a Pop with the Python types

A Pop chains abilities into a pipeline: detect, crop to each detection, and run another ability on the crop. Pass it when you open the session.

This page is the Python construction API. Every component type and its attributes are covered once in Components, how they chain in Forwarding, and worked pipelines in Examples.

The types

Import them from eyepop.worker.worker_types.

Type
Purpose

Pop

The pipeline itself: components, and optionally postTransform, defaults and depthMap.

InferenceComponent

Run an ability.

TrackingComponent

Track detected objects across video frames.

ContourFinderComponent

Turn segmentation masks into contours. contourType is optional and defaults to polygon.

ComponentFinderComponent

Split segmentation masks into sub-objects.

ForwardComponent

Route output onward without analyzing it.

InferenceType, MotionModel, and ContourType are enums for the corresponding fields.

The components are Pydantic models, so a Pop is validated as you build it rather than when the worker rejects it.

Forwarding

CropForward and FullForward are helpers that build the forward operator for you:

CropForward(targets, maxItems=None, boxPadding=None,
            orientationTargetAngle=None, includeClasses=None,
            is_full_fallback=False)

FullForward(targets, includeClasses=None)

is_full_fallback=True selects crop_with_full_fallback, which crops when the parent detected something and falls back to the whole frame when it did not.

Building a Pop

World coordinates

PopDepthMap names the depth ability, and toWorld on a component asks for its point-based predictions in meters. SourceDefaults carries a Camera for every source the Pop processes.

PopDepthMap and Camera validate as you build them, so a Pop that cannot mean what it says fails here rather than as a 400 from the worker. Decode the results with eyepop.DepthMap and eyepop.PointCloud, and plot them with eyepop.visualize.EyePopWorldPlot.

See Depth and World Coordinates for the whole feature.

Prompting an ability

Abilities backed by a vision-language model take their instruction through params:

multiClass is accepted by the platform but is not yet exposed on InferenceComponent. Everything else in Components is available from Python.

Next steps

Last updated