1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo pbl5 – dự Án kỹ thuật máy tính

27 7 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nhận diện sản phẩm
Tác giả Thái Ngọc Quý, Hoàng Phúc Nguyên, Ngô Gia Bảo, Nguyễn Tấn Phát
Người hướng dẫn Huỳnh Hữu Hưng
Trường học Trường Đại Học Bách Khoa
Chuyên ngành Khoa Công Nghệ Thông Tin
Thể loại Dự án kỹ thuật máy tính
Năm xuất bản 2024
Thành phố Đà Nẵng
Định dạng
Số trang 27
Dung lượng 2,46 MB

Nội dung

TÓM TẮT ĐỒ ÁNĐề tài "Ứng dụng nhận diện sản phẩm" nhằm giải quyết vấn đề khó khăn trong việcquản lý và nhận diện sản phẩm trong các kho hàng, siêu thị và cửa hàng bán lẻ.. Cụ thể, sử dụn

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO PBL5 – DỰ ÁN KỸ THUẬT MÁY TÍNH

TÊN ĐỀ TÀI Nhận diện sản phẩm

Giảng viên hướng dẫn: Huỳnh Hữu Hưng

NHÓM SINH VIÊN THỰC HIỆN LỚP HỌC PHẦN

Trang 2

TÓM TẮT ĐỒ ÁN

Đề tài "Ứng dụng nhận diện sản phẩm" nhằm giải quyết vấn đề khó khăn trong việcquản lý và nhận diện sản phẩm trong các kho hàng, siêu thị và cửa hàng bán lẻ Với số lượngsản phẩm đa dạng và phong phú, việc nhận diện chính xác và nhanh chóng từng sản phẩm làmột thách thức lớn, dẫn đến sai sót trong quản lý kho, thiếu hụt hàng hóa hoặc thừa mứa hàngtồn kho Để giải quyết vấn đề này, đề tài áp dụng các kỹ thuật tiên tiến trong lĩnh vực học máy

và xử lý hình ảnh Cụ thể, sử dụng các thuật toán nhận diện hình ảnh và mạng nơ-ron tíchchập (Convolutional Neural Networks - CNN) để phát triển hệ thống có khả năng tự độngnhận diện sản phẩm thông qua hình ảnh Hệ thống này có thể được triển khai dưới dạng ứngdụng di động, giúp người dùng dễ dàng chụp ảnh sản phẩm để nhận diện và truy xuất thôngtin sản phẩm

Kết quả đạt được từ đề tài là một ứng dụng hỗ trợ mạnh mẽ cho các hoạt động quản lýkho và bán lẻ Ứng dụng giúp giảm thiểu sai sót trong quá trình nhập liệu và kiểm kê, tăngcường độ chính xác trong việc theo dõi tồn kho và bổ sung hàng hóa kịp thời Đồng thời, nócũng mang lại trải nghiệm mua sắm tiện lợi cho khách hàng khi có thể dễ dàng tra cứu thôngtin sản phẩm, giá cả và đánh giá từ người dùng khác Bên cạnh đó, hệ thống còn hỗ trợ phântích dữ liệu từ các lần nhận diện sản phẩm để cung cấp các báo cáo và dự báo hữu ích cho nhàquản lý, giúp tối ưu hóa quy trình kinh doanh và quản lý kho hàng Tổng quan, đề tài khôngchỉ giải quyết bài toán nhận diện sản phẩm mà còn góp phần nâng cao hiệu quả hoạt động vàchất lượng dịch vụ trong lĩnh vực bán lẻ

Trang 3

BẢNG PHÂN CÔNG NHIỆM VỤ

(Đã hoàn thành/Chưahoàn thành/Không triển

khai)Thái Ngọc Qúy -Huấn luyện mô hình

-Thu thập dữ liệu-Code module phần cứng-Viết báo cáo

-Đã hoàn thành

Hoàng Phúc Nguyên -Viết báo cáo

-Code Server-Huấn luyện mô hình

-Đã hoàn thành

Ngô Gia Bảo -Viết báo cáo

-Code Server-Code App Android

-Đã hoàn thành

Nguyễn Tấn Phát -Viết báo cáo

