ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Minh Thắng 21025092 PHƯƠNG ỨNG DỤNG MÔ HÌNH HỌC SÂU TRONG XÁC ĐỊNH CÁC GIAI ĐOẠN QUAN TRỌNG CỦA CÂY DƯA LƯỚI TRỒNG TRONG NHÀ MÀNG BÀI TẬP LỚN Môn Trí tuệ nhân tạo nâng cao HÀ NỘI 2021 ỨNG DỤNG MÔ HÌNH HỌC SÂU TRONG XÁC ĐỊNH CÁC GIAI ĐOẠN SINH TRƯỞNG QUAN TRỌNG CỦA CÂY DƯA LƯỚI TRỒNG TRONG NHÀ MÀNG 1 Giới thiệu Để đảm bảo hiệu quả về năng suất cũng như chất lượng đáp ứng yêu cầu ngày càng cao và khắt khe hiện nay đối với các sản phẩm nông ng.
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Minh Thắng - 21025092
PHƯƠNG ỨNG DỤNG MÔ HÌNH HỌC SÂU TRONG XÁC ĐỊNH CÁC GIAI ĐOẠN QUAN TRỌNG CỦA CÂY DƯA LƯỚI TRỒNG TRONG
NHÀ MÀNG
BÀI TẬP LỚN Môn: Trí tuệ nhân tạo nâng cao
HÀ NỘI - 2021
Trang 2ỨNG DỤNG MÔ HÌNH HỌC SÂU TRONG XÁC ĐỊNH CÁC GIAI ĐOẠN SINH TRƯỞNG QUAN TRỌNG CỦA CÂY DƯA
LƯỚI TRỒNG TRONG NHÀ MÀNG
1 Giới thiệu
Để đảm bảo hiệu quả về năng suất cũng như chất lượng đáp ứng yêu cầu ngày càng cao và khắt khe hiện nay đối với các sản phẩm nông nghiệp, người nông dân cần phải có kiến thức và kinh nghiệm chuyên sâu về cây trồng hay vật nuôi mà mình chăm sóc và nuôi trồng Ngày nay, ngành nông nghiệp đang chuyển dịch mạnh từ quy mô hộ gia đình sang công ty và tập đoàn, với hình thức triển khai canh tác trên cánh đồng mẫu lớn; hệ thống các nhà màng khép kín với diện tích lên đến vài chục heta; trang trại chăn nuôi với quy mô lớn Điều này đặt ra bài toán ứng dụng các công nghệ để quản lý, canh tác nông nghiệp hiệu quả đáp ứng sự phát triển nêu trên Công nghệ trí tuệ nhân tạo (AI) là một thành phần quan trọng trong công nghệ nông nghiệp thông minh Công nghệ trí tuệ nhân tạo được nghiên cứu và ứng dụng trong nông nghiệp như phát hiện và cảnh báo sớm sâu bệnh trên cây trồng, các triệu chứng bệnh trên vật nuôi; Nhận định tình trạng hạn, độ phì của đất qua việc phân tích ảnh vệ tinh, ảnh phổ cận hồng ngoại; Dự đoán sản lượng của mùa vụ ngày càng được quan tâm và đầu tư Trên cơ sở các kết quả/nhận định của AI, chúng ta
có thể tham khảo để đưa ra các quyết định/chiến lược phát triển/phương án phù hợp cho nông trại, hay cụ thể hơn là có thể xem xét và điều chỉnh chế độ canh tác cho cây trông hay chăm sóc vật nuôi tại từng thời kỳ sinh trưởng Một vài năm gần đây
đã có một số công bố về việc ứng dụng AI trong trồng trọt như phát hiện các dấu hiệu sâu, bệnh trên cây trồng nói chung (bệnh trên lá; nhận diện một số loại sâu, bọ gây hại) [9], [10], [11]; bệnh trên cây dâu tây [12],… nhưng với đối tượng là dưa lưới cho đến thời điểm hiện nay vẫn chưa thấy công bố nào
Trong nghiên cứu này, chúng tôi trình bày kết quả sơ bộ của việc ứng dụng công nghệ trí tuệ nhân tạo bằng việc áp dụng mô hình DL mới cho việc phát hiện và phân loại 05 giai đoạn sinh trưởng chính của cây dưa lưới từ những hình ảnh thu thập được của hệ thống mạng camera được lắp đặt trong nhà màng trồng dưa lưới Mô
hình của chúng tôi được xây dựng bằng cách sử dụng kiến trúc học sâu tiên tiến và
gọn nhẹ nhất hiện nay có tên là YOLOv5 và được huấn luyện trên 2.818 hình ảnh
cây dưa lưới do chúng tôi thu thập và gán nhãn [8]
YOLOv5 là một kiến trúc DL tiên tiến trong lĩnh vực phát hiện đối tượng So với các kiến trúc DL khác, YOLOv5 rất đơn giản và đáng tin cậy YOLOv5 cần ít
Trang 3tài nguyên để tính toán hơn nhiều so với các kiến trúc khác trong khi vẫn giữ được hiệu năng tốt [1,2] và đồng thời nhanh hơn nhiều so với các mô hình khác (hình 8) YOLOv5 được pháp triển từ kiến trúc YOLOv4 [3] Bộ mã hóa được sử dụng trong YOLOv5 là CSPDarknet [4] Cùng với Path Aggregation Network [3] (PANet) chúng tạo nên toàn bộ kiến trúc mạng So với YOLOv4, các hàm kích hoạt đã được sửa đổi (Leaky ReLU và Hardswish activations được thay thế bằng SiLU [5]) Đây là lần triển khai mô hình YOLOv5 đầu tiên để nhận dạng tự động các giai đoạn sinh trưởng quan trọng của cây dưa lưới bằng cách sử dụng hình ảnh thu thập được từ mạng camera được thiết lập trong nhà màng trồng dưa lưới
2 Dữ liệu và Phương pháp
2.1 Chuẩn bị và xử lý tập dữ liệu
Nguồn dữ liệu chính trong nghiên cứu của chúng tôi được thu thập từ mạng camera được thiết lập trong nhà màng trồng dưa lưới Tổng số 2.818 hình ảnh cây dưa lưới với đủ các giai đoạn sinh trưởng đã được thu thập, sau đó phân loại và gán nhãn thủ công với sự hỗ trợ của phần mềm VimageLabel (nhóm nghiên cứu tự phát triển) Chú thích và hình ảnh ví dụ được hiển thị trong hình 2 Chúng tôi đã không
sử dụng hình ảnh trống trong tập dữ liệu này
Thông qua việc nghiên cứu tài liệu và kinh nghiệm canh tác dưa lưới của Trang trại Linh An (Giang Biên, Long Biên, Hà Nội), chúng tôi xác định 05 giai đoạn phát triển quan trọng của cây dưa lưới trồng trong nhà màng cần được nhận biết đó là: Giai đoạn 7 ngày; Giai đoạn Thụ phấn; Giai đoạn đã thụ phấn; Giai đoạn cây được
40 ngày và quả được 15 ngày; Giai đoạn tạo ngọt Với việc nhận biết chính xác các giai đoạn phát triển quan trọng này sẽ giúp cho người nông dân/nhà vườn có những chế độ canh tác phù hợp với nhu cầu sinh trưởng cây
Tương đương với 05 giai đoạn sinh trưởng chính nếu trên, chúng tôi có 05 lớp nhận diện trong tập dữ liệu này Hình ảnh trong tập dữ liệu của chúng tôi có nhiều kích cỡ khác nhau Hầu hết trong số đó là hình ảnh có độ phân giải 2.0 Megapixel
Sự phân bố các kích thước và số lượng dữ liệu được thể hiện trong hình 1
Trang 4Hình 1: Sự phân bố dữ liệu của các giai đoạn
Biểu đổ tại hình 1 cho thấy: Giai đoạn Tao Ngot có số nhãn nhiều nhất là 2124 nhãn; Giai đoạn 7_days có số nhãn là 512 ảnh; Giai đoạn Cay_40_ngay_Qua_15_ngay là 164 nhãn và Giai đoạn GiaiDoanThuPhan là 321 nhãn trong khi đó giai đoạn có số nhãn thấp nhất là Giai đoạn DaThuPhanThanhCong Ở đây có sự phân biệt dữ liệu như vậy là do việc thu thập
dữ liệu của các giai đoạn có sự khó khăn khác nhau, như Giai đoạn DaThuPhanThanhCong (thụ phấn thành công) quả rất nhỏ, bị che nhiều bởi lá cây, cộng với việc đặt camera ở xa so với kích thước nhãn của giai đoạn này
Tiếp theo kích thước của nhãn phân bổ với chiều rộng ảnh từ 0.001px x 1920px đến 0.6px x 1920px và chiều cao ảnh từ 0.001px x 1080px đến 0.6px x1080px Các nhãn này tập trung chủ yếu ở kích thước rất nhỏ, chiều rộng từ 0.001px x 1920px đến 0.2px x 1920px và chiều cao từ 0.001px x 1080px đến 0.3px x1080px
Hình ảnh các giai đoạn đã được nhận diện thành công: (1) Giai đoạn 7 ngày; (2) Giai đoạn Thụ phấn; (3) Giai đoạn đã thụ phấn; (4) Giai đoạn cây được 40 ngày và quả được 15 ngày; (5) Giai đoạn tạo ngọt
Trang 5Hình 2: Các giai đoạn đã nhận diện thành công
Chúng tôi thực hiện xác thực chéo trong các thử nghiệm Đây là quá trình tách tập dữ liệu thành 3 phần có kích thước bằng nhau và tiến hành 3 lần huấn luyện Đối với mỗi lần huấn luyện, 20% phần dữ liệu được sử dụng để xác thực và 80% phần còn lại được sử dụng để huấn luyện mạng Số vòng huấn luyện được lựa chọn tăng dần, tỷ lệ % đúng của các epoch khác nhau được phân bố ở bảng sau:
Trang 6Bảng 1: Kết quả đào tạo mô hình qua từng epoch
2.2 Mô hình học sâu YOLOv5
Các bước thực thi mô hình YOLOv5:
1 Thu thập dữ liệu hình ảnh từ mạng camera được lắp đặt trong nhà màng trông
dưa lưới;
2 Điều chỉnh định dạng của chú thích hình ảnh cho phù hợp với định dạng đầu
vào bắt buộc của Kiến trúc YOLOv5;
3 Thử nghiệm mô hình được thực hiện và xác nhận chéo 3 lần
Mô hình YOLOv5 sẽ thực thị việc huấn luyện tập dữ liệu hình ảnh đã thu thập được theo quy trình tại sơ đồ dưới đây (hình 3)
Hình 3: Kiến trúc mô hình YOLOv5 [6]
Trang 7Theo sơ đồ tại hình 3, kiến trúc mô hình YOLOv5 sẽ gồm các thành phần chính như sau:
2.3 Input
Đầu vào của mô hình YOLOv5 sử dụng phương pháp nâng cao dữ liệu Mosaic argumentation Trong huấn luyện dự án thông thường, mô hình huấn luyện của các mục tiêu nhỏ thường thấp hơn so với mô hình học của các đối tượng trung bình và lớn Tập dữ liệu của chúng tôi cũng chứa một số lượng lớn các mục đối tượng nhỏ
như Giai đoạn thụ phấn và Giai đoạn đã thụ phấn thành công, nhưng vấn đề là sự
phân bổ không đồng đều của các tối tượng nhỏ và đối tượng lớn Có một số ưu điểm khi sử dụng Mosaic augnentaion: Tập dữ liệu phong phú hơn sử dụng ngẫu nhiên hóa hình ảnh, chia tỷ lệ ngẫu nhiên và phân phối ngẫu nhiên để ghép nối, điều này làm phong phú thêm tập dữ liệu phát hiện, đặc biệt việc chia tỷ lệ ngẫu nhiên thêm nhiều mục tiêu nhỏ để làm cho mô hình mạnh mẽ hơn, giảm GPU, một số ý kiến cho rằng cũng có thể chia tỷ lệ ngẫu nhiên, tăng cường dữ liệu thông thường sẽ giải quyết được vấn đề đối tượng nhỏ nổi tiếng trong COCO
Nguyên tắc của Mosaic Augmentaion: Kích thước đầu vào của img_size tùy chỉnh 2 lần được chia ngẫu nhiên thành 4 phần, cụ thể là góc trên bên trái, góc trên bên phải, góc dưới bên trái, góc dưới bên phải Mỗi khu vực của hình ảnh sau khi thực hiện Mosaic tương ứng theo quan hệ đối xứng đường chéo, các ảnh chụp màn hình tương ứng được lấy từ hình ảnh ban đầu, như trong hình bên dưới (hình 4)
Khu vực góc trên bên trái sau khi Mosaic:
- Khu vực sau khi Mosaic: x1a, y1a, x2a, y2a = max(0, xc-w), max(0, yc-h), xc, yc
- Khu vực hình ảnh gốc: x1b, y1b, x2b, y2b = max(0, w-(x2a-x1a)), max(0, y1a)), w, h
h-(y2a-Khu vực góc trên bên phải sau khi Mosaic:
- Khu vực sau khi khảm: x1a, y1a, x2a, y2a = xc, max(0, yc-h), min(xc+w, 2s), yc
- Khu vực hình ảnh gốc: x1b, y1b, x2b, y2b = 0, max(0, h-(y2a-y1a)), x1a, w), h
min(x2a-Khu vực góc dưới bên trái sau khi Mosaic:
- Khu vực sau khi mosaic: x1a, y1a, x2a, y2a = max(0, xc - w), yc, xc, min(yc+h, 2s)
- Khu vực hình ảnh gốc: x1b, y1b, x2b, y2b = max(0, w-(x2a-x1a)), 0, w, min(h, y2a-y1a)
Trang 8Khu vực góc dưới bên phải sau khi Mosaic:
- Khu vực sau khi mosaic: x1a, y1a, x2a, y2a = xc, yc, min(xc+w, 2s), min(yc+h, 2s)
- Khu vực hình ảnh gốc: x1b, y1b, x2b, y2b = 0, 0, min(w, (x2a-x1a)), min(h, (y2a-y1a))
Hình 4: Quy trình của Mosaic augmentation trong YOLOv5
2.4 Backbone
Tại đây mô hình YOLOv5 sử dụng Focus structure để cắt ảnh trước khi ảnh đi
vào đường trục Thao tác cụ thể là lấy một giá trị cho mọi pixel khác trong ảnh, tương tự như lấy mẫu liên tục, vì vậy sẽ có bốn ảnh và bốn ảnh bổ sung, có độ dài tương tự, nhưng không có thông tin nào bị mất Bằng cách này, thông tin W và H được tập trung trong không gian kênh, và kênh đầu vào được mở rộng gấp 4 lần, tức
là ảnh nối sẽ được so sánh với chế độ ba kênh RGB ban đầu Cuối cùng, phép toán tích chập 12 kênh được thực hiện trên ảnh mới thu được, và cuối cùng, bản đồ đặc trưng được lấy mẫu kép sẽ thu được mà không bị mất thông tin
Trang 9Hình 5: Focus structure của mô hình YOLOv5
Lấy mô hình YOLOv5s làm ví dụ, ảnh gốc có kích thước 640px × 640px × 3px được nhập vào module Focus và nó được chuyển đổi thành bản đồ đối tượng 320px × 320px × 12px thông qua thao tác cắt và tích chập, nó sẽ trở thành 320px × 320px × Feature map 32 Thao tác cắt như sau:
Hình 6: Thao thác cắt ảnh
2.5 CSP structure
Tên đầy đủ của CSP Net là Cross Stage Partial Network, chủ yếu giải quyết các vấn đề về khối lượng tính toán lớn trong suy luận từ góc độ thiết kế cấu trúc mạng Tác giả của CSP Net tin rằng vấn đề tính toán suy luận quá mức là do sự trùng lặp của thông tin Gradient của mạng được tối ưu hóa Do đó, CSP structure trước tiên được sử dụng để chia bản đồ tính năng của lớp cơ sở thành hai phần, sau đó hợp nhất giữa các lớp, điều này có thể giảm số lượng phép tính và đảm bảo độ chính xác
Trang 102.6 Neck
Mô hình YOLOv5 hiện nay sử dụng cấu trúc FPN + PAN, tuy nhiên lúc mới ra mắt YOLOv5 chỉ sử dụng cấu trúc FPN, FPN là top-down chuyển xuống các đặc điểm (passing down the strong semantic features of the high-level), nhưng chỉ tăng cường thông tin ngữ nghĩa và không truyền thông tin định vị PAN nhắm đến điểm này, thêm một phần bottom-up phía sau FPN, bổ sung FPN và chuyển các tính năng định vị mạnh cấp thấp lên, còn được gọi là "chiến thuật hai tháp"
Hình 7: Neck structure của mô hình YOLOv5
4 Việc chọn Mô hình YOLOv5 cho nghiên cứu với một số lý do:
- Mạng hiện là tiên tiến nhất trong lĩnh vực phát hiện đối tượng nhanh;
- Kiến trúc nhẹ, điều này cho phép chúng tôi huấn luyện mô hình bằng cách sử
dụng các tài nguyên tính toán nhỏ và chi phí thấp;
Trang 11- Kích thước nhỏ của mô hình có thể cho phép nó được ứng dụng cho các thiết bị
di động (như nhận diện người, đồ vật…)
Hình 8: So sách giữa các mô hình YOLOV5 và mô hình EfficientDet [7]
Với các hình ảnh mà chúng tôi thu thập được đều có độ phân giải trung bình là 1920px x 1080px, cùng với độ chính xác của YOLOv5s6 là thấp hơn nhiều so với YOLOv5m6 và YOLOv5m6 khó giải quyết vấn đề nhận biết các đối tượng nhỏ (vấn
đề nổi tiếng của YOLO) [13] YOLOv5l6 và YOLOv5x6 lại có params rất lớn gấp 2.15 và 3.94 lần YOLOv5m6 nên việc huấn luyện mô hình là rất mất thời gian và quan trọng nhất là không thực thi được trên thiết bị có cấu hình thấp như thiết bị Jetson AGX Xavier Developer Kit của chúng tôi Vì vậy chúng tôi đã chọn Pretrained model YOLOv5m6 làm mô hình huấn luyện trong nghiên cứu này
Bảng 2 Độ chính xác và tốc độ của các mô hình Pretrained model [14]
Trang 125 Huấn luyện mô hình
Việc đầu tiên của quá trình huấn luyện mô hình là điều chỉnh siêu tham số parameter), điều này giúp xác định các tham số tối ưu hơn cho tập dữ liệu huấn luyện Tiếp theo sử dụng các hyper- parameter đã được điều chỉnh để huấn luyện mô hình và bắt đầu từ việc kiểm tra mô hình YOLOv5m6 đã được huấn luyện Có khoản
(hyper-30 hyper- parameter được sử dụng trong YOLOv5m6 đó là:
1 lr0: 0.01 # initial learning rate
18 hsv_s: 0.7 # image Saturation augmentation (fraction)
HSV-19 hsv_v: 0.4 # image HSV-Value augmentation (fraction)
20 degrees: 0.0 # image rotation (+/- deg)
21 translate: 0.1 # image translation (+/- fraction)
22 scale: 0.5 # image scale (+/- gain)
23 shear: 0.0 # image shear (+/- deg)
24 perspective: 0.0 # image perspective (+/- fraction), range 0-0.001
25 flipud: 0.0 # image flip up-down (probability)
26 fliplr: 0.5 # image flip left-right (probability)
27 mosaic: 1.0 # image mosaic (probability)
28 mixup: 0.0 # image mixup (probability)
29 copy_paste: 0.0 # segment paste (probability)
Trang 13copy-Sau quá trình huấn luyện các Hyper-parameter được mô hình hoá như hình 9 Mỗi Hyper-parameter là một chấm nhỏ thể hiện sự phù hợp (trục y) tương ứng với các giá trị của nó (trục x); Màu vàng cho biết mật độ của các Hyper-parameter tập trung cao hơn; Sự phân bố của các chấm nhỏ/Hyper-parameter theo chiều dọc cho thấy một tham số bị vô hiệu và không làm ảnh hưởng đến các đối tượng đi qua nó Các loại Hyper-parameter được phân bố như sau:
Hình 9: Sự phân bố của các loại Hyper-parameter
Sử dụng mô hình được huấn luyện trước là một kỹ thuật phổ biến trong thị giác máy được gọi là học chuyển giao [15] Nó đẩy nhanh quá trình huấn luyện luyện và giữ cho sự tổng quát hóa ở mức cao Trong các thí nghiệm, chúng tôi đã quan sát
Trang 14thấy rằng số chu kỳ huấn luyện tối ưu là 300, sau đó có những thay đổi không đáng
kể trong mô hình Hình 10 cho thấy các hàm Loss thay đổi như thế nào trong quá trình huấn luyện, kết quả được hiển thị trên một trong các phần tách để xác nhận chéo giữa các lần huấn luyện
Hàm YOLOv5 loss là tổng của ba hàm loss nhỏ hơn
- Loss hồi quy hộp giới hạn - hình phạt cho việc phát hiện hộp neo sai, Lỗi bình phương trung bình được tính toán dựa trên vị trí hộp dự đoán (x, y, h,
w);
- Loss phân loại - Entropy chéo được tính toán để phân loại đối tượng;
- Loss đối tượng - Lỗi bình phương trung bình được tính cho Điểm đối tượng
- độ tin cậy (ước tính nếu hộp neo chứa đối tượng)
Hình 10: Các thay đổi về hồi quy, phân loại và mất đối tượng của
hộp giới hạn trong quá trình huấn luyện mô hình