Where Is OpenCV 5?
opencv.org
opencv.org
Politics don't understand free software, and the people who should be teaching it (GAFAM) don't, because it's not in their interest. As a liberal, free software worth nothing. Big tech worth a lot. They don't understand that's about tools and know-how, not about human resources and money.
It's really crappy that large organizations can still keep benefiting from these projects without putting any resources into them. Again I know some companies have donated to open source projects, or hired developers but that is the exception. Part of me wonders if Copy left viral licenses are the only way to combat this. If you are going to use a bunch of critical open source projects in your code base, and you aren't going to pay, you should at least pay it forward by making your source code available.
I've seen some people mention creating some sort of license that is Open source, but if you make more than X amount of money or have X amount of employees then you have to pay X amount in licensing fees. That seems reasonable and still allows small projects to still use these libraries like they always have. But then again that's pretty hard to enforce. And if the GPL is anything to go by, then a license doesn't necessarily stop flagrant misuse of the software anyway
> Our goals with crowdfunding the development of OpenCV 5 are several: 1) To make OpenCV 5 our biggest release ever, with the most community participation of any version so far, 2) To prove to other struggling open source projects that crowdfunding is a viable option over seeking corporate donations exclusively, 3) To create a sustainable method of fundraising that OpenCV can return to year after year, making the overall organization and project more robust to global instability.
> Recently, due to global conflicts and instability, OpenCV has lost several core team members, and this has slowed progress on both new feature development and the handling of bugs and requests in the GitHub repository.
> Crowdfunding development of a big Open Source project like OpenCV is a big move. We aren’t aware of ANYONE doing it at this scale. As a non-profit organization, we are constantly fighting to find funding, but we always find support in our community. Instead of spending our time chasing big checks from billionaires, we are putting that community front and center.
[1] https://www.indiegogo.com/projects/opencv-5-support-non-prof...
I think a few of the bigger software projects are realizing relying on a few generous whales is unsustainable when money faucets are turned off... and it's a good thing for the long term stability of these groups to figure out how to sustain the core project.
As long as it doesn't get annoying (multiple appeals every quarter, incessant "support us or we'll DIE!" messages...) I'm fine with fundraising initiatives for OSS.
reminds me of wikipedia
The entire $500k donation they're looking for here would have been basically 1 or 1.5 SWE salary.
So yes, there's definitely something wrong with the compensation and financing model of open source infrastructure. And now that the market is contracting, and VC and BigCorp money isn't flowing as freely, people are finally starting to bitch about it, instead of just being happy that a) their projects are being used and b) that that is leading to job opportunities etc.
"but if you make more than X amount of money or have X amount of employees then you have to pay X amount in licensing fees" -- sad to say, projects with licenses like this would be immediately blacklisted at places like Google. Not just for use, but for Googlers to contribute to. And because of the motivation economy in OSS right now, someone else would just fill the niche.
Even the GPL is controversial to these companies (and to many people on this forum, in fact).
We need to name and shame BigCorps that are using and exploiting the very generous and liberal nature of Apache-style licensed projects without (majorly) contributing back.
The corporations are following the exact spirit of the license. If you want to shame them, put it in writing. Make a new license. But it would be proprietary, because you'd be saying some entities are too big to exercise Freedom 0 without paying money to a central organization that held the license.
That's the licensing model for the two big game engines, Unity and Unreal - Gratis, to a point. It seems to work for them, but it ain't FOSS. And for your central benevolent organization to hold that power over the license, they'll also have the power to do worse things to the project. One of the appeals of FOSS was that it's de-centralized. You can always fork it, if you have the code you have the right. A license that required "BigCorps" (because every small company is inherently good?) to pay would have to deny the right to fork.
It's a good thought, but we've already seen what happens when this is attempted, such as with GPL V3. The projects just get forked, or even outright replaced (as was the case with Bash in MacOS).
And frankly a lot of "open source" work actually ended being either "resume" material or "corporate contribution" work.
But I think we're seeing more and more where this can lead -- your thousands of hours of work can just turn into a new product launched on AWS etc that does nothing to enrich you or reward your community for its efforts.
The copyleft model was supposed to counteract this by at least demanding contributions back. And if companies felt they wanted/needed a proprietary license, they could always negotiate that separately. But as you say, tossing GPL on a project has become kind of radioactive. And the copyleft model didn't really scale well into the SaaS world.
This is a tough decision, and one that is going to be different for each project.
GPL will disuade most commercial projects from using your library, which for some people may be a good goal in itself. But the flip side of that is that a GPL'd library has a smaller target audience, which means that the project as a whole will tend to never become as popular as OpenCV has*. That's probably good for the maintainer's health—GPL serves as a good gatekeeper to push away a good chunk of the entitled demands (except for the entitled demands to change the license)—but it may be counter to the maintainer's goal if they set out to make a library with wide reach.
* The notable exceptions to this rule, like Linux, aren't libraries, they're applications or operating systems which can be used without paying it forward.
Maybe, but it might just as well persuade others who value free software ideals to contribute.
It’s a weird mindset.
You're essentially paying for support (and accountability).
This is why a lot of the more successful open source projects are the ones that monetize by offering enterprise support - this is _crucial_ for something that is key to your company's product.
And while we can all share stories of terrible support, in my experience they are outweighed by the positive ones.
The reason is tragedy of the commons. The software is gratis, and they're getting paid the asking price.
What if you're a company that built on top of a prior version OpenCV that does everything you need, and contributed at the time but do not need any of the new things?
Do you and your moral stance think they should continue to chip away at their earnings in yet another rent-seeking play?
Somehow, there was plenty of money for bonuses for sales weasels, but never any money for key technology. I tried to commit bug fixes whenever I could, and did my best to help out other users on the mailing lists. It would have been nice if the company could have spared a small part of the millions they were raking in ...
- Military projects
- KYC Services
- Goverment projects
- Survelliance projets
- Drones
Those are the biggest users of openCV and those are billion dollar industries.
Based on [1], it seems like 8% of your donation goes to Indiegogo and processing fees. Is that right or am I misunderstanding?
And when you donate you can set the "tip" to 0% so all your donation goes to the org.
The tip seems to be something entirely separate, which is _additional_ money, on top of your donation, that only goes to IGG, based on another [2] article.
You probably have more experience here though. Your work is great and I always appreciate your posts.
1. https://support.indiegogo.com/hc/en-us/articles/204456408-Fe...
2. https://computerengineeringforbabies.com/blogs/news/why-i-ha...
A tip is for a service rendered. Not for being a mendicant middleman.
Sure, the baker -- or OpenCV -- would be happier if they got a bigger slice of the pie, but that's just the cost of doing business.
Yes, I think to me it does. How much of my money is “wasted” (which we all might define differently) does matter to me.
There’s also a factor of what I receive from it. In your bread analogy, there is an exchange of money for a good (bread) received. In a donation, like with OpenCV, there is no guarantee of a good received, so I care more about how my dollars are “spent” getting to the recipient. I (and many others) look at the filings of charity to understand how much goes to administrative overhead, for the same reason.
> When I pay for bread with my credit card, a large portion of the price of the bread goes to the credit card company and the payment processor.
Unless you are buying a single slice of bread, a large portion does not go to the credit card company. About 3% does, 5% lower than IGG fees, just like with IGG. A lot of food places around me offer a 3-5% discount for using cash and I generally choose that option if I have cash on me. People have long cared about what “middleman” is scraping money of the top of their spend.
Where is your cutoff for percent taken by the processor?
For anyone curious about why OpenCV uses BGR: https://learnopencv.com/why-does-opencv-use-bgr-color-format...
> We didn't compile Darknet with OpenCV so it can't display the detections directly. Instead, it saves them in predictions.png. You can open it to see the detected objects.
I have used it to group images of the same subject/angle, then remove the most blurry ones.
Whereas today, OpenCV and derivatives are already using the LX7 vector extensions and run fast enough to be useful.
torch.all(image == torch.tensor([255,0,0]), dim=-1).nonzero()
To get all pixel pairs (x,y) where the color is red (255,0,0) of the image of shape (width,height,channels).https://www.axis.com/developer-community/open-source/acap
ACAP Computer Vision SDK examples
ACAP version 4 example applications that provide developers with the tools and knowledge to build their own solutions based on the ACAP Computer Vision SDK.
The open source examples are focused on video analytics applications. Giving AI/ML developers the chance to experience the smooth and smart develop environment that ACAP provide, showing how the powerful capacity of Axis devices provides unlimited possibilities for developers to build new AI/ML applications.
Being one of the most active repositories we have, you can find examples written in C++ and Python performing interesting features that varies from object detection, QR decoder, and image capture, using popular open source ML libraries such as OpenCV.
https://github.com/AxisCommunications/acap-computer-vision-s...
I'm not an expert at all but most image processing network I've seen generally involve at least a few plus a few other layers. I don't think you can get away with a single convolution, at least not that well.
OpenCV you could use Laplacian variance which looks like it's just a single line of code.
> cv2.Laplacian(image, cv2.CV_64F).var()
Many of the NN implementations look like their finetuned off google's ViT checkpoints. I really can't imagine these are faster (at least not without spending extra on GPU/TPU's) than Laplacian variance but I could be wrong.
And I assume you might be able to get better evaluation performance from a finetuned NN but depending on what you're doing, that's a ton of work compared to opencv.
https://pyimagesearch.com/2015/09/07/blur-detection-with-ope...
https://sh-tsang.medium.com/review-bdnet-blur-detection-conv...
It's not a "hallucination" it's a "miss-prediction".
And the more-classical methods of CV are still very capable of miss-predicting.
No matter what method you choose, you must test how accurate it is, NN have the benefit of being fine-tuned for specific applications as well. If you want to be extra sure then you likely want to use both.
Say you just need to do some edge detection for example.
Of course the 'AI' line is blurry and moving, probably 'computer vision' (vs. 'just processing some image data', which of course it is anyway) has been too.
It's useful either as a preprocessing step that you feed into further NN processing or -- super old school -- you are modeling your problem by hand instead of letting a NN figure it out (for better or worse).
I'm not into that space as much lately, as I have been years ago, but in a lot of newer marketing videos I can easily recognize the OpenCV signature markings. For example from tesla videos (not the typical public facing ones, but on the NVidia tegra side) or robotic startups
I agree that projects like OpenCV should be better-supported.
There are a couple of issues, though, that always crop up, when talking about supporting open projects:
1) I don't know of any corporation, anywhere, that actually donates for no reason at all. There's always a hook. Sometimes, it's just brand-building (logo on the free swag stuff), sometimes, it's to attract future employees (for instance, donating to a project that is maintained by a certain set of students from a college curriculum, etc.), sometimes, it's to influence "hearts and minds," and sometimes, it's a pure investment. They need a self-interested reason.
2) I don't know of any corporation, anywhere, that donates, with no expectation of influence. That's one reason why lobbying is such a big deal. There's a fig leaf of "no quid pro quo," but everyone knows that the donator is expecting a return.
3) I don't know if anyone has noticed (</s>), but the corporate environment tends to be, just a bit, on the competitive side. I know many corporations may not be willing to donate to a cause that will serve their competitors, as well as themselves.
I think that foundations help. They can set up a "step and repeat" page, with donors, but keep the branding (and influence) off the actual donations.
It should be socially acceptable for open source programs to offer the deal: we’ll consider patches from your engineers, but in exchange you have to chip in enough to support one of ours (to keep working on stuff we find interesting), and a little bit more (need some engineer-hours to review your patches).
It sounds quite biased in favor of the project at first, but if the project is popular, the company could get quite a bit out of it.
He has just been raving to me about how great OpenCV is. I know he's been using ChatGPT4 to give him C drivers for his custom rigs.
Like I said, he's a hardware geek, and actively hates coding, so I'm not exactly sure what he's been doing.
I will say that his drones and RC vehicles work a treat. I drive them around, occasionally.
I think the ability to learn computer vision from scratch (and free) like I did is one of the best aspects of open source generally.
But yeah, an Arduino would be tough.
From memory (heh) they come with 1Mb and you can add another 8 or 16...
It's a 600Mhz ARM M7 also, you can do a fair bit or work with that.
Check out the official or unofficial examples for TF, PyTorch, and OpenVINO for CV applications; they all use OpenCV as a dependency, eg to get get the image data from a camera or RTSP URL, process the image, draw debug info and display the results etc.
That's overstating things more than a little.
Might want to check that. Also 4.something got SIFT as part of OpenCV (instead of living in the contrib module) because the patent expired and you can now use it for free.
As for blowing up with NN packages and such... I don't really use those parts, but if the NN module had easier support to run networks trained on popular frameworks I might've used it. Disclaimer: it's been quite a while since I last tried to use those parts, so maybe now the latest version has fantastic support and I'm talking nonsense.
Now, it is a C++ dependency nightmare with conflicting documentation of basic data structures, version specific bugs, and hidden impossible-to-license patents.
It is a cautionary tale of allowing a Second-system effect to twist a project into a set of use-cases for a smaller subset of users.
The core issue was not major version releases, but constant breaking library changes in sub dot version releases. Thus, they turned most of the user-base into full time Beta testers.
They should have forked the library at 4, but knew no one would change what already worked. =)
I've chipped in - not for the future V5 - but to recognize that OpenCV is a tool that I've been using for years for various small personal projects.
Having said that it is an integral part of anything on any Android project that deals with what OpenCV does. Because while iOS has a pretty capable Vision lib Google's Android has nothing even compared to that. So your only option is to seek and try solutions in the wild based on OpenCV and then hope that after enough hit and trial you are able to generate the right .so files specific to your solution and not the 100s or dozens of MB large files for multiple platforms. But on many platforms OpenCV is the only option and whatever challenges come with it, it does work!
At today's salaries, that pays for, what, 1 month of some ML engineers time to integrate all the big ML frameworks into OpenCV?
Doubt you could do any decent job of it in a month...
Why would opencv, the all singing all dancing C++ computer vision framework not have a DNN module?
Why would it say “use a Python library”? (And yes, torch is deprecating its c++ support).
Not having it would be strange.
Here’s a starting point: https://discuss.pytorch.org/t/pytorch-2-and-the-c-interface/...
https://docs.opencv.org/4.x/d2/d58/tutorial_table_of_content...
In particular, OpenCV DNN is as far as I know the fastest CPU implementation for darknet/yolo networks.