This is good. Remove.bg is pretty much the gold standard of background removal services due to it's nearly flawless detection of lines separating foreground from the background. But it is a paid service, there are other 2 free services that I have used occasionally when I have needed to remove background which allow download of full sized image after removing the background.
Adobe is by the best for free services which allows downloading full size transparent image. I compared your tool with the other 3. The results can be seen at https://i.imgur.com/RQT28yp.jpg
I will download this and try to build myself. Thanks for making it open source.
Are you trying to just cut out the person with those? Looks like adobe and remove.bg do the best on getting a good selection (edges) but OP's tool does best on selecting just the person.
I am just comparing default output from each tool. OP's tool asks for what object to detect and keep, I had selected human so I guess that's why it only kept the person. But yes, my intention was to keep just the person. For this photo, I would go with Adobe because OP's tool adds a halo like outline all around the person. It would differ from photo to photo I think.
Author of project here. Waking up and seeing my project on the front of HN blew me away, thank you everyone. I will go ahead and update the about us on the page on the website.
FYI... the golden value in FG.BG separation is the single pixel bleed between the two. Unless the new background is of the same value as the old, then this would show up as a light or a dark fringe. At erode filter can remove this in hard-edged objects, but an erode would destroy fuzzy objects like hair. This is why compositors often separate soft and hard selections.
This project looks promising!
Your pricing is also attractive, at about half of Unscreen's API. Plus you're open source which is another bonus point.
However, your pricing structure is confusing to me: what does "commercial license for 10" mean when pricing for developers? If we want to integrate your tool in an app, then we would need to have commercial licenses for all generated content, in order to pass that on to the end user. Can you clarify that point?
Also, your outputs all seem to have all-white backgrounds. Would it be possible to specify an image or hex color code that would be used as the new background?
Thanks for pointing out how confusing the pricing page was for developers. I went ahead and fixed that. In regards to the background color, it should come out clear. Depending on your viewer I guess it's white. I can put those features on the road map. Have something similar for videos already, so I presume you mean images.
I am a painter who has collaborated with computer vision engineers on style transfer between paintings (aesthetic exemplars) and photographs. One of the things that distinguishes a painter from a camera operator is their depth aware organisation of colour contrasts. I use plural as there are many forms of colour contrast. I believe that effective Foreground-background separation has greatly underestimated potential to impact the future of the photographically acquired image. More power to you sir.
While, arguably, the legs are part of Zuckerberg, it is an unusual pose and instead the AI picked the subject in a way that is totally suited for inclusion against another background (for example a montage of various founders). The outline it chose looks great.
It's a pleasing result that shows the power of AI.
I was going to say that I like the MediaPipe Selfie Segmentation model for doing this sort of thing in a web page, but I've just noticed (when getting the GitHub link[1]) that Google have marked the code as legacy[2] ... no idea if the new solution is better/easier to use[3].
Mediapipe is such a mess (but so useful). I wish someone would just extract the main tflite models and make a light wrapper around it on GitHub somewhere
I do realize it's not the same at all, but Pixelmator for Mac is a great little image editor that has "Remove background" and more AI-powered features, such as smart up-scaling.
I don't remember the steps, but its either in a menu or you can press and hold the foreground object to make a "cut out" of it and paste it in a different app. https://youtu.be/qX82kIaRNKA?t=15
Nope. This works on any old picture you can view. Just as the text highlight in a picture is also os wide. Just background AI processing. It’s very neato
This is more than entitled behavior, it’s downright harmful.
When (not if, when) binaries get trojanned, this causes blame to be directed at the original author, and takes a lot of work to explain that they are not at fault - this has happened in many supposedly reputable download sites including SourceForge, TUCOwS, Download.com and many others (yes, I haven’t used windows in 20 years or so, no idea what the hip new places are)
Say “thank you”, and spend 10 more minutes yourself to set it up (even if compilation takes 5 hours, it’s usually 10 mins to get it started). And then offer it for others, and handle the ricochets when it gets trojanned with no wrong done by you.
If just 20 people adopted such a process, there would be 98% less complaints of this kind.
Trojaned installers by download.com were rampant back in the day. They would take your program and wrap it up in a nice little installer wizard and then also stuff a bunch of adware and spyware in there with it
I don't understand what's the harm of having a releases page with a binary and its md5 hash, or how that keeps anyone from just compiling an unofficial binary themselves and adding malware to it.
Anyone not technical enough to compile a binary has to give up trying to use it or risk some unnoficially distributed executable .
But not on the official page, right? And there's nothing stopping someone from doing that now is there? I don't see how the original authors providing binaries is less secure than anything else.
Sure, but what does that have to do with distributing binaries off Github? Maybe if Bonzie Buddy and IE6 make a comeback but I don't see that happening.
A checksum can be falsified as easily as a binary, and so can a signature. Only if you participate in a web or trust are you theoretically better off... but most people don't, so all such measures do is give a false sense of security.
Besides what beagle3 wrote: Providing binaries for various platforms is more work than you might think and the people who like to do development work are rarely the same people that like packaging and distribution. That's why developer and maintainer are separate persons more often than not.
I've not tried it with AI projects, but pyinstaller does a usually pretty solid job of packing up most python projects, and it's pretty simple to get started with.
I am not a python dev and testing AI stuff in Python made me hate python ecosystem (not the language ) a lot. All this new AI projects are made by enthusiaste, they depend on a specific CUDA version, a specific A,B,D python lib versions. Very often shit does not work anymore and you need to google and hope other person was unlucky before you and posted some commit version of the stuff that still works.
My advice for people that test AI stuff, after you get it working do not update, try if possible to install the new version side by side and see if it works, it saves you the pain to roll back to a good version.
I've packaged various AI/ML/PyTorch/TensorFlow things with PyInstaller in the past. It took some hours of initial work, but the result was good. Things might be easier now.
Encouraging users to run some random binary from GitHub is a really good way to spread all kinds of viruses. People should only run binaries from trusted sources.
You're totally right, it's just as bad, maybe even worse because build tools sometimes ask for admin permissions. People should ideally really on some kind of reputation system or get software from trusted vendors.
My problem is the assumption by authors that the project being installed is the only one on the machine, and the fact that projects get so tied to particular versions of libraries. Therefore installing the PyTorch specified in this version is likely to be injurious to other existing installations, unless you handle it all in a Conda wrapper.
If you're going to use something that needs a bit of technical skill to operate correctly, you're going to need at least enough skill to get it running.
Roads would be far safer if every car had some facility by which you had to remove and refit some random engine or braking system component correctly before it would start.
Chucked this into a Dockerfile, and had a play with it. (Takes a while for torch to download, had to set the pip default-timeout higher)
Seems to work pretty well, there were some images I had where it left a bit of a blur around hair, but overall it worked pretty well on most of the ones I tried!
Chucked in imagemagik as well to do some trimming/colour manipulation - works pretty nicely
Once you run out of free "credits", they give you a tiny image and you have to pay to get more for for full-res. For a while that was all I had as far as AI bg removal goes and it was quite frustrating.
You assume that the new one would replace the original.
It’s digital, both would exist. This simply makes it easier to do something people have done manually since the invention of the photograph, or even prior with print.
It’s the equivalent of scissors or a razor blade but automated. It’s not even the first ML based solution, and doesn’t do anything that we don’t already do every day for advertising or film.
It's not about the possibility but the ease of use.
ChatGPT doesn't do something new too, text were written before, but know it easier and faster for more people.
https://www.inpixio.com/remove-background/
https://express.adobe.com/tools/remove-background
Adobe is by the best for free services which allows downloading full size transparent image. I compared your tool with the other 3. The results can be seen at https://i.imgur.com/RQT28yp.jpg
I will download this and try to build myself. Thanks for making it open source.