1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu thuật toán k means ứng dụng trong bài toán tách vật thể trong ảnh

45 29 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 45
Dung lượng 526,41 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong đề tài này, tôi sẽ tìm hiểu về thuật toán K-means và ứng dụng thuật toán trong bài toán tách vật thể trong ảnh.. Mục tiêu cụ thể Đề tài tập trung vào các mục tiêu chính: - Tìm hiể

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH

NGUYỄN THỊ THẢO

LUẬN VĂN THẠC SỸ Chuyên ngành: Công nghệ thông tin

Trang 2

LỜI CẢM ƠN

Lời đầu tiên, tôi xin gửi lời cảm ơn chân thành và sâu sắc nhất tới Thầy giáo

TS Trần Xuân Sang, người đã tận tình hướng dẫn tôi trong quá trình thực hiện đề

tài

Tôi xin gửi lời cảm ơn sâu sắc tới quý Thầy Cô trong Viện kỹ thuật công

nghệ trường Đại học Vinh đã truyền đạt kiến thức quý báu cho tôi trong 2 năm

học vừa qua

Cuối cùng, tôi xin chân thành cảm ơn tới gia đình và bạn bè, đặc biệt là các

thành viên trong lớp K24 CNTT Đại học Vinh đã ủng hộ, giúp đỡ và động viên

tôi trong suốt thời gian học tập vừa qua

Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho

phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Kính mong nhận

được sự góp ý chân thành của quý Thầy Cô và các bạn

Tôi xin chân thành cảm ơn!

Vinh, ngày 25 tháng 06 năm 2018

Học Viên

Nguyễn Thị Thảo

Trang 3

LỜI CAM KẾT

Tôi xin cam đoan luận văn này do bản thân tôi thực hiện và có sự giúp đỡ từ giáo viên hướng dẫn TS Trần Xuân Sang Các nội dung nghiên cứu và kết quả trong đề tài này là trung thực, các tin thứ cấp sử dụng trong luận văn là có nguồn gốc và được trích dẫn rõ ràng

Tôi xin hoàn toàn chịu trách nhiệm về tính xác thực và nguyên bản của luận văn

Tác giả

Nguyễn Thị Thảo

Trang 4

MỤC LỤC

LỜI CAM KẾT 3

MỤC LỤC 4

PHẦN MỞ ĐẦU 1

1 Sự cần thiết của vấn đề nghiên cứu 1

2 Mục tiêu nghiên cứu 1

2.1 Mục tiêu tổng quát 1

2.2 Mục tiêu cụ thể 1

3 Đối tượng và phạm vi nghiên cứu 2

3.1 Đối tượng nghiên cứu 2

3.2 Phạm vi nghiên cứu 2

4 Nội dung nghiên cứu 2

CHƯƠNG 1 BÀI TOÁN PHÂN CỤM DỮ LIỆU 3

1.1 Tổng quan về phân cụm dữ liệu 3

1.2 Tổng quan về tình hình nghiên cứu 4

1.2.1 Tình hình nghiên cứu trong nước 4

1.2.2 Tình hình nghiên cứu nước ngoài 4

1.3 Kết luận chương 1 4

CHƯƠNG 2 THUẬT TOÁN K- MEANS 5

2.1 Giới thiệu 5

2.1.1 Giới thiệu về thuật toán K – means 5

2.1.2 Các ứng dụng của thuật toán K – means 5

2.2 Phân tích toán học 6

2.2.1 Một số kí hiệu toán học 6

Trang 5

2.2.3 Thuật toán tối ưu hàm mất mát 7

2.3 Hoạt động của thuật toán K-means 9

2.3.1 Dữ liệu vào 9

2.3.2 Dữ liệu ra 9

2.3.3 Các bước thực hiện 10

2.4 Ví dụ minh hoạ 11

2.5 Đánh giá thuật toán 17

2.5.1 Ưu điểm 17

2.5.2 Nhược điểm 17

CHƯƠNG 3 TÁCH VẬT THỂ CÓ TRONG ẢNH 18

3.1 Giới thiệu 18

