Code Monkey home page Code Monkey logo

smsrinivas / obs-backgroundremoval Goto Github PK

View Code? Open in Web Editor NEW

This project forked from occ-ai/obs-backgroundremoval

0.0 0.0 0.0 86.53 MB

An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming.

License: GNU General Public License v2.0

Shell 3.74% JavaScript 0.46% C++ 39.93% C 4.58% TypeScript 2.36% CSS 1.01% Objective-C++ 0.87% HTML 0.18% CMake 40.02% Svelte 6.84%

obs-backgroundremoval's Introduction

OBS Plugin: Portrait Background Removal / Virtual Green-screen and Low-Light Enhancement

GitHub GitHub Workflow Status Total downloads Flathub GitHub release (latest by date) Discord

A plugin for OBS Studio that allows you to replace the background in portrait images and video, as well as enhance low-light scenes.

For other AI plugins from us check out OCC AI.

Usage

OBS.Background.Removal.Plugin.Tutorial-veqNEsMqEE0.mp4

Check out the usage guide page for usage walkthrough and recommendations.

Additional tutorial videos:

Download

Check out the guide page for downloads and install instructions for Windows and MacOS.

Linux Installation

On Ubuntu, there are two ways to install OBS and you have to use the corresponding method to install this plugin.

  • If you installed OBS via the official PPA, download the deb package from the releases page and install it directly.
  • If you installed OBS via FlatHub, run the following command: flatpak install com.obsproject.Studio.Plugin.BackgroundRemoval

The pre-built binary of this plugin can run Ubuntu 22.04 or later.

On openSUSE, please see docs/BUILDING-OPENSUSE.md.

FlatHub

On Debian, you cannot use our deb package and we only support FlatHub installation.

On other Linux distros, use the FlatHub installation of both OBS and this plugin.

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub com.obsproject.Studio
flatpak install flathub com.obsproject.Studio.Plugin.BackgroundRemoval

If you install OBS in a way other than FlatHub, you have to build this plugin by yourself (see instructions for building below).

OBS Version Support and Compatibility

  • OBS version 29+ (download) for the latest version of this plugin, e.g. 1.1.x and above.
  • OBS version 28+ for this plugin's version between 0.5.x and 1.0.x.
  • OBS version 27+ for this plugin's version 0.4.x and below.

Introduction

This plugin is meant to make it easy to replace the background in portrait images and video. It is using a neural network to predict the mask of the portrait and remove the background pixels. It's easily composable with other OBS plugins to replace the background with e.g. an image or a transparent color.

If you like this work, which is given to you completely free of charge, please consider supporting it by sponsoring us on GitHub:

Support and Help

Reach out to us on Discord or the OBS Plugins forum for online / immediate help.

If you found a bug or want to suggest a feature or improvement please open an issue.

If you are looking for hands-on help or private consultation please select a sponsorship tier.

Technical Details

GPU support:

  • Currently on Windows we support DirectML, which should reduce CPU usage by 95% and effectively use the systems accelerators (GPUs if available).
  • On Mac we support CoreML for acceleration, which is available on M1 and M2 (not Intel, sorry).
  • CUDA is supported in this plugin through TensorRT, however it is supported only on Linux.
  • The goal of this plugin is to be available for everyone on every system, even if they don't own a GPU.

Number of CPU threads is controllable through the UI settings. A 2-thread setting works best.

The pretrained model weights used for portrait foreground segmentation are taken from:

Image enhancement (low light) models are taken from:

Some more information about how I built it: https://www.morethantechnical.com/2021/04/15/obs-plugin-for-portrait-background-removal-with-onnx-sinet-model/ and https://www.morethantechnical.com/2023/05/20/building-an-obs-background-removal-plugin-a-walkthrough/

Code Walkthrough

This video on YouTube will take you through the major parts of the code and explain them.

Building

The plugin was built and tested on Mac OSX (Intel & Apple silicon), Windows and several Linux disros (e.g. Ubuntu/Debian-ish, Fedora, and more). Help is appreciated in building on other OSs and packages.

The building pipelines in CI take care of the heavy lifting. Use them in order to build the plugin locally. We attempt to use external OpenCV, libcurl and ONNX Runtime to reduce build times.

Start by cloning this repo to a directory of your choice.

Mac OSX

Using the CI pipeline scripts, locally you would just call the zsh script. By default this builds a universal binary for both Intel and Apple Silicon. To build for a specific architecture please see .github/scripts/.build.zsh for the -arch options.

$ ./.github/scripts/build-macos -c Release

Install

The above script should succeed and the plugin files (e.g. obs-backgroundremoval.plugin) will reside in the ./release/Release folder off of the root. Copy the .plugin file to the OBS directory e.g. ~/Library/Application Support/obs-studio/plugins.

To get .pkg installer file, run for example

$ ./.github/scripts/package-macos -c Release

(Note that maybe the outputs will be in the Release folder and not the install folder like pakage-macos expects, so you will need to rename the folder from build_x86_64/Release to build_x86_64/install)

Linux

Ubuntu

Use the CI scripts again

$ ./.github/scripts/build-linux.sh

Arch Linux

The community maintains AUR packages: https://aur.archlinux.org/packages/obs-backgroundremoval

Fedora

To compile on Fedora, you need to manage the dependencies manually. See docs/BUILDING-FEDORA.md for more information.

FlatHub

The plugin is available on FlatHub: https://github.com/flathub/com.obsproject.Studio.Plugin.BackgroundRemoval

$ flatpak install com.obsproject.Studio.Plugin.BackgroundRemoval

Windows

Use the CI scripts again, for example:

> .github/scripts/Build-Windows.ps1 -Target x64 -CMakeGenerator "Visual Studio 17 2022"

The build should exist in the ./release folder off the root. You can manually install the files in the OBS directory.

Star History Chart

obs-backgroundremoval's People

Contributors

royshil avatar umireon avatar palakis avatar magnobooter avatar krisezra87 avatar aspiers avatar daniash551 avatar akhenakh avatar bergmannf avatar fubar-coder avatar mrhinsh avatar mproffitt avatar matimax avatar njannasch avatar packysauce avatar rikvdheijden avatar saif-ellafi avatar sparronator9999 avatar t0masd avatar graves501 avatar hi-usui avatar samcday avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.