從OpenCV看開源社區的商業性

2020-11-14 張麟博士

導讀:在技術領域生存,你是不是經常問自己,那些開源社區是如何產生的?又如何生存的?開源社區和商業領域是不是敵對關係?他們是如何博弈的。開源究竟是一種精神,還是一種手段?本文就試圖從機器視覺領域最為著名的開源庫OpenCV說起,聊一聊開源社區的那些事。


1、什麼是開源社區?

文化是一個群體團結在一起最為重要的精神核心。一個好的團體,需要一個共同的價值觀和文化信仰。我們可以從百科對「開源社區」的定義來看出其中的端倪。

「開源社區又稱開放原始碼社區,一般由擁有共同興趣愛好的人所組成,根據相應的開源軟體許可證協議公布軟體原始碼的網絡平臺,同時也為網絡成員提供一個自由學習交流的空間。由於開放源碼軟體主要被散布在全世界的編程者所開發,開源社區就成了他們溝通交流的必要途徑,因此開源社區在推動開源軟體發展的過程中起著巨大的作用。」

從這個定義中,我們可以看到開源精神,是為了人類的知識共同體而奮鬥,是分享和奉獻。然而,沒有物質基礎,精神就無所依存,那麼開源社區的物質基礎在哪裡呢?

我們從OpenCV的初心開始,可以看到一些端倪。


2、OpenCV的起源

在《learning OpenCV》中,寫了這麼一段,「OpenCV」誕生於Intel研究中心,其目的是為了促進CPU密集型應用。為了達到這個目的,Intel啟動了多個項目,包括實時光線追蹤和三維顯示牆等。

一個在Intel工作的OpenCV作者在訪問一些大學時,注意到許多頂尖大學擁有很好的內部使用的開放計算機視覺庫,這些是在學生中傳播的代碼,可以幫助新生從高的起點開始他們的計算機視覺研究。

因此,OpenCV的目的是開發一個普遍可用的計算機視覺庫。在最初,OpenCV有三大目標:

  • 【1】為基本的視覺應用提供開放且優化的原始碼,以促進視覺研究的發展。能有效地避免「閉門造車」。
  • 【2】通過提供一個通用的架構來傳播視覺知識,開發者可以在這個架構上繼續開展工作,所以代碼應該是非常易讀且可改寫的。
  • 【3】 採用的協議不要求商業產品繼續開放原始碼,這使得可移植的、性能被優化的代碼可以自由獲取,可以促進基於視覺的商業應用的發展。

這些目標,說明了OpenCV的緣起。計算機視覺應用的發展會增加對快速處理器的需求。與單獨銷售軟體相比,促進處理器的升級會為Intel帶來更多的收入。

這也許就是為什麼這個開放且免費的庫出現在一家硬體生產企業中,而不是一家軟體公司中。從某種程度上說,在一家硬體公司裡,在軟體方面會有更多創新的空間。


3、VTK開源庫的起源


Vtk,(visualization toolkit)是一個開源的免費軟體系統,主要用於三維計算機圖形學、圖像處理和可視化。Vtk是在面向對象原理的基礎上設計和實現的,它的內核是用C++構建的,包含有大約250,000行代碼,2000多個類,還包含有幾個轉換界面,因此也可以自由的通過Java,Tcl/Tk和Python各種語言使用vtk。


VTK最早是作為《The Visualization Toolkit: An Object-Oriented Approach to 3DGraphics》這本書的附件給出的,類似於著作的輔助軟體庫。這本書和軟體都是GE研發部的三位研究人員:Will Schroeder、Ken Martin與Bill Lorensen用其閒暇時間合作,在獲得GE公司的許可下完成的。後來,其中的兩位 Will Schroeder和Ken Martin在1998年時離開GE,創立了Kitware公司。

VTK社群成長快速,在學術研究及商業應用的領域受到重用,例如Slicer 生物醫學計算軟體使用VTK作為其核心,許多討論研究VTK的IEEE論文出現。VTK也是許多大型研究機構如Sandia, Los Alamosn及Livermore國家實驗室與Kitware的合作基礎。這些研究中心使用VTK來作為視覺化資料的基礎處理工具。 VTK亦是新創的美國國家衛生研究院所規劃,作為開發未來計算工具之基石的美國國家醫學影像計算合作聯盟(National Alliance for Medical Image Computing, NA-MIC)的關鍵計算工具。

