Skip to main content

Make images with transparent background

Project description

Transparent Background

This is a background removing tool powered by InSPyReNet (ACCV 2022). You can easily remove background from the image or video or bunch of other stuffs when you can make the background transparent!

Image Video Webcam

:inbox_tray: Installation

Dependencies (python packages)

package version (>=)
pytorch 1.7.1
torchvision 0.8.2
opencv-python 4.6.0.66
timm 0.6.11
tqdm 4.64.1
kornia 0.5.4
gdown 4.5.4
pyvirtualcam 0.6.0

Note: If you have any problem with pyvirtualcam, please visit their github repository or pypi homepage. Due to the backend workflow for Windows and macOS, we only support Linux for webcam input.

Dependencies (webcam input)

We basically follow the virtual camera settings from pyvirtualcam. If you do not choose to install virtual camera, it will visualize real-time output with cv2.imshow.

A. Linux (v4l2loopback)

# Install v4l2loopback for webcam relay
$ git clone https://github.com/umlaeute/v4l2loopback.git && cd v4l2loopback
$ make && sudo make install
$ sudo depmod -a

# Create virtual webcam
$ sudo modprobe v4l2loopback devices=1

Note: If you have any problem with installing v4l2loopback, please visit their github repository.

B. Windows (OBS)

Install OBS virtual camera from install OBS.

C. macOS (OBS) [not stable]

Follow the steps below.

  • Install OBS.
  • Start OBS.
  • Click "Start Virtual Camera" (bottom right), then "Stop Virtual Camera".
  • Close OBS.

Install transperent-background

# via pypi
$ pip install transparent-background

# via github
$ pip install git+https://github.com/plemeri/transparent-background.git

# locally
$ pip install -e .

:pencil2: Usage

:computer: Command Line

$ transparent-background --source [SOURCE] --dest [DEST] --type [TYPE] --fast

# for apple silicon mps backend (requires torch >= 1.13)
$ PYTORCH_ENABLE_MPS_FALLBACK=1 transparent-background --source [SOURCE] --dest [DEST] --type [TYPE] --fast
  • --source [SOURCE]: Specify your data in this argument.

    • Single image - image.png
    • Folder containing images - path/to/img/folder
    • Single video - video.mp4
    • Folder containing videos - path/to/vid/folder
    • Integer for webcam address - 0 (e.g., if your webcam is at /dev/video0.)
  • --dest [DEST] (optional): Specify your destination folder. If not specified, it will be saved in current directory.

  • --type [TYPE]: Choose between rgba, map green, blur, overlay, and another image file.

    • rgba will generate RGBA output regarding saliency score as an alpha map. Note that this will not work for video and webcam input.
    • map will output saliency map only.
    • green will change the background with green screen.
    • blur will blur the background.
    • overlay will cover the salient object with translucent green color, and highlight the edges.
    • Another image file (e.g., backgroud.png) will be used as a background, and the object will be overlapped on it.
  • --fast: Fast mode. If specified, it will use low-resolution input and model trained with LR scale. May decrease performance but reduces inference time and gpu memory usage.

    Examples of different TYPE argument choices

:crystal_ball: Python API

  • Usage Example
import cv2

from PIL import Image
from transparent_background import Remover

remover = Remover()

# Usage for image
img = Image.open('samples/aeroplane.jpg') # read image

out = remover.process(img) # default setting - transparent background
out = remover.process(img, type='rgba') # same as above
out = remover.process(img, type='map') # object map only
out = remover.process(img, type='green') # image matting - green screen
out = remover.process(img, type='blur') # blur background
out = remover.process(img, type='overlay') # overlay object map onto the image
out = remover.process(img, type='samples/background.jpg') # use another image as a background

Image.fromarray(out).save('output.png') # save result

# Usage for video
cap = cv2.VideoCapture('samples/b5.mp4') # video reader for input
fps = cap.get(cv2.CAP_PROP_FPS)

writer = None

while cap.isOpened():
    ret, frame = cap.read() # read video

    if ret is False:
        break
        
    frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) 
    img = Image.fromarray(frame).convert('RGB')

    if writer is None:
        writer = cv2.VideoWriter('output.mp4', cv2.VideoWriter_fourcc(*'mp4v'), fps, img.size) # video writer for output

    out = remover.process(img, type='map') # same as image, except for 'rgba' which is not for video.
    writer.write(cv2.cvtColor(out, cv2.COLOR_BGR2RGB))

cap.release()
writer.release()

:outbox_tray: Uninstall

pip uninstall transparent-background

:page_facing_up: Licence

See LICENCE for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

transparent-background-dev-1.1.5.dev1.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file transparent-background-dev-1.1.5.dev1.tar.gz.

File metadata

File hashes

Hashes for transparent-background-dev-1.1.5.dev1.tar.gz
Algorithm Hash digest
SHA256 ad93ad47eb2ce386597482b9301c4fec06a45681d84b6a100dd5d39773712f66
MD5 e76be124a652911ed01dcc73dfdc7e88
BLAKE2b-256 56434248b4839137491d799e83b6b3f69a6ffaab5b6908590fadab042e47b5e4

See more details on using hashes here.

File details

Details for the file transparent_background_dev-1.1.5.dev1-py3-none-any.whl.

File metadata

File hashes

Hashes for transparent_background_dev-1.1.5.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 797a6e4d2b6431b178327924de26a80bd439aaa8ea2ab18e6933c27c33c17ae6
MD5 d5c858e64790f4064d71240429d92eaf
BLAKE2b-256 e1d1f063c7ad747b8b80ad54509ec39258736bdc9bf5d8fc20b0a2db96829b4e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page