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

Báo cáo bài tập lớn trí tuệ nhân tạo tên Đề tài phân loại hàng hoá bằng Đọc mã vạch

31 0 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 đề Phân loại hàng hoá bằng Đọc mã vạch
Tác giả Nguyễn Quốc Việt, Nguyễn Hoàng Tú, Lại Khánh Nam, Nguyễn Văn Hưng, Phạm Hồng Đức
Người hướng dẫn Đoàn Thị Thanh Hằng
Trường học Trường Đại học Công nghệ GTVT
Chuyên ngành Trí tuệ nhân tạo
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 2,07 MB

Nội dung

Phương pháp nghiên cứu Phương pháp tài liệu:  Tìm hiểu lập trình Python và cơ sở lý thuyết về thuật toán CNN  Tìm hiểu các phương pháp nhận dạng biển báo giao thông  Tìm hiểu và lựa c

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT

KHOA CÔNG NGHỆ THÔNG TIN

-o0o -BÁO CÁO BÀI TẬP LỚN TRÍ TUỆ NHÂN TẠO

TÊN ĐỀ TÀI:

PHÂN LOẠI HÀNG HOÁ BẰNG ĐỌC MÃ VẠCH

LỚP:

NGUYỄN HOÀNG TÚ LẠI KHÁNH NAM NGUYỄN VĂN HƯNG PHẠM HỒNG ĐỨC 72DCTT21

Trang 2

Hà Nội, 2023

Trang 3

MỤC LỤC

Trang 4

DANH MỤC HÌNH ẢNH

Trang 5

DANH MỤC TỪ VIẾT TẮT

Trang 6

MỞ ĐẦU

Ngày nay với sự tiến bộ của nền khoa học kỹ thuật thì mọi việc gầnnhư đều tiến hành trên máy tính một cách tự động hóa hoàn toàn Một trongnhững sự thay đổi lớn đó là cách thức chúng ta thu nhận và xử lý dữ liệu Cáccông cụ nhập liệu như bàn phím hay máy scan dần bị thay thế bằng các thiết bịtiện lợi hơn như màn hình cảm ứng, camera…

Hơn thế nữa, các máy tính để bàn không còn là công cụ duy nhất có thể

hỗ trợ cho con người Chúng ta đang ở thời đại công nghệ 4.0 với sự phát triểnmạnh mẽ của các thiết bị di động, giải trí cầm tay hay smartphone Với kíchthước ngày càng nhỏ gọn và hiệu suất làm việc thì không ngừng được cải tiến,các công cụ mini này hứa hẹn sẽ là một phần không thể thiếu trong xã hội hiệnđại Và do đó, phát triển các ứng dụng trên các thiết bị này cũng là một xu thếtất yếu

Công nghệ nhận dạng là một trong các công nghệ đã và đang được ápdụng cho các thiết bị di động hiện nay Nhận dạng có thể bao gồm nhận dạng

âm thanh, hình ảnh Các đối tượng nhận dạng có nhiều kiểu như tiếng nói, chữviết, khuôn mặt, mã vạch Chương trình nhận dạng hàng hóa bằng quét mãvạch được cài đặt trên những hệ thống có bộ xử lý lớn, camera chất lượng cao.Mục tiêu của báo cáo là giúp chúng ta phân loại hàng hóa sản phẩm và nhậndạng nó một cách nhanh nhất

Trang 7

NỘI DUNG

1 Đặt vấn đề

Hàng hóa là những sản phẩm lao động, thông qua trao đổi, mua bán có thể thỏamãn một số nhu cầu nhất định của con người Hàng hóa có thể đáp ứng nhu cầu cánhân hoặc nhu cầu sản xuất Việc phân loại hàng hóa là yếu tố quan trọng để xác địnhđặc điểm, thành phần, cấu tạo, quy cách đóng gói nhằm phân loại tên gọi, mã số củahàng hóa theo quy trình sản xuất và tổ chức sắp xếp 1 cách thông minh

Trên thế giới có rất nhiều tập đoàn đa Quốc gia, các doanh nghiệp có nhiều nhàmáy phân loại thông minh sử dụng những công nghệ, phần mềm và các thiết bị máymóc hiện đại để sắp xếp và cũng như phân loại hàng hóa theo từng danh mục khácnhau Điều này dễ dàng trong việc quản lý các hàng hóa lớn nhỏ 1 cách nhanh chóng.Tại Việt Nam có nhiều công ty thiết kế hệ thống dây chuyền phân loại hàng hóa chocác doanh nghiệp lớn, đặc biệt trong chuỗi cung ứng Logistics tăng hiệu suất côngviệc lên đến 80% Qua đó giúp nâng cao chất lượng, hiệu quả dịch vụ và chuỗi cungứng, giảm chi phí, nâng cao năng lực cạnh tranh