3.2 Áp dụng thuật toán K-means 18

3.2.1 Khởi tạo 19

3.2.2 Giai đoạn phân cụm của thuật toán K-means 20

3.2.3 Tính khoảng cách Euclidian 21

3.3 Thử nghiệm 22

KẾT LUẬN 39

TÀI LIỆU THAM KHẢO 40

Trang 6

PHẦN MỞ ĐẦU

1 Sự cần thiết của vấn đề nghiên cứu

Học máy (Machine Learning) là một thành phần quan trọng của trí tuệ nhân tạo nhằm nghiên cứu và phát triển các phương pháp, kỹ thuật giúp cho các

hệ thống hay máy tính có khả năng học Trong lĩnh vực học máy có các phương pháp học như: Học có giám sát (Supervised Learning), học không có giám sát (Unsupervised Learning), học bán giám sát (Semi-supervised Learning) và học tăng cường (Reinforcement Learning)

Thuật toán K-means thuộc về loại học không có giám sát (Unsupervised Learning) Trong thuật toán K-means, chúng ta không biết nhãn (label) 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 (cluster) khác nhau sao cho dữ liệu trong cùng một cụm có tính chất giống nhau Đây là thuật toán tương đối đơn giản, dễ cài đặt và có khả năng phân cụm đạt hiểu quả tốt

Trong đề tài này, tôi sẽ tìm hiểu về thuật toán K-means và ứng dụng thuật toán trong bài toán tách vật thể trong ảnh

2 Mục tiêu nghiên cứu

2.1 Mục tiêu tổng quát

Nghiên cứu và sử dụng thuật toán K-means trong bài toán tách vật thể trong ảnh

2.2 Mục tiêu cụ thể

Đề tài tập trung vào các mục tiêu chính:

- Tìm hiểu về bài toán phân cụm dữ liệu

- Nghiên cứu về thuật toán K-means

- Ứng dụng thuật toán K-means trong bài toán tách vật thể trong ảnh

- Cài đặt minh họa thuật toán

Trang 7

3 Đối tượng và phạm vi nghiên cứu

3.1 Đối tượng nghiên cứu

a) Nghiên cứu lý thuyết

- Nghiên cứu các tài liệu về bài toán phân cụm dữ liệu

- Nghiên cứu các tài liệu về các bước xây dựng thuật toán K-means đã được công bố

- Nghiên cứu các tài liệu về ứng dụng thuật toán K-means trong bài toán tách vật thể trong ảnh

b) Nghiên cứu thực nghiệm

- Nghiên cứu các bước xây dựng thuật toán K-means

- Nghiên cứu ứng dụng thuật toán K-means trong bài toán tách vật thể trong ảnh

3.2 Phạm vi nghiên cứu

Có nhiều thuật toán phân cụm dữ liệu khác nhau như K-means, Kmeans, Puzzy C-means…Trong phạm vi đề tài luận văn, tôi tập trung nghiên cứu và sử dụng thuật toán K-means

Pillar-4 Nội dung nghiên cứu

- Nghiên cứu tổng quan về bài toán phân cụm dữ liệu

- Nghiên cứu tổng quan về thuật toán K-means

- Nghiên cứu về ứng dụng của thuật toán K-Means trong bài toán tách vật thể trong ảnh

Trang 8

CHƯƠNG 1 BÀI TOÁN PHÂN CỤM DỮ LIỆU

1.1 Tổng quan về phân cụm dữ liệu

Phân cụm dữ liệu (clutering) là một quá trình phân vùng một tập hợp dữ liệu nhất định thành các nhóm đồng nhất dựa trên các tính năng nhất định sao cho các đối tượng tương tự được giữ trong một nhóm trong khi các đối tượng khác nhau nằm trong các nhóm khác nhau Đây là vấn đề học tập không giám sát (Unsupervised Learning) quan trọng nhất Nó đề cập đến việc tìm kiếm cấu trúc trong một bộ sưu tập dữ liệu không được dán nhãn (label)

Hình I: Hiển thị bốn cụm được hình thành từ bộ dữ liệu không được dán nhãn

