Đáp ứng nhu cầu này, nhóm đã phát triển một thiết bị hỗ trợ bán hàng mới sửdụng công nghệ nhận dạng hình ảnh trên nền tảng Edge Impulse để nhận diện vật phẩm và kết hợp với cảm biến Load
Trang 1HÀ NỘI, 2023
Trang 2MỤC LỤC
MỤC LỤC 1
DANH MỤC HÌNH ẢNH 3
LỜI MỞ ĐẦU 4
CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN 5
1.1.Tổng quan về ESP Cam 51.2.Cảm biến Loadcell 71.3.Web BLE 91.3.1 Giới thiệu về Web BLE 9
1.3.2 Các trình duyệt, thiết bị hỗ trợ Web BLE 9
1.4.Edge Impluse 10Chương 2: Triển khai hệ thống 13
2.1 Học máy có giám sát 132.2 Quy trình thực hiện model 142.2.1 Collect Images 14
2.3.2 Các bước tạo BLE Server 26
2.3.3 Giao diện, mô tả Web 28
2.4 Hiệu chỉnh thang đo Loadcell 29Chương 3: Thử nghiệm đánh giá hoạt động 35
3.1 Thử nghiệm hệ thống 353.2 Kết luận, đánh giá 40TÀI LIỆU THAM KHẢO 42
Trang 4DANH MỤC HÌNH ẢNH
Hình 1 Tổng quan về esp cam 7
Hình 2 Cảm biến Loadcell 8
Hình 3 Strain gauge 9
Hình 4 Giới thiệu về Web BLE 10
Hình 5 Các trình duyệt hỗ trợ Web BLE 11
Hình 6 Edge Impulse là một công cụ dựa trên đám mây 12
Hình 7 Supervised learning 14
Hình 8 Collect image program 16
Hình 9 Web collect image 17
Hình 19 Build model thành công 23
Hình 20 Run example Program 24
Hình 28 chạy sản phẩm test camera 38
Hình 29 Test web thanh toán 40
Hình 30 Cổng thanh toán 40
Hình 31 Thông báo thanh toán thành công 41
Hình 32 Quản lý đơn hàng 41
Trang 5LỜI MỞ ĐẦU
Trong bối cảnh thị trường bán lẻ đang ngày càng trở nên cạnh tranh và đòi hỏi sự đổi mới không ngừng, việc ứng dụng công nghệ vào quá trình bán hàng đã không còn là xu hướng mà là một yêu cầu thiết yếu Các thiết bị hỗ trợ bán hàng thông minh có khả năng cải thiện hiệu quả công việc, tối ưu hóa quy trình làm việc và nâng cao trải nghiệm khách hàng Đáp ứng nhu cầu này, nhóm đã phát triển một thiết bị hỗ trợ bán hàng mới sửdụng công nghệ nhận dạng hình ảnh trên nền tảng Edge Impulse để nhận diện vật phẩm và kết hợp với cảm biến Loadcell để cân vật phẩm, cùng khả năng truyền nhận dữ liệu qua Web BLE đồng thời tạo QR code để thanh toán Bài báo cáo này sẽ trình bày về quá trình nghiên cứu, thiết kế, xây dựng và thử nghiệm hệ thống này.
Bài báo cáo này sẽ chi tiết từng bước thực hiện, từ quá trình thu thập dữ liệu, huấn luyện mô hình, tích hợp cảm biến, đến việc triển khai và đánh giá hiệu suất hệ thống Quađề tài này, độc giả sẽ hiểu rõ hơn về tiềm năng và giá trị của việc áp dụng công nghệ AI và IoT vào ngành bán lẻ, mở ra những cơ hội mới để cải tiến và phát triển trong tương lai.
Nhóm em cũng xin bày tỏ lòng biết ơn tới thầy đã hỗ trợ tận tình và góp ý quý báu cho nhóm trong suốt quá trình nghiên cứu và phát triển đề tài này Trong quá trình đánh giá nhóm mong muốn có thể tiếp tục nhận được sự đóng góp và hỗ trợ trong tương lai từ thầy.
Nội dung chính của đề tài:
- Chương 1: Nghiên cứu tổng quan.- Chương 2: Triển khai hệ thống.
- Chương 3: Thử nghiệm, đánh giá hoạt động.
Dưới đây nhóm xin trình bày chi tiết các phần trong nội dung của đề tài.
Trang 6CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN
Trong chương này, nhóm sẽ cung cấp một cái nhìn tổng quan về các công nghệ và thành phần chính được sử dụng trong hệ thống hỗ trợ bán hàng của nhóm Để hiểu rõ hơn về cơ sở của giải pháp công nghệ mà nhóm đã phát triển, chương 1 sẽ khám phá từng thành phần theo thứ tự, bao gồm ESP Cam, cảm biến Loadcell, Web BLE, và cuối cùng lànền tảng Edge Impulse.
1.1.Tổng quan về ESP Cam
Phần này giải thích lý do tại sao ESP Cam là lựa chọn phù hợp cho ứng dụng nhận dạng hình ảnh trong hệ thống của chúng tôi, cũng như các tính năng nổi bật và cách thức hoạt động của nó.
Thiết bị ngoại vi
ESP32-CAM đã tích hợp với Wi-Fi, Bluetooth và có thể được sử dụng với máy ảnh OV2640 hoặc OV7670 IC ESP32 có các giao thức ADC, SPI, I2C và UART độ phângiải cao để giao tiếp dữ liệu Module có cảm biến Hall, cảm biến nhiệt độ và cảm biến cảm ứng, và bộ hẹn giờ wtachdog
Ngoại vi RTC có thể hoạt động ở các chế độ khác nhau Module có tần số xung nhịp tối đa là 160 MHz cho khả năng tính toán lên đến 600 DMPIS Hơn nữa, nó khá bền và độ tin cậy cao khi kết nối internet.
Các ứng dụng
Module ESP32-CAM AI-Thinker có nhiều ứng dụng như tự động hóa trong nhà, thiết bị thông minh, hệ thống định vị, hệ thống an ninh và thích hợp cho các ứng dụng IoT.
Các thành phần AI-Thinker của ESP32-CAM
Bo mạch này là dạng bảng mạch PCB kiểu DIP 27x40,5x4,5 Hình dưới đây cho thấy các thành phần của bo mạch ESP32-CAM ở cả mặt trên và mặt dưới.
Trang 7HÌNH 1 TỔNGQUANVỀESPCAM
Chip ESP32-S: Module này là một con chip chính có hai CPU LX6 hiệu suất cao 32-bit với một kiến trúc vi mạch đường dẫn 7 lớp và sử dụng trong tất cả các quá trình xử lý.
Đầu ra khối IPEX: IPEX được kết nối với ăng-ten GSM để truyền tín hiệu.Tụ tantal: Tụ tantal chủ yếu được sử dụng trên các module có kích thước nhỏ Chúng bền và cung cấp khả năng lọc nguồn điện cho ra tín hiệu ổn định.
Nút reset: Khi được nhấn, nút reset sẽ khởi động lại code được thực thi trên module.Chip điều chỉnh điện áp: Chip điều chỉnh điện áp trên module để duy trì đảm bảo ổn định điện áp đầu ra bất chấp sự thay đổi của nguồn cung cấp đầu vào Nó điều chỉnh điện áp ở 3,3V.
PSRAM: Bộ nhớ truy cập ngẫu nhiên “giả” công suất thấp 4MB được tích hợp trong module để có tốc độ xử lý nhanh Nó giúp máy ảnh chạy mượt mà.
Cổng nhận thẻ TF: Dòng ESP32 có một cổng nhận thẻ micro-SD để lưu trữ dữ liệu Tất cả quá trình truyền dữ liệu đều thông qua giao tiếp ngoại vi nối tiếp.
Đầu nối FPC: Để gắn máy ảnh, module ESP32 có một đầu nối mạch linh hoạt Chiều cao của đầu nối tỷ lệ với độ tin cậy của tín hiệu.
Trang 8Trong phần tổng quan này, chúng ta đã khám phá các đặc điểm kỹ thuật và tính năng của module ESP32-CAM, từ việc sử dụng các thành phần như chip ESP32-S cho đến các tính năng phụ trợ như cổng nhận thẻ TF và đầu nối FPC Khả năng tích hợp Wi-Fi và Bluetooth cùng với các giao tiếp ngoại vi như ADC, SPI, I2C, và UART cung cấp cho module này sự linh hoạt cao và khả năng thích ứng trong nhiều ứng dụng IoT khác nhau, từ tự động hóa trong nhà đến các hệ thống an ninh.
Thêm vào đó, sự bao gồm của cảm biến Hall, nhiệt độ, cảm ứng, và bộ hẹn giờ watchdog cho thấy module này không chỉ là một giải pháp đơn thuần cho ứng dụng máy ảnh mà còn là một nền tảng mạnh mẽ cho phát triển các hệ thống thông minh tích hợp Sựdụng cụ PSRAM 4MB cung cấp khả năng xử lý tín hiệu nhanh và ổn định, làm nền tảng cho các chức năng xử lý hình ảnh phức tạp và nâng cao hiệu suất chung của module.
Cuối cùng, với khả năng tương thích cao và thiết kế bền vững, ESP32-CAM khôngnhững đáp ứng nhu cầu hiện tại của thị trường IoT mà còn mở ra hướng đi mới cho sự phát triển của công nghệ thiết bị ngoại vi trong tương lai Dựa trên những điểm mạnh đã nêu, ESP32-CAM thực sự là một lựa chọn hấp dẫn cho bất kỳ nhà phát triển hoặc nhà thiết kế hệ thống nào đang tìm kiếm một giải pháp hiệu quả và đa năng cho các dự án IoT.
1.2.Cảm biến Loadcell
Tại đây, nhóm sẽ phân tích về cảm biến Loadcell, một công cụ đo lường trọng lượng chính xác, và vai trò của nó trong việc đảm bảo tính minh bạch và chính xác của các giao dịch bán hàng.
Cảm biến trọng lượng (Loadcell) là một loại cảm biến được sử dụng để đo trọng
lượng hoặc lực tác động lên một đối tượng Nó chuyển đổi lực vào một tín hiệu điệntương ứng, cho phép đo trọng lượng với độ chính xác cao.
HÌNH 2 CẢMBIẾN LOADCELL
Trang 9Nguyên lý hoạt động
Cảm biến Loadcell thường được thiết kế dưới dạng một cấu trúc cơ học, bao gồm mộtthanh kim loại hoặc một bề mặt phẳng có khả năng chịu tải Khi một lực tác động lên cảmbiến, nó gây ra biến dạng hoặc uốn cong trong cấu trúc đó Điều này dẫn đến thay đổi vềđiện trở trong cảm biến, và thay đổi này được chuyển đổi thành tín hiệu điện tương ứng.
Cảm biến Loadcell thường sử dụng các yếu tố cảm biến như strain gauge (cảm biến đobiến dạng) để đo sự biến dạng cơ học trong cấu trúc của nó Strain gauge là một thànhphần điện tử nhạy cảm với biến dạng và thay đổi điện trở khi có lực tác động lên nó.Thông qua sự thay đổi điện trở trong strain gauge, cảm biến Load cell có thể xác địnhtrọng lượng hoặc lực tác động.
HÌNH 3 STRAINGAUGE
Các cảm biến Loadcell được sử dụng rộng rãi trong các ứng dụng đo lường trọnglượng và kiểm soát lực tác động, chẳng hạn như trong các thiết bị cân điện tử, thiết bịkiểm tra tải trọng, thiết bị kiểm tra mô-men xoắn và nhiều ứng dụng công nghiệp khác.
Trang 101.3.Web BLE
Phần này được chia thành hai mục Mục đầu tiên, 1.3.1, sẽ giới thiệu về Web BLE - một công nghệ cho phép truyền thông Bluetooth Low Energy qua trình duyệt web Mục thứ hai, 1.3.2, đi sâu vào các trình duyệt và thiết bị hỗ trợ Web BLE, từ đó phác thảo khuôn khổ tương thích cho hệ thống.
1.3.1 Giới thiệu về Web BLE
Web Bluetooth (đôi khi còn được gọi là Web BLE) là công nghệ cho kết nối vàđiều khiển các thiết bị hỗ trợ BLE, trực tiếp từ trình duyệt web bằng JavaScript.
Với Web BLE, ta có thể tạo các ứng dụng web tương tác với thiết bị hỗ trợ BLE quaBluetooth, cho phép bạn điều khiển các chân GPIO, trao đổi dữ liệu và quản lý thiết bịcủa mình từ xa thông qua giao diện web.
HÌNH 4 GIỚITHIỆUVỀ WEB BLE
Web BLE mở rộng khả năng tương tác của trình duyệt web với thiết bị BLE, đồngthời hỗ trợ tích hợp thông tin từ các thiết bị này vào ứng dụng web, tạo ra môi trường pháttriển đa dạng trong lĩnh vực IoT và di động.
1.3.2 Các trình duyệt, thiết bị hỗ trợ Web BLE
Một trong những ưu điểm chính của Web BLE là khả năng tương thích đa nềntảng Ứng dụng Web BLE dựa trên web và có thể chạy trên mọi thiết bị có trình duyệtweb hiện đại hỗ trợ API Web Bluetooth.
-Các trình duyệt hỗ trợ:
Trang 11HÌNH 5 CÁCTRÌNHDUYỆTHỖTRỢ WEB BLE
API Web Bluetooth vẫn đang được phát triển nhưng nhìn chung nó được coi là ổn
định và có thể sử dụng được Nó đã được triển khai trong Chrome, Edge, Opera và đượchỗ trợ trên Android và Windows Tuy nhiên, nó vẫn chưa được hỗ trợ trên iOS.
-Các thiết bị hỗ trợ:
BLE được sử dụng rộng rãi trong nhiều loại thiết bị: đồ công nghệ cá nhân, thiết bịy tế, thiết bị di động, thiết bị IoT, v.v
Để ứng dụng nhiều vào việc nghiên cứu ta quan tâm đến các loại vi điều khiển hỗ
trợ BLE như: các dòng vi điều khiển ESP32, Raspberry Pi, Arduino Nano 33BLE, Còn đối với các loại vi điều khiển chưa hỗ trợ BLE như Arduino Uno, ArduinoNano, ta có thể sử dụng module JDY-33 để biến chúng thành thiết bị có BLE.
Khả năng tương thích đa nền tảng này giúp người dùng không cần tải xuống và càiđặt các ứng dụng dành riêng cho thiết bị di động, đơn giản hóa trải nghiệm người dùng
Điều này có nghĩa là có thể sử dụng điện thoại thông minh, máy tính bảng hoặcmáy tính để bàn để kết nối và điều khiển các thiết bị bằng Web BLE.
1.4.Edge Impluse
Edge Impulse, một trong những nền tảng hàng đầu về Trí tuệ nhân tạo, đã chứng tỏsức mạnh và tầm quan trọng của mình qua nhiều năm Trong phần một này, chúng ta sẽ đào sâu vào những nền tảng cơ bản của Edge Impulse và tại sao nó trở thành lựa chọn hàng đầu trong lĩnh vực này.
Trang 12HÌNH 6 EDGE IMPULSELÀMỘTCÔNGCỤDỰATRÊNĐÁMMÂY
Mô Hình Học Máy Dựa Trên Thiết Bị
Một trong những điểm độc đáo và quan trọng nhất của Edge Impulse là khả năng xây dựng và triển khai mô hình học máy trực tiếp trên thiết bị Điều này giúp giảm độ trễ và tăng hiệu suất cho các ứng dụng yêu cầu thời gian phản ứng nhanh như trong Internet of Things (IoT).
Tích Hợp Dữ Liệu Một Cách Hiệu Quả
Edge Impulse không chỉ giới hạn ở việc xây dựng mô hình mà còn cung cấp khả năng tích hợp dữ liệu một cách an toàn và hiệu quả Điều này giúp người dùng tận dụng tối đa dữ liệu của họ để đào tạo mô hình một cách dễ dàng.
Tương Thích Đa Dạng với Cảm Biến và Thiết Bị
Edge Impulse được thiết kế để tương thích với nhiều loại cảm biến và thiết bị khác nhau Điều này mở ra nhiều cơ hội ứng dụng, từ y tế đến sản xuất và các lĩnh vực khác.
Sử Dụng Trực Tiếp trên Nền Tảng Đám Mây
Với khả năng sử dụng trực tiếp trên nền tảng đám mây, Edge Impulse mang lại sự linh hoạt và thuận tiện cho người dùng Việc này giúp dễ dàng quản lý và theo dõi các dự án Trí tuệ nhân tạo của họ mọi nơi.
Trang 13Cộng Đồng Hỗ Trợ Mạnh Mẽ
Edge Impulse không chỉ là một công cụ, mà là một cộng đồng mạnh mẽ Người dùng có thể chia sẻ kiến thức, kinh nghiệm và tìm kiếm sự giúp đỡ từ cộng đồng này, tạo nên môi trường học tập và phát triển tích cực.
Bảo Mật Dữ Liệu Tích Hợp Sẵn
Một trong những ưu điểm quan trọng của Edge Impulse là sự chú trọng đặc biệt vào bảo mật dữ liệu Việc tích hợp sẵn các tiêu chuẩn bảo mật giúp đảm bảo rằng thông tin của người dùng được bảo vệ một cách an toàn.
Dễ Dàng Sử Dụng và Tích Hợp
Khả năng sử dụng và tích hợp dễ dàng là một yếu tố quan trọng khi chọn nền tảng Trí tuệ nhân tạo Edge Impulse đáp ứng điều này thông qua giao diện người dùng thân thiện và khả năng tích hợp linh hoạt.
Trang 14
Chương 2: Triển khai hệ thống
Sau khi đã giới thiệu và phân tích tổng quan về các công nghệ và thành phần liên quan đến hệ thống hỗ trợ bán hàng của nhóm trong Chương 1, Chương 2 này sẽ tập trung vào việc triển khai thực tế các giải pháp đã nêu Nhóm sẽ đi sâu vào các chi tiết kỹ thuật, bao gồm cả phát triển mô hình học máy, triển khai truyền nhận dữ liệu, thiết lập và điều chỉnh các thành phần phần cứng.
2.1 Học máy có giám sát
Phần này sẽ giải thích các khái niệm cơ bản và lý do tại sao chọn hình thức học máy này cho việc nhận dạng sản phẩm.
Học có giám sát (Supervised Learning): Đây là phương pháp phổ biến nhất được
sử dụng trên Edge Impulse, cho phép người dùng huấn luyện mô hình dựa trên dữ liệu đã được gán nhãn Nó bao gồm các tác vụ như phân loại (ví dụ, phân loại âm thanh hoặc ảnh) và hồi quy (ví dụ, dự Trong tập dữ liệu huấn luyện, mỗi điểm dữ liệu thường được gọi là một ví dụ, và nó bao gồm một hoặc nhiều đặc trưng đầu vào (input features) và mộtnhãn (label) tương ứng Nhãn này có thể là một số (trong trường hợp của học máy dự đoán) hoặc một lớp/cấp (trong trường hợp của phân loại).
HÌNH 7 SUPERVISEDLEARNING
Các bước cơ bản trong học có giám sát bao gồm:
Trang 15Chuẩn bị dữ liệu: Thu thập và xử lý dữ liệu để đảm bảo nó phù hợp cho mô hình Dữ
liệu cần được chia thành hai phần: tập huấn luyện và tập kiểm thử.
Lựa chọn mô hình: Chọn một mô hình học máy phù hợp dựa trên bài toán cần giải quyết
(ví dụ như mạng neuron, máy vector hỗ trợ, cây quyết định, v.v.).
Huấn luyện mô hình: Sử dụng tập dữ liệu huấn luyện để "dạy" mô hình cách dự đoán
nhãn từ các đặc trưng Trong quá trình này, các tham số của mô hình được điều chỉnh để tối ưu hóa hiệu suất của mô hình.
Đánh giá mô hình: Sử dụng tập dữ liệu kiểm thử để đánh giá hiệu suất của mô hình
Điều này giúp kiểm tra liệu mô hình có khả năng tổng quát hóa tốt trên dữ liệu mới không.
Tinh chỉnh và cải thiện: Dựa trên kết quả đánh giá, các điều chỉnh có thể được thực hiện
để cải thiện mô hình, bao gồm điều chỉnh tham số, lựa chọn đặc trưng, hoặc thay đổi cáchtiền xử lý dữ liệu.
Học có giám sát được áp dụng rộng rãi trong nhiều ứng dụng thực tế như nhận diệnkhuôn mặt, phát hiện gian lận, dự đoán giá cả, phân loại văn bản, và hơn thế nữa Các ví dụ phổ biến của các mô hình học có giám sát bao gồm hồi quy tuyến tính, hồi quy logistic, mạng neuron nhân tạo, và cây quyết định.
2.2 Quy trình thực hiện model
Đây là phần chính của chương, được chia thành năm bước chính - thu thập hình ảnh, gán nhãn, huấn luyện mô hình, xuất mô hình và cuối cùng là chạy mô hình Mỗi bước sẽ được trình bày chi tiết, từ cách thu thập dữ liệu cho đến cách triển khai mô hình đã huấn luyện vào hệ thống.
2.2.1 Collect Images
Cài đặt thư viện EloquentEsp32cam
Đây là thư viên hỗ trợ nhiều tính năng cho Esp32 Cam
Sketch > Include Library > Manage Libraries > Tìm kiếm “ EloquentEsp32cam” và cài đặt
Trang 16HÌNH 8 COLLECTIMAGEPROGRAM
Chọn chương trình 26_Collect_ImagesThay thông tin Wifi vào chương trình
// replace with your SSID and PASSWORD
while (!cam.connect("Xuong", "68686868")) Serial.println(cam.getErrorMessage());Lấy ip để truy cập Web Server
Điều chỉnh các góc của vật thể để thu thập
Trang 17HÌNH 9 WEBCOLLECTIMAGE
Download tệp file ảnh về máy (1)
2.2.2 Label Images
Tạo project tại : https://edgeimpulse.com/
Tại mục Data Acquisition
Dataset upload ảnh từ mục 1 lên
HÌNH 10 DATAACQUISTION
Trang 18Chọn "Automatically split between training and testing" sẽ chia tỉ lệ giữa train-test là 20
80-HÌNH 11 AUTOMATICALLYSPLITBETWEENTRAININGANDTESTING
Label queue thực hiện khoanh vùng đối tượng như hướng dẫn
HÌNH 12 LABELQUEUE
2.2.3 Train Model
Tại mục Impulse Design
Để phù hợp với bộ nhớ nhỏ của Esp32
Trang 19Creat impulse: Điều chỉnh size ảnh xuống 48x48 lựa chọn các khối như ảnh và save
Trang 20HÌNH 15 GENERATEFEATURE
Kết quả thu được 2 màu tách biệt (không xen lẫn nhau) => kết quả tốt
Object detection: cài đặt các thông số train