VideoAnnotation
class VideoAnnotation extends Annotation
Traits
Properties
| $labelBOTLabels | The additional labels suggested by the LabelBOT. |
from Annotation | |
| int | $id | from Annotation | |
| array | $points | from Annotation | |
| string | $created_at | from Annotation | |
| int | $shape_id | from Annotation |
Methods
Validate the points and frames of this annotation.
Valies that all coordinates are either int or float
Validates that the number of coordinates matches the required number for the given shape
Validates that the number of points (sequential coordinate pairs) matches the expected number of points for the given shape
Validates some edgecases where the given points don't create a valid shape
Round the floats of the points array to 2 decimals before saving.
Get the attributes that should be cast.
Get an estimated count of all annotations from pg_class statistics.
Scope a query to only include annotations that are visible for a certain user.
Scope a query to only include annotations that have a certain label attached.
Scope a query to only include annotations allowed by the session for the user.
The file, this annotation belongs to.
The labels, this annotation got assigned by the users.
Get the file_id attribute
The video, this annotation belongs to.
Get the interpolated points at a specific point of time.
Get the interpolated points of this annotation between the specified frames.
Get the points of this annotation prepared for interpolation.
Interpolate between two points arrays.
Convert the points array of a rectangle (frame) to points that can be interpolated.
Convert points that can be interpolated back to the points of a rectangle (frame).
Details
at line 86
validatePoints(array $points = [])
Validate the points and frames of this annotation.
in
HasPointsAttribute at line 31
protected
validateCoordinatesAreNumeric(array $points)
Valies that all coordinates are either int or float
in
HasPointsAttribute at line 44
protected
validateNumberOfCoordinates(array $points)
Validates that the number of coordinates matches the required number for the given shape
in
HasPointsAttribute at line 69
protected
validateNumberOfPoints(array $points)
Validates that the number of points (sequential coordinate pairs) matches the expected number of points for the given shape
in
HasPointsAttribute at line 102
protected
validateShape(array $points)
Validates some edgecases where the given points don't create a valid shape
at line 73
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.
in
HasPointsAttribute at line 154
protected int
countDistinctPoints(array $points)
Counts number of distinct points
at line 19
protected array
casts()
Get the attributes that should be cast.
in
Annotation at line 50
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.
in
Annotation at line 65
Builder
scopeVisibleFor(Builder $query, User $user)
Scope a query to only include annotations that are visible for a certain user.
in
Annotation at line 98
Builder
scopeWithLabel(Builder $query, Label $label)
Scope a query to only include annotations that have a certain label attached.
in
Annotation at line 118
Builder
scopeAllowedBySession(Builder $query, AnnotationSession $session, User $user)
Scope a query to only include annotations allowed by the session for the user.
at line 42
Annotation>
file()
The file, this annotation belongs to.
at line 60
AnnotationLabel, $this>
labels()
The labels, this annotation got assigned by the users.
at line 52
int
getFileIdAttribute()
Get the file_id attribute
in
Annotation at line 199
Shape, $this>
shape()
The shape of this annotation.
in
Annotation at line 207
array
getPoints()
Get the points array of the annotation.
in
Annotation at line 215
Shape
getShape()
Get the shape of an annotation.
in
Annotation at line 223
VolumeFile
getFile()
Get the image/video, the annotation belongs to.
in
Annotation at line 231
int
getId()
Get the ID of the annotation.
in
Annotation at line 241
array
getLabelBOTLabelsAttribute()
Get the LabelBOT suggested labels.
at line 34
Video, $this>
video()
The video, this annotation belongs to.
at line 123
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!
at line 165
protected array
interpolateBetweenFrames(int $index1, int $index2, float $progress)
Get the interpolated points of this annotation between the specified frames.
at line 192
protected array
getInterpolationPoints()
Get the points of this annotation prepared for interpolation.
at line 215
protected array
interpolateNaive(array $from, array $to, float $progress)
Interpolate between two points arrays.
at line 228
protected array
rectangleToInterpolationPoints(array $points)
Convert the points array of a rectangle (frame) to points that can be interpolated.
at line 258
protected array
interpolationPointsToRectangle(array $points)
Convert points that can be interpolated back to the points of a rectangle (frame).