Class SAM2
- java.lang.Object
-
- adams.core.logging.LoggingObject
-
- adams.core.logging.CustomLoggingLevelObject
-
- adams.gui.visualization.segmentation.tool.AbstractTool
-
- adams.gui.visualization.segmentation.tool.AbstractToolWithParameterPanel
-
- adams.gui.visualization.segmentation.tool.SAM2
-
- All Implemented Interfaces:
adams.core.CleanUpHandler
,adams.core.GlobalInfoSupporter
,adams.core.logging.LoggingLevelHandler
,adams.core.logging.LoggingSupporter
,adams.core.SizeOfHandler
,adams.gui.visualization.segmentation.tool.CustomizableTool
,adams.gui.visualization.segmentation.tool.Tool
,Serializable
public class SAM2 extends adams.gui.visualization.segmentation.tool.AbstractToolWithParameterPanel
Uses SAM (via docker and redis) to aid human in annotating.- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected adams.gui.core.BaseComboBox<String>
m_ComboBoxModelName
the combobox for the model name.protected Color
m_MarkerColor
the marker color.protected int
m_MarkerSize
the marker size.protected int
m_MaxObjectSize
the maximum object size (width/height).protected int
m_MinObjectSize
the minimum object size (width/height).protected double
m_MinProbabilityDetection
the minimum probability for the detections.protected float
m_MinProbabilityMask
the minimum probability for the mask pixels.protected ai.djl.repository.zoo.ZooModel<ai.djl.modality.cv.translator.Sam2Translator.Sam2Input,ai.djl.modality.cv.output.DetectedObjects>
m_Model
the current model.protected String
m_ModelName
the model to use.protected ai.djl.inference.Predictor<ai.djl.modality.cv.translator.Sam2Translator.Sam2Input,ai.djl.modality.cv.output.DetectedObjects>
m_Predictor
the current predictor.protected adams.gui.core.BaseColorTextField
m_TextMarkerColor
the marker color.protected adams.gui.core.NumberTextField
m_TextMarkerSize
the marker size.protected adams.gui.core.NumberTextField
m_TextMaxObjectSize
the maximum object size (width/height).protected adams.gui.core.NumberTextField
m_TextMinObjectSize
the minimum object size (width/height).protected adams.gui.core.NumberTextField
m_TextMinProbabilityDetection
the minimum detection probability.protected adams.gui.core.NumberTextField
m_TextMinProbabilityMask
the minimum mask pixel probability.-
Fields inherited from class adams.gui.visualization.segmentation.tool.AbstractToolWithParameterPanel
m_ButtonApply, m_ButtonFavorites, m_IgnoreOptionsUpdate, m_InitialOptions, m_ParameterPanel
-
-
Constructor Summary
Constructors Constructor Description SAM2()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addOptions(adams.gui.core.ParameterPanel paramPanel)
Fills the parameter panel with the options.protected String
checkBeforeApply()
Checks the parameters before applying them.void
cleanUp()
Cleans up data structures, frees up memory.protected Cursor
createCursor()
Creates the mouse cursor to use.protected adams.gui.visualization.segmentation.tool.ToolKeyAdapter
createKeyListener()
Creates the key listener to use.protected adams.gui.visualization.segmentation.tool.ToolMouseAdapter
createMouseListener()
Creates the mouse listener to use.protected adams.gui.visualization.segmentation.tool.ToolMouseMotionAdapter
createMouseMotionListener()
Creates the mouse motion listener to use.protected void
detect()
Applies SAM2 to the image and points.protected void
doApply()
Applies the settings.Icon
getIcon()
The icon of the tool.String
getName()
The name of the tool.String
globalInfo()
Returns a string describing the object.protected void
initialize()
Initializes the members.protected void
loadModel()
Loads the model, if necessary.-
Methods inherited from class adams.gui.visualization.segmentation.tool.AbstractToolWithParameterPanel
apply, applyOptions, applyOptionsQuietly, createOptionPanel, getCurrentOptions, getFavoritesOptions, getOption, getOptionPanel, postProcessCurrentOptions, retrieveCurrentOptions, setFavoritesOptions, setInitialOptions, setOption, showFavoritesMenu, updateOptions
-
Methods inherited from class adams.gui.visualization.segmentation.tool.AbstractTool
activate, annotationsChanged, createApplyButton, createPaintOperation, deactivate, getActiveColor, getActiveCombinedSubLayer, getActiveImage, getActiveOverlay, getCanvas, getCursor, getKeyListener, getLayerManager, getModifiedIcon, getMouseListener, getMouseMotionListener, getPaintOperation, getUnmodifiedIcon, getZoom, hasActiveCombinedSubLayer, hasActiveOverlay, hasAnyActive, isAutomaticUndoEnabled, setApplyButtonState, setCanvas
-
Methods inherited from class adams.core.logging.LoggingObject
configureLogger, getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled, sizeOf
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface adams.core.logging.LoggingLevelHandler
getLoggingLevel, setLoggingLevel
-
Methods inherited from interface adams.gui.visualization.segmentation.tool.Tool
activate, annotationsChanged, deactivate, getActiveColor, getActiveCombinedSubLayer, getActiveImage, getActiveOverlay, getCanvas, getCursor, getKeyListener, getLayerManager, getMouseListener, getMouseMotionListener, getPaintOperation, getZoom, hasActiveCombinedSubLayer, hasActiveOverlay, hasAnyActive, isAutomaticUndoEnabled, setCanvas
-
-
-
-
Field Detail
-
m_TextMarkerSize
protected adams.gui.core.NumberTextField m_TextMarkerSize
the marker size.
-
m_TextMarkerColor
protected adams.gui.core.BaseColorTextField m_TextMarkerColor
the marker color.
-
m_ComboBoxModelName
protected adams.gui.core.BaseComboBox<String> m_ComboBoxModelName
the combobox for the model name.
-
m_TextMinProbabilityDetection
protected adams.gui.core.NumberTextField m_TextMinProbabilityDetection
the minimum detection probability.
-
m_TextMinProbabilityMask
protected adams.gui.core.NumberTextField m_TextMinProbabilityMask
the minimum mask pixel probability.
-
m_TextMinObjectSize
protected adams.gui.core.NumberTextField m_TextMinObjectSize
the minimum object size (width/height).
-
m_TextMaxObjectSize
protected adams.gui.core.NumberTextField m_TextMaxObjectSize
the maximum object size (width/height).
-
m_MarkerSize
protected int m_MarkerSize
the marker size.
-
m_MarkerColor
protected Color m_MarkerColor
the marker color.
-
m_ModelName
protected String m_ModelName
the model to use.
-
m_MinProbabilityDetection
protected double m_MinProbabilityDetection
the minimum probability for the detections.
-
m_MinProbabilityMask
protected float m_MinProbabilityMask
the minimum probability for the mask pixels.
-
m_MinObjectSize
protected int m_MinObjectSize
the minimum object size (width/height).
-
m_MaxObjectSize
protected int m_MaxObjectSize
the maximum object size (width/height).
-
m_Model
protected transient ai.djl.repository.zoo.ZooModel<ai.djl.modality.cv.translator.Sam2Translator.Sam2Input,ai.djl.modality.cv.output.DetectedObjects> m_Model
the current model.
-
m_Predictor
protected transient ai.djl.inference.Predictor<ai.djl.modality.cv.translator.Sam2Translator.Sam2Input,ai.djl.modality.cv.output.DetectedObjects> m_Predictor
the current predictor.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Returns:
- a description suitable for displaying in the gui
-
initialize
protected void initialize()
Initializes the members.- Overrides:
initialize
in classadams.gui.visualization.segmentation.tool.AbstractToolWithParameterPanel
-
getName
public String getName()
The name of the tool.- Returns:
- the name
-
getIcon
public Icon getIcon()
The icon of the tool.- Returns:
- the icon
-
createCursor
protected Cursor createCursor()
Creates the mouse cursor to use.- Specified by:
createCursor
in classadams.gui.visualization.segmentation.tool.AbstractTool
- Returns:
- the cursor
-
createMouseListener
protected adams.gui.visualization.segmentation.tool.ToolMouseAdapter createMouseListener()
Creates the mouse listener to use.- Specified by:
createMouseListener
in classadams.gui.visualization.segmentation.tool.AbstractTool
- Returns:
- the listener, null if not applicable
-
createMouseMotionListener
protected adams.gui.visualization.segmentation.tool.ToolMouseMotionAdapter createMouseMotionListener()
Creates the mouse motion listener to use.- Specified by:
createMouseMotionListener
in classadams.gui.visualization.segmentation.tool.AbstractTool
- Returns:
- the listener, null if not applicable
-
createKeyListener
protected adams.gui.visualization.segmentation.tool.ToolKeyAdapter createKeyListener()
Creates the key listener to use.- Overrides:
createKeyListener
in classadams.gui.visualization.segmentation.tool.AbstractTool
- Returns:
- the listener, null if not applicable
-
checkBeforeApply
protected String checkBeforeApply()
Checks the parameters before applying them.- Overrides:
checkBeforeApply
in classadams.gui.visualization.segmentation.tool.AbstractTool
- Returns:
- null if checks passed, otherwise error message (gets displayed in GUI)
-
doApply
protected void doApply()
Applies the settings.- Specified by:
doApply
in classadams.gui.visualization.segmentation.tool.AbstractTool
-
addOptions
protected void addOptions(adams.gui.core.ParameterPanel paramPanel)
Fills the parameter panel with the options.- Specified by:
addOptions
in classadams.gui.visualization.segmentation.tool.AbstractToolWithParameterPanel
- Parameters:
paramPanel
- for adding the options to
-
loadModel
protected void loadModel() throws Exception
Loads the model, if necessary.- Throws:
Exception
- if model loading fails
-
detect
protected void detect()
Applies SAM2 to the image and points.
-
cleanUp
public void cleanUp()
Cleans up data structures, frees up memory.- Specified by:
cleanUp
in interfaceadams.core.CleanUpHandler
- Overrides:
cleanUp
in classadams.gui.visualization.segmentation.tool.AbstractTool
-
-