OBS Plugin: Background Removal
github.com
github.com
I have not the faintest clue whether this position of mine is popular or unpopular.
Better models may improve matters (the one shown here looks to be decidedly worse than some), but even the best I’ve observed at this time is still something I’d prefer not to be used, because it’s still wrong too much of the time in annoying ways.
I asked him if he was using some sort of filter and he was like "I don't like the color of my face in my camera". He stands out like a sore thumb in the grid of people in video in larger meetings now too as the only one not in color and with a weird background (others just blur it which I also kind of hate - but less).
I find calls with him with the video so distracting. I would much rather see his living room or whatever he's trying to hide - and it being real - than this weird fake office thing he is trying to do instead...
Maybe it is a sign of privilege though that I have a spare bedroom with a white wall behind me I can use without background or blur. I remind myself not everybody is so lucky...
If he was to use OBS with the virtual camera as a middleware between him and the call he could apply a LUT (lookup table) filter to the camera output to correct the color[1]. I do this when I'm presenting to a lot of people or when a call is going to be recorded. It makes a heck of a difference to the quality.
[1] An explainer https://streamshark.io/obs-guide/color-grading-lut.
During the first lockdown, a friend of mine sourced a photo of the inside of his local (closed-down) pub, and he used that as a background.
"Working from home? Of course I am. Honest..."
Perhaps if people were a bit more professional and stopped commenting on other people's personal space that's taking up a fraction of the screen real estate we wouldn't need features like these.
My boss can't help himself making smart ass comments about my background, at one point I managed to get a plain white wall and even that scored a comment.
I have an array of RC planes on the wall behind me (because they take up room and mounting them vertically on the wall was a good solution to save space, they make for a great background.
That's a dead giveaway of being human.
I cheerfully use Google Meet with it's poor blurring that constantly pops things in and out of the background without giving it a second thought.
I judge people by the content of their words and the merit of their actions, not what they look like or how much effort they've gone to in order to have a perfect webcam production.
This tool looks super awesome and I can absolutely see myself using it. I've tried greenscreen in OBS before and decided it wasn't worth the effort for my purposes; something that is roughly decent as this looks at a glance will be really useful.
Regardless, I am someone who never pays for a haircut and has very casual clothes. But this is something that, to me, indicates a complete lack of sensitivity to aesthetics, and in a large number of jobs/roles, that's a really bad sign.
There's also a bit of the "what is so important to hide?" question.
It's great if you can ignore such things, but not everyone can or does. This is almost like someone who has poor hygiene, who has dirty hair or a bit of a smell to them. Anyone would advise such a person to put in a bit of effort if they want career success. Same thing.
It's a principal thing for me. My space is mine and work doesn't have a right to see into that. They aren't welcome in my home. Maybe I have a good office setup or maybe not. Maybe my home is clean today or not. It wasn't anybody's business pre-covid, and it remains nobody's business today.
I work in different part of my home, but I dedicate one small space for video calls, where I stand, not sit. It is designed to provide a plain background. If I didn't have a wall at my disposal I would have installed a white ikea roller window blind on the ceiling. It is much more effective than any blurring/background replacement algorithm.
You choose to work from home, you choose to welcome work in your home. The good thing is you still have the liberty to limit and design the small part of the home you are welcoming your coworker's in.
Which seems to be accurate, and in my opinion rightfully creates a negative impression in their minds.
That said, I've done background replacement using chroma key with OBS and it's quite easy. Anybody serious about streaming (or recording) video who wants to remove the background should own one. I own something called the "web around" which is a fabric disc supported by a tension wire around its circumference that attaches to the back of your chair. I'm convinced that this (and a decent microphone) do make a difference in how people perceive me in meetings and presentations.
The implementation matters a lot too. I found that for most people the Zoom implementation is pretty bad. The Google Meet one is typically less distracting especially on blur mode. (because the flickering isn't as noticable than when flipping between two completely different colours)
Personally I'm not a fan of background removal/replacement unless it's done properly, but I do like blurring. I use a good webcam and I mounted a soldering light above my screen as a ringlight which works surprisingly well. Plus nvidia broadcast for noise filtering and background blurring, which makes the task easier for teams to blur it some more without cutting into me. Overall I think it looks fine. My home office looks too messy and unprofessional when in focus, but has nice colors when blurred heavily.
My boss often sits in his closet with lots of suits and shirts behind him, which confuses the filter enough to replace all his hair with the company background.
I think people should just decide for themselves what to do and just learn the basics of how to do lighting. Nothing fancy, just make sure the light comes from the front, not from the back, use a proper webcam (or maybe your phone, that might have a better camera+processing), see if you can do something about your background to make it presentable or easier to blur. Of course some people don't have the luxury of a separate room in their house for nothing but work and the money to turn it into a movie set. Maybe they are forced to work in their bedroom / kitchen / closet and don't want everyone to see how they live. I think in that case background replacement is the lesser evil.
As much as I admire ML models (and I remain in awe of people who know how to build them), I still think there's room for more conventional chroma key filtering - for instance identifying part of a video's moving display so you can add some UI to it[3].
[1] - MediaPipe demo - https://codepen.io/kaliedarik/pen/PopBxBM
[2] - TensorFlow demo - https://codepen.io/kaliedarik/pen/ZEeoZaP
It's a shame Nvidia broadcast doesn't work on Linux. If you use this with CUDA, are the results comparable?
Is this a harder problem than I think it is?
What's really impressive to me is that it looks like web apps like Google Meet and Discord seem to do this in JavaScript on the fly.
They made up several scenes they could switch between with subtle animated backgrounds and added chroma keyed meme/animated stuff they could enable during less formal time like end of lessons.
It isn't as good as the closed source offerings from big companies but those companies don't have enough users on Linux to justify developing for the platform so it is a chicken and egg thing. For what it is I was happy with it. With a bit of adjustment it worked suprisingly well in actual use. One of the kids was stuck with an old under powered laptop with integrated graphics and it had no problems at all running this.
If you want to do this stuff properly you obviously need a green screen and good lighting but when you suddenly have an entire family home and online and are trying to juggle access to computers, quickly locating and finding space for multiple green screens and studio lighting isn't an option for regular people.
A non free (4 hours free a month) solution I quite like on macOS is krisp.ai which I also use for noise removal. Background replacement was recently added to M1 chips.
On the Windows side, Nvidia Broadcast has worked well for me (requires an RTX card), it also supports tracking which I really like. I've previously tried XSplit but the results were worse than whatever implementation Zoom and even Hangouts in a browser use.
I rarely video call under Linux (non existent laptop drivers for my webcam) but look forward to trying this out if the need ever arises.