ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN ĐIỆN TỬ BÁO CÁO BÀI TẬP LỚN MÔN XỬ LÝ ẢNH ĐỀ TÀI K MEANS CLASSIFICATION Giáo viên Võ Tuấn Kiệt Nhóm 14 Nguyễn Thiên Phúc 1.
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN - ĐIỆN TỬ
BÁO CÁO BÀI TẬP LỚN
MÔN XỬ LÝ ẢNH
ĐỀ TÀI:
K-MEANS CLASSIFICATION
Giáo viên: Võ Tuấn Kiệt
Nhóm 14:
- Nguyễn Thiên Phúc 1813585
- Lương Cao Thuần 1814218
- Nguyễn Viết Việt 1835044
TP.HCM 30/3/2022
Trang 2BÁO CÁO BÀI TẬP LỚN
MÔN XỬ LÝ ẢNH
Danh sách thành viên:
Nguyễn Thiên Phúc 1813585
Trang 3Mục Lục
I Lý thuyết: 3
1 Thuật toán K-means: 3
2 Ví dụ minh họa: 3
3 Đánh giá về thuật toán K-means: 6
II Ứng dụng thuật toán K-means trong thực tế: 6
1 Bài toán phân cụm một tập điểm cho trước: 6
2 Phân loại ảnh số: 8
3 Giảm kích thước ảnh: 9
III Phụ lục: 11
1 Tham khảo: 11
2 Source Code: 11
Trang 4I Lý thuyết:
1 Thuật toán K-means:
-Phát biểu: Cho một tập đối tượng X = {xi|i=1,2,…,N} với N phần tử, ta phân chia thành K cụm nhỏ với các cụm nhỏ này là Ci(i=[1:K]) tách rời nhau và thỏa mãn hàm tiêu chuẩn E đạt giá trị nhỏ nhất
-Hàm tối ưu E: sử dụng khoảng cách Euclidean
E =
i=1
N
xi∈Cj
(||xi− cj||2) Với cj là trọng tâm của cụm Cj
-Thuật toán hoạt động trên 1 tập vectơ d chiều
-Bằng cách lặp đi lặp lại nhiều lần quá trình sau để tìm ra được kết quả tối ưu:
+Gán dữ liệu
+Tính toán khoảng cách
+Cập nhật lại vị trí trọng tâm
+Quá trình lặp dừng lại khi trọng tâm hội tụ
2 Ví dụ minh họa:
Sử dụng thuật toán K-means chia 4 điểm A(0,1),B(2,1),C(5,3),D(4,6) vào 2 nhóm
Trang 5-Khởi tạo 2 điểm bất kì ban đầu làm trọng tâm Chọn điểm O11(0,2) và O12(1,4)
Ta tính lần lượt khoảng cách các điểm tới 2 tâm này
dAO11 = (0 − 0)2 + (1 − 2)2 = 1
dAO12 = (0 − 2)2 + (1 − 2)2 = 5
-Ta thấy khoảng cách từ điểm A đến tâm O11 ngắn hơn so với tâm O12 nên ta chọn A thuộc nhóm với tâm là O11
Tương tự ta thấy các điểm B, C, D thuộc nhóm tâm O12
-Tính toán lại trọng tâm:
O21 ≡ A(0,1)
O22(2 + 5 + 43 ,1 + 3 + 64 ) => O22(3.66, 2.5)
-Ta thấy lúc này các điểm A,B thuộc tâm O21, các điểm C,D thuộc tâm O22
Trang 6-Tiếp tục cập nhật trọng tâm ta được:
O13(0 + 22 ,1 + 12 ) => O13(1,1)
O23(5 + 42 ,3 + 62 ) => O23(4.5, 4.5)
-Ta thấy với 2 trọng tâm mới thì các điểm A,B vẫn thuộc nhóm 1 và C,D thuộc nhóm
2 nên có thể dừng việc tính toán ở đây và kết luận chia 4 điểm A,B,C,D thành 2 nhóm
là A,B và C,D
*Nhận xét: Trong bài toán này, ta sử dụng thuật toán K-means để phân cụm với giá trị
K ở đây là 2
Trang 73 Đánh giá về thuật toán K-means:
-Ưu điểm:
+Khi dữ liệu thay đổi vẫn có thể sửa đổi dễ dàng để hoạt động hiệu quả
+Có K cụm điểm dữ liệu và trong mỗi cụm luôn tồn tại ít nhất 1 phần tử của cụm +Các cụm độc lập với nhau
+Hội tụ sau hữu hạn lần lặp
-Nhược điểm:
+Với tập dữ liệu không lồi thì thuật toán hoạt động không hiệu quả
+Việc chọn tâm ngẫu nhiên ban đầu sẽ quyết định nhiều đến tốt độ hội tụ của thuật toán
+Việc chọn thông số K để tối ưu đòi hỏi cần có kiến thức về cấu trúc của tập dữ liệu +Nhạy cảm với nhiễu và sẽ hoạt động kém hiệu quả với dữ liệu có các cụm mà đường biên không rõ ràng
II Ứng dụng thuật toán K-means trong thực tế:
1 Bài toán phân cụm một tập điểm cho trước:
-Tạo ra tập 300 điểm ngẫu nhiên
-Sử dụng thư viện sklearn để phân cụm
-Hình ảnh 300 điểm khởi tạo:
Trang 8-Sử dụng thuật toán K-means trong thư viện có sẵn để phân cụm cho tập điểm trên Với mỗi giá trị K sẽ trả về các kết quả phân cụm khác nhau
+Với K = 2:
+Với K = 3:
+Với K = 4:
Trang 9-Nhận xét:
+Với giá trị K thuật toán sẽ tìm ra các trọng tâm tối ưu để chia tập điểm thành K cụm phù hợp nhất
+Như kết quả ở trên ta có thể thấy thuật toán K-means có thể tăng giá trị K để chia ra
số cụm tùy ý (tối đa K cụm)
2 Phân loại ảnh số:
-Tập ảnh từ thư viện sklearn.datasets.load_digits với 1797 tấm ảnh kích thước 8x8 Mỗi hình ảnh chứa các số tự nhiên từ 0-9
-Do dữ liệu có 10 số nên ta chọn K=10
-Dưới đây là kết quả một số nhóm ảnh được chia ra từ tập ảnh ban đầu:
Trang 10-Nhận xét:
+Nhìn chung thuật toán có thể phân loại được các chữ số khá chính xác
+Thuật toán không thể phân cụm chính xác hoàn toàn do đặc trưng hoạt động của thuật toán và ta cũng biết rằng thuật toán Kmeans không phải là công cụ mạnh dùng để phân loại ảnh
3 Giảm kích thước ảnh:
-Sử dụng thuật toán K-means để giảm số lượng màu trong ảnh, từ đó có thể giảm đi kích thước thước ảnh nhờ việc mã hóa các nhóm điểm ảnh thay vì từng điểm đơn lẻ -Với ảnh ban đầu kích thước 523x500x3 và 100552 màu:
Trang 1110 -Ta giảm số lượng màu trong ảnh về 20 (thời gian thực hiện t=26s):
-Ta giảm số lượng màu trong ảnh về 50 (thời gian thực hiện t=120s):
Trang 12-Ta giảm số lượng màu trong ảnh về 100 (thời gian thực hiện t=240s):
-Nhận xét:
+Số lượng màu ảnh giảm đi so với ảnh gốc là rất lớn nhưng với chỉ khoảng 100 màu thì đã cho được ảnh khá giống với ảnh gốc
+Thời gian tính toán thuật toán tăng lên khi số lượng màu tăng do các nhiều màu thì càng có nhiều trọng tâm cần tìm Các trọng tâm ban đầu được khởi tạo ngẫu nhiên nên
có thể giảm thời gian thực hiện nếu các trọng tâm ban đầu phù hợp với ảnh
+Ta có thể áp dụng thuật toán K-means trong việc nén ảnh để giảm kích thước dữ liệu đáng kể
III Phụ lục:
1 Tham khảo:
P3RWmjvt1cjMPjOwUsGwFO5G6vdcyel9J9ji-ID6Vy1J2ltRmwM#ej2
2 Source Code:
https://github.com/ntp0102/btl_xla.git