Phânvùng dựa trên đồ thị: Sử dụng các thuật toán phân đoạn đồ thị để phân vùng hìnhảnh bằng cách xây dựng đồ thị từ hình ảnh và tìm kiếm các đường cắt tối ưu trênđồ thị.Phân vùng dựa trê
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
LÝ THỊ NGỌC BÍCH
NGHIÊN CỨU MỘT SỐ KỸ THUẬT PHÂN CỤM
VÀ ỨNG DỤNG TRONG BÀI TOÁN PHÂN VÙNG ẢNH
LUẬN VĂN THẠC SĨChuyên ngành: Khoa học máy tính
Mã số: 8480101
Người hướng dẫn: TS Nguyễn Hùng Cường
Thái Nguyên - 2023
Trang 2Để hoàn thành luận văn này trước hết em xin chân thành cảm ơn quý thầy, côtrong khoa Công nghệ thông tin, Trường Đại Học Công nghệ thông tin và Truyềnthông – Đại học Thái Nguyên đã tận tình truyền đạt kiến thức trong những năm
em học tập
Đặc biệt, em xin gửi đến thầy TS Nguyễn Hùng Cường, người đã tận tìnhhướng dẫn, đưa ra những lời nhận xét, những kinh nghiệm quý báu, những kinhnghiệm đó sẽ giúp em hoàn thiện bản thân hơn
Em cũng xin cảm ơn gia đình, bạn bè đồng nghiệp, các bạn cùng lớp cao họcK20 KHMT đã hỗ trợ, động viên, đồng hành cùng em trong quá trình học tập vànghiên cứu
Luận văn không tránh khỏi những sai sót, em rất mong nhận được ý kiến đónggóp thầy, cô để hoàn thiện hơn
Một lần nữa em xin chân thành cảm ơn!
Thái Nguyên, ngày 9 tháng 9 năm 2023
Sinh Viên
Lý Thị Ngọc Bích
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này do chính tôi thực hiện, dưới sự hướng dẫn của
TS Nguyễn Hùng Cường Các kết quả lý thuyết được trình bày trong luận văn là
sự tổng hợp từ các kết quả đã được công bố và có trích dẫn đầy đủ Kết quả củachương trình thực nghiệm cũng như các đánh giá, nhận xét trong luận văn đượctác giả thực hiện là trung thực, nếu sai tôi hoàn toàn chịu trách nhiệm
Thái Nguyên, ngày 9 tháng 9 năm 2023
Học viên
Lý Thị Ngọc Bích
Trang 4Mục lục
DANH SÁCH BẢNG 5
DANH SÁCH HÌNH VẼ 5
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 7
MỞ ĐẦU 8
Chương 1 TỔNG QUAN BÀI TOÁN PHÂN VÙNG ẢNH SỐ 10
1.1 Tổng quan xử lý ảnh số 10
1.1.1 Một số khái niệm cơ bản trong xử lý ảnh 10
1.1.2 Tổng quan về một hệ thống xử lý ảnh 12
1.1.3 Một số thao tác cơ bản trong xử lý ảnh 13
1.2 Phân vùng ảnh số 15
1.2.1 Khái niệm 15
1.2.2 Các ứng dụng tiêu biểu của phân vùng ảnh số 15
1.2.3 Các phương pháp phân vùng 16
1.2.4 Phân vùng dựa trên phân cụm 19
1.3 Một số thước đo đánh giá chất lượng phân vùng ảnh 20
Chương 2 MỘT SỐ THUẬT TOÁN PHÂN CỤM 25
2.1 Phân cụm Kmean 25
2.1.1 Giới thiệu 25
2.1.2 Phân tích toán học 26
2.1.3 Các phương pháp khởi tạo tâm cụm 29
2.1.4 Tìm số cụm tối ưu 30
2.1.5 Độ phức tạp của Kmean 33
2.1.6 Hạn chế của Kmean 33
2.1.7 Một thuật toán Kmean cải tiến 34
2.2 Phân cụm phân cấp 35
2.2.1 Giới thiệu 35
2.2.2 Chiến lược hợp nhất 37
2.2.3 Khoảng cách giữa hai cụm 38
2.2.4 Chiến lược phân chia (divisive) 40
2.2.5 Điều kiện dừng 42
2.2.6 Độ phức tạp thuật toán 42
Trang 52.3 Phân cụm DBSCAN 43
2.3.1 Giới thiệu 43
2.3.2 Phương pháp phân cụm dựa trên mật độ 44
2.3.3 Các bước trong thuật toán DBSCAN 47
2.3.4 Phân tích độ phức tạp thuật toán DBSCAN 48
Chương 3 PHÂN VÙNG ẢNH SỬ DỤNG PHÂN CỤM 50
3.1 Các bước thực hiện 50
3.1.1 Các bước thực hiện với Kmean 50
3.1.2 Các bước thực hiện với phân cụm phân cấp 51
3.1.3 Các bước thực hiện với DBSCAN 52
3.2 Một số kết quả ứng dụng Kmean trong phân vùng ảnh 53
3.2.1 Công cụ và môi trường cài đặt 53
3.2.2 Dữ liệu 53
3.2.3 Ứng dụng Kmean trực tiếp 53
3.2.4 Thuật toán phân vùng ảnh sử dụng Kmean cải tiến 54
Kết luận 59
Tài liệu tham khảo 62
Trang 6Danh sách bảng
3.1 So sánh thời gian phân cụm của KMeans và wiKMeans 56
3.2 Khoảng cách giữa các tâm sinh ra từ wiKMeans 57
3.3 Khoảng cách giữa các tâm sinh ra từ KMeans 58
Trang 7Danh sách hình vẽ
1.1 Hệ màu RGB 11
1.2 Các giai đoạn chính trong xử lý ảnh 12
2.1 Ví dụ với ba cụm dữ liệu trong không gian 2 chiều 26
2.2 Biểu đồ giữa số cụm và giá trị inertia 31
2.3 Lựa chọn số cụm k dựa trên điểm số silhouette 31
2.4 Phân tích đồ thị silhouette với các giá trị k khác nhau 32
2.5 Kmean không thể phân cụm ba khối elip một cách phù hợp 34
2.6 Đồ thị dendrogram 36
2.7 Minh họa chiến lược hợp nhất 6 điểm dữ liệu 37
2.8 Minh hoạ phương pháp phân chia trong thuật toán phân cụm phân cấp 41 2.9 So sánh kết quả phân cụm giữa thuật toán k-Means và thuật toán DBSCAN 44
2.10 Minh họa ba loại điểm trong thuật toán DBSCAN 46
3.1 Phân vùng ảnh sử dụng kmean 53
3.2 Ảnh gốc đầu vào trong thử nghiệm 56
3.3 Kết quả phân vùng của KMeans và wiKMeans 56
3.4 Biểu đồ so sánh thời gian phân cụm của Kmean và Wikmean 57
Trang 8DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Image segmentation Phân vùng ảnh
Object Detection Nhận dạng đối tượng
CT Computer Tomography - một loại ảnh y tế MRI agnetic Resonance Imaging - một loại ảnh y tế USG (Ultrasound - một loại ảnh y tế
Kmean Thuật toán phân cụm k điểm trung bình DBSCAN Thuật toán phân cụm mật độ
RGB Red - Green - Blue - Hệ màu
HSV, LAB Các mô hình màu không gian
Edge Detection Phát hiện cạnh, dò cạnh
||x|| Chuẩn 2, chuẩn euclide của véc tơ
Argmin Bài toán tối ưu tham số
Hierachi-cal Clustering Phân cụm phân cấp.
dendrogram Đồ thị quá trình phân chia.
Homogeneity Độ đồng nhất
Trang 9MỞ ĐẦU
Bài toán Phân đoạn ảnh là một trong những phân nhánh của lĩnh vực thị giác máytính Nhiệm vụ của bài toán này là chia một hình ảnh thành các khu vực con khácnhau Mục tiêu chung của Phân đoạn ảnh tương tự như việc Nhận dạng đối tượng,trong đó chúng ta phát hiện các vùng chứa đối tượng trong ảnh và gán nhãn chochúng Tuy nhiên, tiêu chuẩn độ chính xác của Phân đoạn ảnh cao hơn so với Nhậndạng đối tượng, vì nó yêu cầu phải dự đoán chính xác từng pixel.[1]
Mặc dù Phân đoạn ảnh đòi hỏi mức độ chi tiết cao hơn, nhưng đổi lại, các thuậttoán trong lĩnh vực này giúp chúng ta hiểu sâu hơn về nội dung của một bức ảnh.Chúng ta không chỉ biết vị trí của các đối tượng trong ảnh, mà còn biết được hìnhdạng cụ thể của chúng và cả việc từng pixel thuộc về đối tượng nào
Phân đoạn hình ảnh đóng một vai trò then chốt trong nhiều lĩnh vực khác nhaunhư lĩnh vực y học hình ảnh, phát hiện và nhận dạng đối tượng, hệ thống giámsát qua camera, và hệ thống điều khiển giao thông [7], [9] Kỹ thuật này đóng vaitrò quan trọng trong giai đoạn tiền xử lý của hầu hết các hệ thống xử lý ảnh Việcthực hiện phân đoạn chất lượng sẽ đóng góp vào hiệu suất sau này bằng cách giảmthiểu chi phí tính toán và thời gian, cùng việc nâng cao độ chính xác cho các ứngdụng
Trong lĩnh vực nhận dạng đối tượng, việc phân đoạn hình ảnh có chức năngtách đối tượng ra khỏi phông nền Đối tượng ở đây có thể là con người hoặc cácvật thể đang di chuyển trong phạm vi trước mắt Sau khi đối tượng được phânđoạn, chúng có thể được xử lý trong các hệ thống như đếm số lượng người ra vào,nhận dạng cử chỉ tay, hoặc nhận dạng khuôn mặt
Ở lĩnh vực camera giám sát, việc phân đoạn hình ảnh có thể được áp dụng đểxác định và giám sát đối tượng khi chúng nhập vào vùng giám sát Nó cũng có thểđược sử dụng để cảnh báo về sự di chuyển trong vùng giám sát
Trong lĩnh vực y học hình ảnh, các kỹ thuật hình ảnh như CT (Computed mography), MRI (Magnetic Resonance Imaging), X-Quang và siêu âm không thểthiếu để phân tích các tình trạng bệnh lý khác nhau, hỗ trợ bác sĩ trong quá trìnhchẩn đoán Trong quá trình này, việc phân đoạn giúp trích xuất các đường biên, bềmặt và bộ phận cơ thể cần thiết từ hình ảnh Tuy nhiên, việc thực hiện phân đoạnthủ công tốn nhiều thời gian và không luôn đảm bảo kết quả tốt Các kết quả phânđoạn và biên giới này có ý nghĩa quan trọng trong việc hỗ trợ bác sĩ trong quá trìnhchẩn đoán [9]
To-Có một số phương pháp tiếp cận khác nhau để giải quyết bài toán phân đoạnhình ảnh Phương pháp đầu tiên là tiếp cận dựa trên sự tương đồng, trong đóchúng ta tìm kiếm sự tương đồng giữa các pixel trong hình ảnh để tạo thành các
Trang 10phân đoạn, thường dựa trên một ngưỡng cố định Các thuật toán học máy nhưphân cụm thường sử dụng phương pháp này để phân đoạn hình ảnh Phươngpháp thứ hai là tiếp cận theo hướng gián đoạn, dựa vào sự ngắt quãng của giá trịcường độ pixel trong hình ảnh Các kỹ thuật như phát hiện biên, điểm và đườngthường áp dụng tiếp cận gián đoạn để tạo ra các phân đoạn trung gian, sau đó kếtquả này có thể được tiếp tục xử lý để tạo ra phân đoạn cuối cùng Luận văn tậptrung vào kỹ thuật phân đoạn dựa trên phân cụm, với hướng tiếp cận tương đồng.Phân cụm là một loại thuật toán học máy không giám sát Các thuật toán phâncụm mà luận văn nghiên cứu, tổng hợp và so sánh khi áp dụng vào bài toán phânđoạn hình ảnh bao gồm: K-means Clustering, phân cụm phân cấp và DBSCAN.
Đề tài “Nghiên cứu một số kỹ thuật phân cụm ứng dụng trong bài toán phânvùng ảnh” xác định đối tượng và phạm vi như sau:
Đối tượng: Nghiên cứu tổng hợp Các kỹ thuật phân cụm để giải quyết bài toánphân vùng ảnh, theo hướng tiếp cận tương đồng
Phạm vi: Phân vùng ảnh tĩnh, sử dụng một số kỹ thuật phân cụm phổ biến nhưKmean, DBScan, phân cụm phân cấp và các biến thể Ngôn ngữ lập trình demo làPython cùng các thư viện hỗ trợ
Những nội dung nghiên cứu chính:
Chương 1: Các kiến thức nền tảng, trình bày về bài toán phân vùng ảnh và cáchướng tiếp cận
Chương 2: Một số thuật toán phân cụm Tìm hiểu về thuật toán, cơ chế hoạt độngcũng như cách thức ứng dụng thuật toán trong thực tiễn
Chương 3: Phân vùng ảnh sử dụng phân cụm Tìm hiểu, nghiên cứu ứng dụng cácthuật toán phân cụm để phân vùng ảnh Chương trình thực nghiệm Huấnluyện các mô hình và so sánh đánh giá kết quả
Đề tài tổng hợp một số kỹ thuật phân cụm áp dụng cho bài toán phân vùng ảnh,làm tài liệu tốt cho học viên cao học, sinh viên chuyên ngành Tuy vậy, không thểtránh khỏi có những sai sót trong cách trình bày và kiến thức còn hạn hẹp Mongđược sự góp ý xây dựng của thầy cô và các bạn Em xin chân thành cảm ơn!
Thái Nguyên, ngày 9 tháng 9 năm 2023
HỌC VIÊN
LÝ THỊ NGỌC BÍCH
Trang 11số nói riêng Các kiến thức này được tác giả tham khảo tại các giáo trình, tài liệu
về xử lý ảnh, thị giác máy tính [1], [8], các bài báo [7], [9], [10] và tổng hợp lại
Mỗi thành phần của mảng (x, y) được gọi là một điểm ảnh (pixel: picture ment) và là phần tử nhỏ nhất cấu tạo nên ảnh Điểm ảnh được hiểu như 1 dấu hiệuhay cường độ sáng tại một tọa độ xác định trong không gian Hình ảnh được xemnhư là 1 tập hợp các điểm Với cùng kích thước nếu sử dụng càng nhiều điểm ảnhthì bức ảnh càng đẹp, càng mịn và càng thể hiện rõ hơn chi tiết của ảnh người tagọi đặc điểm này là độ phân giải
ele-Cường độ sáng của một ảnh tại một ví trí điểm ảnh
Mỗi điểm ảnh của một ảnh tương ứng với một phần của một đối tượng vật lýtồn tại trong thế giới thực Đối tượng vật lý này được chiếu sáng bởi một vài tiasáng mà tia sáng này bị phản xạ một phần hay hấp thụ một phần khi chiếu lên đối
Trang 12tượng vật lý đó Phần ánh sáng phản xạ lại đi tới các bộ cảm biến được sử dụng đểtạo ảnh cảm nhận và tạo ra các giá trị ghi nhận được đối tượng đối với từng điểmảnh Giá trị thu nhận được phụ thuộc vào phổ ánh sáng phản xạ Giá trị cường độsáng của các điểm ảnh khác nhau chỉ có ý nghĩa tương đối mà không có ý nghĩatrong các toán hạng tuyệt đối [1], [7].
Số bits cần thiết để lưu trữ một ảnh
Nếu ảnh được lưu trữ dưới dạng một mảng hai chiều với kích thước N×N và
có 2m mức xám thì số bits cần thiết để lưu trữ ảnh là:
Trang 13Biểu diễn ảnh
Trong máy tính, ảnh được biểu diễn dưới dạng ma trận các pixel mà mỗi pixelbiểu diễn một điểm màu Mỗi điểm màu được biểu diễn bằng bộ 3 số (r,g,b) Đểtiện cho việc xử lý ảnh thì sẽ tách ma trận pixel ra 3 kênh red, green, blue Vì vậy,ảnh màu trên máy tính sẽ được biểu diễn dưới dạng tensor 3 chiều chồng lên nhau.Tuy nhiên mỗi pixel trong ảnh xám chỉ cần biểu diễn bằng một giá trị nguyên trongkhoảng từ [0, 255] với m = 8 thay vì (r, g, b) như trong ảnh màu Giá trị 0 là màuđen, 255 là màu trắng và giá trị pixel càng gần 0 thì càng tối và càng gần 255 thìcàng sáng Do đó khi biểu diễn ảnh xám trong máy tính chỉ cần một ma trận là đủ
Xử lý ảnh là đối tượng nghiên cứu của lĩnh vực thị giác máy, là quá trình biếnđổi từ một ảnh ban đầu sang một ảnh mới với các đặc tính và tuân theo ý muốncủa người sử dụng Xử lý ảnh có thể gồm quá trình phân tích, phân lớp các đốitượng, làm tăng chất lượng, phân đoạn và tách cạnh, gán nhãn cho vùng hay quátrình biên dịch các thông tin hình ảnh của ảnh [1], [7]
Cũng như xử lý dữ liệu bằng đồ hoạ, xử lý ảnh số là một lĩnh vực của tin họcứng dụng Xử lý dữ liệu bằng đồ hoạ đề cập đến những ảnh nhân tạo, các ảnh nàyđược xem xét như là một cấu trúc dữ liệu và được tạo ra bởi các chương trình Xử
lý ảnh số bao gồm các phương pháp và kĩ thuật để biến đổi, để truyền tải hoặc mãhoá các ảnh tự nhiên Mục đích của xử lý ảnh gồm:
• Biến đổi ảnh, làm tăng chất lượng ảnh
• Tự động nhận dạng, đoán nhận, đánh giá các nội dung của ảnh
Các bước cần thiết trong xử lý ảnh được mô tả chi tiết trong Hình 1.2bao gồmcác bước sau:
Hình 1.2: Các giai đoạn chính trong xử lý ảnh
Trang 14Đầu tiên là quá trình thu nhận ảnh Ảnh có thể thu nhận được qua camera.Thường khi thu nhận ảnh qua camera là tín hiệu tương tự (loại camera ống kiểuCCIR), nhưng cũng có thể là tín hiệu số hóa (loại CCD- Charge Coupled Device).Ảnh cũng có thể thu nhận từ vệ tinh qua các bộ cảm ứng (sensor), hay ảnh tranhđược quét trên scanner Tiếp theo là quá trình số hóa (Digitalizer) để biến đổi tínhiệu tương tự sang tín hiệu rời rạc (lấy mẫu) và số hóa bằng lượng hóa, trước khichuyển sang giai đoạn xử lý, phân tích hay lưu trữ lại Trước hết là công việc tăngcường ảnh để nâng cao chất lượng ảnh Do những nguyên nhân khác nhau: có thể
do chất lượng thiết bị thu nhận ảnh, do nguồn sáng hay do nhiễu, ảnh có thể bịsuy biến do vậy cần phải tăng cường và khôi phục lại ảnh để làm nổi bật một sốđặc tính chính của ảnh, hay làm cho ảnh gần giống nhất với trạng thái gốc – trạngthái trước khi bị biến dạng Giai đoạn tiếp theo là phát hiện các đặc tính như biên,phân vùng ảnh, trích chọn các đặc trưng, vân vân
Cuối cùng tùy theo mục đích của ứng dụng, sẽ là giai đoạn nhận dạng, phânloại hay các quyết định khác
1.1.3 Một số thao tác cơ bản trong xử lý ảnh
Biểu diễn ảnh
Trong biểu diễn ảnh, người ta thường dùng các phần tử đặc trưng của ảnh làpixel Nhìn chung có thể một hàm hai biến chứa các thông tin như biểu diễn củamột ảnh Các mô hình biểu diễn cho ta một mô tả logic hay định lượng các tínhchất của hàm này Trong biểu diễn ảnh cần chú ý đến tính trung thực hoặc các tiêuchuẩn “thông minh” để đo chất lượng ảnh hoặc tính hiệu quả của các kĩ thuật xử
lý Một số mô hình thường được dùng trong biểu diễn ảnh: mô hình bài toán, môhình thống kê Trong mô hình bài toán, ảnh hai chiều được biểu diễn nhờ các hàmhai biến trực giao gọi là các hàm cơ sở Còn mô hình thống kê, một ảnh được coinhư một phần tử của một tập hợp đặc trưng bởi các đại lượng như: kỳ vọng toánhọc, hiệp biến, phương sai, moment
Biến đổi ảnh (Image Transform)
Thuật ngữ biến đổi ảnh thường dùng để nói tới một lớp các ma trận đơn vị vàcác kĩ thuật dùng để biến đổi ảnh Biến đổi ảnh nhằm làm giảm các nguyên nhâncủa ảnh để việc xử lý hiệu quả hơn Như làm rõ hơn các thông tin mà người dùngquan tâm nhưng người dùng phải chấp nhận mất đi một số thông tin cần thiết
Phân tích ảnh
Phân tích ảnh liên quan đến việc xác định các độ đo định lượng của 1 ảnh đểđưa ra một mô tả đầy đủ về ảnh Quá trình phân tích ảnh thực chất bao gồm nhiềucông đoạn nhỏ Trước hết là công việc tăng cường ảnh để nâng cao chất lượng ảnh,
Trang 15giai đoạn tiếp theo là phát hiện các đặc tính như phát hiện biên, phân vùng ảnh,trích chọn các đặc trưng.
Tăng cường ảnh – khôi phục ảnh
Tăng cường ảnh là một bước quan trọng, tạo tiền đề cho xử lý ảnh Nó gồm các
kỹ thuật như: lọc độ tương phản, khử nhiễu, nổi màu Khôi phục ảnh là nhằm loại
bỏ các suy giảm trong ảnh
Xử lý biên ảnh
Biên là vấn đề chủ yếu trong phân tích ảnh vì các điểm trích chọn trong quátrình phân tích ảnh đều dựa vào biên Mỗi điểm ảnh có thể là biên nếu ở đó có sựthay đổi đột ngột về mức xám Tập hợp các điểm biên tạo thành biên hay đườngbao quanh của ảnh
Phân vùng ảnh
Phân vùng là bước then chốt trong xử lý ảnh Giai đoạn này nhằm phân tíchảnh thành những thành phần có tính chất nào đó dựa theo biên hay các vùng liênthông Tiêu chuẩn để xác định các vùng liên thông có thể là mức xám, cùng màuhay độ tương phản
Nhận dạng ảnh
Nhận dạng ảnh là quá trình liên quan đến các mô tả đối tượng mà người tamuốn đặc tả nó Quá trình nhận dạng thường đi sau quá trình trích chọn các đặctính chủ yếu của đối tượng Có hai kiểu mô tả đối tượng:
• Mô tả tham số (nhận dạng theo tham số)
• Mô tả theo cấu trúc (nhận dạng theo cấu trúc)
Trên thực tế người ta đã áp dụng kỹ thuật nhận dạng khá thành công với nhiềuđối tượng khác nhau như: nhận dạng ảnh vân tay, nhận dạng chữ viết
Nén ảnh
Dữ liệu ảnh cũng như các dữ liệu khác cần phải lưu trữ hay truyền đi trênmạng mà lượng thông tin để biểu diễn cho một ảnh là rất lớn Do đó làm giảmlượng thông tin hay nén dữ liệu là một nhu cầu cần thiết Nén dữ liệu là quá trìnhlàm giảm lượng thông tin “dư thừa” trong dữ liệu gốc và do vậy lượng thông tinthu được sau khi nén thường nhỏ hơn dữ liệu gốc rất nhiều
Trang 161.2 Phân vùng ảnh số
Phân vùng ảnh số là quá trình chia một hình ảnh số thành các phần không gianrời rạc, gọi là vùng, mà trong đó các điểm ảnh có thuộc tính tương tự nhau Mỗivùng tương ứng với một phần tử trong phân vùng và thường được đại diện bằngmột giá trị số hoặc một nhãn
Phân vùng ảnh số có thể được thực hiện dựa trên nhiều tiêu chí khác nhau, baogồm màu sắc, độ sáng, độ tương phản, cường độ, cạnh, đặc trưng hình học và cácthuộc tính khác của điểm ảnh Quá trình này thường được thực hiện để giảm sốlượng dữ liệu, tăng tốc độ xử lý và phân tích dữ liệu hình ảnh
Đặc trưng của ảnh số là những thuộc tính đặc biệt của ảnh, có thể được tríchxuất để giúp phân vùng ảnh thành các vùng khác nhau Ví dụ, đối với ảnh chứacác vật thể khác nhau, đặc trưng của ảnh có thể bao gồm màu sắc, hình dạng, kíchthước và vị trí của các vật thể đó
Đường biên là đường viền xác định ranh giới giữa các vùng trong ảnh Cácphương pháp phân vùng ảnh dựa trên đường biên thường tìm kiếm các đườngbiên trong ảnh và sử dụng chúng để phân tách các vùng khác nhau Ví dụ, trongphương pháp phân vùng dựa trên cạnh biên, các đường biên trong ảnh được pháthiện và sử dụng để phân tách các vùng khác nhau
Mặt phẳng màu sắc là một không gian màu 3 chiều (RGB) được sử dụng đểbiểu diễn màu sắc của ảnh Trong phương pháp phân vùng dựa trên màu sắc, cácpixel trong ảnh được phân tách thành các vùng khác nhau dựa trên màu sắc củachúng Ví dụ, trong phương pháp phân vùng dựa trên màu sắc, các pixel có cùnggiá trị màu được phân vào cùng một vùng
Mặt phẳng xám là một không gian màu 2 chiều được sử dụng để biểu diễn mức
độ xám của ảnh Trong phương pháp phân vùng dựa trên mức độ xám, các pixeltrong ảnh được phân tách thành các vùng khác nhau dựa trên mức độ xám củachúng Ví dụ, trong phương pháp phân vùng dựa trên mức độ xám, các pixel cócùng giá trị mức độ xám được phân vào cùng một vùng
Ngưỡng là một giá trị được sử dụng để phân tách các đối tượng trong ảnh.Trong phương pháp phân vùng dựa trên mức độ xám, ngưỡng được sử dụng đểphân tách các pixel thành hai nhóm: các pixel có mức độ xám lớn hơn hoặc bằngngưỡng và các pixel có mức độ xám nhỏ hơn ngưỡng Các pixel thuộc vào nhóm
có mức độ xám lớn hơn hoặc bằng ngưỡng được phân vào cùng một vùng
Phân vùng ảnh số có nhiều ứng dụng tiêu biểu trong nhiều lĩnh vực khác nhau,
từ y học và công nghiệp đến công nghệ thông tin và giải trí
Trang 17Chẩn đoán hình ảnh: Phân vùng ảnh số trong y học giúp xác định và định vịcác cấu trúc y tế trên hình ảnh y học như MRI, CT, X-Quang Nó hỗ trợ việc chẩnđoán bệnh, phát hiện tình trạng khối u, định vị cơ quan và vùng bệnh lý trong cơthể.
Kiểm tra chất lượng sản phẩm: Phân vùng ảnh số được sử dụng trong côngnghiệp để kiểm tra chất lượng sản phẩm, theo dõi quá trình sản xuất, và phát hiệnlỗi sản phẩm Ví dụ, trong sản xuất ô tô, phân vùng ảnh có thể xác định các phần
bị lỗi hoặc thiếu sót
Địa lý: Trong lĩnh vực này, phân vùng ảnh số giúp xác định các đối tượng trên
bề mặt biển như tàu, container, hay đo lường các thông số địa lý như diện tích đất,mật độ cây cối
Thị giác máy tính và xe tự hành: Trong thị giác máy tính, phân vùng ảnh số hỗtrợ cho các hệ thống nhận dạng và phát hiện đối tượng Trong xe tự hành, nó cóvai trò quan trọng trong việc phân biệt đường, vỉa hè, và các vật thể trên đường.Nhận dạng biểu cảm và nhận diện khuôn mặt: Phân vùng ảnh số giúp nhậnbiết các đặc điểm trên khuôn mặt con người như mắt, miệng, mũi, từ đó có thểứng dụng trong việc nhận dạng biểu cảm, nhận diện khuôn mặt
Những ứng dụng này chỉ là một phần nhỏ của những gì mà phân vùng ảnh số
có thể thực hiện Nhờ vào sự phát triển của công nghệ và sự sáng tạo trong việc ápdụng, lĩnh vực này đang mở ra nhiều cơ hội mới cho nhiều lĩnh vực khác nhau
Các phương pháp phân vùng ảnh số phổ biến bao gồm: Phân vùng dựa trênmàu sắc: Tách các vùng có màu sắc tương tự bằng cách sử dụng các mô hình màukhông gian như RGB, HSV, LAB Phân vùng dựa trên cạnh: Xác định các đườngviền hoặc ranh giới trong hình ảnh bằng cách sử dụng các thuật toán như Canny,Sobel, Laplacian Phân vùng dựa trên đặc trưng: Dựa vào các đặc trưng hình học,đặc trưng cục bộ hoặc đặc trưng toàn cục của hình ảnh để phân vùng Ví dụ: phânvùng dựa trên hình dạng, phân vùng dựa trên đặc trưng textural (kết cấu) Phânvùng dựa trên đồ thị: Sử dụng các thuật toán phân đoạn đồ thị để phân vùng hìnhảnh bằng cách xây dựng đồ thị từ hình ảnh và tìm kiếm các đường cắt tối ưu trên
• Ngưỡng màu (Color Thresholding): Phương pháp này dựa trên việc đặt mộtngưỡng trên các thành phần màu (chẳng hạn như kênh R, G, B trong không
Trang 18gian màu RGB) để phân tách các vùng khác nhau Các điểm ảnh có giá trịmàu nằm trong khoảng ngưỡng được xem là cùng một vùng.
• Các mô hình không gian màu (Color Space Models): Các không gian màu nhưRGB, HSV, LAB cung cấp các phương pháp biểu diễn màu sắc khác nhau.Bằng cách chuyển đổi không gian màu, có thể tìm ra các thành phần màuhoặc phân vùng dễ dàng hơn Ví dụ, trong không gian màu HSV, việc phânvùng dựa trên màu sắc có thể được thực hiện bằng cách xác định các ngưỡngtrên kênh Hue (màu sắc) hoặc Saturation (độ bão hòa màu)
• Các phương pháp phân vùng dựa trên mô hình màu (Color Model-basedMethods): Phương pháp này dựa trên việc xây dựng một mô hình màu sắccho từng vùng và sử dụng thuật toán để phân loại các điểm ảnh vào các vùngtương ứng Ví dụ, phân vùng dựa trên Gaussian Mixture Models (GMM) hoặcK-means clustering
• Phân vùng dựa trên hình thái học màu sắc (Color Morphological tion): Phương pháp này kết hợp các phép biến đổi hình thái học với màu sắc
Segmenta-để tách các vùng dựa trên đặc điểm hình thái của chúng Ví dụ, phân vùngdựa trên phép co dãn, mở hoặc đóng màu sắc để loại bỏ các chi tiết khôngmong muốn và nối các vùng lại
Phân vùng dựa trên cạnh là một phương pháp phân vùng ảnh số phổ biến,trong đó các vùng trong hình ảnh được tách ra dựa trên sự khác biệt về cạnh hoặcranh giới của chúng Ý tưởng chính của phân vùng dựa trên cạnh là các điểm ảnh
có độ chênh lệch về cạnh cao hơn so với các điểm ảnh khác trong cùng một vùng.Một số phương pháp phân vùng dựa trên cạnh:
• Dò cạnh (Edge Detection): Phương pháp này sử dụng các thuật toán nhưCanny, Sobel hoặc Laplacian để xác định các điểm ảnh trên ranh giới hoặccạnh trong hình ảnh Sau đó, các điểm ảnh này có thể được nhóm lại thànhcác vùng riêng biệt dựa trên các quy tắc nhất định
• Phân vùng dựa trên mô hình hình thái (Morphological Segmentation): Phươngpháp này kết hợp các phép biến đổi hình thái học (như co dãn, mở hoặc đóng)với việc xử lý cạnh để tách các vùng dựa trên hình thái của chúng Các phépbiến đổi hình thái học giúp làm phẳng và nối các cạnh lại thành các vùng
• Phân vùng dựa trên biến đổi thông tin đường cắt (Graph Cut-based tation): Phương pháp này xây dựng đồ thị từ hình ảnh, trong đó các điểmảnh là các đỉnh và các cạnh nối các điểm ảnh có khả năng là ranh giới Sau
Segmen-đó, thuật toán tìm kiếm đường cắt tối ưu trên đồ thị để tách các vùng ra khỏinhau
Trang 19• Phân vùng dựa trên thuật toán Watershed: Phương pháp này dựa trên thuậttoán Watershed, trong đó hình ảnh được coi như một bề mặt địa hình và cácđiểm ảnh tương ứng là các điểm nước Bằng cách "tràn" nước từ các điểmnước, các vùng sẽ được tạo ra tương ứng với các vùng của hình ảnh.
Phân vùng dựa trên đặc trưng là một phương pháp phân vùng ảnh số phụthuộc vào các đặc trưng của điểm ảnh và/hoặc các khu vực trong hình ảnh Phươngpháp này tập trung vào các thuộc tính hình học, màu sắc, cấu trúc hoặc thôngtin khác để tách các vùng có tính chất tương tự hoặc đặc biệt khác nhau Một sốphương pháp phân vùng dựa trên đặc trưng:
• Phân vùng dựa trên đặc trưng hình học: Phương pháp này sử dụng các thuộctính hình học như hình dạng, kích thước, tỷ lệ, trọng tâm vùng, v.v để phânchia các vùng trong hình ảnh Ví dụ, phân vùng dựa trên các đường viền, đặctrưng hình dạng như các hình tròn, hình vuông, hoặc các thuộc tính hình họckhác
• Phân vùng dựa trên đặc trưng màu sắc: Phương pháp này sử dụng thôngtin màu sắc để tách các vùng trong hình ảnh Các thuật toán như k-meansclustering, Gaussian Mixture Models (GMM), hoặc các phương pháp dựa trênkhông gian màu như RGB, HSV, LAB có thể được sử dụng để phân vùng dựatrên đặc trưng màu sắc
• Phân vùng dựa trên đặc trưng cấu trúc: Phương pháp này sử dụng thông tin
về cấu trúc của các vùng trong hình ảnh để phân vùng Ví dụ, phân vùng dựatrên các đường thẳng, cạnh, góc, hoặc sự phụ thuộc không gian giữa các điểmảnh
• Phân vùng dựa trên đặc trưng textural: Phương pháp này sử dụng thông tin
về đặc trưng textural của các vùng trong hình ảnh, chẳng hạn như kết cấu,
độ grooves, độ sần, v.v để phân chia các vùng Các phương pháp như LocalBinary Patterns (LBP), Gabor filters, hoặc phân tích hình ảnh dựa trên ma trậnco-occurrence (co-occurrence matrix) có thể được sử dụng để phân vùng dựatrên đặc trưng textural
Phân vùng dựa trên đồ thị là một phương pháp phân vùng ảnh số sử dụng kháiniệm đồ thị để tách các vùng trong hình ảnh Trong phương pháp này, hình ảnhđược biểu diễn dưới dạng đồ thị, trong đó các điểm ảnh là các đỉnh và các liên kếtgiữa các điểm ảnh có thể được xem là các cạnh trong đồ thị Các thuật toán tìmkiếm đường cắt tối ưu trên đồ thị được sử dụng để phân chia hình ảnh thành cácvùng riêng biệt
• Phân vùng dựa trên cắt đồ thị (Graph Cut-based Segmentation): Phươngpháp này xây dựng đồ thị từ hình ảnh, trong đó các điểm ảnh là các đỉnh
Trang 20và các cạnh nối các điểm ảnh có khả năng là ranh giới Sau đó, thuật toán tìmkiếm đường cắt tối ưu trên đồ thị để tách các vùng ra khỏi nhau Đường cắttối ưu sẽ cắt qua các cạnh có trọng số thấp nhất để tạo ra các vùng phân tách.
• Phân vùng dựa trên sự lan truyền (Region Growing): Phương pháp này bắtđầu bằng việc chọn một điểm ảnh hoặc một tập hợp các điểm ảnh làm điểmxuất phát Các điểm ảnh lân cận với điểm xuất phát được thêm vào vùngđang phát triển dựa trên các tiêu chí nhất định như sự tương đồng màu sắc,cấu trúc hoặc đặc trưng khác Quá trình này tiếp tục cho đến khi không còncác điểm ảnh nào có thể thêm vào vùng hoặc đạt đến một tiêu chí dừng nàođó
• Phân vùng dựa trên đồ thị ngẫu nhiên (Random Walks for Image tion): Phương pháp này xem xét hình ảnh như một đồ thị ngẫu nhiên, trong
Segmenta-đó mỗi điểm ảnh là một đỉnh và các điểm ảnh liền kề được kết nối bởi cáccạnh Quá trình phân vùng dựa trên các bước đi ngẫu nhiên trong đồ thị đểxác định xác suất mỗi điểm ảnh thuộc về các vùng khác nhau Các xác suấtnày sau đó được sử dụng để phân chia các vùng trong hình ảnh
Phân vùng sử dụng các phương pháp phân cụm là một trong những phươngpháp phân vùng ảnh số phổ biến Trong phương pháp này, các điểm ảnh tronghình ảnh được nhóm lại thành các cụm dựa trên sự tương đồng về thuộc tính hoặcđặc trưng của chúng Phương pháp phân cụm cố gắng tìm ra cấu trúc tự nhiên của
dữ liệu và phân chia nó thành các nhóm có tính chất tương tự Các phương phápphân cụm có thể được áp dụng trên các thuộc tính khác nhau của điểm ảnh, chẳnghạn như màu sắc, độ sáng, đặc trưng hình học hoặc textural
K-means: Phương pháp K-means là một trong những phương pháp phân cụmđơn giản và phổ biến nhất Nó nhóm các điểm dữ liệu thành K cụm dựa trên sựtương đồng về khoảng cách giữa các điểm dữ liệu và các trung tâm cụm Quá trìnhK-means lặp đi lặp lại việc cập nhật trung tâm cụm và phân loại lại các điểm dữliệu cho đến khi sự hội tụ
Gaussian Mixture Models (GMM): GMM là một mô hình xác suất sử dụng phânphối Gaussian để mô hình hóa dữ liệu Trong phân vùng, GMM có thể được sửdụng để gán xác suất cho mỗi điểm dữ liệu thuộc về từng cụm Các điểm dữ liệusau đó được gán vào cụm có xác suất cao nhất GMM có khả năng mô hình hóa cáccụm có hình dạng và kích thước khác nhau
Phân cụm trên cơ sở hỗn hợp (Mixture-based Clustering): Phương pháp này kếthợp sử dụng nhiều phương pháp phân cụm để tạo ra các cụm phức tạp Thôngthường, các phương pháp phân cụm khác nhau được áp dụng tuần tự hoặc songsong để phân chia dữ liệu thành các cụm
Trang 21Phân cụm phân cấp (Hierarchical Clustering): Phương pháp phân cụm phâncấp xây dựng một cây phân cấp từ dữ liệu, trong đó mỗi nút đại diện cho mộtcụm Các cụm tạo thành cây được hợp nhất dựa trên mức độ tương đồng hoặckhoảng cách giữa chúng Cây phân cấp có thể được cắt ngang để tạo ra các cụm tạimột mức độ cụ thể.
Mean-Shift Clustering: Mean-Shift là một phương pháp phân cụm không thông
số (non-parametric) Nó tìm kiếm các trung tâm cụm bằng cách di chuyển từngđiểm dữ liệu đến vùng có mật độ dữ liệu cao nhất trong xung quanh nó Quá trình
di chuyển này tiếp tục cho đến khi sự hội tụ và sau đó các điểm dữ liệu được gánvào các cụm dựa trên trung tâm gần nhất
DBSCAN (Density-Based Spatial Clustering of Applications with Noise): SCAN là một phương pháp phân cụm dựa trên mật độ dữ liệu Nó nhóm các điểm
DB-dữ liệu gần nhau với mật độ đủ lớn thành các cụm, trong khi các điểm DB-dữ liệu cách
xa nhau hơn được coi là nhiễu hoặc không thuộc vào bất kỳ cụm nào DBSCANkhông yêu cầu số lượng cụm K được xác định trước đó và có khả năng phát hiệncác cụm có hình dạng và kích thước không đều
Đánh giá chất lượng phân vùng ảnh là một nhiệm vụ quan trọng trong việcđánh giá hiệu suất của mô hình phân vùng Muốn đánh giá được, ta cần phải nắmđược các độ đo về lĩnh vực này Một số độ thường được sử dụng để đánh giá chấtlượng phân vùng ảnh, tổng hợp từ giáo trình [1], [8]:
1 Độ đồng nhất (Homogeneity): Độ đồng nhất đo lường xem các điểm dữ liệutrong cùng một nhóm (cùng một vùng) có cùng thuộc tính hay không Điềunày có nghĩa là các điểm dữ liệu trong mỗi nhóm được phân vùng càng đồngnhất càng tốt Độ đồng nhất có giá trị từ 0 đến 1, với 1 là tốt nhất Để tính toán
from sklearn.metrics import homogeneity_score
# Y_true la nhan thuc te cua du lieu
# C_pred la phan vung du doan
homogeneity = homogeneity_score(Y_true, C_pred)
print ( "Homogeneity:" , homogeneity)
Trang 22Trong mã trên, Ytrue là nhãn thực tế của dữ liệu và Cpred là phân vùng dựđoán Hàm homogeneity score sẽ tính toán độ đồng nhất dựa trên hai thông
số này
Lưu ý rằng đối với việc sử dụng các phương pháp đánh giá trong scikit-learn,
dữ liệu phân vùng cần được biểu diễn dưới dạng nhãn số nguyên
2 Độ hoàn chỉnh (Completeness): Độ hoàn chỉnh đo lường xem tất cả các điểm
dữ liệu thuộc cùng một nhãn (cùng một vùng) đã được phân vùng đúng haykhông Điều này có nghĩa là tất cả các điểm dữ liệu thuộc cùng một nhãntrong dữ liệu gốc được phân vùng càng hoàn chỉnh càng tốt Độ hoàn chỉnhcũng có giá trị từ 0 đến 1, với 1 là tốt nhất
Để tính toán độ hoàn chỉnh, chúng ta có thể sử dụng công thức sau:
Độ hoàn chỉnh = 1−H(C| Y)/H(C) (1.3)Trong đó: H(C|Y) là entropy có điều kiện của phân vùng C dựa trên nhãn Y.H(C) là entropy của phân vùng C
Để tính toán độ hoàn chỉnh trong Python, sử dụng thư viện sklearn.metrics
từ scikit-learn
from sklearn.metrics import completeness_score
# Y_true la nhan thuc te
# C_pred la phan vung du doan
completeness = completeness_score(Y_true, C_pred)
print ( "Completeness:" , completeness)
3 Điểm Fowlkes-Mallows (Fowlkes-Mallows score): Điểm Fowlkes-Mallows kếthợp độ đồng nhất và độ hoàn chỉnh thành một đánh giá tổng thể của chấtlượng phân vùng Điểm này càng gần 1 thì phân vùng càng tốt Để tính toánđiểm Fowlkes-Mallows, chúng ta có thể sử dụng công thức sau:
Fowlkes-Mallows score = TP/ sqrt((TP+FP) ∗ (TP+FN)) (1.4)Trong đó:
TP (True Positives) là số lượng cặp điểm dữ liệu thuộc cùng một nhóm trong
cả phân vùng thực tế và phân vùng dự đoán
FP (False Positives) là số lượng cặp điểm dữ liệu thuộc cùng một nhóm trongphân vùng dự đoán nhưng không thuộc cùng một nhóm trong phân vùngthực tế
Trang 23FN (False Negatives) là số lượng cặp điểm dữ liệu thuộc cùng một nhóm trongphân vùng thực tế nhưng không thuộc cùng một nhóm trong phân vùng dựđoán.
Để tính toán điểm Fowlkes-Mallows trong Python, có thể sử dụng thư việnsklearn.metrics từ scikit-learn
from sklearn.metrics import fowlkes_mallows_score
# Y_true : Nhan thuc te
# C_pred : Phan vung du doan
fowlkes_mallows = fowlkes_mallows_score(Y_true, C_pred)
print ( "Fowlkes-Mallows score:" , fowlkes_mallows)
4 Chỉ số Rand (Rand index): Chỉ số Rand đo lường độ tương đồng giữa haiphân vùng (phân vùng thực tế và phân vùng dự đoán) Giá trị của chỉ sốRand nằm trong khoảng từ 0 đến 1, với 1 là tốt nhất Chỉ số Rand được tínhbằng cách so sánh tất cả các cặp điểm dữ liệu trong tập dữ liệu và đếm sốlượng cặp điểm dữ liệu mà cùng thuộc cùng một nhóm trong cả phân vùngthực tế và phân vùng dự đoán hoặc cùng thuộc cùng một nhóm trong cả haiphân vùng Công thức tính toán chỉ số Rand là:
Rand index = (TP+TN)/(TP+FP+FN +TN) (1.5)Trong đó:
TP (True Positives) là số lượng cặp điểm dữ liệu thuộc cùng một nhóm trong
cả phân vùng thực tế và phân vùng dự đoán
TN (True Negatives) là số lượng cặp điểm dữ liệu không thuộc cùng mộtnhóm trong cả phân vùng thực tế và phân vùng dự đoán
FP (False Positives) là số lượng cặp điểm dữ liệu thuộc cùng một nhóm trongphân vùng dự đoán nhưng không thuộc cùng một nhóm trong phân vùngthực tế
FN (False Negatives) là số lượng cặp điểm dữ liệu thuộc cùng một nhóm trongphân vùng thực tế nhưng không thuộc cùng một nhóm trong phân vùng dựđoán
Cách tính chỉ số này trong python:
from sklearn.metrics import adjusted_rand_score
# Y_true - nhan thuc te
# C_pred - phan vung du doan
rand_index = adjusted_rand_score(Y_true, C_pred)
print ( "Rand index:" , rand_index)
Trang 245 Chỉ số Jaccard (Jaccard index): Chỉ số Jaccard cũng đo lường độ tương đồnggiữa hai phân vùng Giá trị của chỉ số Jaccard nằm trong khoảng từ 0 đến 1,với 1 là tốt nhất.
Chỉ số Jaccard được tính bằng cách đo lường tỉ lệ giữa số lượng cặp điểm dữliệu cùng thuộc cùng một nhóm trong cả phân vùng thực tế và phân vùng dựđoán so với tổng số lượng cặp điểm dữ liệu thuộc cùng một nhóm trong cảhai phân vùng Công thức tính toán chỉ số Jaccard là:
Jaccard index =TP/(TP+FP+FN) (1.6)Trong đó:
TP (True Positives) là số lượng cặp điểm dữ liệu thuộc cùng một nhóm trong
cả phân vùng thực tế và phân vùng dự đoán
FP (False Positives) là số lượng cặp điểm dữ liệu thuộc cùng một nhóm trongphân vùng dự đoán nhưng không thuộc cùng một nhóm trong phân vùngthực tế
FN (False Negatives) là số lượng cặp điểm dữ liệu thuộc cùng một nhóm trongphân vùng thực tế nhưng không thuộc cùng một nhóm trong phân vùng dựđoán
Tính chỉ số này trong scikit learn
from sklearn.metrics import jaccard_score
jaccard_index = jaccard_score(Y_true, C_pred)
print ( "Jaccard index:" , jaccard_index)
6 Mất mát entropy (Entropy loss): Mất mát entropy tính toán sự khác biệt giữaphân phối của nhãn trong phân vùng và phân phối của nhãn trong dữ liệugốc Mất mát entropy càng thấp càng tốt Phương pháp này dựa trên kháiniệm của entropy, đo lường độ không chắc chắn trong phân bố xác suất củacác nhãn
Công thức tính mất mát entropy được xây dựng dựa trên entropy của phân
bố xác suất dự đoán và phân bố xác suất thực tế của các nhãn Công thức tínhtoán mất mát entropy được mô tả như sau:
Entropy loss = −Σ(p(y) ∗log(p(ypred))) (1.7)Trong đó:
p(y)là phân bố xác suất thực tế của nhãn y
p(ypred)là phân bố xác suất dự đoán của nhãn y
Trang 25Tính toán mất mát entropy cho toàn bộ dữ liệu và tính trung bình của các mấtmát entropy này để đánh giá chất lượng phân vùng Lưu ý rằng để sử dụnghàm log loss, ta cần cung cấp xác suất dự đoán (Ypred) thay vì nhãn vùng dựđoán Do đó, nếu dữ liệu là dạng nhãn vùng, ta cần chuyển đổi nó thành xácsuất dự đoán trước khi tính toán mất mát entropy.
Tính toán trong Scikit learn:
import numpy as np
from sklearn.metrics import log_loss
entropy_loss = log_loss(Y_true, Y_pred)
print ( "Entropy loss:" , entropy_loss)
Ngoài ra để đánh giá hiệu quả của các thuật toán, chúng ta cũng thường so sánhthời gian chạy và độ phức tạp của thuật toán
Tổng kết chương 1: Chương 1 trình bày một số kiến thức tổng quan về ảnh số,
xử lý ảnh số, bài toán phân vùng ảnh số, phương pháp tiếp cận phân cụm, cũngnhư một số ứng dụng tiêu biểu của bài toán phân vùng ảnh số Các độ đo dùng đểđánh giá chất lượng thuật toán phân vùng ảnh số cũng được trình bày, tổng hợplại trong cuối chương này
Chi tiết các thuật toán phân cụm cũng như các bước ứng dụng phân cụm đểphân vùng ảnh sẽ được trình bày trong chương 2
Trang 26Chương 2
MỘT SỐ THUẬT TOÁN PHÂN CỤM
Thuật toán phân cụm là một phương pháp phân nhóm các đối tượng dữ liệuvào các nhóm tương tự nhau Mục tiêu của thuật toán phân cụm là tìm ra các nhóm
dữ liệu trong đó các điểm dữ liệu trong cùng một nhóm tương tự nhau hơn so vớicác điểm dữ liệu thuộc các nhóm khác
Theo hướng tiếp cận tương đồng, các thuật toán phân cụm có khả năng tạo racác phân đoạn dựa trên sự tương đồng giữa các pixel trong ảnh Các thuật toánnày tập trung vào việc phân nhóm các pixel có thuộc tính tương tự để tạo ra cácvùng ảnh khác nhau Vì vậy chúng rất phù hợp để giải quyết bài toán phân vùngảnh
Sự lựa chọn giữa các thuật toán phân cụm phụ thuộc vào tính chất của dữ liệu
và mục tiêu phân đoạn cụ thể Một số thuật toán có thể tốt hơn cho dữ liệu có kíchthước đồng nhất, trong khi các thuật toán khác có thể phù hợp hơn cho việc xử lýcác vùng không đều đặn và có sự biến đổi màu sắc lớn Chương này trình bày chitiết một số thuật toán phân cụm để có thể ứng dụng phân vùng ảnh trong chương3
Các kiến thức cơ bản về phân cụm được tổng hợp lại, tham khảo từ các tài liệu
về học máy, học sâu [2], [3], [4], [5]
Thuật toán phân cụm K-means (K-means clustering) là một thuật toán học máy
không giám sát điển hình Trong phân cụm K-means, ta không biết nhãn của từngđiểm dữ liệu Mục đích là làm thể nào để phân dữ liệu thành các cụm khác nhausao cho dữ liệu trong cùng một cụm có những tính chất giống nhau
Ví dụ:Một công ty muốn tạo ra một chính sách ưu đãi cho những nhóm kháchhàng khác nhau dựa trên sự tương tác giữa mỗi khách hàng với công ty đó (số năm
là khách hàng, số tiền khách hàng đã chi trả cho công ty, độ tuổi, giới tính, thànhphố, nghề nghiệp, ) Giả sử công ty có dữ liệu của khách hàng nhưng phân cụm
Trang 27Phân cụm K-means là một thuật toán có thể giúp thực hiện công việc này Sau khiphân cụm, nhân viên công ty có thể quyết định mỗi nhóm tương ứng với nhómkhách hàng nào Phần việc cuối cùng này cần sự can thiệp của con người, nhưnglượng công việc đã được rút gọn đi đáng kể.
Một nhóm/cụm có thể được định nghĩa là tập hợp các điểm có vector đặc trưnggần nhau Việc tính toán khoảng cách có thể phụ thuộc vào từng loại dữ liệu,trong đó khoảng cách Euclid được sử dụng phổ biến nhất Trong không gian nhiềuchiều, công thức khoảng cách Euclide tính đơn giản như sau, với(x1, y1, z1, )và
(x2, y2, z2, )là các tọa độ tương ứng của hai điểm:
Hình 2.1: Ví dụ với ba cụm dữ liệu trong không gian 2 chiều
Hình 2.1 là một ví dụ về dữ liệu được phân vào ba cụm.Mỗi cụm có một điểm
đại diện được gọi là tâm cụm, được minh hoạ bởi các điểm màu trắng lớn Mỗi điểm
thuộc vào cụm có tâm gần nó nhất
Mục tiêu cuối cùng của thuật toán phân cụm K-means là từ dữ liệu đầu vào và
số lượng cụm đã cho, xác định các tâm cụm và phân loại các điểm dữ liệu vào cáccụm tương ứng Giả sử rằng mỗi điểm dữ liệu chỉ thuộc một cụm duy nhất
Giả sử N điểm dữ liệu trong tập huấn luyện được ghép lại thành ma trận X =[x1, x2, , xN] ∈ Rd × N và K < N là số cụm được xác định trước Ta cần tìm các
tâm cụm m1, m2, , mK ∈ Rd × 1 và nhãn của mỗi điểm dữ liệu Ở đây, mỗi cụmđược đại diện bởi một nhãn, thường là một số tự nhiên từ 1 đến K Các điểm dữ
Trang 28liệu trong bài toán phân cụm K-means ban đầu không có nhãn cụ thể, là bài toánhọc không giám sát Nhãn đang nói là kí hiệu dữ liệu thuộc cụm nào.
Với mỗi điểm dữ liệu xi, ta cần tìm nhãn yi = k của nó, ở đây k ∈ {1, 2, , K}.Nhãn của một điểm cũng thường được biểu diễn dưới dạng một vector hàng K
phần tử yi ∈ R1 × K, trong đó tất cả các phần tử của yi bằng 0 trừ phần tử ở vị trí
thứ k bằng 1 Cách biểu diễn này còn được gọi là mã hoá one-hot Cụ thể, yij =
0, ∀j 6= k, yik = 1 Khi chồng các vector yi lên nhau, ta được một ma trận nhãn
Y ∈ RN × K Trong ma trận, yij là phần tử hàng thứ i, cột thứ j của ma trận Y, và cũng là phần tử thứ j của vector yi Ví dụ, nếu một điểm dữ liệu có vector nhãn là
[1, 0, 0, , 0]thì nó thuộc vào cụm thứ nhất, là [0, 1, 0, , 0]thì nó thuộc vào cụm
thứ hai Điều kiện của yi có thể viết dưới dạng điều kiện ràng buộc của hàm mụctiêu sau này, dạng toán học như sau:
Hàm mất mát và bài toán tối ưu
Gọi mk ∈ Rd là tâm của cụm thứ k Giả sử một điểm dữ liệu xi được phân vào
cụm k Vector sai số nếu thay xi bằng mk là (xi −mk) Ta muốn vector sai số này
gần với vector không, tức xi gần với mk Việc này có thể được thực hiện thông quaviệc tối thiểu bình phương khoảng cách Euclid kxi −mkk22 Hơn nữa, vì xi đượcphân vào cụm k nên yik =1, yij =0, ∀j 6= k Khi đó, biểu thức khoảng cách Euclid
có thể được viết lại thành
Trang 29Thuật toán tối ưu hàm mất mát
Bài toán (2.4) là một bài toán khó tìm điểm tối ưu vì có thêm các điều kiện ràng
buộc Bài toán này thuộc loại quy hoạch nguyên - là loại rất khó tìm nghiệm tối ưu toàn
cục. Tuy nhiên, trong một số trường hợp chúng ta vẫn có phương pháp để tìmnghiệm gần đúng Một kỹ thuật phổ biến để giải bài toán (2.4) là xen kẽ giải Y và
M khi biến còn lại được cố định cho tới khi hàm mất mát hội tụ Chúng ta sẽ lầnlượt giải quyết hai bài toán sau
Bài toán 1: Cố định M, tìm Y
Giả sử đã tìm được các tâm cụm, hãy tìm các vector nhãn để hàm mất mát đạt giá trị nhỏ nhất.
Khi các tâm cụm là cố định, bài toán tìm vector nhãn cho toàn bộ dữ liệu có thể
được chia nhỏ thành bài toán tìm vector nhãn cho từng điểm dữ liệu xi như sau:
Vì chỉ có một phần tử của vector nhãn yi bằng 1 nên bài toán (2.5) chính là bài toán
đi tìm tâm cụm gần điểm xi nhất:
j = Argminjkxi −mjk22 (2.6)
Vìkxi−mjk22 là bình phương khoảng cách Euclid từ điểm xi tới tâm cụm mj, ta có
thể kết luận rằng mỗi điểm xi thuộc vào cụm có tâm gần nó nhất Từ đó có thể suy ravector nhãn của từng điểm dữ liệu
Hàm mục tiêu là một hàm liên tục và có đạo hàm xác định tại mọi điểm mj Vì vậy,
ta có thể tìm nghiệm bằng phương pháp giải phương trình đạo hàm bằng không.Đặt l(mj) là hàm mục tiêu bên trong dấu Argmin của (2.7), ta cần giải phươngtrình sau đây:
Trang 30Mẫu số chính là tổng số điểm dữ liệu trong cụm j, tử số là tổng các điểm dữ liệu
trong cụm j Nói cách khác, mj là trung bình cộng của các điểm trong cụm j
Tóm tắt thuật toán
Thuật toán K-means được tóm tắt lại như sau
Đầu vào: Ma trận dữ liệu X ∈ Rd × N và số lượng cụm cần tìm K < N
Đầu ra: Ma trận tâm cụm M∈ Rd × Kvà ma trận nhãn Y ∈ RN × K
1 Chọn K điểm bất kỳ trong tập huấn luyện làm các tâm cụm ban đầu
2 Phân mỗi điểm dữ liệu vào cụm có tâm gần nó nhất
3 Nếu việc phân cụm dữ liệu vào từng cụm ở bước 2 không thay đổi so vớivòng lặp trước nó thì dừng thuật toán
4 Cập nhật tâm cụm bằng cách lấy trung bình cộng của các điểm đã được gánvào cụm đó sau bước 2
5 Quay lại bước 2
Thuật toán này sẽ tiến tới sự hội tụ sau một số vòng lặp hữu hạn Thực tế, dãy
số biểu diễn giá trị của hàm mất mát sau mỗi bước là một giá trị không giảm và bịchặn dưới Điều này chỉ ra rằng dãy số này phải hội tụ Vì số lượng cách phân cụmcho toàn bộ dữ liệu là hữu hạn (khi số cụm K là cố định), đến một thời điểm nào
đó, hàm mất mát sẽ không thể thay đổi nữa và chúng ta có thể dừng thuật toán tạiđiểm này
Nếu tồn tại một cụm không chứa điểm nào, mẫu số trong (2.8) sẽ bằng không,
và phép chia sẽ không thực hiện được Vì vậy, K điểm bất kỳ trong tập huấn luyệnđược chọn làm các tâm cụm ban đầu ở bước 1 để đảm bảo mỗi cụm có ít nhất mộtđiểm
Trong quá trình huấn luyện, nếu tồn tại một cụm không chứa điểm nào, có haicách giải quyết Cách thứ nhất là bỏ cụm đó và giảm K đi một Cách thứ hai là thaytâm của cụm đó bằng một điểm bất kỳ trong tập huấn luyện, chẳng hạn như điểm
xa tâm cụm hiện tại của nó nhất
Trong thuật toán K-means, khởi tạo tâm cụm ban đầu có thể ảnh hưởng đáng
kể đến kết quả cuối cùng của phân cụm Một số phương pháp phổ biến để khởitạo tâm cụm trong K-means bao gồm:
• Ngẫu nhiên: Đây là phương pháp đơn giản nhất, trong đó tâm cụm ban đầuđược chọn ngẫu nhiên từ dữ liệu Tuy nhiên, phương pháp này có thể dẫn
Trang 31đến kết quả không ổn định, do khởi tạo ngẫu nhiên có thể làm tăng khả năngrơi vào các tâm cụm không tốt ban đầu.
• means++: Đây là một phương pháp khởi tạo tâm cụm cải tiến Trong means++, tâm cụm đầu tiên được chọn ngẫu nhiên từ dữ liệu, sau đó cáctâm cụm tiếp theo được chọn dựa trên xác suất tỉ lệ thuận với khoảng cáchEuclidean tới các tâm cụm đã chọn trước đó Phương pháp này giúp định vịtâm cụm ban đầu tốt hơn và cải thiện hiệu suất của thuật toán Thuật toánnày hoạt động như sau:
K-1 Chọn ngẫu nhiên một tâm cụm c(1) theo phân phối đều từ tập dữ liệu
2 Lấy một tâm cụm mới c(i) bằng cách chọn một mẫu x(i) với xác suất:
D(x(i))2
∑ m
j = 1 D(x(j))2, trong đó Dx(i) là khoảng cách giữa các mẫu x(i) và tâmcụm đã được chọn gần nó nhất Phân phối xác suất này đảm bảo rằng cácmẫu xa các tâm cụm đã được chọn có khả năng được chọn làm tâm cụmcao hơn
3 Lặp lại các bước trên cho đến khi chọn được hết k tâm cụm
• K-means++ tỉ lệ vàng: Đây là một phiên bản cải tiến của K-means++ trong đócác tâm cụm được chọn sử dụng một tỉ lệ vàng Quy tắc tỉ lệ vàng giúp cânbằng khoảng cách giữa các tâm cụm ban đầu, tăng khả năng tìm ra các tâmcụm tốt hơn
• K-means thu gọn (K-means Lite): Đây là một phương pháp tiết kiệm thời gian
và bộ nhớ để khởi tạo tâm cụm trong K-means Phương pháp này chỉ chọnmột số lượng nhỏ các điểm dữ liệu làm tâm cụm ban đầu, thay vì chọn tất
cả các điểm dữ liệu Việc này giảm đáng kể thời gian tính toán và yêu cầu bộnhớ của thuật toán
Lựa chọn phương pháp khởi tạo tâm cụm phụ thuộc vào tính chất của dữ liệu
và mục tiêu phân cụm Trong một số trường hợp, việc thử nghiệm nhiều phươngpháp khởi tạo khác nhau và chọn phương pháp tốt nhất dựa trên kết quả có thểhữu ích
Vấn đề tìm số cụm tối ưu trong thuật toán phân cụm là một vấn đề quan trọng,
vì sự lựa chọn không đúng số cụm có thể ảnh hưởng đến hiệu suất và kết quả cuốicùng của thuật toán Dưới đây là một số phương pháp thông thường để tìm số cụmtối ưu trong phân cụm:
1 Phương pháp Elbow: Phương pháp này dựa trên biểu đồ Elbow, nơi ta tínhtoán giá trị của hàm mục tiêu (thường là tổng bình phương khoảng cách giữa
Trang 32các điểm dữ liệu và tâm cụm, gọi là inertia) cho các số cụm khác nhau Sau
đó, ta vẽ biểu đồ giữa số cụm và giá trị hàm mục tiêu Giá trị số cụm tối ưu sẽxuất hiện ở "khuỷu" của biểu đồ, nghĩa là nơi mà sự giảm đáng kể của giá trịhàm mục tiêu chậm lại sau khi số cụm tăng Hình2.2là ví dụ cho thấy inertiagiảm rất nhanh khi tăng k lên 4, nhưng sau đó nó giảm chậm hơn nhiều khi ktiếp tục tăng Ta có một khuỷu tại k = 4, vì thế nếu không có thêm thông tinthì k =4 là lựa chọn tốt nhất
Hình 2.2: Biểu đồ giữa số cụm và giá trị inertia
2 Phương pháp Silhouette: Phương pháp này đánh giá chất lượng phân cụmbằng cách tính toán chỉ số Silhouette cho mỗi điểm dữ liệu Chỉ số Silhou-ette đo đạc mức độ tương đồng trong cụm nội bộ của một điểm so với cáccụm khác Hệ số silhouette của một mấu tính bằng maxb−(a,ba ) trong đó a làkhoảng cách trung bình từ mẫu đó đến các mẫu khác trong cùng cụm (khoảngcách nội cụm trung bình) và b là khoảng cách trung bình đến cụm gần nhất(khoảng cách từ mẫu đó đến các mẫu gần thứ nhì- cụm khiến b nhỏ nhất) Hệ
số silhouette có giá trị nằm trong khoảng từ−1 đến 1 Giá trị số cụm tối ưu
sẽ có giá trị Silhouette trung bình cao nhất Nếu hệ số gần -1 nghĩa là mẫu đó
bị gán sai cụm
Hình 2.3: Lựa chọn số cụm k dựa trên điểm số silhouette
Hình2.3biểu diễn hệ số silhouette Có thể thấy đồ thị này giàu thông tin hơn
so với đồ thị trước: Ngoài việc xác nhận rằng k =4 là một lựa chọn rất tốt, đồthị này còn cho thấy k = 5 cũng cho kết quả tốt, tốt hơn nhiều so với k = 6