← M07 NLP / CV / 多模態 M07 NLP / CV / 多模態

M07.03|電腦視覺 CV 概覽:讓 AI 學會看世界

對人類來說看一眼就懂的照片,AI 需要分析幾百萬個像素才能理解

L1-AI基礎知識-CV基礎 L2-AI技術應用-電腦視覺
電腦視覺 CV CNN 影像分類 物件偵測 語義分割 YOLO U-Net
📋

本講學習重點

電腦如何表示一張圖片?
CNN 的卷積操作在做什麼?
影像分類、物件偵測、語義分割有何本質差異?
YOLO 的設計哲學是什麼?
U-Net 為何在醫療影像中廣泛使用?

圖像表示:每個像素是 0–255 的整數;彩色圖像有 R/G/B 三個通道

CNN 卷積核:小型濾波器在圖像上滑動,提取局部特徵(邊緣、紋理、形狀)

池化層(Pooling):縮小特徵圖尺寸,保留主要特徵,減少計算量

分類:圖像屬於哪個類別;偵測:哪裡有什麼;分割:每個像素屬於什麼

YOLO:單一網路一次前向傳播同時預測類別和位置,速度極快

Faster R-CNN:先用 RPN 找候選框,再分類,精度高但較慢

U-Net:編碼器-解碼器 + 跳躍連接,適合小資料集的精細分割

📌 電腦視覺讓 AI 從圖像和影片中理解世界,核心技術是 CNN(卷積神經網路),它透過卷積操作自動學習從像素到高層語意特徵的表示。主要任務包含影像分類(是什麼)、物件偵測(在哪裡)、語義分割(每個像素是什麼)和目標追蹤(移動目標的位置)。YOLO、Faster R-CNN、U-Net 分別代表不同速度/精度取捨的架構選擇,廣泛應用於製造業品管、醫療影像、自駕車等場景。
電腦視覺 CV 概覽:讓 AI 學會看世界

🎙️ Podcast(中文)

0:00 / 0:00

一句話搞懂

電腦視覺就是讓 AI 把圖像或影片中的幾百萬個數字(像素值)轉換成有意義的語意理解——不只說「圖裡有什麼」,還能告訴你「在哪裡」、「邊界在哪」、甚至「它在動向哪裡」。


白話解說

人類「看懂」一張圖,有多不可思議

你花不到一秒鐘就能看懂一張交通事故現場的照片:道路上有兩輛車、左邊那輛是紅色的轎車、右邊是白色貨車、它們在路口碰撞、地面有玻璃碎片、旁邊有一個人正在打電話。這一切理解,你是在幾乎不費力氣的狀況下完成的。

電腦「看到」同一張圖片時,它面對的是一個二維數字矩陣:對一張 1920×1080 的彩色圖片,電腦處理的是超過 600 萬個 0 到 255 之間的整數(每個像素有紅、綠、藍三個通道的數值)。如何從這堆數字中「理解」圖片的語意——這就是電腦視覺(Computer Vision, CV)要解決的問題。

人類視覺系統花了數億年演化才達到今天的效率。電腦視覺的研究者們用了約六十年,到 2012 年深度學習突破後,才開始讓電腦在特定視覺任務上接近甚至超越人類水準。

圖像在電腦眼中是什麼

理解電腦視覺,首先要理解電腦如何「看」圖像。一張灰階圖像是一個 H×W 的二維矩陣,H 是高度(像素行數),W 是寬度(像素列數),每個元素的值從 0(全黑)到 255(全白)。一張彩色圖像(RGB)則是一個 H×W×3 的三維張量(Tensor),有紅、綠、藍三個通道,每個通道是一個 H×W 的灰階矩陣。

這意味著一張 224×224 像素的彩色圖像(ImageNet 常用的輸入尺寸),在輸入給神經網路之前,實際上是一個包含 224×224×3 = 150,528 個數字的向量。CV 模型的任務,就是從這 15 萬個數字中學習出有意義的特徵。

早期的電腦視覺依賴手工設計特徵(Hand-crafted Features),如 SIFT、HOG 等算法,由人類設計針對邊緣、梯度、紋理的檢測器。這些方法在特定任務上有效,但靈活性差,遇到光線變化、視角變換、遮擋等情況就容易失效。

