Computer Vision

L1: Giới thiệu

Các mức độ xử lý ảnh

Thấp
Xử lý ảnh

Tạo ảnh

Thu nhận ảnh bởi cảm biến

Tiền xử lý ảnh

Giữa
Xử lý ảnh & Thị giác máy tính

Trích chọn đặc trưng (cạnh, góc, hình dáng, đường)

So khớp ảnh

Phân vùng ảnh

Cao
Thị giác máy tính

Nhận dạng, hiểu nội dung ảnh
Nhận dạng, phát hiện, phân tích chuyển động

Thị giác người

Mống mắt

Con ngươi, độ mở được điều khiển bởi mống mắt

Cảm biến (rod & cone)

Cone:
HÌnh nón, hoạt động trong as mạnh, cảm thụ màu sắc

Rod
Hình que, hoạt động trong as yếu, ít nhạy vs màu sắc

Thu nhận ảnh

Nguồn sáng

Đo quang
Đo độ sáng cảm nhận được từ năng lượng điện từ thấy được của tia sáng

Hệ thống quang (Lenses)
Tia sáng đi từ vật đến hệ thấu kính -> tạo ảnh

Cảm biến hình ảnh
CCD và CMOS cung cấp tín hiệu 2D

Camera số
Tín hiệu 2D thu được qua bộ chuyển đổi ADC -> tạo ảnh số

Digitization
Số hóa: Lấy mẫu và lượng tử hóa

Một số loại ảnh phổ biến

Ảnh nhị phân
1pixel là 1 bit

Ảnh đa mức xám
1pixel là 8 bits

Ảnh màu
1pixel là 24 bits

Khác: Ảnh đa phổ, độ sâu

Không gian màu

Màu sắc nhận được do đáp ứng bề mặt với chùm sáng chiếu tới

Các không gian màu
RGB, HSV, CMY, Lab, Luv, ...

RGB đc dùng trong các thiết bị hiển thị
thường không tuyến tính với các cảm nhận của mắt người

CMY dùng trong in ấn, photo

Histogram của ảnh

h(rk) = nk
rk là mức xám thứ k
nk là số điểm ảnh có mức xám thứ k

L2: Image Enhancement

Biến đổi đơn lẻ
Isolated transformation
Đọc giá trị 1 điểm ảnh -> thay thế bằng giá trị khác
Vd: Tăng tương phản, cân bằng histogram

Biến đổi cục bộ
Local transformation
Đọc giá trị nhiều điểm lân cận -> tính giá trị mới cho điểm ảnh
VD: Nhân chập, tương quan

Biến đổi toàn cục
Global transformation
Tất cả giá trị của một ảnh -> tính giá trị mới cho một điểm ảnh
VD: FFT

Tăng độ tương phản

Kéo giãn dải động ảnh

Biến đổi phi tuyến
log, gama correction

Cân bằng vs histogram

Kéo giãn tuyến tính

Kéo giãn tuyến tính với ngưỡng bão hòa

Biến đổi tuyến tính từng đoạn

slide 26/91 L2.1

Nhân chập và lọc ảnh

Lọc ảnh

Miền không gian
(Ma trận điểm ảnh)

Miền tần số

Tác dụng
Quan trọng

Tăng cường ảnh

Trích chọn thông tin từ ảnh

Phất hiện mẫu

Nhân chập
slide 48/91
Convolution
khác với Spatial Correlation

Vấn đề cạnh ảnh

Thêm dòng / cột 0 ở ma trận đầu vào

Đối xứng gương

Spatial Correlation
Slide 56/91

Sử dụng để tìm một template nào đó có xuất hiện trong ảnh không

Không có tính kết hợp

Sử dụng lọc ảnh
Có tính kết hợp
Hữu ích khi cần thực hiện nhiều bộ lọc liên tiếp

Một số bộ lọc khác

Bộ lọc làm trơn ảnh
(Bộ lọc thông thấp)

Lọc nhiễu

Làm trơn ảnh, loại bỏ các vùng nhỏ

Để tránh thay đổi độ sáng của ảnh, tổng các hệ số trong mặt nạ phải = 1

VD

Lọc trung bình
(Mean Filter)

Có trọng số
Trọng số điểm ảnh trung tâm thường có xu hướng lớn hơn các điểm lân cận

Không có trọng số

Gaussian Filter

Loại bỏ các thành phần tương ứng với tần số cao trong ảnh

Tốt hơn bộ lọc trung bình

Có thể phân tách được

Bộ lọc làm sắc nét cạnh