Những năm trở lại gần đây, trí thông minh nhân tạo AI, cụ thể hơn là MachineLearning và Deep Learning đang nổi lên là bằng chứng cho cuộc công nghệ cách mạngcông nghiệp 4.0 Vận dụng từ những gì chúng em đã được học Trí tuệ nhân tạo và Xử

lý ảnh cho đề tài này là phân loại hàng hóa bằng quét mã

Trang 8

Nguồn tham khảo: https://intech-group.vn/he-thong-phan- loai.htm

3 Phương pháp nghiên cứu

Phương pháp tài liệu:

 Tìm hiểu lập trình Python và cơ sở lý thuyết về thuật toán CNN

 Tìm hiểu các phương pháp nhận dạng biển báo giao thông

 Tìm hiểu và lựa chọn công cụ hỗ trợ

Phương pháp thực nghiệm:

Trang 9

 Xây dựng chương trình thực nghiệm

4 Phạm vi nghiên cứu

Dữ liệu xử lý là thu thập các mã Barcode, QRcode bằng cách tạo ra từ Python

5 Nội dung nghiên cứu

a Tìm hiểu các kĩ thuật xử lý ảnh trong nhận diện hình học

b Xây dựng hệ thống nhận diện các biển báo khác nhau

c Công cụ thực hiện: Pycharm

d Ngôn ngữ: Python

6 Cấu trúc báo cáo

Báo cáo “ Phân loại hàng hóa bằng quét mã vạch ” bao gồm tất cả 3 phần.

Chương I – Tổng quan: Giới thiệu về các kiến thức nền tảng cũng như công nghệ và

phần mềm được sử dụng trong đề tài bao gồm kiến thức về xử lý ảnh, thư viện xử lýảnh OpenCV

Chương II – Triển khai thuật toán và tạo giao diện Tkinter: Trình bày tổng quan về

mã vạch, phương pháp đề xuất và từ đó triển khai thuật toán xây dựng để giải quyếtbài toán nhận diện mã vạch

Chương III – Chạy chương trình: Từ phương pháp và thuật toán đã tìm hiểu, xây

dựng một chương trình để nhận dạng đưa ra đầu ra cho bài toán cần giải quyết

Phần Kết luận – Đánh giá kết quả và kết luận: Tổng kết quá trình thực hiện và rút ra

hướng phát triển sau này

Trang 10

Chương 1: Tổng quan

1 Một số khái niệm cơ bản

1.1 Trí tuệ nhân tạo

Trí tuệ nhân tạo AI là trí thông minh của máy do con ngườitạo ra Ngay từ khi chiếc máy tính điện tử đầu tiên ra đời, các nhàkhoa học máy tính đã hướng đến phát hiển hệ thống máy tính (gồm

cả phần cứng và phần mềm) sao cho nó có khả năng thông minh nhưloài người

Mặc dù cho đến nay, theo quan niệm của người viết, ước mơnày vẫn còn xa mới thành hiện thực, tuy vậy những thành tựu đạtđược cũng không hề nhỏ: chúng ta đã làm được các hệ thống (phầnmềm chơi cờ vua chạy trên siêu máy tinh GeneBlue) có thể thắngđược vua cờ thế giới; chúng ta đã làm được các phần mềm có thểchứng minh được các bài toán hình học; v.v Hay nói cách khác,trong một số lĩnh vực, máy tính có thể thực hiện tốt hơn hoặc tương

đương con người (tất nhiên không phải tất cả các lĩnh vực)

Trang 11

Hình 1 Hình ảnh AI

1.2 Xử lý hình ảnh

Xử lý ảnh là một trong những mảng quan trọng nhất trong kỹ thuật thị giác máytính, là tiền đề cho nhiều nghiên cứu thuộc lĩnh vực này Hai nhiệm vụ cơ bản của quátrình xử lý ảnh là nâng cao chất lượng thông tin hình ảnh và xử lý số liệu cung cấp chocác quá trình khác trong đó có việc ứng dụng thị giác vào điều khiển