-Code App Android-Thu thập dữ liệu

-Đã hoàn thành

Trang 4

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU 7

1.1 Thực trạng sản phẩm 7

1.2 Các vấn đề cần giải quyết 7

1.3 Đề xuất giải pháp tổng quan 7

CHƯƠNG 2: GIẢI PHÁP 8

2.1 Giải pháp phần cứng 8

2.1.1 Module ESP32-CAM 9

2.1.2 Mạch chuyển USB to TTL ch340g 11

2.1.3 Sơ đồ kết nối 13

2.1.4 Bảng kê chi phí linh kiện 13

2.2 Giải pháp truyền thông 14

2.2.1.RESTFULL API 14

2.2.2.Giới thiệu về Flask 16

2.3 Giải pháp TTNT/KHDL 16

2.3.1 Mô hình học sâu RESNET152V2 16

2.3.2 Cấu trúc mạng ResNet152V2 17

2.3.4 Data Augmentation 21

2.4 Giải pháp phần mềm 21

2.4.1.Phát triển bài toán 21

2.4.2.Công nghệ sử dụng 21

CHƯƠNG 3: KẾT QUẢ 22

3.1.Kết quả nhận diện model 23

3.2.Server 23

3.3.Ứng dụng di động 26

CHƯƠNG 4: KẾT LUẬN 29

4.1 Đánh giá 29

4.2 Hướng phát triển 29

CHƯƠNG 5: DANH MỤC TÀI LIỆU THAM KHẢO 30

Trang 5

DANH MỤC HÌNH ẢNH

Hình 1 Bảng đề xuất giải pháp tổng quan……… 7

Hình 2 Sơ đồ tổng quan hệ thống……… 8

Hình 3 Sơ đồ hoạt động tổng quát……… 9

Hình 4 ESP32-CAM……….……… 9

Hình 5 USB to TTL ch340g……… 12

Hình 6 Sơ đồ kết nối……… 13

Hình 7 Bảng kê chi phí……… 13

Hình 8 Mô hình Restfull……… 14

Hình 9 Phương thức hoạt động Restfull……… 15

Hình 10.Cấu trúc mạng ResNet152V2……….17

Hình 11.Danh sách các layers……… 18

Hình 12 Sơ đồ sắp xếp các lớp trong Identity Block……… 19

Hình 13 Sơ đồ sắp xếp các lớp trong Convolution Block……… 19

Hình 14 Số lượng ảnh trong từng tệp……… 20

Hình 15 Số lượng ảnh trong từng class……… 20

Hình 16 Data augmentation……….………21

Hình 17.Biểu đồ usecase tổng quát………….……… 22

Hình 18.Kết quả nhận dạng……….……… 23

Hình 19 Chức năng đăng nhập……….………23

Hình 20 Chức năng đăng ký……….………24

Hình 21 Chức năng thanh toán……….………24

Hình 22 Chức năng lấy tất cả sản phẩm ….………24

Hình 23 Chức năng tạo mã QR

……… 25

Hình 24 Chức năng tạo sản phẩm……… ………

25 Hình 25 Chức năng xóa sản phẩm……….………

25 Hình 26.Giao diện sau khi nhận diện……….26

Hình 27.Giao diện tất cả sản phẩm trong kho……… 26

Trang 6

Hình 28.Giao diên mã QR thanh toán………

2 Mục tiêu và ý nghĩa của đồ án

Mục tiêu chính của đề tài này là nghiên cứu và phát triển các phương pháp và côngnghệ nhận diện sản phẩm hiệu quả Điều này bao gồm việc phân tích các phương pháp nhận

Trang 7

diện hiện có, từ các kỹ thuật truyền thống như mã vạch và RFID đến các công nghệ tiên tiếnnhư nhận dạng hình ảnh và học máy Đề tài cũng sẽ xem xét ứng dụng của các công nghệnày trong các ngành công nghiệp khác nhau và đánh giá hiệu quả của chúng trong việc cảithiện quy trình kinh doanh và trải nghiệm khách hàng

