OpenCV
From Wikipedia, the free encyclopedia
Design by | original by Intel, and now it is on sourceforge.net for everyone |
---|---|
Latest release | 1.1 pre / 2008-10-15 |
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, PSP, 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.
Contents |
[edit] 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 first 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 first 1.0 version was released in 2006. In mid 2008, OpenCV obtained corporate support from Willow Garage,[1] and is now again under active development. A version 1.1 "pre-release" was released in October 2008, and a book by two authors of OpenCV published by O'Reilly went on the market that same month (see Learning OpenCV: Computer Vision with the OpenCV Library).
[edit] Applications
OpenCV's application areas include:
- 2D and 3D feature toolkits
- Ego-motion
- Face Recognition
- Gesture Recognition
- Human-Computer Interface (HCI)
- Mobile robotics
- Motion Understanding
- Object Identification
- Segmentation and Recognition
- Stereopsis Stereo vision: depth perception from 2 cameras
- Structure from motion (SFM)
- Motion Tracking
To support some of the above areas, OpenCV includes a statistical machine learning library that contains:
- Boosting
- Decision Trees
- Expectation Maximization
- k-nearest neighbor algorithm
- Naive Bayes classifier
- Artificial neural networks
- Random forest
- Support Vector Machine
[edit] Programming language
The library is mainly written in C, which makes 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.
[edit] 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 used for foundation classes within the PlayMotion VisionSDK, a computer vision library specifically tailored to the needs of human-scale videogame and entertainment design.
- 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]
[edit] OS Support
OpenCV runs under Linux, Mac OS and Windows. The user can get official releases from sourceforge, or take the current snapshot under SVN from there. OpenCV now uses CMake.
[edit] 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.
[edit] 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. http://imagelab.ing.unimo.it/vssn05/.
- ^ "CVCell" - Module developed by Fixstars that accelerates OpenCV Library for the Cell/B.E. processor
[edit] External links
- OpenCV on SourceForge
- OpenCV Documentation Wiki
- Most active OpenCV forums on Yahoo Groups
- (Chinese) Chinese OpenCV Site
- Guide to OpenCV at Leeds University
- Introduction to programming with OpenCV
[edit] See Also
- VxL, an alternative library written in C++.