Quá trình bắt đầu từ việc thu nhận ảnh nguồn (từ các thiết bị thu nhận ảnh dạng sốhoặc tương tự) gửi đến máy tính Dữ liệu ảnh được lưu trữ ở định dạng phù hợp vớiquá trình xử lý Người lập trình sẽ tác động các thuật toán tương ứng lên dữ liệu ảnhnhằm thay đổi cấu trúc ảnh phù hơp với các ứng dụng khác nhau

Quá trình xử lý nhận dạng ảnh được xem như là quá trình thao tác ảnh đầu vàonhằm cho ra kết quả mong muốn Kết quả đầu ra của một quá trình xử lý ảnh có thể làmột ảnh “đã được xử lý” hoặc một kết luận

Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là đặctrưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối tượng trongkhông gian và nó có thể xem như một hàm n biến P(c,c1,c2,…).Do đó,ảnh trong xử lýảnh có thể xem như ảnh n chiều

OpenCV (Open Computer Vision) là một thư viện mã nguồn mở hàng đầu cho xử

lý về thị giác máy tính, machine learning, xử lý ảnh OpenCV đươc viết bằng C/C++,

vì vậy có tốc độ tính toán rất nhanh, có thể sử dụng với các ứng dụng liên quan đếnthời gian thực Opencv có các interface cho C/C++, Python Java vì vậy hỗ trợ đượccho Window, Linux, MacOs lẫn Android, iOS OpenCV có cộng đồng hơn 47 nghìnngười dùng và số lượng download vượt quá 6 triệu lần

Chức năng có trong thư viện OpenCV:

Thư viện OpenCV bao gồm một số tính năng nổi bật như:

• Bộ công cụ hỗ trợ 2D và 3D

• Nhận diện khuôn mặt

Trang 12

• Nhận diện cử chỉ

• Nhận dạng chuyển động, đối tượng, hành vi,

• Tương tác giữa con người và máy tính

• Điều khiển Robot

• Hỗ trợ thực tế tăng cường

1.4 Tkinter

Là một gói trong Python có chứa module Tk hỗ trợ cho việc lập trình giao diện

(GUI) Tk ban đầu được viết bằng ngôn ngữ Tcl Sau đó Tkinter được viết ra để sử dụng Tk bằng trình thông dịch Tcl trên nền Python Ngoài Tkinter ra còn có một số

công cụ khác giúp tạo một ứng dụng GUI viết bằng Python như wxPython, PyQt, vàPyGTk

1.5.Zbar

Để giải mã Barcode và QR code ta sử dụng thư viện Zbar là 1 thư viện đa nền tảng,gọn nhẹ và cho kết quả nhận dạng tốt Thư viện được xây dựng trên mã nguồn C/C++nên dễ dàng chạy trên nền tảng IOS, Android và Linux Zbar có thể nhận dữ liệu trựctiếp từ Camera hoặc file ảnh, video sau đấy đưa vào bộ giải mã decoder để xử lý vànhận dạng

Cách cài thư viện Zbar trong python: pip install pyzbar

Trang 13

Nguồn:https://sites.google.com/site/embedded247/npcourse/impcourse/ barcode_qrcode

Hình 1.1 Mô hình hệ thống của Zbar

1.6.Numpy

Numpy là một thư viện lõi phục vụ cho khoa học máy tính của Python, hỗtrợ cho việc tính toán các mảng nhiều chiều, có kích thước lớn với các hàm đãđược tối ưu áp dụng lên các mảng nhiều chiều đó Numpy đặc biệt hữu ích khithực hiện các hàm liên quan tới Đại Số Tuyến Tính

1.7.Pyttsx3 là thư viện chuyển đổi văn bản thành giọng nói

1.8.Date time

Thư viện datetime trong python được chia làm 4 lớp chính:

- Date – Chỉ ngày, tháng, năm

- Time – Chỉ thời gian trong ngày (Giờ, phút, giây, micro giây)

- Datetime – Kết hợp thời gian và ngày (Ngày, tháng, năm, giờ, phút,giây, micro giây)

- Timedelta – Dùng để tính toán thời gian trong quá khứ và tương lai

Trang 14

(dạng bảng, đa chiều, không đồng nhất) và dữ liệu chuỗi thời gian, dùng hiển

thị cấu trúc dữ liệu trong file excel dưới dạng cột và dòng

1.12.Speech_recognition là thư viện nhận diện giọng nói trong Python

1.13.Pathlib là thư viện đường dẫn liên kết đến thư mục mà ta đã khai báo

trong chương trình

1.14.Workbook là thư viện đọc toàn bộ file Excel

2 Tổng quan về Barcode và QR code

