1. Trang chủ
  2. » Công Nghệ Thông Tin

NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP

64 87 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

Tiêu đề Nhận Diện Bệnh Trên Lá Dựa Trên Mạng Neuron Tích Chập
Tác giả Ngô Tấn Đăng, Phạm Trần Đăng Khoa, Hồ Sĩ Quỳnh Đức
Người hướng dẫn TS. Nguyễn Thị Hải Bình
Trường học Trường Đại Học Công Nghệ Tp. Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại đồ án tốt nghiệp
Năm xuất bản 2022
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 64
Dung lượng 2,21 MB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN (17)
    • 1.1 Lý do chọn đề tài (17)
    • 1.2 Mục tiêu nghiên cứu đề tài (17)
    • 1.3 Đối tượng nghiên cứu (18)
    • 1.4 Phạm vi nghiên cứu (18)
    • 1.5 Phương pháp nghiên cứu (18)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (19)
    • 2.1 Deep Learning (19)
      • 2.1.1 Deep Learning là gì? (19)
      • 2.1.2 Cách thức hoạt động (20)
    • 2.2 Mô hình CNN – Convolutional Neural Network (21)
      • 2.2.1 Convolutional là gì? (21)
      • 2.2.2 Cấu trúc mạng CNN (22)
      • 2.2.3 Hình ảnh đầu vào (24)
      • 2.2.4 Lớp tích chập (24)
      • 2.2.5 Lớp gộp (Pooling layer) (27)
    • 2.3 Tìm hiểu về các thư viện sử dụng trong đồ án (28)
      • 2.3.1 Tensorflow là gì? (28)
      • 2.3.2 Cách thức hoạt động của tensorflow (29)
      • 2.3.3 Giới thiệu về keras (30)
      • 2.3.4 Keras với linear regression (31)
      • 2.3.5 Keras với logistic regression (31)
    • 2.4 Nhận diện và phân loại hình ảnh (32)
      • 2.4.1 Khái niệm về nhận diện (32)
      • 2.4.2 Phân loại hình ảnh là gì? (32)
      • 2.4.3 Các kỹ thuật phân loại hình ảnh (33)
        • 2.4.3.1 Phân loại có giám sát (33)
        • 2.4.3.2 Phân loại nhãn đơn (33)
        • 2.4.3.3 Phân loại đa nhãn (34)
        • 2.4.3.4 Phân loại video (34)
        • 2.4.3.5 Phân loại 3D (34)
      • 2.4.4 Cách thức hoạt động (35)
  • CHƯƠNG 3. BÀI TOÁN NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG (36)
    • 3.1 Mô tả bài toán (36)
    • 3.2 Phương pháp nhận diện bệnh trên lá dựa trên mạng neuron tích chập (CNN) (37)
      • 3.2.1 Kiến trúc mạng neuron tích chập sâu AlexNet (38)
        • 3.2.1.1 Giới thiệu về AlexNet (38)
        • 3.2.1.2 Kiến trúc mạng AlexNet (39)
      • 3.2.2 Kiến trúc mạng sử dụng khối VGG (40)
        • 3.2.2.1 Giới thiệu về mạng VGG (40)
        • 3.2.2.2 Kiến trúc về mạng VGG16 (40)
    • 3.3 Overfiting là gì? (42)
    • 3.4 Data Augmentation (42)
    • 3.5 Một số công thức sử dụng trong đồ án (43)
      • 3.5.1 Công thức tính accuracy function (43)
      • 3.5.1 Công thức tính loss function (44)
  • CHƯƠNG 4. THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ (45)
    • 4.1 Công cụ và môi trường thực hiện (45)
    • 4.2 Dữ liệu chuẩn bị (dataset) (45)
    • 4.3 Tăng cường dữ liệu bằng data augmentation (47)
    • 4.4 Mô hình train trong phần mềm (51)
    • 4.5 Training (52)
    • 4.6 Xuất kết quả training (53)
    • 4.7 Kết quả thực nghiệm (54)
    • 4.8 So sánh độ chính xác mô hình với mô hình nghiên cứu khác (58)
    • 4.9. So sánh kết quả với cùng mô hình với công trình nghiên cứu khác (59)
  • CHƯƠNG 5: KẾT LUẬN VÀ KIẾN NGHỊ (61)
    • 5.1 Kết luận chung (61)
      • 5.1.1 Ưu điểm (61)
      • 5.1.2 Nhược điểm (61)
    • 5.2 Kiến nghị (61)
  • TÀI LIỆU THAM KHẢO (63)

Nội dung

Nhận diện bệnh trên lá dựa trên công nghệ mạng nơ ron tích chập. Nhận diện bệnh của lá thông qua hình ảnh.

TỔNG QUAN

Lý do chọn đề tài

Việt Nam, với nền nông nghiệp phát triển, đóng vai trò quan trọng trong nền kinh tế Tuy nhiên, bệnh trên lá cây là vấn đề phổ biến mà nông dân phải đối mặt, ảnh hưởng tiêu cực đến sự phát triển và năng suất của cây trồng.

Trên thế giới, nhiều nghiên cứu đã được thực hiện về việc nhận diện sâu bệnh trên cà chua và dưa chuột bằng kỹ thuật xử lý ảnh, đạt được kết quả khả quan Tuy nhiên, các hệ thống nhận dạng sâu bệnh chủ yếu chỉ được thử nghiệm trong môi trường nhà kính và chưa được áp dụng rộng rãi trong thực tế ngoài trời.

Nhận diện bệnh trên lá cây thông qua xử lý ảnh là phương pháp phân tích màu sắc, hình dạng và kích thước của lá cây bị vàng để xác định nguyên nhân gây bệnh và đưa ra biện pháp khắc phục Nghiên cứu này giúp phân biệt lá cây có bệnh và không có bệnh, đồng thời hệ thống nhận dạng có khả năng phát hiện bệnh tổng quát khi được cung cấp dữ liệu về bệnh lá cây Mặc dù nông nghiệp Việt Nam đang phát triển mạnh, nhưng hiện tại có rất ít công bố về hệ thống phát hiện và nhận diện bệnh trên lá cây trồng Do đó, nhóm nghiên cứu đã chọn đề tài “Nhận diện bệnh trên lá dựa trên mạng neuron tích chập” nhằm ứng dụng các biểu hiện của lá cây từ ảnh chụp, mang lại ý nghĩa khoa học và thực tiễn cao.

Mục tiêu nghiên cứu đề tài

Giải quyết bài toán nhận dạng hình ảnh bằng mô hình mạng neuron tích chập (CNN)

Tìm hiểu các loại bệnh trên lá cây và nhận diện chúng qua kỹ thuật xử lý ảnh Thực hiện phân tích, tính toán và so sánh dữ liệu bệnh lá để phát triển ứng dụng nhận diện, giúp người dùng nhận biết và khắc phục bệnh trên lá cây hiệu quả.

Nghiên cứu và đánh giá hệ thống mạng, vẽ sơ đồ mô tả thông qua thư viện Matplotlib

Phân tích và xử lý ảnh tự nhiên giúp nhận diện bệnh trên lá cây thông qua dataset đã thu thập Đối tượng phục vụ bao gồm nông dân và những người có nhu cầu tìm hiểu, nghiên cứu về các loại bệnh trên lá cây.

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

Mạng neuron tích chập (Convolutional Neural Network – CNN)

Kiến trúc mạng AlexNet, VGG16

Thư viện Matplotlib – dùng để mô tả kết quả training.

Phạm vi nghiên cứu

Đồ án được thực hiện dựa trên kiến thức từ các môn học và tài liệu tham khảo bên ngoài, nhằm nâng cao chất lượng và đáp ứng mục tiêu đề ra Nội dung chính của đồ án là nghiên cứu các loại bệnh trên cây, từ đó xây dựng mô hình cơ sở dữ liệu và thiết kế giao diện tương tác người dùng.

