Background Removal for Images

API Interface of the iOS Framework

Instantiate Background Removal model with preferred confidence threshold value (might be changed in runtime).

Lower threshold values keep more pixels that possibly correspond to the background. Higher threshold values remove more pixels that possibly correspond to the foreground. The effective range for this parameter is [0., 1.].

private var backgroundRemover = BackgroundRemover(threshold: 0.5)

Load the model with backgroundRemover.loadModel method

Example:

backgroundRemover.loadModel { error in
    self.dismissPresentedViewController(animated: true) {
        if error != nil {
            showError(on: self, message: "Failed to initialize BG Removal model: \(error!.localizedDescription)")
        }
    }
}

Schedule the task with backgroundRemover.removeBackground method when the model is loaded

Example:

let result = self.backgroundRemover.removeBackground(fromImage: image) { mask, error in
    if error != nil {
        showAlert(on: self, message: "BG Model runtime failure: \(error!.localizedDescription)")
        return
    }
    DispatchQueue.main.async {
        (self.loadingViewController as! LoadingViewController).update(text: "Applying Mask...")
        DispatchQueue.global().async {
            self.applyMask(mask!, to: image)
        }

    }
}

The mask is returned as a UIImage object with non-zero pixels corresponding to the foreground with the defined confidence threshold.

Last updated