網路上有人提問:
我們現在有一個產品,光機構電子硬體成本價就要20000元。然而我們希望能夠在軟體方面節省,所以我們產品的作業系統採用Linux (Tinycore),開發工具採用QT + QTCreator ,也有使用到函式庫LIBUSB+OpenCV ,因為這些軟體都是GPL授權。那我們可否不用繳任何授權費,直接將我們的產品售出?
卻沒有人回答,因為牽扯法律與金錢,沒人有把握回答,只能蒐集資料如下:
利用以下關鍵字來進行搜尋:
opencv sell copies commercial use, commercial applicationsCommercial Licensepurchase license fee pay royalties payment
得到以下資訊:
http://stackoverflow.com/questions/19312308/opencv-for-commercial-use
The OpenCV license allows you to distribute it as a binary with or without modification. You can incorporate it into a proprietary software as long as you're not using the nonfree module.
OpenCV is distributed under a 3-clause BSD license:
IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
By downloading, copying, installing or using the software you agree to this license. If you do not agree to this license, do not download, install, copy or use the software.
License Agreement For Open Source Computer Vision Library
Copyright (C) 2000-2008, Intel Corporation, all rights reserved. Copyright (C) 2008-2011, Willow Garage Inc., all rights reserved. Third party copyrights are property of their respective owners.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
The name of the copyright holders may not be used to endorse or promote products derived from this software without specific prior written permission.
This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the Intel Corporation or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the redistribution of covered software. This is in contrast to copyleft licenses, which have reciprocity share-alike requirements. The original BSD license was used for its namesake, the Berkeley Software Distribution (BSD), a Unix-like operating system. The original version has since been revised and its descendants are more properly termed modified BSD licenses.
http://en.wikipedia.org/wiki/BSD_license
Two variants of the license, the New BSD License/Modified BSD License (3-clause),[1] and the Simplified BSD License/FreeBSD License (2-clause)[2] have been verified as GPL-compatible free software licenses by the Free Software Foundation, and have been vetted as open source licenses by the Open Source Initiative,[3] while the original, 4-clause license has not been accepted as an open source license and, although the original is considered to be a free software license by the FSF, the FSF does not consider it to be compatible with the GPL due to the advertising clause.[4]
http://en.wikipedia.org/wiki/GNU_General_Public_License
The GNU General Public License (GNU GPL or GPL) is the most widely used[5] free software license, which guarantees end users (individuals, organizations, companies) the freedoms to use, study, share (copy), and modify the software. Software that allows these rights is called free software. The license was originally written by Richard Stallman of the Free Software Foundation (FSF) for the GNU project.
On Wed, 2011-08-31 at 14:08 +0000, papaonn wrote:
also openCV uses some algorithm protected by patent (sometimes not to
be discovered by a normal users),
so my question is,
if i am to commercialize my product based on openCV,
do i pay those royalty fees?
how do i check if any of them are IP protected?
In real life if you get rich, you get sued anyway. Patents are just tool
for those bad companies who want to force you out of business or get
your money. Not much to do with intellectual property anymore.
Tõnu
http://opencv.org/
OpenCV is released under a BSD license and hence it’s free for both academic and commercial use. It has C++, C, Python and Java interfaces and supports Windows, Linux, Mac OS, iOS and Android. OpenCV was designed for computational efficiency and with a strong focus on real-time applications. Written in optimized C/C++, the library can take advantage of multi-core processing.
Enabled with OpenCL, it can take advantage of the hardware acceleration of the underlying heterogeneous compute platform. Adopted all around the world, OpenCV has more than 47 thousand people of user community and estimated number of downloads exceeding 7 million. Usage ranges from interactive art, to mines inspection, stitching maps on the web or through advanced robotics.
http://answers.ros.org/question/34557/opencv-patent/
I found that some algorithms included in openCV are patented:
SIFT
SURF
I'm not sure if there is any other algorithm patented.
I find this at sift.cpp:
Note that restrictions imposed by this patent (and possibly others) exist independently of and may be in conflict with the freedoms granted in this license, which refers to copyright of the program, not patents for any methods that it implements. Both copyright and patent law must be obeyed to legally use and redistribute this program and it is not the purpose of this license to induce you to infringe any patents or other property right claims or to contest validity of any such claims. If you redistribute or use the program, then this license merely protects you from committing copyright infringement. It does not protect you from committing patent infringement. So, before you do anything with this program, make sure that you have permission to do so not merely in terms of copyright, but also in terms of patent law.
Are this algorithms included in ROS package? Can we use them in commercial applications?
Thank you
The OpenCV license allows its use in commercial applications. However, the SIFT and SURF algorithms are patented. If you use one in a commercial application, you may be open to a patent suit. Here's a pertinent thread from the opencv-users list. If you need to use SIFT or SURF you should protect yourself by contacting the patent owner to find out if you need to pay royalties.
I am not a lawyer, so I'm not going to claim to be 100% correct, but I do know that the purpose of a patent is to ensure that the creator of the work receives proper recognition and compensation for his/her work. My interpretation is such that if you make money using a patented algorithm, you are responsible for compensating the patent holder approrpriately. The patent holder has the right to decide what counts as "fair" compensation. Some patent holders just want to receive credit in the form of a "thank you", but some want money. Only the patent holder can make that decision, since the work belongs to him/her.
http://docs.opencv.org/modules/nonfree/doc/nonfree.html
The module contains algorithms that may be patented in some countries or have some other limitations on the use.
Feature Detection and Description
SIFT
SIFT::SIFT
SIFT::operator ()
SURF
SURF::SURF
SURF::operator()
gpu::SURF_GPU
ocl::SURF_OCL
http://www.wisegeek.com/what-is-opencv.htm
Open Source Computer Vision (OpenCV) is an open source
computer programming library developed to support applications that use computer vision. It provides hundreds of functions for the capture, analysis, and manipulation of visual data and can eliminate some of the hassle programmers face when developing applications that rely on computer vision. Portions of the library also provide
user interface and pattern recognition functions. OpenCV has been employed in both practical and creative applications including self-piloting vehicles and new forms of digital art.
Programming libraries provide common functions or complex capabilities that developers can use in their programs. The
OpenCV library contains hundreds of functions that support the capture, analysis, and manipulation of visual information fed to a computer by webcams, video files, or other types of devices. Simple functions might be used to draw a line or other shape on a screen, while the more advanced portions of the library contain algorithms for detecting faces, tracking motion, and analyzing shapes. Many of this library’s algorithms are related to specific uses of computer vision including product inspection, medical imaging, robotics, facial and gesture recognition, and human-computer interaction (HCI). As an
open source programming library, OpenCV can be used with very few restrictions in both commercial and hobbyist projects.
With OpenCV, a developer can eliminate some of the complex and tedious work that goes into making computer vision function reliably and focus on building the application. Rather than creating algorithms for facial recognition and the like, a
programmer can add just a few lines of code to have a program access the appropriate library function. It also means a programmer does not need to master every aspect of computer vision to build a program that uses it.
In addition to the core video and image processing functionality, OpenCV contains secondary modules intended to support other areas of an application. One of these modules includes machine learning algorithms that can analyze and predict visual patterns. The HighGUI module provides user interface elements as well as functions for storing and accessing video and image files.
The OpenCV library can be found at the heart of some vary ambitious projects. Along with an assortment of sensors, computer hardware, and custom tailored software, it powered a heavily modified sport utility vehicle that navigated a 132 mile (212 km) desert race course without human intervention. Not all projects that rely on the library’s resources are so practical, however. Some members of the creative coding movement, a loose confederacy of people who view programming as a form of expression, have used the library to create new forms of digital art. Others have hacked existing devices containing cameras and opened up new possibilities for gaming,
interactive computing, and even telepresence.
=================================================================================
Emgu CV is a cross platform .Net wrapper to the OpenCV image processing library. Allowing OpenCV functions to be called from .NET compatible languages such as C#, VB, VC++, IronPython etc. The wrapper can be compiled in Mono and run on Windows, Linux, Mac OS X, iPhone, iPad and Android devices.
Commercial License for Windows
Developer License for Windows
Allows for a
single developer to install and use Emgu CV for Windows on
unlimited workstations for development and
to deploy Emgu CV on unlimited clients as per
License Terms and Conditions.
- Price: $ 199 USD for a single developer
Work Group License for Windows
Allows for
up to 25 developers to install and use Emgu CV for Windows on unlimited workstations for development and to deploy Emgu CV on unlimited clients as per
License Terms and Conditions.
- Price: $ 399 USD for the whole work group
=================================================================================
People have been using it in several platforms and devices, and so have I.
The only realiable way I know to distribute an OpenCV application is to build the library yourself and ship the OpenCV binaries along with your application.
There are tools out there that can help you list and retrieve the libraries needed by your app:
=================================================================================
You don't need to install OpenCV in the computers if you don't have permission to do so.
Place the OpenCV libraries and it's dependencies somewhere in the system and before you execute your application make sure you adjust LD_LIBRARY_PATH to add these paths.
1) Install GCC 4.7.3
sudo apt-get update
sudo apt-get install build-essential
2) Install CMake 2.8.10.1
sudo apt-get install cmake cmake-curses-gui
cd ~/Downloads
tar -xf opencv-2.4.5.tar.gz
cd opencv-2.4.5
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4
sudo make install
cd ../..
rm -rf opencv-2.4.5*
========================================================================
I have a solution in VS 2010 that calls several OpenCV functions. Now I want to deploy (release) this project to use in another machine that doesn't have OpenCV. I don't want to install OpenCV on the other machine.
I know that I need several dll files, is there any automatic method that can collect all the desired files and put them together with the released .exe file so I can just send/copy this folder ?