22 Jun Akvelon’s OpenCV team announces OpenCV 3.0 Release
Bellevue, Wa – OpenCV 3.0 is finally here, and we couldn’t be more proud of our team that helped make this new update the best it has ever been. OpenCV 3.0 is claimed to be the most functional and fastest OpenCV ever.
Open Source Computer Vision (OpenCV) is a permissive free software designed to build efficiency with real-time applications. With more than 9 million downloads, OpenCV is typically used for interactive art, stitching maps on the web, mines inspections and advanced robotics.
Here at Akvelon, we help our clients throughout the world through innovative applications of software. We ideate, define and implement better ways of doing things, which create better processes to achieve better results.
Our very own team – Max Kostin and Evgeny Agafonchikov – worked to bring OpenCV into Windows Runtime realm. Most of OpenCV modules are now available to be used from WinRT CX/C++ code and components. Over 75,000++ lines of code through 15++ pull requests have been contributed and merged in since 2.4 – Remember, this is the most functional and fastest OpenCV to date! Through thousands of tests, OpenCV 3.0 is stable, and behaves successfully on every operating system.
What’s more are the multiple changes in 3.0, one in particular that called out our very own Max Kostin:
There are multiple improvements and bug-fixes for WinRT port (as well as Windows 8.x port) of OpenCV by Microsoft guys (big thanks to Max Kostin)!
In particular, parallel_for is enabled on WinRT, so the code should run much faster on multi-core devices.
Also, the WMF video capturing backend has been greatly improved.
What is WinRT?
What are the benefits of the WinRT improvements to OpenCV?
Developers can now mix Win8 code – based on WinRT and Windows Runtime for Modern apps – with OpenCV code. If they choose to use their existing codes, they can do that as well. Developers can also use XAML to define the screen layout (using the familiar XAML controls, binding, etc) and combine it with OpenCV code, or directly use the main screen as a drawing surface for OpenCV code. OpenCV can now also run within XAML Phone applications, so developers can use OpenCV in their apps and publish it to the Windows Phone store. As with WinRT, developers can use XAML, OpenCV or a combination of the two.
Thus, our work not only targets Windows 8/8.1, but also provides early access for developers to use OpenCV on Windows 10. This is very important when considering the transformation to Windows 10 and Windows 10 support for many of their internal and external products and technologies.
Furthermore, our latest contribution of open source code to the OpenCV project, completes the relevant OpenCV libraries to enable video modules to run on any modern Windows OS -Windows 8.1, Windows Phone 8.1, as well as Windows 10 preview.
Read more on Running Video with OpenCV and WinRT
OTHER CHANGE LOG HIGHLIGHTS:
- Over 200 bugs have been resolved/closed. It includes many fixes in docs, build scripts, python wrappers, core, imgproc, photo, features2d, objdetect, contrib modules, as well as some performance improvements etc.
- Added pthreads-based backend for cv::parallel_for_.
It means that all the parallel processing should be available out-of-the-box on any POSIX-compatible OS, including QNX and such. Try it out!
- OpenCV Manager on Android has been completely rewritten in Java and now supports both OpenCV 2.4 and 3.0. After a bit more testing we will put it to Google Play. The other inevitable news – they dropped support for nativecamera on Android.
- Improved version of rotation-invariant BRISK descriptor and LATCH binary descriptor that outperforms all presently available in OpenCV binary descriptors (ORB, BRIEF, AKAZE etc.) and is comparable with heavier and slower SURF.
- Over 80 pull requests have been merged in since 3.0 rc. Big thanks to all the people who submitted bug fixes, new functionality and other small and big improvements! This time special thanks goes to Philip (Dikay900) who did (and still does) excellent job on porting various bug fixes and other small improvements from 2.4 to master/3.0.
2.4 - 3.0 COMPATIBILITY
- “opencv2/core.hpp” and other such headers in addition to standard “opencv2/core/core.hpp”.
smart pointers (Ptr<>) can now be created in both 2.4 and 3.0 style (new ClassName(params) vs makePtr<ClassName>(params))
trained and stored stat models from opencv_ml 2.4 can now be loaded and used by opencv_ml 3.0 as-is.
- Standalone motion jpeg codec has been added to opencv_videoio. It does not need ffmpeg or any other 3rd-party lib. It’s much faster than ffmpeg, especially on ARM. For the decoder you should have JPEG support enabled (through built-in or external libjpeg). The decoder has been verified on such streams (avi files with index, where each frame is encoded using baseline jpeg) and few random motion jpeg clips from net, but we have not tested it thoroughly.
- Preliminary version of OpenCV HAL, low-level acceleration API beneath OpenCV, has been introduced. Currently it includes just a few math functions, but will grow soon. It also includes so-called “universal intrinsics”, inspired by NEON=>SSE conversion header. The idea is that one can use a single SIMD code branch that will compile to either SSE or NEON instructions depending on the target platform.