電腦視覺指南:其重要性與問題解決能力

作者 NVIDIA

本文可為初學開發者社群提供協助,尤其是初始接觸電腦視覺和電腦科學的人。NVIDIA 知道,想要利用電腦視覺與人工智慧解決全球各地在視覺運算方面的難題並造福所有人,需要我們所有人的努力。NVIDIA 很高興能與 Black Women in Artificial Intelligence 合作,本文僅獻給該社群。

在現實世界中使用電腦視覺技術的程度及其影響力已日漸增加,相關的應用方式則正在持續挑戰和改變其意義。數十年來,電腦視覺一直以某種形式存在,而逐漸成為各地人們及產業人士琅琅上口的字詞:電腦視覺系統、電腦視覺軟體、電腦視覺硬體、電腦視覺開發、電腦視覺工作流程、電腦視覺技術。

何謂電腦視覺?

電腦視覺一詞和相關領域都不是字面或比喻上看到的那麼簡單。在特定的非人工智慧實例中,電腦視覺也稱為視覺人工智慧和傳統影像處理,而在製造與工業領域,則稱為機器視覺

簡單來說,電腦視覺使筆記型電腦、智慧型手機、自動駕駛車、機器人、無人機、衛星和 X 光機等裝置,可以感知、處理、分析和解釋數位影像和影片中的資料。

換言之,電腦視覺從根本上將影像資料或影像資料集視為輸入項目,包括靜態影像和影片的動態影格,無論是錄製或從攝影機直播送入。電腦視覺讓裝置擁有與使用類似人類的視覺能力,如同具有人類的視覺系統。在人類的視覺系統中,眼睛可以將您周圍的實體世界,即時感知為不同的光線反射。

電腦視覺裝置同樣可以感知影像和影片的像素、檢測模式,並解釋可以進行進一步分析或決策的影像輸入內容。針對此意義來說,電腦視覺如同人類視覺一樣可以「看」,並使用智慧和運算能力處理輸入的視覺資料,以輸出有意義的見解,例如機器人偵測和避開路徑上的障礙物。

不同之電腦視覺任務會模仿人類的視覺系統,執行、自動化及增強類似於人類視覺系統的功能。 

電腦視覺與其他形式的人工智慧之間有什麼關係?

電腦視覺可協助教授和掌握視覺,如同對話式人工智慧藉由語音協助教授和掌握聲音的感覺一樣,在辨識、翻譯和口說文字的應用場合中:我們用於定義和描述四周實體環境的字詞。

同樣地,電腦視覺也是利用數位影像和影片,教授與掌握視覺的感覺。更廣泛而言,電腦視覺一詞也可以描述裝置上的感測器(通常是攝影機)如何進行感知及做為視覺系統,偵測、追蹤和辨識影像中的物體或圖案。

多模態對話式人工智慧結合了對話式人工智慧的能力與多媒體會議應用中的電腦視覺,例如 NVIDIA Maxine。 

電腦視覺也可以廣泛運用於描述其他類型的感測器,例如雷射探測與測距(LiDAR)與無線電探測和測距(RADAR)如何感知實體環境。在自動駕駛汽車中,電腦視覺是運用於描述 LiDAR 和 RADAR 感測器的運作方式,通常會搭配攝影機,辨識人、物體與殘骸以及進行分類。

常見的任務有哪些?

電腦視覺任務已涵蓋了廣泛的感知能力,且此能力仍在不斷擴大,而最新技術則是用於支持及協助解決偵測、分類、分割和影像合成等方面的應用。

偵測任務定位,以及有時候可以追蹤物體在影像中的位置。舉例來說,在醫療數位病理學方面,是利用偵測技術,透過醫學影像技術辨識癌細胞。在機器人領域中,軟體開發人員是使用物體偵測技術,閃避工廠車間的障礙物。

分類技術可以判斷視覺資料中存有在什麼物體。例如製造業使用物體辨識系統,將各類瓶子進行分類包裝。在農業方面,農民是使用分類技術辨識農作物中的雜草。

分割任務可以依據像素進行分類(語義影像分割),將像素分類成特定類別,或將同一類別的多個類型物體分配為單獨實例(實例影像分割)。舉例來說,自動駕駛汽車將道路場景分割為可駕駛和不可駕駛的空間。

影像合成技術改變了現有的數位影像,以加入需要的內容,建立合成資料。產生對抗網路(GAN),例如 EditGAN,可以從文字描述和現有的風景、人物影像中產生合成視覺資訊。使用合成資料補充和模擬真實資料,是一種新興的電腦視覺使用場合,可以在物流業中,將視覺人工智慧運用於智慧庫存控制等應用項目。

