OpenCV 26 年:一個 Intel 內部專案,怎麼變成全世界 CV 工程師的基本盤

1999 年 Intel 研究實驗室的場景重現

打開任何一本電腦視覺教科書、隨便點開一篇 GitHub 上的 CV 專案,你很可能會看到那一行熟悉的 import cv2。這個 cv2 背後是一個叫做 OpenCV 的開源函式庫——我們現在覺得它就跟空氣一樣理所當然,但它走到今天,其實非常曲折。

它一開始不是一個正經的學術計畫,也不是某個天才博士論文的副產品。它是 Intel 內部一個拉抬 CPU 銷量的「公關專案」,差點在 dot-com 泡沫崩潰時無聲消失,後來經歷三次組織轉手,才在 2026 年 6 月迎來八年來最大一次改版:OpenCV 5.0 直接把 LLM 與 VLM 塞進這個函式庫裡面。

這篇就來講這個故事——不講太多技術,主要講人、講組織、講為什麼一個函式庫可以撐 26 年還越長越壯。

故事的起點:一個叫 Gary Bradski 的人

要講 OpenCV,就一定要從 Gary Bradski 講起。1990 年代末,他在 Intel 的 Microprocessor Research Lab 工作,當時 Intel 一直在找方法讓自家 CPU「賣得出去」——你 CPU 越強,總得有東西可以拿來算吧?所以 Intel 開了一堆「拉抬 CPU 運算密集應用」的計畫,包括即時光線追蹤、3D 顯示牆等等。

Bradski 那時去拜訪了 MIT Media Lab、CMU、史丹佛這些頂尖學校的視覺實驗室,他注意到一件很有趣的事——每個學校的研究生都把學長姊寫過的 CV 程式碼當作起點,互相傳承、從來不必從零造輪子。可是這種「內部福利」外面拿不到。

於是他和一群 Intel Russia 的最佳化專家、Intel Performance Library 團隊一起,把這套「共享 CV 程式碼」的概念變成一個對外開源的函式庫。Bradski 自己在受訪時這樣描述目標:

我們希望降低電腦視覺的入門門檻,把它民主化,讓任何人都可以把 machine perception 用在自己的專案裡。

他這段話講得很 Silicon Valley、很官腔,但骨子裡 Intel 的算盤其實也很直白:有更多人寫 CV 應用,就有更多人需要強的 CPU。商業誘因和理想主義在這個案子上剛好對齊。

1999–2008:漫長的 Beta 與差點消失的十年

OpenCV 的第一個 alpha 版在 1999 年 1 月內部釋出,那時候只支援 Windows、用 C 語言寫的、介面就是現在被吐槽的 IplImage 那一套。Wikipedia 上的 OpenCV 條目 寫得很清楚:對外正式亮相是 2000 年 6 月的 IEEE CVPR 大會。

然後它就進入了一段很漫長的 beta 期——2001 到 2005 連續發了五個 beta 版,1.0 正式版要等到 2006 年才釋出。為什麼這麼慢?因為 dot-com 泡沫破了,Intel 內部裁員、轉向,這個專案有好一段時間連一個全職人員都沒有。

Bradski 自己後來回憶(這段在他 2014 年的 OpenCV 3.0 投影片 裡有提到):「1999 年初平均有 7 個人在做,2003 年 Intel 的正式支援下降到接近零,Willow Garage 接手前的幾年內部幾乎沒人在管。」聽起來夭壽。

那段空窗期 OpenCV 之所以還能持續發 beta,靠的不是 Intel 員工,而是一群俄羅斯工程師——Vadim Pisarevsky、Victor Eruhimov、Sergey Molinov、Alexander Shishkov。他們以開源志工的身份在外部維持核心開發,後來這幫人乾脆自己跑出來開了一家叫 Itseez 的公司,把 OpenCV 從志工模式轉成商業支援模式。這段故事很少被講,但這群俄羅斯人才是 OpenCV 沒死的原因。

時間軸演進的視覺隱喻

三次組織轉手:從 Intel 到 Willow Garage,再回到 Intel

OpenCV 的歷史不只是程式碼演進史,它的「組織歸屬」變過好幾次,而每一次轉手都讓它走向不同的方向。

時期主導組織影響
1999–2008Intel Research起源、C API、Windows-only
2008–2012Willow Garage機器人優先,順便讓它跨平台
2012 起OpenCV.org 基金會Bradski 與 Vincent Rabaud 共同創立
2012–2016Itseez商業支援俄羅斯團隊接手核心
2016/5/25 起Intel 收購 ItseezOpenCV 回到 Intel 體系

Willow Garage 那段特別關鍵。這家公司是矽谷做機器人的傳奇——同時維護 ROS(Robot Operating System) 、PCL(Point Cloud Library),以及 OpenCV 與 Willow Garage 的歷史關聯 。他們把 OpenCV 從一個「Windows 上的 Intel 函式庫」改造成真正跨平台的工具。Bradski 後來離開 Willow 自己創了 Industrial Perception(2013 年被 Google 收購),但 OpenCV 留在了基金會手裡。

2012 年 8 月 是另一個分水嶺——非營利的 OpenCV.org 基金會成立,Bradski 和 Vincent Rabaud(當時還在 Willow Garage 當研究工程師)一起主持。從這天起,OpenCV 真正脫離單一公司的控制,變成社群擁有的開源資產。

