--- library_name: transformers pipeline_tag: image-segmentation tags: - image-segmentation - mask-generation - transformers.js - vision - background-removal - portrait-matting license: apache-2.0 language: - en --- # U-2-Net ## Model Description U-2-Net is a deep learning model designed for image segmentation tasks, particularly for generating detailed masks. It leverages a unique architecture with nested U-blocks that allow the model to capture both high-level semantic features and fine-grained details. U-2-Net has demonstrated high performance in a variety of segmentation tasks, making it a versatile choice for applications such as background removal, object detection, and medical image analysis. ## Usage Perform mask generation with `BritishWerewolf/U-2-Net`. ### Example ```javascript import { AutoModel, AutoProcessor, RawImage } from '@huggingface/transformers'; const img_url = 'https://huggingface.co/ybelkada/segment-anything/resolve/main/assets/car.png'; const image = await RawImage.read(img_url); const processor = await AutoProcessor.from_pretrained('BritishWerewolf/U-2-Net'); const processed = await processor(image); const model = await AutoModel.from_pretrained('BritishWerewolf/U-2-Net', { dtype: 'fp32', }); const output = await model({ input: processed.pixel_values }); // { // mask: Tensor { // dims: [ 1, 320, 320 ], // type: 'uint8', // data: Uint8Array(102400) [ ... ], // size: 102400 // } // } ``` ## Model Architecture The U-2-Net model is built upon a nested U-structure, where each U-block consists of multiple convolutional layers, pooling, and up-sampling operations. The architecture features a combination of down-sampling and up-sampling paths, enabling the model to learn features at different scales. This design allows the U-2-Net to produce accurate and high-resolution segmentation maps. The key components of the architecture include Residual U-blocks (RSU) that enhance feature representation and ensure efficient information flow through the network. ### Inference To use the model for inference, you can follow the example provided above. The `AutoProcessor` and `AutoModel` classes from the `transformers` library make it easy to load the model and processor. ## Credits * [`rembg`](https://github.com/danielgatis/rembg) for the ONNX model. * The authors of the original U-2-Net model can be credited at https://github.com/xuebinqin/U-2-Net. ## Licence This model is licensed under the Apache License 2.0 to match the original U-2-Net model.