Nghiên cứu về cách hoạt động của nhận diện hình ảnh.

Phương pháp nghiên cứu

Phương pháp nhận dạng hình ảnh được xây dựng dựa trên mô hình kiến trúc mạng neuron tích chập (CNN)

Phương pháp nghiên cứu trong đồ án kết hợp giữa lý thuyết và thực nghiệm, bao gồm các bước quan trọng như thu thập, phân tích và tiền xử lý dữ liệu Tiếp theo, nghiên cứu và thử nghiệm được thực hiện trên các mô hình với tập dữ liệu đã thu thập Sau đó, các mô hình được so sánh và đánh giá để xác định hiệu quả Cuối cùng, giao diện và ứng dụng được xây dựng nhằm áp dụng vào thực tế.

CƠ SỞ LÝ THUYẾT

Deep Learning

Deep Learning, một nhánh của Machine Learning, bắt nguồn từ thuật toán Neural Network Nó sử dụng một tập hợp các thuật toán để mô hình hóa dữ liệu ở mức độ trừu tượng cao thông qua nhiều lớp xử lý phức tạp và các biến đổi phi tuyến.

Deep Learning hoạt động tương tự như cách chúng ta học hỏi từ kinh nghiệm, bằng cách thực hiện một nhiệm vụ nhiều lần và tinh chỉnh nó để cải thiện kết quả Công nghệ này kết nối dữ liệu giữa các tế bào thần kinh nhân tạo và điều chỉnh chúng dựa trên dữ liệu mẫu, từ đó nâng cao hiệu suất của các mô hình học máy.

Mạng neuron tích chập có khả năng mở rộng kích thước dữ liệu khi thêm nhiều tế bào thần kinh, cho phép hệ thống học hỏi ở nhiều cấp độ trừu tượng Điều này giúp nó học các hàm ánh xạ phức tạp mà không cần phụ thuộc vào thuật toán cụ thể Tuy nhiên, cơ chế hoạt động bên trong một mạng lưới thần kinh nhân tạo vẫn chưa được hiểu rõ, vì vậy Deep Learning thường được coi là một "hộp đen".

Deep Learning đã cách mạng hóa khả năng của máy tính, cho phép thực hiện những nhiệm vụ tưởng chừng không thể cách đây 15 năm, như phân loại hàng ngàn vật thể trong ảnh, tự động tạo chú thích, bắt chước giọng nói và chữ viết của con người, giao tiếp tự nhiên và sáng tác văn, phim, ảnh, âm nhạc Là một nhánh của Machine Learning, Deep Learning bao gồm nhiều thuật toán phức tạp, mỗi thuật toán được thiết kế cho các ứng dụng cụ thể tùy thuộc vào bài toán cần giải quyết.

• Decision Tree and Random Forest

Thuật toán Deep Learning hoạt động bằng cách xử lý thông tin qua nhiều lớp, tương tự như quy trình học của con người Các lớp đầu tiên tập trung vào việc nắm bắt các khái niệm cụ thể, trong khi các lớp sâu hơn sử dụng kiến thức đã học để phân tích các khái niệm trừu tượng Quá trình này được gọi là trích xuất đặc trưng Để hiểu rõ hơn về Deep Learning, chúng ta sẽ xem xét cách nó hoạt động thông qua một số ví dụ, bắt đầu với việc nhận diện hình vuông.

Để xác định hình có phải là hình vuông hay không, trước tiên bạn cần kiểm tra xem hình đó có 4 cạnh Nếu đúng, tiếp theo bạn sẽ kiểm tra xem 4 cạnh này có kết nối với nhau thành một hình tứ giác hay không Nếu hình tứ giác được tạo thành, bạn sẽ kiểm tra xem các cạnh có vuông góc với nhau và có kích thước bằng nhau hay không Nếu tất cả các điều kiện này đều thỏa mãn, thì hình đó chính là hình vuông.

Deep Learning cũng hoạt động tương tự như vậy nhưng ở quy mô lớn hơn

Mô hình CNN – Convolutional Neural Network

Mạng neuron tích chập (CNN) là một mô hình Deep Learning tiên tiến, giúp xây dựng các hệ thống thông minh với độ chính xác cao, đặc biệt trong nhận dạng đối tượng trong ảnh CNN có khả năng tiếp nhận hình ảnh đầu vào và gán trọng số cùng độ lệch cho các đặc trưng khác nhau, cho phép phân biệt các đối tượng trong hình ảnh So với các thuật toán phân loại khác, CNN yêu cầu ít công việc tiền xử lý hơn Trong khi các bộ lọc truyền thống được thiết kế bằng tay, CNN có khả năng tự học và chọn ra các bộ lọc tối ưu nhất trong quá trình huấn luyện.

Mô hình CNN có lịch sử phát triển lâu dài, bắt đầu từ năm 1980 khi một nhà khoa học máy tính Nhật Bản giới thiệu kiến trúc gốc Đến năm 1998, Yan LeCun đã huấn luyện mô hình CNN đầu tiên với thuật toán backpropagation cho bài toán nhận dạng chữ viết tay Tuy nhiên, bước đột phá thực sự diễn ra vào năm 2012 khi Alex Krizhevsky, một nhà khoa học máy tính người Ukraine, phát triển mô hình CNN mang tên AlexNet Sử dụng GPU để tăng tốc quá trình huấn luyện, AlexNet đã giành vị trí top 1 trong cuộc thi Computer Vision của ImageNet, giảm độ lỗi phân lớp top 5 hơn 10% so với các mô hình truyền thống, từ đó khơi dậy một làn sóng mạnh mẽ trong việc áp dụng mạng tích chập sâu trong lĩnh vực Computer Vision.

Cửa sổ trượt trên ma trận cho phép các lớp tích chập tự động điều chỉnh các tham số đã học, nhằm trích xuất thông tin chính xác mà không cần phải thực hiện quá trình chọn lọc thủ công.

Ma trận bên trái trong hình ảnh ví dụ là một hình ảnh trắng đen đã được số hóa, có kích thước 5×5 Mỗi điểm ảnh trong ma trận này có giá trị 1 hoặc 0, tương ứng với giao điểm của dòng và cột.

Tích chập, hay còn gọi là convolution, là quá trình nhân từng phần tử trong ma trận 3 Cửa sổ trượt (sliding window) là một ma trận nhỏ, ví dụ như kích thước 3×3, được sử dụng trong các phép toán này.

Kết quả được một ma trận gọi là Convolved feature được sinh ra từ việc nhận ma trận bộ lọc với ma trận ảnh 5×5 bên trái

Mạng CNN bao gồm nhiều lớp tích chập chồng lên nhau, sử dụng các hàm kích hoạt phi tuyến như ReLU để kích hoạt trọng số Sau khi qua các hàm kích hoạt, mỗi lớp sẽ tạo ra thông tin trừu tượng hơn cho các lớp tiếp theo Trong mô hình mạng truyền ngược, mỗi neuron đầu vào kết nối với mỗi neuron đầu ra trong các lớp tiếp theo, giúp cải thiện khả năng học và dự đoán của mạng.

Mô hình mạng kết nối đầy đủ, hay còn gọi là mạng toàn vẹn, khác với mô hình CNNs, nơi các lớp được liên kết thông qua cơ chế tích chập.

Lớp tiếp theo trong mạng nơ-ron tích chập được tạo ra từ kết quả của lớp trước, cho phép hình thành các kết nối cục bộ Mỗi neuron ở lớp kế tiếp được hình thành từ kết quả của bộ lọc áp dụng lên một vùng ảnh cục bộ của neuron trước đó.

