class InitializeFeatureVectorChunk extends GenerateFeatureVectors

Traits

InteractsWithQueue
Queueable
Dispatchable

Methods

array
getAnnotationBoundingBox(array $points, Shape $shape, int $pointPadding = 112, int $boxPadding = 0, int $minSize = 32)

Get the bounding box of an annotation

array
ensureBoxAspectRatio(array $box, int $aspectWidth, int $aspectHeight)

Modify a bounding box so it adheres to the aspect ratio given by width and height.

makeBoxContained(array $box, int|null $maxWidth, int|null $maxHeight)

Adjust the position and size of the box so it is contained in a box with the given dimensions.

array
getPointBoundingBox(array $points, int $padding)

Get the bounding box of a point annotation.

array
getCircleBoundingBox(array $points)

Get the bounding box of a circle annotation.

array
getPolygonBoundingBox(array $points)

Get the bounding box of an annotation that is no point, circle or whole frame.

array
makeBoxIntegers(array $box)

Round and cast box values to int.

array
generateInput(array $files, array $paths, Collection $annotations)

Generate the input for the python script.

array
generateFileInput(VolumeFile $file, Collection $annotations)

No description

python(string $inputPath, string $outputPath)

Run the Python command.

readOutputCsv(string $path)

Generator to read the output CSV row by row.

__construct(array $imageAnnotationIds, array $videoAnnotationIds)

No description

handle()

No description

Collection
getInsertData(Collection $models)

Get the array to insert new feature vector models into the DB.

getFeatureVectors(Collection $models, string $outputPath)

Generate feature vectors from the thumbnails of many annotations.

Details

array getAnnotationBoundingBox(array $points, Shape $shape, int $pointPadding = 112, int $boxPadding = 0, int $minSize = 32)

Get the bounding box of an annotation

Parameters

array $points
Shape $shape
int $pointPadding

The default is half the patch size of 224 that is expected by DINO.

int $boxPadding
int $minSize

Each side of the box should have at least this number of pixels. Must be divisible by 2.

Return Value

array

array ensureBoxAspectRatio(array $box, int $aspectWidth, int $aspectHeight)

Modify a bounding box so it adheres to the aspect ratio given by width and height.

Parameters

array $box
int $aspectWidth
int $aspectHeight

Return Value

array

makeBoxContained(array $box, int|null $maxWidth, int|null $maxHeight)

Adjust the position and size of the box so it is contained in a box with the given dimensions.

Parameters

array $box
int|null $maxWidth
int|null $maxHeight

protected array getPointBoundingBox(array $points, int $padding)

Get the bounding box of a point annotation.

Parameters

array $points
int $padding

Return Value

array

protected array getCircleBoundingBox(array $points)

Get the bounding box of a circle annotation.

Parameters

array $points

Return Value

array

protected array getPolygonBoundingBox(array $points)

Get the bounding box of an annotation that is no point, circle or whole frame.

Parameters

array $points

Return Value

array

protected array makeBoxIntegers(array $box)

Round and cast box values to int.

Parameters

array $box

Return Value

array

protected array generateInput(array $files, array $paths, Collection $annotations)

Generate the input for the python script.

Parameters

array $files

VolumeFile instances of the files to which the annotations belong.

array $paths

Paths of locally cached files.

Collection $annotations

Annotations grouped by their file ID (e.g. image_id).

Return Value

array

protected array generateFileInput(VolumeFile $file, Collection $annotations)

No description

Parameters

VolumeFile $file
Collection $annotations

Return Value

array

protected python(string $inputPath, string $outputPath)

Run the Python command.

Parameters

string $inputPath
string $outputPath

protected Generator readOutputCsv(string $path)

Generator to read the output CSV row by row.

Parameters

string $path

Return Value

Generator

at line 21
__construct(array $imageAnnotationIds, array $videoAnnotationIds)

No description

Parameters

array $imageAnnotationIds
array $videoAnnotationIds

at line 29
handle()

No description

at line 67
Collection getInsertData(Collection $models)

Get the array to insert new feature vector models into the DB.

Parameters

Collection $models

Return Value

Collection

at line 101
Generator getFeatureVectors(Collection $models, string $outputPath)

Generate feature vectors from the thumbnails of many annotations.

Parameters

Collection $models

Annotation models

string $outputPath

Path to stroe the CSV file with feature vectors

Return Value

Generator