Skip to content

Jessseee/semantic-object-removal

Repository files navigation

Semantic Object Removal

Using semantic segmentation and in-painting to remove objects based on labels. Inspired by Inpaint Anything by Tao Yu et al. Using MaskFormer for semantic segmentation to select areas to remove using LaMa for in-painting.

Installation

Install the package.

python -m pip install semremover

Use the SemanticObjectRemover in your code.

from semremover import SemanticObjectRemover

sem_obj_remover = SemanticObjectRemover()
labels = ['car', 'minibike', 'van']
inpainted_image = sem_obj_remover.remove_objects_from_image("example.jpg", labels)

Development

Installation

Install the Python requirements.

python -m pip install -r requirements.txt

Usage

To use the script you can call it with various options. The first positional argument is the input path, which can point to either an image or a directory of images. To remove objects from a picture add them to the labels option when running the script. The default labels can be found in ./semremover/models/config/ade20k_labels.json.

Example

input

python -m semremover example/paris.jpg --labels car minibike van

A picture of a street lined with cars in Paris.

Output

A picture of the same street in paris with the cars digitally removed.

About

Using semantic segmentation and in-painting to remove objects based on labels

Topics

Resources

License

Stars

Watchers

Forks

Languages