2.1.Giới thiệu về Barcode

Barcode (hay còn được gọi là mã vạch) là phương pháp lưu trữ và truyền tảithông tin bằng một lọai ký hiệu gọi là ký mã vạch (Barcode symbology) Ký mãvạch hay gọi tắt cũng là mã vạch, là 1 ký hiệu tổ hợp các khoảng trắng và vạchthẳng để biểu diễn các mẫu tự, ký hiệu và các con số Sự thay đổi trong độ rộngcủa vạch và khoảng trắng biểu diễn thông tin số hay chữ số dưới dạng mà máy

2.2.Giới thiệu về QR code

QR code (Quick Respond Code) là một dạng mã haichiều, có thể lưu trữ nhiều loại kí tự khác nhau (số, ký tự,

đường dẫn liên kết, ), phổ biến nhất của mã QR code là

chuẩn ISO18004 QR code có nhiều ưu điểm vượt trội hơn so

Trang 15

với Barcode có khả năng lưu trữ được lượn dữ liệu lớn, khảnăng tự sửa lỗi.

Được sử dụng trong nhiều lĩnh vực:

- Nhận dạng và xác thực người dùng thẻ ID

- Theo dõi các mặt hàng (Quản lý hàng hóa)

- Chia sẻ thông tin thanh toán (Gpay, Paytm)

- Chia sẻ liên kết, hình ảnh, phương tiện

Hình 1.2.1 Hình ảnh mã QR code

Trang 16

CHƯƠNG 2: TRIỂN KHAI THUẬT TOÁN VÀ TẠO

GIAO DIỆN TKINTER

1 Thuật toán chương trình

1.1 Sơ đồ hoạt động chương trình

Hình 2.1 Lưu đồ thuật toán hệ thống

2 Tạo giao diện Tkinter

Code tạo giao diện

Nam = Tk () # code gọi tkinter

Nam.title( 'BTL Trí Tuệ Nhân Tạo' ) # đặt tên cho khung giao diện Nam.geometry( "800x610" ) # kích thước khung

Nam.resizable(width=False, height=False) # khóa khung

Trang 17

Nam.iconbitmap( "D:\AI\pythonProject\Ico-file-for-testing.ico" ) # icon cho giao diện thứ 1

TLN = speech_recognition Recognizer () # khở Ai động giọng nói

Hinh cv2 VideoCapture ( 0

Hinh set ( , 200 )

GN pyttsx3 init () # khở Ai tạo tiêJ ng nói cu Aa máy tính

voices GN getProperty ( "voices" )

GN setProperty ( "voice" , voices[ ].id) # setup giọng cho máy tính

TocDoDoc GN getProperty ( 'rate' ) # tốJ c độ đọc cu Aa máy tính chậm

GN setProperty ( 'rate' , TocDoDoc - 80 ) # gia Am tốJ c độ đọc cu Aa giộng nói xuốJ ng 80

N1 Label (Nam, text= "" , bg= "white" , padx= 210 , pady= 5 , relief= 'solid' ) # khung chữ thứ nhâJ t

N1 place( = 375 , y 180 ) # vị trí cu Aa khung chữ thứ nhâJ t

N2 Label (Nam, text= "" , bg= "white" , padx= 210 , pady= 8 , relief= 'solid' ) # khung chữ thứ hai

N2 place( = 375 , y 330 ) # vị trí cu Aa khung chữ thứ hai

N3 Label (Nam, text= "" , bg= "white" , padx= 210 , pady= 45 , relief= 'solid' ) # khung chữ thứ Ba

N3 place( = 375 , y 215 ) # vị trí cu Aa khung chữ thứ Ba

N4 Label (Nam, text= "" , bg= "white" , padx= 400 , pady= 106 ,

relief= 'solid' ) # khung chữ thứ hai

N4 place( = , y 370 ) # vị trí cu Aa khung chữ thứ hai

TieuDe Label (Nam, text= "Phân Loại Hàng Hóa Tự Động Bằng Quét Mã" , font= "bold" , 20 ), fg= 'red' ) # khung chữ tiêu đê]

TieuDe.place( = 130 , y 15 ) # vị trí khung chữ tiêu đê]

MaVach Label (Nam, text= "Mã Vạch:" , font=( "Arial" , 12 ), bg= "white" ) # khung chữ mã vạch

MaVach.place( = 380 , y 182 ) # vị trí cu Aa khung mã vạch

HienMV Label (Nam, text= "" , fg= "red" , font=( "Arial" , 12 ), bg= "white" ) # Khung hiện mã vạch