因此,vtk獲得了很多大型企業的研究項目和開發項目。這算是科研的盈利模式。

4、結論

開源社區,確實是以開放為其基本精神的,為了分享和貢獻。而這一現象後面,一定深藏著某種意義上的「盈利」。

那些開源社區是如何產生的?又如何生存的?開源社區和商業領域是不是敵對關係?他們是如何博弈的。開源究竟是一種精神,還是一種手段?

開源的產生,我認為首先來自於對於自由的嚮往,自由背後是全人類的奉獻。同時,又因為各方面的因素,使得開源和商業有著錯綜複雜的關係。在很多場合,是敵對的,而很多時候又是共贏的。

正如老子說的「夫唯不爭,故天下莫能與之爭」,也就是「我為人人,人人為我」。也許,這也是企業的社會責任和個人的社會責任的統一吧。



相關焦點

  • OpenCV:強大的開源計算機視覺庫
    下面小編將為您介紹如何在自己的平臺上安裝OpenCV以及推薦一些不錯的學習資源~安裝OpenCV作為一款成熟的跨平臺開源軟體,OpenCV的安裝也是非常簡單的。下面將介紹在不同平臺上安裝OpenCV的方法。
  • 金山衛士開源社區英文版上線
    3月10日,金山衛士開源社區英文版正式上線(點擊下圖進入),為海外開發者加入到開源社區中提供更好的服務。據金山員工稱,這是國內安全軟體領域第一個面向海外開發者群體的開源社區。
  • OpenCV 4.1.2 發布,Intel 開源的計算機視覺庫
    OpenCV 是 Intel 開源計算機視覺庫。它由一系列 C 函數和少量 C++ 類構成,實現了圖像處理和計算機視覺方面的很多通用算法。
  • Opencv-Python簡介
    剛開始接觸Opencv的時候,使用的是C++版本的,一邊學C++,一邊跟著opencv教材實現裡面的圖像處理操作,將一張曝光不足,黑暗的圖像經過直方圖均衡化變得清晰,感覺很神奇,原圖直方圖均衡化處理之後又接觸到了python版本的opencv
  • OpenCV 4.3.0 發布,OPEN AI LAB Tengine 與OpenCV合作共同加速...
    OpenCV是一個基於BSD許可(開源)發行的跨平臺計算機視覺庫,可以運行在Linux、Windows、Android和Mac OS作業系統上。此次發布Tengine作為OpenCV的一部分,讓OpenCV開源社區生態更全面和豐富,同時也讓Tengine能夠面向更廣泛的全球開發者。從產業角度看,這次合作也將推動AI賦能產業的步伐,進一步加快AIoT行業智能化建設節奏。這也是Tengine全球化開源進程邁出的重要一步!
  • OpenCV組織結構框圖
    再往下是opencv_contrib中的代碼,主要包含更高級別的功能。之後是OpenCV的核心,最底層的是各種硬體優化硬體加速層(HAL)。 圖1是opencv的組織架構。OpenCV的主要文檔是http://opencv.org上提供的HTML文檔。OpenCV 2.x提供了完整的參考手冊和一系列教程,全部為PDF格式; 檢查opencv / doc。 從OpenCV 3.x開始,沒有脫機文檔了。
  • OpenCV 4.4.0 發布,Intel 開源的計算機視覺庫
    OpenCV 是 Intel 開源計算機視覺庫,它實現了圖像處理和計算機視覺方面的很多通用算法。詳細內容可查看更新說明:​​​​https://github.com/opencv/opencv/wiki/ChangeLog
  • 2 OpenCV組織結構框圖
    再往下是opencv_contrib中的代碼,主要包含更高級別的功能。之後是OpenCV的核心,最底層的是各種硬體優化硬體加速層(HAL)。 圖1是opencv的組織架構。OpenCV的主要文檔是http://opencv.org上提供的HTML文檔。OpenCV 2.x提供了完整的參考手冊和一系列教程,全部為PDF格式; 檢查opencv / doc。 從OpenCV 3.x開始,沒有脫機文檔了。
  • OpenCV 3.1 發布,計算機視覺庫
    OpenCV 3.1 發布,此版本更新內容如下:此版本是 3.x 系列的第一個穩定版本,詳細改進內容請看發行說明。
  • 基於代碼、社區,兩步成為開源贏家!
    當然是開源的那種。全球有數以千萬計的開發者使用的是開源平臺,因為他們可以訪問它的代碼,修改應用程式,為項目貢獻代碼並成為社區的一份子。因此,建立在開源基礎上的軟體公司擁有成為有數十億美元級別企業的潛能。但是,開源軟體的本質在於免費,如何高效變現就成為一個巨大的挑戰。
  • 基於代碼、社區,兩步成為開源贏家
    當然是開源的那種。全球有數以千萬計的開發者使用的是開源平臺,因為他們可以訪問它的代碼,修改應用程式,為項目貢獻代碼並成為社區的一份子。因此,建立在開源基礎上的軟體公司擁有成為有數十億美元級別企業的潛能。但是,開源軟體的本質在於免費,如何高效變現就成為一個巨大的挑戰。
  • OpenCV 3.0之後三年半,OpenCV 4.0出爐
    OpenCV 是英特爾開源的跨平臺計算機視覺庫。也就是說,它是一套包含從圖像預處理到預訓練模型調用等大量視覺 API 的庫,並可以處理圖像識別、目標檢測、圖像分割和行人再識別等主流視覺任務。OpenCV 最顯著的特點是它提供了整套流程的工具,因此我們根本不需要了解各個模型的原理就能一個個 API 構建視覺任務。
  • 快速學習OpenCV《一》
    OpenCV是什麼:一個基於BSD許可(開源)發行的跨平臺計算機視覺庫,主要實現了圖像處理和計算機視覺方面的很多通用算法,其主要由C++語言開發,但保留了大量的C語言接口,也包含大量的python,java和matlab的接口,如今,也提供了對Cinclude <opencv2/opencv.hpp>34;..
  • Java調用OpenCV(第1講)
    OpenCV是開源的、跨平臺的計算機視覺和機器學習軟體庫。今天帶來Java調用OpenCV系列的第一講,介紹怎樣安裝和調用。然後,前往opencv網站,下載「opencv-4.5.0-vc14_vc15」安裝包。啟動eclipse,創建一個Java Project,再創建一個mytest類,包含main入口。
  • SpringBoot使用OpenCV總結
    前言最近有個項目需要對圖片圖像進行處理,使用到了開源框架平臺直接可以在官網下載opencv-3.4.10-vc14_vc15.exe安裝即可,安裝完會出現opencv文件夾在build\java目錄下有我們需要的opencv-3410.jar,x64/opencv_java3410.dll,x86/opencv_java3410.dll文件;
  • 僅用一年即成中國最具活力的開源社區,openEuler何以破局?
    由此,openEuler的身份發生了巨大變化,其不僅僅是作業系統,而是一個極具活力的開源社區,它與作業系統建立緊密的聯繫,形成關聯的正循環:社區的開源讓作業系統不斷進化、迭代,吸引更多的企業和個人加入其中,進而讓開源社區的活躍度不斷增加……在openEuler開源社區的願景中這樣寫道:「通過社區合作,打造創新平臺,構建支持多處理器架構、統一開放的作業系統社區,推動軟硬體生態繁榮。」
  • opencv4.4.0+VS2019安裝
    安裝opencv4.4.0下載opencvhttps://opencv.org/releases/選擇Windows 會自動下載opencv-4.4.0-vc14_vc15.exe。完成opencv的安裝安裝Visual Studio 2019下載免費社區版的Visual Studio 2019
  • 社區大於代碼 從Apache看中國開源發展
    而從中國開源市場的發展來看,近幾年來,越來越多的社區高舉大旗、湧入開源,越來越多的企業敞開胸懷、擁抱開源,從而營造出一片蓬勃向上的積極態勢。  當然,與國外成熟的開源社區相比,中國的開源市場還處於發展的初級階段。那麼,如何能藉助當前這一熱潮,學習更多國外的建設經驗,從而更快地追趕全球步伐?
  • Intel 開源計算機視覺庫 OpenCV 4.4.0 發布 SIFT算法已移至主存儲庫
    OpenCV是Intel開源計算機視覺庫,它實現了圖像處理和計算機視覺方面的很多通用算法。詳細內容可查看更新說明:https://github.com/opencv/opencv/wiki/ChangeLog快來,小夥伴們都在學OpenVINO!
  • 簡述OpenCV基本原理和使用方法
    OpenCV 是一個開源的計算機視覺庫,1999 年,Gary Bradski當時在英特爾任職,懷著通過為計算機視覺和人工智慧的從業者提供穩定的基礎架構並以此來推動產業發展的美好願景,他啟動了 OpenCV 項目。