Xem mẫu
- Hội nghị Quốc gia lần thứ 24 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2021)
Mô hình CNN nhẹ cho bài toán phân loại sâu
bệnh trên lúa
Nguyễn Thanh Thiện
Khoa Kỹ thuật Máy tính,
Trường Đại học Công nghệ Thông tin – Đại học Quốc gia TP.HCM
Email: thiennt@uit.edu.vn
Abstract— Việc phát hiện sâu bệnh đóng vai trò quan (Convolution Neural Network – CNN), để giải quyết
trọng trong hoạt động nông nghiệp nói chung cũng như bài toán này có thể phân chia thành một số hướng tiếp
sản xuất lúa gạo nói riêng. Trong xu thế ứng dụng các cận chính. Hướng tiếp cận đầu tiên dựa trên phương
thành tựu khoa học kỹ thuật vào sản xuất nông nghiệp, pháp transfer learning: sử dụng lại trọng số (toàn bộ
hướng tới một nền nông nghiệp công nghệ cao, tiên tiến, hoặc một phần) của các mô hình đã được huấn luyện
hiện đại, làm thế nào để có thể phát hiện chính xác một (pre-trained) trên một tập dữ liệu tổng quát với kích
cách tự động sâu bệnh trở thành một bài toán có nhiều ý thước lớn (thường là ImageNet), sau đó tiến hành tinh
nghĩa thực tế. Trong bài báo này, chúng tôi đề xuất một
chỉnh cấu trúc mạng và cuối cùng là huấn luyện lại cấu
mô hình CNN nhẹ (lightweight) có khả năng phân loại
trúc mạng mới (nếu cần). Các thao tác tinh chỉnh cấu
sâu bệnh trên cây lúa. Mô hình sử dụng thiết kế Skip-
Layer Excitation (SLE) với số lượng tham số ít, độ phức
trúc mạng thường được sử dụng gồm có thêm hoặc bớt
tập tính toán thấp, rất phù hợp để triển khai trong thực một số lớp CNN, thay đổi bộ phân lớp – thường là các
tế trên các thiết bị nhúng với khả năng xử lý hạn chế. Kết lớp kết nối đầy đủ (Fully Connected – FC). Hướng tiếp
quả thực nghiệm cho thấy mô hình có hiệu quả tương cận sử dụng transfer learning được sử dụng phổ biến
đương các mô hình tương tự trên nhiều tập dữ liệu khác trong nhiều nghiên cứu về bài toán này. Nhóm tác giả
nhau. Shrivastava [1] sử dụng mô hình AlexNet để trích xuất
đặc trưng và dùng Support Vector Machine (SVM) để
Keywords- Phân loại ảnh, mô hình CNN nhẹ, sâu bệnh phân lớp dựa trên các đặc trưng này. Nghiên cứu của
trên lúa, Skip-Layer Excitation. Chen [2] kết hợp mô hình DenseNet với khối Inception
để tạo thành mô hình DENS-INCEP. Kathiresan và các
I. GIỚI THIỆU đồng nghiệp [3] đề xuất mô hình RiceDenseNet dựa
trên kiến trúc mạng Densenet-169 bằng cách thêm lớp
Lúa là một trong những cây lương thực quan trọng Max pooling vào mô hình gốc và thêm các lớp Average
trên thế giới. Sự phát triển của cây lúa chịu tác động pooling, FC, Dropout, Batch Normalization vào bộ
của nhiều yếu tố trong đó sâu bệnh là một trong những phân lớp hiện có. Nhìn chung, hướng tiếp cận transfer
yếu tố tiêu cực gây ra nhiều ảnh hưởng nghiêm trọng. learning dễ thực hiện và có hiệu suất cao (phần lớn đều
Nếu không được phát hiện và diệt trừ sớm, sâu bệnh sẽ đạt được độ chính xác hơn 90%) vì được xây dựng dựa
làm chậm quá trình sinh trưởng của cây lúa cũng như trên các mô hình đã chứng tỏ được hiệu quả trong bài
làm giảm năng suất và chất lượng lúa thu hoạch. toán phân lớp ảnh tổng quát. Tuy nhiên, hầu hết các mô
Nếu như trước đây sâu bệnh chỉ được phát hiện một hình trên đều có kích thước lớn, nhiều tham số do sử
cách thủ công thông qua quan sát bằng mắt thường thì dụng nhiều lớp CNN nên khó triển khai hoặc nếu triển
khai được cũng hoạt động kém hiệu quả trong môi
hiện nay bằng việc áp dụng một số công nghệ và kỹ
trường ứng dụng thực tế (thường chỉ có các thiết bị có
thuật mới, việc phát hiện sâu bệnh đã có thể được thực
khả năng xử lý hạn chế, hiệu năng thấp như điện thoại
hiện một cách tự động với độ chính xác cao, góp phần di động, Raspberry Pi, …).
làm giảm chi phí, tăng cường hiệu quả sản xuất nông
nghiệp. Một trong những kỹ thuật thu hút được nhiều Một hướng tiếp cận khác cũng sử dụng CNN cho
sự chú ý và đầu tư nghiên cứu trong thời gian gần đây bài toán này là xây dựng các kiến trúc mạng mới nhẹ
hơn bằng cách sử dụng ít lớp CNN đồng thời kết hợp
là các kỹ thuật xử lý ảnh trên nền tảng trí tuệ nhân tạo,
thêm một số kỹ thuật xử lý khác nhưng vẫn cho hiệu
mà cụ thể là các mô hình học sâu (deep learning). Các quả tương đương hoặc tốt hơn các mô hình mạng nhiều
mô hình này đã cho thấy hiệu quả vượt trội so với các lớp như trên. Đây là hướng tiếp cận có nhiều khả năng
kỹ thuật máy học truyền thống trước đây, đặc biệt là phát triển và ứng dụng trong thực tế, do các mô hình
trong các bài toán về phân loại ảnh, nên ngày càng được tạo ra theo hướng này thường có chi phí tính toán
được sử dụng rộng rãi. thấp, cấu trúc đơn giản nên rất thuận lợi để triển khai
Các nghiên cứu áp dụng mô hình học sâu, mà phổ trên nhiều môi trường và thiết bị phần cứng khác nhau.
biến là sử dụng các mạng mang nơ-ron tích chập Nghiên cứu của Yang [4] đã cho thấy hiệu quả của
hướng tiếp cận này trong một số bài toán tương tự.
ISBN 978-604-80-5958-3 288
- Hội nghị Quốc gia lần thứ 24 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2021)
Rahman [5] đề xuất một mô hình CNN đơn giản, gọi là - Mô hình đề xuất có hiệu suất tương đương các
Simple CNN để phân loại sâu bệnh trên cây lúa. Mô mô hình cùng loại khi thực nghiệm trên các bộ
hình này sử dụng 5 lớp tích chập và 3 lớp FC để phân dữ liệu khác nhau trong khi kích thước và số
lớp 9 loại sâu bệnh khác nhau với độ chính xác trung lượng tham số lại ít hơn, đồng nghĩa với việc
bình là 94.33%. Tuy nhiên, để đạt được độ chính xác có thể đưa mô hình vào ứng dụng trong thực tế
trên, việc huấn luyện mô hình này cần phải trải qua hai một cách hiệu quả và phổ biến hơn.
giai đoạn, trong đó giai đoạn đầu tiến hành trên bộ dữ Phần còn lại của bài báo được tổ chức như sau:
liệu với số lớp lớn hơn (chia 9 lớp ban đầu thành nhiều trong phần II, chúng tôi mô tả mô hình đề xuất. Trong
lớp con với tổng số lớp được sử dụng là 17 lớp), giai
phần III, chúng tôi đánh giá hiệu năng của mô hình.
đoạn sau giữ nguyên các trọng số của hầu hết các lớp,
Cuối cùng, chúng tôi kết luận bài báo trong phần IV.
chỉ huấn luyện lại bộ phân lớp (lớp FC cuối cùng) để
chuyển việc phân loại về đúng số lớp ban đầu. Đây II. MÔ HÌNH ĐỀ XUẤT
cũng là hạn chế của mô hình, do phải tốn thêm chi phí
cho việc huấn luyện đồng thời cũng giảm khả năng ứng A. Kiến trúc mô hình
dụng trong thực tế, bởi không phải lúc nào cũng có thể
thu thập được bộ dữ liệu phân lớp theo nhiều cấp độ Mô hình CNN mà chúng tôi đề xuất được xây dựng
khác nhau. Hossain và các cộng sự [6] giới thiệu một dựa trên các khối SLE [7] và các khối DS [7]. Kiến trúc
mô hình CNN nhẹ khác gồm có 3 lớp tích chập và 2 của mô hình được trình bày trên hình 1.
lớp FC (trong phần còn lại của bài báo, chúng tôi gọi
mô hình này là Custom CNN). Mô hình này có khả
năng xác định 5 loại bệnh khác nhau trên cây lúa với
độ chính xác 97.82%. Mặc dù có kiến trúc mạng khá
đơn giản nhưng kích thước của mô hình này (với
khoảng 3.7 triệu tham số) vẫn khá lớn so với các mô
hình khác như MobileNetv2 (2.3 triệu tham số),
SqueezeNet (0.7 triệu tham số), … Điều đó cũng phần
nào làm giảm khả năng ứng dụng trong thực tế của mô
hình nếu được triển khai trên các thiết bị nhúng hiệu
năng thấp.
Nhận thấy tiềm năng ứng dụng của các mô hình
CNN nhẹ cũng như các hạn chế của các mô hình đang
có, chúng tôi đề xuất và xây dựng một mô hình CNN
mới với số lượng tham số ít hơn bằng việc áp dụng các
thiết kế và cấu trúc mạng mới nhẹ hơn. Mục tiêu của
mô hình mới là giảm chi phí tính toán nhưng vẫn đảm
bảo được hiệu suất tương tự hoặc tốt hơn các mô hình
hiện có. Ngoài ra, mô hình cần phải được thiết kế sao
cho có thể huấn luyện và thực thi mà không cần phải
yêu cầu những điều kiện đặc biệt nào về dữ liệu hoặc
tài nguyên máy tính. Các thiết kế CNN mà chúng tôi sử
dụng trong bài báo này, khối SLE và khối Down
Sampling (DS), đã được sử dụng trong việc xây dựng
một mô hình sinh đối kháng (Generative Adversarial
Network – GAN) nhẹ [7] có thể tạo ra các ảnh có độ
phân giải cao với rất ít ảnh huấn luyện. Khác với phần
lớn các mô hình GAN đòi hỏi nhiều tài nguyên, do tính
chất nhỏ gọn của mình, mô hình này (FastGAN) có thể
huấn luyện và thực thi trên máy tính có tài nguyên hạn
chế. Từ thực tế này, chúng tôi đã nghiên cứu và ứng
dụng các khối trên vào mô hình CNN mới, để mô hình
mới đáp ứng các mục tiêu thiết kế đã đề ra.
Tóm lại, trong bài báo này, chúng tôi có những
đóng góp chính như sau:
- Chúng tôi đề xuất một mô hình CNN nhẹ cho
bài toán phân loại ảnh sâu bệnh hại lúa dựa Hình 1. Kiến trúc mạng của mô hình đề xuất
trên các thiết kế mạng nhỏ gọn với chi phí tính (Các giá trị 64 x 14 x 14, 128 x 7 x 7, … thể hiện kích thước
toán thấp. đầu ra của các khối. Conv: Convolution, s: stride, p: padding)
ISBN 978-604-80-5958-3 289
- Hội nghị Quốc gia lần thứ 24 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2021)
Ảnh đầu vào là ảnh RGB có kích thước 224 x 224.
Sau khi đi qua tất cả các khối SLE và DS, ảnh đầu vào
sẽ trở thành feature-map với kích thước 128 x 7 x 7.
Qua lớp FC cuối cùng, feature-map này sẽ được phân
loại vào một trong các lớp cho trước.
B. Khối SLE
Khối SLE được các tác giả [7] xây dựng dựa trên ý
tưởng skip-connection đã được sử dụng trong kiến trúc
ResNet. Thay vì sử dụng phép cộng giữa đầu ra của
các lớp tích chập khác nhau như các khối residual
trong ResNet, SLE sử dụng phép nhân nhưng phép
nhân này chỉ tốn rất ít chi phí tính toán, do một trong
hai feature-map chỉ có kích thước 1 x 1. Nhờ thiết kế
này, SLE không những kế thừa được các ưu điểm của
các khối residual trong ResNet mà còn góp phần làm
giảm chi phí tính toán khi thực thi – phù hợp với mục
tiêu thiết kế mà chúng tôi đã đặt ra. Đó cũng là lý do
chính mà chúng tôi sử dụng SLE cho mô hình đề xuất.
Cấu trúc của các khối SLE được biểu diễn trên hình 2.
C. Khối DS
Khối DS được sử dụng với mục tiêu làm giảm kích
thước của feature-map. Việc sử dụng DS đã cho thấy
hiệu quả trong [7] nên chúng tôi sử dụng khối này thay
cho việc sử dụng các lớp pooling thông thường. Cấu
trúc của các khối DS được thể hiện trên hình 3. Hình 3. Cấu trúc của một khối DS
III. THỰC NGHIỆM
A. Xây dựng và huấn luyện mô hình
Mô hình đề xuất được cài đặt bằng Python với các
thư viện chính PyTorch, NumPy, Scikit-learn, fvcore.
Chúng tôi huấn luyện mô hình với các thông số sau:
learning rate = 0.0001, optimizer Adam, batch size =
64. Để tăng cường dữ liệu (data augmentation), trong
quá trình huấn luyện, chúng tôi sử dụng các kỹ thuật
sau một cách ngẫu nhiên với xác suất 0.5: lật (flip) ảnh
theo chiều ngang hoặc chiều dọc, xoay ảnh (từ -15 o
đến 15o) và biến đổi phối cảnh (perspective) với tỷ lệ
biến đổi 0.5.
Mô hình được huấn luyện và đánh giá trên máy tính
sử dụng hệ điều hành Ubuntu 64-bit 18.04.2 LTS với
cấu hình: Intel Core i7-4790 CPU@3.60 GHz, 8 GB
RAM và GPU Nvidia GeForce GTX 1660 6 GB.
B. Bộ dữ liệu
Chúng tôi sử dụng hai bộ dữ liệu [5] và [6] để tiến hành
đánh giá hiệu năng của mô hình.
Bộ dữ liệu [5] gồm có 1426 ảnh được chia thành 9
loại bệnh và sâu hại, bao gồm: than vàng (false smut),
rầy nâu (brown plant hopper), cháy bìa lá (bacterial leaf
blight), đạo ôn trên cổ bông (neck blast), sâu đục thân
Hình 2. Cấu trúc của một khối SLE. (stemborer), sâu gai (hispa), khô vằn và/hoặc thối bẹ
(sheath blight and/or sheath rot), đốm nâu (brown spot)
và khác (others – bao gồm 3 loại: thân và lá xanh bình
thường, lá vàng bình thường, thân và lá khô).
ISBN 978-604-80-5958-3 290
- Hội nghị Quốc gia lần thứ 24 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2021)
Mô hình Số lượng tham số FLOPs
Simple CNN [5] 889309 98576440
Hình 4. Hình ảnh thực tế một số loại sâu bệnh trong các bộ Custom CNN [6] 3710373 350763824
dữ liệu thực nghiệm (từ trái qua phải: cháy bìa lá, đốm nâu, Mô hình đề xuất 448673 79004544
rầy nâu, sâu gai, than vàng).
Bảng 1. Số lượng tham số và số lượng phép tính dấu chấm
Bộ dữ liệu [6] gồm 4199 ảnh của 5 loại bệnh: Đạo động (FLOPs) của các mô hình
ôn (blast), cháy bìa lá, đốm nâu, khô vằn và tungro. Bộ
dữ liệu này được chia thành 3 tập: train (2102 ảnh), Mô hình Bộ dữ liệu [5] Bộ dữ liệu [6]
validation (1257 ảnh) và test (840 ảnh).
Simple CNN [5] 87.59% 99.88%
Một số hình ảnh minh loại cho các loại sâu bệnh từ hai
bộ dữ liệu được biểu diễn trên hình 4. Custom CNN [6] 66.20% 97.82% (*)
C. Độ đo đánh giá Mô hình đề xuất 80.01% 99.88%
Để đánh giá mức độ phức tạp của mô hình, chúng Bảng 2. Độ chính xác của các mô hình
tôi sử dụng hai thông số của mô hình là số lượng tham (*: Kết quả được công bố trong [6])
số (number of parameters) và số lượng phép tính dấu
chấm động (floating-point operations – FLOPs). Số E. Phân tích và đánh giá kết quả
lượng tham số của một mô hình là tổng số lượng các
tham số của tất cả các lớp trong mô hình. Số lượng Đầu tiên chúng tôi so sánh độ phức tạp của các mô
phép tính dấu chấm động là tổng số phép tính dấu hình với hai thông số như đã trình bày ở trên. Kết quả
được trình bày trên bảng 1. So với hai mô hình còn lại,
chấm động được thực hiện trong tất cả các lớp của mô
mô hình đề xuất có số lượng tham số và số lượng phép
hình. Để đơn giản, chúng tôi xác định giá trị FLOPs
tính dấu chấm động ít hơn, chứng tỏ mô hình này có
của mỗi mô hình khi nhận dữ liệu đầu vào là 1 ảnh đơn
(batch size = 1). thể huấn luyện và thực thi nhanh hơn cũng như cần ít
Để đánh giá hiệu quả phân loại trên tập thử nghiệm, tài nguyên hơn để hoạt động.
chúng tôi sử dụng độ chính xác (accuracy). Độ chính Tiếp theo chúng tôi so sánh độ chính xác của từng
xác là tỷ lệ số mẫu được phân lớp chính xác trên tổng mô hình trên hai bộ dữ liệu. Các kết quả này được trình
số mẫu thử nghiệm. bày trên bảng 2. Có thể nhận thấy, mô hình đề xuất
hiệu quả hơn mô hình Custom CNN trên cả hai bộ dữ
D. Quy trình thực nghiệm
liệu. Mô hình đề xuất có hiệu năng tương đương mô
Mô hình đề xuất được thực nghiệm đánh giá và so hình Simple CNN trên bộ dữ liệu [6] nhưng kém hơn
sánh kết quả với hai mô hình Simple CNN [5] và trên bộ dữ liệu [5]. So với bộ dữ liệu [6], tất cả các mô
Custom CNN [6]. hình đều có sự suy giảm về độ chính xác khi thực hiện
Chúng tôi tiến hành thực nghiệm theo điều kiện các đánh giá trên bộ dữ liệu [5]. Có sự chênh lệch này một
tác giả các bộ dữ liệu này đã thực hiện, cụ thể như sau: phần là do bộ dữ liệu [5] phức tạp hơn bộ dữ liệu [6]
- Với bộ dữ liệu [5], chúng tôi tiến hành thực khi có cả sâu hại lẫn bệnh với số lượng lớp nhiều hơn
nghiệm theo k-fold cross-validation với k = (9 lớp so với chỉ 5 lớp của bộ dữ liệu [6]), một số lớp
10. Độ chính xác của mô hình được xác định trong bộ dữ liệu [5] lại có cả sự kết hợp của một hoặc
bằng trung bình cộng độ chính xác của tất cả nhiều loại sâu bệnh hoặc tình trạng lá khác nhau trong
các fold. khi số lượng mẫu dùng để huấn luyện và đánh giá lại ít
- Trên bộ dữ liệu [6] chúng tôi thực hiện huấn hơn rất nhiều (chỉ bằng 1/3 so với bộ dữ liệu [6]). Mặt
luyện trên tập train và đánh giá mô hình trên khác, kết quả này cũng cho thấy hạn chế của mô hình
tập test. Độ chính xác được xác định trên đề xuất, bởi với số lượng tham số ít hơn thì mô hình
chính tập test này. khó có thể nắm giữ được nhiều thông tin cần thiết để có
Với mỗi bộ dữ liệu, tất cả các mô hình đều được thể phân loại chính xác, nhất là trong trường hợp tập dữ
đánh giá sau khi huấn luyện 50 epoch. liệu huấn luyện có số lượng hạn chế và có nhiều loại
Chúng tôi cài đặt lại mô hình Simple CNN bằng biến thể khác nhau trong cùng một lớp như bộ dữ liệu
PyTorch để thực nghiệm theo quy trình trên. Đối với [5] nêu trên. Do đó, làm thế nào để cân bằng giữa kích
mô hình Custom CNN, chúng tôi sử dụng mã nguồn thước mô hình và độ chính xác do mô hình mang lại,
mà các tác giả đã cung cấp và chỉ thực nghiệm trên bộ hay nói cách khác, thiết kế mô hình như thế nào để vừa
dữ liệu [5]. nhỏ gọn vừa đạt được độ chính xác cao vẫn là câu hỏi
mở cần được tiếp tục nghiên cứu giải quyết.
ISBN 978-604-80-5958-3 291
- Hội nghị Quốc gia lần thứ 24 về Điện tử, Truyền thông và Công nghệ Thông tin (REV-ECIT2021)
IV. KẾT LUẬN Deep Convolution Neural Network”, ISPRS - International
Archives of the Photogrammetry, Remote Sensing and Spatial
Trong bài báo này, chúng tôi đề xuất đề xuất một Information Sciences, vol. 423, pp. 631-635, 2019.
mô hình CNN nhẹ cho bài toán phân loại sâu bệnh trên [2] J. Chen, D. Zhang, Y. A. Nanehkarana and D. Li, “Detection
lá lúa sử dụng thiết kế SLE. Kết quả thực nghiệm bước of rice plant diseases based on deep transfer learning”, Journal
of the Science of Food and Agriculture, vo1. 100, pp. 3246-
đầu cho thấy mặc dù có số lượng tham số ít hơn nhưng 3256, 2020.
mô hình vẫn đạt được hiệu quả tương đương các mô [3] G. Kathiresan, M. Anirudh, M. Nagharjun, R. Karthik,
hình cùng loại, cho thấy tiềm năng ứng dụng và khả “Disease detection in rice leaves using transfer learning
năng mở rộng của mô hình. Quá trình thực nghiệm techniques”, Journal of Physics: Conference Series, vol. 1911,
cũng cho thấy mô hình vẫn có những hạn chế nhất định 2021.
cần cải thiện. Vì vậy, chúng tôi sẽ tiếp tục hoàn thiện [4] Y. Li, J. Nie, X. Chao, “Do we really need deep CNN for
plant diseases identification?”, Computers and Electronics in
mô hình, tiếp tục đánh giá và cải tiến cả về hiệu năng Agriculture, vol. 178, 2020.
lẫn kích thước, để mô hình có thể đưa vào áp dụng [5] C. R. Rahman, P. S. Arko, M. E. Ali, M. A. I. Khan, S. H.
trong thực tiễn trên nhiều môi trường và thiết bị khác Apon, F. Nowrin, A. Wasif, “Identification and recognition of
nhau. rice diseases and pests using convolutional neural networks”,
Biosystems Engineering, vol. 194, pp. 112-120, 2020.
[6] Hossain S.M.M. et al. (2020) Rice Leaf Diseases Recognition
LỜI CẢM ƠN Using Convolutional Neural Networks. In: Yang X., Wang
Nghiên cứu này được thực hiện tại Khoa Kỹ thuật CD., Islam M.S., Zhang Z. (eds) Advanced Data Mining and
Máy tính, Trường Đại học Công nghệ Thông tin – Đại Applications. ADMA 2020. Lecture Notes in Computer
học Quốc gia TP.HCM. Science, vol 12447. Springer, Cham.
https://doi.org/10.1007/978-3-030-65390-3_23.
[7] B. Liu, Y. Zhu, K. Song, A. Elgammal, “Towards Faster and
Stabilized GAN Training for High-fidelity Few-shot Image
TÀI LIỆU THAM KHẢO Synthesis,” ICLR, 2021.
[1] V.K. Shrivastava1, M.K. Pradhan, S. Minz, M. P. Thakur,
“Rice Plant Disease Classification Using Transfer Learning of
ISBN 978-604-80-5958-3 292
nguon tai.lieu . vn