HienMV.place( = 500 , y 182 ) # vị trí cu Aa khung hiện mã vạch

HNT = Label (Nam, text= "" , font= "Arial" , 12 ), bg= "white" )

Trang 20

CHƯƠNG 3: CHẠY CHƯƠNG TRÌNH

1 Mô tả bài toán

Thông tin sản phẩm mã vạch phải được lưu trong file excel

Nếu thêm hay xóa mã vạch trên giao diện Tkinter thì dữ liệu

trong excel phải đồng bộ với thông tin trên giao diện

9 img = Hinh read ()[ 1

10 img = cv2 cvtColor (img, cv2 COLOR_BGR2RGB)

11 for barcode in decode (img): # nhận diện mã vạch

20 XN = 'Chua Xac Nhan'

21 MXN Label (Nam, text= " " , bg= "red" , padx= , pady= , relief= 'solid' )

Trang 24

3.2 Code Trợ lý ảo

def TL (): # khở Ai chạy trợ lý a Ao

robot = ""

while True:

Noi speech_recognition Recognizer ()

with speech_recognition Microphone () as mic:

elif "Hello" in Ban:

robot "Xin Chào Bạn"

elif "hốm nay" in Ban:

homnay = date today ()

robot homnay strftime ( %d %B %Y" )

elif "time" in Ban:

ThoiGian = datetime now ()

robot ThoiGian strftime ( "%H : %M : %S" )

elif "Google" in Ban:

elif "YouTube" in Ban:

robot "Đang mở A"

wb open ( "https://www.youtube.com/" )

elif "bạn là ai" in Ban:

robot "Tối tên là trợ lý a Ao cu Aa bạn"

Trang 25

Kết quả chạy :

3.3 File Excel lưu trữ thông tin code

3.3.4 Kết quả tổng quan chương trình

- Đầu tiên ta đưa mã QR hoặc Barcode lên cho camera quét:

+ Nếu chưa có mã vạch được lưu thì sẽ hiện “Chưa xác nhận” và laptop xuất giọng nói

“Chưa thêm sản phẩm”

Trang 26

- Sau khi nhấn “Thêm sản phẩm” thông tin được lưu vào File Excel: Nếu đã lưu mã vạch thì khi đưa qua camera để quét thì hiện”Đã xác nhận” và laptop xuất giọng nói

“Mã sản phẩm là + Thông tin mã”

Trang 27

- Nếu chưa có nhập thông tin sản phẩm mà bấm nút thêm sản phẩm thì sẽ hiện lên cảnh báo MessengerBox “Bạn chưa nhập đủ dữ liệu”

Trang 28

- Nếu ta nhấn nút xóa dòng 1 thì sẽ hiện lên Box cảnh báo, bởi vì đây là dòng hiển thị

ID, mã vạch, tên sản phẩm và khu vực

- Để xóa được ta phải nhập số dòng tương ứng nếu không nhập thì sẽ không có gì xảy ra

Trang 29

KẾT LUẬN Kết quả đạt được:

Trong quá trình tim hiểu nhóm đã gặp phải một số khó khăn nhất định Nhưng với sự đam mê và sự hướng dẫn

nhiệt tình của thầy giáo cộng thêm nỗ lực tìm tòi, đam mê khám phá cái mới đã giúp nhóm đạt được một số kết quả sau:

- Tổng quan về thư viện cần thiết cho đề tài

- Đã tạo được giao diện Tkinter

- Tiến hành chạy thực tế và đạt được kết quả

Hạn chế:

- Chưa truy xuất được dữ liệu từ mã vạch 1 cách trực tiếp

- Trợ lý giọng nói chưa truy cập vào trong file excel và

Trang 30

còn bị hạn chế chưa can thiệp vào hệ thống

Hướng phát triển:

- Phát triển phần mềm đọc mã vạch mà bất cứ ai cũng

có thể sử dụng được, chỉ cần tải về và đăng nhập

- Quét mã vạch hiển thị đầy đủ các thông tin sản phẩm lên phần mềm, sau đó tự động lưu vào thư mục do chínhphần mềm đó tạo ra không bị phụ thuộc vào Excel, người dùng có thể chỉnh sửa trực tiếp trong file đó

- Sử dụng trợ lý giọng nói có thể điểu khiển thêm hoặc xóa các mã vạch sản phẩm và đồng bộ với thư mục đểlưu thông tin

Ngày đăng: 22/10/2024, 12:38

w