Skip to content

EdgeFirst Fusion v1.9.0

Choose a tag to compare

@github-actions github-actions released this 16 Sep 04:06
· 12 commits to main since this release
12fa19a

EdgeFirst Fusion v1.9.0

Installation

Download Binaries

Platform Binary
Linux x86_64 edgefirst-fusion-linux-x86_64
Linux ARM64 edgefirst-fusion-linux-aarch64
# Download and install (ARM64 example)
wget https://github.com/EdgeFirstAI/fusion/releases/download/v1.9.0/edgefirst-fusion-linux-aarch64
chmod +x edgefirst-fusion-linux-aarch64
sudo mv edgefirst-fusion-linux-aarch64 /usr/local/bin/edgefirst-fusion

What's Changed

TFLite-only fusion models, aligned fusion.default quoting and stock radar
defaults, and NEON math fixes for radar angle binning (EDGEAI-733, EDGEAI-1234,
EDGEAI-1457).

Changed

  • fusion.default assignments are now KEY="value" with no spaces around =,
    matching other EdgeFirst services. systemd EnvironmentFile= does not strip
    those spaces, so the previous KEY = "value" form may not have been applied
    (EDGEAI-733, EDGEAI-1234)
  • Stock radar late-fusion defaults: RADAR_PCD_TOPIC=radar/clusters,
    BBOX3D_SRC=radar. LiDAR remains opt-in. BACKGROUND_INDEX is documented
    in fusion.default (EDGEAI-733, EDGEAI-1604)
  • CameraFrame fourcc is mapped to G2D the same way the camera service maps HAL
    format strings (YUYV → G2D_YUYV). Fusion no longer routes fourcc through
    G2DFormat::try_from(FourCharCode), which mis-read YUYV as VYUY
    (EDGEAI-1234)

Fixed

  • Fusion exits with an error (instead of exit 0) when no model and no PCD
    topic is configured, so the idle case is visible in the journal. The
    shipped unit still uses Restart=always; add RestartPreventExitStatus=1
    in the platform unit (meta-maivin) to stop retries. The fusion/boxes3d
    publisher is declared only when BBOX3D_SRC names an enabled PCD topic
    (EDGEAI-1234)
  • Fusion-model input tensors are identified by name. A camera-only model no
    longer treats the RGB tensor as radar and panics on copy_from_slice
    (EDGEAI-1234)
  • NEON sincos_f32 returned an inverted cosine for |x| mod 2π in
    [3π/4, 7π/4) on aarch64. The Cephes quadrant sign mask selected bit 1 of
    ~(emm2 - 2) instead of bit 2, flipping the sign over half the circle while
    leaving sine correct. Cosine is now accurate to ~1 ULP in every quadrant.
    sincos_f32 has no callers outside its own tests, so fusion output was
    unaffected (EDGEAI-1457)
  • NEON atan2_f32 returned NaN at the origin, where the min/max reduction
    divides 0/0, and treated x = -0.0 as positive so atan2(±0.0, -0.0) did
    not return ±π. Both now match f32::atan2. This path is used for radar
    angle binning, so origin-valued points no longer poison their lane
    (EDGEAI-1457)

Removed

  • DeepView RT (.rtm) fusion-model support and the deepviewrt Cargo
    feature. Fusion models are TFLite-only (EDGEAI-733, EDGEAI-1234)

Full Documentation: https://github.com/EdgeFirstAI/fusion#readme