TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Open-Source Virtual Background

527 pointsby jcastroabout 5 years ago

25 comments

soylentcolaabout 5 years ago
I&#x27;d love to see something like this as a plugin for OBS. I&#x27;ve been using it lately due to all the video conferencing we&#x27;re all growing to love since it&#x27;s got basic color correction&#x2F;manual controls for my webcam feed.<p>It&#x27;s got the option for &quot;real&quot; chromakey, but like the author, I don&#x27;t have a green screen, Amazon isn&#x27;t scheduling any deliveries for another month, and I don&#x27;t feel like a trip to the fabric store would count as &quot;essential&quot; travel (especially if it&#x27;s only so I can screw around with stupid backgrounds).<p>Tried a few different sheets&#x2F;blankets I had at home, but none are a suitable color or uniform&#x2F;matte enough to work well, even with proper lighting. I admit this is such a non-issue and only something I want to play around with, but it would be fun nonetheless.
评论 #22833009 未加载
评论 #22834660 未加载
评论 #22837119 未加载
knotty66about 5 years ago
Good article, thanks. BTW, this is the method Jitsi-meet uses. They also use BodyPix. <a href="https:&#x2F;&#x2F;github.com&#x2F;jitsi&#x2F;jitsi-meet&#x2F;blob&#x2F;master&#x2F;react&#x2F;features&#x2F;stream-effects&#x2F;blur&#x2F;JitsiStreamBlurEffect.js" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jitsi&#x2F;jitsi-meet&#x2F;blob&#x2F;master&#x2F;react&#x2F;featur...</a>
评论 #22832519 未加载
评论 #22831827 未加载
评论 #22831459 未加载
评论 #22831197 未加载
评论 #22831753 未加载
Karupanabout 5 years ago
Found something similar yesterday, which is basically deepfake for avatars - <a href="https:&#x2F;&#x2F;github.com&#x2F;alievk&#x2F;avatarify" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;alievk&#x2F;avatarify</a>
评论 #22830833 未加载
peer2payabout 5 years ago
Since it looks like your webcam is mounted to a stationary PC and you&#x27;re only really writing this for yourself, wouldn&#x27;t it be a lot easier to just subtract out a static picture of your background from the feed?
评论 #22831115 未加载
评论 #22833317 未加载
franga2000about 5 years ago
I&#x27;m working on something very similar right now, so it&#x27;s great to see that this is actually possible with currently available open-source resources. I&#x27;m trying to re-create Skype&#x27;s background blur feature, but that I can use in OBS (obsproject.com) so I can apply it just to my webcam without messing up the other stream elements for online lectures. I&#x27;ve been using the the DeepLab model from tensorflow research repo to do segmentation, but BodyPix seems even better for the job. If it performs any better, this might be the break I was looking for...
评论 #22833045 未加载
dh2424about 5 years ago
This is pretty awesome work, but I just wanted to point out that Zoom doesn&#x27;t actually require a green screen. If you uncheck the &quot;I have a green screen&quot; button, choosing your own virtual background still looks really good, although of course you&#x27;re not going to get any crazy effects like this script adds.
评论 #22833011 未加载
评论 #22836716 未加载
评论 #22833421 未加载
wdfxabout 5 years ago
Using video loopback opens up some great creative possibilities for fun with video conferencing.<p>There&#x27;s one thing I&#x27;d love to achieve though, which seems not possible on Linux desktop (specifically kubuntu)....<p>I want to be able to use the loopback as the source for screen share instead of webcam; i.e. to use the loopback as the conference presentation.<p>Has anyone got any ideas how to achieve this? Given most conference solutions on Linux do not seem to support either &#x27;share this window&#x27; or &#x27;share this screen region&#x27;. It seems to be the whole desktop or nothing.
评论 #22833398 未加载
评论 #22832830 未加载
sigwinch28about 5 years ago
You mention the ~10FPS performance.<p>It seems like moving all that data backwards and forwards between Python and Node might be a bottleneck, no?
评论 #22831354 未加载
tobiasbischoffabout 5 years ago
Okay now please use your skills around AI and Virtual Webcams to Create a script that just generates a Picture of me that nods at the right moments during a zoom call ;)
ZiiSabout 5 years ago
Really good write up of a flexable approch.<p>If you just want an easy greenscreen <a href="https:&#x2F;&#x2F;obsproject.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;obsproject.com&#x2F;</a> has a very good chromakey filter and a V4L2loopback plugin <a href="https:&#x2F;&#x2F;github.com&#x2F;CatxFish&#x2F;obs-v4l2sink" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;CatxFish&#x2F;obs-v4l2sink</a>
qrv3wabout 5 years ago
I love the added hologram effect! That is a very creative addition.
nlabout 5 years ago
Pytorch has Deeplab available on their hub (I&#x27;m sure TF has something similar).<p>It&#x27;s a couple of lines to use: <a href="https:&#x2F;&#x2F;pytorch.org&#x2F;hub&#x2F;pytorch_vision_deeplabv3_resnet101&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pytorch.org&#x2F;hub&#x2F;pytorch_vision_deeplabv3_resnet101&#x2F;</a>
alexellisukabout 5 years ago
Fascinating write-up Ben, who would have known that you were a genius with image processing as well as running containers :-) Love the gory details and I didn&#x27;t know about pyfakewebcam either.<p>Do you have a live video recorded showing how quickly it can process a stream?
评论 #22831176 未加载
manbashabout 5 years ago
Great read! I am curious then why the Linux client doesn&#x27;t supports this, if all it takes is to send out our webcam stream data to be processed server-side?<p>P.S. What happens when they do e2ee on the webcam stream?
评论 #22833640 未加载
评论 #22837593 未加载
raghavaabout 5 years ago
Brilliant!<p>Now, I know that there are many companies that force people to be on with a live video feed, and that many don&#x27;t really like it.<p>How about recording a 3-min clip and playing that in an infinite loop - creating a fake feed (remember Keanu Reeves&#x27; Speed?) - so that people can avoid not being seen, but still get things done better? A mask on the face is a simple addition to avoid detection. As the saying goes, modern problems require modern solutions!
评论 #22830219 未加载
评论 #22830237 未加载
chpmrcabout 5 years ago
Is there something Python <i>can&#x27;t</i> do? Can&#x27;t wait for a React&#x2F;Vue like framework for Python.
评论 #22833431 未加载
评论 #22832708 未加载
评论 #22833312 未加载
futheyabout 5 years ago
Thanks for sharing! I have been working on the exact same project with Tensorflow &amp; BodyPix, really helpful to compare notes &amp; see the pyfakewebcam approach!
评论 #22830200 未加载
mlaretallackabout 5 years ago
Very interesting,<p>The magic is pyfakewebcam and v4l2loopback, I was looking foe a way to turn myself into a potato on Teams. The bit I was missing was how to create a virtual webcam.
moondevabout 5 years ago
Awesome stuff Ben! Could this be deployed via kind by passing the necessary mounts into a node, then mounting those mounts via hostPath in the pods?
nojvekabout 5 years ago
Pretty cool write up of how this can be replicated with opencv and out of the box libraries like bodypix. I imagine Zoom is using something like this too.
cimnineabout 5 years ago
Did anyone find a good loopback video driver (&quot;virtual webcam&quot;) that works on recent macOS?
评论 #22831366 未加载
评论 #22831350 未加载
jamraabout 5 years ago
I really like it. But why not keep Tensorflow in python? What is the reason for using node?
评论 #22832628 未加载
seismabout 5 years ago
Beautiful hack. What about accessories à la Instagram or Facebook?
villgaxabout 5 years ago
Pretty insane to use Docker &amp; web-requests for high frame rate video chat with something which runs just fine even on CPU.
评论 #22831243 未加载
pcc09about 5 years ago
Really cool.