Giới thiệu các mô hình CV

ác mô hình Computer Vision (CV) hiện đại ngày nay đều được xây dựng trên nền tảng Deep Learning (Mạng nơ-ron sâu).

Tuy nhiên, bức tranh toàn cảnh của thị giác máy tính được chia thành hai trường phái rõ rệt: Thị giác máy tính truyền thống (Traditional CV) và Thị giác máy tính học sâu (Deep Learning CV).

1. Kỷ nguyên Deep Learning: Hai kiến trúc mạng nơ-ron nền tảng

Trong Deep Learning cho CV, có hai họ kiến trúc đóng vai trò "xương sống" (backbone):

A. Mạng nơ-ron tích chập (Convolutional Neural Networks - CNN)

Đây là nền tảng thống trị Computer Vision từ năm 2012 (khởi đầu từ AlexNet) cho đến nay.

  • Cơ chế hoạt động: CNN sử dụng các bộ lọc tích chập (convolutional kernels) trượt trên ma trận ảnh để trích xuất đặc trưng có tính phân cấp:

    • Tầng đầu: Bắt các đặc trưng cấp thấp (cạnh, góc, màu sắc, viền).

    • Tầng giữa: Ghép cạnh thành kết cấu, hình khối, đường cong (mắt, mũi, bánh xe).

    • Tầng sâu: Nhận diện toàn bộ đối tượng (khuôn mặt, xe hơi, con chó).

  • Các mô hình tiêu biểu: VGG, ResNet, EfficientNet, MobileNet, và các bộ backbone của họ YOLO (CSPDarknet).

  • Ưu điểm lớn: Bất biến với tịnh tiến (Translation Invariance) — một con mèo nằm ở góc trái hay góc phải khung hình thì bộ lọc CNN vẫn nhận diện được.

B. Vision Transformer (ViT)

Từ năm 2020 trở đi, cơ chế Self-Attention (vốn là nền tảng Transformer của LLM như GPT, BERT) đã được đưa sang Computer Vision và tạo nên bước đột phá lớn:

  • Cơ chế hoạt động: Thay vì trượt cửa sổ tích chập, ViT cắt bức ảnh thành các mảnh nhỏ (gọi là image patches, ví dụ $16 \times 16$ pixel). Mỗi patch này được coi tương đương như một token (từ) trong văn bản của LLM.

  • Sau đó, mạng dùng ma trận Self-Attention để tìm mối quan hệ không gian giữa tất cả các patch với nhau trên toàn bộ bức ảnh (Global Context).

  • Mô hình tiêu biểu: ViT, Swin Transformer, DINOv2, SAM (Segment Anything Model).

  • Ưu điểm: Khả năng mở rộng (scaling) theo dữ liệu và tham số cực tốt tương tự LLM, hiểu ngữ cảnh toàn cảnh tốt hơn CNN trên các tập dữ liệu khổng lồ.

2. Kỷ nguyên trước Deep Learning: Các thuật toán toán học thuần túy

Trước năm 2012 (và trong các bài thực hành OpenCV chúng ta vừa làm như Canny, Contours, Haar Cascade, Frame Differencing), Computer Vision không cần hoặc dùng rất ít mạng nơ-ron. Thay vào đó, nó dựa trên toán học, xác suất thống kê và xử lý tín hiệu số:

Nhóm kỹ thuật Thuật toán / Công cụ Bản chất toán học
Dò biên / Điểm đặc trưng Sobel, Canny, Harris Corner Tính đạo hàm bậc 1, bậc 2 của ma trận ảnh (Gradient).
Bóc tách đặc trưng thủ công (Handcrafted Features) SIFT, SURF, ORB, HOG Thống kê hướng của gradient điểm ảnh (Histogram of Oriented Gradients).
Phân loại đối tượng cổ điển Haar Cascade (Viola-Jones), SVM (Support Vector Machine) Thuật toán tăng cường AdaBoost, tìm siêu phẳng phân cách dữ liệu.
Chuyển động & Đo đạc 3D Frame Differencing, Optical Flow (Lucas-Kanade), Stereo Vision Đại số tuyến tính, hình học phẳng xạ (Epipolar Geometry).

3. Mối liên hệ: Traditional CV vs Deep Learning CV

Ngày nay, hai trường phái này không triệt tiêu nhau mà bổ trợ lẫn nhau:

Plaintext
[Camera] ──> [Thuật toán toán học: cv2] ──> [Mạng nơ-ron: CNN / ViT] ──> [Đồ họa hiển thị: cv2]
              (Crop, Resize, Lọc nhiễu,         (YOLO, ResNet, SAM:          (Vẽ khung, Tính FPS,
               Chuyển màu, Letterbox)           Hiểu ngữ cảnh sâu, Nhận diện) Cắt vạch, Báo động)

  • Deep Learning (CNN / ViT): Giỏi các bài toán nhận diện ngữ cảnh phức tạp ("Đây là con chó giống gì?", "Người này đang có hành vi gì?").

  • Thuật toán truyền thống (cv2): Giỏi các bài toán đo lường cơ học chính xác, căn chỉnh góc xoay, phát hiện va chạm vạch kẻ và tiền xử lý với tốc độ micro-giây mà không cần máy chủ GPU đắt tiền.