ObjectDetection
class ObjectDetection extends DetectionJob
Traits
Properties
| protected bool | $deleteWhenMissingModels | Ignore this job if the MAIA job does not exist any more. |
from DetectionJob |
| protected string | $tmpDir | Temporary directory for files of this job. |
from DetectionJob |
| protected array | $trainingProposals | Selected training proposals. |
|
| protected string | $knowledgeTransferVolumeUrl | URL of the volume for knowledge transfer (if any). |
|
| protected array | $knowledgeTransferImages | Filenames of the images of the knowledge transfer volume, indexed by their IDs. |
Methods
Create GenericImage instances for the images of this job.
Creates the specified directory if it does not exist.
Get the path to the temporary directory.
Execute a Python command and return the path to a file containing the output.
Parse the output JSON files to get the array of annotations for each image.
Create MAIA annotations from the training proposals.
Create an insert array for a MAIA annotation.
Apply the limit for the maximum number of annotations.
Insert one chunk of the MAIA annotations that should be created into the database.
Update the state of the MAIA job after processing the response.
Execute the job
Determine whether knowledge transfer should be performed in this job.
Generate the training dataset for the object detection model.
Create the JSON file that is the input to the dataset generation script.
Perform training of object detection model.
Create the JSON file that is the input to the training script.
Perform inference with the trained object detection model.
Create the JSON file that is the input to the inference script.
Build the map from image ID to path of the cached image file.
Dispatch the job to store the object detection results.
Create GenericImage instances for the images of the knowledge transfer volume.
Details
at line 45
__construct(MaiaJob $job)
Create a new instance
in
DetectionJob at line 48
void
failed(Exception $exception)
The job failed to process.
in
DetectionJob at line 60
protected array
getGenericImages()
Create GenericImage instances for the images of this job.
in
DetectionJob at line 76
protected
cleanup()
Clean up temporary data produced by this job.
at line 304
protected
dispatchFailure(Exception $e)
Dispatch the job to notify the BIIGLE instance of a failure.
in
DetectionJob at line 92
protected
createTmpDir()
Create the temporary directory for this request.
in
DetectionJob at line 107
protected
ensureDirectory(string $path)
Creates the specified directory if it does not exist.
at line 312
protected string
getTmpDirPath()
Get the path to the temporary directory.
in
DetectionJob at line 133
protected string
python(string $command, string $log = 'log.txt', $env = '')
Execute a Python command and return the path to a file containing the output.
in
DetectionJob at line 157
protected array
parseAnnotations(array $images)
Parse the output JSON files to get the array of annotations for each image.
in
DetectionJob at line 189
protected array
parseAnnotationsFile(GenericImage $image)
Parse the output JSON file of a single image.
in
DetectionJob at line 214
protected
createMaiaAnnotations(array $annotations)
Create MAIA annotations from the training proposals.
in
DetectionJob at line 239
protected array
createMaiaAnnotation(array $annotation)
Create an insert array for a MAIA annotation.
in
DetectionJob at line 262
protected array
maybeLimitAnnotations(array $annotations, int $limit)
Apply the limit for the maximum number of annotations.
at line 335
protected
insertAnnotationChunk(array $chunk)
Insert one chunk of the MAIA annotations that should be created into the database.
at line 343
protected
updateJobState()
Update the state of the MAIA job after processing the response.
at line 65
handle()
Execute the job
at line 111
protected bool
shouldUseKnowledgeTransfer()
Determine whether knowledge transfer should be performed in this job.
at line 123
protected array
bundleTrainingProposals(MaiaJob $job)
Bundle the training proposals to be sent to the GPU server.
at line 152
protected string
generateDataset(array $images, array $paths)
Generate the training dataset for the object detection model.
at line 172
protected string
createDatasetJson(array $imagesMap, string $outputJsonPath)
Create the JSON file that is the input to the dataset generation script.
at line 199
protected string
performTraining(string $datasetOutputPath)
Perform training of object detection model.
at line 218
protected string
createTrainingJson(string $outputJsonPath)
Create the JSON file that is the input to the training script.
at line 240
protected
performInference(array $images, string $datasetOutputPath, string $trainingOutputPath)
Perform inference with the trained object detection model.
at line 259
protected string
createInferenceJson(array $imagesMap)
Create the JSON file that is the input to the inference script.
at line 281
protected array
buildImagesMap(array $images, array $paths)
Build the map from image ID to path of the cached image file.
at line 296
protected
dispatchResponse(array $annotations)
Dispatch the job to store the object detection results.
at line 322
protected array
getKnowledgeTransferImages()
Create GenericImage instances for the images of the knowledge transfer volume.