CNN:電腦視覺的核心引擎

卷積神經網路(Convolutional Neural Network, CNN) 是現代電腦視覺的技術基石。CNN 的核心操作是卷積(Convolution):用一個小型的「濾波器(Filter / Kernel)」——通常是 3×3 或 5×5 的數字矩陣——在圖像上逐步滑動,計算每個位置的加權和,生成一個特徵圖(Feature Map)。不同的濾波器提取不同類型的特徵:有些濾波器會對水平邊緣有強響應、有些對垂直邊緣、有些對特定紋理圖案。

CNN 的精妙之處在於:這些濾波器的參數不是人工設計的,而是透過訓練自動學習出來的。網路在看過大量標注圖像後,自動學到哪些視覺特徵對分類任務最有用。CNN 的結構通常是多個卷積層堆疊,越深的層提取越抽象的特徵:淺層學到邊緣和顏色、中層學到局部形狀(眼睛、車輪)、深層學到整體概念(人臉、汽車)。

池化層(Pooling Layer) 通常穿插在卷積層之間,其作用是縮小特徵圖的空間尺寸(例如取每個 2×2 區域的最大值,稱為 Max Pooling),減少計算量的同時保留最顯著的特徵,也讓模型對輕微的平移和縮放更具魯棒性。

代表性架構的演進:AlexNet(2012)首次在 ImageNet 大賽中用深度 CNN 大幅超越傳統方法,開啟了深度學習革命;VGG(2014)用簡單的 3×3 卷積堆疊更深的網路;ResNet(2015)引入殘差連接(Residual Connection),解決了深層網路難以訓練的梯度消失問題,可以訓練 152 層以上的網路;EfficientNet(2019)自動搜索深度、寬度和分辨率的最佳組合,達到在更少參數量下更高精度的效果。

視覺任務的四個層次

電腦視覺的任務依照理解的粒度由粗到細分為四個層次:

影像分類(Image Classification):給定一張圖像,輸出這張圖像屬於哪個類別(或類別的機率分布)。例如:「這是一隻貓」、「這是一張發票」。任務簡單清晰,輸出只有一個(或幾個)類別標籤。代表資料集:ImageNet(1000 類)。

物件偵測(Object Detection):在圖像中找出所有感興趣的物件,對每個物件輸出其類別位置(以邊界框 Bounding Box 表示:x, y, 寬, 高)。例如:「這張圖像中有三人、兩輛車、一頭狗,它們的位置分別在哪裡」。比分類難,因為物件數量不定、大小不一、可能互相遮擋。代表框架:YOLO 系列、Faster R-CNN。

語義分割(Semantic Segmentation):對圖像中的每一個像素分類,輸出與原圖等尺寸的標籤圖。例如:這個像素屬於「道路」、那個像素屬於「天空」、那些像素屬於「行人」。與物件偵測不同,語義分割知道每個像素的類別,但無法區分同類物體中的不同個體(兩個「人」的像素都標記為「人」,不知道哪些屬於哪個人)。代表架構:U-Net、DeepLab。

實例分割(Instance Segmentation):結合物件偵測和語義分割的精細度——不只知道每個像素的類別,還知道它屬於哪個具體實例。圖中三個人的像素會被分別標記為「人 1」「人 2」「人 3」。這是最細緻也最難的視覺任務,代表模型:Mask R-CNN。


應用場景

行業 具體應用 使用的 CV 任務 代表架構
製造業 PCB 板缺陷檢測、焊點品質檢查 影像分類 / 語義分割 ResNet + 異常偵測
醫療影像 X 光/CT 腫瘤定位、病灶分割、病理切片分析 物件偵測 / 語義分割 U-Net、Mask R-CNN
自駕車 行人、車輛、號誌即時偵測與追蹤 物件偵測 + 追蹤 YOLO、Faster R-CNN
零售 無人商店商品辨識、貨架庫存監控 影像分類 / 物件偵測 EfficientNet、YOLOv8
農業 無人機空拍辨識作物病害、評估作物生長狀況 語義分割 U-Net + 衛星影像
安全監控 人臉辨識門禁、異常行為偵測、人群密度估算 人臉偵測 / 姿態估計 MTCNN、OpenPose
金融 支票和發票的 OCR 辨識、行員證件核驗 文字偵測 + OCR CRAFT + TrOCR