Mục tiêu của phân cụm dữ liệu là xác định nhóm nội tại trong một tập hợp dữ liệu không được gắn nhãn Vậy làm thế nào để quyết định những gì tạo thành một cụm tốt? Có thể thấy rằng không có tiêu chí “tốt nhất” tuyệt đối nào sẽ độc lập với mục tiêu cuối cùng của phân cụm Do đó, người dùng phải cung cấp tiêu chuẩn theo cách mà kết quả của việc phân cụm sẽ phù hợp với nhu cầu của

họ

Ví dụ, ta có thể quan tâm đến việc tìm các đại diện cho các nhóm đồng nhất (giảm dữ liệu) trong việc tìm kiếm “các cụm tự nhiên” và mô tả các thuộc

Trang 9

nhóm hữu ích và phù hợp (các lớp dữ liệu “hữu ích”) hoặc trong việc tìm kiếm các đối tượng dữ liệu bất thường (phát hiện ngoại lệ)

Một số thuật toán phân cụm tiêu biểu như: thuật toán phân cụm K – means, thuật toán phân cụm phân cấp Hierarchical Clustering, thuật toán phân cụm theo mật độ DBSCAN, thuật toán phân cụm EM…

1.2 Tổng quan về tình hình nghiên cứu

1.2.1 Tình hình nghiên cứu trong nước

Có rất nhiều luận văn, đề tài, bài báo viết về thuật toán phân cụm K- means và các ứng dụng thực tế của nó Như luận văn của Lê Minh Hải, 2013: Học Viện Công Nghệ Bưu Chính Viễn Thông, phân loại hành vi khách hàng sử dụng dịch vụ di động dựa trên thuật toán phân cụm K – means Luận văn của Đào Minh Tùng: Trường Đại học Quốc Gia Hà Nội, 2011, phân cụm đa mức Web bằng K – means dựa trên chủ đề ẩn và thực nghiệm đánh giá

1.2.2 Tình hình nghiên cứu nước ngoài

Có rất nhiều luận văn, đề tài khoa học nghiên cứu về lĩnh vực này như xử

lý hình ảnh ứng dụng trong y tế, phân đoạn ảnh, nhận dạng chữ số, nhận dạng chữ ký viết tay…

1.3 Kết luận chương 1

Trong chương này, tôi đã trình bày tổng quan về bài toán phân cụm dữ liệu Có một số thuật toán phân cụm dữ liệu, nhưng trong khuôn khổ luận văn này, tôi chọn thuật toán K-means để nghiên cứu vì tính đơn giản, và cho kết quả khá tốt với một số bài toán cụ thể

Trang 10

CHƯƠNG 2 THUẬT TOÁN K- MEANS

2.1 Giới thiệu

2.1.1 Giới thiệu về thuật toán K – means

Thuật toán K-means clustering do James MacQueen giới thiệu trong tài liệu “J Some Methods for Classification and Analysis of Multivariate Observations” năm 1967, dựa trên ý tưởng của Hugo Steinhaus năm 1957 Tuy nhiên thuật toán được đưa ra lần đầu tiên bởi Stuart Lloyd năm 1957 nhưng không được xuất bản cho đến năm 1982 Năm 1965, EW Forgy xuất bản về cơ bản cùng một phương pháp với thuật toán của Stuart Lloyd , đó là lý do tại sao đôi khi nó được gọi là Lloyd-Forgy [6]

K-means Clustering là một thuật toán được dùng trong các bài toán phân loại/nhóm N đối tượng (objects) thành K nhóm (clusters) dựa trên đặc tính/thuộc tính của đối tượng (K, N nguyên, dương)

Theo thuật toán này, giả sử có N đối tượng, mỗi đối tượng có M thuộc tính, ta phân chia được các đối tượng thành K nhóm dựa trên các thuộc tính của chúng