四年後,2016 年 5 月 25 日,Intel 又把 Itseez 收購回來——某種程度上像是「回娘家」。但 OpenCV.org 基金會仍然獨立運作,所以這次收購對開發節奏沒造成什麼震盪,反而讓 Intel 在硬體優化上資源更直接。

程式碼面的世代分水嶺

組織講完,講一下程式碼面那幾次真正重要的「世代交替」。我不會講細節,但你要知道有這幾個時間點:

  • 2009 年 10 月,OpenCV 2.0:從 C 介面切到 C++ 介面,引入 cv::Mat,自動記憶體管理、告別手動 cvRelease*() 地獄。寫過 1.x 的人會懂這有多解脫。
  • 2015 年的 3.0、2017 年的 3.3:DNN(深度學習)模組從 contrib 升到主 repo,OpenCV 第一次正式承認「我不再只是傳統 CV」。
  • 2018 年 11 月,OpenCV 4.0:移除大量舊 C API、預設 C++11、cv::Ptr 改成 std::shared_ptr 的薄包裝。這是「拆技術債」的第一次大手術。
  • 2026 年 6 月,OpenCV 5.0:8 年來最大改版,DNN 引擎全部重寫、ONNX 操作覆蓋率從 ~22% 提升到 80%+、內建 tokenizer 與 KV-cache 直接跑 LLM/VLM、徹底拋棄 legacy C API、C++17 變成最低標準。整個社群在 Hacker News 與 Phoronix 上熱烈討論了好幾天,份量等同當年 2.0 引入 C++、4.0 拆掉 C API 的世代分水嶺。

5.0 這次的衝擊力,業界討論最多的是兩件事:第一,OpenCV 變成可以直接跑 Qwen 2.5、Gemma 3、PaliGemma 等多模態模型的工具;第二,任何還在用 OpenCV 1.x C API 的舊專案,5.0 連編都編不過——必須留在 4.x 線上,或者咬牙改寫。

詳細的技術內容我會另外寫一篇深度文章去拆,這篇先按下不表。

為什麼一個 26 歲的函式庫還沒死?

這才是這篇真正想問的問題。我們這行的工具淘汰速度誇張到不行——React 18 出來才幾年大家又在罵框架太多了,但 OpenCV 從 1999 撐到 2026 還越長越壯,為什麼?

我覺得答案要從底層問題開始講起。OpenCV 解的東西——讀檔、色彩空間轉換、幾何變換、形態學、輪廓、邊緣、特徵——這些 1999 年是這樣,2026 年還是這樣。沒人會發明新的「灰階轉換」。當別的庫拼命追潮流時,OpenCV 守住的是「水電」級的需求。

而它真正能穿越週期的關鍵,在於它一直緊貼著硬體節奏走。從 Intel 的 MMX/SSE/AVX,到 NVIDIA 的 CUDA、ARM 的 NEON、Apple Silicon、RISC-V 的 RVV 1.0,每一波新指令集 OpenCV 都會跟上。這也是 Intel 願意花錢收 Itseez 的真正理由——它就是 Intel CPU 在 CV 領域的「行銷展示櫃」。商業誘因和技術理想再一次重合。

教學資源這層更是新工具兩三年內追不上的護城河。PyImageSearchLearnOpenCV 、Bradski 本人寫的 Learning OpenCV——這些教材累積了 20 年。新人進來,只要 Google「OpenCV + 我想做的事」幾乎一定有現成教學跑。這種文化資產,光是「快」是買不到的。

最後一點我自己最佩服——5.0 證明它願意自我革命。一個函式庫敢在 4.x 已經很穩定的情況下,砍掉 C API、把 DNN 整個重寫、把 LLM 也納進來,這在開源世界並不常見。很多老專案最後死於「不敢改」,OpenCV 用 5.0 告訴大家它不在那個名單裡。

視覺與感知的螺旋演化

結語:歷史的重量會變成新人的福氣

我自己第一次裝 OpenCV 大概是 2018 年,那時候只是想做一個 Webcam 人臉偵測的玩具,根本沒在管背後這 19 年發生過什麼事。後來開始追新版本變化,才發現這個函式庫的故事比技術本身還精彩——一個專案能熬過 dot-com 崩盤、熬過三次組織轉手、又熬過深度學習對傳統 CV 的「降維打擊」,每一次都換了一張皮繼續活下來。

對 2026 年才開始學電腦視覺的人來說,OpenCV 26 年累積的歷史重量其實是禮物。所有可能踩的坑前人都踩過了,所有可能寫的範例 GitHub 上都有,連 OpenCV University 也有完整的官方課程。你只要願意動手,剩下的就是時間問題。

接下來的第二篇會帶你用幾十行 Python 跑完三個遞進的 CV 範例;第三篇則深拆 OpenCV 5.0 為什麼是世代分水嶺。沒碰過 CV 的人從第二篇開始最舒服;想看技術細節就直接跳到第三篇。

延伸閱讀

沒有留言:

張貼留言

TTS 文字轉語音完全指南:技術原理、聲音克隆與 2026 選型實戰

前陣子我在測 Qwen3-TTS,官方技術報告寫著首包延遲 97ms,聽起來就是為即時對話而生的。結果我照官方範例跑起來,按下生成、等了整整 10 秒才聽到第一個字。乾,差了一百倍。 這不是我環境爛,而是 TTS 這個領域的日常:論文數字、行銷頁數字、你實際跑出來的數字,是三個...