電腦視覺有哪些類型?

最重要的是先瞭解電腦視覺任務的技術基礎,才能瞭解電腦視覺的不同領域。大多數電腦視覺技術都是從執行特定基本操作、任務或組合的模型或數學演算法開始。我們將傳統影像處理與人工智慧電腦視覺演算法視為不同分類,但是大多數電腦視覺系統是仰賴組合執行各種作業,主要是依據使用場合、複雜性和需要的效能而定。

傳統電腦視覺

傳統非以深度學習為基礎的電腦視覺,可以指電腦視覺和影像處理技術。

在傳統電腦視覺中是使用一組特定的指令,執行一項特定的任務,例如偵測影像中的角或邊緣,以辨識建築物影像中的窗戶。

另一方面,影像處理技術會針對影像進行特定的操作,之後可以使用視覺演算法進行進一步處理。舉例來說,您可能想要讓影像的像素變平滑或進行壓縮,以顯示或縮減其整體大小。如同彎曲進入眼睛的光線,可以調整焦點或視野。影像處理的其他範例,包括調整、轉換、重新縮放和扭曲輸入的影像。

以人工智慧為基礎的電腦視覺

以人工智慧為基礎的電腦視覺或視覺人工智慧,是依賴使用視覺資料完成訓練的演算法,完成特定任務,而不是如同影像處理,使用程式化、硬編碼的指令。

前述之偵測、分類、分割和合成任務,通常是以人工智慧為基礎的電腦視覺演算法,因此可以達到準確和穩健的效果。在許多情況下,以人工智慧為基礎的電腦視覺演算法在這兩個效能指標方面優於傳統演算法。

以人工智慧為基礎的電腦視覺演算法是透過學習和適應視覺資料輸入內容,更貼近模仿人類視覺系統,成為在大多數情況下選擇使用的電腦視覺模型。 話雖如此,以人工智慧為基礎的電腦視覺演算法需要使用大量資料,且此類資料之品質可直接推動模型的輸出品質。 但是,效能勝於成本。

人工智慧神經網路會根據訓練演算法的資料進行自我學習。以人工智慧為基礎的電腦視覺如同從經驗中學習,除明確的方向外,同時會根據脈絡進行預測。此學習過程如同大腦會在眼睛看到陌生的物體時,嘗試瞭解它是什麼,並會進行儲存,以供日後預測使用。

在以人工智慧為基礎的電腦視覺中,機器學習與深度學習的比較

機器學習電腦視覺是一種以人工智慧為基礎的電腦視覺。以機器學習為基礎的人工智慧電腦視覺具備人工神經網路或層,如同人腦的神經網路或層,可以連接和傳輸與消化後視覺資料有關的訊號。在機器學習中,電腦視覺神經網路具有獨立及不同的層,且各層之間具有明確定義的連結以及預先定義的視覺資料傳輸方向。

以深度學習為基礎的電腦視覺模型,是以機器學習為基礎之電腦視覺的一個子集合。深度學習中之的「深度」是源自於神經網路中的深度或層數。通常,具有三層以上的神經網路即視為深度。

以深度學習為基礎的人工智慧電腦視覺,需要投入大量的資料進行訓練。使用數十萬或上百萬個數位影像訓練和開發深度神經網路模型,不是非罕見的情形。需要更多資訊,請參見《人工智慧、機器學習與深度學習間有什麼區別?》一文。

開始開發電腦視覺

現在,我們已經初步認識電腦視覺,接下來將鼓勵您開始發展電腦視覺。 我們建議初學者先從 Vision Programming Interface(VPI)電腦視覺與影像處理函式庫中的非人工智慧演算法,或從 TAO 工具套件中一個完全可操作、隨時可用且已完成訓練的人工智慧模型開始進行。

或是透過 NVIDIA 深度學習機構(DLI)所提供的豐富實作訓練課程,只要使用電腦連線網際網路,即可隨時隨地學習。特定課程提供能力認證證書,有助於職涯成長。實作訓練課程包含:

深入瞭解

請參閱電腦視覺解決方案頁面,以瞭解 NVIDIA 如何實現端到端的電腦視覺工作流程。NVIDIA 提供了模型加上電腦視覺和影像處理工具。我們同時提供了人工智慧軟體應用程式框架,以訓練視覺資料、測試和評估影像資料集,以及進行部署、執行和擴充等作業。

NVIDIA 正在策劃一系列的大師發展之路,以規畫與培養下一代的領導者,協助各地新興的電腦視覺開發人員。請關注即將發布的電腦視覺大師發展之路,以規畫自己的學習旅程,並在社群媒體上使用 #NVCV 展示進度。