Skip to content

@camera.ui/sdk / sensor / ClassifierDetectorSensor

Abstract Class: ClassifierDetectorSensor<TStorage>

Defined in: sensor/classifier.ts:165

Classifier detector that receives video frames from the backend pipeline. Extend this class and implement detectClassifications to run image classification models against trigger regions.

Extends

Type Parameters

TStorage

TStorage extends object = Record<string, any>

Constructors

Constructor

new ClassifierDetectorSensor<TStorage>(name?, options?): ClassifierDetectorSensor<TStorage>

Defined in: sensor/classifier.ts:65

Parameters

name?

string = 'Classifier'

options?

SensorOptions

Returns

ClassifierDetectorSensor<TStorage>

Inherited from

ClassifierSensor.constructor

Properties

_requiresFrames

_requiresFrames: boolean = true

Defined in: sensor/classifier.ts:166

Overrides

ClassifierSensor._requiresFrames


category

readonly category: Sensor = SensorCategory.Sensor

Defined in: sensor/classifier.ts:61

Inherited from

ClassifierSensor.category


name

readonly name: string

Defined in: sensor/base.ts:223

Inherited from

ClassifierSensor.name


onAssignmentChanged

readonly onAssignmentChanged: Observable<readonly string[]>

Defined in: sensor/base.ts:250

Inherited from

ClassifierSensor.onAssignmentChanged


onCapabilitiesChanged

readonly onCapabilitiesChanged: Observable<string[]>

Defined in: sensor/base.ts:242

Inherited from

ClassifierSensor.onCapabilitiesChanged


onConnectedChanged

readonly onConnectedChanged: Observable<boolean>

Defined in: sensor/base.ts:252

Inherited from

ClassifierSensor.onConnectedChanged


onPropertyChanged

readonly onPropertyChanged: Observable<PropertyChangeOf<ClassifierSensorProperties>>

Defined in: sensor/base.ts:240

Inherited from

ClassifierSensor.onPropertyChanged


type

readonly type: Classifier = SensorType.Classifier

Defined in: sensor/classifier.ts:60

Inherited from

ClassifierSensor.type

Accessors

assignedCameraIds

Get Signature

get assignedCameraIds(): readonly string[]

Defined in: sensor/base.ts:293

Returns

readonly string[]

Inherited from

ClassifierSensor.assignedCameraIds


assignmentLocked

Get Signature

get assignmentLocked(): boolean

Defined in: sensor/base.ts:297

Returns

boolean

Inherited from

ClassifierSensor.assignmentLocked


capabilities

Get Signature

get capabilities(): TCapability[]

Defined in: sensor/base.ts:316

Returns

TCapability[]

Set Signature

set capabilities(value): void

Defined in: sensor/base.ts:321

Set capabilities, deduplicated, and notify backend plus local listeners.

Parameters
value

TCapability[]

Returns

void

Inherited from

ClassifierSensor.capabilities


connected

Get Signature

get connected(): boolean

Defined in: sensor/base.ts:289

Returns

boolean

Inherited from

ClassifierSensor.connected


detected

Get Signature

get detected(): boolean

Defined in: sensor/classifier.ts:75

Returns

boolean

Inherited from

ClassifierSensor.detected


detections

Get Signature

get detections(): ClassifierDetection[]

Defined in: sensor/classifier.ts:79

Returns

ClassifierDetection[]

Inherited from

ClassifierSensor.detections


displayName

Get Signature

get displayName(): string

Defined in: sensor/base.ts:281

Returns

string

Inherited from

ClassifierSensor.displayName


id

Get Signature

get id(): string

Defined in: sensor/base.ts:269

Returns

string

Inherited from

ClassifierSensor.id


isAssigned

Get Signature

get isAssigned(): boolean

Defined in: sensor/base.ts:285

Returns

boolean

Inherited from

ClassifierSensor.isAssigned


labels

Get Signature

get labels(): string[]

Defined in: sensor/classifier.ts:83

Returns

string[]

Inherited from

ClassifierSensor.labels


modelSpec

Get Signature

get abstract modelSpec(): ModelSpec

Defined in: sensor/classifier.ts:168

Returns

ModelSpec


nativeId

Get Signature

get nativeId(): string | undefined

Defined in: sensor/base.ts:273

Returns

string | undefined

Inherited from

ClassifierSensor.nativeId


origin

Get Signature

get origin(): string | undefined

Defined in: sensor/base.ts:277

Returns

string | undefined

Inherited from

ClassifierSensor.origin


pluginId

Get Signature

get pluginId(): string | undefined

Defined in: sensor/base.ts:301

Returns

string | undefined

Inherited from

ClassifierSensor.pluginId


props

Get Signature

get protected props(): Readonly<TProperties>

Defined in: sensor/base.ts:546

Returns

Readonly<TProperties>

Inherited from

ClassifierSensor.props


storage

Get Signature

get storage(): DeviceStorage<TStorage>

Defined in: sensor/base.ts:305

Returns

DeviceStorage<TStorage>

Inherited from

ClassifierSensor.storage


