FaceOcc

Modernized canonical FaceOcc model for visible-face segmentation.

This model is based on FaceOcc, introduced by Xiangnan Yin and Liming Chen, and the accompanying upstream FaceExtraction implementation. The original FaceOcc work should be cited when using the underlying method or dataset.

This release provides the canonical model weights from the modernized FaceOcc implementation available at:

https://github.com/mertakinstd/FaceOcc

FaceOcc result

Model

Property Value
Architecture U-Net
Encoder ResNet18
Encoder pretraining ImageNet
Input RGB, 256 × 256
Input range [0, 1] before normalization
Normalization ImageNet mean/std
Output Single-channel logits
Canonical probability threshold 0.5
Training objective Global OHEM-BCE
Precision IEEE FP32
Checkpoint format SafeTensors

Input normalization

Images are normalized immediately before the model forward pass using:

mean = [0.485, 0.456, 0.406]
std  = [0.229, 0.224, 0.225]

Masks are not normalized.

The released checkpoint contains the complete trained model weights. ImageNet weights are therefore not required separately when loading the checkpoint.

Reference result

The canonical checkpoint was selected by maximum COFW validation face IoU at a probability threshold of 0.5.

Metric Value
COFW face IoU @ p=0.5 0.936523
Best epoch 24 / 30
Dice 0.966749
Precision 0.948656
Recall 0.986324
Boundary IoU 0.682287
IoU p10 0.893731
IoU median 0.945921
IoU p90 0.971353

COFW was used for validation and checkpoint selection in this training protocol and should not be interpreted as an untouched external test set.

The canonical reference run was trained on a single NVIDIA GeForce RTX 3060 12 GB GPU.

Loading the checkpoint

The model is implemented with segmentation_models_pytorch.

A corresponding model can be instantiated and the SafeTensors checkpoint loaded as follows:

import segmentation_models_pytorch as smp
from safetensors.torch import load_file

model = smp.Unet(
    encoder_name="resnet18",
    encoder_weights=None,
    in_channels=3,
    classes=1,
)

state_dict = load_file("model.safetensors")
model.load_state_dict(state_dict, strict=True)
model.eval()

encoder_weights=None is intentional when loading the released checkpoint because all trained encoder and decoder parameters are already contained in model.safetensors.

For the complete preprocessing and inference implementation, use the source repository linked below.

Intended use

FaceOcc predicts a binary visible-face mask:

  • 1: visible facial surface
  • 0: background or occluding region

The model is intended for visible-face segmentation and downstream applications that require a facial region of interest.

It is not a face-recognition, identity-verification, or landmark model.

Limitations

Performance can vary with image alignment, capture conditions, occlusion type, image quality, and annotation policy.

The canonical 0.5 probability threshold is retained for reproducible comparison with the released training protocol. Application-specific threshold tuning should be validated independently.

Files

  • model.safetensors — canonical FaceOcc v1.0.0 weights
  • config.json — model and inference contract
  • training_config.json — canonical training provenance
  • README.md — model card
  • LICENSE — software license

Links

Citation

If you use FaceOcc or the underlying face-extraction method, please cite the original FaceOcc paper:

@article{yin2022faceocc,
  title   = {FaceOcc: A Diverse, High-quality Face Occlusion Dataset for Human Face Extraction},
  author  = {Yin, Xiangnan and Chen, Liming},
  journal = {arXiv preprint arXiv:2201.08425},
  year    = {2022}
}

If this modernized implementation or the released model weights contribute to published work, please also consider citing the archived software release:

Mert Akın. FaceOcc: Modernized Implementation, v1.0.0.
https://doi.org/10.5281/zenodo.22261117

License

Distributed under the MIT License. See LICENSE.

Attribution and provenance information for the original FaceOcc work and subsequent modernization contributions are provided in NOTICE.md.

Third-party datasets, pretrained resources, and external artifacts remain subject to their respective licenses and terms.

Downloads last month
21
Safetensors
Model size
14.3M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Paper for mertakin/FaceOcc