Skip to content
imaged

Foreground segmentation

DeepLabV3+ MobileNetV2 (VOC)

A 23 MB segmentation model for the 21 Pascal VOC classes.

Apache-2.0
Explore model

About this model

DeepLabV3+ paired with a MobileNetV2 backbone. Trained on Pascal VOC for 21 classes: background plus 20 foreground categories like person, car, cat, and dog. The export bakes argmax into the graph and returns a uint8 class-index map at 520x520.

The build is the Qualcomm AI Hub float export, around 23 MB. On M1 Max with CoreML, warm runs land at 37 ms on a 1280x720 image.

What you can build

  • Cut out a person from a photo with a small, fast model.
  • Tag pets and vehicles in user uploads at 27 fps on Apple Silicon.
  • Build a quick foreground mask for downstream effects.
  • Pre-segment a frame before applying ByteTrack on detected people.

Variants & downloads

Choose the build for your app

Model files are being prepared.

Explore the model’s examples, source links, and integration notes while download variants are added.

Example inference

Input
A multi-person restaurant scene used as the segmentation fixture.
Output
The same scene with foreground people highlighted by class color.

Performance

Results depend on the device, runtime, and test conditions. Each measurement keeps its own context.

M1 Max, macOS 15, ONNX Runtime 1.17

See original catalog hardware notes · CPU

679.5 ms

Warm inference

Catalog reference · variant unspecifiedCold start (ms): 689.04

Reference result from the existing catalog; conversion variant and measurement date were not recorded.

M1 Max, macOS 15, ONNX Runtime 1.17

See original catalog hardware notes · CoreML

36.6 ms

Warm inference

Catalog reference · variant unspecifiedCold start (ms): 97.7

Reference result from the existing catalog; conversion variant and measurement date were not recorded.

RTX 2060, Ubuntu 24.04, ONNX Runtime 1.24.3

See original catalog hardware notes · CUDA

38.2 ms

Warm inference

Catalog reference · variant unspecified

Reference result from the existing catalog; conversion variant and measurement date were not recorded.

Integration examples

Vision SDK integration

cpp

#include "imaged/sdk.hpp"
#include "imaged/families/semantic_segmentation/semantic_segmentation_family.hpp"

imaged::SDK::AI ai;
auto& config = ai.getOptions();
config.set("semantic_segmentation.model", "weights/deeplabv3_plus_mobilenet.onnx");
config.set("semantic_segmentation.normalize", "scale255");

imaged::SDK::SemanticSegmentationFamily family;
family.load(config);

imaged::SDK::Image image;
image.load("scene.png");

auto result = std::get<imaged::SDK::SegmentationResult>(family.run({&image}));
// result.mask is W*H bytes, each pixel a VOC class index 0..20