Ý tưởng- Các kỹ thuật phân loại mẫu ảnh được chia thành 3 loại chính: phân loại dựatrên so sánh nguyên mẫu, phân loại dựa trên công thức thống kê tối ưu, phân loại dựa trên mạng neural.1
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - ĐHQGHN KHOA ĐIỆN TỬ VIỄN THÔNG
-BÁO CÁO BÀI TẬP LỚN
HỌC PHẦN: XỬ LÝ ẢNH
ĐỀ TÀI: PHÂN LOẠI MẪU ẢNH
Mã SV: 20020711 Họ và tên: Nguyễn Thanh Sơn
Mã SV: 20020048 Họ và tên: Đặng Trần Hoàng Hà
Mã SV: 20020207 Họ và tên: Ngô Thế Ngọc
Mã SV: 20020066 Họ và tên: Phạm Quang Phong
Mã SV: 20020434 Họ và tên: Vũ Thanh Lâm
Mã SV: 20020050 Họ và tên: Vũ Đức Hiếu
Hà Nội – tháng 5, năm 2023.
Trang 21 Ý tưởng
- Các kỹ thuật phân loại mẫu ảnh được chia thành 3 loại chính: phân loại dựa
trên so sánh nguyên mẫu, phân loại dựa trên công thức thống kê tối ưu, phân loại dựa trên mạng neural
1.1 Mẫu và lớp mẫu
- Trong phân loại mẫu hình ảnh, có 2 cách để sắp xếp mẫu chính là định
lượng và cấu trúc Các mẫu định lượng được sắp xếp dưới dạng các vecto mẫu Các mẫu cấu trúc thường bao gồm các ký hiệu, được sắp xếp dưới dạng chuỗi, cây, hoặc biểu đồ
1.1.1 Vecto mẫu
- Vecto mẫu được biểu diễn như sau:
- Với x là bộ miêu tả đặc trưng thứ i và n là tổng số bộ miêu tả.i
- Vecto mẫu có thể tạo từ cường độ pixel ảnh bằng sắp xếp tuyến tính
Hình 1: Vecto mẫu tạo bằng việc sắp xếp tuyến tính
1.1.2 Mẫu cấu trúc
Trang 3- Mẫu cấu trúc là mẫu chứa các mô tả có cấu trúc của đối tượng, phù hợp khi
ứng dụng với các đối tượng được biểu diễn bằng các cấu trúc dữ liệu như
xử lý văn bản, các biểu tượng Mẫu cấu trúc có thể được mô tả bằng chuỗi
ký tự hoặc cây
- Để biểu diễn chuỗi ký tự, các đặc trưng của đối tượng có thể được xây dựng
theo một quy tắc chuỗi Ví dụ:
Hình 2: Chuỗi ký hiệu được tạo ra từ cạnh của một cái bình
- Trong ví dụ trên, với đường bao của chiếc lọ ta chia ra thành các đường
thẳng kết nối các đỉnh trên (được biểu diễn bằng β) và góc bên trong (θ), từ
đó một chuỗi ký tự được sinh ra đại diện cho một phần đường viền theo chiều kim đồng hồ như trên ảnh
- Khi biểu diễn mẫu cấu trúc dưới dạng cây, các nốt của cây có thể là các
vùng, các thực thể hoặc kết cấu bên trong của đối tượng, phù hợp với các đối tượng có mức độ miêu tả cao, có lược đồ sắp xếp thứ bậc như cấu trúc dạng cây Ví dụ:
Hình 3: Biểu diễn dạng cây của 1 trung tâm thành phố chụp từ vệ tinh
Trang 4- Ví dụ trên là một ảnh chụp vệ tinh một khu trung tâm sầm uất cùng với các
khu dân cư xung quanh Trong cây trên, có thể thấy biểu tượng $ là nốt gốc đại diện cho toàn bộ bức ảnh, ở độ sâu tiếp theo là 2 thành phần chính của bức ảnh là khu vực trung tâm (Downtown) và các khu dân cư (Residental) Sau đấy ở mỗi khu vực chính đó ta phân tích những đối tượng tiêu biểu để
mở rộng độ sâu của cây và quá trình trên có thể tiếp tục đến khi ta không thể phân cấp thêm được các đối tượng
1.2 Phân loại dựa trên nguyên mẫu
- Với phân loại dựa trên nguyên mẫu, mục tiêu của nó là làm cho các đặc
trưng độc nhất và dễ phát hiện để việc phân loại trở nên đơn giản
1.2.1 Bộ phân loại dựa trên khoảng cách
- Bộ phân loại dựa trên khoảng cách thường dùng để phân loại các ảnh chưa
biết vào các lớp khác nhau Khoảng cách ở đây được định nghĩa là một giá trị sao cho khoảng cách tối thiểu giống với độ tương tự tối đa
- Nó sẽ tính khoảng cách từ một mẫu vecto với từng lớp nguyên mẫu Từ đó
gán mẫu này với lớp nguyên mẫu mà có khoảng cách nhỏ nhất
- Vecto của bộ phân loại này là trung bình vecto của các lớp mẫu:
(Phương trình 1)
- Với n là số lượng vecto mẫu để tính vecto trung bình thứ j, c là lớp mẫu j j thứ j, N là số lượng lớp Ta sử dụng khoảng cách Euclidean để tính:c
(Phương trình 2)
- Với D (x) là chuẩn Euclidean được tính bằng || a || = (a x a) Bộ phân loạij T 1/2
sẽ gán nhãn cho x vào lớp c nếu D (x) < D (x) Trong trường hợp D (x) = i i j i
Dj(x) thì ta tự xem xét
1.2.2 So sánh ảnh 2-D với toán tử tương quan
- Tương quan là toán tử mà ta áp dụng cửa sổ trượt (sliding window) và phép
biến đổi tích vô hướng (dot product) trên mỗi vùng ảnh Từ đấy ta sẽ tìm sự tương quan của cửa sổ trên ảnh gốc
- Ta có sự tương quan giữa 1 kernel w với 1 ảnh f(x, y) được tính bởi công
thức:
(Phương trình 3)
- Phép tương quan sẽ đạt giá trị lớn nhất khi w và f có giá trị bằng nhau, hoặc
gần bằng nhau Điều đó có nghĩa là phương trình 3 tìm vị trí mà w giống
Trang 5với 1 vùng của f Tuy nhiên có nhược điểm là kết quả tính được sẽ nhạy cảm với sự thay đổi của biên độ
- Để chuẩn hóa hàm tương quan nhằm giảm bớt sự thay đổi của biên độ và
các tham số khác, ta có hệ số tương quan:
(Phương trình 4)
- Giá trị của γ đạt lớn nhất khi mà vùng chuẩn hóa w và vùng chuẩn hóa
tương tự trong ảnh f là giống nhau Giá trị của γ trong khoảng [-1, 1] và nó đạt nhỏ nhất khi 2 vùng w và f khác biệt nhau quá nhiều
- Quá trình tính toán γ được miêu tả như sau:
Hình 4: Cơ chế của so sánh mẫu
- Mẫu trong hình 3 có kích thước m x n và được biểu diễn với tọa độ tâm (x,
y) Giá trị của hệ số tương quan tại điểm (x, y) được tính bằng phương trình
4 Tiếp đó dịch chuyển mẫu sang điểm liền kề và lặp lại quá trình Giá trị của hệ số tương quan tính được bằng cách dịch chuyển mẫu tâm của mẫu w nên nó sẽ đi qua mọi pixel của ảnh f Cuối cùng ta sẽ tìm ra giá trị γ lớn nhất thu được để tìm vùng giống nhau nhất
1.2.3 So sánh dựa trên đặc trưng SIFT
Trang 6- SIFT (Scale-invariant feature transform) là một feature descriptor được sử
dụng trong computer vision và xử lý hình ảnh được dùng để nhận dạng đối tượng, matching image, hay áp dụng cho các bài toán phân loại
- Với đầu vào là một hình ảnh qua biến đổi SIFT sẽ tạo ra các keypoint Mỗi
đối tượng trong hình ảnh sẽ cho ra rất nhiều các keypoint khác nhau, để ta phân biệt được các keypoint này với nhau sẽ thông qua một vector 128 chiều hay còn gọi là descriptor Các descriptor này sẽ được dùng để nhận dạng đối tượng trong ảnh, hay dùng cho các bài toán phân loại
- Hình ảnh sau khi áp dụng biến đổi SIFT, ứng với mỗi điểm đặc trưng ta sẽ
thu được: toạ độ điểm đặc trưng, tỉ lệ và hướng của điểm đặc trưng, descriptor Các mũi tên trong hình dưới vẽ nhờ vào tỉ lệ và hướng
- Việc khớp ảnh mẫu với ảnh chính là việc khớp các keypoint trong 2 ảnh với
nhau:
+ Áp dụng SIFT cho từng bức ảnh
+ So sánh descriptor của keypoint trong ảnh này với descriptor của keypoint trong ảnh kia Nếu 2 keypoint có descriptor gần giống nhau thì coi như 2 điểm trên 2 tấm ảnh cùng thuộc về một vật (hoặc vật giống nhau) + Dựa vào thương của tỉ lệ và hiệu của orientation của 2 keypoint, có thể biết thêm vật trong hình này to hơn vật trong hình kia bao nhiêu, vật trong hình này xoay bao nhiêu độ so với vật trong hình kia bao nhiêu
1.2.4 Phân loại dựa trên cấu trúc của nguyên mẫu
So sánh chuỗi
- Giả sử hai vùng ranh giới là a và b, được mã hóa thành các chuỗi ký tự, lần
lượt được biểu diễn dưới dạng a1a2 an và b1b2 bm Gọi α là số ký tự khớp nhau giữa hai chuỗi, trong đó một ký tự được xem là khớp nhau ở vị trí thứ
k nếu ak=bk Số kí tự không khớp nhau là: β = max (|a|, |b|) – α
Hình 5: Hai vùng ranh giới a và b
- Ta có |arg| là độ dài (số ký tự) của chuỗi trong tham số Có thể chứng minh
được rằng β = 0 nếu và chỉ nếu a và b giống nhau
- Phương trình tính tỉ lệ độ giống nhau là:
(Phương trình 5)
Trang 7- Nếu như 2 vùng giống nhau thì R sẽ đạt vô cùng dương và đạt 0 nếu không
có ký tự nào trùng nhau
1.3 Bộ phân lớp Bayes
- Với phân loại dựa trên thống kê tối ưu thì ta sẽ lựa chọn các tham số để
đem lại hiệu suất tốt Ta quan taam đến các đặc trưng được sử dụng và thiết
kế của bộ phân loại
Định nghĩa
- Bộ phân lớp Bayes là một giải thuật thuộc lớp giải thuật thống kê, nó có thể
dự đoán xác suất của một phần tử dữ liệu thuộc vào một lớp là bao nhiêu Phân lớp Bayes được dựa trên định lý Bayes (định lý được đặt theo tên tác giả của nó là Thomas Bayes)
Định lý Bayes
- Gọi A, B là hai biến cố
- Công thức Bayes tổng quát:
trong đó ta gọi A là một chứng cứ (evidence) (trong bài toán phân lớp A sẽ là một phần tử dữ liệu), B là một giả thiết nào để cho A thuộc về một lớp C nào đó Trong bài toán phân lớp chúng ta muốn xác định giá trị P(B/A) là xác suất để giả thiết B
Trang 8là đúng với chứng cứ A thuộc vào lớp C với điều kiện ra đã biết các thông tin mô
tả A P(B|A) là một xác suất hậu nghiệm (posterior probability hay posteriori probability) của B với điều kiện A
Phân lớp Naive Bayes
- Bộ phân lớp Naive bayes hay bộ phân lớp Bayes (simple bayes classifier)
hoạt động như sau:
Gọi D là tập dữ liệu huấn luyện, trong đó mỗi phần tử dữ liệu đượcx
biểu diễn bằng một vector chứa n giá trị thuộc tính A , A , , A = 1 2 n {x1, x , , x2 n}
Giả sử có m lớp C , C , , C Cho một phần tử dữ liệu , bộ phân 1 2 m x
lớp sẽ gán nhãn cho là lớp có xác suất hậu nghiệm lớn nhất Cụ x
thể, bộ phân lớp Bayes sẽ dự đoán thuộc vào lớp C nếu và chỉ nếu:x i P(C |ix) > P(Cj|x) (1<= i, j <=m, i ≠ j)
giá trị này sẽ tính dựa trên định lý Bayes
Để tìm xác suất lớn nhất, ta nhận thấy các giá trị P( ) là giống nhau x
với mọi lớp nên không cần tính Do đó ta chỉ cần tìm giá trị lớn nhất của P(x|Ci) * P(C ) Chú ý rằng P(C ) được ước lượng bằng |D |/|D|, i i i trong đó D là tập các phần tử dữ liệu thuộc lớp C Nếu xác suất tiên i i nghiệm P(C ) cũng không xác định được thì ta coi chúng bằng nhau i P(C1) = P(C ) = = P(C ), khi đó ta chỉ cần tìm giá trị P(2 m x|Ci) lớn nhất
Khi số lượng các thuộc tính mô tả dữ liệu là lớn thì chi phí tính toàn P( |Cx i) là rất lớn, dó đó có thể giảm độ phức tạp của thuật toán Naive Bayes giả thiết các thuộc tính độc lập nhau Khi đó ta có thể tính:
P( |Cx i) = P(x1|Ci) P(xn|Ci)
Gaussian Naive Bayes
Mô hình này được sử dụng chủ yếu trong loại dữ liệu mà các thành phần là các biến liên tục
Trang 92 Cài đặt
a Tập dữ liệu
- Dữ liệu gồm 1854 ảnh về 5 lớp là: xe buýt (bus), xe con (car), xe máy
(moto), người đi bộ (pedestrian), xe tải (truck)
Hình 6: Các lớp dữ liệu sử dụng
- Phân tích dữ liệu ta có số lượng các lớp như sau:
Trang 10Hình 7: Phân tích các lớp dữ liệu.
b SIFT (Scale-Invariant Feature Transform)
- Thuật toán SIFT yêu cầu một tập hợp các input keypoint Sau đó, đối với
mỗi input keypoint, SIFT lấy vùng 16 x 16 pixel bao quanh pixel trung tâm của vùng keypoint
Hình 8: Tách keypoint
- Sau đó chia vùng 16x16 ra thành 16 cửa sổ 4x4 Đối với mỗi ô trong số 16
cửa sổ, chúng ta tính toán độ lớn và hướng của gradient
Trang 11Hình 9: Tách thành các cửa sổ 4x4.
Hình 10: Chuyển sang ảnh xám
- Với độ lớn và hướng của gradient, tiếp theo chúng tôi sẽ xây dựng 8-bin
histogram cho mỗi cửa sổ 4 x 4 pixel
Trang 12Hình 11: Biểu đồ mức xám.
- Tuy nhiên, chúng ta sẽ không sử dụng cường độ thô của gradient Thay vào
đó, chúng ta sẽ sử dụng trọng số Gaussian Pixel càng xa trung tâm keypoint, nó càng ít đóng góp vào biểu đồ tổng thể Cuối cùng, bước thứ ba của SIFT là thu thập tất cả 16 8-bin oriented histogram này và ghép chúng lại với nhau
Hình 12: Ghép các 8-bin oriented histogram
- Vectơ đặc trưng của chúng ta sẽ có số chiều như sau: 16 x 8 = 128-chiều
Khi chúng ta đã thu thập các biểu đồ được nối, chúng ta kết thúc bằng việc chuẩn hóa L2 cho vector đặc trưng
Hình 13: Mô tả việc tạo vecto đặc trưng
c Kỹ thuật Túi đựng từ (Bag of Words - BoW)
- Mô hình túi từ (bag-of-words) là một biểu diễn đơn giản hóa được sử dụng
trong xử lý ngôn ngữ tự nhiên và truy vấn thông tin (IR) Trong mô hình này, một văn bản (chẳng hạn như một câu hoặc một tài liệu) được thể hiện dưới dạng túi (multiset) chứa các từ của nó, không quan tâm đến ngữ pháp
và thậm chí trật tự từ nhưng vẫn giữ tính đa dạng Mô hình túi từ cũng đã được sử dụng cho thị giác máy tính
Trang 13- Đối với việc xử lý ảnh, ta sẽ sử dụng BoW như sau: Ta xem xét một cửa sổ
nhỏ trong ảnh (trong Computer Vision, cửa sổ này được gọi là patch) là một hình chữ nhật chứa nhiều điểm ảnh gần nhau Cửa sổ này đủ lớn để có thể chứa được các bộ phận có thể mô tả được vật thể trong ảnh Tương tự thế, với ảnh là ô tô, các patch thu được có thể là bánh xe, khung xe, cửa xe, … như hàng trên trong hình dưới đây
Hình 8: Bag of Words cho ảnh ô tô
- Đến đây chúng ta sẽ sử dụng K-means clustering Ta sẽ K-means clustering
trên toàn bộ số patches thu được Ở đây ta cho codebook gồm 100 từ Sau khi thực hiện K-means clustering, ta thu được 100 clusters và 100 centers tương ứng Mỗi centers này được coi là một words, và tất cả những điểm rơi vào cùng một cluster được coi là cùng một bag Với ảnh trong tập test data, ta cũng lấy các patches rồi xem chúng rơi vào những bags nào Từ đó suy ra vector đặc trưng cho mỗi bức ảnh
- Lúc này mỗi bức ảnh sẽ được mô tả bởi một vector có số chiều 100, tức là
mỗi điểm dữ liệu bây giờ đã có số chiều bằng nhau, mặc dù ảnh thô đầu vào
có thể có kích thước khác nhau
d SVM (Support Vector Machine)
- SVM là một thuật toán học có giám sát, nó có thể sử dụng cho cả việc phân
loại hoặc đệ quy Tuy nhiên nó được sử dụng chủ yếu cho việc phân loại Trong thuật toán này, chúng ta vẽ đồi thị dữ liệu là các điểm trong n chiều (ở đây n là số lượng các tính năng bạn có) với giá trị của mỗi tính năng sẽ
là một phần liên kết Sau đó chúng ta thực hiện tìm "đường bay"
Trang 14(hyper-plane) phân chia các lớp Hyper-plane nó chỉ hiểu đơn giản là 1 đường thẳng có thể phân chia các lớp ra thành hai phần riêng biệt
- Support Vectors hiểu một cách đơn giản là các đối tượng trên đồ thị tọa độ
quan sát, Support Vector Machine là một biên giới để chia hai lớp tốt nhất
e Huấn luyện mô hình
- Khi làm việc với dữ liệu được gẵn nhãn, 1 tập dữ liệu nhất định thường
được chia thành 3 tập hợp con: tập huấn luyện (training), tập xác thực (validation), tập kiểm tra (test), (1 tập chia điển hình là 50% huấn luyện, 25% mỗi loại xác thực và kiểm tra)
- Huấn luyện là quá trình tạo ra các tham số phân loại Bộ phân loại sẽ gán
nhãn cho từng mẫu, mục tiêu là điều chỉnh tham số nếu bộ phân loại xác định sai lớp của mẫu Khi kết thúc huấn luyện, ta sẽ sử dụng tập xác thực để
so sánh hiệu suất Khi lựa chọn được mô hình sử dụng, ta sẽ dùng tập kiểm tra để kiểm tra những dữ liệu chưa được huấn luyện Nếu mô hình tốt thì kết quả của huấn luyện/xác thực sẽ gần với hiệu suất trong kiểm tra Nếu không thì nó sẽ bị “overfit"
f Lập trình
- Đường dẫn mã nguồn: https://github.com/bjergsen243/Course_DIP_Final
g Kết luận
-Bảng phân chia công việc và đánh giá của nhóm trường
trưởng Nguyễn Thanh Sơn Phần 1.1.1, Cài đặt,
Thuyết trình.
Nhóm trưởng Đặng Trần Hoàng Hà Phần 1.2.1, 1.2.2 8