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.AbstractToolWithParameterPanelUses 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_ComboBoxModelNamethe combobox for the model name.protected Colorm_MarkerColorthe marker color.protected intm_MarkerSizethe marker size.protected intm_MaxObjectSizethe maximum object size (width/height).protected intm_MinObjectSizethe minimum object size (width/height).protected doublem_MinProbabilityDetectionthe minimum probability for the detections.protected floatm_MinProbabilityMaskthe 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_Modelthe current model.protected Stringm_ModelNamethe model to use.protected ai.djl.inference.Predictor<ai.djl.modality.cv.translator.Sam2Translator.Sam2Input,ai.djl.modality.cv.output.DetectedObjects>m_Predictorthe current predictor.protected adams.gui.core.BaseColorTextFieldm_TextMarkerColorthe marker color.protected adams.gui.core.NumberTextFieldm_TextMarkerSizethe marker size.protected adams.gui.core.NumberTextFieldm_TextMaxObjectSizethe maximum object size (width/height).protected adams.gui.core.NumberTextFieldm_TextMinObjectSizethe minimum object size (width/height).protected adams.gui.core.NumberTextFieldm_TextMinProbabilityDetectionthe minimum detection probability.protected adams.gui.core.NumberTextFieldm_TextMinProbabilityMaskthe 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 voidaddOptions(adams.gui.core.ParameterPanel paramPanel)Fills the parameter panel with the options.protected StringcheckBeforeApply()Checks the parameters before applying them.voidcleanUp()Cleans up data structures, frees up memory.protected CursorcreateCursor()Creates the mouse cursor to use.protected adams.gui.visualization.segmentation.tool.ToolKeyAdaptercreateKeyListener()Creates the key listener to use.protected adams.gui.visualization.segmentation.tool.ToolMouseAdaptercreateMouseListener()Creates the mouse listener to use.protected adams.gui.visualization.segmentation.tool.ToolMouseMotionAdaptercreateMouseMotionListener()Creates the mouse motion listener to use.protected voiddetect()Applies SAM2 to the image and points.protected voiddoApply()Applies the settings.IcongetIcon()The icon of the tool.StringgetName()The name of the tool.StringglobalInfo()Returns a string describing the object.protected voidinitialize()Initializes the members.protected voidloadModel()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:
initializein 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:
createCursorin 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:
createMouseListenerin 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:
createMouseMotionListenerin 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:
createKeyListenerin classadams.gui.visualization.segmentation.tool.AbstractTool- Returns:
- the listener, null if not applicable
-
checkBeforeApply
protected String checkBeforeApply()
Checks the parameters before applying them.- Overrides:
checkBeforeApplyin 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:
doApplyin classadams.gui.visualization.segmentation.tool.AbstractTool
-
addOptions
protected void addOptions(adams.gui.core.ParameterPanel paramPanel)
Fills the parameter panel with the options.- Specified by:
addOptionsin classadams.gui.visualization.segmentation.tool.AbstractToolWithParameterPanel- Parameters:
paramPanel- for adding the options to
-
loadModel
protected void loadModel() throws ExceptionLoads 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:
cleanUpin interfaceadams.core.CleanUpHandler- Overrides:
cleanUpin classadams.gui.visualization.segmentation.tool.AbstractTool
-
-