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
- 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