Annotation
abstract class Annotation extends Model implements Annotation
An image annotation is a region of an image that can be labeled by the users.
It consists of one or many points and has a specific shape.
Traits
Properties
| $hidden | The attributes excluded from the model's JSON form. |
||
| protected array<string, string> | $casts | The attributes that should be casted to native types. |
|
| $labelBOTLabels | The additional labels suggested by the LabelBOT. |
||
| int | $id | ||
| array | $points | ||
| string | $created_at | ||
| int | $shape_id |
Methods
Validates a points array for the shape 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 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 shape of this annotation.
Get the points array of the annotation.
Get the image/video, the annotation belongs to.
Get the ID of the annotation.
Get the LabelBOT suggested labels.
Details
in
HasPointsAttribute at line 19
validatePoints(array $points)
Validates a points array for the shape 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
in
HasPointsAttribute at line 143
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 54
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.
at line 69
Builder
scopeVisibleFor(Builder $query, User $user)
Scope a query to only include annotations that are visible for a certain user.
at line 102
Builder
scopeWithLabel(Builder $query, Label $label)
Scope a query to only include annotations that have a certain label attached.
at line 122
Builder
scopeAllowedBySession(Builder $query, AnnotationSession $session, User $user)
Scope a query to only include annotations allowed by the session for the user.
at line 182
abstract Annotation>
file()
The file, this annotation belongs to.
at line 189
abstract AnnotationLabel, $this>
labels()
The labels, this annotation got assigned by the users.
at line 196
abstract int
getFileIdAttribute()
Get the file_id attribute
at line 203
Shape, $this>
shape()
The shape of this annotation.
at line 211
array
getPoints()
Get the points array of the annotation.
at line 219
Shape
getShape()
Get the shape of an annotation.
at line 227
VolumeFile
getFile()
Get the image/video, the annotation belongs to.
at line 235
int
getId()
Get the ID of the annotation.
at line 245
array
getLabelBOTLabelsAttribute()
Get the LabelBOT suggested labels.