
本筆記包含:總整理心智圖、電腦視覺基本概念,以及Azure操作練習範例。
本文章Microsoft 對應網頁:中文、英文

電腦視覺-心智圖(自製,使用MindMap)
電腦視覺基本概念
使用大量的圖像來訓練模型,模型可以識別、分析、描述影像。常見電腦視覺應用如下:
- 影像分類Image classification
利用大量已標籤(labeled)的圖像進行訓練,因此可以分析未標籤的圖片,預測該照片最可能、最適合的標籤,亦即辨識照片的類別。 - 物件偵測Object detection
訓練模型辨識圖片中,特定物件的位置,產生邊界框(周框方塊)。 - 語意分割semantic segmentation
將圖像中的每一個像素分到一個特定的語意類別中
例如,輸入一張相片,輸出與輸入圖像大小相同的「標籤圖」(label map)

語意分割vs物件偵測
使用場景
- 在零售場景中監控庫存水位(Monitoring stock levels)或辨識結帳商品。
- 覺搜尋Visual search
- 安全影樣監控Security video monitoring
- 人臉辨識(facial recognition)身份驗證(Authentication)
- 自駕車self-driving vehicles
- 為圖片生成說明文字Auto-captioning
Azure Vision Studio,包含影像分析、臉部辨識、光學字元辨識(OCR)等。
考題重點
- 整張照片的分類 → 選影像分類
- 有邊界框 or 辨別照片中個別物件 → 選物件偵測。
- 每個像素分類 → 選語意分割
- 辨識紙本文件/照片上的文字 → 選光學字元辨識(OCR)
- 臉部辨識相關
臉部識別可以處理影像中臉部的一對多比對
臉部驗證具有從安全存放庫將影像中臉部與單一臉部的一對一比對的功能,或相片來驗證它們是否為同一個人。
臉部屬性可以偵測臉部物件,如眼鏡、頭飾
影像和影像處理
Images and image processing
電腦並不能真的"看到"圖片,而是讀取像素陣列(pixel arrays),例如:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
此例表示是7x7的像素影像(這是解析度resolution),每個像素點的值在0(黑色)~255(白色)之間。影像放大如下。

彩色圖片由三層(layers)陣列數據組成,又成為通道(channels),分別表示紅、綠、藍 (RGB),
例如:
Red:
150 150 150 150 150 150 150
150 150 150 150 150 150 150
150 150 255 255 255 150 150
150 150 255 255 255 150 150
150 150 255 255 255 150 150
150 150 150 150 150 150 150
150 150 150 150 150 150 150
Green:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Blue:
255 255 255 255 255 255 255
255 255 255 255 255 255 255
255 255 0 0 0 255 255
255 255 0 0 0 255 255
255 255 0 0 0 255 255
255 255 255 255 255 255 255
255 255 255 255 255 255 255

影像處理:套用濾鏡 filters
濾鏡是由一個或多個像素值組成的陣列所定義,這些陣列稱為濾鏡核心(filter kernels)。例如,你可以定義一個使用 3x3 核心的濾鏡,如下例所示:
-1 -1 -1
-1 8 -1
-1 -1 -1
利用此濾鏡對原本的圖面的每個像素點卷積運算(convolution),結果產出新的圖像。(卷積濾鏡convolutional filtering)
有些數值可能超出像素值的範圍(0 到 255),因此這些數值會被調整回該範圍內。
由於濾鏡的形狀關係,影像邊緣的像素無法完整計算,通常會使用填補值(padding value),多數情況下為 0,來處理邊緣部分。

範例濾鏡的功能是強調邊緣,效果如下:

用於電腦視覺的機器學習
Machine learning for computer vision
卷積神經網路Convolutional neural networks (CNNs)
電腦視覺最常見的機器學習模型架構之一,是一種深度學習架構(deep learning)。

利用濾鏡(filters)擷取特徵圖(feature maps)→把特徵圖輸入深度學習模型中,產生標籤預測。濾鏡核心(filter kernels)初始為隨機定義權重,隨著訓練進行(比對預測結果與正確的標籤),會調整為可以辨識、分類的濾鏡權重。
訓練流程
輸入影像 → 卷積/特徵圖 → 扁平化flatten → 全連接 → 輸出預測
- 訓練資料輸入:輸入事先標籤好的影像 (監督式學習)
- 濾鏡提取特徵:透過一層或多層濾鏡(即卷積層)從每張圖片中提取特徵。這些濾鏡核心一開始是隨機的權重,輸出一組稱為特徵圖(feature map)的數值陣列。
- 特徵圖扁平化:將多維的特徵圖扁平化成一維的特徵值陣列。
- 進入全連接層:將這些特徵值輸入到一個全連接神經網路(Fully Connected Neural Network, FCN)中進行分類。
(FCN: 傳統的神經網絡架構之一,每層的每個神經元都與前一層的所有神經元連接) - 輸出分類機率:輸出層通常使用 softmax 函數,產生每個類別的預測機率,例如:[0.2, 0.5, 0.3]
訓練期間,會比對預測和實際的分類標籤,計算損失值(loss),逐步調整濾鏡核心和神經網絡的權重,以減少損失(減少錯誤的分類)。這個訓練流程會重複進行多次(稱為多個epoch),直到模型學習到一組最適合的權重。
Transformer 與多模態模型
CNN是電腦視覺的核心技術,也是其他更複雜技術的核心。
例如:物件偵測模型(Object Detection),結合CNN特徵擷取層,進一步識別影像中的關注區域,用來定位圖片中多種物件類別的位置。
Transformers
Transformers是在AI的另一個領域──自然語言處理(NLP)中,另一種重要的神經網絡架構 (就是GPT使用的大語言模型) 。
運作方式:
- 處理大量資料,把語言中的token轉為向量的形式,嵌入(embedding)一個多維的向量空間。每個維度都代表該詞語(token)的某種特徵。
- 訓練後,相似語境中常一起出現的詞語,其向量會更接近彼此,而不相關的詞語則相距較遠。
- 簡化成三個維度的示意圖:

多模態模型(Multi-modal Models)

- 使用在自然語言的Transformer和電腦視覺有什麼關係?
結合兩者,也就是同時處理影像與文字的模型,就成為多模態模型。 - 這類模型會使用大量附有文字說明的影像(captioned images)進行訓練,而不是傳統意義上的固定標籤(fixed labels)。
- 此架構中,影像編碼器(image encoder)根據像素值從影像中萃取特徵;同時,語言編碼器(language encoder)將對應的文字說明編碼為語意向量;模型學習如何將這些影像特徵與自然語言向量建立對應關係。
微軟Microsoft Florence model
屬於多模態的基礎模型(foundation model),也就是預先訓練好的通用模型,可再進一步訓練成針對特定任務的應用模型(adaptive models)。
可用於以下任務:
- 影像分類:辨識圖片屬於哪個類別
- 物件偵測:找出影像中每個物件的位置與類別
- 圖片說明:自動生成對應圖片的文字描述
- 標籤產生:為影像產生相關的文字標籤
Azure AI視覺 Azure AI Vision
- 可以在微軟Azure訂閱帳戶中,單獨訂閱Azure AI視覺的服務,或者訂閱整個Azure AI服務,包含AI視覺、AI語言、翻譯工具等。
- Azure AI支援以下功能
o 光學字元辨識(Optical character recognition, OCR) - 從影像中擷取文字。
o 產生影像的標題(captions)和描述(descriptions)。
o 偵測影像中的數千個物件。
o 標記影像中的視覺特性 - 若內建模型不符合需求,可以利用Azure的服務來訓練自定義的模型,例如用來影像分類或物件偵測。
- 可在Azure AI Foundry中使用、測試Azure AI視覺功能。
(企業 AI 作業、模型產生器及應用程式開發的整合平臺)
練習 - 在 Azure AI Foundry 入口網站中分析影像
https://go.microsoft.com/fwlink/?linkid=2250145
建立專案
- 使用微軟Azure帳號登入:https://ai.azure.com
- 前往 https://ai.azure.com/managementCenter/allResources
- 建立專案
(1)點選Create new,點選建立Azure AI 中樞資源 (AI hub resource)
(2)輸入專案名稱(英文或數字),點選進階選項,設定區域為以下任一:
East US
France Central
Korea Central
West Europe
West US
(3)專案建立好之後,可看到總覽頁面,在左側選單中點選AI服務(AI services)
→視覺+文件(Vision + Document)

建立Azure AI 中樞資源 (AI hub resource)

輸入專案名稱及設定

視覺+文件
生成影像標題
- 點選下方Image分頁中的Image captioning選項
https://aka.ms/mslearn-images-for-analysis
下載示範圖片,解壓縮 - 把store-camera-1.jpg這張相片拖曳至網頁中圖面上傳處
- 自動產出關於此圖片的描述
- 回到視覺+文件(Vision + Document)頁面,這次選擇Dense cationing功能,一樣上傳store-camera-1.jpg這張相片
- 與cationing相比,Dense captioning會為一張圖片提供多個可讀的描述句子。每個被偵測到的物件都會附帶一個邊界框(bounding box),用來定義該物件在影像中的像素座標範圍。

上傳範例圖片

影像描述

Dense captioning
為影像加上標籤Tagging images
- 回到視覺+文件(Vision + Document)頁面,選擇Common tag extraction功能,上傳圖片store-image-2.jpg
- 右方可看到標籤列表,以及每個標籤對應的信心分數(confidence score)
信心分數代表:該標籤文字描述與影像實際內容相符的可能性有多高。 - 標籤不只會標出物件,還會有動作,例如站立、購物。

Tagging images
物件偵測Object detection
- 回到視覺+文件(Vision + Document)頁面,選擇Common object detection功能,上傳圖片store-image-3.jpg
- 物件偵測會根據數千種可辨識的物體與生物,自動偵測並擷取其邊界框(bounding boxes)。
- 拖動閾值(Threshold slider),改成 70。這個閾值設定表示:只有那些信心分數(預測機率)高於 70 的物件才會顯示在列表中。

物件偵測Object detection
清除資料
- 當不再使用此功能時,記得刪除資源,以避免產生費用。
- 開啟Azure Portal,登入後,選擇下方的資源群組,點擊剛剛建立的資源名稱,點選「刪除資源群組」,輸入群組名稱後確認刪除。

清除練習資料
AI-900系列文章目錄:
《AI-900》證照考試準備心得與筆記分享 - 系列文章



















