Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh

70 15 0
Đề tài tìm hiểu thuật toán k means dựa trên mô hình mapreduce và ứng dụng trong phân cụm ảnh

Đ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

TRƯỜNG ĐẠI HỌC THỦY LỢI KHOA CÔNG NGHỆ THÔNG TIN -🙡🕮🙣 - ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Ngành Cơng nghệ thơng tin Đề tài: TÌM HIỂU THUẬT TỐN K-MEANS DỰA TRÊN MƠ HÌNH MAPREDUCE VÀ ỨNG DỤNG TRONG PHÂN CỤM ẢNH Sinh viên thực hiện: VŨ THỊ HƯỜNG Lớp: 57TH2; Hệ quy Giáo viên hướng dẫn: TS Nguyễn Tu Trung Hà Nội, năm 2019 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin LỜI CẢM ƠN Sau năm học tập nghiên cứu Khoa Công nghệ thông tin - Trường Đại học Thủy Lợi, em trải nghiệm môi trường đào tạo tốt nhận dạy nhiệt tình thầy, khoa Trước hết, em xin bày tỏ lòng biết ơn gửi lời cảm ơn chân thành đến TS Nguyễn Tu Trung dạy cho em có kiến thức vững chắc, tận tình bảo, nhắc nhở hướng dẫn em suốt trình làm đồ án tốt nghiệp Em xin chân thành cảm ơn thầy cô giáo khoa Cơng nghệ thơng tin nói riêng trường Đại học Thủy Lợi nói chung trang bị cho kiến thức quý báu làm hành trang năm học vừa qua Em xin bày tỏ lòng biết ơn sâu sắc đến: Cha mẹ người thân gia đình chăm sóc, ni dạy, hỗ trợ, động viên tạo điều kiện thuận lợi cho em suốt thời gian qua đặc biệt thời gian em làm đồ án tốt nghiệp Ngoài ra, em chân thành cảm ơn bạn, anh, chị ủng hộ, giúp đỡ, trao đổi kiến thức, kinh nghiệm động viên thời gian học tập nghiên cứu Trong trình nghiên cứu mình, hướng dẫn nhiệt tình, nghiêm túc TS Nguyễn Tu Trung với nỗ lực cá nhân khơng thể tránh thiếu sót Em mong nhận cảm thơng góp ý từ quý Thầy, Cô bạn để đề tài hoàn thiện Em xin chân thành cảm ơn! Hà Nội, ngày … tháng … năm 2019 Sinh viên thực Vũ Thị Hường SVTH: VŨ THỊ HƯỜNG LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin MỤC LỤC LỜI CẢM ƠN DANH MỤC BẢNG BIỂU DANH MỤC HÌNH ẢNH MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ BIGDATA VÀ PHÂN CỤM DỮ LIỆU 11 1.1 Tổng quan liệu lớn (Big Data) .11 1.1.1 Tổng quan 11 1.1.2 Tổng quan phân tích liệu lớn 14 1.2 Tổng quan phân cụm liệu 16 1.2.1 Tổng quan 16 1.2.2 Tổng quan phân cụm ảnh 19 CHƯƠNG 2: MƠ HÌNH MAPREDUCE TRONG PHÂN TÍCH DỮ LIỆU LỚN 22 2.1 Mơ hình MapReduce .22 2.1.1 Tổng quan mơ hình MapReduce 22 2.1.2 Kiến trúc MapReduce .23 2.1.3 Nguyên tắc hoạt động mơ hình MapReduce 23 2.2.4 Ưu nhược điểm mơ hình MapReduce 26 2.2.5 Ứng dụng MapReduce 27 2.2 Apache Hadoop .27 2.2.1 Tổng quan Apache Hadoop 27 2.2.2 Kiến trúc Apache Hadoop 29 2.2.3 Các trình Hadoop .32 2.1.4 Nguyên tắc hoạt động Hadoop MapReduce .34 2.1.5 Ứng dụng hadoop .34 SVTH: VŨ THỊ HƯỜNG LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin CHƯƠNG 3: PHÂN CỤM DỮ LIỆU VỚI THUẬT TỐN KMEANS .35 3.1 Thuật tốn KMeans .35 3.1.1 Tổng quan thuật toán KMeans 35 3.1.2 Giải thuật thuật toán KMeans 37 3.1.3 Ví dụ tính tốn tay 38 3.1.4 Ưu điểm nhược điểm KMeans .41 3.2 Ý tưởng giải pháp MapReduce hoá thuật toán KMeans 42 3.2.1 Đặc trưng KMeans để MapReduce 42 3.2.2 Ý tưởng MapReduce hóa KMeans 42 3.4 Thuật toán IPKMeans – cải tiến PKMeans cho phân cụm ảnh .44 3.4.1 Chuyển đổi liệu 45 3.4.2 Phân cụm ảnh với thuật toán IPKMeans 45 3.4.3 Khôi phục kết phân cụm ảnh 48 CHƯƠNG 4: CƠ SỞ CÔNG NGHỆ 49 4.1 Hệ điều hành Linux .49 4.2 Công nghệ docker 50 4.2.1 Tổng quan docker .50 4.2.2 Docker ứng dụng multi-node 53 4.3 Ngơn ngữ lập trình Java 54 4.3.1 Tổng quan Java 54 4.3.2 Java swing .56 4.4 Mơi trường lập trình Intellij IDEA Ultimate 56 CHƯƠNG 5: XÂY DỰNG CHƯƠNG TRÌNH VÀ THỰC NGHIỆM ĐÁNH GIÁ 58 5.1 Yêu cầu hệ thống 58 SVTH: VŨ THỊ HƯỜNG LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin 5.1.1 Yêu cầu chung 58 5.1.2 Yêu cầu chức 58 5.2 Xây dựng chương trình 58 5.2.1 Môi trường thực nghiệm 59 5.2.2 Dữ liệu thực nghiệm 59 5.2.3 Cài đặt chương trình 59 5.3 Thực nghiệm đánh giá 60 5.3.1 Kết cài đặt 60 3.3.2 Kết thực nghiệm đánh giá 61 KẾT LUẬN .67 TÀI LIỆU THAM KHẢO 69 SVTH: VŨ THỊ HƯỜNG LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin DANH MỤC BẢNG BIỂU Bảng Cơng nghệ phân tích liệu lớn .15 Bảng Giải thuật thuật toán KMeans 37 Bảng Mô tả toán phân cụm KMeans .38 Bảng Lần lặp tâm cụm điểm thuộc tâm cụm .38 Bảng Lặp lần tâm cụm điểm thuộc tâm cụm .40 Bảng Lặp lần tâm cụm điểm thuộc tâm cụm .40 Bảng Thuật toán cho hàm map(key,value) 43 Bảng Thuật toán cho hàm reduce(key,V) 44 Bảng Mã giả thuật toán IPKMeans cho hàm mapImage(key, value) 46 Bảng 10 Thuật toán IPKMeans cho hàm reduceImage(key, value) 47 Bảng 11 Ảnh liệu đầu vào 62 Bảng 12 Kết ảnh sau phân cụm kích thước 128x128 300x300 62 Bảng 13 Kết ảnh sau phân cụm kích thước 500x500 700x700 62 Bảng 14 Kết tâm cụm sinh sau hội tụ 64 Bảng 15 Kết tâm cụm sinh sau hội tụ 64 Bảng 16 Kết thống kê thời gian thực thi 128x128 65 Bảng 17 Kết thống kê thời gian thực thi 300x300 65 Bảng 18 Kết thống kê thời gian thực thi 500x500 65 Bảng 19 Kết thống kê thời gian thực thi 700x700 65 Bảng 20 Kết đánh giá hiệu suất theo kích thước liệu 66 Bảng 21 Biểu đồ đánh giá hiệu suất thực thi 67 SVTH: VŨ THỊ HƯỜNG LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thơng Tin DANH MỤC HÌNH ẢNH Hình Tốc độ gia tăng nguồn liệu 11 Hình Xu hướng doanh thu từ phân tích liệu lớn đem lại 12 Hình Đặc trưng liệu lớn 13 Hình Cơng cụ quản lý liệu lớn 14 Hình Minh họa trình phân cụm 16 Hình Quá trình phân cụm liệu 17 Hình Minh hoạ số ví dụ phân cụm 18 Hình Ví dụ phân cụm ảnh 20 Hình Quy trình phân cụm ảnh .20 Hình 10 Logo mơ hình MapReduce 22 Hình 11 Kiến trúc MapReduce .23 Hình 12 Mơ hình hoạt động MapReduce .24 Hình 13 Một số lĩnh vực áp dụng MapReduce .27 Hình 14 Logo Apache Hadoop .28 Hình 15 Lợi ích hadoop .29 Hình 16 Thành phần hadoop 29 Hình 17 Cấu trúc phân cấp file Hadoop 30 Hình 18 Kiến trúc tổng quát HDFS 30 Hình 19 Hoạt động đọc HDFS .31 Hình 20 Hoạt động ghi HDFS .31 Hình 21 Mơ tả hoạt động JobTracker .33 Hình 22 Mơ hình phân cụm đơn giản 35 Hình 23 Minh họa trình phân cụm 36 Hình 24 Lưu đồ thuật tốn IPKMeans 46 Hình 25 Tổng quan hệ điều hành linux 49 Hình 26 Kiến trúc hệ điều hành linux 49 Hình 27 Logo cơng nghệ docker 51 Hình 28 Kiến trúc docker .51 SVTH: VŨ THỊ HƯỜNG LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Cơng Nghệ Thơng Tin Hình 29 Quy trình thực thi hệ thống docker 52 Hình 30 Cài đặt nhiều node bên mạng docker .54 Hình 31 Logo ngơn ngữ lập trình Java 55 Hình 32 Minh hoạ ứng dụng Java 56 Hình 33 Các chức ứng dụng 58 Hình 34 Giao diện ứng dụng phân cụm 61 SVTH: VŨ THỊ HƯỜNG LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin MỞ ĐẦU Tổng quan vấn đề nghiên cứu Những năm gần đây, phát triển mạnh công nghệ thông tin làm cho khả thu thập lượng thông tin tăng nhanh cách chóng mặt Sự đời kênh truyền thông mạng xã hội thiết bị tiên tiến đặt thách thức cho cơng nghiệp phải tìm cách để xử lý liệu Các phương pháp song song hóa đề cập từ lâu, mà J.Von Neumann giới thiệu mơ hình tính tốn song song có tên Otomat tế bào Từ đến nay, lý thuyết xử lý song song trở thành lĩnh vực nghiên cứu quan trọng ngày đem lại tính vượt trội so với mơ hình lập trình truyền thống Năm 2004, Google giới thiệu thiệu mơ hình tính tốn MapReduce tính tốn phân tán nhanh tập liệu lớn liệu đặt nhiều cụm máy tính Cho đến MapReduce có tầm ảnh hưởng lớn [9] Lý chọn đề tài Ngày nay, doanh nghiệp lớn vừa bị bao vây hàng liệu phi cấu trúc từ nhiều nguồn khác không ngừng gia tăng ngày.Vì vậy, ln phải đối mặt với việc xử lý lượng liệu khổng lồ gọi Big Data Hầu hết liệu lớn tạo ảnh Thị giác máy tính lĩnh vực nghiên cứu mẻ đầy tiềm quan tâm Tầm quan trọng khó khăn việc gom cụm đối tượng mang tính tri giác người từ lâu nghiên cứu nhiều lĩnh vực thị giác máy tính đặc biệt lĩnh vực xử lý ảnh Phân cụm ảnh ứng dụng mạnh mẽ tốn phân tích hiểu ảnh tự động, bước quan trọng việc khai thác hình ảnh, tốn khó mà tới nhà khoa học chưa tìm cách giải hồn tồn thấu đáo Vậy: Làm để phân chia ảnh thành tập con? Những cách khả thi để làm điều gì? Trong khoảng 30 trở lại có nhiều thuật tốn đề xuất để giải vấn đề phân cụm ảnh Các thuật toán hầu hết tiếp cận theo hướng chủ yếu là: dựa pixel dựa trên đồi tượng [10] Tuy nhiên việc xử lý ảnh SVTH: VŨ THỊ HƯỜNG LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Cơng Nghệ Thơng Tin cịn tồn nhiều vấn đề như: Độ phức tạp thời gian tính tốn theo cấp số nhân; khối lượng liệu xử lý giới hạn, vấn đề lỗi, … [11] Xuất phát từ thực tế để giải vấn đề đặt ra, em chọn thuật toán IPKMeans - phương pháp phân cụm ảnh song song hố dựa mơ hình MapReduce để giải tốn phân cụm ảnh lớn với đề tài "Tìm hiểu thuật tốn K-Means dựa mơ hình MapReduce ứng dụng phân cụm ảnh." thực làm học phần tốt nghiệp Đối tượng nghiên cứu - Nghiên cứu kỹ thuật chuyển đổi điểm ảnh sang không gian màu RGB - Nghiên cứu mơ hình lập trình MapReduce Hadoop - Nghiên cứu phân cụm ảnh với thuật toán K-Means, PKMeans IPKMeans - Nghiên cứu tảng mở docker, docker-compose tạo lập mơi trường nhiều máy ảo xử lý tính tốn song song Phạm vi nghiên cứu - Mơ hình MapReduce Apache Hadoop - Thuật tốn KMeans, PKMeans, IPKMeans - Ứng dụng phân cụm ảnh với Kmeans IPKMeans - Xử lý phân cụm ảnh tính tốn song song - Nền tảng mở docker, docker-compose Mục tiêu đề tài - Tìm hiểu kỹ thuật xử lý ảnh, toán phân cụm ảnh xám, ảnh màu - Hiểu chế hoạt động Hadoop bao gồm HDFS (Hadoop Distributed File System) MapReduce - Hiểu thuật toán KMeans IPKMeans - Xây dựng ứng dụng demo phân cụm ảnh với thuật toán KMeans IPKMeans - Chạy thử nghiệm ứng dụng song song nhiều node sử dụng docker - Thử nghiệm, phân tích đánh giá giải pháp KMeans IPKMeans SVTH: VŨ THỊ HƯỜNG LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin Hình 31 Logo ngơn ngữ lập trình Java Ưu nhược điểm: - Ưu điểm: + Về tốc độ: Chạy nhanh ngôn ngữ thông dịch Python, PHP nhiều lần + Về quản lý nhớ: Bộ nhớ quản lý Java Virtual Machine (JVM) nên tượng rị rỉ nhớ khơng xảy ra, quan tâm đến việc cấp phát xóa nhớ C, C++ + Về cú pháp: Cú pháp hướng đối tượng tính xử lý cấp thấp Nên việc viết chương trình java dễ dàng hơn, đơn giản, đỡ tốn cơng sửa lỗi + Được nhà phát triển mơ hình map/reduce dùng xử lý liệu lớn hiệu quả, - Nhược điểm: + Tool tràn lan (NetBeans, Eclipse, IntelliJ, JBuilder, vv), đặc tính free nên hỗ trợ khơng thoải mái Visual Studio + Bảo mật source code không tốt (phần nguyên lý hoạt động nêu rõ) Ứng dụng phổ biến ngơn ngữ lập trình Java: + Phát triển ứng dụng cho thiết bị di động: Các ứng dụng phổ biến Google PlayStore kể đến Whatsapp, Facebook, Linkedin, FlipKart + Phát triển ứng dụng web: Với tiến Thương mại điện tử, phạm vi ngày mở rộng Ví dụ SAP, NetSuite, Alfresco, Liferay, Youtube, Google, Netflix, Mifox (giải pháp ngân hàng), v.v SVTH: VŨ THỊ HƯỜNG 55 LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin + Dữ liệu lớn: Các công ty tung hứng với lượng lớn liệu Các công cụ Quản lý liệu lớn Hadoop sử dụng Java theo nhiều cách Ngồi có Apache Spark, Tìm kiếm Đàn hồi (ELK), Cassandra, HBASE, v.v Hình 32 Minh hoạ ứng dụng Java 4.3.2 Java swing Khái niệm: Swing (javax.swing.*) framework giới thiệu java 1.2 bao gồm đặc tính AWT thêm nhiều tính trội khác Khơng giống AWT, java Swing cung cấp thành phần gọn nhẹ độc lập tảng Package cung cấp lớp cho Java Swing JButton, JTextField, Ưu điểm ứng dụng: - Chiếm tài nguyên hệ thống - Hỗ trợ giao diện “Look and Feel” tương tác với người dùng - Dễ dàng mở rộng Kiến trúc: Swing sử dụng kiến trúc MVC để xây dựng chương trình + M (Model): Chứa thành phần trạng thái GUI (Graphical User Interface) + V (View): Thể trực quan GUI + C (Controller): Quản lý thao tác người dùng tác động lên GUI thông qua kiện click chuột, bàn phím, 4.4 Mơi trường lập trình Intellij IDEA Ultimate Khái niệm: IntelliJ IDEA IDE Java để phát triển phần mềm máy tính Nó SVTH: VŨ THỊ HƯỜNG 56 LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin phát triển JetBrains (trước gọi IntelliJ), cấp phép Apache cho phiên cộng đồng phiên thương mại độc quyền [7] Đặc điểm: + IntelliJ IDEA, "thủ lĩnh" Java IDE tính giá cả, có hai phiên bản: Community miễn phí Ultimate phí với tính bổ sung + IntelliJ IDEA IDE đầy đủ tính cho nhà phát triển Java EE thứ Java IntelliJ IDEA đến từ nhà phát triển công ty JetBranins, công ty kinh doanh cung cấp công cụ phát triển 15 năm qua với nhiều thành công lớn => Ưu điểm vượt trội so với cơng cụ khác eclipse, netbean, là: Phiên Ultimate mang lại nhiều tính bổ sung như: - Khuôn khổ Spring MVC, Spring Security, Spring Integration công cụ khác - Hỗ trợ khuôn khổ Node.js, Angular React - Hỗ trợ cho ngôn ngữ phát triển web JavaScript, Coffeescript,v.v… - Hỗ trợ Java EE bao gồm JSF, JAX-RS, CDI, JPA,v.v… - Grails, GWT, Griffon hỗ trợ Vaadin - Kiểm soát phiên với Team Foundation Server, Perforce, Clearcase, SVTH: VŨ THỊ HƯỜNG 57 LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin CHƯƠNG 5: XÂY DỰNG CHƯƠNG TRÌNH VÀ THỰC NGHIỆM ĐÁNH GIÁ 5.1 Yêu cầu hệ thống 5.1.1 Yêu cầu chung - Ứng dụng có đầy đủ tính hệ thống ảnh: Upload, preview download - Ứng dụng đảm bảo dễ dàng sử dụng - Xây dựng tảng cơng nghệ tiên tiến, có khả nâng cấp mở rộng sau mà không ảnh hưởng đến chương trình 5.1.2 Yêu cầu chức Hình 33 Các chức ứng dụng - Upload ảnh: Ứng dụng cho phép chọn ảnh từ thư mục máy tính - IPKMeans clustering: Thực phân cụm (hay phân đoạn) ảnh sử dụng thuật toán IPKMeans theo kỹ thuật đề xuất - KMeans clustering: Thực phân cụm (hay phân đoạn) ảnh sử dụng thuật toán KMeans theo kỹ thuật truyền thống - Download image: Sau phân cụm xong, ứng dụng cho phép download ảnh máy, để mở phóng to thu nhỏ ảnh sau phân cụm để so sánh 5.2 Xây dựng chương trình SVTH: VŨ THỊ HƯỜNG 58 LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin 5.2.1 Môi trường thực nghiệm - Máy ASUS RAM 8G, ổ cứng HDD, CPU core i5 - Hệ điều hành Linux – Ubuntu phiên 16.04 - Trình biên dịch Intellij IDEA phiên 2019.2 - Java phiên 1.8.0_171 - Docker phiên 19.03.4 - Framework Hadoop 2.7.3 5.2.2 Dữ liệu thực nghiệm - Nguồn liệu: Lấy tập liệu google, bao gồm: ảnh hoa kích thước 128x128px, ảnh chó kích thước 300x300px, ảnh chó kích thước 500x500px ảnh phong cảnh kích thước 700x700px 5.2.3 Cài đặt chương trình Chạy chương trình docker: Một số ký hiệu: $ : Chỉ thị chạy lệnh thư mục mã nguồn code ipkmeans-docker với quyền user # : Chỉ thị chạy lệnh thư mục mã nguồn code iplmeans-docker với quyền root Thực hiện: - Mở terminal vào thư mục ipkmeans-docker chạy lệnh: + Cài đặt số lượng máy tính để xử lý song song: $ docker-compose up -d scale slave= NUMBER_OF_NODE  + Thêm liệu test: $ /copy_files.sh + Cài đặt chạy giao diện GUI: $ xhost + + Vào quyền root phân quyền file cấu hình chạy chương trình: SVTH: VŨ THỊ HƯỜNG 59 LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin $ docker-compose exec master bash  # cd hadoop # chmod 755 start.sh + Tạo thư mục # mkdir images output_mapreduce output_non_mapreduce output_images icon + Chạy lệnh thêm package cần thiết # apt-get –y install libxrender1 libxtst6 libxi6 libgconf-2-4 nano # exit $ /copy_images.sh $ docker-compose exec master bash # cd hadoop + Chạy chương trình: # /start.sh Chú ý: Chạy lệnh $ docker-compose down (đối với trường hợp chương trình chạy muốn thay đổi số lượng node) 5.3 Thực nghiệm đánh giá 5.3.1 Kết cài đặt - Triển khai thực nghiệm đánh giá theo trường hợp: + node (trên local) với cấu hình máy đóng vai trị vừa master (NameNode) chịu trách hiệm điều phối hoạt động vừa thực thi nhiệm vụ slave (DataNode) + 3, 5, node (trên docker) với cấu hình máy master chịu trách hiệm điều phối SVTH: VŨ THỊ HƯỜNG 60 LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin hoạt động 3, 5, máy slave thực thi nhiệm vụ master điều phối gán Giao diện ứng dụng: Trước sau chương trình kết thúc (1 trường hơp) Hình 34 Giao diện ứng dụng phân cụm 3.3.2 Kết thực nghiệm đánh giá SVTH: VŨ THỊ HƯỜNG 61 LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin Bảng 11 Ảnh liệu đầu vào Kích 128x128 300x300 500x500 700x700 Thước Ảnh ✯ Đánh giá 1: Đánh giá tính xác thuật toán: Bảng 12 Kết ảnh sau phân cụm kích thước 128x128 300x300 Số KMeans IPKMeans KMeans IPKMeans cụm Bảng 13 Kết ảnh sau phân cụm kích thước 500x500 700x700 SVTH: VŨ THỊ HƯỜNG 62 LỚP: 57TH2 Đồ Án Tốt Nghiệp Số KMeans Khoa Công Nghệ Thông Tin IPKMeans KMeans IPKMeans cụm - Lưu ý: Thực nghiệm node môi trường local thực nghiệm nhiều node môi trường docker Từ liệu bảng 12 13, ta thấy tập tâm cụm sinh thuật tốn sau Nói cách khác, hai thuật toán cho chất lượng phân cụm tương đương => Kết luận: Qua việc thực thi thuật toán IPKMeasn, em thấy kết thuật toán KMeans IPKMeans là: + Kết hoàn toàn giống + Đều có kết trung gian giống qua bước lặp số lần lặp giống - Dẫn chứng kết thực nghiệm với ảnh kích thước 128x128 SVTH: VŨ THỊ HƯỜNG 63 LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin Bảng 14 Kết tâm cụm sinh sau hội tụ Cụm Kmeans IPKMeans 146.57, 125.41, 55.12 213.33, 185.26, 139.02 139.96, 175.18, 196.71 121.26, 33.69,38.10 186.78, 37.58, 64.24 224.81, 65.31, 98.80 247.19, 111.52, 154.32 30.13, 21.61, 14.97 167.47, 28.27, 47.86 181.06, 52.82, 87.49 217.17, 51.44, 81.24 23.66, 19.39, 13.20 237.39, 81.12, 118.01 249.18, 120.18, 163.67 91.71, 37.64, 32.90 146.57, 125.41, 55.12 213.33, 185.26, 139.02 139.96, 175.18, 196.71 121.26, 33.69,38.10 186.78, 37.58, 64.24 224.81, 65.31, 98.80 247.19, 111.52, 154.32 30.13, 21.61, 14.97 167.47, 28.27, 47.86 181.06, 52.82, 87.49 217.17, 51.44, 81.24 23.66, 19.39, 13.20 237.39, 81.12, 118.01 249.18, 120.18, 163.67 91.71, 37.64, 32.90 - Dẫn chứng kết thực nghiệm với ảnh kích thước 300x300 Bảng 15 Kết tâm cụm sinh sau hội tụ Cụm Kmeans IPKMeans 152.37, 129.42, 58.80 158.27, 178.89, 185.59 66.34, 68.83, 41.82 152.37, 129.42, 58.80 158.27, 178.89, 185.59 66.34, 68.83, 41.82 129.69,138.09,78.88 219.20,221.84,62.35 224.67,230.73,152.24 33.32,39.65,23.32 85.66,90.67,42.43 129.69,138.09,78.88 219.20,221.84,62.35 224.67,230.73,152.24 33.32,39.65,23.32 85.66,90.67,42.43 140.08, 175.82, 197.94 141.74, 119.64, 40.34 17.72, 77.41, 100.48 140.08, 175.82, 197.94 141.74, 119.64, 40.34 17.72, 77.41, 100.48 SVTH: VŨ THỊ HƯỜNG 64 LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin 170.58, 149.18, 84.58 221.69, 193.95, 151.67 53.64, 41.63, 6.52 96.91, 79.91, 32.68 170.58, 149.18, 84.58 221.69, 193.95, 151.67 53.64, 41.63, 6.52 96.91, 79.91, 32.68 ✯Đánh giá 2: Đánh giá hiệu xuất thực thi thuật toán Bảng 16 Kết thống kê thời gian thực thi 128x128 Số node cụm cụm cụm KMeans IPKMeans KMeans IPKMean KMeans IPKMeans s 15240 28868 67604 110266 34477 88786 18040 22609 18091 222160 289987 235359 41796 22366 27537 1048615 545326 482611 27471 18706 28037 801110 490508 531585 Bảng 17 Kết thống kê thời gian thực thi 300x300 Số cụm cụm cụm node KMeans IPKMeans KMean IPKMeans KMean IPKMeans s s 1010783 296501 886060 312146 1239018 493502 1139861 1472401 1142224 1057883 1366532 1081177 646876 573857 1292151 803021 640248 1285137 1392884 992572 854062 1689318 1657507 1151390 Bảng 18 Kết thống kê thời gian thực thi 500x500 Số cụm cụm cụm node KMeans IPKMeans KMeans IPKMeans KMeans IPKMeans 5016357 1295988 3358817 956783 3305970 862954 2390198 1001712 2390309 1214319 2954896 1264067 3820414 3066427 1515108 1011371 1481568 2863084 708253 1065389 1347377 2135302 718491 1007419 Bảng 19 Kết thống kê thời gian thực thi 700x700 Số nod cụm KMeans IPKMean SVTH: VŨ THỊ HƯỜNG cụm KMeans IPKMean 65 cụm KMeans IPKMean LỚP: 57TH2 Đồ Án Tốt Nghiệp e 1701830 1854306 1452499 1170687 Khoa Công Nghệ Thông Tin s 4977636 6090505 3878907 4811877 1165473 1845489 1562626 1594570 s 5188732 7291294 6046730 7560861 1593614 1673414 1423501 1357302 s 7142650 8244356 6516630 5774530 => Kết luận: Giữ tập liệu không đổi tăng số lượng cụm số lượng node Thực liệu kích thước khác Kết cho thấy: + IPKMeans có hiệu suất thời gian chạy tốt, kích thước ảnh tăng, hiệu suất, thời lượng tính ổn định việc phân cụm liệu lớn cải thiện hiệu nhiều so với giải thuật KMeans truyền thống Do đó, thuật tốn IPKMeans xử lý liệu lớn cách hiệu + Tuy nhiên nhận thấy, hiệu suất thực thi thuật toán phần phụ thuộc vào tâm cụm khởi tạo ngẫu nhiên - Tăng kích thước liệu test, kết thử nghiệm với số node = số cụm =7 chạy môi trường docker Bảng 20 Kết đánh giá hiệu suất theo kích thước liệu Kích thước ảnh (px) Thời gian Kmeans (ms) Thời gian IPKMeans (ms) 128x128 28037 531585 300x300 854062 1151390 500x500 2135302 1007419 700x700 13573028 5774530 SVTH: VŨ THỊ HƯỜNG 66 LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin - Biểu đồ mô đánh giá: Với số cụm =7 Bảng 21 Biểu đồ đánh giá hiệu suất thực thi (a) (b) (c) (d) (a) Biểu đồ biểu diễn kết đánh giá hiệu suất với ảnh 128x128 (b) Biểu đồ biểu diễn kết đánh giá hiệu suất với ảnh 300x300 (c) Biểu đồ biểu diễn kết đánh giá hiệu suất với ảnh 500x500 (d) Biểu đồ biểu diễn kết đánh giá hiệu suất với ảnh 700x700 SVTH: VŨ THỊ HƯỜNG 67 LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin KẾT LUẬN Đồ án tốt nghiệp với đề tài "Tìm hiểu thuật tốn K-Mean dựa mơ hình MapReduce ứng dụng phân cụm ảnh" em thu số kết nhận thấy số hạn chế sau: Kết đạt được: - Tìm hiểu tổng quan toán phân cụm ảnh giải tốn - Tìm hiểu điểm ảnh, màu ảnh cách xử lý điểm ảnh khôi phục ảnh - Nghiên cứu mơ hình lập trình MapReduce Apache Hadoop - Nghiên cứu áp dụng thuật toán IPKMeans mơ hình lập trình MapReduce framework Hadoop - Lập trình cài đặt ứng dụng phân cụm ảnh sử dụng thuật toán KMeans IPKMeans - Đánh giá thuật tốn dựa tính xác hiệu suất thuật toán - Cài đặt thử nghiệm phân cụm song song nhiều cụm máy tính mơi trường server ảo sử dụng công nghệ docker docker-compose Một số hạn chế: - Đã cài đặt thử nghiệm song song nhiều máy ảo Tuy nhiên chưa cài đặt thử nghiệm nhiều cụm nhiều máy tính thật Mặc dù cố gắng q trình thực để hồn thành đồ án tốt nhất, song lực trình độ cịn hạn chế nên khó tránh khỏi thiếu sót Kính mong thầy bạn quan tâm phản hồi, bảo để ứng dụng em hoàn thiện Hướng phát triển: Nhận thấy lĩnh vực có tiềm Trong thời gian tới em cố gắng tiếp tục nghiên cứu sâu MapReduce dự án Hadoop để tìm cơng cụ hữu ích cho việc song song hóa tốn thực tế có độ phức tạp cao áp dụng cho thuật tốn học máy khác để khai thác, phân tích xử lý liệu lớn hiệu SVTH: VŨ THỊ HƯỜNG 68 LỚP: 57TH2 Đồ Án Tốt Nghiệp Khoa Công Nghệ Thông Tin TÀI LIỆU THAM KHẢO Tài liệu tiếng việt [1] SV.Vũ Thị Hường, TS.Nguyễn Tu Trung (2019), Ứng dụng mơ hình MapReduce phân cụm ảnh, Hội nghị Khoa Học thường niên, DHTL [2] https://kipalog.com/posts/Thuat-toan-Kmean-va-ung-dung [3] TS.Nguyễn Tu Trung, (2019), Bài giảng mơn Phân tích liệu lớn, DHTL [4] Nguyễn Trung Đức (2013), Tiếp cận mờ phân cụm liệu, LVTS Tài liệu tiếng anh [5] https://www.tutorialspoint.com/hadoop [6] https://www.javatpoint.com/java-swing [7] http://hadooptutorial.info/ [8] Balaji T., Sumathi M., Relational Features of Remote Sensing Image classification using Effective KMeans Clustering, International Journal of Advancements in Research & Technology, Volume 2, Issue 8, August- 2013 [9] Xiaolong Jin, Benjamin W.Wah (2014), Significance and Challenges of Big Data Research, The Chinese University of HongKong Shation, China [10] Mohd Usama, Mengchen (2017), Job schedulers for Big data processing in Hadoop environment: testing real-life schedulers using benchmark programs, School of Computer Science and Technology, Huazhong University of Science and Technology, Wuhan 430074, China [11] TIAN Jinlan, ZHU Lin (2004), Improvement and Parallelism of k-means Clustering Algorithm, Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China [12] J Dean and S Ghemawat, “MapReduce: Simplified Data Processing on Large Clusters,” Commun ACM, vol 51, no 1, pp 107–113, Jan 2008 [13] Zhao, W.Ma, (2012, December) Parallel k-means clustering based on mapreduce In IEEE International Conference on Cloud Computing (pp 674-679) Springer, Berlin, Heidelberg [14] https://lewuathe.com/hadoop/docker/multiple-hadoop-cluster-on-docker.html SVTH: VŨ THỊ HƯỜNG 69 LỚP: 57TH2

Ngày đăng: 10/10/2023, 15:53

Tài liệu cùng người dùng

Tài liệu liên quan