Mỗi lớp trong mạng nơ-ron sử dụng hàng trăm đến hàng nghìn bộ lọc khác nhau để xử lý dữ liệu và kết hợp kết quả Bên cạnh đó, các lớp pooling hoặc subsampling cũng được áp dụng để chắt lọc thông tin hữu ích, giúp loại bỏ nhiễu và cải thiện chất lượng dữ liệu đầu ra.

Trong quá trình huấn luyện mạng nơ-ron tích chập (CNN), mạng tự động học các giá trị qua các lớp bộ lọc dựa trên cách thức thực hiện Cụ thể, trong tác vụ phân loại ảnh, CNN sẽ tìm ra các thông số tối ưu cho các bộ lọc theo thứ tự từ pixel thô, cạnh, hình dạng, khuôn mặt đến các đặc trưng cao cấp Lớp cuối cùng được sử dụng để phân loại ảnh.

Trong mô hình CNN, hai khía cạnh quan trọng là tính bất biến (Location Invariance) và tính kết hợp (Compositionality) Khi một đối tượng được chiếu từ nhiều góc độ khác nhau như dịch chuyển, quay hay co giãn, độ chính xác của thuật toán có thể bị ảnh hưởng đáng kể Lớp tổng hợp (Pooling layer) giúp đạt được tính bất biến đối với các phép biến đổi này Đồng thời, tính kết hợp cục bộ cho phép tạo ra các cấp độ biểu diễn thông tin từ thấp đến cao và trừu tượng hơn thông qua quá trình tích chập từ các bộ lọc Chính vì vậy, CNNs mang lại độ chính xác cao trong nhận diện đối tượng, tương tự như cách mà con người nhận biết các vật thể trong tự nhiên.

Mạng CNN sử dụng 3 ý tưởng cơ bản:

• Các trường hợp tiếp nhận cục bộ (local receptive field)

• Trọng số chia sẻ (shared weights)

Hình 2.4 minh họa một hình ảnh RGB với kích thước 4x4x3, được phân tách thành ba kênh màu: Đỏ, Xanh lục và Xanh dương Ngoài RGB, còn có nhiều không gian màu khác cho hình ảnh như Grayscale, HSV và CMYK.

Chi phí tính toán sẽ tăng cao khi xử lý hình ảnh có kích thước lớn như 8K (7680 pixel × 4320 pixel) Neuron tích chập đóng vai trò quan trọng trong việc giảm kích thước hình ảnh thành dạng dễ xử lý mà vẫn giữ lại các đặc trưng quan trọng, giúp cải thiện độ chính xác trong dự đoán Điều này cực kỳ cần thiết khi thiết kế kiến trúc học máy không chỉ hiệu quả trong việc học các đặc trưng mà còn tương thích với các bộ dữ liệu lớn.

Hình 2.5 Tích chập một hình ảnh 5x5x1 với một bộ lọc 3x3x1 để có được một hình ảnh chập 3x3x1 Ở hình 2.5, phần màu xanh lục là hình ảnh đầu vào 5×5×1

Bộ lọc (Kernel/Filter) K, được thể hiện bằng màu vàng, là phần tử quan trọng trong việc thực hiện thao tác tích chập ở lớp tích chập đầu tiên Chúng ta lựa chọn K dưới dạng ma trận 3×3×1.

Hình 2.6 Bộ lọc Kernel / Filter

Bộ lọc di chuyển 9 lần do độ dài dải trượt (Stride Length) bằng 1, tức là không bị trượt Mỗi lần di chuyển, bộ lọc K sẽ thực hiện phép nhân ma trận với tỷ lệ P của bức ảnh tại vị trí mà bộ lọc đang đi qua.

Hình 2.7 Cách di chuyển của bộ lọc

Tìm hiểu về các thư viện sử dụng trong đồ án

Trong thập kỷ qua, sự bùng nổ của Trí Tuệ Nhân Tạo (A.I.) đã thúc đẩy sự phát triển mạnh mẽ của học máy và học sâu Hiện nay, TensorFlow là thư viện mã nguồn mở nổi tiếng nhất thế giới cho học máy, được phát triển bởi các nhà nghiên cứu của Google Sự hỗ trợ mạnh mẽ cho các phép toán học trong TensorFlow đã giúp việc giải quyết các bài toán học máy và học sâu trở nên đơn giản, nhanh chóng và tiện lợi hơn.

TensorFlow cung cấp các hàm dựng sẵn cho phép xây dựng nhiều mạng neuron, đồng thời hỗ trợ tính toán song song trên nhiều máy tính, CPU và GPU Ngoài ra, nó còn cho phép tạo ra các đồ thị luồng dữ liệu (dataflow graph) để phát triển các mô hình hiệu quả.

Kiến trúc TensorFlow hoạt động được chia thành 3 phần:

• Tiền xử lý dữ liệu

• Train và ước tính model

Tensor trong Tensorflow đại diện cho các loại dữ liệu, với mỗi thuộc tính mang những đặc điểm và tính năng riêng biệt Dưới đây là các thuộc tính cơ bản của tensor.

Trong các cấu trúc dữ liệu, thuộc tính bậc thể hiện sự phân cấp bậc và là cơ sở để phân loại các tensor Mỗi tensor được phân bậc sẽ có tên gọi riêng: bậc 0 là Scalar, bậc 1 là Vector, bậc 2 là Matrix, và các bậc cao hơn được gọi là n-tensor.

• Shape: Đây là thuộc tính chiều của tensor các cấu trúc dữ liệu

The type of a tensor refers to the unique data type of all its elements, ensuring a consistent data structure Each tensor can only have one type, which applies uniformly to every element within it.

2.3.2 Cách thức hoạt động của tensorflow

TensorFlow cho phép lập trình viên xây dựng sơ đồ luồng dữ liệu, mô tả cách dữ liệu di chuyển qua biểu đồ Mỗi nút trong đồ thị biểu thị một hoạt động toán học, trong khi các kết nối thể hiện mảng dữ liệu đa chiều, hay còn gọi là 'tensor'.

TensorFlow hỗ trợ lập trình viên thông qua ngôn ngữ Python, nổi bật với tính dễ học và khả năng làm việc hiệu quả Python cung cấp nhiều phương pháp tiện lợi để hiểu cách các trừu tượng cấp cao có thể kết hợp với nhau Hơn nữa, các ứng dụng TensorFlow cũng được xây dựng trên nền tảng Python.

Các hoạt động toán học trong TensorFlow không được thực hiện trực tiếp bằng Python, mà thông qua các thư viện hiệu suất cao được viết bằng C++ Python chỉ đóng vai trò điều hướng và kết nối các phần của hệ thống TensorFlow có thể chạy trên nhiều nền tảng khác nhau, bao gồm máy tính cục bộ, cụm đám mây, thiết bị iOS và Android, cũng như trên CPU và GPU Đặc biệt, khi sử dụng dịch vụ đám mây của Google, người dùng có thể tận dụng đơn vị xử lý TensorFlow (TPU) để cải thiện hiệu suất Các mô hình được phát triển bằng TensorFlow có thể được triển khai trên hầu hết các thiết bị để phục vụ cho việc dự đoán Phiên bản TensorFlow 2.0, ra mắt vào tháng 10 năm 2019, đã mang đến nhiều cải tiến cho framework này.

Để làm việc hiệu quả hơn với TensorFlow 2.0, bạn có thể áp dụng 16 cách dựa trên phản hồi của người dùng, chẳng hạn như sử dụng các API Keras đơn giản cho việc huấn luyện mô hình Việc triển khai train phân tán trở nên dễ dàng hơn nhờ vào API mới và hỗ trợ cho TensorFlow Lite, cho phép triển khai mô hình trên nhiều nền tảng khác nhau Tuy nhiên, nếu bạn đã viết code trên các phiên bản trước của TensorFlow, bạn sẽ cần phải viết lại một phần hoặc thậm chí là khá nhiều để tận dụng tối đa các tính năng mới của TensorFlow 2.0.

