Kỹ thuật phân cụm ảnh

Một phần của tài liệu Nghiên cứu phương pháp phân đoạn ảnh sử dụng phân cụm và ứng dụng trong tra cứu ảnh dựa vào nội dung (Trang 31 - 34)

Phân cụm ảnh là một thao tác ở mức thấp trong toàn bộ quá trình xử lý ảnh. Quá trình này thực hiện việc phân vùng ảnh thành các vùng rời rạc và đồng nhất với nhau hay nói cách khác là xác định các biên của các vùng ảnh đó. Các vùng ảnh đồng nhất này thông thƣờng sẽ tƣơng ứng với toàn bộ hay từng phần của các đối tƣợng thật sự bên trong ảnh. Vì thế, trong hầu hết các ứng dụng của lĩnh vực xử lý ảnh, thị giác máy tính, phân cụm ảnh luôn đóng một vai trò cơ bản và thƣờng là bƣớc tiền xử lý đầu tiên trong toàn bộ quá trình trƣớc khi thực hiện các thao tác khác ở mức cao hơn nhƣ nhận dạng đối tƣợng, biểu diễn đối tƣợng, nén ảnh dựa trên đối tƣợng, hay truy vấn ảnh dựa vào nội dung … Vào những thời gian đầu, các phƣơng pháp phân cụm ảnh đƣợc đƣa ra chủ yếu làm việc trên các ảnh mức xám do các hạn chế về phƣơng tiện thu thập và lƣu trữ. Ngày nay, cùng với sự phát triển về các phƣơng tiện thu nhận và biểu diễn ảnh, các ảnh màu đã hầu nhƣ thay thế hoàn toàn các ảnh mức xám trong việc biểu diễn và lƣu trữ thông tin do các ƣu thế vƣợt trội hơn hẳn so với ảnh mức xám. Do đó, các kỹ thuật, thuật giải mới thực hiện việc phân cụm ảnh trên các loại ảnh màu liên tục đƣợc phát triển để đáp ứng các nhu cầu mới. Các thuật giải, kỹ thuật này thƣờng đƣợc phát triển dựa trên nền tảng các thuật giải phân cụm ảnh mức xám đã có sẵn.

Phân cụm ảnh là quá trình chia ảnh thành các vùng không trùng lắp. Mỗi vùng gồm một nhóm pixel liên thông và đồng nhất theo một tiêu chí nào đó. Tiêu chí này phụ thuộc vào mục tiêu của quá trình phân cụm. Ví dụ nhƣ đồng nhất về màu sắc, mức xám, kết cấu, độ sâu của các lớp… Sau khi phân cụm, mỗi pixel chỉ thuộc về một vùng duy nhất.

Bƣớc đầu tiên trong kỹ thuật tra cứu của luận văn nàylà gom cụm ảnh thành các vùng. Trong trƣờng hợp lý tƣởng, các vùng sẽ tƣơng ứng với các đối tƣợng xuất hiện trong ảnh. Với mục tiêu này, ta cần một thuật toán phân đoạn ảnh hiệu quả để sinh ra

các vùng thuần nhất từ ảnh trong một thời gian ngắn. Luận văn nghiên cứu hai thuật toánphân đoạn khác nhau có tên là K-means[11] và kỹ thuật phân cụm đƣợc đề xuất bởi Stehling [10].

K-means là một trong những phƣơng pháp phân cụm phổ biến nhất và dễ dàng thực hiện. Phƣơng pháp khởi tạo ngẫu nhiên giá trị trung bình của K cụm và tính toán sự khác nhau giữa mỗi pixel và trung bình của mỗi cụm. Tính toán này quyết định một pixel cụ thể thuộc về cụm nào. Sau đó các trung bình đƣợc tính toán và quá trình này đƣợc lặp lại. Mặc dù K-means thực hiện tính toán đơn giản và cần ít thời gian, số các cụm thu đƣợc là một tham số đầu vào của thuật toán (điều này là một nhƣợc điểm). Luận văn mong muốn một thuật toán phân cụm tự động mà có thể quyết định số cụm dựa trên nội dung của ảnh. Do đó, K-means không thích hợp cho đòi hỏi của hệ thống. Gần đây, Stehling [10] đã trình bày thuật toán phát triển vùng đƣợc sử dụng cùng với cây mở rộng tối thiểu (minimum spanning tree - MST)gọilà CBC (Color base Clustering). Thuật toán có thể đƣợc mô tả nhƣ sau. Đầu tiên, toàn bộ ảnh đƣợc chuyển thành một đồ thị, các đỉnh của đồ thị là các pixel trong ảnh và các cạnh là cáccặp pixel lân cận bốn. Trọng số của mỗi cạnh là khoảng cách Euclide giữa các màu của các pixel lân cận bốn. Các pixel đƣợc phân cụm sử dụng hai ngƣỡng: màu và cỡ. Tập các pixel liên thông có khoảng cách màu nhỏ hơn ngƣỡng màu tạo nên một vùng. Sau đó, các vùng nhỏ hơn ngƣỡng cỡ đã cho đƣợc xem nhƣ là nhiễu và nhập với vùng lân cận gần nhất có độ tƣơng tự màu lớn nhất. Thuật toán phân cụm này không chỉ tự động mà còntốnít thời gian.Do đó luận vănđã quyết định sử dụng thuật toán phân cụm này để nhận đƣợc các vùng trong ảnh.