storageSchema

Get Signature

get storageSchema(): JsonSchema[]

Defined in: sensor/base.ts:312

Returns

JsonSchema[]

Inherited from

ClassifierSensor.storageSchema

Methods

clearDetections()

clearDetections(): void

Defined in: sensor/classifier.ts:140

Explicitly clear classifier state (detected = false, detections = [], labels = []).

Returns

void

Example

ts
sensor.clearDetections();

Inherited from

ClassifierSensor.clearDetections


detectClassifications()

abstract detectClassifications(frames): Promise<ClassifierResult[]>

Defined in: sensor/classifier.ts:176

Classify frames in batch. Each frame is pre-scaled to modelSpec.input: normally a trigger region cropped by the upstream object detector, but the whole scene when no decoded frame is available. Must return exactly one ClassifierResult per input frame, in the same order.

Parameters

frames

VideoFrameData[]

Returns

Promise<ClassifierResult[]>


getValue()

Call Signature

getValue<K>(property): ClassifierSensorProperties[K] | undefined

Defined in: sensor/base.ts:345

Get the current value of a sensor property. Calling the generic overload with a property enum value gives a properly typed result.

Type Parameters
K

K extends keyof ClassifierSensorProperties

Parameters
property

K

Returns

ClassifierSensorProperties[K] | undefined

Inherited from

ClassifierSensor.getValue

Call Signature

getValue(property): unknown

Defined in: sensor/base.ts:346

Get the current value of a sensor property. Calling the generic overload with a property enum value gives a properly typed result.

Parameters
property

string

Returns

unknown

Inherited from

ClassifierSensor.getValue


getValues()

getValues(): Readonly<TProperties>

Defined in: sensor/base.ts:362

Get a read-only snapshot of all property values.

Returns

Readonly<TProperties>

Shallow copy of every property currently held by the sensor.

Example

ts
const snapshot = sensor.getValues();
console.log(snapshot);

Inherited from

ClassifierSensor.getValues


hasCapability()

hasCapability(capability): boolean

Defined in: sensor/base.ts:388

Check whether the sensor advertises a capability.

Parameters

capability

string

Capability flag to look for.

Returns

boolean

True if the sensor currently advertises it.

Example

ts
const dimmable = sensor.hasCapability('brightness');

Inherited from

ClassifierSensor.hasCapability


onStart()

protected onStart(): void | Promise<void>

Defined in: sensor/base.ts:651

Lifecycle hook, called once the sensor is registered and live (storage and RPC are wired up). Override it to start work whose lifetime matches the sensor's: polling loops, event subscriptions, timers.

Errors thrown here are swallowed, not logged. Handle failures inside the override. Paired 1:1 with onStop, which runs on removal, plugin shutdown or cleanup.

Returns

void | Promise<void>

Example

ts
protected override onStart(): void {
  this._timer = setInterval(() => this.poll(), 5_000);
}

Inherited from

ClassifierSensor.onStart


onStop()

protected onStop(): void | Promise<void>

Defined in: sensor/base.ts:664

Counterpart of onStart: tear down whatever it started, such as timers, subscriptions and external resources.

Returns

void | Promise<void>

Example

ts
protected override onStop(): void {
  if (this._timer) clearInterval(this._timer);
}

Inherited from

ClassifierSensor.onStop


reportDetections()

reportDetections(detected, detections?): void

Defined in: sensor/classifier.ts:114

Report classification results. Auto-derives detected and labels from the list.

  • reportDetections(true): generic classification trigger. The SDK synthesizes a single full-frame detection with empty attribute and sub-attribute.
  • reportDetections(true, [...]): explicit classifier detections.
  • reportDetections(false): clear.

Parameters

detected

boolean

Whether any classification result is active.

detections?

ClassifierDetection[]

Optional explicit classifier detections to publish.

Returns

void

Example

ts
import type { ClassifierDetection } from '@camera.ui/sdk';
sensor.reportDetections(true, [
  {
    label: 'animal',
    confidence: 0.88,
    box: { x: 0.1, y: 0.2, width: 0.3, height: 0.4 },
    attribute: 'bird',
    subAttribute: 'woodpecker',
  } satisfies ClassifierDetection,
]);
sensor.reportDetections(false);

Inherited from

ClassifierSensor.reportDetections


setDisplayName()

setDisplayName(value): void

Defined in: sensor/base.ts:337

Set the display name (the only mutable identifier on a sensor).

Parameters

value

string

Human-readable label shown in the UI.

Returns

void

Example

ts
sensor.setDisplayName('Front Door Motion');

Inherited from

ClassifierSensor.setDisplayName


updateModelSpec()

updateModelSpec(): void

Defined in: sensor/base.ts:565

Re-announces the model spec, e.g. once the models finished loading.

The spec a detector reports at registration is what it knows at that moment: models that load in the background are missing from it. Call this after loading, the server replaces its copy.

Returns

void

Example

typescript
async onStart(): Promise<void> {
  await this.loadModel();
  this.updateModelSpec();
}

Inherited from

ClassifierSensor.updateModelSpec