Các thư viện học sâu chủ yếu được phát triển và hỗ trợ bởi các công ty công nghệ lớn như Google với Keras và TensorFlow, Facebook với Caffe2 và Pytorch, cùng Microsoft với CNTK Ngoài ra, Amazon cũng phát triển Mxnet, trong khi Microsoft và Amazon hợp tác xây dựng Gluon, một phiên bản tương tự như Keras.

Hình 2.12 trình bày các thư viện phổ biến nhất hiện nay Dưới đây là một số thống kê giúp bạn có cái nhìn tổng quan về mức độ sử dụng của các thư viện này.

Keras là một thư viện deep learning ‘high-level’ với backend có thể là TensorFlow, CNTK hoặc Theano, nổi bật với cú pháp đơn giản hơn nhiều so với TensorFlow Để giới thiệu về các mô hình deep learning, Keras kết hợp với TensorFlow là sự lựa chọn lý tưởng Dưới đây là những lý do nên sử dụng Keras để bắt đầu.

• Keras ưu tiên trải nghiệm của người lập trình

• Keras đã được sử dụng rộng rãi trong doanh nghiệp và cộng đồng nghiên cứu

• Keras giúp dễ dàng biến các thiết kế thành sản phẩm

• Keras hỗ trợ huấn luyện trên nhiều GPU phân tán

Keras hỗ trợ nhiều backend engines, cho phép người dùng không bị giới hạn trong một hệ sinh thái duy nhất Thông thường, khi sử dụng Keras, chúng ta sẽ áp dụng tf.keras.Sequential để xây dựng mô hình bằng cách thêm từng lớp một cách tuần tự.

Trong ví dụ đơn giản này, dữ liệu đầu vào X có 2 chiều, và đầu ra y được tính theo công thức y = 2*X[0] + 3*X[1] + 4 + e, trong đó e là nhiễu tuân theo phân phối chuẩn với kỳ vọng bằng 0 và phương sai bằng 0.2.

Sequential([]) biểu thị việc xây dựng các lớp theo thứ tự trong danh sách Phần tử đầu tiên đại diện cho kết nối giữa lớp đầu vào và lớp tiếp theo, trong khi các phần tử tiếp theo thể hiện kết nối giữa các lớp tiếp theo trong mô hình.

Nhận diện và phân loại hình ảnh

2.4.1 Khái niệm về nhận diện

Nhận diện là một lĩnh vực quan trọng trong trí tuệ nhân tạo, tập trung vào khả năng phát hiện và phân tích các đặc tính của dữ liệu để cung cấp thông tin về hệ thống hoặc tập dữ liệu cụ thể Trong công nghệ thông tin, nhận diện mẫu được chia thành nhiều lĩnh vực, bao gồm phân tích dữ liệu lớn, nhận dạng sinh trắc học, bảo mật và trí tuệ nhân tạo Một nhánh quan trọng của nhận diện mẫu là nhận diện đối tượng trong hình ảnh, nơi các công nghệ máy tính sử dụng thuật toán và khái niệm học máy để nhận ra người, động vật, vật thể và các đối tượng mục tiêu khác.

2.4.2 Phân loại hình ảnh là gì?

Phân loại hình ảnh (Image classification) và Nhận dạng hình ảnh (Image recognition) là những nhiệm vụ quan trọng trong lĩnh vực thị giác máy tính, trong đó thuật toán sẽ phân tích và gán nhãn cho hình ảnh dựa trên một danh mục đã được xác định và đào tạo trước.

Hình 2.13 Sự khác biệt giữa phát hiện đối tượng, phân đoạn ảnh và phân loại ảnh

Thuật toán phân tích tập hợp hình ảnh mô tả chó và mèo bằng cách "quan sát" dữ liệu để hình thành giả thuyết dựa trên hình dạng và màu sắc Kết quả là các hình ảnh chó và mèo được phân loại tự động từ tập dữ liệu ban đầu.

Thị giác đóng vai trò quan trọng trong việc hình thành 80-85% nhận thức của con người về thế giới xung quanh Mỗi ngày, chúng ta liên tục phân loại và xử lý các dữ liệu hình ảnh mà mình gặp phải.

Mô phỏng nhiệm vụ phân loại với sự hỗ trợ của mạng neuron là một trong những ứng dụng đầu tiên trong lĩnh vực thị giác máy tính mà các nhà nghiên cứu đã khám phá.

2.4.3 Các kỹ thuật phân loại hình ảnh

2.4.3.1 Phân loại có giám sát

Trong học máy có giám sát, thuật toán được đào tạo trên tập hợp hình ảnh đã được gán nhãn Từ dữ liệu mẫu này, thuật toán có khả năng trích xuất thông tin và phân loại các hình ảnh mà nó chưa từng gặp trước đây.

Trong quá trình đào tạo, các đặc điểm của ma trận hình ảnh sẽ được trích xuất thành dữ liệu quan trọng phục vụ cho xử lý Những đặc điểm này đại diện cho hình ảnh trong không gian chiều thấp và là nền tảng cho thuật toán phân loại.

Trong quá trình đánh giá, các đặc điểm của ảnh thử nghiệm được thu thập và phân loại lại nhờ vào sự hỗ trợ của mạng thần kinh nhân tạo Hệ thống đã có khả năng nhận diện các đặc điểm đặc trưng của từng lớp hình ảnh mà nó đã được đào tạo.

Các phương pháp phân loại phổ biến dựa trên học có giám sát bao gồm:

Các mạng neuron phổ biến trong phân loại hình ảnh có giám sát bao gồm AlexNet, ResNet, DenseNet và Inception Trong quá trình này, việc dán nhãn dữ liệu đóng vai trò quan trọng, vì độ chính xác của dữ liệu được dán nhãn ảnh hưởng lớn đến hiệu suất của mô hình học máy Các thuật toán phân loại có giám sát có thể được phân chia thành hai nhóm nhỏ hơn dựa trên nhãn dữ liệu.

Phân loại nhãn đơn (Single-label classification) là một trong những tác vụ phổ biến nhất trong phân loại ảnh có giám sát, trong đó mỗi hình ảnh được gán một nhãn duy nhất Mô hình sẽ đưa ra một giá trị hoặc dự đoán duy nhất cho mỗi hình ảnh được xử lý Đầu ra của mô hình sử dụng mã hóa One-hot, trong đó mỗi giá trị được chuyển đổi thành các đặc trưng nhị phân chỉ chứa giá trị 1 hoặc 0 Mã hóa One-hot có độ dài tương ứng với số lớp, và giá trị này thể hiện xác suất hình ảnh thuộc về lớp đó.

Hàm Softmax là một công cụ quan trọng trong việc đảm bảo tổng xác suất bằng 1 và xác suất tối đa được chọn làm đầu ra của mô hình Mặc dù Softmax không mang lại giá trị dự đoán trực tiếp, nhưng nó giúp giới hạn đầu ra trong khoảng từ 0 đến 1, từ đó cho phép đánh giá độ tin cậy của mô hình dựa trên điểm Softmax.

Một số ví dụ về bộ dữ liệu phân loại nhãn đơn bao gồm MNIST, SVHN, ImageNet, v.v

Phân loại nhãn đơn có thể được xếp vào phân loại đa lớp (Multiclass classification) hoặc phân loại nhị phân (binary classification)

Phân loại đa nhãn là một nhiệm vụ phân loại trong đó mỗi hình ảnh có thể mang nhiều hơn một nhãn, hoặc một số hình ảnh có thể chứa tất cả các nhãn cùng lúc.

Phân loại đa nhãn là một kỹ thuật quan trọng trong xử lý hình ảnh y tế, cho phép chẩn đoán nhiều bệnh cho một bệnh nhân thông qua dữ liệu từ hình ảnh X-quang.

