Và một trong những mạng được sử dụng phổ biến làmạng tích chập - CNN, đây là một mô hình để nhận dạng và phân loại hình ảnh.Trong đó, xác định đối tượng và phân loại trái cây là một tron
GIỚI THIỆU
Giới thiệu
Nông nghiệp là một ngành kinh tế đóng vai trò quan trọng của Việt Nam, đóng vai trò là trụ đỡ của nền kinh tế, nguồn cung lương thực, thực phẩm và hàng hóa luôn được đảm bảo [1] Các mặt hàng rau củ quả luôn có nguồn cung dồi dào và ổn định cho thị trường tiêu thụ nội địa [1] Thị trường trong nước đang được quan tâm và chú trọng hơn [2] Và với xu thế đó, các cửa hàng trái cây ra đời ngày càng nhiều.
Do nhu cầu của thị trường nội địa, trái cây được đóng trong hộp tươi được cân nặng, niên yết giá rõ ràng hay trái cây được đặt trên các kệ hàng trưng bày để khách hành tự lựa chọn, tính tiền tại cửa hàng là hai hình thức bán trái cây phổ biến hiện nay Để áp ứng những nhu cầu đó, những đề xuất ứng dụng công nghệ
AI, xử lý ảnh và học sâu để xây dựng một hệ thống tính tiền tự động áp dụng cho tính tiền tại các cửa hàng trái cây bắt đầu ra đời. Đề tài sẽ thực hiện xây dựng mô hình hệ thống tính tiền tự động tại cửa hàng trái cây Ứng dụng công nghệ này không những giúp khách hàng tiện lợi hơn trong việc tính tiền, mà còn giúp các cửa hàng, dịch vụ kinh doanh trái cây giảm áp lực về mặt tài chính, nhân công.
Công nghệ Deep learning (học sâu) đã định hình cách mà chúng ta nhìn vào vấn đề xử lý hình ảnh và thị giác máy tính Các mạng nơ-ron có khả năng nhận diện đối tượng trong ảnh và video với độ chính xác ngày càng cao Hiện nay, công nghệ xử lý ảnh đã và đang được áp dụng vào nhiều ngành nghề, lĩnh vực cụ thể trong thực tế Ví dụ như nhận diện khuôn mặt trên điện thoại, phân loại trái cây sâu bệnh, …[3] Deep learning có cấu trúc từ các mạng nơ-ron gồm nhiều tầng (lớp) nối tiếp nhau Và một trong những mạng được sử dụng phổ biến là mạng tích chập - CNN, đây là một mô hình để nhận dạng và phân loại hình ảnh. Trong đó, xác định đối tượng và phân loại trái cây là một trong số lĩnh vực mà CNN được áp dụng phổ biến nhất với nhiều bài nghiêm cứu, báo cáo như:
“Classification of Fruits using Convolutional Neural Networks” của nhóm tác giả Roshani Raut; Anuja Jadhav; Chaitrali Sorte; Anagha Chaudhari nghiên cứu về mạng CNN để nhận dạng trái cây [4], “Classification of Grapevine Leaf Images with Deep Learning Ensemble Models” của tác giả Qingcong Lv khi đã thực hiện nghiêm cứu phân loại các loại nho [5], và “MobileNetV2: Inverted Residuals and Linear Bottlenecks” của nhóm tác giả Mark Sandler, Andrew Howard, Menglong Zhu, Andrey Zhmoginov, Liang-Chieh Chen về một mạng nhẹ, nhưng vẫn đem lại độ chính xác cao khi phân loại cùng nhiều nghiên cứu khác.
Từ những nhu cầu cấp thiết, thực tế trên, tác giả thực hiện đề tài “Xây dựng mô hình phân loại trái cây để ứng dụng trong hệ thống tính tiền tự động”.
Mô hình có chức năng nhận dạng, phân loại và tính tiền dựa trên đơn giá, cân nặng của trái cây và hiển thị trên giao diện web Hệ thống sẽ có chức năng quản lý đơn giá, dữ liệu và tự huấn luyện mô hình.
Mục tiêu đề tài
Nghiên cứu thuật toán CNN MobileNetV2 để xây dựng được mô hình phân loại trái cây có trong dữ liệu của cửa hàng trái cây.
Nghiên cứu và xây dựng khối cảm biến (bàn cân, camera) kết nối với máy tính để thi công mô hình.
Xây dựng được mô hình tính tiền tự động dành cho cửa hàng trái cây có chức năng nhận dạng, phân loại và tính tiền dựa trên đơn giá, cân nặng của trái cây và hiển thị trên giao diện web Có chức năng quản lý đơn giá, dữ liệu và tự huấn luyện mô hình.
Giới hạn đề tài
Đề tài chỉ tập trung phân loại tối đa 20 loại trái cây có trong cửa hàng ở điều kiện đủ ánh sáng, góc chụp trực diện và chưa có khả năng phân loại các loại trái cây cùng loại nhưng khác giống.
Phương pháp nghiên cứu
Nghiên cứu về hệ thống tính tiền tự động.
Phân tích thuật toán phân loại sử dụng trong đề tài: thuật toán phân loại,mạng tích chập CNN mobileNet.
Xây dựng mô hình phân loại trái cây để ứng dụng trong hệ thống tính tiền tự động.
Đối tượng và phạm vi nghiên cứu
Các thuật toán phân loại, mạng tích chập CNN mobileNet và hệ thống tính tiền tự động.
Phạm vi nghiên cứu: Đề tài chỉ tập trung phân loại tối đa 20 loại trái cây ở điều kiện ánh sáng phù hợp, góc chụp trực diện.
Bố cục quyển báo cáo
Bài báo cáo gồm 5 chương, nội dung như sau:
Chương I Giới thiệu: Khái quát về thực trạng sử dụng hệ thống tính tiền tự động, các khái niệm thuật toán có liên quan và tên đề tài được thực hiện Trình bày mục tiêu, giới hạn, phương pháp, đối tượng và phạm vi nghiên cứu của đề tài. Chương II Cơ sở lý thuyết: Trình bày những lý thuyết đã nghiên cứu và tổng hợp về thuật toán mạng tích chập CNN mobileNet và hệ thống tính tiền tự động. Chương III Thiết kế hệ thống: Ý tưởng, quy trình thiết kế hệ thống (phần cứng, phần mềm).
Chương IV Kết quả: Trình bày kết quả đạt được của đề tài, sản phẩm thực tế khi thi công và các chức năng hoạt động của hệ thống.
Chương V Kết luận và hướng phát triển: Trình bày ưu, nhược điểm của đề tài đồng thời đề ra các hướng pháp triển xa hơn, giúp đề tài hoàn thiện hơn.
CƠ SƠ LÝ THUYÊT
Vi điều khiển và cảm biến được sử dụng trong hệ thống tính tiền tự động
ESP8266 là một vi điều khiển Wi-Fi mạnh mẽ và tiết kiệm năng lượng được phát triển bởi Espressif Systems Được giới thiệu vào năm 2014, ESP8266 đã nhanh chóng trở thành một trong những lựa chọn phổ biến nhất cho các dự án Internet of Things (IoT) và các ứng dụng kết nối không dây khác nhau.
Một trong những điểm đáng chú ý nhất của ESP8266 là khả năng kết nối với mạng Wi-Fi thông qua giao thức 802.11 b/g/n.Vi điều khiển của ESP8266 là CPU Tensilica Xtensa LX106 32-bit, hoạt động ở tốc độ 80 MHz, cung cấp sức mạnh tính toán đủ cho hầu hết các ứng dụng IoT Nó cũng đi kèm với một bộ nhớ flash lớn (thường là 32 MB) để lưu trữ mã chương trình và dữ liệu.ESP8266 cũng có một số tính năng phát triển khác như bộ nhớ SRAM 80 KB, 17 chân GPIO cho việc kết nối với các thiết bị ngoại vi và hỗ trợ nhiều giao thức giao tiếp như SPI, I2C, UART, PWM và ADC Một trong những điểm mạnh của ESP8266 là tiêu thụ điện năng thấp, điều này làm cho nó trở thành một lựa chọn lý tưởng cho các ứng dụng cần sử dụng pin hoặc nguồn năng lượng hạn chế đáp ứng yêu cầu đề tài.
2.2.2 Cảm biến cân nặng Load Cell với HX711
Loadcell là cảm biến lực có chức năng đo lường trọng lượng Được làm từ hợp kim nhôm, loadcell mang lại nhiều ưu điểm như trọng lượng nhẹ, độ chính xác cao Để đọc giá trị từ cảm biến, đề tài sử dụng module khuếch đại HX711, có chức năng chuyển đổi tín hiệu analog thành tín hiệu số Module này kết nối với vi điều khiển ESP8266 thông qua giao thức 2 dây (SCK - Clock và DT - Data), hỗ trợ hai kênh đầu vào (kênh A và kênh B) có thể lập trình đảm bảo yêu cầu do lường của mô hình do tính linh hoạt của nó Với Load Cell 20kg đáp ứng đúng mục tiêu được đề ra.
Thiết kế phần cứng
THIÊT KÊ HỆ THỐNG TỰ ĐỘNG TÍNH TIỀN
VÀ PHÂN LOẠI TRÁI CÂY
Ngày nay, đa số các thiết bị, hệ thống điện tử đều đang dần được phát triển và chuyển đổi theo xu hướng tự động hóa phục vụ con người trong các ngành khác nhau, đồng thời đem lại hiệu suất làm việc cao Theo xu hướng đó, ngày càng các hệ thống tự động, các thuật toán học máy, các cảm biến ra đời ngày càng nhiều để mô phỏng lại khả năng của con người Và bài toán “Phân loại trái cây” ứng dụng trong một hệ thống “tính tiền tự động” là đề tài có giá trị nghiên cứu cao. Đề tài ““Xây dựng mô hình phân loại trái cây để ứng dụng trong hệ thống tính tiền tự động”với mục tiêu xây dựng được mô hình phân loại các loại trái cây (tối đa 20 loại) đựa trên thuật toán CNN mobileNet kết hợp với giao diện tính tiền trên web dùng React.js để tính tiền tự động với khách hàng Có web dành riêng cho chủ cửa hàng để điều chỉnh đơn giá sản phẩm, huấn luyện mô hình học dữ liệu trái cây mới được thêm vào. Đề tài chỉ tập trung phân loại trái cây ở điều kiện môi trường tốt Kết hợp với cân nặng để tính toán được số tiền khách hàng cần trả cho loại trái cây được đặt trên bàn cân.
3.1.1 Chức năng của phần cứng
Hệ thống dùng cảm biến cân nặng được truyền thông qua vi điều khiển ESP8266 và truyền giá trị trọng lượng về khối xử lý với các chức năng sau đây:
Có khả năng do lường được trọng lượng, cân nặng của trái cây khi được đặt trên bàn cân
Có khả năng truyền dữ liệu nhanh chóng về khối xử lý khi có yêu cầu.
Hệ thống có Camera (webcam) đùng để truyền hình ảnh về khối xử lý cũng như truyền đến giao diện.
Khối xử lý là bộ não của hệ thống, là nơi mà khối phần mềm hoạt động, kết nối với server, khối cảm biến và giao tiếp với khách hàng qua giao diện web. Khối Server là nơi để truy suất thông tin giá tiền các loại sản phẩm và có thể chỉnh sửa các thông tin này qua giao diện của phần mềm quản lý.
Hình 3.1.1 Sơ đồ kết nối phần cứng
Máy tính sẽ đóng vai trò là nơi xử lý các thông tin đến từ cảm biến và camera. Máy tính kế nối với esp8266 và lấy dữ liệu thông qua serial Esp8266 phụ trách việc load dữ liệu cân nặng từ cảm biến loadcell - Hx711 thông qua việc kết nối như hình trên Hệ thống sẽ có thêm đèn led chiếu sáng để đảm bảo độ sáng trong quá trình phân loại và tính tiền.
3.1.3 Sơ đồ khối phần cứng
Hệ thống gồm 4 khối chính, bao gồm khối cảm biến, khối server, khối xử lý và khối nguồn liên kết với nhau như sơ đồ khối sau:
Hình 3.1.2 Sơ đồ khối Hệ thống
Khối cảm biến có chức năng đọc được cân nặng, quay chụp video và gửi về cho bộ xử lý khi có yêu cầu.
Khối server có chức năng gửi đơn giá sản phẩm, kết nối với các ứng dụng khác, có khả năng chỉnh sửa đơn giá và sản phẩm.
Khối xử lý: xử lý dữ liệu do khối cảm biến truyền đến để đưa qua kết quả tính toán, phân loại hình ảnh, đưa kết quả đến người dùng.
Khối nguồn có chức năng cung cấp tài nguyên năng lượng đảm bảo mô hình hệ thống hoạt động đúng yêu cầu, ổn định.
Khối cảm biến bao gồm: Cảm biến cân nặng Loadcell với HX711, ESP8266, Webcam.
Hình 3.1.3 Sơ đồ khối cảm biến
Cảm biến cân nặng cùng bộ chuyển đổi HX711 sẽ tiến hành do lường trọng lượng và gửi đến bộ xử lý thông qua ESP8266.
Cảm biến cân nặng loadcell 20kg HX711 được chọn với cảm biến được làm từ kim loại với sự nhỏ gọn, độ chính xác cao, cùng với module chuyển đổi HX711 phục vụ cho việc giao tiếp với vi điều khiển.
Với điện áp hoạt động 3-5VDC, hoạt động ổn định ở nhiệt độ từ -20oC đến85oC, dùng vật liệu cảm biến là nhôm Cùng với khả năng cân nặng lên tới 20kg.Cảm biến cân nặng Loadcell 20kg là lựa chọn tốt dành cho việc cân nặng, đảm bảo tính ổn định và khả năng hoạt động ở điều kiện thường Cảm biến Loadcell gồm 4 dây: chân nguồn (VCC): nối với nguồn 5v; Chân đất (GND); 2 chân E+ và E-: Là đầu ra của cảm biến Loadcell.
Module HX711: Module này giúp đọc giá trị analog từ cảm biến Loadcell và chuyển đổi thành giá trị số (digital) Gồm 5 chân: E+ và E-: Kết nối với đầu ra tương ứng của cảm biến Loadcell; VCC: Nguồn 3-5v; Chân GND; Chân DT và SCK: Kết nối với vi điều khiển ESP8266.
Hình 3.1.4 Lưu đồ hoạt động cảm biến cân nặng
Khi có yêu cầu từ khối xử lý, ESP8266 sẽ lấy giá trị từ cảm biến và truyền tới khối xử lý Đồng thời hiển thị ra LCD.
Dữ liệu hình ảnh từ Webcam sẽ được truyền trực tiếp đến bộ xử lý.
Tạo các API từ Firebase để bộ xử lý truy suất, người quản lý tiến hành giám sát, cập nhập dữ liệu.
Khối server tạo ra các API, khối xử lý sẽ yêu cầu đến API để thực hiện việc lấy thông tin để tính toán, xử lý Khối Server cho phép các nhà phân phối có thể liên kết với nền tảng web của họ thông qua API.
Hình 3.1.5 Giao tiếp giữa khối xử lý với khối server
Dữ liệu được server cho phép bộ xử lý truy xuất là đơn giá của các sản phẩm trái cây Trong trường hợp là Admin thì có thêm chức năng data và chỉnh sửa cho nó.
Khối xử lý xử lý các dữ liệu, thêm data, huấn luyện mô hình và hiển thị giao diện tương tác với người dùng.
Hình 3.1.6 Giao tiếp giữa khối xử lý với các khối
Khối xử lý kết nối với tất cả các cảm biến từ khối cảm biến Khi có yêu cầu sẽ lấy kết quả từ cảm biến và server để xử lý, tính toán và trả kết quả tới người dùng.
Thiết kế phần mềm
Khi có yêu cầu đến từ người dùng, bộ xử lý sẽ tiến hành yêu cầu giá trị cân nặng từ cảm biến, hình ảnh từ Webcam Khối xử lý sẽ tiến hành hoạt động nhận diện và phân loại trái cây sau đó xác định loại trái cây Sau khi xác định được loại trái cây, khối xử lý sẽ yêu cầu đơn giá của loại trái cây từ server cùng với cân nặng đã được yêu cầu trước đó để tiến hành nhân và tính ra số tiền mà người dùng cần phải trả.
3.2 THIÊT KÊ PHẦN MỀM Đề tài đã xây dựng 2 phần mềm với các chức năng như sau:
Phần mềm quản lý: dành cho bộ phận quản lý: Chỉnh sửa dữ liệu đơn giá, thêm dữ liệu hình ảnh của trái cây mới, xóa dữ liệu hình ảnh, Huấn luyện lại mô hình với dữ liệu sau khi sửa.
Phần mềm tính tiền: dành cho khách hàng để tính tiền, có chức năng: nhận diện và tính tiền trái cây, xuất hóa đơn.
3.2.1 Chức năng của phần mềm
- Phần mềm có khả năng chỉnh sửa đơn giá, chụp ảnh trái cây và thêm vào data, xóa dữ liệu, huấn luyện mô hình khi có dữ liệu mới, tự động lưu và deploy cho phần mềm tính tiền truy suất và nhận diện.
- Phần mềm hiển thị hình ảnh từ webcam, hiển thị các chức năng một cách trực quan.
- Phần mềm có chức năng giao tiếp trực quan đến người dùng, là giao diện để người dùng tương tác và yêu cầu tính tiền.
- Phần mềm hiển thị dữ liệu hình ảnh từ camera, hiển thị hóa đơn khi tính tiền.
3.2.2 Hoạt động của phần mềm quản lý và tính tiền
Hình 3.2.1 Sơ đồ phần mềm quản lý và tính tiền Phần mềm quản lý:
Phần mềm quản lý sẽ làm việc trực tiếp với Server để quản lý các thông tin sản phẩm, có chức năng quản lý thông tin , dữ liệu để huấn luyện mô hình nhằm cập nhập khi có loại trái cây mới.
KÊT QUẢ
Hoạt động của hệ thống tính tiền
Khi người dùng đặt trái cây lên bàn cân và bấm nút Start trên giao diện web để yêu cầu tính tiền và thêm vào hóa đơn.
Hình 4.2.1 Trái cây được đặt lên bàn cân
Giao diện sẽ hiển thị được loại sản phẩm, hình ảnh, cân nặng, đơn giá và thành tiền sau khi nhấn “Precesss Image” như sau:
Hình 4.2.2 Kết quả mỗi khi phân loại trái cây
Khí đó người dùng kiểm tra hóa đơn trên giao diện và thêm vào giỏ hàng. Sau đó, khi đã cân hết các loại trái cây cần thiết thì người dùng sẽ vào giỏ hàng và thanh toán.
Hình 4.2.3 Trang giỏ hàngNgười dùng chỉ cần vào giỏ hành và bấm thanh toán Sau đó, hóa đơn sẽ được xuất và in ra.
Hóa đơn được xuất sẽ hiển thị tường minh thông các sản phẩm, giá tiền.
Test case: Đối tượng Chức năng Số mẫu Pass/Total
Chức năng thêm dữ liệu 10 10/10
Chức năng xóa dữ liệu 10 10/10
Chức năng cập nhập đơn giá 10 10/10
Chức năng phân loại và hóa đơn tạm tính 10 10/10
Chức năng thêm vào giỏ hàng 10 10/10
Mô hình phân loại Phân loại trái cây 12 12/12
Toàn quy trình Kiểm tra vận hành tính tiền thực tế 10 10/10