Đạo hàm bậc 1

Robert

Prewitt

Sobel

Ít nhạy cảm vs nhiễu

Mean + đạo hàm bậc 1

Ít nhạy cảm vs nhiễu

Gauss + đạo hàm bậc 1

Đạo hàm bậc 2
Laplacian Filtering
Slide 75/91

Bộ lọc trung vị
Median Filter (Bộ lọc
không tuyến tính)

Không có giá trị mới nào được tính

Loại bỏ những điểm bất thường
Phù hợp nhiễu xung và nhiễu muối tiêu

Giữ được biên

Bộ lọc Max/min

Bộ lọc min
Thay giá trị ở giữa bằng giá trị nhỏ nhất trong cửa sổ xét

Bộ lọc max
Thay giá trị ở giữa bằng GTLN trong cửa sổ xét

Vấn đề: Kích thước bộ lọc

Vấn đề: Kích thước bộ lọc

Thêm
Ảnh nhị phân

ForeGround
Hiện

Background
Nền

Cắt ngưỡng

Morphological
Toán tử hình thái
Thay đổi hình dạng của vùng hiện thông qua toán tử hợp/giao giữa một phần tử cấu trúc và ảnh nhị phân

Dilation
Giãn
VD: Slide 14/37

Erosion
Co

Mở rộng các thành phần được kết nối

Mở rộng thuộc tính

Xóa lỗ

Co các thành phần kết nối

Giảm kích thước đối tượng

Loại bỏ nhiễu, đường nhánh, cầu

Opening

Erode, then dilate

Loại đối tượng nhỏ, giữ nguyên hình dạng gốc

Closing

Dilate, then erode

Lấp các lỗ nhưng vẫn giữ hình dạng gốc

L3. Frequency

Tần số trong ảnh
Sự thay đổi cường độ sáng

Thay đổi chậm
homogeneous /blur regions
Tần số thấp

Thay đổi nhanh
egde, contour, noise
tần số cao

Biến đổi Fourier

Bất cứ hàm đơn biến nào cũng có thể được viết lại dưới dạng tổng có trọng số của hàm sin và cos của các tần số khác nhau

Phân rã hàm theo biến thời gian hoặc không gian thành hàm theo biến tần số trong miền không gian hoặc tần số trong miền thời gian

Công thức
Slide 20/64

Ảnh và phổ

Ảnh đa mức xám
(Miền không gian)

Ảnh Fourier
Ảnh phổ-ảnh biên độ

Biến đổi Fourier 2D
Hầu hết năng lượng tập trung ở thành phần tần số thấp

Lọc ảnh trong miền tần số

B1: Ảnh gốc trong miền không gian

B2: Trải qua biến đổi Fourier, ảnh ở miền tần số

B3: Áp dụng bộ lọc vào miền tần số

B4: Biến đổi Fourier ngược trở thành ảnh nâng cao trong miền không gian

Các loại bộ lọc

Bộ lọc thông thấp
Làm trơn, loại nhiễu
Slide 46/64

Gaussian Filter

Bộ lọc thông cao
Slide 54/64

Lọc dải tần
Band-pass filtering
Slide 59/64

Lọc nhiễu hình sin

Lọc thông cao + hướng

L4: Edge Detection

Định nghĩa biên

Nơi có sự thay đổi cường độ sáng trong ảnh

Thường xảy ra ở ranh giới giữa các vùng khác nhau

Thể hiện thông tin ngữ nghĩa và hình dáng trong ảnh

Phát hiện biên

Đạt cực trị trên đạo hàm bậc 1

Đi qua 0 ở đạo hàm bậc 2

Bộ lọc tính đạo hàm bậc 1
Slide 15/90

Đạo hàm bậc 1 theo x và y

Lọc Robert

Lọc Prewitt

Lọc Sobel

Image Gradient

Các kiểu biên

Step

Ramp

Roof

Nhiễu trên biên
Giải pháp -> làm trơn ảnh trước

Làm trơn Gaussian + đạo hàm

Lọc trung bình + đạo hàm

Vấn đề

Giá trị ngưỡng ưu ái cạnh theo 1 vài hướng hơn là các hướng khác

Kỹ thuật la bàn, nhân chập ảnh vs 8 mặt nạ theo 8 hướng, cộng kết quả nhân chập lại

Phát hiện biên vs đạo hàm bậc 2

Bộ lọc Laplacian

Laplacian nhạy vs nhiễu
->Làm trơn ảnh trước khi nhân chập Laplacian (LOG)

Bộ phát hiện cạnh tối ưu