Ta coi mỗi thuộc tính của đối tượng (đối tượng có M thuộc tính) như một toạ độ của không gian M chiều và biểu diễn đối tượng như một điểm của không gian M chiều Cách thức phân loại/nhóm dữ liệu thực hiện dựa trên khoảng cách Euclidean nhỏ nhất giữa đối tượng đến phần tử trung tâm của các nhóm Phần tử trung tâm của nhóm được xác định bằng giá trị trung bình các phần tử trong nhóm

2.1.2 Các ứng dụng của thuật toán K – means

Bài toán phân cụm có nhiều ứng dụng trong các lĩnh vực như:

- Sinh học: phân loại động vật và thực vật dựa vào thuộc tính của chúng

- Tìm kiếm thông tin: phân nhóm văn bản, tài liệu

- Địa lí: phát hiện các vùng địa lí tương tự nhau

Trang 11

- Social networds: phân nhóm người dùng cúng sở thích

- Library: theo dõi độc giả, sách, dự đoán nhu cầu của độc giả

- Web mining: phân loại tài liệu, phân loại người dùng web…

2.2 Phân tích toán học

Mục đích của thuật toán phân cụm là: Từ dữ liệu đầu vào và số lượng cluster, hãy chỉ ra center của mỗi nhóm và phân các điểm dữ liệu vào các nhóm tương ứng Giả sử rằng mỗi điểm dữ liệu chỉ thuộc vào đúng 1 cụm [2]

2.2.1 Một số kí hiệu toán học

Giả sử có N điểm dữ liệu là X =[x1, x2, …,xN]RdxN và K là số cluster muốn phân chia (với K<N) Ta cần tìm các center m1, m2, …,mK Rdx1 và label của mỗi điểm dữ liệu

Với mỗi điểm dữ liệu xi đặt yi =[yi1, yi2,…,yik] là label vector của nó, trong

đó nếu xi được phân vào cluster k thì yik=1 và yij=0, ∀j≠k Điều này có nghĩa là

có đúng 1 phần tử của vector yi là bằng 1 (tương ứng với cluster của xi), các phần

tử còn lại bằng 0 Ví dụ: nếu một điểm dữ liệu có label vector là [1,0,0,…,0] thì

