計算機視覺(Computer vision)是一門研究如何使機器“看”的科學,更進一步的說,就是指用攝影機和計算機代替人眼對目標進行識別、跟蹤和測量等機器視覺,並進一步做圖像處理,用計算機處理成爲更適合人眼觀察或傳送給儀器檢測的圖像。 作爲一門科學學科,計算機視覺研究相關的理論和技術,試圖建立能夠從圖像或者多維數據中獲取「信息」的人工智能系統。這裏所指的信息指香農定義的,可以用來幫助做一個“決定”的信息。因爲感知可以看作是從感官信號中提取信息,所以計算機視覺也可以看作是研究如何使人工系統從圖像或多維數據中“感知”的科學。 作爲一個工程學科,計算機視覺尋求基於相關理論與模型來建立計算機視覺系統。這類系統的組成部分包括:

過程控制(例如工業機器人和無人駕駛汽車) 事件監測(例如圖像監測) 信息組織(例如圖像數據庫和圖像序列的索引建立) 物體與環境建模(例如工業檢查,醫學圖像分析和拓撲建模) 交感互動(例如人機互動的輸入設備) 計算機視覺同樣可以被看作是生物視覺的一個補充。在生物視覺領域中,人類和各種動物的視覺都得到了研究,從而建立了這些視覺系統感知信息過程中所使用的物理模型。另一方面,在計算機視覺中,靠軟件和硬件實現的人工智能系統得到了研究與描述。生物視覺與計算機視覺進行的學科間交流爲彼此都帶來了巨大價值。 計算機視覺包含如下一些分支:畫面重建,事件監測,目標跟蹤,目標識別,機器學習,索引建立,圖像恢復等。

計算機視覺的發展現狀

計算機視覺領域的突出特點是其多樣性與不完善性。 這一領域的先驅可追溯到更早的時候,但是直到20世紀70年代後期,當計算機的性能提高到足以處理諸如圖像這樣的大規模數據時,計算機視覺纔得到了正式的關注和發展。然而這些發展往往起源於其他不同領域的需要,因而何謂“計算機視覺問題”始終沒有得到正式定義,很自然地,“計算機視覺問題”應當被如何解決也沒有成型的公式。 儘管如此,人們已開始掌握部分解決具體計算機視覺任務的方法,可惜這些方法通常都僅適用於一羣狹隘的目標(如:臉孔、指紋、文字等),因而無法被廣泛地應用於不同場合。 對這些方法的應用通常作爲某些解決複雜問題的大規模系統的一個組成部分(例如醫學圖像的處理,工業製造中的質量控制與測量)。在計算機視覺的大多數實際應用當中,計算機被預設爲解決特定的任務,然而基於機器學習的方法正日漸普及,一旦機器學習的研究進一步發展,未來「泛用型」的電腦視覺應用或許可以成真。 人工智能所研究的一個主要問題是:如何讓系統具備「計劃」和「決策能力」?從而使之完成特定的技術動作(例如:移動一個機器人通過某種特定環境)。這一問題便與計算機視覺問題息息相關。在這裏,計算機視覺系統作爲一個感知器,爲決策提供信息。另外一些研究方向包括模式識別和機器學習(這也隸屬於人工智能領域,但與計算機視覺有着重要聯繫),也由此,計算機視覺時常被看作人工智能與計算機科學的一個分支。 物理是與計算機視覺有着重要聯繫的另一領域。 計算機視覺關注的目標在於充分理解電磁波——主要是可見光與紅外線部分——遇到物體表面被反射所形成的圖像,而這一過程便是基於光學物理和固態物理,一些尖端的圖像傳感器甚至會應用到量子力學理論,來解析影像所表示的真實世界。同時,物理學中的很多測量難題也可以通過計算機視覺得到解決,例如流體運動。也由此,計算機視覺同樣可以被看作是物理學的拓展。 另一個具有重要意義的領域是神經生物學,尤其是其中生物視覺系統的部分。 在整個20世紀中,人類對各種動物的眼睛、神經元、以及與視覺刺激相關的腦部組織都進行了廣泛研究,這些研究得出了一些有關“天然的”視覺系統如何運作的描述(儘管仍略嫌粗略),這也形成了計算機視覺中的一個子領域——人們試圖建立人工系統,使之在不同的複雜程度上模擬生物的視覺運作。同時計算機視覺領域中,一些基於機器學習的方法也有參考部分生物機制。 計算機視覺的另一個相關領域是信號處理。很多有關單元變量信號的處理方法,尤其對是時變信號的處理,都可以很自然的被擴展爲計算機視覺中對二元變量信號或者多元變量信號的處理方法。但由於圖像數據的特有屬性,很多計算機視覺中發展起來的方法,在單元信號的處理方法中卻找不到對應版本。這類方法的一個主要特徵,便是他們的非線性以及圖像信息的多維性,以上二點作爲計算機視覺的一部分,在信號處理學中形成了一個特殊的研究方向。 除了上面提到的領域,很多研究課題同樣可被當作純粹的數學問題。例如,計算機視覺中的很多問題,其理論基礎便是統計學,最優化理論以及幾何學。 如何使既有方法通過各種軟硬件實現,或說如何對這些方法加以修改,而使之獲得合理的執行速度而又不損失足夠精度,是現今計算機視覺領域的主要課題。

