OpenCV
Original author(s) | original by Intel, and now it is on sourceforge.net for everyone |
---|---|
Stable release | 1.1 pre
/ October 15, 2008 |
Repository | |
Operating system | Cross-platform |
Type | Library |
License | BSD license |
Website | http://opencvlibrary.sourceforge.net/ |
OpenCV is a computer vision library originally developed by Intel. It is free for commercial and research use under a BSD license. The library is cross-platform, and runs on Windows, Mac OS X, Linux, VCRT (Real-Time OS on Smart camera) and other embedded devices. It focuses mainly on real-time image processing, as such, if it finds Intel's Integrated Performance Primitives on the system, it will use these commercial optimized routines to accelerate itself.
Released under the terms of the BSD license, OpenCV is open source software.
History
Officially launched in 1999, the OpenCV project was initially an Intel Research initiative to advance CPU-intensive applications, part of a series of projects including real-time ray tracing and 3D display walls. The main contributors to the project included Intel’s Performance Library Team, as well as a number of optimization experts in Intel Russia. In the early days of OpenCV, the goals of the project were described as
- Advance vision research by providing not only open but also optimized code for basic vision infrastructure. No more reinventing the wheel.
- Disseminate vision knowledge by providing a common infrastructure that developers could build on, so that code would be more readily readable and transferable.
- Advance vision-based commercial applications by making portable, performance-optimized code available for free—with a license that did not require commercial applications to be open or free themselves.
The official alpha version of OpenCV was released to the public at the IEEE Conference on Computer Vision and Pattern Recognition in 2000, and five betas were released between 2001 and 2005. The official 1.0 version was released in 2006, and later became a part of Willow Garage.[1]
Applications
OpenCV's application areas include
- Human-Computer Interface (HCI)
- Object Identification
- Segmentation and Recognition
- Face Recognition
- Gesture Recognition
- Motion Tracking
- Ego-motion
- Motion Understanding
- Structure from motion (SFM)
- Stereopsis Stereo vision: depth perception from 2 cameras
- Mobile Robotics
To support some of the above areas, OpenCV includes a statistical machine learning library that contains:
- Naive Bayes classifier
- k-nearest neighbor algorithm
- Support Vector Machine
- Decision Trees
- Boosting
- Random forest
- Expectation Maximization
- Neural Networks
Programming language
The library is mainly written in C, which make it portable to some specific platforms such as Digital signal processor. But wrappers for languages such as C# and Python have been developed to encourage adoption by a wider audience.
Successful applications
- OpenCV was of key use in the vision system of Stanley, the winning entry to the 2005 DARPA Grand Challenge race.
- OpenCV is widely used in video surveillance systems.[2]
- OpenCV is the key tool in the software SwisTrack, an open source multi-agent tracking tool.
- OpenCV has been optimized for the Cell microprocessor. The company that did the port claims a single Playstation 3 running Linux, with only 6 of the 8 SPUs in a full Cell BE, achieves up to 27x the performance of an Intel Core2Duo 2.4 GHz. [3]
Windows prerequisites
The DirectShow SDK is required to build some camera input-related parts of OpenCV on Windows. This SDK is found in the Samples\Multimedia\DirectShow\BaseClasses subdirectory of the Microsoft Platform SDK, which must be built prior to the building of OpenCV.
References
- ^ Bradski, G.; Kaehler, A. (2008), Learning OpenCV: Computer Vision with the OpenCV Library
- ^ "3rd ACM International Workshop on Video Surveillance & Sensor Networks". VSSN'05.
- ^ "CVCell" - Module developed by Fixstars that accelerates OpenCV Library for the Cell/B.E. processor