heal
horizon

UNet (MobileNetV1)

UNet encoder-decoder structure: MobileNetV1 extracts multi-scale features (stride 4/8/16/32/64); DwUnet upsamples level-by-level with depthwise separable convolutions and fuses feature maps; SegHead outputs segmentation logits at 5 scales; SoftmaxFocalLoss provides joint supervision; at deployment, SegHead exports only the highest-resolution (stride 4) scale argmax result.


Deployment Metrics

Model Parameters

Model Model Input Backbone Neck Model Output
UNet Single image 1x3x1024x2048 MobileNetV1 DwUnet Segmentation mask (B,19,H,W)

Accuracy Metrics

March Metric float calibration qat hbm
J6M MeanIOU 0.6774 0.646 0.6707 0.6721

Data measured with march = March.NASH_M (J6M) configuration.

HEAL version: heal 0.0.2 / hbdk4-compiler 4.11.11 / horizon_plugin_pytorch 3.3.10.

Performance Metrics

Performance test methodology: FPS is measured with single-core eight-thread; Latency is measured with single-core single-thread; Memory is peak DDR usage.

March latency (ms) fps Memory Usage
J6M 1.13 1115.63 15.80
J6P 0.84 6147.35 15.80
J6B 3.61 327.17 13.00

Model Overview

Core Design

UNet encoder-decoder structure: MobileNetV1 extracts multi-scale features (stride 4/8/16/32/64); DwUnet upsamples level-by-level with depthwise separable convolutions and fuses feature maps; SegHead outputs segmentation logits at 5 scales; SoftmaxFocalLoss provides joint supervision; at deployment, SegHead exports only the highest-resolution (stride 4) scale argmax result.

  • Task type: Semantic segmentation (Semantic Segmentation).
  • backbone: MobileNetV1 (alpha=0.25, include_top=False removes classification head, lightweight depthwise separable convolution backbone).
  • neck: DwUnet (base_channels=8, output_scales=(4,8,16,32,64), depthwise separable convolution U-Net decoder).
  • Segmentation head: SegHead (num_classes=19, outputs at stride 4/8/16/32/64 (5 scales); training outputs logits, deployment outputs argmax).
  • Loss function: SoftmaxFocalLoss (scale-weighted, mitigates class imbalance).
  • Normalization: BGR→YUV444 then Normalize(mean=128, std=128), then split into multi-scale pyramid input via scale_factors.
  • Model input: 1×3×1024×2048 (RGB, native resolution).
  • Model output: Per-pixel 19-class semantic segmentation map (B,19,H,W).

Official Repo and Paper

Official repo: https://github.com/pytorch/vision (MobileNetV1 PyTorch implementation) Paper: https://arxiv.org/abs/1704.04861

Note: UNet paper at https://arxiv.org/abs/1505.04597.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Papers for OpenExploer/unet_mobilenetv1