相鄰領域的異同

計算機視覺,圖像處理,圖像分析,機器人視覺和機器視覺是彼此緊密關聯的學科。如果你翻開帶有上面這些名字的教材,你會發現在技術和應用領域上他們都有着相當大部分的重疊。這表明這些學科的基礎理論大致是相同的,甚至讓人懷疑他們是同一學科被冠以不同的名稱。 然而,各研究機構,學術期刊,會議及公司往往把自己特別的歸爲其中某一個領域,於是各種各樣的用來區分這些學科的特徵便被提了出來。下面將給出一種區分方法,儘管並不能說這一區分方法完全準確。 計算機視覺的研究對象主要是映射到單幅或多幅圖像上的三維場景,例如三維場景的重建。計算機視覺的研究很大程度上針對圖像的內容。 圖像處理與圖像分析的研究對象主要是二維圖像,實現圖像的轉化,尤其針對像素級的操作,例如提高圖像對比度,邊緣提取,去噪聲和幾何變換如圖像旋轉。這一特徵表明無論是圖像處理還是圖像分析其研究內容都和圖像的具體內容無關。 機器視覺主要是指工業領域的視覺研究,例如自主機器人的視覺,用於檢測和測量的視覺。這表明在這一領域通過軟件硬件,圖像感知與控制理論往往與圖像處理得到緊密結合來實現高效的機器人控制或各種實時操作。 模式識別使用各種方法從信號中提取信息,主要運用統計學的理論。此領域的一個主要方向便是從圖像數據中提取信息。 還有一個領域被稱爲成像技術。這一領域最初的研究內容主要是製作圖像,但有時也涉及到圖像分析和處理。例如,醫學成像就包含大量的醫學領域的圖像分析。 對於所有這些領域,一個可能的過程是你在計算機視覺的實驗室工作,工作中從事着圖象處理,最終解決了機器視覺領域的問題,然後把自己的成果發表在了模式識別的會議上。

計算機視覺的經典問題

幾乎在每個計算機視覺技術的具體應用都要解決一系列相同的問題。這些經典的問題包括:

識別

一個計算機視覺,圖像處理和機器視覺所共有的經典問題便是判定一組圖像數據中是否包含某個特定的物體,圖像特徵或運動狀態。這一問題通常可以通過機器自動解決,但是到目前爲止,還沒有某個單一的方法能夠廣泛的對各種情況進行判定:在任意環境中識別任意物體。現有技術能夠也只能夠很好地解決特定目標的識別,比如簡單幾何圖形識別,人臉識別,印刷或手寫文件識別或者車輛識別。而且這些識別需要在特定的環境中,具有指定的光照,背景和目標姿態要求。 廣義的識別在不同的場合又演化成了幾個略有差異的概念:

識別(狹義的):對一個或多個經過預先定義或學習的物體或物類進行辨識,通常在辨識過程中還要提供他們的二維位置或三維姿態。 鑑別:識別辨認單一物體本身。例如:某一人臉的識別,某一指紋的識別。 監測:從圖像中發現特定的情況內容。例如:醫學中對細胞或組織不正常技能的發現,交通監視儀器對過往車輛的發現。監測往往是通過簡單的圖象處理發現圖像中的特殊區域,爲後繼更復雜的操作提供起點。 識別的幾個具體應用方向:

基於內容的圖像提取:在巨大的圖像集合中尋找包含指定內容的所有圖片。被指定的內容可以是多種形式,比如一個紅色的大致是圓形的圖案,或者一輛自行車。在這裏對後一種內容的尋找顯然要比前一種更復雜,因爲前一種描述的是一個低級直觀的視覺特徵,而後者則涉及一個抽象概念(也可以說是高級的視覺特徵),即‘自行車’,顯然的一點就是自行車的外觀並不是固定的。 姿態評估:對某一物體相對於攝像機的位置或者方向的評估。例如:對機器臂姿態和位置的評估。 光學字符識別對圖像中的印刷或手寫文字進行識別鑑別,通常的輸出是將之轉化成易於編輯的文檔形式。

運動

基於序列圖像的對物體運動的監測包含多種類型,諸如:

自體運動:監測攝像機的三維剛性運動。 圖像跟蹤:跟蹤運動的物體。

場景重建

給定一個場景的二或多幅圖像或者一段錄像,場景重建尋求爲該場景建立一個三維模型。最簡單的情況便是生成一組三維空間中的點。更復雜的情況下會建立起完整的三維表面模型。

圖像恢復

圖像恢復的目標在於移除圖像中的噪聲,例如儀器噪聲、動態模糊等。

計算機視覺系統

計算機視覺系統的結構形式很大程度上依賴於其具體應用方向。有些是獨立工作的,用於解決具體的測量或檢測問題;也有些作爲某個大型複雜系統的組成部分出現,比如和機械控制系統,數據庫系統,人機接口設備協同工作。計算機視覺系統的具體實現方法同時也由其功能決定——是預先固定的抑或是在運行過程中自動學習調整。儘管如此,有些功能卻幾乎是每個計算機系統都需要具備的:

圖像獲取:一幅數字圖像是由一個或多個圖像傳感器產生,這裏的傳感器可以是各種光敏攝像機,包括遙感設備,X射線斷層攝影儀,雷達,超聲波接收器等。取決於不同的傳感器,產生的圖片可以是普通的二維圖像,三維圖組或者一個圖像序列。圖片的像素值往往對應於光在一個或多個光譜段上的強度(灰度圖或彩色圖),但也可以是相關的各種物理數據,如聲波,電磁波或核磁共振的深度,吸收度或反射度。 預處理:在對圖像實施具體的計算機視覺方法來提取某種特定的信息前,一種或一些預處理往往被採用來使圖像滿足後繼方法的要求。例如: 二次取樣保證圖像座標的正確 平滑去噪來濾除傳感器引入的設備噪聲 提高對比度來保證實現相關信息可以被檢測到 調整尺度空間使圖像結構適合局部應用 特徵提取:從圖像中提取各種複雜度的特徵。例如: 線、邊緣提取和脊偵測 局部化的特徵點檢測如邊角檢測、斑點檢測 更復雜的特徵可能與圖像中的紋理形狀或運動有關。 檢測/分割:在圖像處理過程中,有時會需要對圖像進行分割來提取有價值的用於後繼處理的部分,例如: 篩選特徵點 分割一或多幅圖片中含有特定目標的部分 高級處理:到了這一步,數據往往具有很小的數量,例如圖像中經先前處理被認爲含有目標物體的部分。這時的處理包括: 驗證得到的數據是否符合前提要求 估測特定係數,比如目標的姿態、體積 對目標進行分類

影響視覺系統的要件

光源佈局影響大需審慎考量。 正確的選擇鏡組,考量倍率、空間、尺寸、失真。 選擇合適的攝影機(CCD),考量功能、規格、穩定性、耐用。 視覺軟體開發需靠經驗累積,多嘗試、思考問題的解決途徑。 以創造精度的不斷提升,縮短處理時間為最終目標。

參考文獻

外部連結

