Tài liệu bao gồm file word báo cáo, file ppt trình bày, code đi kèm và kết quả Xây dựng phương pháp nhận dạng các bệnh trên lá của cây lúa dựa trên các phương pháp xử lý ảnh (XLA). Xây dựng phương pháp nhận dạng các bệnh trên lá của cây lúa dựa trên các phương pháp xử lý ảnh (XLA).
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
BÁO CÁO
XỬ LÝ ẢNH SỐ
Đề tài:
XÂY DỰNG PHƯƠNG PHÁP NHẬN DẠNG CÁC BỆNH TRÊN LÁ CỦA CÂY
LÚA DỰA TRÊN CÁC PHƯƠNG PHÁP XỬ LÝ ẢNH
Giảng viên hướng dẫn:
Nhóm sinh viên thực hiện:
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
BÁO CÁO
XỬ LÝ ẢNH SỐ
Đề tài:
XÂY DỰNG PHƯƠNG PHÁP NHẬN DẠNG CÁC BỆNH TRÊN LÁ CỦA CÂY
LÚA DỰA TRÊN PHƯƠNG PHÁP PHÁT HIỆN BIÊN
Giảng viên hướng dẫn:
Nhóm sinh viên thực hiện:
Trang 3LỜI NÓI ĐẦU
Với tốc độ phát triển rất nhanh của khoa học công nghệ, cụm từ “Trí tuệ nhântạo” ngày càng phổ biến rộng rãi trên các phương tiện thông tin đại chúng và có sứchút rất mạnh Sự phát triển về các thuật toán Học Máy (Machine Learning) và HọcSâu (Deep learning) đã hỗ trợ cho kỹ thuật xử lý hình ảnh trở nên dễ dàng hơn bao giờhết Nhưng để hiểu rõ hơn về các thuật toán này, chúng ta không thể bỏ quên được nềnmóng là các thuật toán xử lý ảnh
Đi liền với sự phát triển công nghiệp hiện đại, hiện đại hoá ngành nông nghiệpcũng là một yêu cầu thiết yếu của nhân loại, đặc biệt đối với quốc gia đang trên đàphát triển mạnh mẽ như Việt Nam Kỹ thuật học sâu hiện nay đã giúp các chuyên gia,
kỹ sư, bác sĩ thú y… dễ dàng hơn trong việc chẩn đoán rủi ro, các loại bệnh phổ biếntrên động thực vật
Trong báo cáo này nhóm thực hiện đề tài “Xây dựng phương pháp nhận dạngcác bệnh trên lá của cây lúa dựa trên phương pháp phát hiện biên với mong muốn hỗtrợ những người nông dân nhận biết các dấu hiệu bệnh trên lá cây lúa, từ đó đưa ra cácgiải pháp xử lý kịp thời
Nhóm xin gửi lời cảm ơn chân thành tới giáo viên hướng dẫn đã rất mực tậntâm hỗ trợ nhóm để hoàn thiện đề tài này
Trang 4MỤC LỤC
Trang 5DANH MỤC HÌNH VẼ
Trang 6DANH MỤC BẢNG
Trang 7CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI
1.1 Tổng quan về nền nông nghiệp Việt Nam những năm vừa qua
1.1.1 Khái quát nền nông nghiệp Việt Nam
Nhìn lại 5 năm nhiệm kỳ vừa qua (2016-2020), có thể nói ngành trồng trọt đãlập được kỳ tích sau khi triển khai đề án tái cơ cấu ngành nông nghiệp Hàng loạt kỳtích đã đạt được dành cho lúa gạo, cà phê, rau củ, nhất là mảng chế biến nông sản [1].Theo Thứ trưởng Lê Quốc Doanh, trong nội ngành trồng trọt đã có thay đổi và chuyểnbiến nhanh chóng khi sản xuất lúa gạo được mùa được giá nhất từ trước đến nay, xuấtkhẩu và chế biến rau quả đạt kim ngạch tới 4 tỉ USD/năm, cà phê cũng đang "lột xác"nhờ chương trình tái canh bền vững hợp lý…
Kết quả trong 5 năm vừa qua đã chứng minh cho những giải pháp mang tínhđồng bộ và rất cụ thể mà Bộ Nông nghiệp và PTNT đã và đang triển khai Ngành nôngnghiệp đối mặt với những thách thức, khó khăn chưa từng có, thậm chí chưa từng cótiền lệ Biến đổi khí hậu, xâm nhập mặn, biến động của kinh tế thế giới khiến năm
2016 ngành nông nghiệp lần đầu tiên có tăng trưởng âm Hạn mặn lịch sử trong vụđông xuân 2015 – 2016 ở Đồng bằng sông Cửu Long đã khiến chúng ta mất 1 triệu tấnthóc Hay vụ đông xuân 2019 – 2020, xâm nhập mặn vào sâu trong nội đồng, thậm chícòn vượt cả kỷ lục của vụ đông xuân 2015 – 2016
Trang 8Hình 1.1 Cây lúa nước
Trong khi đó, dịch bệnh cả trên cây trồng, vật nuôi , dịch bệnh trên người cũng ngàycàng diễn biến khó lường Chỉ trong mấy năm trở lại đây, ngành nông nghiệp phải ứngphó với nhiều loại dịch bệnh mới như: Dịch tả lợn châu Phi, sâu keo mùa thu… DịchCovid-19 đã khiến chuỗi cung ứng bị đứt gãy, gián đoạn
1.1.2 Hiện trạng bệnh lá lúa hiện nay
Theo trang web “Cổng thông tin điện tử tỉnh Ninh Bình” [2] cũng như một sốnguồn tin đáng tin cậy, có khá nhiều bệnh lá lúa hiện nay đã được tìm thấy Nguyênnhân chủ yếu do diễn biến bất thường của thời tiết, chính điều kiện thuận lợi cho một
số đối tượng sâu bệnh hại phát sinh gây hại trên lúa vụ xuân Đã có một thời, bệnh đạo
ôn và đốm nâu khi đó được coi là những bệnh phổ biến nhất, nhưng hiện nay đốm nâu
và bạc lá do vi khuẩn được coi là những bệnh hại lúa nổi bật và nguy hiểm nhất Ngoài
ra, bệnh đốm than trên lá cũng thường thấy ở trên lá lúa, gây nguy hiểm cho vụ mùa.Chúng là 3 trong các bệnh phổ biến trên cây lúa ở Việt Nam, mỗi bệnh đều có đặctrưng riêng của chúng
Trang 9Hình 1.2 Bệnh bạc lá lúa do vi khuẩn
Hình 1.3 Bệnh đốm nâu trên lá lúa
Trang 10Hình 1.4 Bệnh đốm than trên lá lúa
Triệu chứng của 3 loại bệnh:
Bệnh bạc lá lúa do vi khuẩn:
- Là bệnh nhiệt đới điển hình với nhiều giống lúa trên thế giới
- Triệu chứng: vết bệnh kéo dài ở gần ngọn và mép lá, chuyển từ trắng sangvàng rồi xám do vi khuẩn tấn công
- Tác hại: lá đòng sớm tàn khô xác, giảm quang hợp, tăng lượng hạt lép, khiếnnăng suất có thể giảm 50%
Bệnh đốm nâu trên lá lúa
- Phát triển ở vùng đất nghèo dinh dưỡng, phát sinh thích hợp trong điều kiệnnhiệt độ cao, độ ẩm thấp
- Triệu chứng: các đốm tròn hay bầu dục màu nâu, ngay giữa có màu xám ngảtrắng và mép đốm màu hơi đỏ, xuất hiện trên cây trưởng thành
Trang 11- Tác hại: làm cho lá bị cháy vàng, sau tấn công vào hạt gây lép hạt, giảmchất lượng gạo
Bệnh đốm than trên lá lúa:
- Thường xuất hiện ở cuối giai đoạn sinh trưởng
- Triệu chứng: các vết bệnh hình thành tuyến nhỏ màu đen hoặc nâu trênphiến lá, ngọn lá có thể chuyển sang màu xám và khô
- Tác hại: không gây thiệt hại lớn cho cây, tuy nhiên có thể khiến cho cây dễnhiễm bệnh khác làm giảm năng suất
Việc theo dõi sự xuất hiện và tần suất xuất hiện của chúng là việc vô cùng quantrọng để phát hiện sớm các loại bệnh và đưa ra giải pháp điều trị kịp thời Theo truyềnthống của cha ông, cách quản lý cây trồng thường được thực hiện bằng cách phát hiệnthủ công bất kỳ điểm bất thường nào trên cây trồng, sau đó các chuyên gia phân loạiđiểm bất thường đó là bệnh và cuối cùng đưa ra phương pháp điều trị thích hợp Tuynhiên khi xem xét tại các vựa lúa lớn thì điều này dường như không khả thi bởi nó rấtmất thời gian và công sức Do đó, một phương pháp được đề ra là sử dụng công nghệthuộc trí tuệ nhân tạo để áp dụng vào các ảnh chụp vào khu vực bị ảnh hưởng sẽ giúpphát hiện một cách nhanh chóng, độ chính xác tương đối cao cũng như tiết kiệm thờigian và công sức hơn so với phương pháp thông thường Báo cáo này đã đề xuất sửdụng công nghệ xử lý ảnh: kỹ thuật phát hiện biên Sobel để phát hiện 3 bệnh lá lúa(Đốm than, bạc lá do vi khuẩn, đốm nâu)
Tệp dữ liệu được sử dụng cho bài báo được lấy từ [3], cùng với việc làm phongphú dữ liệu hình ảnh Nhóm đã thực hiện huấn luyện dữ liệu với 2 mô hình mạng khácnhau: DenseNet121, và Engineer Features để tìm ra kết quả đánh giá chính xác và tối
ưu nhất
1.2 Các kết quả đã thực hiện trước đó
Kawcher Ahmed và nhóm nghiên cứu một trường đại học ở Bangladesh [4] đã
sử dụng các thuật toán phân lớp Machine Learning bao gồm: Logistic Regression, Nearest Neighbor, Decision Tree và Naive Bayes Classifer để phân loại Họ đã sửdụng tệp data gồm 480 ảnh Số lượng ảnh trên sẽ được áp dụng ImageFilter
Trang 12K-(ColorLayoutFilter) của phần mềm WEKA, sau đó trích xuất đặc trưng Từ đó phânchia dữ liệu, trong đó 90% số lượng ảnh sử dụng cho huấn luyện và 10% sử dụng chokiểm tra Sau khi huấn luyện xong sẽ áp dụng các thuật toán đã nêu ở trên, phân loại
và dự đoán bệnh của chúng Kết quả kiểm tra họ đã đạt được cao nhất ở thuật toánDecision Tree (j48) với độ chính xác Accuracy là 97.167%, tiếp theo là ở thuật toánKNN với độ chính xác 91.667% Các thuật toán còn lại cho kết quả trung bình, khá
Một kết quả cao hơn đã được tìm thấy ở bài báo [5], họ sử dụng một mô hìnhphát hiện bệnh thực vật được phát triển bằng cách sử dụng mạng neural tích chập(CNN) Mô hình này có thể xác định được 13 loại bệnh khác nhau của cây trồng, độchính xác cuối cùng đạt được từ mô hình này là 96,3%
Một kết quả khác đã được thực hiện ở bài báo [6], Khi mà các bộ phận bị ảnhhưởng được tách ra khỏi bề mặt lá lúa bằng cách sử dụng phân nhóm K-means và sau
đó mô hình được đào tạo với SVM sử dụng đặc trưng màu sắc, kết cấu và hình dạnglàm các đặc điểm phân loại
Các kết quả thu được trong các bài báo trên đạt độ chính xác cao, đó là cũng làthách thức của nhóm khi thực hiện project này
Trang 13CHƯƠNG 2 THIẾT KẾ HỆ THỐNG
2.1 Sơ đồ khối
Hình 2.5 Sơ đồ khối thực hiện hệ thống
Hệ thống sẽ được thực hiện như sơ đồ hình 2.1 Đầu tiên dữ liệu ảnh sẽ đượclấy từ [3], với số lượng ảnh là 120 (trong đó: ảnh cho bệnh bạc lá lúa là 40, ảnh chobệnh đốm nâu tròn là 40 và ảnh cho bệnh đốm than lá là 40) Các ảnh đều có địnhdạng jpg Do dữ liệu ảnh còn hạn chế, nhóm thực hiện tăng cường dữ liệu ảnh dựatrên module ImageDataGenerator của thư hiện keras_preprocessing.image Sau khithực hiện tăng cường ảnh, nhóm thu được tổng cộng 865 ảnh (đã bao gồm 120 ảnh banđầu) Sau đó nhóm thực hiện phân chia dữ liệu: 595 ảnh cho huấn luyện và 270 ảnhcho kiểm tra Ảnh được phân chia theo 2 tệp “train” và “test” riêng biệt, để đảm bảokết quả đánh giá sau khi huấn luyện các model được công bằng
Trang 14Hình 2.6 Một số ảnh lá lúa sau khi được làm phong phú
Trang 15Hình 2.8 Dữ liệu hình ảnh bệnh đốm nâu tròn
Hình 2.9 Dữ liệu hình ảnh bệnh đốm than trên lúa
Trang 162.3 Lý thuyết xử lí ảnh
2.3.1 Tổng quan về Edge Detection
Trong ảnh số, những điểm ảnh có cường độ ảnh sáng thay đổi mạnh so với cácđiểm xung quanh thường được gọi là các điểm cạnh (edge point) Cạnh (edge) là tậphợp các điểm cạnh tạo nên một hình dạng có ý nghĩa nào đó liên quan đến thông tinhình dạng và cấu trúc của đối tượng trong ảnh, ví dụ đường bao của một khuôn mặt,cấu trúc vành mũ, Tách cạnh là quá trình trích rút các thông tin tin cạnh bằng cácphép toán xử lý ảnh
Hình 2.6 Tổng quan về Edge Detection
Trang 17Edge Detection ( phát hiện cạnh ) được ứng dụng rất nhiều trong các bài toán vềthị giác máy tính.Ví dụ như trong các bài toán như extract information, recognizeobject, Cạnh là nơi mã hóa nhiều thông tin ngữ nghĩa (semantics information) vàhình dạng (shape) trong một bức ảnh
Trong trường hợp lý tưởng, kết quả của việc áp dụng bộ dò cạnh vào ảnh có thểdẫn đến một tập hợp các đường cong được kết nối cho biết ranh giới của các đốitượng, ranh giới của các vạch trên bề mặt cũng như các đường cong tương ứng với sựkhông liên tục trong định hướng bề mặt Do đó, việc áp dụng thuật toán phát hiện cạnhcho hình ảnh có thể làm giảm đáng kể lượng dữ liệu được xử lý và do đó có thể lọc rathông tin có thể được coi là ít liên quan hơn, trong khi vẫn bảo toàn các đặc tính cấutrúc quan trọng của hình ảnh Nếu bước phát hiện cạnh thành công, nhiệm vụ tiếp theo
là diễn giải nội dung thông tin trong ảnh gốc do đó có thể được đơn giản hóa đáng kể
Các cạnh được đặc trưng bởi sự thay đổi đột ngột của cường độ pixel Để pháthiện các cạnh, chúng ta cần phải tìm kiếm những thay đổi như vậy trong các pixel lâncận
Và một trong các thuật toán phổ biến được sử dụng trong phát hiện cạnh (edge
detection) đó là sobel edge detection.
2.3.2 Sobel edge detection
Sobel Edge Detection là một trong những thuật toán được sử dụng rộng rãi nhất
để phát hiện cạnh Toán tử Sobel phát hiện các cạnh được đánh dấu bằng những thayđổi đột ngột về cường độ pixel, như thể hiện trong hình bên dưới
Trang 18Hình 2.7 Cường độ pixel như một hàm của t
Sự gia tăng cường độ thậm chí còn rõ ràng hơn, khi chúng ta vẽ đồ thị đạo hàm bậc nhất của hàm cường độ
Hình 2.8 Đạo hàm đầu tiên của cường độ Pixel dưới dạng hàm của t
Biểu đồ trên chứng minh rằng các cạnh có thể được phát hiện trong các khu vực
mà gradient cao hơn một giá trị ngưỡng cụ thể Ngoài ra, một sự thay đổi đột ngộttrong đạo hàm cũng sẽ làm thay đổi cường độ pixel Với điều này, chúng ta có thể tínhgần đúng đạo hàm, sử dụng nhân 3 × 3 Chúng tôi sử dụng một nhân để phát hiệnnhững thay đổi đột ngột về cường độ pixel theo hướng X và một nhân khác theohướng Y
Đây là những mặt nạ được sử dụng cho Sobel Edge Detection:
Trang 19Khi các mặt nạ này được đối chiếu với hình ảnh gốc, sẽ nhận được 'hình ảnh cạnhSobel'
• Nếu chúng ta chỉ sử dụng Nhân dọc, tích chập tạo ra hình ảnh Sobel, với các cạnh được nâng cao theo hướng X
• Sử dụng Nhân ngang tạo ra hình ảnh Sobel, với các cạnh được nâng cao theo hướng Y
Cho phép và đại diện cho gradient cường độ trong và các hướng tương ứng Nếu như v à biểu thị các hạt nhân X và Y được xác định ở trên:
(3)
(4)
ở đây biểu thị toán tử tích chập, và đại diện cho hình ảnh đầu vào
Giá trị gần đúng cuối cùng của cường độ gradient, có thể được tính là:
Trang 20(5)
Và hướng của gradient sau đó có thể được tính gần đúng như sau:
(6)
Trong ví dụ mã bên dưới, chúng tôi sử dụng Sobel()hàm để tính toán:
• Hình ảnh cạnh Sobel riêng lẻ, theo cả hai hướng (x và y),
• Gradient tổng hợp theo cả hai hướng (xy)
Sau đây là cú pháp để áp dụng tính năng phát hiện cạnh Sobel bằng OpenCV:
Sobel(src, ddepth, dx, dy)
Tham số depth chỉ định độ chính xác của hình ảnh đầu ra, trong khi dx và dy chỉ định
thứ tự của đạo hàm theo mỗi hướng Ví dụ:
• Nếu dx=1và dy=0, chúng tôi tính hình ảnh Sobel đạo hàm cấp 1 theo
hướng x
Nếu cả hai dx=1và dy=1, chúng tôi tính toán hình ảnh Sobel đạo hàm 1 theo cả hai
hướng
Kết quả được thể hiện trong các hình bên dưới Xem cách hình ảnh Sobel theo hướng
x xác định chủ yếu các cạnh dọc (tức là những cạnh có gradient lớn nhất theo hướng x,nằm ngang) Và theo hướng y xác định các cạnh ngang (tức là những cạnh có gradient
Trang 21lớn nhất theo hướng y, thẳng đứng) Hãy quan sát kỹ các vằn của con hổ trong cả hai hình ảnh Lưu ý cách các cạnh dọc mạnh mẽ của các sọc được thể hiện rõ ràng hơn trong hình ảnh Sobel theo hướng x.
Hình 2.9 Dữ liệu hình ảnh mẫu
Trang 22Hình 2.10 Hình ảnh cạnh sobel với cạnh được nâng cao theo hướng X
Trang 23Hình 2.11 Hình ảnh cạnh sobel với cạnh được nâng cao theo hướng Y
Hình dưới đây cho thấy hình ảnh Sobel cho gradient theo cả hai hướng, hình ảnh này
sẽ tách hình ảnh ban đầu thành một biểu diễn cấu trúc cạnh, sao cho tính toàn vẹn cấu trúc của nó vẫn còn nguyên vẹn
Hình 2.12 Hình ảnh cạnh sobel với cạnh được nâng cao theo 2 hướng XY
2.3.3 Kĩ thuật phát hiện biên Gradient
Gradient là một vectơ có các thành phần biểu thị tốc độ thay đổi mức xám của điểm
ảnh (theo hai hướng x,y đối với ảnh 2 chiều) tức là:
Trang 24 Ta có:
Trong đó dx, dy là khoảng cách giữa 2 điểm kế cận theo hướng x,y tương ứng (thực tế chọn dx=dy=1)
Trang 25 Nếu áp dụng Gradient vào xử lý ảnh, việc tính toán sẽ rất phức tạp
Để đơn giản mà không mất tính chất của phương pháp Gradient, người ta sử
dụng kĩ thuật Gradient dùng cặp mặt nạ H 1 ,H 2 trực giao Nếu định nghĩa Gx, Gy
tương ứng là Gradient theo hai hướng x,y khi đó ta có vector Gradient của một ảnh f(x,y) là:
Ví dụ biên độ G(m,n) tại điểm (m,n) được tính:
Trang 26 Để giảm độ phức tạp tính toán, G(m,n) được tính gần đúng như sau:
Một số toán tử Gradien tiêu biểu như toán tử Prewitt, Sobel, Robert đẳng hướng(Isometric), 4-lân cận
Các công đoạn phát hiện biên theo kỹ thuật Gradient
Thực tế, việc làm nổi biên là nhân chập ảnh I với một mặt nạ (ma trận) sẽ được giới thiệu trong phần tiếp theo
Trang 27Ở bên trái, hình ảnh cường độ của một con mèo Ở trung tâm, một hình ảnh gradient theo hướng x đo cường độ thay đổi theo phương ngang Ở bên phải, một hình ảnh gradient theo hướng y đo cường độ thay đổi theo phương thẳng đứng Các điểm ảnh màu xám có độ dốc nhỏ; pixel đen hoặc trắng có độ dốc lớn.
2.4 Ứng dụng vào bài toán phân loại bệnh lá lúa
2.4.1 Trên tệp huấn luyện
- Resize tất cả các ảnh đưa vào huấn luyện về ảnh màu kích thước 64*64 Mỗiảnh sẽ gồm 12228 đặc trưng màu sắc
- Tiến hành cập nhật dữ liệu ảnh và nhãn
- Thực hiện chuyển ma trận ảnh thành mảng, thực hiện chuẩn hoá dữ liệu về mức[0, 1]
- Đưa vào các mô hình mạng (DenseNet121, Engineer Features)
- Huấn luyện model
- Tính toán/đánh giá thông số trên tệp huấn luyện
- (Lưu các model lại để dùng cho sau này)