Khác với Phân loại hình ảnh chỉ sử dụng thuật toán Xử lý ảnh và Mạng neuron tích chập (CNN), Phân loại video kết hợp cả dữ liệu hình ảnh và dữ liệu tạm thời Để áp dụng thuật toán phân loại hình ảnh, mô hình phân loại video khai thác mối quan hệ giữa các khung hình khác nhau Các mạng neuron như LSTM (Bộ nhớ ngắn hạn dài) và RNN (Mạng thần kinh hồi quy) sẽ được kết hợp với CNN để phân tích mối quan hệ thời gian giữa các khung hình.

Khác biệt cơ bản của phân loại 3D khi so với phân loại 2D nằm ở cấu trúc của CNN và bản chất chuyển động

Trong phân loại dữ liệu 3D, nhân cũng hoạt động trong không gian 3D và di chuyển dọc theo cả ba trục, khác với chuyển động thẳng chỉ hai trục trong CNN 2D CNN có khả năng nắm bắt tốt dữ liệu không gian, giúp dễ dàng xử lý khi dữ liệu được phân bố trên ba trục.

BÀI TOÁN NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG

Mô tả bài toán

Nông nghiệp ứng dụng công nghệ thông tin đang trở thành xu thế mới, đặc biệt trong bối cảnh biến đổi khí hậu hiện nay Việc áp dụng công nghệ thông tin trong nông nghiệp giúp cải thiện đáng kể hiệu quả sản xuất Kỹ thuật kiểm tra bệnh cây trồng bằng mắt thường gặp nhiều hạn chế, trong khi các tiến bộ trong mô hình thị giác máy tính cung cấp giải pháp nhanh chóng và chính xác Các hệ thống phát hiện và nhận dạng bệnh lá cây, sử dụng kỹ thuật xử lý ảnh, đang thu hút sự quan tâm của nhiều nhà nghiên cứu Với sự phát triển của thị giác máy tính, hy vọng rằng quy trình kiểm tra sẽ được tự động hóa trong tương lai gần Việc triển khai các mô hình học máy và học sâu có thể giúp phân loại chính xác các loại bệnh trên lá cây, cung cấp công cụ hiệu quả và tiết kiệm chi phí cho nông dân trong việc bảo vệ cây trồng Nghiên cứu này trình bày phương pháp phân loại bệnh trên lá cây thông qua xử lý hình ảnh dữ liệu đầu vào.

Bệnh lá cây là một vấn đề quan trọng trong nông nghiệp, và việc giải quyết nó gặp nhiều khó khăn liên quan đến nhận diện và xử lý ảnh Những thách thức này ảnh hưởng đến khả năng phát hiện và phân tích chính xác tình trạng bệnh của cây trồng.

Chất lượng ảnh phụ thuộc vào nhiều yếu tố, bao gồm điều kiện chiếu sáng và đặc tính của camera, như máy kỹ thuật số hay máy hồng ngoại Những yếu tố này có ảnh hưởng lớn đến độ sắc nét và rõ ràng của hình ảnh.

Góc chụp ảnh có ảnh hưởng lớn đến việc phát hiện bệnh trên lá cây, vì sự khác biệt giữa các góc chụp như chụp thẳng, chụp xéo 45 độ bên trái hoặc bên phải, chụp từ trên xuống hay từ dưới lên có thể làm khuất một phần hoặc toàn bộ các thành phần trên lá Điều này tạo ra những khó khăn đáng kể trong việc nhận diện bệnh.

Màu sắc của lá có ảnh hưởng lớn đến khả năng phát hiện bệnh Nếu lá có màu sắc quá tối hoặc tương đồng với màu sắc của môi trường xung quanh, thuật toán sẽ gặp khó khăn trong việc nhận diện các đặc trưng Điều này có thể dẫn đến việc không phát hiện được bệnh một cách chính xác.

Nền ảnh phức tạp gây khó khăn trong việc nhận diện bệnh, dễ nhầm lẫn với khung cảnh xung quanh Điều này ảnh hưởng lớn đến quá trình phân tích và rút trích đặc trưng của ảnh, có thể dẫn đến nhận nhầm.

Phương pháp nhận diện bệnh trên lá dựa trên mạng neuron tích chập (CNN)

Tổng quan về hệ thống được chia làm 3 giai đoạn:

• Hình ảnh đầu vào là một ảnh màu về bệnh lá cây được người dùng tải lên từ ảnh trong máy tính

Xử lý trước phân đoạn là quá trình bao gồm phân đoạn hình ảnh, nâng cao chất lượng hình ảnh và chuyển đổi không gian màu Đầu tiên, hình ảnh kỹ thuật số được cải thiện bằng cách áp dụng một bộ lọc Sau đó, từng hình ảnh sẽ được chuyển đổi thành một mảng dữ liệu.

Các lớp phân loại của CNN được huấn luyện nhằm nhận diện các loại bệnh trên từng loại cây trồng Kết quả từ quá trình này sẽ được sử dụng để xây dựng bộ phân loại, giúp phân loại các bệnh khác nhau Đầu ra của hệ thống sẽ cung cấp thông tin cho người dùng về loại bệnh mà hệ thống đã nhận diện từ hình ảnh.

Nhóm nghiên cứu đã tiến hành đánh giá khả năng nhận diện bệnh trên lá bằng cách thử nghiệm nhiều mô hình khác nhau, và cuối cùng lựa chọn hai mô hình là AlexNet và VGG16 cho quá trình đánh giá Bài viết này sẽ cung cấp cái nhìn tổng quan về kiến trúc của mạng neuron tích chập sâu AlexNet và mạng VGG.

3.2.1 Kiến trúc mạng neuron tích chập sâu AlexNet

Mạng AlexNet, được giới thiệu vào năm 2012 và mang tên tác giả Alex Krizhevsky, đã cách mạng hóa phân loại hình ảnh trong cuộc thi ImageNet Large Scale Visual Recognition Challenge với 8 tầng mạng neuron tích chập Sự chiến thắng ấn tượng của AlexNet đã chứng minh rằng các đặc trưng học được có thể vượt trội hơn so với các đặc trưng thiết kế thủ công, từ đó thay đổi quan điểm trong nghiên cứu thị giác máy tính.

AlexNet là một kiến trúc mạng gồm tám tầng, bao gồm năm tầng tích chập, hai tầng ẩn kết nối đầy đủ và một tầng đầu ra kết nối đầy đủ Mạng này sử dụng hàm kích hoạt ReLU thay vì sigmoid.

AlexNet bao gồm 5 convolution Layer và 3 Fully connected Layers

Các lớp tích chập, hay còn gọi là filter, có chức năng rút trích thông tin hữu ích từ các bức ảnh Mỗi lớp tích chập thường bao gồm nhiều bộ lọc có cùng kích thước, ví dụ như lớp tích chập đầu tiên của AlexNet chứa 96 bộ lọc.

26 có kích thước 11x11x3 Thông thường thì width và height của một bộ lọc bằng nhau, và độ sâu (depth) thường bằng số lượng kênh màu

Lớp tích chập 1 và lớp tích chập 2 được kết nối qua Overlapping Max Pooling, tương tự như kết nối giữa lớp tích chập 2 và lớp tích chập 3 Các lớp tích chập 3, 4, và 5 kết nối trực tiếp với nhau mà không cần trung gian Lớp tích chập 5 kết nối với lớp kết nối đầy đủ 1 thông qua Overlapping Max Pooling, sau đó là một lớp kết nối đầy đủ khác Cuối cùng, hệ thống sử dụng một bộ phân lớp softmax với số lượng lớp nhãn phù hợp với bài toán (Xem hình 3.3 để có cái nhìn tổng quát hơn).