Thuật toán phân cụm

Đầu vào: Ảnh A Đầu ra: Các vùng của ảnh A 1. ConvertGraph(A, G); 2. Single-Linkage(G(V, E), d0) 3. For mỗi cặp vùng𝑨𝒊 ∈ 𝑨 If (𝐴𝑖. 𝐶𝑜𝑢𝑛𝑡<size) { 𝐴𝑘 = getNeighbor(𝐴𝑖) Join(𝐴𝑖, 𝐴𝑘) }

Hình2.3: Thuật toán phân cụm.

Trong thuật toán phân cụm ở trên hàm ConvertGraph(A) nhằm xây dựng đồ thị vô hƣớng có trọng số G(V, E), với các pixel của ảnh A là các đỉnh của V và mỗi cặp lân cận 4 láng giềng (p,q) trong I xác định một cạnh của E, các trọng số của cạnh (p,q) là khoảng cách Euclide giữa các màu pq. Hàm Single-Linkage(G(V, E), d0) có tác dụng phân cụm các pixel sử dụng tham số ngƣỡng khoảng cách màu d0 cho ra một phân hoạch đồ thị. Trong phân hoạch đồ thị này, mỗi phần là một cây, các nút của cây tạo thành vùng các pixel liên thông. Khoảng cách tối thiểu giữa các vùng lớn hơn hoặc bằng d0. Hàm getNeighbor(𝐴𝑖) sẽ trả lại vùng 𝐴𝑘là vùng lân cận có độ tƣơng tự nhất so với vùng 𝐴𝑖có số pixel nhỏ hơn s0. Còn hàm Join(𝐴𝑖, 𝐴𝑘) nhằm nhập vùng 𝐴𝑖 vào vùng 𝐴𝑘

Thuật toán phân cụm ở trên là một biến thể đơn giản và hiệu quả của thuật toán phân cụm phân cấp liên kết đơn single-linkage. Thuật toán single-linkage có thể đƣợc mô tả theo ngôn ngữ và khái niệm của lý thuyết đồ thị[1]. Ta coi các yếu tố dữ liệu mà muốn gom cụm là các nút của đồ thị. Việc sáp nhập của hai cụm (ban đầu là đơn) 𝑨 = {𝑨𝒊} và 𝑩 = {𝑩𝒋} tƣơng ứng với thêm một cạnh giữa các cặp nút gần nhất 𝑨𝒊𝝐 𝑨 và 𝑩𝒋 𝝐 𝑩 . Docác cạnh đƣợc thêm vào luôn luôn ởgiữa cácnút cụm riêng biệt, vì thếđồ thị kết quả không bao giờ có mạch kín.Trong thực tế, đồ thị kết quả là một cây. Nếu quá trình này cứ tiếp tục cho đến khi tất cả các cụm đƣợc liên kết với nhau, có thể chỉ ra rằng đồ thị kết quả là một cây mở rộng tối thiểu [1]. Dựa trên mối quan hệ giữa các thuật toán single-linkage và MST, để tạo ra một thuật toán tƣơng đƣơng với “thuật toán tham lam Kruskal” để tạo ra một MST. Thuật toán đƣợc sử dụng nhƣ là cơ sở để thay thế cho thuật toán single-linkage đã nói ở trên đƣợc mô tả nhƣ trong Hình 2.4.

Thuật toánSingle-Linkage(𝑮(𝑽, 𝑬), 𝒅𝟎 )

Đầu vào: - đồ thị G(V,E)

-ngưỡng khoảng cách d0

Đầu ra:Các vùng của ảnh

1. Formỗi đỉnh𝒗 𝝐 𝑽 doMake-Set(𝒗)

2. Sắp xếp các cạnh E theo chiều tăng dần của trọng số 𝒘

If𝒅 𝑮𝒆𝒕𝑹𝒐𝒐𝒕 𝒖 , 𝑮𝒆𝒕𝑹𝒐𝒐𝒕 𝒗 < 𝒅𝟎Then If𝑮𝒆𝒕𝑹𝒐𝒐𝒕 𝐮 ≠ 𝑮𝒆𝒕𝑹𝒐𝒐𝒕 𝐯 ThenJoin(𝒖, 𝒗)

Else break;

Hình2.4: Thuật toán Single-Linkage.

Trong thuật toán Single-Linkage ở trên, hàm Make-Set(.)nhằm khởi tạo ra một cụm với các nút 𝒗 là tham số truyền vào. Còn hàm GetRoot(.) trả về địnhdanh của các cụm bằng các phần tử thông qua nhƣ một tham số truyền vào. Dòng 1 tạo ra các cụm, mỗi cụm là một nút của đồ thị G, các cạnh trong Eđƣợc sắp xếp theo trọng số của cạnh trong dòng 2. Vòng lặpforở 3 kiểm tra cho mỗi cạnh (𝒖, 𝒗), nếu khoảng cách giữa các cụm của 𝒖 và 𝒗mà nhỏ hơn khoảng cách ngƣỡng 𝒅𝟎(tiêu chí để dừng) thì chứng tỏ các cụm là khác biệt, chúng đƣợc nối kết hợp lại với nhau.

Một phần của tài liệu Nghiên cứu phương pháp phân đoạn ảnh sử dụng phân cụm và ứng dụng trong tra cứu ảnh dựa vào nội dung (Trang 31 - 34)

Tải bản đầy đủ (PDF)

(57 trang)