常見誤區

誤區 1:「只要資料夠多,CNN 就一定能學好」

資料量是重要的,但不是唯一的決定因素。資料的品質、標注的準確性、以及訓練資料和測試場景的一致性(資料分布),對模型效果的影響往往遠超過純資料量。常見的陷阱包括:工廠缺陷偵測模型用標準光源下的樣本訓練,部署到光線條件不同的產線後大幅失準;醫療影像模型用單一醫院的 CT 機訓練,換了不同品牌的機器後效果下降。這個現象稱為資料集偏差(Dataset Bias)或領域偏移(Domain Shift)。在準備訓練資料時,必須確保涵蓋生產環境中可能遇到的各種變化:不同光線、角度、解析度、設備品牌。此外,100 張精準標注的缺陷圖片,往往比 10,000 張標注不一致的圖片更有訓練價值。

誤區 2:「CNN 和人類的視覺理解方式是相同的」

CNN 在特定任務上的準確率已超越人類,但它的「理解」和人類有本質差異。人類看到一隻貓,會整合形狀、材質、動作、語境等多種線索,並且有豐富的語意背景知識。CNN 更多是在學習像素統計模式,這讓它容易被對抗樣本(Adversarial Examples)欺騙:在圖像上添加人眼幾乎看不見的微小像素擾動,CNN 就可能以 99% 的信心把一隻熊貓分類成長臂猿。此外,CNN 缺乏「常識」:它無法理解「這張圖片裡的人看起來很痛苦,因為手被夾在門縫裡」,它只是在模式匹配。因此,雖然 CV 在工業檢測等重複性任務上表現卓越,但在需要語意理解和常識推理的任務上,仍需要與 NLP 或知識圖譜結合,才能達到更高層次的理解。

誤區 3:「電腦視覺模型的評估,看測試集準確率就夠了」

測試集準確率是必要但不充分的評估指標。幾個容易被忽略的面向:首先是推理速度和計算成本——一個在伺服器上需要 200 毫秒的模型,無法部署在需要即時(30 FPS)響應的生產線相機上;其次是邊緣案例的魯棒性——一個整體準確率 99% 的模型,可能在某類特殊樣本(如殘缺品、罕見缺陷形態)上的準確率只有 60%,而恰恰這些邊緣案例才是生產中最需要被正確偵測的;第三是模型的可解釋性——在醫療影像判讀的場景中,FDA 等監管機構要求模型能解釋「為什麼判斷這裡有腫瘤」,單靠準確率指標無法滿足合規需求。完整的 CV 系統評估應包含:精準度(Precision)、召回率(Recall)、推理延遲(Latency)、模型大小、以及在不同子群組上的公平性評估。


小練習

練習 1:選擇正確的 CV 任務類型

一家台灣的半導體廠商正在規劃 AI 視覺檢測系統,以下是四個具體需求,請為每個需求選擇最合適的電腦視覺任務類型(影像分類、物件偵測、語義分割、實例分割),並說明原因:

需求描述 最佳 CV 任務
A. 判斷這片晶圓是否通過品管(只需要 Pass/Fail 結果)
B. 在晶圓表面找出所有缺陷的位置(可能有多個不同類型的缺陷)
C. 精確標出晶圓上的電路佈線區域和空白區域的分界(需要像素級精度)
D. 在生產線影片中追蹤每一顆晶片的移動路徑
查看答案 **A. 影像分類(Image Classification)** 需求只要求「通過/失敗」的二元輸出,不需要知道缺陷的位置。這正是影像分類最適合的場景:給定輸入圖像,輸出一個類別標籤。這也是計算成本最低的任務,適合高速產線的即時判斷。可使用 EfficientNet 或 ResNet 微調,通常幾百張標注樣本就能達到不錯的效果。 **B. 物件偵測(Object Detection)** 需求是「找出所有缺陷的位置和類型」,需要輸出每個缺陷的邊界框(位置)和類別(如:劃痕、凹坑、污染物)。這是物件偵測的標準場景:圖像中有多個感興趣物件,每個都需要定位和分類。YOLO 系列因其速度優勢常被用於工業即時偵測,Faster R-CNN 則在精度要求更高時使用。 **C. 語義分割(Semantic Segmentation)** 需求是「像素級的區域分界」——知道每個像素屬於電路區還是空白區,這是語義分割的核心任務。U-Net 因其在醫療和工業精細分割上的出色表現(尤其是在小資料集上),是此類需求的首選架構。分割結果可以精確計算電路覆蓋率、佈線均勻性等指標。 **D. 物件偵測 + 目標追蹤(Object Detection + Tracking)** 在影片中追蹤每顆晶片的移動路徑,需要在每一幀中偵測到每顆晶片的位置(物件偵測),然後跨幀建立同一顆晶片在不同時間點的對應關係(目標追蹤)。常用的組合是 YOLOv8 偵測 + ByteTrack 或 DeepSORT 追蹤算法。這個任務對即時性要求高(產線速度快),因此偵測器的推理速度是關鍵考量。

練習 2:CNN 特徵學習的直覺理解

假設你要訓練一個 CNN 模型區分「台灣黑熊」和「貓熊」,模型的三個卷積層組分別學習什麼層次的特徵?如果兩種動物的訓練資料量差異很大(台灣黑熊樣本 500 張 vs. 貓熊樣本 5,000 張),你預期會出現什麼問題?應如何改善?

查看答案 **三個卷積層組學習的特徵層次:** - **第一層(淺層特徵)**:學習最基礎的視覺元素——水平邊緣、垂直邊緣、斜線方向的邊緣、顏色梯度。這些特徵與要辨識的動物種類無關,對任何圖像都通用。如果可視化第一層濾波器的響應圖,會看到類似素描輪廓線的效果。 - **第二層(中層特徵)**:學習由低層特徵組合而成的局部模式——眼睛的形狀、耳朵的輪廓、毛皮的紋理圖案、鼻子的形狀。這些特徵開始有動物相關的語意,但仍然是局部的。 - **第三層(高層特徵)**:學習更抽象的整體概念——「台灣黑熊的白色 V 形胸斑」、「貓熊的眼部黑斑特徵」、整體體型比例。這些特徵直接與分類任務相關,是最有區分力的語意特徵。 **類別不平衡問題(500 vs. 5,000 張):** 這種嚴重的類別不平衡(1:10)會導致模型明顯偏向「貓熊」類別——因為訓練過程中見到的貓熊樣本多十倍,模型學到的貓熊特徵更豐富、邊界更清晰,而台灣黑熊的特徵學習不充分,會有較高的假陰性率(台灣黑熊被誤判為貓熊)。 **改善方法:** 1. **資料增強(Data Augmentation)**:對台灣黑熊的 500 張圖像進行隨機翻轉、旋轉、色調調整、裁剪等變換,人工擴充到 3,000–5,000 張。這是最優先且最有效的方法。 2. **類別加權(Class Weighting)**:在損失函數中給台灣黑熊的樣本更高的權重(例如 10 倍),使模型在分類錯誤台灣黑熊時受到更大的懲罰,強制它更認真學習少數類的特徵。 3. **遷移學習(Transfer Learning)**:使用在 ImageNet(1000 類動物)上預訓練的 ResNet 作為基礎模型,只微調最後幾層。預訓練模型已學習了豐富的動物視覺特徵,即使用少量樣本也能達到不錯的效果,大幅降低對台灣黑熊資料量的需求。 4. **合成資料(Synthetic Data)**:用生成式 AI(如 Stable Diffusion)生成額外的台灣黑熊圖像,補充訓練集——但需要謹慎評估合成圖像的質量和多樣性,避免引入偏差。

關鍵字自我檢核

✅ 電腦視覺 ✅ Computer Vision ✅ CNN ✅ 卷積神經網路 ✅ 影像分類 ✅ 物件偵測 ✅ 語義分割 ✅ 實例分割 ✅ 目標追蹤 ✅ YOLO ✅ Faster R-CNN ✅ U-Net ✅ ResNet ✅ 像素矩陣 ✅ 特徵圖