1. Trang chủ
  2. » Tất cả

[CS406.K11] - NỘP ĐỒ ÁN CUỐI KỲ

17 5 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 17
Dung lượng 350,89 KB

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KHOA HỌC MÁY TÍNH // BÁO CÁO ĐỒ ÁN CUỐI KỲ MÔN: XỬ LÝ ẢNH VÀ ỨNG DỤNG CS406.K11 ĐỀ TÀI: XÂY DỰNG BỘ PHÂN LOẠI CHÓ, MÈO HAY GẤU TRÚC VỚI K-NN Giảng viên hướng dẫn: THS MAI TIẾN DŨNG Sinh viên thực hiện: Nguyễn Xuân Duy Hiển – 16521670 Trần Phước Lợi – 16521723 Võ Văn Tiên – 16521581 TP.Hồ Chí Minh, tháng 12 năm 2019 MỤC LỤC Lời mở đầu Môn học Xử lý ảnh ứng dụng cung cấp cho chúng em kiến thức ngơn ngữ lập trình python, mathlap…, nguyên lý, phương pháp kỹ thuật xử lý ảnh văn đa phương tiện Đồng thời cung cấp kiến thức giúp chúng em hiểu rõ chế xử lý thành phần lĩnh vực đa phương tiện Đề tài Phân loại ảnh chủ để quen thuộc với nhiều sinh viên IT, để hiểu rõ chế phân tích ảnh chúng em định tìm hiểu sâu truy vấn ảnh chế hoạt bên với vấn để liên quan Đây chủ để chúng em thích, chúng em chọn đề tài cho đồ án cuối kì Trong q trình hồn thành đề tài, chúng em tìm hiểu khái niệm biến nói chung số khái niệm, đặc điểm biến ngơn ngữ lập trình phổ biến như: python, mathlap…vv kỹ tìm hiểu tham khảo tài liệu làm việc nhóm thuyết trình Chúng em xin trân trọng cám ơn hướng dẫn tận tình thầy Mai Tiến Dũng mặc chun mơn định hướng Vì kiến thức cịn hạn hẹp nên trình thực đề tài khơng thể tránh khỏi sai sót Vì mong nhận góp ý thầy để đề tài hồn thiện 1.Tổng quan đề tài 1.1 Đặt vấn đề Trong thời đại công nghệ số camera ngày phổ biến, kéo theo số lượng ảnh sinh ngày nhiều Với số lượng ảnh lớn vấn đề tìm kiếm ảnh có nội dung liên quan trở nên khó khăn Để giải vấn đề sử dụng kiến thức xử lý ảnh học được, chúng em định chọn đề tài “Xây dựng phân lồi chó,mèo hay gấu trúc với K-NN” để thực 1.2 Mục tiêu nghiên cứu Mục tiêu đề tài xây dựng hệ thống phân loài động vật đơn giản có sử dụng mơ hình K-nearest neighbors để giải vấn đề tìm kiếm ảnh có nội dung liên quan kho ảnh lớn (vài nghìn ảnh) 1.3 Nội dung thực Tìm hiểu phương pháp K-nearest neighbors phương pháp liên quan từ xây dựng module để nhận ảnh input trả danh sách kết Xây dựng giao diện cho chương trình giúp việc sử dụng dể dàng Cơ sở lý thuyết K-Nearest Neighbors KNN (K-Nearest Neighbors) thuật tốn học có giám sát đơn giản sử dụng nhiều khai phá liệu học máy Ý tưởng thuật toán khơng học điều từ tập liệu học (nên KNN xếp vào loại lazy learning), tính tốn thực cần dự đoán nhãn liệu Lớp (nhãn) đối tượng liệu dự đốn từ lớp (nhãn) k hàng xóm gần Ví dụ minh họa, Giả sử ta có D tập liệu phân loại thành nhãn (+) (-) biểu diễn trục tọa độ hình vẽ điểm liệu A chưa biết nhãn Vậy làm cách để xác định nhãn A (+) hay (-)? Có thể thấy cách đơn giản so sánh tất đặc điểm liệu A với tất tập liệu học gắn nhãn xem giống nhất, liệu (đặc điểm) A giống với liệu điểm mang nhãn (+) điểm A mang nhãn (+), liệu A giống với liệu nhãn (-) mang nhãn (-), trơng đơn giản mà KNN làm Trong trường hợp KNN, thực tế không so sánh liệu (không phân lớp) với tất liệu khác, thực tế thực phép tính tốn học để đo khoảng cách liệu với tất điểm tập liệu học D để thực phân lớp Phép tính khoảng cách điểm Euclidian, Manhattan, trọng số, Minkowski, … Với KNN, toán Classification, label điểm liệu (hay kết câu hỏi thi) suy trực tiếp từ K điểm liệu gần training set Label test data định major voting (bầu chọn theo số phiếu) điểm gần nhất, suy cách đánh trọng số khác cho điểm gần suy label Chi tiết nêu phần Trong toán Regresssion, đầu điểm liệu đầu điểm liệu biết gần (trong trường hợp K=1), trung bình có trọng số đầu điểm gần nhất, mối quan hệ dựa khoảng cách tới điểm gần Một cách ngắn gọn, KNN thuật tốn tìm đầu điểm liệu cách dựa thông tin K điểm liệu training set gần (K-lân cận), khơng quan tâm đến việc có vài điểm liệu điểm gần nhiễu Hình ví dụ KNN classification với K = Ví dụ toán Classification với classes: Đỏ, Lam, Lục Mỗi điểm liệu (test data point) gán label theo màu điểm mà thuộc Trong hình này, có vài vùng nhỏ xem lẫn vào vùng lớn khác màu Ví dụ có điểm màu Lục gần góc 11 nằm hai vùng lớn với nhiều liệu màu Đỏ Lam Điểm nhiễu Dẫn đến liệu test rơi vào vùng có nhiều khả cho kết khơng xác 2.1 Khoảng cách không gian vector Trong không gian chiều, khoảng cách hai điểm trị tuyệt đối hiệu giá trị hai điểm Trong khơng gian nhiều chiều, khoảng cách hai điểm định nghĩa nhiều hàm số khác nhau, độ dài đường thằng hai điểm trường hợp đặc biệt Nhiều thơng tin bổ ích (cho Machine Learning) tìm thấy Norms (chuẩn) vector tab Math 2.2 Các bước KNN Ta có D tập điểm liệu gắn nhãn A liệu chưa phân loại Đo khoảng cách (Euclidian, Manhattan, Minkowski, Minkowski Trọng số) từ liệu A đến tất liệu khác phân loại D Chọn K (K tham số mà bạn định nghĩa) khoảng cách nhỏ Kiểm tra danh sách lớp có khoảng cách ngắn đếm số lượng lớp xuất Lấy lớp (lớp xuất nhiều lần nhất) Lớp liệu lớp mà bạn nhận bước 2.3 Ưu điểm Thuật toán đơn giản, dễ dàng triển khai Độ phức tạp tính tốn nhỏ Xử lý tốt với tập liệu nhiễu 2.4 Nhược điểm Với K nhỏ dễ gặp nhiễu dẫn tới kết đưa khơng xác Cần nhiều thời gian để thực phải tính tốn khoảng cách với tất đối tượng tập liệu Cần chuyển đổi kiểu liệu thành yếu tố định tính Các bước thực hệ thống 3.1 Xây dựng tiền xử lý đọc liệu Ở đây, class DatasetLoader giúp đọc hình ảnh từ nhớ lên, chuyển chúng kích thước 32x32 lưu lại label tương ứng với ảnh Thơng thường thuật tốn machine learning k-NN, SVM, CNNs yêu cầu đưa đầu vào feature vector (hiểu nôm na chuỗi số đặc trưng cho liệu) có chiều dài cố định Thông thường ảnh đầu vào resize kích thước cố định Ở đây, ảnh đưa kích thước 32x32 (dịng 23), sau coi chuỗi số có kích thước 32x32x3 = 3072 để so sánh với (3 màu RGB) 10 3.2 Xây dựng phân loại KNN để nhận biết chó mèo gấu trúc • Dịng 1: Ở sử dụng class KNeighborsClassifier có package sklearn cho thuật tốn k-NN • Dịng 2: LabelEncoder giúp chuyển label hình ảnh từ dạng chữ (dog, cat, panda) sang sạng số (0, 1, 2) Đây việc thường thấy sử dụng thuật toán machine learning Việc giúp cơng việc lập trình xử lý đơn giản • Dịng 3: train_test_split giúp chia liệu train test dễ dàng • Dòng 4: classification_report giúp đánh giá hiệu model vừa huấn luyện 11 3.3 Huấn luyện đánh giá • Bước (dịng 19-33): Nạp liệu: Dataset có 3000 ảnh, 1000 ảnh loài Sau load ảnh lên, đưa ảnh kích thước 32x32 Vì ảnh có kênh màu R,G,B nên ảnh biểu diễn 32x32x3 = 3072 số nguyên Ở dòng 24, liệu làm phẳng (reshape, flatten) để ảnh trở thành dãy số có 3072 phần tử 12 • Bước (dòng 35-37): Chia liệu: Dataset chia làm phần, phần cho training (huấn luyện), phần cho testing (đánh giá model) Ở 75% liệu dùng cho training 25% lại sử dụng cho testing • Bước (dòng 41-43): Huấn luyện: Thực tế việc huấn luyện k-NN tạo phân loại KNeighborsClassifier nạp liệu training vào • Bước (dịng 44): Đánh giá model: Đánh giá hiệu model k-NN thu Chạy chương trình Sau chạy chương trình, thực ngơn ngữ lập trình python Kết chương trình đa phần cho kết ảnh mẫu tương tự với tập ảnh truy vấn ban đầu nhiên cịn nhiều hình chưa kết đúng: Tốc độ thực thi máy cá nhân: 15s Intel Core I5-8250U 1.6Ghz, 8Gb RAM => Tốc độ tương đối chậm Kết với k = 10 13 Kết với k = Nhìn vào kết quả, kết luận độ xác phân loại 52% (0.52) Đó chắn khơng phải kết tốt, suy cho thực so sánh điểm ảnh ảnh với nhau, không sử dụng thêm thuật tốn để trích xuất đặc trưng từ ảnh Tuy nhiên thuật toán dựa vào việc so sánh ảnh, độ xác 52% cao so với việc đoán ngẫu nhiên (ở xác suất đoán ngẫu nhiên 1/3 ~ 33%) Gấu trúc phân loại đến 87% ảnh gấu trúc có vùng trắng đen rõ ràng tạo thành vùng điểm trắng đen nằm liên tiếp nhau, dễ dàng nhận cách so sánh điểm ảnh Tuy thế, việc nhận chó mèo tệ Điều dễ hiểu ảnh có nhiều chi tiết khác nhau, từ màu sắc lơng chó, mèo đến màu sắc ảnh Do vậy, dựa vào việc so sánh giá trị điểm ảnh khơng thể địi hỏi độ xác cao - Ưu nhược điểm Ưu điểm: Ưu điểm lớn k-NN dễ hiểu implement Không tốn - thời gian huấn luyện Tất cần làm lưu lại tồn dataset Nhược điểm: Tuy khơng tốn thời gian huấn luyện k-NN phải chạy tồn dataset phân loại Chính thuật toán tốn nhiều thời gian chạy, tốn có dataset lớn Trên thực tế sử dụng biến thể khác KdTree Ball tree để tăng tốc thực Chưa thực chạy nhanh 14 với tập liệu lớn số kết cịn sai, độ xác cịn thấp (pricision) Thuật tốn khơng phù hợp với liệu với số chiều lớn nhiều nhiễu (như hình ảnh) Cải tiến truy vấn Mục tiêu cải tiến truy vấn để tăng tốc độ truy vấn hình ảnh mơ hình với tập liệu với kích thước lớn lớn Ngồi việc tính tốn khoảng cách từ điểm test data đến tất điểm traing set (Brute Force), có số thuật tốn khác giúp tăng tốc việc tìm kiếm Dựa vào thuật toán như: K-D Tree Ball Tree Phân công STT Tên Công việc giao Mức độ hoàn thành (%) Hiển Lợi Báo cáo phần 4.3, 4.4 100% Lợi Tiên Báo cáo phần 3, 5, 100% Hiển Tiên Báo cáo phần 4.1 , 4.2, 4.4 100% 15 Tài liệu tham khảo [1] https://machinelearningcoban.com/2017/01/08/knn/#-thao-luan [2] https://learncv.com/ [3] https://scikit-learn.org/stable/ [4] https://viblo.asia/p/knn-k-nearest-neighbors-1-djeZ14ejKWz [5].https://www.analyticsvidhya.com/blog/2018/03/introduction-k-neighboursalgorithm-clustering/ Nhận xét giảng viên hướng dẫn: 16 17 ... https://machinelearningcoban.com/2017/01/08/knn/#-thao-luan [2] https://learncv.com/ [3] https://scikit-learn.org/stable/ [4] https://viblo.asia/p/knn-k-nearest-neighbors-1-djeZ14ejKWz [5].https://www.analyticsvidhya.com/blog/2018/03/introduction-k-neighboursalgorithm-clustering/... tốn để trích xuất đặc trưng từ ảnh Tuy nhiên thuật toán dựa vào việc so sánh ảnh, độ xác 52% cao so với việc đoán ngẫu nhiên (ở xác suất đoán ngẫu nhiên 1/3 ~ 33%) Gấu trúc phân loại đến 87% ảnh... xác cao - Ưu nhược điểm Ưu điểm: Ưu điểm lớn k-NN dễ hiểu implement Không tốn - thời gian huấn luyện Tất cần làm lưu lại toàn dataset Nhược điểm: Tuy không tốn thời gian huấn luyện k-NN phải

Ngày đăng: 19/06/2020, 02:11

TỪ KHÓA LIÊN QUAN

w