Class SegmentObjectsFromONNXModel
Object
org.anchoranalysis.bean.AnchorBean<B>
org.anchoranalysis.bean.initializable.InitializableBean<T,org.anchoranalysis.image.bean.nonbean.init.ImageInitialization>
org.anchoranalysis.image.bean.ImageBean<T>
org.anchoranalysis.image.bean.segment.SegmentationBean<org.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsPooled<T>>
org.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsPooled<S>
org.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsScaleDecode<ai.onnxruntime.OnnxTensor,OnnxModel>
org.anchoranalysis.plugin.onnx.bean.object.segment.stack.SegmentObjectsFromONNXModel
public class SegmentObjectsFromONNXModel extends org.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsScaleDecode<ai.onnxruntime.OnnxTensor,OnnxModel>
Performs instance-segmentation using the ONNX Runtime and an
.onnx model file.- Author:
- Owen Feehan
-
Constructor Summary
Constructors Constructor Description SegmentObjectsFromONNXModel() -
Method Summary
Modifier and Type Method Description org.anchoranalysis.inference.concurrency.ConcurrentModelPool<OnnxModel>createModelPool(org.anchoranalysis.inference.concurrency.ConcurrencyPlan plan, org.anchoranalysis.core.log.Logger logger)protected ai.onnxruntime.OnnxTensorderiveInput(org.anchoranalysis.image.core.stack.Stack stack, Optional<double[]> subtractMeans)StringgetInputName()The name of the input in the ONNX model.StringgetModelPath()Relative-path to the model file in ONNX form, relative to the models/ directory in the Anchor distribution.protected Optional<String>inputName()booleanisIncludeBatchDimension()If true, a 4-dimensional tensor is created (with the first dimension describing a batch-size of 1), instead of the usual 3-dimensional tensor describing channel, height, width.booleanisInterleaveChannels()If true, the channels are placed as the final position of the tensor (**after** width/height) instead of **before** width/height.booleanisReadFromResources()When true, rather than readingmodelPathfrom the file-system, it is read from Java resources on the class-path.voidsetIncludeBatchDimension(boolean includeBatchDimension)If true, a 4-dimensional tensor is created (with the first dimension describing a batch-size of 1), instead of the usual 3-dimensional tensor describing channel, height, width.voidsetInputName(String inputName)The name of the input in the ONNX model.voidsetInterleaveChannels(boolean interleaveChannels)If true, the channels are placed as the final position of the tensor (**after** width/height) instead of **before** width/height.voidsetModelPath(String modelPath)Relative-path to the model file in ONNX form, relative to the models/ directory in the Anchor distribution.voidsetReadFromResources(boolean readFromResources)When true, rather than readingmodelPathfrom the file-system, it is read from Java resources on the class-path.Methods inherited from class org.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsScaleDecode
getClassLabelsPath, getDecode, getDisplayer, getInterpolator, getScaleInput, getSubtractMean, segment, setClassLabelsPath, setDecode, setDisplayer, setInterpolator, setScaleInput, setSubtractMeanMethods inherited from class org.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsPooled
resolve, segmentMethods inherited from class org.anchoranalysis.bean.initializable.InitializableBean
getInitialization, getLogger, getPropertyInitializer, initialize, initializeRecursive, initRecursiveWithInitializer, isInitialized, onInitialization
-
Constructor Details
-
SegmentObjectsFromONNXModel
public SegmentObjectsFromONNXModel()
-
-
Method Details
-
createModelPool
public org.anchoranalysis.inference.concurrency.ConcurrentModelPool<OnnxModel> createModelPool(org.anchoranalysis.inference.concurrency.ConcurrencyPlan plan, org.anchoranalysis.core.log.Logger logger) throws org.anchoranalysis.inference.concurrency.CreateModelFailedException- Specified by:
createModelPoolin classorg.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsPooled<OnnxModel>- Throws:
org.anchoranalysis.inference.concurrency.CreateModelFailedException
-
deriveInput
protected ai.onnxruntime.OnnxTensor deriveInput(org.anchoranalysis.image.core.stack.Stack stack, Optional<double[]> subtractMeans) throws org.anchoranalysis.core.exception.OperationFailedException- Specified by:
deriveInputin classorg.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsScaleDecode<ai.onnxruntime.OnnxTensor,OnnxModel>- Throws:
org.anchoranalysis.core.exception.OperationFailedException
-
inputName
- Specified by:
inputNamein classorg.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsScaleDecode<ai.onnxruntime.OnnxTensor,OnnxModel>
-
getModelPath
Relative-path to the model file in ONNX form, relative to the models/ directory in the Anchor distribution.If
readFromResources==true, it is read instead from resources on the class-path. -
setModelPath
Relative-path to the model file in ONNX form, relative to the models/ directory in the Anchor distribution.If
readFromResources==true, it is read instead from resources on the class-path. -
isReadFromResources
public boolean isReadFromResources()When true, rather than readingmodelPathfrom the file-system, it is read from Java resources on the class-path. -
setReadFromResources
public void setReadFromResources(boolean readFromResources)When true, rather than readingmodelPathfrom the file-system, it is read from Java resources on the class-path. -
getInputName
The name of the input in the ONNX model. -
setInputName
The name of the input in the ONNX model. -
isIncludeBatchDimension
public boolean isIncludeBatchDimension()If true, a 4-dimensional tensor is created (with the first dimension describing a batch-size of 1), instead of the usual 3-dimensional tensor describing channel, height, width. -
setIncludeBatchDimension
public void setIncludeBatchDimension(boolean includeBatchDimension)If true, a 4-dimensional tensor is created (with the first dimension describing a batch-size of 1), instead of the usual 3-dimensional tensor describing channel, height, width. -
isInterleaveChannels
public boolean isInterleaveChannels()If true, the channels are placed as the final position of the tensor (**after** width/height) instead of **before** width/height.Consequently, in terms of raw order in a
FloatBuffer, RGB values become interleaved. -
setInterleaveChannels
public void setInterleaveChannels(boolean interleaveChannels)If true, the channels are placed as the final position of the tensor (**after** width/height) instead of **before** width/height.Consequently, in terms of raw order in a
FloatBuffer, RGB values become interleaved.
-