nó thuộc vào cluster 1, là [0,1,0,…,0] thì nó thuộc vào cluster 2, … cách mã hoá label của dữ liệu như thế này được gọi là biểu diễn one-hot (http://en.wikipedia.org/wiki/one-hot) [2]

Ràng buộc của yi có thể viết dưới dạng toán học như sau:

2.2.2 Hàm mất mát và bài toán tối ưu

Nếu coi center mk là center của mỗi cluster và ước lượng tất cả các điểm được phân vào cluster này bởi mk, thì một điểm dữ liệu xi được phân vào cluster

k sẽ bị sai số là (xi - mk) Để sai số này có giá trị tuyệt đối nhỏ nhất ta sẽ tìm cách

để đại lượng sau đây đạt giá trị nhỏ nhất:

2 2

|| ximk ||

Trang 12

Mặt khác, vì xi được phân vào cluster k nên yik=1, yịj=0, ∀j≠k Khi đó biểu thức trên sẽ được viết lại là:

Ta cần bài toán tối ưu sau:

2 2 Y,M 1 1

2.2.3 Thuật toán tối ưu hàm mất mát

Như vậy bài toán (2) khó tìm điểm tối ưu bởi nó có thể thêm các điều kiện rằng buộc Đây là bài toán thuộc loại mix-integer progamming 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 vẫn có thể tìm được phương pháp để tìm được nghiệm gần đúng hoặc điểm cực tiểu

Cách đơn giản để giải bài toán (2) là xen kẽ Y và M khi biến còn lại được

cố định Đây là một thuật toán lặp, cũng là kỹ thuật phổ biến khi giải bài toán tối

ưu Ta lần lượt giải quyết 2 bài toán sau đây:

Cố định M, tìm Y

Trang 13

Giả sử đã tìm được các centers, hãy tìm các label vector để hàm mất mát đạt giá trị nhỏ nhất Điều này tương đương với việc tìm cluster cho mỗi điểm dữ liệu

Khi các centers là cố định, bài toán tìm label vector cho toàn bộ dữ liệu có thể được chia nhỏ thành bài toán tìm label vector cho từng điểm dữ liệu xi như sau:

i

2 2

Vì || ximj ||22 chính là bình phương khoảng cách tính từ điểm xi tới

center mj, ta có thể kết luận rằng mỗi điểm xi thuộc vào cluster có center gần nó nhất Từ đó ta có thể dễ dàng suy ra label vector của từng điểm dữ liệu

Trang 14

Ta có thể tìm nghiệm bằng phương pháp giải đạo hàm bằng 0, vì hàm cần tối ưu là một hàm liên tục và có đạo hàm xác định tại mọi điểm Đây là hàm lồi theo mj nên ta sẽ tìm được giá trị nhỏ nhất và điểm tối ưu tương ứng

Đặt l(mj) là hàm bên trong dấu argmin, ta có đạo hàm:

j i i

ij i

y x m

Như vậy, i N1y xij i chính là tổng các điểm dữ liệu trong cluster j

Còn i N1yij chính là phép đếm số lượng các điểm dữ liệu trong cluster j

mj là trung bình cộng của các điểm trong cluster j

2.3 Hoạt động của thuật toán K-means

Trang 15

2.3.3 Các bước thực hiện

Thuật toán K-means được thực hiện qua các bước sau đây :

Bước 1: Chọn K điểm bất kỳ làm các điểm trung tâm ban đầu

Bước 2: Phân mỗi điểm dữ liệu vào cụm có điểm trung tâm gần nó nhất Bước 3: Nếu việc gán dữ liệu vào từng cụm ở bước 2 không thay đổi so

với vòng lặp trước nó thì ta dừng thuật toán

Bước 4: Tính lại giá trị điểm trung tâm cho từng cụm bằng cách lấy trung

bình cộng của tất cả các điểm dữ liệu đã được gán vào cụm đó sau bước 2

-

Kết thúc

Trang 16

2.4 Ví dụ minh hoạ

Dữ liệu vào: Cho tập hợp dữ liệu D: DANH SÁCH BẢNG ĐIỂM HỌC SINH gồm 24 học sinh với các môn Toán, Văn, Anh dưới đây

Dữ liệu ra: gom tập dữ liệu thành 3 cụm (k=3)

DANH SÁCH BẢNG ĐIỂM HỌC SINH

Trang 17

Trong 24 dữ liệu này đƣợc gom thành 3 cụm

Cụm 1: Khởi tạo trọng tâm C1 là dòng thứ 3 (5, 8, 9)

Cụm 2: Khởi tạo trọng tâm C2 là dòng thứ 14 (2, 7, 5)

Cụm 3: Khởi tạo trọng tâm C3 là dòng thứ 18 (10, 7, 8)

Lặp lần 1: Tính khoảng cách từ các trọng tâm C1, C2, C3 đến điểm của các học sinh ( theo công thức tính khoảng cách Euclidean)

Ta đƣợc kết quả:

Trang 18

Tính khoảng cách

Trọng tâm C1

Trọng tâm C2

Trọng tâm C3

Điểm Anh

Gần C1

Gần C2

Gần C3

Trang 20

Tính khoảng cách

Trọng tâm C1

Trọng tâm C2

Trọng tâm C3

Điểm Anh

Gần C1

Gần C2

Gần C3

Trang 22

Cụm 1, trọng tâm C1(6.1 ; 6.8 ; 7.9) ; gồm 8 học sinh có SBD (D03 ; D04 ; D08 ; D13 ; D15 ; D19 ; D20 ; D22)

Cụm 2, trọng tâm C2(3.7 ; 7.1 ; 5.1) ; gồm 7 học sinh có SBD (D05 ; D09 ; D11 ; D14 ; D16 ; D21 ; D24)

Cụm 3, trọng tâm C3(9.0 ; 6.7 ; 7.3) ; gồm có 9 học sinh có SBD (D01 ; D02 ; D06 ; D07 ; D10 ; D12 ; D17 ; D18 ; D23)

2.5 Đánh giá thuật toán

- Khó khăn trong việc xác định các trọng tâm cụm ban đầu

- Khó để chọn ra được số lượng cụm tối ưu ngay từ đầu, mà phải qua nhiều lần thử để tìm ra được số lượng cụm tối ưu

- Rất nhạy cảm với nhiễu và các phần tử ngoại lai trong dữ liệu

- Không phải lúc nào mỗi đối tượng cũng chỉ thuộc về 1 cụm, chỉ phù hợp với đường biên giữa các cụm rõ

Trang 23

CHƯƠNG 3 TÁCH VẬT THỂ CÓ TRONG ẢNH

3.1 Giới thiệu

Tách vật thể trong ảnh là chia một hình ảnh thành tập hợp các điểm ảnh, trong đó các điểm ảnh trong một khu vực là tương tự nhau theo một số các tiêu chí như màu sắc, cường độ hoặc kết cấu để định vị và xác định các vật thể và ranh giới trong một hình ảnh Nó trở thành một chủ thể nghiên cứu chính cho nhiều quá trình xử lý ảnh bởi các ứng dụng là vô tận Ứng dụng của nó bao gồm nâng cao hình ảnh, phát hiện đối tượng, truy xuất hình ảnh, nén hình ảnh và xử lý hình ảnh…[5]

3.2 Áp dụng thuật toán K-means

Về cơ bản, thuật toán tách vật thể trong ảnh có thể được xây dựng theo các bước như sau:

Bước 1: Tạo một cụm ban đầu có chứa một hình ảnh gốc và một bộ các

điểm trọng tâm được lựa chọn ngẫu nhiên từ hình ảnh Nối cụm ban đầu được xây dựng đến mảng của các cụm;

Bước 2: Lấy cụm hiện tại từ mảng và lặp thông qua tập hợp các siêu điểm

ảnh đó (tức là các trọng tâm);

Bước 3: Đối với mỗi siêu điểm ảnh, tính khoảng cách thực tế đến mỗi

điểm ảnh trong hình ảnh hiện tại Để làm được điều này, chúng ta thường sử dụng biến thể của công thức khoảng cách Euclidian cho phép chúng ta tìm khoảng cách giữa hai vectơ 3D của màu sắc (R; G; B) của một trong hai siêu điểm ảnh hoặc điểm ảnh hiện tại trong hình ảnh đã cho tương ứng;

Bước 4: Thực hiện tìm kiếm tuyến tính để tìm các điểm ảnh mà giá trị của

khoảng cách đến siêu điểm ảnh hiện tại (tức là trọng tâm) không vượt quá một ranh giới cụ thể;

Bước 5: Xây dựng một cụm mới dựa trên hình ảnh mới có chứa tất cả các

điểm ảnh đã chọn ở bước trước đó và giá trị hiện tại của siêu điểm ảnh Trong trường hợp này siêu điểm ảnh sẽ đóng vai trò là một trọng tâm của một cụm mới

Ngày đăng: 01/08/2021, 11:42

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. T.S Cao Thanh Sơn (2017), Bài giảng: Khai phá dữ liệu (Data Mining), Chương 5: Phân cụm dữ liệu (clustering), Trường Đại học Vinh Sách, tạp chí
Tiêu đề: Khai phá dữ liệu (Data Mining), Chương 5: Phân cụm dữ liệu (clustering)
Tác giả: T.S Cao Thanh Sơn
Năm: 2017
[3]. Pang-Ning Tan, Michael Steinbach, Vipin Kumar, 2006, Introduction to Data Mining, Chapter 8: Cluster Analysis: Basic Concepts and Algorithms, Addison-Wesley Companion Book Site Sách, tạp chí
Tiêu đề: Introduction to Data Mining, Chapter 8: Cluster Analysis: Basic Concepts and Algorithms
[2]. Thuật toán k-means, nguồn http://machinelearningcoban.com Tiếng Anh Link
[6]. k-means clustering, http://en.wikipedia.org/wiki/K-means_clustering Link
[4]. Stanford University’s lecture, 2016, K-means Algorithm Khác

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w