class VideoAnnotation extends Annotation

Traits

HasFactory

Properties

$labelBOTLabels

The additional labels suggested by the LabelBOT.

from  Annotation
int $id from  Annotation
array $points from  Annotation
string $created_at from  Annotation
Shape $shape from  Annotation
array $frames

Methods

array
casts()

Get the attributes that should be cast.

static int
estimatedCount()

Get an estimated count of all annotations from pg_class statistics.

Builder
scopeVisibleFor(Builder $query, User $user)

Scope a query to only include annotations that are visible for a certain user.

Builder
scopeWithLabel(Builder $query, Label $label)

Scope a query to only include annotations that have a certain label attached.

Builder
scopeAllowedBySession(Builder $query, AnnotationSession $session, User $user)

Scope a query to only include annotations allowed by the session for the user.

Annotation>
file()

The file, this annotation belongs to.

AnnotationLabel, $this>
labels()

The labels, this annotation got assigned by the users.

int
getFileIdAttribute()

Get the file_id attribute

array
getPoints()

Get the points array of the annotation.

Shape
getShape()

Get the shape of an annotation.

getFile()

Get the image/video, the annotation belongs to.

int
getId()

Get the ID of the annotation.

array
getLabelBOTLabelsAttribute()

Get the LabelBOT suggested labels.

Video, $this>
video()

The video, this annotation belongs to.

setPointsAttribute(array $points)

Round the floats of the points array to 2 decimals before saving.

array
interpolatePoints(float $time)

Get the interpolated points at a specific point of time.

array
interpolateBetweenFrames(int $index1, int $index2, float $progress)

Get the interpolated points of this annotation between the specified frames.

array
getInterpolationPoints()

Get the points of this annotation prepared for interpolation.

array
interpolateNaive(array $from, array $to, float $progress)

Interpolate between two points arrays.

array
rectangleToInterpolationPoints(array $points)

Convert the points array of a rectangle (frame) to points that can be interpolated.

array
interpolationPointsToRectangle(array $points)

Convert points that can be interpolated back to the points of a rectangle (frame).

Details

at line 23
protected array casts()

Get the attributes that should be cast.

Return Value

array

in Annotation at line 51
static int estimatedCount()

Get an estimated count of all annotations from pg_class statistics.

This is much faster than a full table scan of a large table.

See: https://wiki.postgresql.org/wiki/Count_estimate

Return Value

int

in Annotation at line 66
Builder scopeVisibleFor(Builder $query, User $user)

Scope a query to only include annotations that are visible for a certain user.

Parameters

Builder $query
User $user

The user to whom the restrictions should apply ('own' user)

Return Value

Builder

in Annotation at line 99
Builder scopeWithLabel(Builder $query, Label $label)

Scope a query to only include annotations that have a certain label attached.

Parameters

Builder $query
Label $label

Return Value

Builder

in Annotation at line 119
Builder scopeAllowedBySession(Builder $query, AnnotationSession $session, User $user)

Scope a query to only include annotations allowed by the session for the user.

Parameters

Builder $query
AnnotationSession $session
User $user

The user to whom the restrictions should apply ('own' user)

Return Value

Builder

at line 44
Annotation> file()

The file, this annotation belongs to.

Return Value

Annotation>

at line 62
AnnotationLabel, $this> labels()

The labels, this annotation got assigned by the users.

Return Value

AnnotationLabel, $this>

at line 54
int getFileIdAttribute()

Get the file_id attribute

Return Value

int

in Annotation at line 198
array getPoints()

Get the points array of the annotation.

Return Value

array

in Annotation at line 206
Shape getShape()

Get the shape of an annotation.

Return Value

Shape

in Annotation at line 214
VolumeFile getFile()

Get the image/video, the annotation belongs to.

Return Value

VolumeFile

in Annotation at line 222
int getId()

Get the ID of the annotation.

Return Value

int

in Annotation at line 232
array getLabelBOTLabelsAttribute()

Get the LabelBOT suggested labels.

Return Value

array

at line 36
Video, $this> video()

The video, this annotation belongs to.

Return Value

Video, $this>

at line 75
setPointsAttribute(array $points)

Round the floats of the points array to 2 decimals before saving.

This is a more than sufficient precision for annotation point coordinates and saves memory in the DB as well as when processing the annotations in PHP.

Parameters

array $points

at line 92
array interpolatePoints(float $time)

Get the interpolated points at a specific point of time.

This method must be equivalent to the interpolatePoints function of the JavaScript annotation model!

Parameters

float $time

Return Value

array

at line 134
protected array interpolateBetweenFrames(int $index1, int $index2, float $progress)

Get the interpolated points of this annotation between the specified frames.

Parameters

int $index1

Index of the first frame.

int $index2

Index of the second frame.

float $progress

Progress between the two frames.

Return Value

array

at line 161
protected array getInterpolationPoints()

Get the points of this annotation prepared for interpolation.

Return Value

array

at line 184
protected array interpolateNaive(array $from, array $to, float $progress)

Interpolate between two points arrays.

Parameters

array $from
array $to
float $progress

Return Value

array

at line 197
protected array rectangleToInterpolationPoints(array $points)

Convert the points array of a rectangle (frame) to points that can be interpolated.

Parameters

array $points

Return Value

array

at line 227
protected array interpolationPointsToRectangle(array $points)

Convert points that can be interpolated back to the points of a rectangle (frame).

Parameters

array $points

Return Value

array