ReLU nonlinearity được áp dụng sau tất cả các lớp tích chập và lớp kết nối đầy đủ Trước đây, ReLU thường đi kèm với bước chuẩn hoá cục bộ trước khi thực hiện gộp, nhưng các nghiên cứu sau này chỉ ra rằng normalization không mang lại lợi ích rõ rệt Trước khi có AlexNet, các mô hình mạng neuron thường sử dụng hàm kích hoạt TanH, nhưng AlexNet đã giới thiệu ReLU, giúp tăng tốc quá trình huấn luyện lên gấp 6 lần so với các kiến trúc tương tự sử dụng TanH, đồng thời giảm độ lỗi trên tập huấn luyện xuống còn 25%.

3.2.2 Kiến trúc mạng sử dụng khối VGG

3.2.2.1 Giới thiệu về mạng VGG

Khối cơ bản của mạng tích chập cổ điển bao gồm các tầng tích chập, phi tuyến như ReLU, và gộp cực đại Cụ thể, khối VGG được cấu thành từ chuỗi các tầng tích chập, tiếp theo là tầng gộp cực đại nhằm giảm chiều không gian Trong nghiên cứu gốc của VGG, tác giả áp dụng các hạt nhân tích chập 3×3 và tầng gộp cực đại 2×2 với sải bước 2, giúp giảm một nửa độ phân giải sau mỗi khối.

3.2.2.2 Kiến trúc về mạng VGG16

Giống như AlexNet, mạng VGG được chia thành hai phần: phần đầu tiên chủ yếu chứa các tầng tích chập và tầng gộp, trong khi phần thứ hai bao gồm các tầng kết nối đầy đủ.

Mạng VGG16 có kiến trúc gồm 5 khối tích chập, trong đó hai khối đầu tiên chứa một tầng tích chập mỗi khối, còn ba khối sau có hai tầng tích chập Khối đầu tiên có 64 kênh đầu ra, và số kênh đầu ra được nhân đôi ở mỗi khối tiếp theo cho đến khi đạt 512 kênh.

Kiến trúc mạng VGG16 được cấu trúc gồm 16 lớp, bao gồm 13 lớp tích chập với kích thước kernel 3x3, trong đó có 2 lớp tích chập liên tiếp và 3 lớp tích chập liên tiếp Sau mỗi lớp tích chập, mạng sử dụng max pooling để giảm kích thước xuống còn 0.5, và cuối cùng là 3 lớp kết nối đầy đủ.

Overfiting là gì?

Mạng neuron có khả năng học từ dữ liệu, nhưng nếu quá trình huấn luyện không hiệu quả, mô hình có thể chỉ nhớ những gì đã học mà không hiểu bản chất Kết quả là mô hình hoạt động tốt trên tập huấn luyện nhưng lại kém trên tập kiểm thử, không rút ra được bản chất của vấn đề Trong quá trình huấn luyện, không phải lúc nào hàm mất mát (loss) của tập huấn luyện và tập kiểm thử cũng giảm đồng thời; có thể xảy ra trường hợp hàm mất mát của tập huấn luyện tiếp tục giảm trong khi hàm mất mát của tập kiểm thử lại tăng, dẫn đến hiện tượng overfitting.

Data Augmentation

Việc sử dụng nhiều biến thể khác nhau của một bức hình là phương pháp hiệu quả để ngăn ngừa hiện tượng overfitting trong mô hình học máy Bằng cách này, mô hình sẽ không chỉ học theo cách "nhái" dữ liệu mà còn phát triển khả năng tổng quát hơn Có nhiều phương pháp để tạo ra dữ liệu mới từ dữ liệu hiện có, và một số kỹ thuật mà nhóm AlexNet đã áp dụng bao gồm việc biến đổi hình ảnh để tăng cường dữ liệu.

Data Augmentation bằng cách phản chiếu là một kỹ thuật hiệu quả trong việc tăng cường dữ liệu hình ảnh Ý tưởng của phương pháp này là tạo ra một phiên bản gương của bức ảnh gốc, giúp mở rộng tập huấn luyện Ví dụ, hình ảnh bên trái là con mèo gốc, trong khi hình bên phải là phiên bản đã được áp dụng hiệu ứng phản chiếu, chỉ cần xoay qua trục y Kỹ thuật này không chỉ làm phong phú thêm tập dữ liệu mà còn cải thiện khả năng học của các mô hình máy học.

Hình 3.6Data Augmentation by Mirroring

Data Augmentation bằng cách cắt ngẫu nhiên giúp tạo ra những hình ảnh mới từ ảnh gốc, tăng cường độ phong phú của dữ liệu Nhóm nghiên cứu AlexNet đã thực hiện việc cắt ngẫu nhiên ảnh kích thước 227x227 từ ảnh 256x256 để làm đầu vào cho mô hình, từ đó có thể tăng số lượng dữ liệu lên tới 2048 lần Phương pháp này giúp mô hình nhận diện rằng dù hình ảnh con mèo được nhìn từ góc độ nào hay qua gương, nó vẫn giữ nguyên bản chất là con mèo.

Hình 3.7 Data Augmentation by Random Crops

Một số công thức sử dụng trong đồ án

3.5.1 Công thức tính accuracy function:

Trong đó n: Số vật mẫu dự đoán đúng

N: Tổng số vật mẫu đưa vào dự đoán

3.5.1 Công thức tính loss function:

Trong đó : n: Số lượng điểm dữ liệu m: Số lượng phân lớp yi,j: Nhãn thật của dữ liệu Nếu yi,j =1 nếu điểm dữ liệu I thuộc class j và

= 0 nếu ngược lại pi,j: Nhãn dự đoán ra pi,j thể hiện xác xuất (probability) mà mô hình dự đoán điểm dữ liệu i thuộc lớp j

THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

Công cụ và môi trường thực hiện

Ngôn ngữ lập trình là Python phiên bản 3.9.12 64-bit

Công cụ lập trình Visual Studio Code

Thông số thiết bị dùng cho thực nghiệm:

• 2 laptop core i5 – 9300H CPU 2.40GHz, 16GB RAM.

Dữ liệu chuẩn bị (dataset)

Tiến hành thu thập dữ liệu hình ảnh các loại bệnh lá cây với kích thước 256x256 pixel, và lưu trữ file theo cấu trúc thư mục quy định.

Cấu trúc thư mục dataset bao gồm hai thư mục chính là testing và training, mỗi thư mục con chứa hình ảnh của một loại bệnh lá cây cụ thể.

5 loại bệnh khác nhau bao gồm:

• Pepper_bell Bacterial _spot: Bệnh đốm lá ớt chuông

• Pepper_bell healthy: Lá ớt chuông khỏe mạnh

• Potato Early_blight: Bệnh cháy lá sớm khoai tây

• Potato Late_blight: Bệnh mốc sương khoai tây

• Tomato Target_Spot: Bệnh đốm lá cà chua

Hình 4.2 Một số hình ảnh từ dataset

Bảng 1 Dữ liệu đầu vào dataset

Bệnh đốm lá ớt chuông 997 180

Lá ớt chuông khỏe mạnh 1477 280

Bệnh cháy lá sớm khoai tây 1000 180

Bệnh mốc sương khoai tây 1000 170

Bệnh đốm lá cà chua 1404 240

Bảng 2 Các tham số sử dụng trong đồ án

Tham số Giá trị Ý nghĩa batch_size 64 Số vật mẫu được đưa vào trong 1 lần huấn luyện

Training epochs 20 Số lần lặp qua tập huấn luyện

Dropout 0.5 Trong mỗi lần huấn luyện ngẫu nhiên lấy ra 50% dữ liệu để không huấn luyện

Optimizer Adam optimizer Hàm tối ưu

Loss function Categorical Cross Entropy Hàm mất mát

Tăng cường dữ liệu bằng data augmentation

