Class YOLOObjectDetectorBlock
- Namespace
- VisioForge.Core.MediaBlocks.AI
- Assembly
- VisioForge.Core.ONNX.dll
A YOLOv8/v11 object-detection media block. Implements the VisioForge.Core.MediaBlocks.MediaBlock. Implements the VisioForge.Core.MediaBlocks.IMediaBlockInternals.
public class YOLOObjectDetectorBlock : MediaBlock, IMediaBlock, IDisposable, IMediaBlockInternalsInheritance
-
MediaBlock
Implements
-
IMediaBlockIMediaBlockInternals
Inherited Members
-
MediaBlock._isBuiltMediaBlock._pipelineMediaBlock._pipelineCtxMediaBlock.GetPipelineContext()MediaBlock.SetPipelineContext(BlockPipelineContext)MediaBlock.SetPipeline(MediaBlocksPipeline)MediaBlock.ContextMediaBlock.NameMediaBlock.IsBuiltMediaBlock.OwnerMediaBlock.TypeMediaBlock.IDMediaBlock.InputMediaBlock.InputsMediaBlock.OutputMediaBlock.OutputsMediaBlock.HasInputsMediaBlock.HasOutputsMediaBlock.Build()MediaBlock.CreateElements()MediaBlock.AddElementsToPipeline()MediaBlock.RemoveElementsFromPipeline()MediaBlock.DeepCopy(string)MediaBlock.Reset()MediaBlock.ToYAMLBlock()MediaBlock.ClearPads()MediaBlock.Dispose(bool)MediaBlock.Dispose()
Remarks
Taps RGBA frames from the video stream via an internal sample grabber, runs a YOLOv8/v11 ONNX model on each processed frame, optionally draws the detection boxes and labels directly into the frame buffer, and raises VisioForge.Core.MediaBlocks.AI.YOLOObjectDetectorBlock.OnObjectsDetected for every frame that yields at least one detection. Inference runs synchronously on the pipeline's streaming thread, so a slow model throttles the pipeline; use VisioForge.Core.Types.X.AI.OnnxInferenceSettings.FramesToSkip to reduce the inference rate.
Constructors
YOLOObjectDetectorBlock(YoloDetectorSettings)
Initializes a new instance of the VisioForge.Core.MediaBlocks.AI.YOLOObjectDetectorBlock class.
public YOLOObjectDetectorBlock(YoloDetectorSettings settings)Parameters
settingsYoloDetectorSettings-
The detector settings. Must specify a valid model path.
Exceptions
- ArgumentNullException
-
Thrown when
settingsisnull.
Properties
ActiveProvider
Gets the execution provider that the detector's inference session actually engaged. Valid after the block has been built; reports VisioForge.Core.Types.X.AI.OnnxExecutionProvider.CPU otherwise.
public OnnxExecutionProvider ActiveProvider { get; }Property Value
- OnnxExecutionProvider
Input
Gets the primary input pad.
public override MediaBlockPad Input { get; }Property Value
- MediaBlockPad
Inputs
Gets the array of all input pads.
public override MediaBlockPad[] Inputs { get; }Property Value
- MediaBlockPad[]
Output
Gets the primary output pad.
public override MediaBlockPad Output { get; }Property Value
- MediaBlockPad
Outputs
Gets the array of all output pads.
public override MediaBlockPad[] Outputs { get; }Property Value
- MediaBlockPad[]
Type
Gets the type of the media block.
public override MediaBlockType Type { get; }Property Value
- MediaBlockType
Methods
Build()
Constructs the internal GStreamer elements and pads for this block.
public override bool Build()Returns
- bool
-
trueif successful,falseotherwise.
CleanUp()
Cleans up internal resources, specifically the GStreamer element.
public void CleanUp()Dispose(bool)
Releases unmanaged and - optionally - managed resources.
protected override void Dispose(bool disposing)Parameters
disposingbool-
trueto release both managed and unmanaged resources;falseto release only unmanaged resources.
GetCore()
Gets the core GStreamer element wrapped by this block.
public BaseElement GetCore()Returns
- BaseElement
-
The VisioForge.Core.GStreamer.Base.BaseElement wrapper, or
nullif not built yet.
GetElement()
Gets the GStreamer element instance.
public Element GetElement()Returns
- Element
-
The Gst.Element, or
nullif not built yet.
IMediaBlockInternals.SetContext(MediaBlocksPipeline)
Sets the pipeline context for this block.
void IMediaBlockInternals.SetContext(MediaBlocksPipeline pipeline)Parameters
pipelineMediaBlocksPipeline-
The pipeline.
OnObjectsDetected
Event raised when one or more objects are detected in a video frame.
public event EventHandler<ObjectsDetectedEventArgs> OnObjectsDetectedEvent Type
- EventHandler<ObjectsDetectedEventArgs>
See Also
-
MediaBlockIMediaBlockInternals