MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
VisionIntent.hpp
Go to the documentation of this file.
1#pragma once
2
3/**
4 * @file VisionIntent.hpp
5 * @brief Declarative "what to do" vocabulary, one layer above VisionOp.
6 *
7 * VisionOp/VisionStep/VisionSequence (VisionOp.hpp) are the mechanism layer:
8 * a named algorithm and its parameters. VisionIntent is the layer above it:
9 * what the caller wants, independent of which VisionOps achieve it. A
10 * caller may want more than one thing from the same frame at once (track
11 * an object while also finding other elements), so this is a composable
12 * flag enum, not a single-value one.
13 *
14 * This file is a pure value type with no MayaFlux dependency beyond the
15 * project-wide MF_BITMASK_OPERATORS macro (cmake/pch.h, force-included),
16 * matching VisionOp.hpp's own design so any consumer of a VisionSequence
17 * can eventually consume a resolved VisionIntent without knowing which
18 * specific VisionOps were chosen.
19 */
20
22
23/**
24 * @enum VisionIntent
25 * @brief Composable flags naming what a vision analysis should produce.
26 *
27 * Backed by today's VisionOp catalog: FindElements, TrackObjects,
28 * DetectFeatures, DetectEdges, EstimateMotion, MeasureAppearance.
29 *
30 * Named but not yet backed by any VisionOp; resolving one of these is
31 * expected to fail clearly until a supporting op exists, the same way
32 * VisionGpuExecutor::config() returns INVALID_SHADER for an op with no
33 * GPU implementation rather than omitting the op: Classify, EstimateDepth,
34 * DetectAnomaly, Register.
35 */
36enum class VisionIntent : uint32_t {
37 NONE = 0U,
38
39 /// Localize discrete things in the frame (thresholding/morphology into
40 /// ConnectedComponents/FindContours).
41 FindElements = 1U << 0U,
42
43 /// Maintain identity of specific points across frames (ExtractPeaks
44 /// into TrackKeypoints).
45 TrackObjects = 1U << 1U,
46
47 /// Distinctive points with no persistence claim (HarrisResponse into
48 /// ExtractPeaks alone).
49 DetectFeatures = 1U << 2U,
50
51 /// Boundary/gradient detection (Sobel, Scharr, Canny).
52 DetectEdges = 1U << 3U,
53
54 /// Dense, whole-field motion with no identity claim (OpticalFlowDense).
55 /// Kept separate from TrackObjects: a global flow field and a
56 /// persistently tracked point are different claims.
57 EstimateMotion = 1U << 4U,
58
59 /// Photometric/statistical characterization of the frame itself,
60 /// independent of anything found in it.
61 MeasureAppearance = 1U << 5U,
62
63 /// Assign a label to a detected region or the whole frame. No backing
64 /// VisionOp exists yet; needs a learned-model op.
65 Classify = 1U << 6U,
66
67 /// Per-pixel depth or disparity. No backing VisionOp exists yet; a
68 /// different output shape entirely from every flag above it.
69 EstimateDepth = 1U << 7U,
70
71 /// Flag departure from a learned or authored baseline. No backing
72 /// VisionOp exists yet; needs a reference/baseline concept VisionOp
73 /// has no notion of today.
74 DetectAnomaly = 1U << 8U,
75
76 /// Align two or more frames into a common reference. No backing
77 /// VisionOp exists yet; the only flag here whose input is plural.
78 Register = 1U << 9U,
79};
80
81MF_BITMASK_OPERATORS(VisionIntent)
82
83} // namespace MayaFlux::Kinesis::Vision
VisionIntent
Composable flags naming what a vision analysis should produce.
@ Register
Align two or more frames into a common reference.
@ DetectFeatures
Distinctive points with no persistence claim (HarrisResponse into ExtractPeaks alone).
@ EstimateMotion
Dense, whole-field motion with no identity claim (OpticalFlowDense).
@ DetectEdges
Boundary/gradient detection (Sobel, Scharr, Canny).
@ MeasureAppearance
Photometric/statistical characterization of the frame itself, independent of anything found in it.
@ TrackObjects
Maintain identity of specific points across frames (ExtractPeaks into TrackKeypoints).
@ EstimateDepth
Per-pixel depth or disparity.
@ FindElements
Localize discrete things in the frame (thresholding/morphology into ConnectedComponents/FindContours)...
@ DetectAnomaly
Flag departure from a learned or authored baseline.
@ Classify
Assign a label to a detected region or the whole frame.