Tiêu chí

Good detection

Good localization

Single Response

VD

Bộ phát hiện Canny

1, Áp dụng bộ lọc Gaussian

2, Áp dụng bộ lọc Sobel, tính độ lớn Gradient các điểm ảnh

3, Tính hướng Gradient

4, Loại bỏ các điểm ko phải cực trị

5, Lấy ngưỡng

Ngưỡng cao Sh

Ngưỡng thấp Sb

Phát hiện đường thẳng

Hough Transform

Ransac

Đặc điểm

phát hiện đường thẳng, đường tròn và các cấu trúc khác chỉ nếu phương trình tham số xác định

phát hiện hiệu quả khi có nhiễu hoặc bị che khuất 1 phần

Từ mặt phẳng x-y sang mặt phẳng tham số a-b

Điểm giao của các đường trong không gian a-b là tương ứng với các đường thẳng trong không gian x-y

Vấn đề với không gian (a,b), với mỗi đường theo trục dọc, a = vô cùng -> sử dụng hệ tọa độ cực (slide 65/90)

Nhược điểm

Có nhạy vs nhiễu

"Bin size" quyết định sự đánh đổi giữa chống chịu nhiễu, độ chính xác cũng như giữa tốc độ và bộ nhớ

Ý tưởng chính: Bỏ phiếu tạo ma trận

Sử dụng cho

Phát hiện đường thẳng (tròn, eclipse,...)

Bài toán về so khớp: Tìm phép biến đổi vs 2 tập dữ liệu

loop

1, Ngẫu nhiên lựa chọn một nhóm hạt giống (seed group) của những điểm dựa trên ước lượng biến đổi

2, Tính toán biến đổi từ nhóm hạt giống

3, Tìm các “inliers” với biến đổi này

4, Nếu số lượng các inlier đủ lớn, tính toán lại ước lượng bình phương tối thiểu (least square) của biến đổi trên tất cả các inlier
Giữ lại phép biến đổi vs số lượng các inlier lớn nhất

VD: Slide 77/90 trở đi

L5: Feature Extraction and matching

Hai loại đặc trưng

Đặc trưng toàn cục

Đặc trưng cục bộ

Mô tả toàn ảnh như một đối tượng

Đặc trưng đường biên, đặc trưng hình dạng, đặc trưng kết cấu

Mô tả từng vùng nhỏ trong ảnh, từng vùng cục bộ của đối tượng (điểm đặc trưng trong ảnh)

Đặc trưng kết cấu

GLCM
Slide 6/44 chương 4 part 2 (slide cô Lan)

Xác định tần số của các cặp mức xám theo hướng và ở 1 khoảng cách nào đó

Các tham số phổ biến, quan trọng
Slide 6/58

Vùng có sự biến thiên về cường độ sáng

Biển diễn đặc trưng kết cấu/màu sắc trong mỗi vùng cục bộ ảnh

Đặc trưng màu
Histogram

Cách xác định vùng cục bộ

Không cần biết nội dung ảnh

Dựa trên nội dung ảnh

Chia thành các phần với các lưới đều nhau

Image segmentation

Keypoint detection

Mô tả và so khớp chỉ các vùng cục bộ, hiệu quả trong các TH

Occlusions

Articulation

Intra-category variation

Phát hiện các điểm đặc trưng

Harris corner detector
Slide 17/58

Moravec

Tính trên các vùng cục bộ xung quanh điểm đặc trưng

Trong vùng xung quan góc -> image gradient có ít nhất 2 hướng biến đổi mạnh

Góc đảm bảo

repeatable

distinctive

VD các bước
Slide 24/58

Đặc điểm

Bất biến theo image rotation

Không bất biến với image scale

Bất biến một phần theo sự thay đổi cường độ sáng

Bất biến vs scale

Tìm cực đại địa phương trên hàm

Kích thước vùng tương ứng vs điểm cực đại địa phương

Log-Dog(SIFT detector)
Laplacian-of-Gaussian - Difference-of-Gaussian

bất biến vs scale và rotation

Bộ mô tả SIFT

Đảm bảo bất biến với sự thay đổi điều kiện chiếu sáng

So khớp ảnh

Giải pháp đơn giản

sử dụng giá trị độ đo khoảng cách (f1, f2)

Giải pháp tốt hơn

Thêm ràng buộc không gian

Kiểm tra chéo

Tìm mô hình biến đổi

Sử dụng đặc trưng

Toàn cục
Tính khoảng cách

Cục bộ

Bỏ phiếu

