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

Phân loại trái cây hư hay tươi

27 2 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 27
Dung lượng 3,37 MB
File đính kèm Code python 3.8.rar (2 KB)

Nội dung

Chương 1. Giới thiệu tổng quan 1.1. Giới thiệu đề tài. Hiện nay, ở nước ta nói riêng và ở các nước đang phát triển có nền nông nghiệp là một trong các ngành sản xuất chủ yếu, quá trình thu hoạch, phân loại và đánh giá chất lượng các loại sản phẩm nông nghiệp, đặc biệt là các loại hoa quả, chủ yếu còn phải thực hiện bằng các phương pháp thủ công. Đây là công việc không quá khó, nhưng tiêu tốn nhiều thời gian, công sức của con người và là rào cản đối với mở rộng phát triển quy mô sản xuất nông nghiệp. Do đó, nhiều phương pháp tự động hóa công việc thu hoạch, nhận dạng và đánh giá chất lượng hoa quả đã được nghiên cứu và đưa vào ứng dụng thực tế, trong đó sử dụng chủ yếu các phương pháp Xử lý ảnh đơn thuần. Tuy nhiên, các phương pháp này vẫn chưa thực sự thỏa mãn yêu cầu về khả năng nhận dạng một số lượng lớn các loại hoa quả với độ chính xác cao do bị hạn chế bởi các đặc trưng của bài toán phân loại hoa quả hư hay tốt: sự biến thiên về hình dạng, màu sắc, chi tiết trong từng loại quả cũng rất khó dự đoán trước… Trong thời gian gần đây, nhờ có sự phát triển mạnh mẽ về khả năng tính toán của các thế hệ máy tính hiện đại cũng như sự bùng nổ về dữ liệu thông qua mạng lưới Internet trải rộng, ta đã chứng kiến nhiều sự đột phá trong lĩnh vực Học máy, đặc biệt là trong lĩnh vực Thị giác máy tính. Sự quay lại và phát triển vượt bậc của các phương pháp Học sâu đã giúp Thị giác máy tính đạt được những thành tựu đáng kể trong lĩnh vực Nhận dạng ảnh, trong đó có bài toán phân loại hoa quả hư hay tươi. Đề tài nghiên cứu “Phân loại trái cây hư hay tươi.” đã được đưa ra với hy vọng có thể ứng dụng thành công các mô hình học sâu hiện đại để xây dựng một hệ thống phân loại hoa quả tự động, đặc biệt là đối với các loại hoa quả phổ biến tại nước ta.

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ BỘ MÔN KỸ THUẬT MÁY TÍNH - VIỄN THƠNG BÁO CÁO MƠN HỌC MACHINE LEARNING PHÂN LOẠI TRÁI CÂY HƯ HAY TƯƠI NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN MÁY TÍNH GVHD: TS Trần Vũ Hồng BẢN NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN LỜI CẢM ƠN Để hoàn thành Báo cáo mơn học này, em xin tỏ lịng biết ơn sâu sắc đến thầy Trần Vũ Hoàng tận tình hướng dẫn suốt trình viết Báo cáo môn học Em chân thành cảm ơn quý thầy tận tình truyền đạt kiến thức ngày em học tập Với vốn kiến thức tiếp thu q trình học khơng tảng cho q trình nghiên cứu đề tài mà cịn hành trang quý báu để em bước vào đời cách vững tự tin Tuy nhiên trình nghiên cứu đề tài, kiến thức chuyên ngành hạn chế nên chúng em cịn nhiều thiếu sót tìm hiểu, đánh giá trình bày đề tài Rất mong quan tâm góp ý thầy để đề tài em hoàn chỉnh đầy đủ Chúng em xin chân thành cảm ơn Mục lục Chương Giới thiệu tổng quan 1.1 Giới thiệu đề tài .1 1.2 Mục tiêu 1.3 Thách thức .1 Những khó khăn tiêu biểu phải kể đến: .1 1.4 Giới hạn đề tài .4 Chương Mạng nơ-ron tích chập (CNN) 2.1 Giới thiệu mạng nơ-ron tích chập 2.2 Kiến trúc Mạng nơ-ron tích chập 2.3 Sử dụng CNN model Chương Datashet phương pháp đánh giá 11 3.1 Bộ datashet sử dụng .11 3.2 Môi trường huấn luyện 12 3.3 Phương pháp đánh giá 13 3.4 Đánh giá model 14 Chương Kết 16 4.1 Đồ thị Loss Accuracy .16 4.2 Kết 16 Chương Kết luận 20 TÀI LIỆU THAM KHẢO 21 Danh mục hình vẽ Hình 1: Vật thể đa dạng góc nhìn Hình 2: Vật thể đa dạng kích thước, hình dạng, số lượng Hình 3: Vật thể đa dạng chủng loại Hình 4: Vật thể bị nhiễu hạt .3 Hình 5: Vật thể bị lẫn vào Hình 6: Kiến trúc mạng tích chập Hình 7: Ví dụ lọc tích chập sử dụng ma trận điểm ảnh Hình 8: Trường hợp thêm/khơng thêm viền trắng vào ảnh tích chập Hình 9: Phương thức Avarage Pooling Max Pooling Hình 10: Model dự án Hình 11: Bộ datashet lấy từ trang Kaggle.com 10 Hình 12: Chia train tổng thành nhỏ train validation 10 Hình 13: Data train 11 Hình 14: Data validation 11 Hình 15: Data test .11 Hình 16: Notebook kaggle 12 Hình 17: Phương pháp Hold out 13 Hình 18: Đưa train test vào để train model .13 Hình 19: Kết sau train xong model .13 Hình 20: Đánh giá model test 14 Hình 21: Gọi lại model lần để đánh giá 14 Hình 22: Đồ thị Loss Accuracy 15 Hình 23: Kiểm tra ảnh tập test .16 Hình 24: Show 32 hình gọi tập test 17 Hình 25: Kết gọi hàm để đánh giá 36 hình tập test 18 Danh mục từ viết tắt STT Từ viết tắt Ý nghĩa CNN Convolutional Neural Network – Mạng nơ ron tích chập ReLU Rectified Linear Unit – Tinh chỉnh đơn vị tuyến tính Chương Giới thiệu tổng quan 1.1 Giới thiệu đề tài Hiện nay, nước ta nói riêng nước phát triển có nơng nghiệp ngành sản xuất chủ yếu, trình thu hoạch, phân loại đánh giá chất lượng loại sản phẩm nông nghiệp, đặc biệt loại hoa quả, chủ yếu phải thực phương pháp thủ công Đây cơng việc khơng q khó, tiêu tốn nhiều thời gian, công sức người rào cản mở rộng phát triển quy mô sản xuất nơng nghiệp Do đó, nhiều phương pháp tự động hóa cơng việc thu hoạch, nhận dạng đánh giá chất lượng hoa nghiên cứu đưa vào ứng dụng thực tế, sử dụng chủ yếu phương pháp Xử lý ảnh đơn Tuy nhiên, phương pháp chưa thực thỏa mãn yêu cầu khả nhận dạng số lượng lớn loại hoa với độ xác cao bị hạn chế đặc trưng toán phân loại hoa hư hay tốt: biến thiên hình dạng, màu sắc, chi tiết loại khó dự đốn trước… Trong thời gian gần đây, nhờ có phát triển mạnh mẽ khả tính tốn hệ máy tính đại bùng nổ liệu thông qua mạng lưới Internet trải rộng, ta chứng kiến nhiều đột phá lĩnh vực Học máy, đặc biệt lĩnh vực Thị giác máy tính Sự quay lại phát triển vượt bậc phương pháp Học sâu giúp Thị giác máy tính đạt thành tựu đáng kể lĩnh vực Nhận dạng ảnh, có tốn phân loại hoa hư hay tươi Đề tài nghiên cứu “Phân loại trái hư hay tươi.” đưa với hy vọng ứng dụng thành cơng mơ hình học sâu xây dựng hệ thống phân loại hoa tự động, đặc biệt loại hoa phổ biến nước ta 1.2 Mục tiêu Nhận diện trái hư hay khơng hư Độ xác cao Nhận diện phạm vi loại trái cây: Táo, Cam, Chuối 1.3 Thách thức Những khó khăn tiêu biểu phải kể đến: - Sự đa dạng điểm nhìn – Viewpoint: Cùng vật thể có nhiều vị trí góc nhìn khác nhau, dẫn đến hình ảnh thu vật thể khơng giống Việc huấn luyện để máy tính hiểu điều thực thách thức khó khăn Hình 1: Vật thể đa dạng góc nhìn - Sự đa dạng kích thước, số lượng, hình dạng: Các ảnh khơng có cách thể trường thơng tin kích thước, số lượng, hình dạng vật thể đời thực, máy tính tính tốn tỉ lệ tương đối vật thể so với ảnh cách đếm theo số lượng điểm ảnh vật thể chiếm ảnh Hình 2: Vật thể đa dạng kích thước, hình dạng, số lượng Hình 3: Vật thể đa dạng chủng loại - Vật thể bị nhiễu hạt: Trong ảnh, vật thể bị nhiễu hạt chấm đen nhỏ, ảnh bị hư bi nhiễu điều làm cho kết có phần bị sai sót Hình 4: Vật thể bị nhiễu hạt - Sự lộn xộn phức tạp nền: Trong nhiều trường hợp, vật thể cần nhận dạng bị lẫn gần hoàn toàn vào ảnh, lẫn lộn màu sắc, họa tiết vật thể khiến cho việc nhận dạng trở nên vơ khó khăn, kể với người Hình 5: Vật thể bị lẫn vào 1.4 Giới hạn đề tài - Vì đề mục tiêu nhóm đưa phân biệt trái hư hay tốt, loại trái cây: Táo, cam, chuối, nên mơ hình nhóm thực phân loại trái hư hay tốt, không nhận biết loại trái nào, hình ảnh tách riêng trái hình khơng lẫn lộn nhiều loại trái cây, hình ảnh có trái hư hết tốt hết không phân biệt trái hư trái tốt Hình 8: Trường hợp thêm/khơng thêm viền trắng vào ảnh tích chập Như vậy, sau đưa ảnh đầu vào cho lớp Tích chập ta nhận kết đầu loạt ảnh tương ứng với lọc sử dụng để thực phép tích chập Các trọng số lọc khởi tạo ngẫu nhiên lần cải thiện dần xuyên suốt trình huấn luyện - Lớp kích hoạt phi tuyến ReLU: Lớp xây dựng với ý nghĩa đảm bảo tính phi tuyến mơ hình huấn luyện sau thực loạt phép tính tốn tuyến tính qua lớp Tích chập Lớp Kích hoạt phi tuyến nói chung sử dụng hàm kích hoạt phi tuyến ReLU sigmoid, tanh… để giới hạn phạm vi biên độ cho phép giá trị đầu Trong số hàm kích hoạt này, hàm ReLU chọn cài đặt đơn giản, tốc độ xử lý nhanh mà đảm bảo tính tốn hiệu Cụ thể, phép tính tốn hàm ReLU đơn giản chuyển tất giá trị âm thành giá trị f ( x )=max ( , x ) (2) Thơng thường, lớp ReLU áp dụng phía sau lớp Tích chập, với đầu ảnh có kích thước giống với ảnh đầu vào, giá trị điểm ảnh hoàn toàn tương tự trừ giá trị âm bị loại bỏ - Lớp lấy mẫu: Một thành phần tính tốn khác mạng CNN lấy mẫu (Pooling), thường đặt sau lớp Tích chập lớp ReLU để làm giảm kích thước kích thước ảnh đầu giữ thông tin quan trọng ảnh đầu vào Việc giảm kích thước liệu có tác dụng làm giảm số lượng tham số tăng hiệu tính tốn Lớp lấy mẫu sử dụng cửa sổ trượt để quét toàn vùng ảnh tương tự lớp Tích chập, thực phép lấy mẫu thay phép tích chập – tức ta chọn lưu lại giá trị đại diện cho tồn thơng tin vùng ảnh Hình thể phương thức lấy mẫu thường sử dụng nay, Max Pooling (lấy giá trị điểm ảnh lớn nhất) Avarage Pooling (lấy giá trị trung bình điểm ảnh vùng ảnh cục bộ) Hình 9: Phương thức Avarage Pooling Max Pooling Như vậy, với ảnh đầu vào đưa qua lấy mẫu ta thu ảnh đầu tương ứng, có kích thước giảm xuống đáng kể giữ đặc trưng cần thiết cho q trình tính tốn sau - Lớp kết nối đầy đủ: Lớp kết nối đầy đủ thiết kế hoàn toàn tương tự mạng nơ-ron truyền thống, tức tất điểm ảnh kết nối đầy đủ với node lớp So với mạng nơ-ron truyền thống, ảnh đầu vào lớp có kích thước giảm bớt nhiều, đồng thời đảm bảo thông tin quan trọng cho việc nhận dạng Do vậy, việc tính tốn nhận dạng sử dụng mơ hình truyền thẳng khơng cịn phức tạp tốn nhiều thời gian mạng nơ ron truyền thống 2.3 Sử dụng CNN model Hình 10 thể model có sử dụng lớp layer để trích xuất đặc trưng, lớp Fully Connected Layer để kết nối đặc trưng lại cho kết Đối với Pooling layer, có hyper-parameters người dùng thiết lập lúc đầu Filter size, Stride Filter type (Max Avg Pooling) mà khơng có parameters học q trình huấn luyện Do đó, nhiều trường hợp thường coi Convolutional Layer + Pooling layer Layer Ở lớp layer ta cho liệu đầu vào qua lớp Convolution để lọc sau kích hoạt phi tuyến ReLu Sau tiến hành gọi hàm BatchNormalization() để chuẩn hóa liệu đầu vào Tiếp tục gọi hàm SeparableConv2D() với đầu vào liệu qua hàm Conv2D trước đó, tiếp tục kích hoạt hàm tuyến ReLu Mục đích việc sử dụng Convolution để phát patterns liệu đầu vào edge, objects, shape ….Sau Convolution tiến hành gọi MaxPooling2D để làm giảm kích thước kích thước ảnh đầu giữ thông tin quan trọng ảnh đầu vào Việc giảm kích thước liệu có tác dụng làm giảm số lượng tham số tăng hiệu tính tốn Tiếp tiến hành BacthNomalization() để chuẩn hóa Sau hoàn thành bước ta tiến hành gọi hàm Dropout(0.3) Hàm thực chức bỏ 30% kết thu lấy 70% kết Ở lớp layer ta thực tương tự layer 1, với liệu đầu vào 70% kết lớp layer Tiến hành SeparableConv2D(), tiếp tục kích hoạt hàm tuyến ReLu Mục đích việc sử dụng Convolution để phát patterns liệu đầu vào edge, objects, shape ….Sau Convolution tiến hành gọi Tiếp tiến hành BacthNomalization() để chuẩn hóa Sau gọi hàm MaxPooling2D để làm giảm kích thước kích thước ảnh đầu giữ thông tin quan trọng ảnh đầu vào Việc giảm kích thước liệu có tác dụng làm giảm số lượng tham số tăng hiệu tính tốn Sau hoàn thành bước ta tiến hành gọi hàm Dropout(0.4) Hàm thực chức bỏ 40% kết thu lấy 60% kết 70% layer Ở lớp layer ta thực tương tự layer 2, với liệu đầu vào 60% kết lớp layer Tiến hành SeparableConv2D(), tiếp tục kích hoạt hàm tuyến ReLu Mục đích việc sử dụng Convolution để phát patterns liệu đầu vào edge, objects, shape ….Sau Convolution tiến hành gọi Tiếp tiến hành BacthNomalization() để chuẩn hóa Sau gọi hàm MaxPooling2D để làm giảm kích thước kích thước ảnh đầu giữ thông tin quan trọng ảnh đầu vào Việc giảm kích thước liệu có tác dụng làm giảm số lượng tham số tăng hiệu tính tốn Sau hoàn thành bước ta tiến hành gọi hàm Dropout(0.5) Hàm thực chức bỏ 50% kết thu lấy 50% kết 60% layer Ở lớp Fully Connected Layer ta tiến hành gọi hàm Flatten()Trước kết nối với Fully connected layer, cần phải thực Flatten để chuyển liệu từ dạng 3-dimension thành 2-dimension Tiến hành gọi hàm Dense(128, activation='relu', kernel_initializer='he_uniform') để kết nối đặc trưng trích xuất lớp layer thành 128 đặc trưng Sau lại gọi hàm Dropout(0.3) để bỏ 30% 128 đặc trưng kết nối, lấy 70% 128 đặc trưng Sau gọi hàm Dense(1, activation='sigmoid') để kết nối đặc trưng trước thành đặc trưng kết model hư hay tốt Với activation='sigmoid' trả giá trị Hình 10: Model dự án 10 Chương Datashet phương pháp đánh giá 3.1 Bộ datashet sử dụng Nhóm sử dụng datashet lấy từ trang kaggle.com Bộ datashet nhóm sử dụng hình 11 gồm train, test Bộ Train có chưa mục nhỏ gồm loại trái cam, táo, chuối với đặc điểm hư hay tốt Bộ Test có chưa mục nhỏ gồm loại trái cam, táo, chuối với đặc điểm hư hay tốt Hình 11: Bộ datashet lấy từ trang Kaggle.com Trong đề tài nhóm chia datashet train thành nhỏ train chiếm 80% validation chiếm 20% Từ datashet có bộ: train, test, validation Hình 12: Chia train tổng thành nhỏ train validation Bộ train gồm 4921 ảnh trái táo, cam, chuối tươi 3799 ảnh trái táo, cam, chuối hư 11 Hình 13: Data train Bộ validation gồm 1240 ảnh trái táo, cam, chuối tươi 941 ảnh trái táo, cam, chuối hư Hình 14: Data validation Bộ test gồm 1534 ảnh trái táo, cam, chuối tươi 1164 ảnh trái táo, cam, chuối hư Hình 15: Data test 3.2 Mơi trường huấn luyện Vì lý phần cứng bị hạn chế, liệu nhiều, model khác nặng nên việc train 12 laptop khó khăn Từ nhóm định sử dụng notebook kaggle hỗ trợ Từ hình 16 ta thấy notebook kaggle cho mượn máy tính ảo vịng giờ, có 19.6 GB Disk, 16GB RAM, train model CPU chạy với hiệu suất 350% train vịng Trong q trình train CPU laptop hoạt động 5% CPU tính việc máy tính có cấu hình yếu hồn tồn chạy model mà khơng cần lo lắng Hình 16: Notebook kaggle 3.3 Phương pháp đánh giá  Hold-out Phương pháp hold out phương pháp phân chia ngẫu nhiên tập liệu thành tập liệu độc lập tập liệu huấn luyện tập liệu kiểm tra mơ hình Mục đích phương pháp Hold out kiểm tra độ hiệu mơ hình sử dụng nhiều tập liệu khác Cụ thể phương pháp Hold out có tập liệu - Training set: liệu phục vụ xây dựng mơ hình, xác định thuật toán, biến liệu phù hợp - Validation set: liệu sử dụng để đánh giá hiệu suất mơ hình xây dựng giai đoạn huấn luyện, hỗ trợ thử nghiệm để tinh chỉnh tham số mơ hình chọn mơ hình hoạt động tốt Khơng phải thuật tốn phân loại cần Validation set nên phương pháp Hold out thông thường dừng tập liệu training test data mà - Test set (unseen set): liệu sử dụng để đánh giá độ hiệu mơ hình mức độ xác việc phân loại liệu (không chứa nhãn phân loại, giá trị biến mục tiêu phân loại bị che đi) - Thông thường tỉ lệ phân chia cho training 60%, validation 20%, test 20% Ưu điểm Hold out nhanh chóng, đơn giản linh hoạt 13 Hình 17: Phương pháp Hold out 3.4 Đánh giá model Quá trình train model Đưa train test vào để train model Với lần batch size 20, chia liệu thành 50 epochs để train Trong q trình train có gọi hàm kiểm tra để xem giá trị Loss Accuracy có thay đổi nhiều khơng khơng thay đổi nhiều vòng lặp chứng tỏ model hội tụ ta cho dừng sớm để tiết kiệm tài nguyên Hình 18: Đưa train test vào để train model Hình 19: Kết sau train xong model Tiến hành kiểm chứng model cách đưa test vào để đánh giá model Từ hình 20 ta thấy ta đưa test vào để test kết cho thấy giá trị Loss = 0.034 thấp giá trị Accuracy = 0.988 (98.8%) Điều chứng tỏ model hoạt động tốt có độ xác cao 14 ... đưa phân biệt trái hư hay tốt, loại trái cây: Táo, cam, chuối, nên mơ hình nhóm thực phân loại trái hư hay tốt, không nhận biết loại trái nào, hình ảnh tách riêng trái hình khơng lẫn lộn nhiều loại. .. triển vượt bậc phương pháp Học sâu giúp Thị giác máy tính đạt thành tựu đáng kể lĩnh vực Nhận dạng ảnh, có tốn phân loại hoa hư hay tươi Đề tài nghiên cứu ? ?Phân loại trái hư hay tươi. ” đưa với... học sâu xây dựng hệ thống phân loại hoa tự động, đặc biệt loại hoa phổ biến nước ta 1.2 Mục tiêu Nhận diện trái hư hay khơng hư Độ xác cao Nhận diện phạm vi loại trái cây: Táo, Cam, Chuối 1.3

Ngày đăng: 31/01/2023, 10:01

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

TÀI LIỆU LIÊN QUAN

w