Trong khuôn khổ đồ án, dưới sự hướng dẫn của thầy Huỳnh Hữu Hưng, giảng viênkhoa Công nghệ thông tin, Trường Đại học Bách khoa – Đại học Đà Nẵng, em đã nghiêncứu, tìm hiểu và thực hiện đề tài ” Nhận diện sản phẩm”

Do thời gian và kiến thức của em còn hạn chế nên không tránh khỏi những sai sót nhấtđịnh trong quá trình thực hiện đồ án Xin cảm ơn sự hỗ trợ từ thầy Huỳnh Hữu Hưng và rấtmong nhận được sự góp ý từ quý thầy cô

và đảm bảo bảo mật thông tin người dùng Việc đầu tư vào nghiên cứu và phát triển sẽ giúpnâng cao hiệu quả và mở rộng phạm vi ứng dụng của công nghệ nhận diện sản phẩm trongtương lai

1.2 Các vấn đề cần giải quyết

Cần có các phần cứng để thu thập dữ liệu

Phát hiện nhiều sản phẩm khác nhau

Trang 8

Hệ thống cần phải có khả năng xử lý và nhận diện sản phẩm trong thời gian ngắn đểđáp ứng yêu cầu thời gian thực

Giao diện người dùng: Phải thiết kế giao diện dễ sử dụng và thân thiện, giúp ngườidùng dễ dàng thao tác và nhận diện sản phẩm

1.3 Đề xuất giải pháp tổng quan

…Huấn luyện trên Google Colab

Có chức năng nhận diện tự động

Hiển thị kết quả nhận diện

Viết bằng java android

Hình 1 Bảng đề xuất giải pháp tổng quan

CHƯƠNG 2: GIẢI PHÁP

2.1 Giải pháp phần cứng

2.1.1.Sơ đồ tổng quan hệ thống

Trang 9

Hình 2 Sơ đồ tổng quan hệ thống

2.1.2.Sơ đồ hoạt động tổng quan

Hình 3 Sơ đồ hoạt động tổng quan

Sơ đồ chân của ESP32-CAM như sau:

Trang 10

Nguyên tắc hoạt động:

Trang 11

2.1.4.Sơ đồ lắp mạch

Hình 6 Sơ đồ lắp mạch

2.1.5.Bảng kê chi phí linh kiện

Tên linh kiện Giá tiền

Trang 12

tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP.

Hình 8.Mô hình Restfull

Các thành phần trong RESTful API

API (Application Programming Interface) là một tập các quy tắc và cơ chế màtheo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thànhphần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu

dữ liệu phổ biến như JSON hay XML

REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữliệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạocho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lý một sốthông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE,…đến một URL để xử lý dữ liệu

RESTfull API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứngdụng web để quản lý các resource RESTful là một trong những kiểu thiết kế API được

sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếpvới nhau

Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTPmethod (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứngdụng web để quản các resource RESTful không quy định logic code ứng dụng và

Trang 13

không giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngôn ngữ hoặc framework nàocũng có thể sử dụng để thiết kế một RESTful API.

Phương thức RESTful hoạt động

Hình 9.phương thức hoạt động của Restfull

REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêutrên sẽ sử dụng những phương thức HTTP riêng

 GET (SELECT): Trả về một Resource hoặc một danh sách Resource

 POST (CREATE): Tạo mới một Resource

 PUT (UPDATE): Cập nhật thông tin cho Resource

 DELETE (DELETE): Xoá một Resource

Những phương thức hay hoạt động này thường được gọi là CRUD tương ứngvới Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa

2.2.2.Giới thiệu về Flask

Flask là loại framework web phổ biến được viết bằng trình lập ngôn ngữ Python.Công nghệ thường được sử dụng để xây dựng trang web từ những ứng dụng đơn giảnđến những hệ thống phức tạp hơn

Flask Framework sở hữu một số tính năng quan trọng mà nhà phát triển thường

sử dụng để xây dựng hiệu ứng web Các tính năng chính của Flask:

Trang 14

 Nhẹ và dễ sử dụng: Công nghệ có cấu trúc nhẹ nhàng và mã nguồn dễ đọc, giúp ngườiphát triển dễ dàng tiếp cận và tùy chỉnh theo nhu cầu cụ thể của họ.

 Định tuyến linh hoạt: Flask cung cấp cơ chế hoạt động định tuyến, cho phép ngườiphát triển xác định các mẫu URL và phân bổ chúng cho các hàm xử lý tương ứng.Điều này giúp quản lý và xử lý yêu cầu HTTP một cách hiệu quả

 Được mở rộng rộng rãi: Mặc dù mang đặc điểm rút gọn nhưng Flask vẫn có khả năng

mở rộng mạnh mẽ thông qua việc sử dụng các tiện ích và thư viện của cộng đồng.Người dùng có thể phân tích các tính năng như xác thực, đăng nhập, điều hướng, cơ sở

dữ liệu tương tác và nhiều tính năng khác

 Máy chủ phát triển tích hợp: Flask cung cấp máy chủ phát triển hợp đồng, giúp ngườiphát triển dễ dàng kiểm tra và phát triển ứng dụng mà không cần cấu hình bổ sung

 Gửi yêu cầu RESTful: Flask hỗ trợ xây dựng API và các ứng dụng RESTful theo cáchhoạt động và hiệu quả

2.3 Giải pháp TTNT/KHDL

2.3.1 Mô hình học sâu RESNET152V2

 ResNet sử dụng một kỹ thuật gọi là "residual learning" để giảm bớt vấn đề này Cụthể, mô hình ResNet sử dụng các "skip connections" hay "shortcut connections", chophép đầu vào của một lớp mạng có thể bỏ qua một hoặc nhiều lớp tiếp theo và đượccộng trực tiếp vào đầu ra của các lớp đó Điều này giúp duy trì thông tin qua các lớpmạng và hỗ trợ việc huấn luyện các mô hình rất sâu

 ResNet152V2 có tổng cộng 152 lớp, và là một trong những mô hình sâu nhất trong dòng ResNet So với ResNet152 phiên bản đầu tiên, ResNet152V2 có một số cải tiến quan trọng:

- Batch Normalization trước khi Activation: Trong phiên bản V2, batch

normalization được thực hiện trước khi kích hoạt (activation), thay vì sau như

ở phiên bản trước Điều này giúp cải thiện sự ổn định của quá trình huấn luyện

- Pre-activation Residual Units: ResNetV2 sử dụng pre-activation residual units,tức là batch normalization và activation được thực hiện trước khi thực hiện phép biến đổi chính (convolution) Điều này giúp gradient lan truyền dễ dàng hơn và cải thiện hiệu suất tổng thể

 Lợi ích của ResNet152V2 :

Trang 15

- Hiệu suất cao: ResNet152V2 đạt được hiệu suất cao trên nhiều bộ dữ liệu, đặc biệt là trong các nhiệm vụ nhận diện hình ảnh.

- Dễ dàng huấn luyện: Nhờ vào các cải tiến về cấu trúc, mô hình này dễ dàng được huấn luyện hơn so với các mô hình mạng sâu khác

- Ứng dụng rộng rãi: ResNet152V2 được ứng dụng rộng rãi trong nhiều lĩnh vựcnhư nhận diện hình ảnh, phân loại hình ảnh, phát hiện đối tượng, và nhiều ứng dụng khác trong trí tuệ nhân tạo

2.3.2 Cấu trúc mạng ResNet152V2

Hình 10.Cấu trúc mạng ResNet152V2

 Gồm các Residual Block :

- Identity Block: Identity block là block đơn giản với các lớp convolution và

batch normalization được áp dụng liên tiếp, sau đó kết hợp với đầu vào bằng phép cộng Điều này giúp duy trì thông tin qua nhiều lớp mà không làm tăng

độ phức tạp

- Convolutional Block: Convolutional block có thêm các lớp convolution để

thay đổi kích thước và số lượng kênh của đầu vào Các shortcut connection giúp mô hình học được các đặc trưng mà không bị mất mát gradient

 Sắp xếp theo các Stage :

Stage 2 đến Stage 5: Mỗi stage bao gồm một convolutional block đầu tiên để giảm kích thước và tăng số lượng kênh, tiếp theo là một số lượng lớn các identity block Số lượng các block tăng dần theo từng stage, từ 3 block ở stage 2 đến 36 block ở stage 4, giúp mô hình học được các đặc trưng ở nhiều cấp độ khác nhau

 Danh sách các layers đáng chú ý :

Trang 16

Hình 11.Danh sách các layers

Sơ đồ sắp xếp các lớp trong Identity Block

Hình 12 Sơ đồ sắp xếp các lớp trong Identity Block

Sơ đồ sắp xếp các lớp trong Convolutional Block

Trang 17

Hình 13 Sơ đồ sắp xếp các lớp trong Convolutional Block

2.3.3 Giải pháp phân bố dữ liệu

Dataset gồm có 6018 ảnh cho 6 class nhận diện sản phẩm , được chụp từ chínhESP32-cam để tăng tỉ lệ nhận diện khi chụp với ESP32-cam với độ phân giải thấphơn Chia tập Train và Valid theo tỉ lệ 8 : 2 ( Train : 3610 ảnh , Valid : 899 ảnh ) vàtập Test chứa 1509 ảnh

Trang 19

2 Hình 16 Data augmentation

2.4 Giải pháp phần mềm

2.4.1.Phát triển bài toán

Xây dựng app android để tương tác với hệ thống server và ESP32-Cam để nhận diện

và quản lý sản phẩm Hệ thống bao gồm 2 tác nhân chính đó là admin và khách hàng

Admin có quyền thêm sản phẩm vào giỏ hàng,thêm sửa xóa tìm kiếm sản phẩm trong kho,tạo mã QR cho khách hàng thành toán.Để sử dụng tất cả tính năng trên thì Admin phải đăng nhập App

Khách hàng có quyền nhận hóa đơn từ Gmail của khách hàng sau khi đã thanh toán thành công

2.4.2.Công nghệ sử dụng.

Server:Dùng ngôn ngữ lập trình python và Flask Framework

Client:Sử dụng java và bộ công cụ hỗ trợ Android Studio để tạo giao diện và fetch Api

từ Server gửi tới

Thư viện Retrofit : Dùng để thực hiện các HTTP Request

Trang 20

Hình 17.Biểu đồ usecase tổng quát

CHƯƠNG 3: KẾT QUẢ

Trang 21

3.1.K t qu nh n di n model ết quả nhận diện model ả nhận diện model ận diện model ện model

Trang 22

Tên chức năng Đăng ký

Response 400 như List sai định dạng , 200 nếu thành công

Hình 21 Chức năng thanh toán

Tên chức năng lấy tất cả sản phẩm có trong kho

Trang 25

Hình 30 Giao diện thêm sản phẩm Hình 31.Giao diện xóa sản phẩm

Trang 26

Hình 32 Gửi hóa đơn về Gmail cho khách

 Tốc độ nhận diện: Ứng dụng nhận diện sản phẩm trong thời gian ngắn, có hiệu suất ổnđịnh ngay cả khi có nhiều yêu cầu

 Server:Server hệ thống xử lý ổn định, gần như không xảy ra lỗi Đáp ứng yêu cầu đồán

4.2 Hướng phát triển

 Nâng cao độ chính xác và khả năng nhận diện: Áp dụng các mô hình học sâu (DeepLearning) để cải thiện độ chính xác của việc nhận diện sản phẩm, đặc biệt là với các sản phẩm

có nhiều biến thể hoặc điều kiện môi trường khác nhau

 Tăng cường tốc độ sử lý:Cải thiện các thuật toán nhận diện để giảm thời gian xử lý,tậndụng sức mạnh xử lý của đám mây để xử lý nhanh hơn và hiệu quả hơn

 Cải thiện giao diện người dùng: Cải thiện để người dùng dễ dàng thao tác và sử dụng

Trang 27

 Chức năng bổ sung:Thêm các chức năng như thông tin mở rộng về sản phẩm,lưu trữ

http://arduino.vn/tutorial/1570-gioi-thieu-module-esp32-va-huong-dan-cai-trinh-[4]https://www.researchgate.net/figure/ResNet152V2-Architecture_fig1_355839262

[5]https://www.kaggle.com/code/givkashi/resnet152v2

[6]https://docs.python.org/3/

[7]https://docs.oracle.com/en/java/

Ngày đăng: 11/11/2024, 20:29

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w