Đặt vấn đề Theo Phạm Hiếu (ngày 13, tháng 4, năm 2021) được viết trên báo nongsanviet.vn - “Aus4Innovation là chương trình hỗ trợ phát triển trị giá 11 triệu đô la Úc nhằm tăng cường hệ thống đổi mới của Việt Nam, chuẩn bị và nắm bắt các cơ hội liên quan đến công nghiệp 4.0 và giúp định hình chương trình đổi mới của Việt Nam về khoa học công nghệ. Có thể thấy một đất nước với nồng cốt là ngành nông nghiệp như nước ta, trong thời đại công nghệ 4.0 ngày một phát triển như hiện nay thì việc ứng dụng khoa học kỹ thuật vào công – nông nghiệp càng được phổ biến. Hình ảnh người nông dân vác trên lưng một bình xịt thuốc trừ sâu nặng hàng chục kilogram đã không còn quá xa lạ với những người làm nông nghiệp ở nước ta, vì lẽ đó, nhóm chúng em cùng với xu hướng ứng dụng công nghệ cao và công – nông nghiệp để một phần giảm bớt gánh nặng về hiệu suất làm việc cũng như giảm thiểu nhân công nhằm mang lại những hiệu quả tối đa cho người làm công – nông nghiệp nói riêng và ngành công – nông nghiệp nước nhà nói chung. Do đó với lượng kiến thức đã học và được sự đồng ý của giảng viên hướng dẫn – ThS.
Phan Vinh Hiếu, chúng em chọn đề tài: “Nhận diện và phân biệt cỏ dại với hoa màu, sử dụng cánh tay Robot để phun thuốc trừ sâu”.1: Phun thuốc diệt cỏ truyền thống 1.2 Mục tiêu Đề tài: “Nhận diện và phân biệt cỏ dại với hoa màu, sử dụng cánh tay Robot để phun thuốc trừ sâu” với mục tiêu chính: là áp dụng XLA để nhận diện - phân biệt – định vị được chính xác cỏ dại – hoa màu, được lập trình bởi ngôn ngữ Python với sự hỗ trợ từ OpenCV được 14 thực thi trên Arduino Nano điều khiển cánh tay máy để thực hiện khâu chấp hành cuối theo mong muốn.3 Nội dung nghiên cứu Đề tài: “Nhận diện và phân biệt cỏ dại với hoa màu, sử dụng cánh tay Robot để phun thuốc trừ sâu”, có những nội dung sau: • Tổng quan về XLA. • Nghiên cứu về mạng thần kinh nơ-ron áp dụng vào bài toán nhận dạng. • Nghiên cứu về Arduino và và động học robot. • Thiết kế, tính toán và thi công mô hình.
• Viết chương trình. • Test và hoàn thiện mô hình. • Viết luận án tốt nghiệp.4 Hạn chế Với mục tiêu đặt ra từ đầu là nhận diện và phân biệt cỏ dại với hoa màu, tuy nhiên trong quá trình thực nghiệm nhóm đã gặp 1 số khó khăn nhất định về việc giữ cho hoa - cỏ được tươi tốt trong suốt quá trình làm đề tài. Do đó, được sự cho phép của GVHD, nhóm đã chuyển hướng sang sử dụng hoa - cỏ nhựa để có thể dễ dàng sử dụng cho quá huấn luyện cũng như giúp nhóm tiết kiệm chi phí cho đề tài.5 Ý nghĩa thực tiễn Đề tài đã áp dụng khoa học kỹ thuật vào công-nông nghiệp, chạy theo xu hướng hiện tại với ý nghĩa bảo vệ môi trường bằng cách giảm thải dư lượng thuốc thực vật, nâng cao chất lượng nông sản.
Góp phần vào công cuộc xây dựng và phát triển nông nghiệp công nghệ cao. 15 Chương 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan về XLA XLA bao gồm lý thuyết và các kỹ thuật liên quan nhằm mục đích tạo ra một hệ thống nhân tạo có thể tiếp nhận thông tin từ các hình ảnh thu được hoặc các tập dữ liệu đa chiều. XLA là kỹ thuật áp dụng trong việc tăng cường và xử lý các ảnh thu nhận từ các thiết bị như camera, webcam,…Do đó, nó được ứng dụng và phát triển trong rất nhiều lĩnh vực quan trọng. Các bước cần thiết và quan trọng trong quá trình XLA gồm có: Thu thập ảnh từ bên ngoài để bước vào quá trình xử lý và cuối cùng là đưa ra ảnh mới cùng kết luận sau khi thực hiện xong quá trình XLA.1 Sơ đồ khối mô tả quá trình XLA Sơ đồ chi tiết của một quá trình XLA: Hình 2.2 Sơ đồ khối chi tiết quá trình XLA 2.2 Môi trường Pycharm IDE 16 Hình 2.3 Phần mềm Pycharm IDE Là môi trường IDE lập trình tích hợp để thể hiện các chương trình được viết bằng ngôn ngữ Python.
Các tính năng cơ bản của Pycharm: • Hỗ trợ đa nền tảng. • Trình sửa code thông minh.3 Ngôn ngữ Python Là ngôn ngữ lập trình đa dụng, dễ dàng tìm hiểu, phổ biến và dễ tiếp cận với người mới nhập môn. Các đặc tính cơ bản: • Cú pháp rất đơn giản. • Tương thích với mọi nền tảng như Windows, MacOS, Linux.
• Khả năng mở rộng và ứng dụng lên hệ thống nhúng. • Thư viện chuẩn (có sẵn) để giải quyết những bài toán phổ biến hiện nay. • Hướng đối tượng.4 Thư viện OpenCV OpenCV (OpenSource Computer Vision) là một thư viện mã nguồn mở hỗ trợ các mô hình, thuật toán áp dụng XLA, video thời gian thực, học máy. Nó sử dụng đa ngôn ngữ và hỗ trợ nền tảng.4: Python và thư viện OpenCV 2.1 Mạng nơron tích chập - CNN Mạng CNN là một thuật toán học sâu áp dụng các bộ lọc lên ảnh trước khi huấn luyện mạng nơ ron.
Sau khi cho các tấm ảnh đi qua bộ lọc, những đặc trưng của tấm ảnh sẽ trở nên nổi bật và chúng ta có thể dùng chúng để nhận diện và phân loại hình ảnh. Các thành phần cấu thành nên mô hình CNN bao gồm: • Lớp tích chập - Convolotion layer (Conv layer). • Lớp kích hoạt phi tuyến - ReLU layer. • Lớp lấy mẫu - Pooling layer.
• Lớp kết nối đầy đủ - Full connected layer (FC layer).5: Mô hình mạng CNN 18 Mô hình mạng CNN như hình 2.5 được chia thành 2 phần: Trích chọn đặc trưng từ ảnh gõ vào và phân loại: • Phần rút trích đặc trưng của mạng CNN sử dụng các lớp tích chập và lớp gộp để tìm ra các đặc trưng quan trọng để phân loại ảnh. • Phần phân loại sử dụng các lớp kết nối đầy đủ và sử dụng ngõ vào là các đặc trung đã được rút trích và ngõ ra sẽ chỉ ra ảnh đầu vào thuộc lớp nào. Mạng CNN sử dụng các lớp được liên kết với nhau thông qua cơ chế tích chập. Lớp tiếp theo là kết quả tích chập từ lớp trước đó, do đó chúng ta có được kết nối cục bộ.
Có N lớp thì ta sẽ có N bộ lọc khác nhau, vậy thông thường số bộ lọc có thể lên tới hàng trăm hàng ngàn.1 Conv layer Hình 2.6: Tính tích chập với các bộ lọc Hình trên minh họa cách tính tích chập trên ma trận ảnh đen trắng. Ma trận ảnh đen trắng có mỗi ô giá trị là một điểm ảnh, 1 là màu đen, 0 là màu trắng. Ta dùng một ma trận kích thước 3x3 đóng vai trò là một bộ lọc, nhân từng thành phần tương ứng với ma trận ảnh. Giá trị đầu ra do tích các thành phần này cộng lại.
Kết quả của tích chập là một ma trận mới được sinh ra từ việc trượt bộ lọc lên tất cả các vùng ảnh.2 ReLU layer ReLU sử dụng hàm kích hoạt: 𝑓(𝑥) = max(0, x).7: Đồ thị hàm ReLU Nhiệm vụ của hàm ReLU là chuyển toàn bộ giá trị âm thành giá trị 0. Ngoài ReLU, có thể sử dụng hàm sigmoid hoặc tanh. Hàm ReLU phổ biến hơn do nó không bị bảo hòa 2 đầu như sigmoid và tanh, tốc độ xử lý cũng vượt trội hơn.3 Pooling layer Được đặt sau lớp Conv layer và ReLU layer là Pooling layer. Pooling layer có nhiệm vụ giảm kích thích của ảnh đầu vào mà vẫn đảm bảo được phần thông tin quan trọng.8: Minh họa Pooling layer Ta có thể hiểu cách hoạt động của Pooling layer như sau: Pooling layer sử dụng một cửa sổ trượt để quét toàn bộ các vùng trong ảnh, sau đó nó sẽ chọn một giá trị đại diện cho toàn bộ thông tin của vùng ảnh đó.
Giá trị được chọn phụ thuộc vào loại pooling mà ta sử dụng gồm 2 loại: o Max Pooling: lấy giá trị cực đại trong phần ảnh được bộ lọc phủ. o Average Pooling: Trả về giá trị trung bình các giá trị trong vùng ảnh.4 FC layer FC layer tổng hợp các thông tin đã được chắt lọc và dùng softmax để đưa ra dự đoán cuối cùng.9: Mô hình liên kết nơ ron của FC layer Ngoài ra để tránh xảy ra hiện tương overfitting thưởng của xảy ra ở FC layer. Người ta dùng thêm một lớp Dropout. Dropout có nhiệm vụ loại bỏ hoàn toàn ngẫu nhiên vài nút mạng.10: So sánh một FC layer không và có áp dụng Dropout Qua hình ta thấy được mô hình FC layer gọn hơn rất nhiều sau khi áp dụng Dropout.
Giờ đây các nơ-ron sẽ không bị phụ thuộc lẫn nhau trong việc học các đặc trưng ảnh. Điều này gia tăng độ chính xác trong việc dư doán kết quả.2 Cấu trúc MobileNet Kiến trúc MobileNet là mạng nơron ứng với tên gọi, có khả năng ứng dụng XLA lên các thiết bị di động và nhúng. MobileNet được dựa trên một kiến trúc được sắp xếp hợp lý sử dụng các lớp tích chập có thể phân tách theo chiều sâu - Depthwise Separable Convolution (DSC) để xây dựng mạng nơron có số lượng trọng số và độ phức tạp ít hơn.1 Xét độ phức tạp của một phép tích chập ảnh: Hình 2.11: Mô tả phép tích chập 3D Với ảnh đầu vào 3 chiều ta có các thông số W là chiều rộng, H là chiều cao và M là chiều sâu. Và một kernel bình thường có thông số gồm (K, K, N) với K là độ lớn, N là chiều sâu ảnh.
Ta có thể đánh giá độ phức tạp của của lớp chập thông qua phép tính: DG*DG*DK*DK*N trong đó DG là future map sau khi trượt bộ lọc lên tất cả các kernel của ảnh W*H. Trên thực tế có M kernel nên độ phức tạp của tích chập được tính như sau: DG * DG * DK * DK * N * M = DG2 * DK 2 * N * M (2.2 Xét từ khía cạnh độ phức tạp tính toán của một DSC Ý tưởng của DSC là tách phép tích chập làm 2 phần: • Tích chập theo chiều sâu (TCTCS). • Tích chập theo điểm (TCTĐ). TCTCS: là phép tích chập áp dụng một bộ lọc tích chập cho mỗi kênh dầu vào.12: Mô hình TCTCS Độ phức tạp của TCTCS là: • 1 kênh: DG*DG*DK*DK 22 • M kênh: DG*DG*DK*DK*M TCTĐ: là kiểu tích chập sử dụng bộ lọc 1x1, bộ lọc trượt các điểm đơn lẻ của đầu vào và có độ sâu bằng nhiều kênh.