Đồ án tốt nghiệp Chương 1: Giới thiệu tổng quan Robot diệt cỏ áp dụng máy học nhận diện: Với loại máy này việc xử lý cỏ dại sẽ trở nên dễ dàng hơn tiết kiệm được nguồn lao động, lượng t
Trang 1TRƯỜNG ĐẠI HỌC BÌNH DƯƠNG KHOA CÔNG NGHỆ THÔNG TIN, ROBOT VÀ TRÍ TUỆ NHÂN TẠO
ĐỒ ÁN TỐT NGHIỆP
TÊN ĐỀ TÀI ĐỒ ÁN TỐT NGHIỆP
ÁP DỤNG PHƯƠNG PHÁP HỌC SÂU (DEEP LEARNING) TRONG QUẢN LÝ CÂY TRỒNG
Trang 2Thầy Dương Anh Tuấn không chỉ là người hướng dẫn mà còn là nguồn động viên quan trọng, giúp em vượt qua những thách thức và phát triển không ngừng Sự tận tâm
và lòng nhiệt huyết của thầy đã tạo nên một môi trường học tập tích cực và tràn đầy động lực
Em biết ơn không chỉ về sự chuyên nghiệp mà còn về tình cảm và lòng nhiệt thành
mà thầy đã dành cho sinh viên Mong rằng tình cảm này sẽ còn được duy trì và phát triển trong thời gian sắp tới
Em xin gửi lời cảm ơn đến gia đình và đặc biệt là ba mẹ - là người đã nuôi dưỡng, giáo dục em nên người, giúp em vượt qua bao khó khăn, thách thức của cuộc sống, giúp
em có thể theo đuổi đam mê, lý tưởng của mình trên chặn đường dài phía trước
Và cuối cùng em cũng không quên cảm ơn đến những người bạn, những người đã gắn bó suốt quãng đời sinh viên của em cho đến ngày hôm nay, những người đã giúp đỡ
em rất nhiều trong suốt quá trình thực hiện hoàn thành bài báo cáo này
Một lần nữa em xin được gửi lời biết ơn chân thành và sâu sắc nhất đến thầy cô, gia đình và bạn bè đã giúp đỡ em hoàn thành bài báo cáo này!
SINH VIÊN THỰC HIỆN
Trang 3
Đồ án tốt nghiệp
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 4
Đồ án tốt nghiệp
NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN
Trang 5
Đồ án tốt nghiệp
ĐỀ CƯƠNG CHI TIẾT
Tên đề tài: “Áp dụng phương pháp học sâu (Deep Learning) trong quản lý cây trồng
và cỏ dại.”
Giảng viên hướng dẫn: Ths Dương Anh Tuấn
Thời gian thực hiện đề tài: Từ ngày 06 tháng 09 năm 2023 đến ngày 06 tháng 12 năm
2023
Sinh viên thực hiện: Lê Khắc Chiến- 19050001
Kế hoạch thực hiện: Đề tài được thực hiện trong 12 tuần Tóm tắt như sau:
Từ 6/9/2023
đến 27/9/2023
- Tìm hiểu, phân tích, xác định yêu cầu bài toán
- Tìm hiểu các tài liệu liên quan về quản lý cỏ dại
- Chuẩn bị nguồn dữ liệu dataset phục vụ quá trình huấn luyện và nhận diện
Từ 28/9/2023
đến 11/10/2023
- Xây dựng ý tưởng hệ thống nhận diện
- Xây dựng ý tưởng hoạt động phần cứng
- Chọn môi trường phát triển và các công nghệ được sử dụng để thực hiện bài toán
Từ 12/10/2023
đến 25/10/2023
- Tìm hiểu các thuật toán hỗ trợ phát hiện và nhận diện trong quản lý cây trồng và cỏ dại
Trang 6Đồ án tốt nghiệp
Từ 26/10/2023
đến 15/11/2023
- Tổ chức dữ liệu huấn luyện
- Tiến hành huấn luyện cho mô hình
- Viết báo cáo
- Thử nghiệm và đánh giá mô hình
- Demo sản phẩm, kiểm tra và khắc phục các lỗi cuối cùng
Trang 7Đồ án tốt nghiệp
vi
MỤC LỤC
LỜI CẢM ƠN i
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ii
NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN iii
ĐỀ CƯƠNG CHI TIẾT iv
MỤC LỤC vi
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT x
DANH MỤC CÁC BẢNG xi
DANH MỤC CÁC HÌNH ẢNH, ĐỒ THỊ xii
MỞ ĐẦU 1
GIỚI THIỆU TỔNG QUAN 1
1.1 Lý do thực hiện đề tài 1
1.2 Các hệ thống tương tự 2
1.3 Phát biểu bài toán 4
1.4 Kết quả cần đạt 6
cơ sở lý thuyết 8
2.1 Cơ sở lý thuyết 8
2.1.1 Mạng thần kinh tích chập (CNN) 8
2.1.1.1 Feature trong CNN 8
2.1.1.2 Tích chập - Convolution 9
2.1.1.3 Relu Layer 10
2.1.1.4 Pooling layer 11
2.1.1.5 Fully connected layer 11
2.1.1.6 Sử dụng phương pháp học máy có giám sát (supervised machine learning) 11
2.1.1.7 Sử dụng thuật toán CNN cho hệ thống 12
2.1.1.8 Sử dụng Python với hệ thống thần kinh tích chập CNN 13
2.1.2 Module giao diện hệ thống 13
2.1.2.1 Sử dụng Flask và so sánh các framework tương tự 13
2.2 Công nghệ sử dụng 15
Trang 8Đồ án tốt nghiệp
vii
2.2.1 YOLOv8-Segmentation 15
2.2.2 Roboflow 19
2.2.3 Google Colab 19
2.2.4 OpenCV 20
2.2.5 Python Flask 20
2.3 Tiếp cận, giải quyết vấn đề 21
2.3.1 So sánh các mô hình trong nhận diện quản lý cây trồng bằng camera giám sát 21
PHÂN TÍCH - THIẾT KẾ 25
3.1 Yêu cầu chức năng 25
3.1.1 Ngữ cảnh sử dụng 25
3.1.1.1 Danh sách Actor 25
3.1.1.2 Sơ đồ ngữ cảnh (Context Diagram) 26
3.1.2 Các use case 26
3.1.2.1 Danh sách Use Case 26
3.1.2.2 Sơ đồ Use Case tổng quát 27
3.2 Yêu cầu phi chức năng 27
3.3 Thiết kế mô hình máy học 29
3.3.1 Mô hình tổng quát 29
3.3.2 Mô hình tập dữ liệu huấn luyện 30
3.3.2.1 Lựa chọn loại cây trồng chính 30
3.3.2.2 Chuẩn bị và gán nhãn dữ liệu đầu vào 31
3.3.3 Mô hình chi tiết 32
3.3.3.1 Nhận hình ảnh 32
3.3.3.2 Tiền xử lý 33
3.3.3.3 Nhận diện cây trồng 33
3.3.3.4 Nhận diện cỏ dại 34
3.3.3.5 Tính tỷ lệ cỏ dại so với cây trồng 35
3.3.3.6 Đếm số lượng cây 35
3.3.3.7 Hiển thị kết quả 36
3.3.4 Cơ sở toán học 37
Trang 9Đồ án tốt nghiệp
viii
3.3.4.1 Nguyên lý tính toán nhận diện đối tượng 37
3.3.4.2 Nguyên lý tính toán tỷ lệ cỏ dại 43
3.4 Mô hình xử lý tương tác 44
3.4.1 Use case chi tiết 44
3.4.1.1 Khởi chạy hệ thống phân tích với video 46
3.4.1.2 Khởi động hệ thống với camera 46
3.4.1.3 Kiểm tra tỷ lệ cỏ dại 47
3.4.1.4 Đếm số lượng cây trồng 47
3.4.1.5 Dừng hệ thống 48
3.4.2 Sơ đồ tuần tự 49
3.4.3 Sơ đồ hoạt động 50
3.5 Thiết kế giao diện người dùng 51
3.5.1 Hệ thống màn hình 51
3.6 Thiết kế chi tiết 54
3.6.1 Kiến trúc xây dựng dự án 54
Kết quả và THỰC NGHIỆM 56
4.1 Kịch bản thử nghiệm 56
4.1.1 Thành phần thiết bị triển khai trong mô hình thực nghiệm 56
4.1.2 Thiết lập cho Jetson Nano 57
4.1.2.1 Cài đặt hệ điều hành 57
4.1.2.2 Điều khiển Jetson Nano với Remote Desktop 59
4.1.3 Sơ đồ kết nối phần cứng trong mô hình thực nghiệm 60
4.1.4 Cấu hình thử nghiệm 62
4.1.5 Các thư viện và môi trường cần thiết 62
4.1.6 Phát triển kịch bản thử nghiệm với detection và segmentation 63
4.2 Kết quả kịch bản thử nghiệm 64
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 68
5.1 Kết quả đạt được 68
5.2 Hạn chế 69
5.3 Hướng phát triển 70
TÀI LIỆU THAM KHẢO 71
Trang 10Đồ án tốt nghiệp
ix
Trang 11Đồ án tốt nghiệp
x
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Trang 12Đồ án tốt nghiệp
xi
DANH MỤC CÁC BẢNG
Bảng 1-1: Bảng kết quả cần đạt 6
Bảng 3-1: Bảng danh sách các Actor 25
Bảng 3-2: Bảng danh sách Use Case tổng quát 26
Bảng 3-3: Bảng danh sách Use Case chi tiết 44
Bảng 4-1: Danh sách công cụ phần cứng 56
Bảng 4-2: Danh sách thư viện cần cài đặt 62
Bảng 5-1: Bảng kết quả tự đánh giá 68
Trang 13Đồ án tốt nghiệp
xii
DANH MỤC CÁC HÌNH ẢNH, ĐỒ THỊ
Hình 1-1: Robot AI diệt cỏ trên ruộng rau 3
Hình 1-2: Robot diệt cỏ bằng tia laser tự động 3
Hình 2-1: CNN xử lý hình ảnh đầu vào và phân loại các đối tượng dựa trên giá trị 8
Hình 2-2: Minh họa tích chập 10
Hình 2-3: Ví dụ áp dụng Relu Layer 10
Hình 2-4: Minh họa Max pooling và Average pooling trong CNN 11
Hình 2-5: Kiến trúc mạng Yolo 15
Hình 2-6: Non Max Supression (NMS) xử lý hậu kỳ ảnh 16
Hình 2-7: So sánh các phiên bản YOLO khác nhau 17
Hình 2-8: Các loại nhận diện đối với phân đoạn hình ảnh 17
Hình 2-9: Quy trình làm việc đối với Roboflow 19
Hình 3-1: Sơ đồ ngữ cảnh 26
Hình 3-2: Sơ đồ đặc tả Use Case tổng quát 27
Hình 3-3: Mô hình tổng quát 29
Hình 3-4: Dữ liệu huấn luyện đầu vào 32
Hình 3-5: Nhận ảnh từ camera 32
Hình 3-6: Tiền xử lý hình ảnh đầu vào 33
Hình 3-7: Kết quả đánh dấu vùng cây trồng và cỏ dại 34
Hình 3-8: Che cây trồng chính 34
Hình 3-9: Quy trình xử lý tính toán 35
Hình 3-10: Đếm số lượng cây 36
Hình 3-11: Hiển thị kết quả với các giao thức cơ bản 36
Hình 3-12: Tuân thủ cấu trúc mô hình YOLOv8-P5 38
Hình 3-13: Biểu diễn mô hình hoạt động của Yolo 39
Hình 3-14: Mô phỏng các tham số của đầu ra và đầu vào 40
Hình 3-15: Kết quả tính toán với IoU 41
Hình 3-16: Định vị các tham số Localization Loss 42
Hình 3-17: Sơ đồ đặc tả Use Case chi tiết 44
Hình 3-18: Sơ đồ tuần tự 49
Hình 3-19: Sơ đồ hoạt động trong phân tích dưới dạng video 50
Hình 3-20: Sơ đồ hoạt động trong phân tích với camera 51
Hình 3-21: Màn hình giới thiệu về hệ thống 52
Hình 3-22: Màn hình phân tích với video quay trước 52
Hình 3-23: Màn hình phân tích với camera trực tiếp 53
Trang 14Đồ án tốt nghiệp
xiii
Hình 3-24: Kiến trúc dự án 54
Hình 4-1: Thiết bị Jetson Nano 57
Hình 4-2: Chọn file tiến hành Flash 58
Hình 4-3: Cài đặt hệ điều hành cho thẻ nhớ (SD Card) 58
Hình 4-4: Màn hình cái đặt thành công hệ điều hành Jetson Nano 59
Hình 4-5: Kiểm tra địa chỉ IP Jetson Nano 59
Hình 4-6: Truy cập vào Jetson Nano với Remote Desktop 60
Hình 4-7: Sơ đồ kết nối phần cứng 61
Hình 4-8: Sản phẩm phần cứng hoàn thiện 61
Hình 4-9: Cấu hình thiết bị 62
Hình 4-10: Quy trình tính toán xử lý nhận diện với detection 65
Hình 4-11: Kết quả xử lý tính toán với detection 65
Hình 4-12: Quy trình tính toán xử lý nhận diện với Segmentation 66
Hình 4-13: Kết quả xử lý tính toán với Segmentation 67
Trang 15Đồ án tốt nghiệp Mở đầu
MỞ ĐẦU
Mục tiêu nghiên cứu
- Xây dựng hệ thống quản lý cây trồng và cỏ dại bằng ngôn ngữ lập trình Python
- Xây dựng mô hình dữ liệu thực tế tại khu vườn đậu đen
- Phân vùng hình ảnh sử dụng mô hình Convolutional Neural Network
- Xây dựng chức năng quản lý cây trồng kiểm soát tỉ lệ cỏ dại trong vườn
- Tạo giao diện sử dụng từ đó có thể đưa ra các thông tin và cảnh báo cho người sử dụng khi tỉ lệ cỏ dại đạt ngưỡng nhất định
Đối tượng và phạm vi nghiên cứu
- Tìm hiểu về cách xây dựng, hoạt động, các tài liệu liên quan phục vụ cho hướng nghiên cứu và phát triển đề tài
- Tìm hiểu các cách ứng dụng của sản phẩm trong thực tế
- Nghiên cứu các sản phẩm tiêu biểu liên quan
- Xây dựng hệ thống phần cứng dựa trên Jetson Nano
- Đối tượng sử dụng: tất cả mọi người có nhu cầu sử dụng giúp quản trí khu vườn của mình
Ý nghĩa thực tiễn
- Tiếp cận công nghệ mới, học tập nghiên cứu liên quan đến xử lý dữ liệu
và thị giác máy tính
- Hiểu được quy trình phân vùng hình ảnh với thư viện YOLOv8
- Hiểu được quy trình xử lý đối với các thuật toán về CNN
- Biết thêm quy trình tích hợp từ mô hình nhận diện qua phần cứng
Trang 16Đồ án tốt nghiệp Mở đầu
- Triển khai trên phần cứng NVIDIA Jetson Nano Development Kit-B01
- Tìm hiểu các thư viện hỗ trợ lập trình
- Kiểm tra kết quả đạt được
Kết quả mong đợi
Hoàn thành cơ bản những yêu cầu ban đầu đã để ra của sản phẩm Tạo giao diện người dùng, đưa ra các thông tin để giúp người dùng quản lý khu vườn của mình một cách tốt nhất
Kiến thức áp dụng thực tiễn:
Kiến thức áp dụng cho sản phẩm này bao gồm các kiến thức về khoa học dữ liệu Dùng dữ liệu thu thập và tự tạo để đưa ra các thông tin phán đoán, từ đó sẽ xử lý ảnh đầu ra bằng phần cứng phân tích là Jetson Nano Nhằm đưa ra những thông tin và cảnh báo về cây trồng và cỏ dại cho người sử dụng
Đề tài sau khi thực hiện cũng sẽ không tránh khỏi các thiếu sót Em mong được sự đóng góp ý kiến của quý thầy cô và các bạn để phần mềm của em có thể cải thiện hơn
Và nội dung bài báo cáo được tổ chức thành 5 chương, có nội dung như sau:
Chương 1: Giới thiệu tổng quan
Trong chương này em giới thiệu chung về đề tài, giới thiệu về tính mới tính ứng dụng của sản phẩm
Chương 2: Cơ sở lý thuyết
Trong chương này em trình bày thuyết chính phục vụ nội dung của đồ án, mô hình nhận diện Trình bày cách tiếp cận, giải quyết vấn đề Mô tả sơ lược công nghệ sử dụng trong đồ án
Chương 3: Phân tích thiết kế
Trong chương này em sẽ phân tích các yêu cầu chức năng, và phi chức năng đồng thời thiết kế mô hình tổng quát, chi tiết, cơ sở toán học cho hệ thống, mô hình triển khai giao diện người dùng
Chương 4: Kết quả và thực nghiệm
Trong chương này em so sánh sự khác biệt giữa mô hình đã có và mô hình hiện tại
mà mình đang nghiên cứu Nêu kết quả thử nghiệm của kịch bản va hướng xử lý của các trường hợp ngoại lệ
Chương 5: Kết luận và hướng phát triển
Trang 17Đồ án tốt nghiệp Mở đầu
Sau một quá trình miệt mài với công việc, dù gặp lắm khó khăn nhưng đây là lúc
để em nhìn lại thành quả lao động của mình Đây là lúc em tổng kết lại những mặt đạt
được, những mặt hạn chế của đề tài và đề xuất hướng phát triển
Trang 18Đồ án tốt nghiệp Chương 1: Giới thiệu tổng quan
GIỚI THIỆU TỔNG QUAN
Hiện trạng
Khoa học và công nghệ có vai trò quan trọng trong việc chuyển đổi mô hình tăng trưởng, nâng cao năng suất, chất lượng, hiệu quả và sức cạnh tranh của nền kinh tế thế giới Hiện nay, cùng với sự phát triển của nền công nghiệp 4.0, các thiết bị và máy móc
đã đóng một vai trò quan trọng trong cuộc sống hằng ngày của con người Ứng dụng những thiết bị “thông minh” có áp dụng trí tuệ nhân tạo nhằm cải tiến đời sống con người, hoàn thiện các thao tác cơ bản, tăng tốc độ và thời gian có thể xử lý công việc
Dù chúng vẫn chưa thể cạnh tranh với sức mạnh xử lý của con người,nhưng cũng đã có rất nhiều ứng dụng hữu ích được tạo ra để khai thác tiềm năng của chúng Hầu hết các lĩnh vực trong cuộc sống đều có mặt của các thiết bị, ứng dụng khoa học và công nghệ như nông nghiệp, công nghiệp, giáo dục, dịch vụ,…
Với sự gia tăng dân số toàn cầu, đảm bảo cung ứng lương thực cho tương lai là quan trọng, nhưng cần kết hợp với bảo vệ tài nguyên và môi trường Tận dụng dữ liệu cây trồng từ người nông dân đòi hỏi sự áp dụng hiệu quả trong thời đại khoa học tiên tiến, đồng thời tận dụng sức mạnh của công nghệ thông tin để cải thiện chất lượng và sản lượng, tiết kiệm lao động, đưa ra quyết định chính xác trong nghiên cứu và sản xuất, góp phần tăng trưởng kinh tế và phát triển tri thức con người, nâng cao chất lượng sống Đối với nông nghiệp trồng trọt sản xuất lương thực thì cỏ dại là một trong những đối tượng dịch hại đáng lo ngại, tác hại rất lớn trên cây trồng Cỏ dại không gây hại trực tiếp cho cây trồng nhưng nó cạnh tranh dinh dưỡng, ánh sáng, nước với cây trồng Cỏ dại có thể làm giảm năng suất và chất lượng sản phẩm Ngoài ra, nhiều loài cỏ dại là ký chủ của sâu bệnh hại và còn là nơi trú ẩn, sinh sản của chuột Cỏ dại còn là cầu nối của nhiều dịch hại nguy hiểm khác như cỏ Lồng vực, Đuôi phụng còn là ký chủ phụ của rầy nâu truyền bệnh vàng lùn, lùn xoăn lá Đây là lúc chúng ta sử dụng đến công nghệ để
tự động nhận biết và tìm cách loại bỏ những thực vật hoang dại và giữ lại các thực vật đang muốn phát triển
Với mong muốn xây dựng một hệ thống dựa trên phương pháp học sâu nhằm hỗ trợ cho người dùng dễ dàng quản lý cây trồng và cỏ dại trong khu vườn của mình Đó là
lí do em đã chọn đề "Áp dụng phương pháp học sâu (Deep Learning) trong quản lý cây
Trang 19Đồ án tốt nghiệp Chương 1: Giới thiệu tổng quan
trồng và cỏ dại" Trong báo cáo này em sẽ trình bày về các khái niệm cơ bản của công nghệ nhận dạng phân vùng hình ảnh, các công cụ và phương pháp thực hiện để xây dựng
hệ thống ra sao, cũng như báo cáo kết quả và một số đánh giá về sản phẩm, hướng phát triển thêm của đề tài
Tính cần thiết
Nông nghiệp công nghệ cao và đổi mới khoa học công nghệ đóng vai trò quan trọng trong giải quyết thách thức phát triển nông nghiệp Sử dụng các công nghệ như sinh học, nhà kính, tưới nhỏ giọt, cảm biến, tự động hóa, và internet vạn vật giúp tiết kiệm chi phí, tăng năng suất, giảm giá thành, và nâng cao chất lượng nông sản, đồng thời bảo vệ môi trường và làm cho sản xuất nông nghiệp linh hoạt, đáp ứng hiệu quả nhu cầu thị trường
Tiến bộ công nghệ nông nghiệp chính xác giúp nông dân dễ dàng cải thiện năng suất Việc khai thác triệt để dữ liệu nông nghiệp, đặc biệt qua viễn thám, mang lại nhiều lợi ích quan trọng Dưới đây là 5 ứng dụng chính của viễn thám trong nông nghiệp chính xác
Giám sát cây trồng: Giúp quan sát đồng trồng và đưa ra các quyết định kịp thời
Tiết kiệm thời gian, tiền bạc và tăng sản lượng
Theo dõi độ ẩm đất: Dựa trên những dữ liệu thu thập được chúng ta có thể quyết
định thời điểm, vị trí và lượng nước được tưới cho cây trồng Giúp cung cấp thêm hàng loạt dữ liệu về đất
Quản lý dinh dưỡng: Sau các cuộc viễn thám chúng ta có thể xác định các khu vực
trên cánh đồng cần được tính toán lại phân bón và các chất dinh dưỡng cần thiết Giúp giảm thiểu lãng phí phân bón
Phát hiện cỏ dại: Giúp thực hiện các biện pháp phòng ngừa, kiểm soát sự phát
triển của cỏ dại vầ bảo vệ mùa màng
Ước tính sản lượng: Giúp nông dân dự đoán sản lượng Từ đó đưa ra các quyết
định tốt hơn về lịch trình trồng trọt, thu hoạch và tiếp thị
Các thiết bị ứng dụng các phương pháp khoa học ngày nay hiện đang được sử dụng
và nghiên cứu sản xuất ở Việt Nam tuy nhiên với nhu cầu và nguồn kinh tế thì có vẻ như các sản phẩm vẫn chưa ứng dụng rộng rãi ở quy mô rộng
Trang 20Đồ án tốt nghiệp Chương 1: Giới thiệu tổng quan
Robot diệt cỏ áp dụng máy học nhận diện: Với loại máy này việc xử lý cỏ dại sẽ
trở nên dễ dàng hơn tiết kiệm được nguồn lao động, lượng thuốc trừ sâu sử dụng để loại
bỏ cỏ dại giảm 90%, bảo vệ hệ sinh thái đất tại nông trường Dựa trên việc xác định đâu
là cây trồng và đâu là cỏ dại nhờ áp dụng các phương pháp máy học và phân tích dữ liệu thông qua các thiết bị quan sát và cảm biến
Máy diệt cỏ laser áp dụng máy học nhận diện: tương tự với máy phun thuốc trừ
sâu có sử dụng máy học máy bắn tia laser sẽ giải quyết các bài toán về lao động, bảo vệ môi trường và hoàn toàn không sử dụng đến thuốc trừ sâu Trong quá trình áp dụng các phương pháp khoa học và sinh học từ lúc con người nguyên cứu ra loại thuốc có thể diệt
Hình 1-2: Robot diệt cỏ bằng tia laser tự động Hình 1-1: Robot AI diệt cỏ trên ruộng rau
Trang 21Đồ án tốt nghiệp Chương 1: Giới thiệu tổng quan
cỏ thì đến nay số lượng loại thuốc diệt cỏ ngày càng tăng đồng thời kém hiệu quả theo từng năm, nguyên nhân là do quá trình sử dụng thuốc diệt cỏ, những loại cỏ sống sót trong lần phun đó sẽ sinh trưởng ra những loại cỏ thế hệ sau có sức kháng sinh cao hơn, thậm chí là khó tiêu diệt hơn Đây là hậu quả của việc lạm dụng thuốc diệt cỏ
Cách hoạt động chung của hai loại máy trên: khi bắt đầu sử dụng máy sẽ chụp ảnh mặt đất, từ đó theo dõi và phát hiện cỏ dại theo thời gian thực Bằng cách sử dụng AI những thiết bị này phát hiện rõ những loại cỏ dại nhanh hơn cả tốc độ của con người có thể kịp nhận biết đâu là cỏ dại đâu là cây trồng với vị trí chính xác lên đến từng cm Sau khi nhận biết được các loại cỏ dại này các tìm tia laser hoặc thuốc trừ sâu sẽ được bắn
ra tại nơi mà thiết bị này đi qua
Tính mới của đề tài
Phương pháp nhận diện truyền thống: Đối với các phương pháp quản lý cỏ dại
bằng khoa học công nghệ nhận diện, phân loại trước kia phần lớn sẽ chú trọng vào phần thu thập dữ liệu cỏ dại và từ đó nhận biết đâu là cỏ dại đâu là cây trồng Tuy nhiên đối với từng địa điểm khác nhau và từng cây trồng khác nhau sẽ có từng loại cỏ dại khác nhau sinh sôi nảy mầm Làm cho việc thu thập dữ liệu về cỏ cho từng địa điểm này là một vấn đề khá khó khăn, ngoài ra có thể tính đến tương lai có thể có những loại cỏ mới chưa được phát hiện Với số lượng dữ liệu cỏ dại khổng lồ việc xử lý dữ liệu, gán nhãn, huấn luyện sẽ gây trở ngại về thời gian và công sức
Phương pháp nhận diện trong đề tài nghiên cứu này: Vì để khắc phục được những
khuyết điểm về mặt thời gian và công sức nhằm phù hợp với thời gian nghiên cứu của mình nhưng vẫn có tính ứng dụng và cũng là một phần mới trong việc nhận diện so với những phương pháp nhận diện trước kia, đồng thời là bước khởi đầu cho những sản phẩm cải tiến sau này Đối với việc nhận diện quản lý cây trồng và cỏ dại em sẽ nhận diện các loại cây trồng chính thay vì các loại cỏ dại để nhận biết và phân biệt giữa cây trồng và cỏ dại từ đó thu hẹp lượng dữ liệu phải thu thập đồng thời nhận biết được nhiều loại cỏ không phải và cây trồng chính hơn
Mục tiêu
Trong đề tài nghiên cứu này em sẽ tìm hiểu và tạo ra một hệ thống áp dụng các công nghệ khoa học nhằm quản lý khu vườn của người sử dụng và cảnh báo đến người dùng khi mật độ cỏ dại so với cây trồng đạt đến ngưỡng nhất định từ đó người trồng có thể quản lý khu vườn của mình một cách chủ động hơn Giúp gia tăng sản lượng cây trồng, giúp cây trồng không bị cạnh tranh chất dinh dưỡng bởi các loại cỏ dại
Trang 22Đồ án tốt nghiệp Chương 1: Giới thiệu tổng quan
Nghiên cứu các phương pháp quản lý cỏ dại và cây trồng có áp dụng công nghệ khoa học từ đó so sánh và đánh giá các hướng làm tối ưu ở phạm vi phù hợp, đồng thời đưa ra một số hướng phát triển của đề tài này trong tương lai nhằm mang lại được một sản phẩm có thể ứng dụng và triển khai trên phạm vi rộng rãi Định hướng tương lai về việc áp dụng các kỹ thuật mới cho quảnn lý cây trồng và cỏ dại bằng DL
Chia sẻ các kĩ thuật và quy trình xây dựng trong suốt quá trình hoàn thiện sản phẩm này cũng là một phần trong bài nghiên cứu này Từ đó có một cái nhìn tổng quan giúp
so sánh và đánh sản phẩm, hướng làm Xem xét các quy trình tạo và làm nên cải tiến và thay đổi để phù hợp với nhu cầu, thị trường và ứng dụng của sản phẩm trong nhiều hoạt động trong cuộc sống
Nội dung
Trong phần nội dung thực hiện đồ án này sẽ bao gồm các nội dung chính như So sánh các thuật toán nhận diện phục vụ cho bài toán quản lý cây trồng và cỏ dại Quy trình xử lý nhận diện và tính toán tỷ lệ dựa trên các khung hình nhận được từ camera Cách tích hợp và sử dụng thiết bị NVIDIA Jetson Nano Developer Kit trên Yolov8 Nhận xét ưu nhược điểm, ứng dụng và hướng phát triển của đề tài
Phạm vi
Trong phạm vi đồ án này sản phẩm sẽ được thực hiện và triển khai mô phỏng trên khu vườn cây đậu đen Tại đây cây trồng chính mà sản phẩm quan tâm đó chính là cây đậu đen Sản phẩm quan sát và bắt đầu nhận diện, truyền tải thông tin đến trung tâm điều khiển Giúp người dùng quan sát được tình hình cỏ dại và cây trồng của mình mà không cần phải trực tiếp ra vườn
Sản phẩm đồ án
Sản phẩm sẽ bao gồm một hệ thống phần cứng mạch xử lý nhận diện có kết nối camera và internet Sản phẩm sẽ hỗ trợ người dùng thông qua giao diện website giúp người dùng quản lý tình trạng cỏ dại bất cứ đâu, bất cứ khi nào trong khu vườn của mình
và không cần phải di chuyển trực tiếp địa điểm cần kiểm tra
Ràng buộc nghiệp vụ và công nghệ sản phẩm
Ràng buộc số lượng truy cập: Ứng dụng hỗ trợ phiên bản website và chỉ sử dụng một camera duy nhất vì vậy trong trường hợp nhiều lượng truy cập sẽ gây ra một số xung đột khi xử lý
Ràng buộc công nghệ: Sản phẩm xử lý hình ảnh trên thiết bị Jetson Nano hoặc những thiết bị phần cứng hỗ trợ xử lý hình ảnh bằng GPU
Trang 23Đồ án tốt nghiệp Chương 1: Giới thiệu tổng quan
ẩm ướt,…Nhằm tăng tuổi thọ hệ thống
Bảng 1-1: Bảng kết quả cần đạt
Biết cách xây dựng quy trình xử lý bài
toán quản lý cây trồng và cỏ dại
Các quy trình đưa ra phù hợp và khả thi thực hiện tại thời điểm thực hành Biết xây dựng bộ dữ liệu và cấu trúc
bộ dữ liệu phù hợp với mô hình nhận
Mô hình nhận diện tốt và tối ưu Hệ thống nhận diện tỷ lệ chính xác cao
>75% với các loại cỏ khác nhau Triển khai sản phẩm thành mô hình
hoàn thiện trên phần cứng có giao diện
dành cho người dùng
Giao hiện dễ sử dụng, thân thiện với người sử dụng
Biết đánh giá sản phầm và nêu được
hướng phát triển đề tài
Đánh giá thực tế dựa trên sản phẩm hoàn thành, đưa ra hướng phát triển phù hợp từ sản phẩm đề tài
Tính ứng dụng
Trang 24Đồ án tốt nghiệp Chương 1: Giới thiệu tổng quan
Quản lý mật độ cỏ dại trong vườn: Đối với những khu vườn phải thường xuyên quan sát lượng cỏ dại để đưa ra các phương pháp giải quyết và số lượng nhân lực phù hợp, hoặc sẽ quản lý cỏ dại theo từng mốc thời gian, có thể thấy những khu vườn này
đã phải hao phí thời gian và công sức nhưng vẫn không thể quản lý cỏ dại tối ưu nhất Người trồng không thể biết được khi nào thì họ nên xử lý cỏ dại, khi nào thì lượng cỏ dại sẽ phát triển lớn mạnh và phải mất thời gian để có được những thông tin này
Vì vậy sản phẩm của em sẽ là một sản phẩm giải quyết các vấn để trên Sản phẩm
sẽ cung cấp cho người dùng về mật độ cỏ dại so với cây trồng là bao nhiêu phần trăm
và cảnh báo cho người dùng Giúp họ nắm bắt được tình hình cỏ dại trong vườn và đưa
ra những hướng giải quyết, cũng như thuê số lượng nhân lực phù hợp
Trang 25Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
xử lý ảnh, cụ thể là nhận diện đối tượng trong ảnh
Mô hình CNN để training và kiểm tra, mỗi hình ảnh đầu vào sẽ chuyển nó qua 1 loạt các lớp tích chập với các bộ lọc (Kernals), tổng hợp lại các lớp được kết nối đầy đủ (Full Connected) và áp dụng hàm Softmax để phân loại đối tượng có giá trị xác suất giữa 0 và 1
2.1.1.1 Feature trong CNN
Trong mạng Neural Convolutional (CNN), các feature (đặc trưng) là những thông tin quan trọng được trích xuất từ ảnh đầu vào Các feature này giúp mô hình CNN nhận biết và phân loại các đối tượng trong ảnh Các CNN sẽ so sánh hình ảnh dựa theo từng mảnh Feature Thay vì phải khớp các bức ảnh lại với nhau thì CNN sẽ nhìn ra sự tương động khi tìm kiếm thô các Feature khớp với nhau bằng 2 hình ảnh tốt hơn Mỗi Feature được xem là một hình ảnh mini có nghĩa chúng là những mảng 2 chiều nhỏ Các Feature này đều tương ứng với các khía cạnh nào đó của hình ảnh và chúng có thể khớp lại với nhau
Hình 2-1: CNN xử lý hình ảnh đầu vào và phân loại các đối tượng dựa trên giá trị
Trang 26Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
2.1.1.2 Tích chập - Convolution
Lớp tích chập là khối xây dựng cơ bản của Mạng thần kinh tích chập (CNN) Nó đóng một vai trò quan trọng trong việc trích xuất các đặc điểm từ dữ liệu đầu vào, chẳng hạn như hình ảnh Những yếu tố quan trọng của một convolutional layer là: stride, padding, filter map, feature map
Mạng CNN sử dụng filter để áp dụng vào các vùng của ma trận hình ảnh Các filter map là các ma trận 3 chiều, bên trong đó là những tham số và chúng được gọi là parameters
Stride là số lượng dịch chuyển filter map theo từng pixel dựa vào các giá trị từ trái qua phải Khi stride là 1 thì ta di chuyển các kernel 1 pixel Khi stride là 2 thì ta di chuyển các kernel đi 2 pixel
Padding: Những giá trị viền xung quanh của ma trận hình ảnh sẽ được gán các giá trị 0 để có thể tiến hành nhân tích chập mà không làm giảm kích thước ma trận ảnh ban đầu
Feature map: Biểu diễn kết quả sau mỗi lần feature map quét qua ma trận ảnh đầu vào Sau mỗi lần quét thì lớp Convolutional sẽ tiến hành tính toán
Các tham số của các bộ lọc này được học thông qua quá trình lan truyền ngược (backpropagation) và cập nhật trong quá trình huấn luyện Những bộ lọc học được trong quá trình huấn luyện có thể phát hiện ra các đặc trưng phức tạp của hình ảnh, giúp cải thiện độ chính xác của mô hình Convolutional layer thường được sử dụng kết hợp với các lớp kích hoạt (activation layer) như ReLU (Rectified Linear Unit) để tạo động lực cho quá trình học và giảm thiểu độ dốc biến mất (vanishing gradient), một vấn đề thường gặp trong việc huấn luyện mạng neural sâu
Tích chập duy trì mối quan hệ giữa các pixel bằng cách tìm hiểu các tính năng hình ảnh bằng cách sử dụng các ô vương nhỏ của dữ liệu đầu vào Nó là 1 phép toán có 2 đầu vào như ma trận hình ảnh và 1 bộ lọc hoặc hạt nhân
Trang 27Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
2.1.1.3 Relu Layer
Relu layer là hàm kích hoạt trong neural network và hàm này còn được gọi là activation function Hàm kích hoạt có tác dụng mô phỏng các neuron có tỷ lệ truyền xung qua axon Trong activation function thì nó còn có hàm nghĩa là: Relu, Leaky, Tanh, Sigmoid, Maxout,
Hiện nay, hàm relu được dùng phổ biến và vô cùng thông dụng Nó được sử dụng nhiều cho các nhu cầu huấn luyện mạng neuron thì relu mang lại rất nhiều ưu điểm nổi bật như: việc tính toán sẽ trở nên nhanh hơn, Quá trình sử dụng relu, chúng ta cần lưu
ý đến vấn đề tùy chỉnh các learning rate và theo dõi dead unit Những lớp relu layer đã được sử dụng sau khi filter map được tính ra và áp dụng hàm relu lên những giá trị của filter map
Hình 2-2: Minh họa tích chập
Hình 2-3: Ví dụ áp dụng Relu Layer
Trang 28Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
2.1.1.4 Pooling layer
Khi ma trận ảnh đầu vào có kích thước quá lớn, các lớp Pooling layer sẽ được đặt vào giữa những lớp Convolutional để làm giảm những parameters Hiện, hai loại lớp Pooling được sử dụng phổ biến là Max pooling và Average
2.1.1.5 Fully connected layer
Khi 2 lớp convolutional layer và pooling layer nhận được ảnh truyền, lớp này sẽ
có nhiệm vụ xuất kết quả Khi ta nhận được kết quả là model đọc được thông tin ảnh, ta cần phải tạo sự liên kết để cho ra nhiều output hơn Đây chính là lúc ta sử dụng fully connected layer Ngoài ra, nếu lớp này có dữ liệu hình ảnh thì lớp sẽ chuyển chúng thành các mục chưa được phân chia chất lượng để tìm ra ảnh có chất lượng cao nhất
2.1.1.6 Sử dụng phương pháp học máy có giám sát (supervised machine learning)
Phần lớn các ứng dụng học máy thực tế đều sử dụng học tập có giám sát – supervised learning Vậy đối với ứng dụng của đề tài này phương pháp này sẽ có những
ưu điểm gì nổi bật so với các phương pháp học khác
Khả năng học đặc trưng tự động: Mô hình có khả năng tự học các đặc trưng quan
trọng từ dữ liệu hình ảnh của cây trồng mà không cần định rõ trước
Hiệu quả về mặt thời gian: Supervised machine learning có thể cung cấp hiệu suất
nhận diện nhanh chóng, đặc biệt là khi sử dụng các mô hình như CNN được tối ưu hóa cho xử lý hình ảnh
Khả năng tích hợp linh hoạt: Các mô hình có thể dễ dàng tích hợp vào các hệ thống
camera giám sát hiện đại để thực hiện nhận diện cây trồng trực tuyến
Hiệu suất cao với dữ liệu lớn: Khi được huấn luyện trên lượng dữ liệu lớn và đa
dạng, supervised learning có khả năng cung cấp hiệu suất nhận diện cao
Hình 2-4: Minh họa Max pooling và Average pooling trong CNN
Trang 29Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Cập nhật và tinh chỉnh dễ dàng: Dữ liệu mới có thể được thêm vào để cập nhật và
tinh chỉnh mô hình theo thời gian, giúp nâng cao khả năng nhận diện theo thời gian
Tận Dụng Dữ Liệu Gán Nhãn: Supervised learning tận dụng dữ liệu gán nhãn, nơi
mỗi hình ảnh cây trồng đã được gắn kết với nhãn đúng Điều này giúp mô hình học được
từ các mẫu dữ liệu có sẵn và cung cấp dự đoán chính xác khi đối mặt với dữ liệu mới
Tính phổ biến và sử dụng rộng rãi: Có nhiều thư viện và framework hỗ trợ
supervised machine learning như scikit-learn, TensorFlow, PyTorch, làm cho việc triển khai và sử dụng mô hình trở nên phổ cập và thuận tiện
Sử dụng supervised machine learning trong nhận diện cây trồng bằng camera giám sát giúp tự động hóa quá trình nhận diện, giảm sự phụ thuộc vào quy tắc cụ thể, và mang lại khả năng nhận diện nhanh chóng và linh hoạt Điều này làm cho phương pháp này trở thành một công cụ mạnh mẽ trong nhiều ứng dụng trong nông nghiệp và quản lý môi trường
2.1.1.7 Sử dụng thuật toán CNN cho hệ thống
Kiến trúc lý tưởng khi giải quyết vấn đề dữ liệu hình ảnh, một trong những mô hình Deep Learning tiên tiến không thể nhắc đến CNN Nó giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay CNN được sử dụng nhiều trong các bài toán nhận dạng, phân đoạn các đối tượng trong ảnh Dưới đây
sẽ là một số lý do lựa chọn mô hình này cho đề tài
Xử Lý Ảnh Toàn Cảnh: CNN có khả năng xử lý ảnh toàn cảnh (global image) và
học đặc trưng từ các phần khác nhau của hình ảnh, giúp nhận diện cây trồng trong ngữ cảnh tổng thể
Chia Sẻ Trọng Số (Weight Sharing): CNN sử dụng cơ chế chia sẻ trọng số trong
các lớp tích chập, giúp học được các đặc trưng cấp thấp và chia sẻ chúng ở nhiều vị trí khác nhau trên ảnh
Linh Hoạt với Kiến Trúc Mạng: CNN có thể được linh hoạt thiết kế với nhiều lớp
tích chập và lớp pooling, giúp nó hiệu quả trong việc trích xuất thông tin và học cấu trúc phức tạp từ dữ liệu hình ảnh
Hiệu Quả Tính Toán: CNN được thiết kế để làm giảm số lượng tham số cần tối ưu,
giúp giảm tải cho việc huấn luyện và triển khai mô hình trên các hệ thống thực tế
Data Augmentation: CNN có thể kết hợp với kỹ thuật tăng cường dữ liệu (data
augmentation) để tạo thêm biến thể từ dữ liệu huấn luyện, giúp mô hình có khả năng tổng quát hóa tốt hơn
Trang 30Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Tích Hợp Phương Pháp Học Đặc Trưng Tự Động: CNN có khả năng tự động học
các đặc trưng quan trọng từ dữ liệu, giảm thiểu sự cần thiết của việc xác định các đặc trưng bằng tay, giảm công sức và chi phí
Độ Chính Xác Cao: CNN thường mang lại độ chính xác cao trong các nhiệm vụ
nhận diện ảnh, vượt trội so với nhiều phương pháp truyền thống
Ứng Dụng Rộng Rãi: CNN đã được chứng minh thành công trong nhiều lĩnh vực
như nhận diện vật thể, nhận diện khuôn mặt, và phân loại hình ảnh, chứng tỏ tính đa dạng và hiệu quả của nó
2.1.1.8 Sử dụng Python với hệ thống thần kinh tích chập CNN
Python được sử dụng rộng rãi trong các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và máy học (ML) Các nhà phát triển sử dụng Python vì nó hiệu quả, dễ học
và có thể chạy trên nhiều nền tảng khác nhau Phần mềm Python được tải xuống miễn phí, tích hợp tốt với tất cả các loại hệ thống và tăng tốc độ phát triển
- Python có một thư viện tiêu chuẩn lớn, chứa nhiều dòng mã có thể tái sử dụng cho hầu hết mọi tác vụ Nhờ đó, các nhà phát triển sẽ không cần phải viết mã từ đầu
- Cộng đồng Python tích cực hoạt động bao gồm hàng triệu nhà phát triển nhiệt tình hỗ trợ trên toàn thế giới Nếu gặp phải vấn đề, bạn sẽ có thể nhận được sự hỗ trợ nhanh chóng từ cộng đồng
- Python có thể được sử dụng trên nhiều hệ điều hành máy tính khác nhau, chẳng hạn như Windows, macOS, Linux và Unix
2.1.2.1 Sử dụng Flask và so sánh các framework tương tự
Flask là một trong những framework web phổ biến và dễ sử dụng trong cộng đồng Python Tuy nhiên, có nhiều framework web khác cũng được sử dụng để phát triển ứng dụng web Python
Django
Trang 31Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
- Django là một framework web toàn diện, cung cấp một số tính năng như hệ quản trị cơ sở dữ liệu tích hợp, hệ thống quản lý người dùng,
và quản lý mô hình MVC (Model-View-Controller)
- Tích hợp nhiều tính năng mặc định, giúp gia tăng sự nhanh chóng và hiệu quả của quá trình phát triển
- Flask hỗ trợ việc xây dựng các định tuyến (routing) theo kiểu RESTful, giúp quản lý các tác vụ HTTP như GET, POST, PUT, DELETE một cách dễ dàng
- Flask có một cộng đồng lớn và nhiều tài liệu học tập trực tuyến, giúp nhà phát triển nhanh chóng giải quyết vấn đề và tìm hiểu cách sử dụng framework
- Flask sử dụng Jinja2 làm ngôn ngữ template, giúp tạo ra các trang web động và tương tác dễ dàng với dữ liệu từ máy chủ
Có thể thấy các framework khác sẽ có phần nhỉnh hơn về mặt tinh chỉnh và thiết
kế hệ thống so với Flask Tuy nhiên để ứng dụng và đề tài hệ thống sẽ khá hao tốn thời
Trang 32Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
gian và công sức Thay vì cung cấp hết tất cả mọi thứ, Flask cung cấp cho người dùng các thành phần cốt lõi thường được sử dụng nhất của khung ứng dụng web như URL routing, request & response object, template
Đồng thời đó Flask phù hợp cho những dự án nhỏ và trung bình Với nhu cầu tìm kiếm một giải pháp đơn giản và tùy chỉnh, và muốn giữ mức độ linh hoạt cao, Flask có thể là lựa chọn phổ biến và mạnh mẽ
Được ra mắt vào ngày 10 tháng 1 năm 2023 YOLOv8 là phiên bản mới nhất trong dòng mô hình YOLO Các mô hình YOLO được huấn luyện trước trên các bộ dữ liệu lớn như COCO và ImageNet Điều này cho phép chúng vừa có khả năng cung cấp dự đoán cực kỳ chính xác với các lớp đã được huấn luyện, vừa có thể học các lớp mới một cách tương đối dễ dàng cũng có tốc độ huấn luyện nhanh hơn, với độ chính xác cao và kích thước mô hình nhỏ Chúng có thể được huấn luyện trên các GPU đơn, do đó dễ tiếp cận hơn đối với các nhà phát triển Được công bố vào đầu năm 2023, YOLOv8 đã mang lại nhiều điểm tích cực so với phiên bản tiền nhiệm, như phát hiện không dùng anchor, giới thiệu lớp tích chập C3 và tăng cường mosaic
Về tổng thể, các phiên bản Yolo có cấu trúc giống như bảng biểu diễn dưới đây, tuy nhiên mỗi phiên bản sẽ có sự sắp xếp về số lượng và vị trí của các lớp mạng neural tính chập (Convolutional Layer) khác nhau Output cũng thay đổi theo như kích thước ảnh đầu vào ( Input Image ) Để nâng cao độ chính xác khi nhận diện vật thể người ta thường thêm các lớp vào Còn khi cần tăng tốc độ khung hình, tiết kiệm tài nguyên máy tính thì thường cắt bớt các layer (các bản yolo-tiny có ít layer hơn)
Hình 2-5: Kiến trúc mạng Yolo
Trang 33Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Là một mô hình phát hiện đối tượng phổ biến được biết đến với tốc độ và độ chính xác YOLO không xem xét từng vùng mà nhìn toàn bộ bức ảnh một lần sau đó predict
ra class, bounding box cho từng object trong hình
Thay vì xét vùng này vùng kia thì YOLO chia ảnh thành một lưới vuông với kích thước giả sử là NxN Sau đó duyệt từng ô trong ảnh với mỗi anchor box đó thì sẽ dự đoán class và offset của bounding box của vật thể Cuối cùng thì các bouding box có xác suất lớn nhất trên ngưỡng sẽ được giữ lại áp dụng một thuật toán có tên Non Max Supression (NMS) là bước xử lý hậu kỳ được sử dụng để cải thiện độ chính xác và hiệu quả của việc phát hiện đối tượng Trong phát hiện đối tượng, thông thường sẽ có nhiều khung giới hạn được tạo cho một đối tượng trong ảnh Các khung giới hạn này có thể chồng lên nhau hoặc đặt ở các vị trí khác nhau nhưng chúng đều đại diện cho cùng một đối tượng NMS được sử dụng để xác định và loại bỏ các hộp giới hạn dư thừa hoặc không chính xác và xuất ra một hộp giới hạn duy nhất cho từng đối tượng trong ảnh
Xét về tốc độ thì YOLO hiện đang khá nhanh so với các phương pháp nói trên (tốc
độ thử nghiệm max đạt được là 45 FPS) Tuy vậy điểm yếu của YOLO lại là hay bỏ sót các object nhỏ trên ảnh như: phát hiện xe trên ảnh vệ tinh, ảnh chụp flycam….Trong thực tế mạng YOLOv3 đã sử dụng 3 lưới khác nhau (3 feature map size khác nhau) để tiến hành predict trên các ô của lưới Điều này làm tăng khả năng detection của mạng, tránh bỏ sót đối tượng trong ảnh
Ta cũng có thể tự hình dung kiến trúc YOLOv8 bằng cách chuyển đổi nó sang định dạng ONNX ONNX viết tắt của Open Neural Network Exchange Đây là định dạng mở được sử dụng để biểu thị các mô hình học máy Nó có thể được xem như một đại diện
Hình 2-6: Non Max Supression (NMS) xử lý hậu kỳ ảnh
Trang 34Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
chung cho các mô hình ML, bởi vì tính phổ biến cho bất kỳ mô hình nào, dù code mô hình được viết trong PyTorch, TensorFlow hoặc các framework nào khác
Từ biểu đồ YOLOv8 có nhiều tham số hơn so với các phiên bản tiền nhiệm như YOLOv5, nhưng ít tham số hơn so với YOLOv6 Nó cung cấp khoảng 33% mAP nhiều hơn cho các mô hình kích thước n và mAP lớn hơn nói chung Từ biểu đồ thứ hai, có thể thấy YOLOv8 có thời gian suy luận nhanh hơn so với tất cả các phiên bản YOLO khác
Trong bài toán này với mục đích tính toán chính xác hơn về tỷ lệ cỏ dại thì việc khoanh vùng chính xác với từng pixel là phần thiết yếu Tránh các trường hợp khoanh vùng cây trồng chính nhưng lại bị che khuất cỏ dại nếu sử dụng detection thông thường
Có hai kiểu phân đoạn hình ảnh chính – phân đoạn ngữ nghĩa (semantic segmentation)
và phân đoạn cá thể (instance segmentation) Từ đó, Phân vùng ảnh có thể chỉ ra thông tin chi tiết của bức ảnh, bao gồm: Vị trí của vật thể trong ảnh, hình dạng của vật thể và từng pixel nào thuộc về vật thể nào Với việc nhận diện và khoanh vùng cây trồng chung
Hình 2-7: So sánh các phiên bản YOLO khác nhau
Hình 2-8: Các loại nhận diện đối với phân đoạn hình ảnh
Trang 35Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
là đậu đen thì em đã áp dụng phân đoạn ngữ nghĩa (semantic segmentation) vào sản phẩm của mình
Ở đây em sẽ so sánh thêm về segmentation của YOLO và các mô hình khác tương
tự bao gồm Mask R-CNN, Unet, FCN và nhiều mô hình khác
Yolo
Điểm mạnh:
- Tốc độ xử lý nhanh, phù hợp cho các ứng dụng thời gian thực
- Khả năng phát hiện đối tượng chính xác
Điểm yếu:
- Khả năng phân đoạn đối tượng không chi tiết như các mô hình khác
- Có thể gặp khó khăn trong việc phân loại các đối tượng nhỏ
Mask R-CNN
Điểm mạnh:
- Khả năng phát hiện và phân đoạn đối tượng chi tiết
- Độ chính xác cao trong việc xác định ranh giới của đối tượng
Điểm yếu:
- Tốc độ xử lý chậm hơn so với YOLO
- Yêu cầu tài nguyên tính toán cao hơn
Unet
Điểm mạnh:
- Thích hợp cho việc phân đoạn hình ảnh y tế
- Có khả năng xử lý các cấu trúc phức tạp trong hình ảnh
Điểm yếu:
- Khả năng phân đoạn đối tượng không cao như các mô hình phát hiện đối tượng khác
- Có thể gặp khó khăn trong việc xử lý hình ảnh có kích thước lớn
FCN (Fully Convolutional Networks)
Điểm mạnh:
- Đơn giản và hiệu quả trong việc phân đoạn hình ảnh
- Có khả năng xử lý hình ảnh có kích thước khác nhau
Trang 36Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Điểm yếu:
- Khả năng phân đoạn đối tượng không chi tiết như các mô hình khác
- Có thể gặp khó khăn trong việc xử lý các cấu trúc phức tạp trong hình ảnh
Là một framework dành cho nhà phát triển Thị giác Máy tính để thu thập dữ liệu tốt hơn để xử lý trước và các kỹ thuật đào tạo mô hình Roboflow có sẵn các tập dữ liệu công khai cho người dùng và cũng có quyền truy cập để người dùng tải lên dữ liệu tùy chỉnh của riêng họ Roboflow chấp nhận các định dạng chú thích khác nhau Trong quá trình xử lý trước dữ liệu, có các bước liên quan như định hướng hình ảnh, thay đổi kích thước, độ tương phản và tăng cường dữ liệu
Toàn bộ quy trình làm việc có thể được điều phối với các nhóm trong khuôn khổ Đối với đào tạo mô hình, có một loạt thư viện mô hình đã có mặt như EfficientNet, MobileNet, Yolo, TensorFlow, PyTorch,… Sau đó , các tùy chọn trực quan và triển khai mô hình cũng có sẵn do đó bao gồm toàn bộ hiện đại
Ứng dụng vào bài toán này Roboflow hỗ trợ xử lý dữ liệu, gán nhãn, quản lý cấu trúc dữ liệu, tăng cường dữ liệu cho mô hình Là một công cụ hữu ích giúp rút ngắn thời gian trong quá trình làm việc với bộ dữ liệu mà em chuẩn bị Ngoài ra Roboflow còn hỗ trợ huấn luyện và giao diện sử dụng, tuy nhiên đối với bài toán đặt ra đồng thời để ứng dụng nhu cầu chức năng em chỉ xem loại hỗ trợ này là nguồn tham khảo để cải thiện bài toán của riêng mình
Colaboratory hay còn gọi là Google Colab, là một sản phẩm từ Google Research,
nó cho phép thực thi Python trên nền tảng đám mây, đặc biệt phù hợp với Data analysis, machine learning và giáo dục Có thể sử dụng tài nguyên máy tính từ CPU tốc độ cao
và cả GPUs và cả TPUs
Hình 2-9: Quy trình làm việc đối với Roboflow
Trang 37Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Đây tuy rằng không phải là một máy chủ mạnh khi sử dụng miễn phí nhưng vẫn
là một lựa chọn phù hợp cho việc huấn luyện và trực quan hóa quá trình huấn luyện Giúp em có thể đánh giá sơ bộ mô hình sau khi huấn luyện
Là một bộ công cụ phần mềm hiện đại được ứng dụng trong quá trình xử lý hình ảnh, video, phân tích và Machine Learning theo thời gian thực Bộ công cụ OpenCV có hơn 2500 thuật toán được tối ưu hoá dành cho thị giác máy tính và Machine Learning
Nó hỗ trợ cho nhiều ngôn ngữ lập trình như C, C++, Python, Java,
Xây dựng và xử lý toàn bộ hoạt động GUI: OpenCV được cung cấp module Highgui giúp bạn có thể giải quyết toàn bộ vấn đề liên quan tới xây dựng và hoạt động GUI một cách đơn giản
Cung cấp tất cả tác vụ để phân tích video: OpenCV sẽ cung cấp các tác vụ như phân tích chuyển động giữa các khung hình liên tiếp trong video, theo dõi các đối tượng khác nhau trong video hay tạo mô hình giám sát, Ngoài ra, OpenCV cũng cung cấp các chức năng xử lý sự ổn định của video
Hỗ trợ tái tạo 3D trong Computer Vision: OpenCV cung cấp các thuật toán có thể tìm ra các mối quan hệ giữa những đối tượng khác nhau trong các hình ảnh 2D để tính toán cho vị trí 3D nhờ các thuật toán cụ thể
Trong ứng dụng đối với bài toán của mình, em sử dụng với mục đích làm việc với video từ webcam Hỗ trợ trong việc chuyển đổi khung hình thành 2D tăng khả năng xử
lý, chuyển đổi không gian màu hỗ trợ nhận biết cây trồng, làm mịn ảnh giúp loại bỏ các vật thể có thể gây ra sai sót tỷ lệ, phân tách các sắc tố màu có trong khung hình trong một khoảng thời gian, từ đó hỗ trợ xác định phân loại tỉ lệ cây trồng và cỏ dại
Tương tự Django Python Flask cũng là một micro-framework được viết bằng ngôn ngữ lập trình Python dùng cho các nhà phát triển web Micro ở đây không có nghĩa là framework này thiếu các chức năng mà thể hiện ở việc nó sẽ cung cấp những chức năng
Trang 38Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
cốt lõi nhất cho các ứng dụng web và có khả năng mở rộng, người dùng cũng có thể mở rộng bất cứ lúc nào vì Flask hỗ trợ rất nhiều các tiện ích mở rộng như tích hợp CSDL,
hệ thống upload, xác thực, template, email… Việc là một micro-framework cũng giúp cho flask có một môi trường xử lý độc lập và ít phải sử dụng các thư viện bên ngoài, điều này giúp nó nhẹ và ít gặp phải các lỗi hơn, việc phát hiện và xử lý các lỗi cũng dễ dàng và đơn giản hơn
Sự khác biệt giữa Flask và Django đều là 2 framework dùng cho các nhà phát triển web nhưng chúng có những điểm khác nhau cơ bản và vì vậy phù hợp với những đối tượng người dùng cũng khác nhau:
- Flask cung cấp hỗ trợ cho API, Django thì không có bất kỳ hỗ trợ nào cho API
- Flask không hỗ trợ các trang HTML động còn Django cung cấp các trang HTML động
- Flask là một khung công tác web Python được xây dựng để phát triển nhanh chóng còn Django được xây dựng cho các dự án dễ dàng và đơn giản
- Flask cung cấp một phong cách làm việc đa dạng hơn với khả năng mở rộng trong khi Django cung cấp một phong cách làm việc Nguyên khối
- Mặt khác, trình điều phối URL của khung công tác web Flask là một yêu cầu RESTful, trình điều phối URL của khung công tác Django dựa trên trình điều khiển-regex
- Flask là khung công tác WSGI trong khi Django là khung công tác web ngăn xếp đầy đủ
Trang 39Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
Ưu điểm: SVM hiệu quả trong việc xử lý dữ liệu có kích thước nhỏ hơn, có khả năng phân loại tốt khi dữ liệu rõ ràng và tách biệt SVM hoạt động tốt khi dữ liệu là tuyến tính và có thể được tách bằng một đường ranh giới tuyến tính Trong trường hợp
dữ liệu đặc trưng của cây trồng có thể được biểu diễn một cách tuyến tính SVM có thể
xử lý dữ liệu đa chiều, nơi mà mỗi chiều có thể tương ứng với một đặc trưng cụ thể của hình ảnh cây trồng Ngoài ra nó có thể tìm cách tạo ra một đường ranh giới tối ưu giữa các lớp dữ liệu, giúp tối ưu hóa độ chính xác của mô hình
Nhược điểm: Không hiệu quả như CNN trong xử lý dữ liệu hình ảnh phức tạp và
có thể không hoạt động tốt với dữ liệu lớn Trong trường hợp dữ liệu của cây trồng có các mối quan hệ phức tạp và phi tuyến tính, SVM có thể gặp khó khăn trong việc tìm ra đường ranh giới hiệu quả Mô hình SVM yêu cầu một lượng lớn dữ liệu huấn luyện để đảm bảo độ chính xác của mô hình, đặc biệt là khi đối mặt với việc nhận diện các loại cây trồng đa dạng
Đánh giá: SVM có thể là một lựa chọn tốt trong các trường hợp nơi dữ liệu có tính tuyến tính và số lượng đặc trưng không quá lớn Tuy nhiên, đối mặt với ảnh toàn cảnh
và dữ liệu phi tuyến tính, các mô hình sử dụng deep learning, như CNN hoặc mô hình phức tạp hơn, có thể mang lại hiệu suất tốt hơn Sự lựa chọn giữa SVM và các mô hình khác thường phụ thuộc vào yêu cầu cụ thể của ứng dụng và tính chất của dữ liệu
Random Forest:
Ưu điểm: Dễ dàng cài đặt, ít bị ảnh hưởng bởi nhiễu, và có khả năng xử lý cả dữ liệu phân loại và số Tốt cho việc phân loại dữ liệu dựa trên đặc trưng rõ ràng Nó linh hoạt và có thể được sử dụng trực tiếp cho bài toán nhận diện cây trồng mà không yêu cầu kiến thức sâu về tham số Random Forest không bị ảnh hưởng bởi các vấn đề về overfitting
Nhược điểm: Không hiệu quả bằng CNN trong việc xử lý dữ liệu hình ảnh, đặc biệt khi đặc trưng không rõ ràng hoặc phức tạp Đối với dữ liệu lớn, quá trình dự đoán của Random Forest có thể trở nên chậm hơn so với một số mô hình học máy khác như các mô hình dựa trên deep learning Nếu dữ liệu mất cân bằng giữa các lớp (ví dụ: nhiều ảnh có chứa một loại cây trồng hơn loại khác), Random Forest có thể bị thiên vị hướng các dự đoán về lớp có số lượng lớn hơn Random Forest không tự nhiên được thiết kế
để hiểu cấu trúc không gian của hình ảnh như các mô hình CNN, do đó có thể thiếu khả năng học đặc trưng tổng quát từ dữ liệu hình ảnh
Đánh giá: Có thể thấy lựa chọn hợp lý trong trường hợp có dữ liệu đa dạng và cần một mô hình có khả năng xử lý nhanh chóng chính là mô hình Random Forest Tuy nhiên, đối với nhiệm vụ nhận diện cây trồng trong hình ảnh, nếu có sẵn một lượng lớn
Trang 40Đồ án tốt nghiệp Chương 2: Cơ sở lý thuyết
dữ liệu và mong muốn đạt được hiệu suất chính xác cao, các mô hình học máy phức tạp hơn, như CNN, có thể là lựa chọn phù hợp hơn
K-Nearest Neighbors (KNN):
Ưu điểm: Đơn giản và dễ hiểu, tốt cho dữ liệu có kích thước nhỏ và rõ ràng Có khả năng chịu nhiễu tốt đối với dữ liệu nhiễu hoặc không đồng nhất, có thể chấp nhận
dữ liệu có tính chất thay đổi từ thời gian sang thời gian
Nhược điểm: Không hiệu quả trong việc xử lý lượng dữ liệu lớn và phức tạp Không hoạt động hiệu quả nếu dữ liệu có quá nhiều tính năng hoặc nếu tỷ lệ số lượng điểm dữ liệu và số lượng tính năng là không cân đối
Đánh giá: Trong lĩnh vực nhận diện cây trồng, nếu dữ liệu đủ nhỏ và không đòi hỏi khả năng dự đoán nhanh chóng, KNN có thể là lựa chọn đơn giản và hiệu quả Để nâng cao hiệu suất dự đoán, nhận có lẽ nên có một mô hình tùy chỉnh cấp cao và phù hợp hơn với đề tài
CNN (Convolutional Neural Network):
Ưu điểm: CNN rất hiệu quả trong việc xử lý dữ liệu hình ảnh do có khả năng trích xuất đặc trưng tự động thông qua các lớp convolutional CNN có thể nhận diện các đặc trưng phức tạp và là lựa chọn tốt cho việc phân loại và nhận dạng hình ảnh, giúp nó hiệu quả trong việc nhận diện hình ảnh cây trồng Ngoài ra có thể tích hợp CNN vào các hệ thống camera giám sát để thực hiện nhận diện trực tuyến
Nhược điểm: Đòi hỏi lượng lớn dữ liệu huấn luyện để đạt được hiệu suất tốt và có thể khó hiểu đối với những người mới học Mô hình CNN có thể đòi hỏi nhiều tài nguyên tính toán, đặc biệt là khi xử lý ảnh độ phân giải cao nhằm cải thiện tốc độ dựa trên phần cứng.Ngoài ra nếu không có kiểm soát cẩn thận, CNN có thể có xu hướng overfitting đặc biệt khi có ít dữ liệu huấn luyện hoặc khi dữ liệu không đủ đa dạng
Đánh giá: CNN là một công cụ mạnh mẽ trong nhận diện cây trồng bằng camera giám sát Kết hợp CNN với các kỹ thuật xử lý ảnh và dữ liệu đa dạng có thể mang lại kết quả tốt nhất trong quản lý cây trồng đối với đề tài này
Trong việc nhận diện cây trồng bằng camera giám sát, CNN thường là lựa chọn ưu tiên do khả năng xử lý hình ảnh và nhận diện đặc trưng phức tạp Tuy nhiên, lựa chọn
mô hình còn phụ thuộc vào mục tiêu cụ thể của bài toán, lượng dữ liệu có sẵn, và các yếu tố khác như tốc độ xử lý và nguồn lực tính toán