Trong lĩnh vực học máy, đặc biệt là học sâu, việc sử dụng một lượng lớn dữ liệu là vô cùng cần thiết Chẳng hạn, các tập dữ liệu nổi tiếng như ImageNet chứa hàng triệu đến hàng trăm triệu mẫu dữ liệu đã được gán nhãn Sự phong phú của dữ liệu này đóng vai trò quan trọng trong việc phát triển và cải thiện các mô hình học sâu.

34 nên việc tăng cường dữ liệu hình ảnh thì chất lượng mô hình học sâu càng được cải thiện

Vấn đề đặt ra là với bài toán có dữ liệu giới hạn thì phải làm sao Không đủ dữ liệu sẽ dẫn tới vấn đề như:

• Khó huấn luyện mô hình: mạng học sâu mô hình khó hội tụ

• Thiếu tính tổng quát: mạng dễ bị quá khớp, quá tốt trên tập đào tạo còn trên tập kiểm thử thì cho ra kết quả tệ

Chất lượng dự đoán ảnh có thể không ổn định do một số trường hợp ngoại lệ gây ra sai sót, làm giảm chất lượng đầu ra Để khắc phục vấn đề này, có thể áp dụng các giải pháp như thay đổi kiến trúc mạng bằng cách sử dụng các mô hình đơn giản để tránh hiện tượng quá khớp Ngoài ra, việc áp dụng học chuyển đổi từ các ứng dụng và mô hình đã được đào tạo với nhiều dữ liệu cũng rất hiệu quả Một phương pháp quan trọng khác là tập hợp thêm dữ liệu, giúp cải thiện độ chính xác của dự đoán.

Dữ liệu giả được tạo ra thông qua các mô hình mạng GAN, cho phép mô phỏng hành vi của con người và hình ảnh từ nhiều góc nhìn khác nhau trong các bài toán dữ liệu đồ họa máy tính.

Để thu thập thêm dữ liệu, bạn có thể tìm kiếm từ các nguồn như mua dữ liệu trả phí hoặc lấy dữ liệu từ các trang web như Kaggle Tuy nhiên, quá trình này thường tốn nhiều thời gian, công sức và chi phí.

Dữ liệu tăng cường là một kỹ thuật đơn giản nhằm xử lý dữ liệu thông qua các phép xử lý ảnh tuyến tính và phi tuyến tính, giúp giải quyết vấn đề thiếu dữ liệu trong học sâu mô hình Kỹ thuật này cho phép tạo ra dữ liệu mới cho mô hình đào tạo từ những dữ liệu hiện có Dưới đây là một số kỹ thuật augmentation phổ biến dành cho ảnh.

• Flip: dùng để lật ngược ảnh theo chiều dọc hoặc chiều ngang

Hình 4.3 Ảnh khi dùng phương thức Flip

• Rotation: Quay ảnh theo nhiều góc độ khác nhau

Hình 4.4 Ảnh khi dùng phương thức Rotation

• Zoom: phóng to hay thu nhỏ hình ảnh

Việc nâng cao hình ảnh đóng vai trò quan trọng trong việc xây dựng một bộ phân loại hình ảnh hiệu quả Tuy nhiên, sự phụ thuộc vào dữ liệu và bài toán, cùng với kiến trúc mạng, cho thấy rằng không có phương pháp tổng quát nào phù hợp cho tất cả các tập dữ liệu và bài toán Do đó, cần phải thử nghiệm nhiều phương pháp khác nhau, điều này tiêu tốn thời gian để tìm ra cách tăng cường dữ liệu tốt nhất cho từng bài toán và tập dữ liệu cụ thể.

Mô hình train trong phần mềm

Training

Hình 4.8 Thời gian hoàn thành training của AlexNet

Hình 4.9 Thời gian hoàn thành training của VGG16

Xuất kết quả training

Hình 4.10 Biểu đồ kết quả training của mô hình AlexNet

Hình 4.11 Biểu đồ kết quả training của mô hình VGG16

Kết quả thực nghiệm

Bảng 3 So sánh đánh giá hai mô hình

Mô hình AlexNet VGG16 Độ chính xác trên tập dữ liệu huấn luyện 88,92% 90,88% Độ chính xác trên tập dữ liệu kiểm chứng 83,33% 86,57%

Mô hình VGG16 thể hiện độ chính xác vượt trội so với mô hình AlexNet trên cả hai tập dữ liệu huấn luyện và kiểm chứng Điều này cho thấy VGG16 là lựa chọn phù hợp để giải quyết bài toán nhận diện bệnh trên lá thông qua mạng neuron tích chập.

• Trường hợp 1: Cả hai mô hình đều nhận diện đúng loại bệnh của hình ảnh đầu vào

Hình 4.12 Kết quả nhận diện đúng lá cây bị bệnh đốm lá ớt chuông của mô hình

Hình 4.13 Kết quả nhận diện đúng lá cây bị bệnh đốm lá ớt chuông của mô hình

• Trường hợp 2: Mô hình VGG16 nhận diện đúng loại bệnh còn mô hình AlexNet nhận diện sai loại bệnh

Hình 4.14 Kết quả nhận diện đúng lá cây bị bệnh mốc sương khoai tây của mô hình

Hình 4.15 Kết quả nhận diện sai lá cây bị bệnh mốc sương khoai tây của mô hình

• Trường hợp 3: Mô hình VGG16 nhận diện sai loại bệnh còn mô hình AlexNet nhận diện đúng loại bệnh

43 Hình 4.16 Kết quả nhận diện sai lá cây bị bệnh đốm lá cà chua của mô hình VGG16

Hình 4.17 Kết quả nhận diện đúng lá cây bị bệnh đốm lá cà chua của mô hình AlexNet

Bảng 4 Kết quả độ chính xác trên từng phân lớp

Bệnh đốm lá ớt chuông 0.813567 0.99724305

Lá ớt chuông khỏe mạnh 0.9764 0.8688023

Bệnh cháy lá sớm khoai tây 0.9127 0.8138

Bệnh mốc sương khoai tây 0.9788 0.9999

Bệnh đốm lá cà chua 0.5135 1.0 Độ chính xác chung 0.8333 0.8657

So sánh độ chính xác mô hình với mô hình nghiên cứu khác

Nghiên cứu "Phát hiện bệnh trên lá cà chua dựa trên hình ảnh sử dụng học sâu" đã sử dụng bộ dữ liệu gồm 6 phân lớp và 9000 hình ảnh, bao gồm 5 phân lớp bệnh và 1 lớp khỏe mạnh Hình ảnh thô được sử dụng làm đầu vào và Mạng Nơ ron tích chập (CNN) được áp dụng để trích xuất các tính năng Mô hình bao gồm hai phần: phần đầu tiên là 4 lớp với hàm kích hoạt Relu và lớp tổng hợp tối đa, trong khi phần thứ hai gồm hai lớp dày đặc, với mô hình đầy đủ màu sắc có 256 đơn vị ẩn và tổng số thông số có thể đào tạo là 3,601,478, trong khi mô hình thang xám có 128 đơn vị ẩn với tổng số thông số là 1,994,374 Để tránh trang bị quá mức, kích thước của mạng thang xám được thu nhỏ Cuối cùng, lớp Softmax với 6 đầu ra đại diện cho 6 lớp cho ra độ chính xác 99.84% Nghiên cứu "Phát hiện bệnh lá cà chua sử dụng kỹ thuật học sâu" cũng áp dụng mô hình InceptionV3, sử dụng kiến trúc mạng nơ ron với bộ lọc có kích thước đa dạng từ 11x11, 5x5, 3x3 đến 1x1, nhằm giải quyết bài toán phát hiện bệnh.

