Class SegmentObjectsFromTensorFlowModel

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<org.opencv.core.Mat,​OpenCVModel>
org.anchoranalysis.plugin.opencv.bean.object.segment.stack.SegmentObjectsFromTensorFlowModel

public class SegmentObjectsFromTensorFlowModel
extends org.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsScaleDecode<org.opencv.core.Mat,​OpenCVModel>
Performs instance-segmentation using OpenCV's DNN module and a TensorFlow .pb SavedModel file.

Optionally a .pb.txt file may accompany it.

Author:
Owen Feehan
  • Constructor Summary

    Constructors 
    Constructor Description
    SegmentObjectsFromTensorFlowModel()  
  • Method Summary

    Modifier and Type Method Description
    org.anchoranalysis.inference.concurrency.ConcurrentModelPool<OpenCVModel> createModelPool​(org.anchoranalysis.inference.concurrency.ConcurrencyPlan plan, org.anchoranalysis.core.log.Logger logger)  
    protected org.opencv.core.Mat deriveInput​(org.anchoranalysis.image.core.stack.Stack stack, Optional<double[]> subtractMeans)  
    String getModelBinaryPath()
    Relative-path to the TensorFlow model file, likely with .pb extension, relative to the models/ directory in the Anchor distribution.
    String getModelTextGraphPath()
    Relative-path to the TensorFlow model file, likely with .pb.txt extension, relative to the models/ directory in the Anchor distribution.
    protected Optional<String> inputName()  
    void setModelBinaryPath​(String modelBinaryPath)
    Relative-path to the TensorFlow model file, likely with .pb extension, relative to the models/ directory in the Anchor distribution.
    void setModelTextGraphPath​(String modelTextGraphPath)
    Relative-path to the TensorFlow model file, likely with .pb.txt extension, relative to the models/ directory in the Anchor distribution.

    Methods inherited from class org.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsScaleDecode

    getClassLabelsPath, getDecode, getDisplayer, getInterpolator, getScaleInput, getSubtractMean, segment, setClassLabelsPath, setDecode, setDisplayer, setInterpolator, setScaleInput, setSubtractMean

    Methods inherited from class org.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsPooled

    resolve, segment

    Methods inherited from class org.anchoranalysis.bean.initializable.InitializableBean

    getInitialization, getLogger, getPropertyInitializer, initialize, initializeRecursive, initRecursiveWithInitializer, isInitialized, onInitialization

    Methods inherited from class org.anchoranalysis.bean.AnchorBean

    checkMisconfigured, describeBean, describeChildren, duplicateBean, fields, findFieldsOfClass, getBeanName, getLocalPath, localise, toString

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

  • Method Details

    • createModelPool

      public org.anchoranalysis.inference.concurrency.ConcurrentModelPool<OpenCVModel> createModelPool​(org.anchoranalysis.inference.concurrency.ConcurrencyPlan plan, org.anchoranalysis.core.log.Logger logger) throws org.anchoranalysis.inference.concurrency.CreateModelFailedException
      Specified by:
      createModelPool in class org.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsPooled<OpenCVModel>
      Throws:
      org.anchoranalysis.inference.concurrency.CreateModelFailedException
    • deriveInput

      protected org.opencv.core.Mat deriveInput​(org.anchoranalysis.image.core.stack.Stack stack, Optional<double[]> subtractMeans) throws org.anchoranalysis.core.exception.OperationFailedException
      Specified by:
      deriveInput in class org.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsScaleDecode<org.opencv.core.Mat,​OpenCVModel>
      Throws:
      org.anchoranalysis.core.exception.OperationFailedException
    • inputName

      protected Optional<String> inputName()
      Specified by:
      inputName in class org.anchoranalysis.image.inference.bean.segment.instance.SegmentStackIntoObjectsScaleDecode<org.opencv.core.Mat,​OpenCVModel>
    • getModelBinaryPath

      public String getModelBinaryPath()
      Relative-path to the TensorFlow model file, likely with .pb extension, relative to the models/ directory in the Anchor distribution.
    • setModelBinaryPath

      public void setModelBinaryPath​(String modelBinaryPath)
      Relative-path to the TensorFlow model file, likely with .pb extension, relative to the models/ directory in the Anchor distribution.
    • getModelTextGraphPath

      public String getModelTextGraphPath()
      Relative-path to the TensorFlow model file, likely with .pb.txt extension, relative to the models/ directory in the Anchor distribution.

      If empty, then no such file is specified.

    • setModelTextGraphPath

      public void setModelTextGraphPath​(String modelTextGraphPath)
      Relative-path to the TensorFlow model file, likely with .pb.txt extension, relative to the models/ directory in the Anchor distribution.

      If empty, then no such file is specified.