Machine Perception of Three-Dimensional Solids - the paper mentioned by Joseph Mundy in the video CVonline: The Evolving, Distributed, Non-Proprietary, On-Line Compendium of Computer Vision (頁面存檔備份,存於互聯網檔案館) Introduction to computer vision(464KB pdf file) CMU’s Computer Vision Homepage(頁面存檔備份,存於互聯網檔案館) Fudan University’s Computer Vision Lab(頁面存檔備份,存於互聯網檔案館) Keith Price’s Annotated Computer Vision Bibliography(頁面存檔備份,存於互聯網檔案館) and the Official Mirror Site Keith Price’s Annotated Computer Vision Bibliography(頁面存檔備份,存於互聯網檔案館) HIPR2 image processing teaching package(頁面存檔備份,存於互聯網檔案館) USC Iris computer vision conference list(頁面存檔備份,存於互聯網檔案館) How to come up with new research ideas in computer vision? (in Chinese)(頁面存檔備份,存於互聯網檔案館) People in Computer Vision(頁面存檔備份,存於互聯網檔案館) The Computer Vision Genealogy Project(頁面存檔備份,存於互聯網檔案館)

參見

人工智能與模式識別 圖像處理 自動光學檢查 開放源代碼計算機視覺庫:OpenCVACM 电脑分类系统 OpenCV 万维网 专家系统 中文房间 中间件 二元变量信号 互联网档案馆 交叉驗證 人工智慧低谷 人工智能 人工智能伦理 人工智能发展 人工智能史 人工智能哲學 人工智能安全 人工智能应用 人工智能时间轴 人工智能术语表 人工智能热潮 人工智能的存在风险 人工智能监管 人工智能编程语言列表 人工智能项目列表 人机交互 企业信息系统 企业级软件 信号处理 信息与计算科学 信息安全 信息檢索 信息系统 信息论 修飾照片 光学字符识别 光學 克勞德·夏農 入侵检测系统 决策支持系统 几何学 函式庫 分布式计算 医学信息学 单元变量信号 印刷电路板 友好的人工智能 反射 (物理学) 可穿戴计算机 可见光 可视化 可解釋人工智慧 可计算性 固態物理 图像 图像传感器 图像分析 图像压缩 图像处理 图像数据 图像监测 图灵测试 图论 圖形處理器 地理信息系统 基于内容的图像检索 复杂问题 外部设备 多元变量信号 多元處理 多线程 多维性 姿态评估: 实体造型 实时计算 密码学 尺度空间 嵌入式系统 并发性 并发计算 并行计算 幻觉 (人工智能) 开源软件 弱人工智慧 强化学习 形式化方法 形式语义学 感光耦合元件 感知器 成像技术 摄影机 操作系统 教育技术学 数值分析 数字图像 数字艺术 数学 数学分析 数学软件 数据库管理系统 数据挖掘 数理逻辑 数论 數位圖書館 數位行銷 文件管理系统 文字处理器 斑点检测 时变信号 普适计算 最优化 机器人 机器人学 机器人视觉 机器学习 机器视觉 核磁共振 模式识别 流体 深度学习 混合智能系統 混合现实 渲染 灰度图像 無人駕駛汽車 無監督學習 物理 特征点检测 生成式人工智慧 生物信息学 用户界面 电子商务 电子游戏 电子计算机 电磁波 监督学习 直譯器 看 知识表示 社会性软件 神经生物学 离散数学 程式語言理論 符號人工智能 算法 算法分析 算法效率 算法设计 类型论 系统平台 系统架构 網絡戰 編譯器 红外线 统计学 绿色计算 编程范型 编程语言 网络传输协议 网络安全 网络拓扑 网络服务 脊偵測 自动推理 自动机 自动规划和调度 自動光學檢查 自然语言处理 范畴论 虚拟现实 虛擬機器 视知觉 角检测 計算社會科學 計算複雜性理論 计算几何 计算化学 计算数学 计算机动画 计算机图形学 计算机安全 计算机模拟 计算机硬件 计算机科学 计算机系统结构 计算机网络 计算机视觉系统 计算机辅助功能 计算机逻辑 计算物理学 计算理论 计算生物学 计算语言学 认知科学 貝氏網路 超大规模集成电路 路由 軟體框架 軟體維護 软件开发 软件开发工具 软件开发过程 软件设计 软件质量 软件部署 软件配置管理 边缘检测 过程控制 进化算法 进化计算 通用人工智慧 運籌學 醫學影像 量子力学 量子计算机 随机化算法 集合论 集成开发环境 集成电路 電子出版 電子設計自動化 電腦數據存貯器 需求分析 非线性 领域特定语言