GIỚI THIỆU CÁCH THỨC THU THẬP DỮ LIỆU, CÁC KIỂU DỮ LIỆUẢNH CẦN THU THẬP, SỐ LƯỢNG CỦA TỪNG KIỂU DỮ LIỆU ẢNH VÀCÁCH TỔ CHỨC LƯU TRỮ DỮ LIỆU TRÊN MÁY TÍNHNhóm thu thập dữ liệu ảnh về 10 lo
Trang 1HỌC VIỆN NGÂN HÀNG KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ
BÀI TIỂU LUẬN KẾT THÚC HỌC PHẦN Học phần: Trí tuệ nhân tạo trong kinh doanh
ĐỀ TÀI: Ứng dụng Computer Vision nhận biết các loại bánh
trong cửa hàng bánh ngọt BreadTalk
Giảng viên hướng dẫn: Bùi Thị Hồng Nhung
Sinh viên thực hiện:
Hà Nội, ngày 20 tháng 6 năm 2022
Trang 2Họ và tên Mã sinh viên Công việc thực hiện
Chu Thị Ngọc 22A4050095 Phần III, phần V, hỗ trợ thu thập dữ liệu, xây
dựng nội dung, viết kịch bản
Vũ Thị Mai Huyền 22A4050329 Phần I, phần II, hỗ trợ thu thập dữ liệu, quá
trình làm nội dung, lên ý tưởng kịch bảnNguyễn Thu Trang 22A4050228
Phần IV, tổng hợp và chỉnh sửa hình thứcbài báo cáo, hỗ trợ thu thập dữ liệu và lên ýtưởng kịch bản
Trang 3MỤC LỤC
II GIỚI THIỆU CÁCH THỨC THU THẬP DỮ LIỆU, CÁC KIỂU DỮ LIỆUẢNH CẦN THU THẬP, SỐ LƯỢNG CỦA TỪNG KIỂU DỮ LIỆU ẢNH VÀ
III GIỚI THIỆU TỔNG QUAN THUẬT TOÁN CNN - CONVOLUTIONAL
Trang 4I GIỚI THIỆU VỀ ĐƠN VỊ SỬ DỤNG
1.1 Giới thiệu chung về thương hiệu BreadTalk
Người tạo cảm hứng cho nhãn hiệu cách mạng này là Người Sáng lập và Chủtịch Tập đoàn, Tiến sĩ George Quek (Singapore) Ông đã biến bánh mì từ một món ănkhiêm nhường thành một sản phẩm của phong cách sống hiện đại Kể từ năm 2000,Breadtalk đã giới thiệu với khách hàng một văn hóa bánh mì chưa từng có VớiBreadTalk, món ăn truyền thống hằng ngày đã được định nghĩa lại để biểu tượng hóagiá trị của cuộc sống hiện đại – sáng tạo, bất ngờ, vui tươi và thời thượng
BreadTalk có được một khẩu vị tinh tế, hình thức đẹp và hương vị thơm ngon.Đặc biệt là bánh FLOSSS (bánh mì chà bông) – loại bánh đã gây được sự chú ý củagiới truyền thông và đã đẩy nhãn hiệu BreadTalk vào vị trí nổi bật Ngày nay, tuy cónhiều loại bánh biến thể như Cheese Flosss, nhưng bánh Flosss vẫn tiếp tục chiếmđược cảm tình của khách hàng, và nó vẫn là một loại bánh tiêu biểu của BreadTalk
Kể từ khi ra đời cho đến nay, BreadTalk nhận được nhiều giải thưởng lớn trênthị trường quốc tế, tiêu biểu nhất là Giải thưởng Thiết kế cho Châu Á 2004 được tổchức bởi Trung tâm Thiết kế Hồng Kông về các Giải pháp Tổng thể cho Nhãn hiệunổi bật và thiết kế sản phẩm Giải thưởng này đã đưa BreadTalk lên hàng đầu, đánhdấu một bước ngoặt có ý nghĩa trong công cuộc phát triển của thương hiệu
Trong quá trình liên tục của sự sáng tạo và đổi mới, phát triển và tăng trưởngBreadTalk của hơn 12 năm qua là ảnh chụp qua ba thế hệ đặc biệt Và bây giờ,BreadTalk tự hào công bố khái niệm thế hệ thứ 4, với chiến dịch " Get Talking", mộtsáng kiến toàn cầu nhằm mục đích thay đổi cách thức khách hàng nhìn thấy, cảm nhận
và hương vị thương hiệu
Hiện nay, BreadTalk có hơn 4000 cửa hàng, trải rộng khắp các quốc gia trên thếgiới như: Philippine, Malaysia, Đài Bắc, Hồng Kông, Ma Cao, Ấn Độ, Thái Lan,Trung Quốc và Hội đồng Hợp tác Vùng Vịnh của Trung Đông, và Việt Nam.1.2 Phát biểu bài toán và lý do chọn bài toán
Trong 2 năm vừa qua, dưới sự bùng phát của Covid-19, thế giới nói chung cũngnhư Việt Nam nói riêng đã và đang chịu ảnh hưởng một cách nặng nề từ đại dịch này
Trang 5Tất cả các ngành khác nhau trong nền kinh tế, từ hàng không, du lịch, bất động sản,sản xuất kinh doanh, và tất cả nhiều lĩnh vực khác đều bị hạn chế cũng như đóngbăng theo lệnh giãn cách của Chính Phủ Nhìn một cách tổng quát, đại dịch đã làm têliệt, đình trệ cũng như thay đổi thế giới của chúng ta Và ngành kinh doanh bánh ngọtcũng không phải ngoại lệ Đại dịch đã gây ra sự thiếu hụt về mặt nhân sự, cùng vớiquy định giãn cách nghiêm ngặt và tâm lý e ngại đám đông của khách hàng là nhữngyếu tố góp phần tạo nên một nền kinh tế ảm đạm chưa từng có trong lịch sử Thấuhiểu được điều đó, nhóm chúng em muốn đề xuất phương pháp computer vision trongcông nghệ AI để thực hiện tự động thanh toán sản phẩm của khách hàng thông quakhả năng nhận diện các hình ảnh Với mục tiêu đảm bảo an toàn trong thời gian giãncách xã hội, đồng thời bắt kịp xu thế chuyển đổi số của thế giới, công nghệ ComputerVision này sẽ giúp tiệm bánh hoạt động theo xu hướng tự động hoá Việc sử dụngcông nghệ mới này sẽ giúp các nhà quản lý có thể tiết kiệm chi phí nhân sự cũng nhưđảm bảo quy định giãn cách khi dịch bệnh còn đang diễn biến phức tạp, đồng thời tạotâm lý an tâm dành cho khách hàng giúp gia tăng tỷ lệ khách hàng của tiệm.
Bàitoánứngdụng:Xây dựng mô hình nhận dạng hình ảnh của 10 loại bánh cótrong menu của quán để thực hiện thanh toán
II GIỚI THIỆU CÁCH THỨC THU THẬP DỮ LIỆU, CÁC KIỂU DỮ LIỆUẢNH CẦN THU THẬP, SỐ LƯỢNG CỦA TỪNG KIỂU DỮ LIỆU ẢNH VÀCÁCH TỔ CHỨC LƯU TRỮ DỮ LIỆU TRÊN MÁY TÍNH
Nhóm thu thập dữ liệu ảnh về 10 loại bánh có trong menu của cửa hàng bánhBreadTalk có trong các website, bao gồm: Bun, Cookies, Croissant, Dry Cake, Pizza,Sandwich, Sliced Cake, Tart, Toast, Whole Cake Dữ liệu ảnh sẽ được lưu trữ ở thưmục lớn Data (C:\Users\Asus\Downloads\Computer Vision BreadTalk\Data), bao gồm
2 thư mục nhỏ là Train và Validation
Trang 7Mỗi món bánh được thu thập bao gồm 100 dữ liệu ảnh Train và 25 dữ liệu ảnh
(C:\Users\Asus\Downloads\Computer Vision BreadTalk\Data\Train) 250 ảnhValidation được lưu trữ tại thư mục (C:\Users\Asus\Downloads\Computer VisionBreadTalk\Data\Validation)
Trang 11DữliệuảnhTrain
Trang 16DữliệuảnhValidationIII GIỚI THIỆU TỔNG QUAN THUẬT TOÁN CNN - CONVOLUTIONALNEURAL NETWORK
Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trongnhững mô hình Deep learning tiên tiến giúp xây dựng được những hệ thống thôngminh với độ chính xác cao như ngày nay Mô hình này thường được sử dụng nhiềutrong các bài toán nhận diện hình ảnh.Về kỹ thuật, mô hình CNN để training và kiểm
Trang 17tra, mỗi hình ảnh đầu vào sẽ chuyển nó qua 1 loạt các lớp tích chập với các bộ lọc(Kernels), tổng hợp lại các lớp được kết nối đầy đủ (Full Connected) và áp dụng hàmSoftmax để phân loại đối tượng có giá trị xác suất giữa 0 và 1.Hiện nay vẫn chưa cóđịnh nghĩa một cách chính xác nhất về thuật toán CNN nhưng có thể hiểu mạng CNNđược thiết kế với mục đích xử lý dữ liệu thông qua nhiều lớp mảng.Dưới đây là toàn
bộ luồng CNN để xử lý hình ảnh đầu vào và phân loại các đối tượng dựa trên giá trị (Hình 1) Có thể thấy mạng CNN là một tập hợp gồm có các lớp convolution chồng lênnhau Mạng nơron tích chập có thể lấy hình ảnh đầu vào, gán độ quan trọng (các trọng
số - weights và độ lệch - bias có thể học được) cho các đặc trưng khác nhau trong hìnhảnh và có thể phân biệt được từng đặc trưng này với nhau Ngoài ra, CNN có thể tạo
ra được hệ thống thông minh, phản ứng với độ chính xác tương đối cao
Convolutionallayer
Hình 1Trong ba lớp của Convolutional Neural Network, Convolutional Layer đượcxem là lớp có vai trò quan trọng nhất, vì Convolutional Layer sẽ đại diện CNN thựchiện mọi phép toán.Các convolutional layer có các parameter (kernel) đã được huấnluyện để tự điều chỉnh lấy ra những thông tin chính xác nhất Nhìn vào hình 1, có thểthấy ma trận bên trái là một hình ảnh được số hóa Ma trận có kích thước 5×5 và giátrị của mỗi pixel là 1 hoặc 0 là giao điểm của các hàng và cột Convolution hay tíchchập là nhân từng phần tử trong ma trận 3 Sliding Window (kernel) là một ma trận cókích thước nhỏ như trong ví dụ trên là 3×3 Convolution hay tích chập là nhân từngphần tử bên trong ma trận 3×3 với ma trận bên trái Kết quả thu được một ma trận gọi
là Convoled feature được sinh ra từ việc nhận ma trận F với ma trận ảnh 5×5 bên trái
Trang 18Mục đích của phép tính tích chập là trích xuất các đặc trưng cấp cao như cáccạnh từ hình ảnh đầu vào Lớp tích chập đầu tiên thường phục vụ để nắm bắt các đặctrưng cấp thấp như màu sắc (colors), hướng dốc (gradient orientation), Mô hình vớiviệc bổ sung các lớp tích chập được thêm vào để nắm bắt các đặc trưng cấp cao Từ
đó, cung cấp cho người sử dụng một mạng lưới nơron tích chập có sự hiểu biết toàndiện về hình ảnh trong tập dữ liệu, tương tự như cách chúng ta - con người hiểu vềhình ảnh
HàmkíchhoạtRelulayer
Hàm này còn được gọi là activation function, có tác dụng mô phỏng các nơ ron
có tỷ lệ truyền xung qua axon.Trong đó, hàm kích hoạt sẽ bao gồm các hàm cơ bảnnhư: Sigmoid, Tanh, Relu, Leaky Relu, Maxout Hiện nay, hàm Relu đang được sửdụng khá phổ biến và thông dụng Những ưu điểm của Relu có thể kể đến như việc
hỗ trợ tính toán nhanh nên rất được ưa chuộng sử dụng trong việc huấn luyện cácmạng Neuron
Lớpgộp(Pooling)
Lớp gộp có hai loại: gộp cực đại (Max pooling) và gộp trung bình (Averagepooling) Gộp cực đại trả về giá trị lớn nhất từ phần hình ảnh được bộ lọc bao phủ.Mặt khác, gộp trung bình trả về giá trị trung bình của tất cả các giá trị từ phần hìnhảnh được bộ lọc che phủ Lớp gộp tối đa cũng hoạt động như một công cụ khử nhiễuthông qua việc loại bỏ nguồn nhiễu và thực hiện khử nhiễu song song với việc giảmkích thước Trong khi đó, gộp trung bình chỉ thực hiện giảm kích thước như một cơchế giảm nhiễu Vì thế, có thể nói rằng gộp cực đại hoạt động tốt hơn nhiều so với gộptrung bình Lớp pooling sẽ giảm bớt số lượng tham số khi hình ảnh quá lớn và khônggian pooling còn được gọi là lấy mẫu con hoặc lấy mẫu xuống làm giảm kích thướccủa nhưng vẫn giữ lại thông tin quan trọng
Lớpkếtnốiđầyđủ(Fullyconnectedlayer)
Sử dụng mạng nơron được kết nối đầy đủ là cách làm phổ biến nhất để học các
tổ hợp phi tuyến tính từ các đặc trưng được trích xuất từ kết quả ma trận tích chập.Một mạng nơron kết nối đầy đủ có thể học được các đặc trưng trong không gian phituyến này Hình ảnh đầu vào sẽ được chuyển đổi sang một dạng thích hợp cho mạngnơron đa lớp Trước khi đến với lớp này, ảnh sẽ chuyển từ dạng ma trận về mảng 1
Trang 19chiều qua lớp Flatten, hình ảnh đầu vào này được chuyển thành một vectơ cột Vectơđầu ra sau khi được làm phẳng sẽ được đưa vào một mạng nơron suy luận tiến(feedforward) và phương pháp truyền ngược (backpropagation) được áp dụng cho quátrình huấn luyện Thông qua một loạt các lần lặp lại, mô hình có thể phân biệt giữa cácđặc trưng cốt lõi và các đặc trưng không thiết yếu trong hình ảnh và phân loại chúngbằng kỹ thuật phân loại Softmax (softmax classification).
Sơ đồ thuật toán có thể được biểu diễn như sau:
Trang 20Kích đúp chuột để mở thư mục Computer Vision - BreadTalk vừa tạo, nhấn nútchọn “Tải thư mục lên" Ấn chọn data trong thư mục Computer Vision BreadTalk vànhấn “Tải lên" Toàn bộ dữ liệu ảnh trong tệp Data đã tạo ở bước 1 đã được tải lênDrive để tiến hành những bước tiếp theo
Trang 23Tại “Drive của tôi" nhấn chọn “Ứng dụng khác", chọn Google Colaboratory
Trang 24Chỉnh sửa tên file là BreadTalk.ipynb
Chọn File, chọn Move, chọn Computer Vision - BreadTalk, nhấn Select folder FileBreadTalk.ipynb đã được chuyển tới thư mục Computer Vision - BreadTalk
Trang 26ChuyểnfileBreadTalk.ipynbtớithưmụcComputerVision-BreadTalk.
Trang 27• Khai báo thư viện sử dụng
• Kết nối với Google Drive để đọc và lưu dữ liệu
Khi ấn chạy code thì hệ thống sẽ đưa ra nhắc nhở để chúng ta cho phép file colab này
có thể truy cập vào dữ liệu Google Drive của mình Nhấn chọn “Connect to GoogleDrive"
Khi hiện ra thông báo như vậy nhấn “Cho phép"
Trang 28• Khai báo đường dẫn đến thư mục chứa ảnh để Huấn luyện và Kiểm định mô hình:
Trang 29Đường dẫn chứa thư mục chứa dữ liệu ảnh Train và Validation sẽ được đưa vào nhưsau:
Nhấp chọn biểu tượng thư mục được khoanh tròn
Chọn “Drive", chọn “MyDrive" Tại thư mục Computer Vision - BreadTalk, kích chọnthư mục Data
Trang 30Để khai báo đường dẫn chứa dữ liệu ảnh Train, tại thư mục nhỏ Train thuộc thư mụcData, kích chuột vào dấu ba chấm bên cạnh thư mục Train, chọn “copy path", sau đódán vào lệnh code “train_image_files_path".
Trang 31Thực hiện tương tự với dữ liệu ảnh Validation, ta thu được kết quả như sau:
Trang 32Một file ảnh JPG sẽ được lưu dưới dạng một ma trận dữ liệu số có giá trị trong khoảng[0, 255], do đó chúng ta sẽ cần ma trận có kích thước 256 x 256 chiều để biểu diễnmột bức ảnh 256 x 256 pixel, mà mỗi phần tử trong ma trận sẽ có giá trị từ 0 đến 255.
Số kênh tương ứng với mỗi bức ảnh sẽ phụ thuộc vào việc đó là ảnh màu hay ảnhxám Thông thường ảnh màu sẽ có 3 kênh, tương ứng với 3 ma trận còn ảnh xám thìchỉ cần 1 kênh hay 1 ma trận mà thôi Tham số rescale = 1/255 có tác dụng chuẩn hóa
dữ liệu ảnh về các giá trị nằm trong khoảng [0,1]
4.2 Kịch bản 1: Mô hình CNN kích thước chuẩn hoá ảnh từ 50x50; 2 lớp mạngCNN, tham số optimizer RMSprop, số vòng lặp EPOCHS là 100
class_mode = ‘categorical' dùng để phân loại ảnh đa lớp (4 lớp)
Kết quả thu được ta có 997 ảnh Train thuộc 10 lớp và 249 ảnh Validation cùng thuộc
số lớp như ảnh Train Do có 3 ảnh Train có kích thước nhỏ hơn 50 x 50 nên khi đọc
dữ liệu cho ra kết quả 997 ảnh Train và 249 ảnh Validation
Trang 334.2.3.Thiếtlậpthamsốhuấnluyệnmôhình
Compile là hàm được dùng để chọn các tham số huấn luyện mô hình Tham sốoptimizer được sử dụng là RMSProp
Trang 344.2.4.Huấnluyệnmôhình
Trang 35Số vòng lặp chạy mô hình được chọn là 100 Kết quả cho thấy tham số acc biểu thị độchính xác với dữ liệu ảnh Train thường đạt giá trị trong khoảng [60%-70%] Tham sốval_acc thể hiện độ chính xác với dữ liệu ảnh Validation thường sẽ nằm trong khoảng[70%-80%].
Trang 36Kết quả thu được đó là máy đã nhận biết được đây là loại bánh PIZZA.
Trang 37Ta vừa thực hiện nhận biết loại bánh với mô hình CNN bao gồm kích thước chuẩn hoáảnh 50x50; 2 lớp mạng CNN với lớp CNN1 gồm 32 bộ lọc kích thước 3x3, lớp CNN2gồm 64 bộ lọc kích thước 3x3; tham số optimizer RMSprop; số vòng lặp chạy môhình EPOCHS là 100 Kết quả thu được mô hình có độ chính xác nằm trong khoảng70%- 80% Độ chính xác này là tương đối cao, tuy nhiên mục tiêu là xây dựng môhình có độ chính xác cao nhất để đưa ra lựa chọn vào sử dụng trong thực tế nên nhómtiến hành xây dựng các kịch bản nâng cấp mô hình tiếp theo
4.3 Kịch bản 2: Mô hình CNN nâng cấp kích thước chuẩn hoá ảnh từ 50x50 lên100x100; những yếu tố còn lại giữ nguyên (2 lớp mạng CNN, tham số optimizerRMSprop, số vòng lặp EPOCHS là 100)
4.3.1.ĐọcdữliệuTrainvàValidation
Trang 384.3.3.Thiếtlậpthamsốđểhuấnluyệnmôhình
Trang 39Độ chính xác mô hình nằm trong khoảng [45%-50%]
Trang 41[45%- 50%] Kịch bản 2 có độ chính xác trung bình Vì vậy nhóm tiếp tục thực hiệnkịch bản 3.
4.4 Kịch bản 3: Bổ sung thêm lớp mạng CNN, thay đổi số lượng và kích thước
bộ lọc, các yếu tố khác không đổi (kích thước chuẩn hoá ảnh 50x50, tham sốoptimizer RMSprop, số vòng lặp chạy mô hình 100) Mô hình được nâng cấpgồm 3 lớp mạng CNN, trong đó số lượng bộ lọc ở mỗi lớp là 64, kích thước bộ lọc5x5
4.4.1.ĐọcdữliệuTrainvàValidation
4.4.2.Xâydựngmôhình
Trang 424.4.4.Huấnluyệnmôhình
Trang 43Độ chính xác của mô hình năm trong khoảng [15%-20%].4.4.5.Sửdụngmôhình
Trang 44Mô hình đã nhận biết chính xác đây là loại bánh TOAST.
4.4.6.Kếtluậnkịchbản3
Kịch bản 3 sau khi nâng cấp mô hình lên 3 lớp CNN, trong đó mỗi lớp gồm 64 bộ lọc,mỗi bộ lọc có kích thước 5x5, các yếu tố khác không đổi, ta thu được mô hình có độchính xác nằm trong khoảng [15%-20%] Độ chính xác này là chưa cao nên nhóm tiếptục triển khai kịch bản 4
Trang 454.5 Kịch bản 4: Thay đổi tham số optimizer RMSprop thành Adam, các yếu tốkhác không đổi (chuẩn hóa kích thước ảnh 50x50, 2 lớp mạng CNN, số vòng lặpchạy mô hình EPOCHS 100).
4.5.1.ĐọcdữliệuTrainvàValidation
4.5.2.Xâydựngmôhình
4.5.3.Thiếtlậpcácthamsốđểhuấnluyệnmôhình
Trang 46Độ chính xác của mô hình nằm trong khoảng [90%-95%]
Trang 47Mô hình đã nhận biết chính xác đây là loại bánh CROISSANT
4.5.6.Kếtluậnkịchbản4
Kịch bản 4 sau khi thay đổi tham số optimizer với các yếu tố khác không đổi cho ra
mô hình với độ chính xác nằm trong khoảng [90% - 95%] Độ chính xác này đã lớn