Skip to content

Extract Appearance Node

AI/ML/Tracking

Crops every detection from the frame and runs a re-identification model on the crops in batches. The built-in models are Intel OpenVINO person re-identification models (Apache-2.0): the chosen one is downloaded into Cache Dir on first use, checked against its SHA-256 and read from there afterwards. With Model set to custom, connect your own session from Load ONNX and set Normalization to match its export: imagenet for torchreid/OSNet exports, raw for FastReID onnx_export.py exports, which normalize inside the model. Each detection becomes an observation with an L2-normalized appearance embedding, keeping its box, camera, session, tracker id, track id and state (track-only fields such as hits and velocity are not carried). Lost tracks from Track Detections (Include Lost) carry a predicted box, so they are passed through with their existing embedding instead of being cropped. Feed the result into Track Detections for appearance-aware tracking or into Associate Entities to recognize the same object across cameras. Boxes that are not finite or smaller than Min Box Size are left out.

tracking_extract_appearanceonnx
Inputs15
Outputs3
Security exposure8/10
Packageonnx

Ratings

Scores range from 0 to 10. Higher values mean more impact, exposure, or operational weight.

SecurityAttack surface and exposure impact.
8/10High
PrivacyPotential sensitivity of processed data.
5/10Medium
PerformanceRuntime or resource pressure.
6/10Medium
GovernancePolicy, audit, or compliance impact.
5/10Medium
ReliabilityOperational stability considerations.
8/10High
CostExternal or compute cost impact.
9/10High

Input Pins

15

Input

Execution
exec_in

Initiate Execution

Model

String
model

person-openvino-0270 (6 MB, default) or person-openvino-0265 (9.6 MB): Intel OpenVINO person re-identification models, Apache-2.0, downloaded into Cache Dir on first use. custom uses the Custom Model pin.

Default person-openvino-0270
person-openvino-0270person-openvino-0265custom

Cache Dir

Struct
cache_dir

Folder the built-in model is downloaded to when missing and loaded from when present. Not used with a custom model.

FlowPathFlowPath3 fields
pathstringrequired
store_refstringrequired
cache_store_refstring | null
Schema enforced

Custom Model

Struct
custom_model

Session from Load ONNX, used when Model is custom. Takes an RGB float tensor [N,3,H,W] or [N,H,W,3] and returns one embedding per crop, shaped [N,D] or [N,D,1,1].

NodeOnnxSessionNodeOnnxSession1 fields
session_refstringrequired

Cache ID for Session

Schema enforced

Image

Struct
image_in

Frame the detections were found in

NodeImageNodeImage1 fields
image_refstringrequired
Schema enforced

Detections

Struct Array
detections

Boxes in image pixel coordinates, from Object Detection or tracks from Track Detections

BoundingBoxBoundingBox7 fields
x1number:floatrequired
format float
y1number:floatrequired
format float
x2number:floatrequired
format float
y2number:floatrequired
format float
scorenumber:floatrequired
format float
class_idxinteger:int32required
format int32
class_namestring | null
Default []

Camera ID

String
camera_id

Camera stamped on every observation; empty keeps the incoming value

Session ID

String
session_id

Camera session stamped on every observation; empty keeps the incoming value

Timestamp (ms)

Integer
timestamp_ms

Frame capture time in Unix milliseconds; 0 keeps the incoming value, or uses the current time when there is none

Default 0

Normalization

String
normalization

Pixel scaling a custom model expects (the built-in models normalize their input themselves, so any value works for them): imagenet ((x/255 - mean) / std) for torchreid/OSNet exports, raw (0–255 unchanged) for FastReID onnx_export.py exports that normalize inside the model, zero_one (x/255) or minus_one_one (x/127.5 - 1)

Default imagenet
imagenetrawzero_oneminus_one_one

Input Width

Integer
input_width

Crop width in pixels, used only when the model's input width is dynamic

Default 128

Input Height

Integer
input_height

Crop height in pixels, used only when the model's input height is dynamic

Default 256

Padding

Float
padding

Fraction of the box width and height added on each side before cropping

Default 0
Range 0 to 1

Min Box Size

Float
min_box_size

Boxes narrower or shorter than this many pixels after padding and clipping to the image are skipped

Default 4

Batch Size

Integer
batch_size

Crops per inference call, used only when the model's batch dimension is dynamic

Default 16

Output Pins

3

Output

Execution
exec_out

Done with the Execution

Observations

Struct Array
observations

One observation per cropped detection with its new embedding, plus every lost track with its existing one; each carries its index in Detections

AppearanceObservationAppearanceObservation15 fields
x1number:floatrequired
format float
y1number:floatrequired
format float
x2number:floatrequired
format float
y2number:floatrequired
format float
scorenumber:floatrequired
format float
class_idxinteger:int32required
format int32
class_namestring | null
embeddingArray<number:float>

L2-normalized appearance embedding; empty when none was extracted

default []
itemsnumber:floatarray item
format float
camera_idstring

Camera the observation came from

default ""
session_idstring

Stream session of that camera

default ""
tracker_idstring

Tracker instance that issued `track_id`; track ids are only unique per tracker instance

default ""
track_idinteger | null

Local track id from Track Detections, if the observation belongs to a track

format uint64default nullmin 0
stateTrackState

State of the source track; plain detections are `tracked`

default "tracked"
variant 1constvariant

Matched to a detection in the latest frame

const "tracked"
variant 2constvariant

Not matched recently; kept alive for re-identification until it expires

const "lost"
timestamp_msinteger:int64

Frame capture time in Unix milliseconds

format int64default 0
detection_indexinteger | null

Index of the source element in the producing node's input array

format uint32default nullmin 0
Default []

Dimensions

Integer
dimensions

Embedding length of the model output; 0 when no detection was cropped

Node Info

Internal name
tracking_extract_appearance
Category
AI/ML/Tracking
Version
1