Giải bài toán tối ưu

Mô hình túi từ, xây dựng vector toàn cục từ các đặc trưng cục bộ

Chương 5: Segmentation: Phân vùng

Giới thiệu

Phân vùng dựa trên phân loại pixel

Phân vùng dựa trên region
Tìm vùng dựa trên sự đồng nhất
và liên thông các pixel

Phân vùng dựa trên cạnh

Mục đích: Phân vùng ảnh thành những vùng quan trọng tương ứng: Các vật thể, các phần của vật thể, ...

dựa trên việc đo các đặc trưng: mức độ xám, màu, texture, depth or motion

Thresholding

Clustering, classification

Global: Một threshold cho cả ảnh

Local: Một threshold cho một phần của ảnh

Adaptive: Một threshold điều chỉnh cho mỗi ảnh
hoặc mỗi phần của ảnh

Clustering algorithms

K-mean

Pros & Cons

Pros: Đơn giản, nhanh

Cons: Thresholding là phương pháp chủ yếu
Không dành cho các vùng liên thông, cần phải
clean kết quả, xóa lonely pixels, giữ vùng

Phân vùng dựa trên

intensity + postition

texture

Tính chất

Tất cả các pixel phải được gán vào các vùng

Mỗi pixel thuộc về một vùng đơn duy nhất

Mỗi vùng phải uniform

Bất kỳ cặp hợp nhất của các vùng kề phải non-uniform

Mỗi vùng phải là một tập liên thông các pixel

Thuật toán

Slide 48 (12/18)

Split and merge

Split

Merge

Đệ quy chia các vùng không đồng nhất
theo một tiêu chuẩn

Chia một vùng thành 4 vùng con

Các vùng con được tính toán lại

Gộp các vùng đồng nhất kề nhau
theo một tiêu chuẩn

Watershed segmentation

Active contours

Chương 7: Object recognition and deep learning

Object detection

Vấn đề

Phát hiện và xác định vị trí các đối tượng
từ đa dạng thể loại cars, people

Thách thức

Illumination

Viewpoint

Deformation: Sự biến dạng

Intra-class variability

Window-based generic object detection: basic pipeline

Window-based models: Generating and scoring candidates

Boosting classifiers

In each boosting round:
1.Find the weak learner that achieves the lowest weighted training error

  1. Tăng weight của training examples bị phân loại sai bởi weak learner hiện tại
    Tính toán final classifier là sự kết hợp tuyến tính của tất cả các weak learners

Face detection

Viola-Jones face detector

Sử dụng Histogram of Oriented Gradients (HOG)

SVM + HOG trong việc phát hiện người

Sử dụng thuật toán Adaboost

Tóm tắt

Là cách tiếp cận để phát hiện vật thể realtime

Huấn luyện lâu nhưng phát hiện nhanh

Pros and cons

Pros

Cons

Kết hợp phân loại với chọn feature

Độ phức tạp của huấn luyện tuyến tính với số lượng ví dụ huấn luyện

Linh hoạt trong lựa chọn weak learners, cơ chế boosting

Kiểm tra nhanh

Dễ dàng triển khai

Cần nhiều ví dụ huấn luyện

Các mô hình khác vượt trội hơn như SVM, CNN
Đặc biệt trong huấn luyện nhiều lớp

Histogram of oriented gradients (HoG)

Window based detection

điểm mạnh

Giới hạn

Đơn giản để triển khai

Lựa chọn feature quan trọng

Tính toán lớn và phức tạp

Không phải tất cả vật thể đều có dạng box

Các vật thể non-rigid, có thể biến dạng không được nắm bắt tốt
Phải có cấu trúc 2D cố định hoặc viewpoint cố định

Object proposals

Deformable Part Model (DPM)

Evaluation

True positive, false positive, false negative, true negative

precision, recall

Object recognition

Tổng quan semantic vision

Phân loại / Nhận dạng ảnh

Túi từ (Bag of word)

Phân loại

Tập hợp các nhãn cho trước: Từ một vật thể xác định nó thuộc nhãn nào

BOW pipeline

Dictionary Learning:
Learn Visual Words using clustering

build bag of words vectors cho mỗi image

Classify:
Train and test data using BOWs

K-nearest neighbors

Không bao giờ được sử dụng

Hiệu năng tệ ở thời điểm kiểm thử

Naive Bayes

Super vector machine

Deep Learning for CV

Object detection

One-stage

Sliding window to classify all candidates

Cần áp dụng CNN vào số lượng lớn vị trí
->Khả năng tính toán lớn