Một trong những ứng dụng tiềm năng là nhận diện và phân loại trái cây tự động, giúp tối ưu hóa quy trình vận hành trong các lĩnh vực như bán lẻ, nông nghiệp và quản lý chuỗi cung ứng.. V
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN – ĐIỆN TỬ
**********
BÁO CÁO BÀI TẬP LỚN
ĐỀ TÀI: Hệ thống nhận diện và phân loại hoa quả
IOT 01-K67 Giảng viên hướng dẫn
Sinh viên
Th.S Hàn Huy Dũng Đặng Trung Kiên Nguyễn Mạnh Quân Nguyễn Duy Tùng
Hà Nội, 11 /2024
Mục lục
Trang 2Chương 1: TỔNG QUAN ĐỀ TÀI 3
1.1 Đặt vấn đề 3
1.2 Mục tiêu 4
1.3 Lý do thực hiện đề tài 4
1.4 Mục đích đề tài: 4
1.5 Giới hạn: 5
Chương 2: Cơ Sở Lý Thuyết 5
2.1 5
2.2 Giới thiệu phần cứng 7
2.2.2 Màn hình LED 8
Chương 3: TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 9
3.1 Giới thiệu 9
3.2 Thiết kế sơ đồ khối hệ thống 9
3.3 Tính toán và thiết kế 10
3.3.1 Khối trung tâm xử lý 10
3.3.2 11
3.3.3 15
3.4 .15
Chương 4: THI CÔNG HỆ THỐNG 16
4.1 .16
4.2 Lập trình hệ thống 16
4.3 Sequence diagram 20
Trang 3Chương 1: TỔNG QUAN ĐỀ TÀI
1.1 Đặt vấn đề
Trong những năm gần đây, sự phát triển của công nghệ AI và IoT (Internet
of Things) đã mở ra nhiều hướng đi mới cho các ứng dụng thông minh trong đời sống và sản xuất Một trong những ứng dụng tiềm năng là nhận diện và phân loại trái cây tự động, giúp tối ưu hóa quy trình vận hành trong các lĩnh vực như bán lẻ, nông nghiệp và quản lý chuỗi cung ứng
Hiện nay, hầu hết việc phân loại trái cây tại các siêu thị, cửa hàng, hoặc các trung tâm phân phối vẫn yêu cầu nhiều sự can thiệp từ con người, dẫn đến tăng chi phí nhân công và có thể gây ra sai sót trong phân loại Bên cạnh đó, với nhu cầu tăng cao về các sản phẩm chất lượng cao, đảm bảo đúng chủng loại, việc sử dụng một
hệ thống tự động có thể giúp doanh nghiệp tiết kiệm chi phí và nâng cao hiệu quả quản lý sản phẩm
ESP32-CAM là một thiết bị vi điều khiển tích hợp camera với giá thành rẻ, nhỏ gọn nhưng vẫn đủ khả năng xử lý các tác vụ hình ảnh cơ bản, rất phù hợp với các
dự án IoT Việc kết hợp ESP32-CAM với trí tuệ nhân tạo (AI) cho phép hệ thống
có khả năng nhận diện trái cây một cách nhanh chóng và chính xác, từ đó giúp tự động hóa các quy trình phân loại Tuy nhiên, vì ESP32-CAM có tài nguyên hạn chế, đặc biệt là về bộ nhớ và khả năng xử lý, việc triển khai các mô hình AI phức tạp đòi hỏi sự tối ưu hóa cẩn thận
Đề tài này nhằm mục đích nghiên cứu và phát triển hệ thống nhận diện trái cây tự động bằng cách sử dụng ESP32-CAM và mô hình AI nhẹ, phù hợp với các điều kiện hạn chế của thiết bị IoT Qua đó, hệ thống sẽ đóng góp vào việc giảm thiểu nhân công, tối ưu quy trình phân loại trái cây và làm nền tảng cho các ứng dụng IoT thông minh trong tương lai
1.2 Mục tiêu
Thiết kế và thi công hệ thống nhận diện và phân loại các loại hoa quả phổ biến như táo, cam, chuối,…
Tối ưu hóa mô hình AI để phù hợp với khả năng xử lý hạn chế của ESP32-CAM, đảm bảo hệ thống có khả năng nhận diện và phân loại trái cây trực tiếp mà không cần kết nối với hệ thống máy tính trung tâm Điều này bao gồm việc giảm kích thước mô hình và tối ưu bộ nhớ để mô hình có thể chạy ổn định
1.3 Lý do thực hiện đề tài
Trang 4a Nâng cao năng suất và giảm thiểu chi phí nhân công: Ứng dụng hệ thống
nhận diện và phân loại tự động giúp giảm thiểu sự phụ thuộc vào nhân công và tránh được các sai sót do yếu tố con người gây ra Bên cạnh đó, hệ thống có thể phân loại nhanh chóng với độ chính xác cao, giúp tối ưu hoá thời gian và chi phí sản xuất
b Ứng dụng AI và IoT trong lĩnh vực nông nghiệp: ESP32-CAM là một thiết
bị IoT có khả năng xử lý hình ảnh và tích hợp các mô hình AI, với chi phí rẻ và
dễ triển khai Việc áp dụng hệ thống này vào nông nghiệp không chỉ mở ra cơ hội ứng dụng AI trong lĩnh vực này mà còn góp phần thúc đẩy quá trình chuyển
đổi số trong nông nghiệp
c Khả năng ứng dụng thực tiễn cao: Hệ thống sử dụng ESP32-CAM có khả
năng tích hợp dễ dàng, chi phí thấp, và phù hợp với các vùng nông thôn hoặc sản xuất quy mô nhỏ Điều này giúp hệ thống dễ dàng triển khai trên thực tế, từ các trang trại quy mô nhỏ đến các cơ sở chế biến hoa quả vừa và nhỏ
d Nâng cao độ chính xác và đồng nhất trong kiểm tra chất lượng trái cây:
Nhờ hệ thống AI, quá trình nhận diện và phân loại sẽ diễn ra tự động và nhất quán, giảm thiểu sự phụ thuộc vào cảm quan của con người và đảm bảo chất lượng sản phẩm đạt yêu cầu
1.4 Mục đích đề tài:
Tạo ra giải pháp phân loại trái cây ứng dụng AI chi phí thấp: Đáp ứng
nhu cầu của các cơ sở sản xuất quy mô nhỏ và vừa, đồng thời dễ dàng tích hợp vào quy trình hiện có
Phát triển hệ thống đơn giản nhưng hiệu quả, đáp ứng khả năng xử lý
của ESP32-CAM: Đảm bảo hệ thống hoạt động ổn định và duy trì độ chính
xác cao trong các điều kiện thực tế
Mở rộng ứng dụng của IOT và AI trong nông nghiệp : Đóng góp vào quá
trình số hóa và hiện đại hóa quy trình sản xuất trong nông nghiệp giúp tăng cường năng suất và đảm bảo đọo chính xác cao
1.5 Giới hạn:
Giới hạn về phần cứng của ESP32-CAM: ESP32-CAM có bộ nhớ và khả
năng xử lý hạn chế so với các hệ thống nhúng cao cấp khác Do đó, mô hình
AI cần được tối ưu hóa để hoạt động trên thiết bị này mà không ảnh hưởng đến độ chính xác và hiệu suất
Trang 5 Giới hạn về số lượng loại trái cây được nhận diện: Do hạn chế về dung
lượng bộ nhớ và công suất xử lý, dự án hiện chỉ triển khai nhận diện và phân loại một số loại trái cây phổ biến như táo, cam, chuối Các loại trái cây khác
có thể được bổ sung sau khi mô hình được tối ưu và thử nghiệm thêm
Giới hạn về điều kiện ánh sáng và môi trường: Do ESP32-CAM sử dụng
camera tích hợp, điều kiện ánh sáng có thể ảnh hưởng đến chất lượng ảnh đầu vào và khả năng nhận diện Dự án sẽ thiết kế hệ thống thử nghiệm trong điều kiện ánh sáng chuẩn, tuy nhiên hệ thống có thể cần điều chỉnh nếu triển khai trong môi trường ánh sáng yếu hoặc không ổn định
Chương 2: Cơ Sở Lý Thuyết
2.1 Tổng quan
Trong dự án "Hệ thống nhận diện trái cây bằng ESP32-CAM và trí tuệ nhân tạo
có độ chính xác cao," chúng tôi lựa chọn cách tiếp cận ứng dụng học sâu (Deep
Learning) để nhận diện và phân loại trái cây Phương pháp này bao gồm việc sử
dụng mô hình học máy tối ưu hóa cho thiết bị nhúng – cụ thể là TensorFlow Lite
for Microcontrollers – để đảm bảo mô hình nhận diện có thể hoạt động mượt mà
trên phần cứng hạn chế của ESP32-CAM Dưới đây là tổng quan về các phương pháp và công nghệ nền tảng
2.1.1 Học Sâu (Deep Learning)
Học sâu (Deep Learning) là một nhánh của học máy (Machine Learning), đặc biệt hiệu quả trong việc phân loại hình ảnh, nhận diện đối tượng và xử lý ngôn ngữ tự nhiên Deep Learning sử dụng các mô hình mạng nơ-ron nhân tạo có nhiều lớp (Deep Neural Networks), cho phép mô hình tự động học đặc trưng từ dữ liệu đầu vào Khi được áp dụng cho bài toán nhận diện trái cây, học sâu giúp mô hình
tự trích xuất các đặc điểm hình ảnh (như màu sắc, hình dạng, kích thước) của từng loại trái cây, từ đó cải thiện độ chính xác trong phân loại
Các mô hình học sâu phổ biến cho bài toán nhận diện hình ảnh thường được xây dựng trên nền tảng mạng nơ-ron tích chập (Convolutional Neural Network - CNN), vốn được tối ưu cho việc xử lý và phân tích dữ liệu hình ảnh nhờ vào cấu trúc lớp tích chập, cho phép mô hình học các đặc trưng không gian trong ảnh
2.1.2 Mạng Nơ-ron Tích Chập (CNN)
Mạng nơ-ron tích chập (CNN)là một loại mạng nơ-ron đặc biệt, sử dụng các lớp tích chập (convolutional layers) để trích xuất đặc trưng từ hình ảnh CNN hoạt
Trang 6động bằng cách quét qua hình ảnh đầu vào, tìm kiếm các đặc trưng cục bộ như cạnh, góc, đường cong, và dần dần xây dựng nên các đặc trưng phức tạp hơn khi đi sâu vào các lớp của mạng
Trong bối cảnh nhận diện trái cây, CNN giúp hệ thống dễ dàng nhận diện các loại trái cây khác nhau dựa trên các đặc điểm hình ảnh độc đáo, như màu sắc
và hình dạng Những đặc trưng này sẽ được truyền qua các lớp của mạng CNN để tạo thành đầu ra là các lớp phân loại tương ứng với các loại trái cây cụ thể
2.1.3 TensorFlow Lite for Microcontrollers
TensorFlow Lite for Microcontrollers là một phiên bản nhẹ của TensorFlow, được thiết kế đặc biệt để hoạt động trên các thiết bị nhúng có tài nguyên hạn chế như ESP32-CAM TensorFlow Lite for Microcontrollers cho phép triển khai các
mô hình học máy đã được tối ưu hóa, giúp thiết bị xử lý hình ảnh một cách hiệu quả mà không cần đến bộ xử lý mạnh mẽ hoặc dung lượng bộ nhớ lớn
Trong hệ thống này, mô hình CNN sau khi được huấn luyện trên máy tính sẽ được chuyển đổi sang định dạng TensorFlow Lite để có thể tải và chạy trên ESP32-CAM Quy trình tối ưu hóa mô hình bao gồm các bước giảm độ phức tạp, nén mô hình và giảm số lượng tham số, giúp tăng cường khả năng tính toán và giảm yêu cầu bộ nhớ
2.1.4 ESP32-CAM và Khả Năng Xử Lý Hình Ảnh ESP32-CAM là một module IoT tích hợp chip ESP32 với camera OV2640,
có khả năng chụp và xử lý hình ảnh cơ bản ESP32-CAM hỗ trợ kết nối WiFi và có thể hoạt động như một máy chủ hình ảnh, cho phép truyền dữ liệu hình ảnh qua mạng đến thiết bị khác Tuy nhiên, do hạn chế về dung lượng bộ nhớ và công suất
xử lý, ESP32-CAM không thể chạy các mô hình học sâu phức tạp mà cần sử dụng các mô hình đã được tối ưu hóa như TensorFlow Lite for Microcontrollers
Khi sử dụng trong hệ thống nhận diện trái cây, ESP32-CAM sẽ thực hiện quy trình như sau:
1 Chụp ảnh: Camera của ESP32-CAM chụp ảnh trái cây và gửi dữ liệu hình
ảnh đến bộ xử lý của module
2 Xử lý hình ảnh: Mô hình TensorFlow Lite nhận diện loại trái cây trong ảnh
và đưa ra kết quả phân loại
Trang 73 Truyền kết quả: Dữ liệu kết quả sau khi nhận diện sẽ được truyền qua mạng
đến thiết bị hoặc được lưu trữ để phục vụ mục đích theo dõi
2.1.5 Phương pháp tối ưu hóa mô hình cho thiết bị nhúng
Để mô hình học sâu có thể hoạt động hiệu quả trên thiết bị nhúng, cần phải thực hiện các bước tối ưu hóa nhằm giảm tải cho bộ nhớ và công suất tính toán:
Giảm số lớp và tham số của mô hình: Các mô hình phức tạp với nhiều lớp tích
chập và tham số thường yêu cầu dung lượng lớn và thời gian tính toán lâu Bằng cách giảm số lớp và số lượng tham số, mô hình trở nên nhẹ hơn và phù hợp với thiết bị ESP32-CAM
Giảm độ phân giải ảnh đầu vào: Ảnh có độ phân giải cao sẽ làm tăng yêu cầu bộ
nhớ và thời gian xử lý Vì vậy, ảnh đầu vào sẽ được nén lại ở mức chấp nhận được, giữ nguyên các đặc trưng cần thiết để phân loại nhưng tiết kiệm được bộ nhớ
Triển khai lượng tử hóa mô hình (Quantization): Quá trình lượng tử hóa chuyển
các tham số của mô hình từ định dạng 32-bit float sang định dạng 8-bit integer, giúp giảm đáng kể kích thước của mô hình và tăng tốc độ tính toán
2.2 Giới thiệu phần cứng
ESP32-CAM
ESP32-CAM là một module phát triển nhỏ gọn được trang bị chip ESP32, tích
hợp Wi-Fi và Bluetooth, và đặc biệt có khả năng xử lý hình ảnh thông qua camera
Trang 8tích hợp Đây là một giải pháp phần cứng lý tưởng cho các ứng dụng IoT yêu cầu khả năng kết nối không dây và xử lý hình ảnh với chi phí thấp
Thông số kỹ thuật chính của ESP32-CAM:
Chip xử lý: ESP32 (dual-core, 240 MHz), cho khả năng xử lý mạnh mẽ các
tác vụ đơn giản và vừa phải
Camera: OV2640, với độ phân giải tối đa 2MP (1600x1200), cung cấp hình
ảnh chất lượng đủ để thực hiện nhận diện và phân loại
Bộ nhớ: RAM 520KB và Flash 4MB, đủ để tải các mô hình học sâu đã được
tối ưu hóa
Kết nối: Hỗ trợ kết nối Wi-Fi 802.11b/g/n và Bluetooth 4.2, giúp dễ dàng
truyền tải dữ liệu qua mạng hoặc kết nối với các thiết bị ngoại vi
Các chân GPIO: Cung cấp nhiều chân GPIO cho các tác vụ điều khiển khác
như điều khiển đèn LED, nút nhấn hoặc kết nối các cảm biến bổ sung
Điện áp hoạt động: 3.3V, yêu cầu nguồn cấp ổn định
2.2.1 Cảm biến hình ảnh OV2640 OV2640 là một cảm biến hình ảnh CMOS được trang bị trên ESP32-CAM, có
độ phân giải tối đa 2 megapixel (1600x1200 pixel) Đây là một cảm biến hình ảnh phổ biến được sử dụng trong nhiều ứng dụng nhúng như camera giám sát, thiết bị IoT, và các hệ thống nhận diện hình ảnh cơ bản Cảm biến OV2640 cung cấp các tính năng sau:
Độ phân giải cao: 2MP, cho phép chụp ảnh rõ nét với chất lượng phù hợp
cho các mô hình nhận diện trái cây
Trang 9 Hỗ trợ các chế độ hình ảnh khác nhau: Có thể chụp ảnh màu, ảnh đen
trắng, chế độ tự động cân bằng sáng, hỗ trợ lấy nét cơ học và phơi sáng tự động
Tiết kiệm năng lượng: OV2640 hoạt động hiệu quả về mặt năng lượng,
giúp kéo dài tuổi thọ pin trong các hệ thống di động hoặc hoạt động độc lập Với ESP32-CAM, cảm biến OV2640 đóng vai trò là mắt của hệ thống, cung cấp hình ảnh đầu vào cho mô hình học sâu (Deep Learning) trong quá trình nhận diện
và phân loại trái cây Mặc dù chất lượng của camera có thể không tương đương với các cảm biến hình ảnh cao cấp, nhưng độ phân giải 2MP đủ để nhận diện các loại trái cây trong môi trường điều kiện ánh sáng ổn định
1 Độ phân giải 1600 × 1200/1280 × 960/640 × 480
2 Điện áp hoạt động 1.8V – 3.3V (DC)
3 Số lượng điểm ảnh 2 triệu điểm ảnh (1600×1200 pixel).
6 Tốc độ khung hình tối đa 15 khung hình/giây (SXGA).
7 Kích thước quang học 1/4 inch.
8 Nhiệt độ hoạt động -20 ° C ~ 70 ° C
10 Tốc độ truyền hình ảnh 15/30/60 khung hình / giây
Trang 102.2.2 Màn hình LED
Điện áp MAX : 7V
- Điện áp MIN : - 0,3V
- Hoạt động ổn định : 2.7-5.5V
- Điện áp ra mức cao : > 2.4
- Điện áp ra mức thấp : <0.4V
- Dòng điện cấp nguồn : 350uA - 600uA
- Nhiệt độ hoạt động : - 30 - 75 độ C
- Giao tiếp : I2C
Chương 3: TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
3.1 Giới thiệu
Trong chương này, trình bày về cách tính toán, sơ đồ khối, sơ đồ nguyên lý của các board của hệ thống: Trung tâm xử lý, module đọc giá trị cảm biến, oled hiển thị
Trang 113.2 Thiết kế sơ đồ khối hệ thống
Chức năng của khối:
Khối thu thập dữ liệu: Chụp ảnh hoặc quay video và truyền dữ liệu hình
ảnh dưới dạng tín hiệu số hóa đến khối xử lý trung tâm (ESP32-CAM) Camera OV2640 là thành phần quan trọng để thu thập dữ liệu hình ảnh từ môi trường bên ngoài
Khối xử lý trung tâm: Nhận dữ liệu số hóa từ camera OV2640 và xử lý dữ
liệu hình ảnh ESP32-CAM có thể thực hiện các tác vụ xử lý hình ảnh như nén dữ liệu, xử lý sơ bộ, hoặc phân tích trực tiếp Nếu cần, module này cũng
có thể truyền dữ liệu qua Wi-Fi hoặc Bluetooth đến các hệ thống bên ngoài
Khối nguồn: Cung cấp nguồn cho hệ thống hoạt động.
Khối hiển thị:Hiển thị kết quả được xử lý từ khối ESP32-CAM, chẳng hạn như thông tin về loại hoa quả nhận diện được Màn hình LED có thể nhận dữ liệu dạng tín hiệu số hóa từ ESP32-CAM và hiển thị nội dung cần thiết
3.3 Tính toán và thiết kế mạch
3.3.1 Khối trung tâm xử lý
a Chức năng
b Lựa chọn linh kiện
Trang 123.3.2 Thiết kế khối
a Chức năng
b Lựa chọn linh kiện
Giải thích sơ đồ nguyên lý:
3.3.3 Khối hiển thị
Màn hình Oled 0.96inch I2C hoạt động ở mức điện áp 3.3V đến 5V cho khả năng hiển thị hình ảnh đẹp với khung hình 128x64 pixel Ngoài ra, màn hình còn tương thích với hầu hết các vi điều khiển hiện nay thông qua giao tiếp 12C ít tốn chân kết nối nên đường truyền ổn định, dễ giao tiếp Màn hình sử dụng driver SSD1306 cùng thiết kế nhỏ gọn sẽ giúp bạn phát triển các sản phẩm DIY hoặc các ứng dụng khác một cách nhanh chóng
Các chân kết nối của Oled với vi điều khiển:
VDD: Nhận nguồn 3.3V để Oled hoạt động
GND: Chân nối đất
SCL: Chân xung Clock
SDA: Chân nhận dữ liệu
Chương 4: THI CÔNG HỆ THỐNG
4.1 Thiết kế mạch
4.2 Lập trình hệ thống
Lưu đồ giải thuật chương trình