TOM TAT KHÓA LUẬNĐề tài Thiết kế robot tự phát hiện và có thê thu hoạch nông sản quả cà chua là mộtnghiên cứu dựa trên sự phát triển của Khoa học — Công nghệ cụ thể ứng dụng Machine Lear
Bài toán thiết kế robot tự phát hiện và có khả năng thu hoạch nông sản (quả
Theo như tên của đê tài, chúng em nhận thây răng có 2 vân đê cân phải xử lý:
Thứ nhất, đó là việc phát hiện và nhận diện quả cà chua chín, đây là bài toán đưa ra những dự đoán về trạng thái cần thu hoạch của quả cà chua mà cụ thể trạng thái được xét đến ở đây chính là trạng thái chín, vậy như thế nào được gọi là chín và dựa vào những giá trị gì dé kết luận như vậy? Chúng em sẽ giải thích rõ hơn trong nội dung Chương 5 — Kết quả nghiên cứu.
Hình 1.1: Ảnh chứa quả cà chua sau khi được xử lý bằng thuật toán YOLO.
Thứ hai, van đề thiết kế phần cứng — cánh tay robot Cánh tay phải đảm bảo có thé thu hoạch mà không làm quả bi hỏng Tham số đầu vào dé cánh tay xử lý cũng chính là tham sô đâu ra của thuật toán nhận diện.
1.2.2 Tính ứng dụng của đề tài
Hiện nay, trong cuộc cách mạng công nghiệp 4.0 đa số các lĩnh vực như công nghiệp, nông nghiệp, dịch vụ đều có những bước chuyển mình đột pha và điển hình là việc sử dụng những công nghệ hiện đại trong đó phải kê đến trí tuệ nhân tạo (AD được sử dụng trong việc hỗ trợ con người xử lý thông tin, công việc một cách nhanh chóng Đề tài thiết kế robot tự phát hiện và có khả năng thu hoạch nông sản chính là một trong những nghiên cứu phục vụ cho nền nông nghiệp nước nhà với những ứng dụng cụ thê sau đây: s* Phát hiện quả chín, tính toán thời gian thu hoạch hợp lý giúp nâng cao chất lượng quả sau thu hoạch. s* Sử dụng robot tự động dé giảm thiêu sức lao động của con người. s* Tạo tiền đề cho những nghiên cứu, ứng dụng mở rộng và phát triển của đề tài trong tương lai. s* Trên cơ sở nhận diện, chúng ta có nhiều tín hiệu đầu ra đồng thời cũng là tin hiệu đầu vào trong việc xử lý phần cứng Hơn thế nữa hoàn toàn có thé ứng dụng trong việc thu hoạch bằng những thiết bị bay hỗ trợ cho những loại nông sản cách mặt đất mà robot không thể vươn tới Ngoài ra vấn đề phun thuốc bảo vệ thực vật cũng được áp dụng giúp giảm thiểu những nguy cơ tiềm ấn đối với sức khỏe của
“* Ngoài việc nhận diện về độ chín, chúng ta hoàn toàn có thé ung dung AI trong việc phân tích dữ liệu, dự báo xu hướng cũng như những cảnh báo bất thường của thị trường mà từ đó có thể đưa ra những quyết định thu hoạch đúng thời điểm. s* Mở rộng cho việc ứng dung AI, chúng ta còn có thé phát hiện những vết sâu bệnh tiềm ẩn tồn tại trên quả, thân, lá, đặc biệt hơn là gần đây còn có thể nhận diện cả những loài côn trùng gây hại.
1.2.3 Thách thức đối với nhóm tác giả về khả năng ứng dụng đề tài
Thách thức đầu tiên phải kế đến đó chính là độ chính xác trong thuật toán nhận diện Những yếu tố ngoại cảnh như độ sáng, sự che khuất, hình dạng không 6n định hoặc trùng lắp giữa những quả cũng dẫn đến kết quả đầu ra không như mong muốn. Đòi hỏi nhóm tác giả xây dựng lại thuật toán YOLO sao cho việc nhận diện đạt hiệu quả tốt nhất, kết quả dự đoán phải thật sự tốt thì mới có thể đáp ứng đủ điều kiện dùng làm tín hiệu đầu vào cho cánh tay hoạt động một cách ồn định.
Thứ hai, thiếu độ hiểu biết về nông sản Chắc chắn dé có thé làm tốt dé tài này cần phải có những kiến thức cơ bản về vấn đề thu hoạch trong nông nghiệp mà đặc biệt là đối với quả cà chua đỏ.
Do mô hình nhỏ lẻ là đặc điểm của môi trường nông nghiệp tại Việt Nam, nên việc đầu tư xây dựng mô hình thu hoạch mang tính công nghiệp trở nên khó khả thi do thiếu kinh phí.
Cuối cùng, chi phí đầu tư cho những hệ thống tự động thu hoạch là tương đối lớn đối với người nông dân Đặc biệt là vùng nông thôn mà ở đó sức lao động của con người là chủ yếu.
Mục tiêu, đối tượng, phạm vi nghiên cứu và giới hạn của đề tài
Hàm mất mát (Loss Function) -c -+:++eeeeeevvvvEEEEEEiedevvvvvvrtrrrtrrrrrssee 18 1 Ham mất mát của bộ phân lớp — Classification loss
Tổng quan /t BNFae-@®(EBE Í
Giới thiệu sơ lược về servo MG996R: cccccrrrrrtreesssevrrrrr 25 4.1.2 — KICPCA9685 HH de 26 4.2 Cảm biến khoảng cách VL53L0x — Điều kiện hoạt động của robot
Các servo cánh tay sử dụng chủ yếu động cơ mô-men xoắn 10 kg-cm với bánh răng kim loại, góc quay tối đa 180 độ Mô-men xoắn cao, dòng điện dừng 2,5A, dòng điện chạy 500mA đến 900mA, điện áp hoạt động 4,8V đến 7,2V Servo có 3 dây tín hiệu: nguồn (VCC), nối đất (GND) và nhận xung PWM từ chip điều khiển.
Một trong những giải pháp hữu hiệu để giảm thiểu việc sử dụng chân PWM trên kit điều khiển là sử dụng trình điều khiển PWM - kit PCA9685 kết nối với kit Jetson Nano với giao thức I2C Giao thức này giúp việc kết nối trở nên đơn giản, chỉ cần 2 dây tín hiệu (serial clock và serial data) cùng 1 dây nguồn và 1 dây nối đất.
Kit PCA9685 nguyên bản hỗ trợ 16 kênh giao tiếp 12 bit (16 chân PWM - hình 4.3) và có thể mở rộng bằng cách ghép nói thêm các kit tương tự vào phần mở rộng (về mặt lý thuyết chúng ta có thé điều khiển 992 động cơ servo thông qua việc ghép nối mở rộng như trên cũng đồng nghĩa với việc có thé sử dụng đồng thời 62 kit PCA9685 ghép nối và nhận tín hiệu điều khiển thông qua chỉ duy nhất 1 công giao tiếp I2C từ kit Jetson nano — hình 4.4).
~ mat ome Ox60 woe os s2
= 0x40 os moe eee woe mà mm: ome 0x72 mee == eee ma mai ane ủx62 mee me pee mm meg
== 68 pee mee mee mms ome 0x74 mec os eae mE mat os ome ea mec
"mH.: ome mE mma eda ơn: ome eee mec mạ Lt 3
0x75 mec os ssa mE ma ủx65 mac os ee
"mH: mE ủx55 eda mmc mma one ủx76
_ == mma ome Ox78 wee os mal mE mat
= 0x46 mez mms mm wee ume mee
— c4 ume wee mz ume wee one ủx6E
4.2 Cảm biến khoảng cách VL53L0x — Điều kiện hoạt động của robot
Cảm biến VL53L0x là cảm biến sử dụng tia laser để đo khoảng cách đến vật thé hay vật cản phía trước Mức độ phé biến của cảm biến v15310x trên thị trường là
Cảm biến siêu âm HC-SR04 là lựa chọn của nhóm do độ chính xác, độ ổn định và khả năng đo khoảng cách ấn tượng Với độ tin cậy cao và phản hồi tích cực từ người dùng, cảm biến này đặc biệt thích hợp cho ứng dụng tránh chướng ngại vật trong robot.
Hình 4.7: Cảm biến khoảng cách VLS53L0x.!?
Ngay khi hệ thông khởi động, cảm biến tính ngay khoảng cách đến vật cản phía trước, vị trí đặt cảm biến được thiết đặt sẵn, phía trước robot và đặt lệch một góc hướng về phía mặt đất cách robot 0.4m Nếu như trong khoảng cách 0.4m mà có bất kì vật cản nào thì robot sẽ dừng lại hay nói chính xác hơn là động cơ DC motor sẽ dừng lại do nhận được tín hiệu dừng từ cảm biến để tránh va chạm Trong trường hợp không có vật cản đồng thời không nhận được tín hiệu nào từ thuật toán nhận diện thì đây sẽ là điều kiện cần và đủ dé cảm biến liên tục gửi tín hiệu báo cho động cơ DC motor biết để hoạt động — robot di chuyên về phía trước Trong trường hợp có đối tượng những không nằm trong khoảng cách đề thu hoạch thì cảm biến vẫn đưa tín hiệu di chuyển tiếp cho động cơ DC mà bỏ qua phần hoạt động của cánh tay Do đó cảm biến khoảng cách cũng ảnh hưởng một phần đến quá trình hoạt động của cánh tay.
Tham số đầu vào của cánh tay . -:-ceeccccrrireeeeerrrrrirrrrrrrrrrrrrrrrrrrrrrrre 31 4.4 Thuật toán di chuyên . -s-:+ce22ecettrrvEttrerEttrrrtrtrrrrrrrrtrrrrrrrrrre 33 4.4.1 Di chuyển sang trái, phải -css.eecesreecerreeerrrererrreee 33 4.4.2 Di chuyền lờn, xuống .-ôceecreeeerreeerrrererrreetrrrrerrrree 34 4 Khoảng cách từ camera đến đối tượng — xác định chiều sâu
Xác định khoảng cách dựa trên chiều rộng của đối tượng
Hình 4.13: Xác định khoảng cách dựa trên chiêu rộng của đối tượng. Đề xác định chính xác khoảng cách, chúng em thực hiện lân lượt việc lây mẫu cho model đã được huấn luyện, số liệu được thế hiện cụ thể trong bảng sau:
Chiều rộng W (pixel) | Khoảng cách d (cm)
Bang 4.1: Lay mau khoảng cách.
Sau khi lấy mẫu, bảng dữ liệu sẽ hiển thị các giá trị cần tính toán Quan sát bảng dữ liệu, chiều rộng của quả cà chua càng lớn thì khoảng cách từ camera đến quả cà càng giảm Ngược lại, chiều rộng của quả cà chua càng nhỏ thì khoảng cách từ camera đến quả cà càng lớn.
Do servo 2 và servo 3 tương hỗ lẫn nhau (bù trừ cho nhau do nếu xét trên phương diện mặt phăng để tính góc thì 2 servo xong xong nhau và có 2 góc trong cùng phía bằng nhau, đó đó khi servo 2 tăng thì servo 3 cũng tăng 1 góc tương tự và điều này cũng tương tự cho việc giảm góc quay) Do đó ta chỉ xét servo 2 và tính trên servo 2.
Công thức xác định tầm vươn cánh tay:
Nếu valueShmW = „mm:
Góc mnuốn tới = Ay + (Bmax — valueShmW)
- valueShmW : Giá trị chiều rộng của quả cà chua.
- Bmax : wp lớn nhất và bằng 200 pixel
37 min : wp nhỏ nhất và bằng 120 pixel ao : Góc khởi tao của servo 2 và bang 70°
4.4.3.2 Xác định khoảng cách dựa trên việc áp dung các tham số liên
Hình 4.14: Công thức tính khoảng cách dựa vào đặc tính camera.'*
Trong hình 4.14, W x H chính là chiều rộng và chiều cao của quả cà, w x h là kích thước của cảm biến bên trong camera, f là tiêu cự của camera, d là khoảng cách từ camera đên đôi tượng cân xác định.
Camera sử dụng trong robot thuộc loại camera Logitech C270 có độ phân giải tối đa 720p/30fps, tiêu cự lay nét có định và bằng 4.2mm, kích thước cảm biến bên trong camera là 3.58mm x 2.02mm.
Hinh 4.15: Camera Logitech C270. và kích thước quả cà chua.
Kết luận: Sau khi tiến hành thực nghiệm 2 phương pháp vừa nêu trên thì độ chênh lệch về kết quả không có sự khác biệt lớn Một phần do tiêu cự camera đã bị thay đôi từ trước đó trong quá trình sử dụng nên van dé sai số là chắc chắn xảy ra nhưng trong phạm vi bài toán đặt ra thì độ sai số 5% vẫn có thé chấp nhận Trên cơ sở đó, chúng em quyết chọn phương pháp xác định khoảng cách dựa vào chiều rộng của quả cà.
Hình 4.9 mô tả một cách khái quát va tong quan nhất nguyên lý hoạt động của cánh tay robot.
Khung video dau ra Khung bounding box
: Chiểu cao bounding box (high)
Hình 4.17: Mô tả thuật toán di chuyển của cánh tay robot.
Chương 5 KET QUÁ NGHIÊN CUU
5.1 YOLO Đề có thé hoàn chỉnh quá trình nhận diện đối tượng đối với thuật toán YOLO, chúng ta cần phải thực hiện 4 bước sau:
- Thu thập dữ liệu (ảnh quả cà chua).
- _ Xử lý hình ảnh: gán nhãn cần thiết cho quả cà chua dé thuật toán có khả năng tự học.
- _ Tiến hành nhận diện đối tượng.
Hình 5.1: Quá trình nhận điện đối tượng của YOLO. Để có thể có bộ dữ liệu cà chua hoàn chỉnh, chúng em đã tiến hành dùng camera ghi hình lại những vườn cà chua có chứa những quả chín gần thu hoạch.
Tiếp theo là phân tách hình anh từ video, quá trình này có thé dùng những đoạn script python hoặc những công cụ phân tách hình ảnh từ video phổ biến như Free
Video to JPG Converter, VLC Media Player, KMPlayer, Sau khi phân tach va chon lọc thi bộ data co bản hoàn thành với hon 2000 anh.
( labellmg C:/Users/V Nguyen/Desktop/Do_An 1/doanjpg - a x
File Edit View Help es Box Labels eG (Gest Label
Hình 5.2: Phân loại gan nhãn cho doi tượng cần huấn luyện.
Công cụ được dùng trong quá trình gan nhãn được đề cập ở đây là Labellmg.
WB labelimg CAUsers\Y Nguyen\Downloads\OLD\darknet(tomato)\data\images\tomato13jpg, - og x
Si) Daificut ý D1 Use defauit label
CAUsers\Y Nguyen\Downloads\OLD\darknetiton ^ ave :\Users\¥ Nguyen\Downloads\ OLD \darknet(ton ay CAUsers\Y Nguyen\Downloadz\OLDAdarknet(ton.
CAUsers\Y Nguyen\Downleads\OLDAdarknet(ton. youo CAUsers\Y Nguyen\Downleadz\OLDAdarknet(ton.
CAUsers\Y Nguyen\Downloads\OLD\darknetiton CAUsers\Y Nguyen\Downloadz\OLDAdarknet(ton CAUsers\Y Nguyen’ vds\OLD\darknetiton CAUsers\Y Nguyen’ sds\OLD\darknetton CAUserY Nguyen vds\OLD\darknetiton CAUsers\Y Nguyen\Downloadz\OLDAdarknet(ton CAUsers\Y Nguyen\Downloads\OLDAdarknet(ton CAUsers\Y Nguyen\Downleadz\OLDAdarknet(ton CAUsers\Y Nguyen\Downloads\OLD\darknetiton y
Click & drag to move shape ‘tomato! X: 72; Y: 448
Hình 5.3: Tool Labellmg phục vụ quá trình gan nhãn doi tượng.
Tiêu chí gán nhãn được xác định theo 02 điêu kiện: dải màu và tỉ lệ màu trong bounding box. Đôi tượng được chọn phải thỏa mãn điêu kiện thuộc dải màu được chọn và màu đó chiếm tỉ lệ lớn hơn 80% bounding box, chỉ tiết tại bang 5.1.
Dải màu TỶ lệ màu trong bounding box
Bảng 5.1: Tiêu chi gan nhãn nhận điện quả cà chua chin.
Quá trình huấn luyện model được thực hiện trên môi trường Google Colab Đây là một môi trường ảo được Goolge cung cấp dé chúng ta có thé sử dụng những máy tính được trang bị GPU mạnh mẽ giúp cho quá trình huấn luyện được diễn ra một cách nhanh chóng.
Bang 5.2: Cau hinh Google Colab Các thông số cho mô hình như sau:
Model khởi tạo với các thông số được huấn luyện trước đó Nguồn tải: pjreddie.com'Š
15 https://pjreddie.com/media/files/yolov3-tiny.weights
File Edit View Insert Runtime Tools Help Allchanges saved
= Files x Code Text Y Dị mm # Editing
Q là [1] from google.colab import drive drive.mount( ' /content/drive') © - > BB darknet Mounted at /content/drive
> Bm examples lunzip /content/drive/'My Drive’ /retrainDoAnTotNghiep/darknet.zip
> Be include %cd /content/darknet
> Ba scripts © ‘cp /content/drive/MyDrive/retrainDoAnTotlghiep/backup/yolov3-tiny_36000.weights /content/darknet
BB LICENSE.fuck cfg LICENSE.fuck LICENSE.v1 sre yolov3-tiny_36000.weights
B LICENSE.gen data LICENSE.gen Makefile train.txt
B LICENSE.gpl examples LICENSE.gpl python val.txt
B LICENSE meta include LICENSE.meta README.md yolo.data
LICENSE LICENSE.mit scripts yolo.names
[ ] !make isk mm 34.92 GB available lehmad av /danbnee
Hình 5.4: Môi trường Google Colab phục vu quá trình huấn luyện model.
Sau khi huấn luyện model xong, nhóm tác giả thu được model đã qua quá trình tự học Tiến hành kiểm tra model đã huấn luyện, kết quả một ảnh được nhận diện như sau:
5.2.1 Sơ lược thiết kế Các thông số chính của cánh tay robot như sau:
- _ Chiều dai tối đa: 50.5cm
- Dé đỡ: đài 9cm, rộng 8.4cm
Hình 5.7:Tổng quan thiết kế khung đỡ cánh tay.
5.2.3 Hiệu suất hoạt động - tầm vươn.
Tầm vươn tối đa robot có thể đạt được tính từ vị trí đặt cánh tay đến quả cà chua là 20cm Chiều cao tối đa tính từ mặt đất đến quả cà chua là 75cm Do khả năng thiết kế còn hạn chế nên tầm vươn của cánh tay chỉ đạt được trong mức giới hạn cho phép.
Thử nghiệm trên tập dữ liệu cà chua tự tạo (2000 ảnh) trong đó 1600 ảnh ở tập dữ liệu huấn luyện và 400 ảnh ở tập dữ liệu kiểm thử Model chính dùng dé huấn luyện là Darknet 53 Kết quả nhận diện khả quan, độ chính xác tương đối cao (> 80%) nhưng hiệu suất hoạt động chỉ tốt khi thiết bị phần cứng có hỗ trợ GPU NVIDA, kiểm tra nhận diện thời gian thực trên máy chỉ có CPU thì tốc độ FPS trung bình chỉ
KÉT QUÁ THỰC NGHIỆM dao động trong khoảng từ 5 FPS đến 7 FPS.
Tương tự như YOLO v3, mô hình sử dụng bộ dữ liệu tự tạo gồm 2000 ảnh cho phiên bản tiny Nhờ vậy, tốc độ nhận diện thời gian thực diễn ra nhanh hơn Bảng dưới đây thể hiện kết quả kiểm thử thực nghiệm:
Mã máy Cấu hình FPS (GPU disable) | FPS(GPU enable)
CPU 4-161 ARM Jetson Cortex-A57, GPU 4 25
Nano NVIDIA 128 lõi CUDA kiến trúc Maxwell
Bang 6.1: Kết quả chạy kiểm thử toc độ xử lý khung hình với YOLOv3 — Tiny.
6.2 Cánh tay robot + khung đỡ
Hình 6.1: Cánh tay robot được đặt trên khung đỡ hỗ trợ di chuyển.
Tổng thê quá trình hoạt động của robot — hình 6.2:
- — Khi bắt đầu khởi chạy robot, thuật toán YOLO khởi động dau tiên, bắt đầu quá trình nhận diện đối tượng.