Khối Inception trong kiến trúc Inception-V1 mang lại hiệu quả cao với 4 nhánh song song và các bộ lọc đa dạng kích thước, giúp trích xuất đặc trưng từ các vùng nhận thức khác nhau Inception-V1 được lặp lại 7 lần và có 22 tầng, lớn hơn gần gấp đôi so với VGG16, với chỉ 5 triệu tham số, ít hơn gấp 27 lần so với VGG16 nhờ vào tích chập 1x1 Inception-V3, kế thừa từ Inception-V1, có 24 triệu tham số và áp dụng batch normalization cùng ReLU activation sau mỗi tầng tích chập, giúp giải quyết vấn đề thắt cổ chai và duy trì kích thước các layers Đồng thời, Inception-V3 sử dụng phương pháp nhân tố để tính toán hiệu quả hơn Nghiên cứu được thực hiện trên 18,162 hình ảnh, chia thành 10 lớp, trong đó có 1 lớp khỏe mạnh.

9 lớp lá bệnh Sau khi đào tạo huấn luyện hoàn thành thì mô hình InceptionV3 có độ chính xác là 99.2%

Bảng 5 So sánh kết quả với các trang hiện tại khác

Trang Tập dữ liệu Báo cáo hiệu suất

Keke et al [13] PlantVillage (2 lớp) Độ chính xác -97.20% Fuentes et al [14] PlantVillage (10 lớp) Độ chính xác -96%

Nhận xét: Có thể thấy bài toán của các nghiên cứu cũng như mô hình tốt hơn nhiều với bài toán của nhóm là 86.57%.

So sánh kết quả với cùng mô hình với công trình nghiên cứu khác

The team utilized the Plant Village dataset, selecting 5 out of the 15 available classes Their research on tomato crop disease classification employed a pre-trained deep learning algorithm, which, while similar to the team's dataset, included 6 disease subclasses and 1 healthy class in total.

Sau khi áp dụng mô hình VGG16 và Alexnet trên tập dữ liệu PlantVillage với 13,262 hình ảnh, độ chính xác đạt được lần lượt là 97.29% và 97.49% Đặc biệt, độ chính xác chung của từng phân lớp trong mô hình VGG16 là 89.33%.

Độ chính xác chung của từng phân lớp trong nghiên cứu đạt 89.33%, trong khi độ chính xác của nhóm là 86.57% Mặc dù nhóm đã giải quyết bài toán với kết quả khả quan, nhưng vẫn cần nâng cao hiệu quả nhận diện hình ảnh.

Ngày đăng: 26/09/2022, 20:59

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2]. (2020). Tìm hiểu về mạng AlexNet. Được truy lục từ https://www.phamduytung.com/blog/2018-06-15-understanding-alexnet/ Sách, tạp chí
Tiêu đề: Tìm hiểu về mạng AlexNet
Năm: 2020
[5]. (2021). Phân loại hình ảnh trong thị giác máy tính. Được truy lục từ https://product.vinbigdata.org/phan-loai-hinh-anh-trong-thi-giac-may-tinh/ Sách, tạp chí
Tiêu đề: Phân loại hình ảnh trong thị giác máy tính
Năm: 2021
[6]. (2020). Giải pháp thích ứng học sâu ứng dụng nhận dạng đối tượng. Được truy lục từ https://sdh.duytan.edu.vn/uploads/9afb5af9-6634-4ec5-b138-819fc5aa0a7a_3.tomtatluanan.viet.pdf Sách, tạp chí
Tiêu đề: Giải pháp thích ứng học sâu ứng dụng nhận dạng đối tượng
Năm: 2020
[7]. (2021). Disea Detection using Deeplearning python project. Được truy lục từ https://enggprojectworld.blogspot.com/2021/03/Python-Code-For-Corn-Leaf-Disease-Detection-Using-Deep-Learning.html Sách, tạp chí
Tiêu đề: Disea Detection using Deeplearning python project
Năm: 2021
[8]. (2022). Data augmentation on images in Tensorflow. Được truy lục từ https://medium.com/ymedialabs-innovation/data-augmentation-techniques-in-cnn-using-tensorflow-371ae43d5be9#c3f1 Sách, tạp chí
Tiêu đề: Data augmentation on images in Tensorflow
Năm: 2022
[9]. (2021).Plant Disease Detection and Classification using CNN. Được truy lục từ https://www.ijrte.org/wp-content/uploads/papers/v10i3/C64580910321.pdf[10]. (2019). PlantVillage Dataset. Được truy lục từhttps://www.kaggle.com/datasets/abdallahalidev/plantvillage-dataset/ Sách, tạp chí
Tiêu đề: Plant Disease Detection and Classification using CNN
Tác giả: (2021).Plant Disease Detection and Classification using CNN. Được truy lục từ https://www.ijrte.org/wp-content/uploads/papers/v10i3/C64580910321.pdf[10]
Năm: 2019
[1]. (2012). Imagenet classification with deep convolutional neural networks. Được truy lục từhttps://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf Link
[3]. (2014) Very deep convolutional networks for large-scale image recognition. Được truy lục từ https://arxiv.org/pdf/1409.1556.pdf Link
[4]. (2014). ImageNet Classification with Deep Convolutional Neural Networks. Được truy lục từhttps://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf Link
[13]. (2018). Can Deep Learning Identify Tomato Leaf Disease. Được truy lục từ https://www.hindawi.com/journals/am/2018/6710865/ Link
[14]. (2018). High-Performance Deep Neural Network-Based Tomato Plant Diseases and Pests Diagnosis System With Refinement Filter Bank. Được truy lục từ https://www.frontiersin.org/articles/10.3389/fpls.2018.01162/full#h5/ Link
[15]. (2018). Tomato crop disease classification using pre-trained deep learning algorithm. Được truy lục từhttps://www.sciencedirect.com/science/article/pii/S1877050918310159 / Link

HÌNH ẢNH LIÊN QUAN

Hình 2.1 Mạng neuron tích chập - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 2.1 Mạng neuron tích chập (Trang 19)
Hình 2.2 Cửa sổ trượt trên ma trận - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 2.2 Cửa sổ trượt trên ma trận (Trang 22)
2.2.3 Hình ảnh đầu vào - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
2.2.3 Hình ảnh đầu vào (Trang 24)
Hình 2.4 Một hình RGB có kích thước 4x4x3 - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 2.4 Một hình RGB có kích thước 4x4x3 (Trang 24)
Hình 2.9 Một hình ảnh 5x5x1 được đệm thành một hình ảnh 6x6x1 - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 2.9 Một hình ảnh 5x5x1 được đệm thành một hình ảnh 6x6x1 (Trang 26)
Hình 2.8 Một phép tính chập với độ dài trượt bằng 2 - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 2.8 Một phép tính chập với độ dài trượt bằng 2 (Trang 26)
Hình 2.11 Các kiểu phép gộp - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 2.11 Các kiểu phép gộp (Trang 28)
Hình 2.12 Các thư viện được sử dụng nhiều nhất - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 2.12 Các thư viện được sử dụng nhiều nhất (Trang 30)
2.4 Nhận diện và phân loại hình ảnh - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
2.4 Nhận diện và phân loại hình ảnh (Trang 32)
Hình 3.1 Bệnh lá cây - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 3.1 Bệnh lá cây (Trang 36)
Hình 3.3 Kiến trúc mạng AlexNet - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 3.3 Kiến trúc mạng AlexNet (Trang 39)
Hình 3.4 Kiến trúc mạng VGG16 - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 3.4 Kiến trúc mạng VGG16 (Trang 41)
Hình 3.5 VGG16 - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 3.5 VGG16 (Trang 42)
Hình 3.7 Data Augmentation by Random Crops - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 3.7 Data Augmentation by Random Crops (Trang 43)
Hình 3.6 Data Augmentation by Mirroring - NHẬN DIỆN BỆNH TRÊN LÁ DỰA TRÊN MẠNG NƠ RON TÍCH CHẬP
Hình 3.6 Data Augmentation by Mirroring (Trang 43)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w