GIỚI THIỆU TỔNG QUAN ĐỀ TÀI
Đặt vấn đề
Sau ba cuộc cách mạng công nghiệp, phát minh về công nghệ đã thay đổi cách làm việc cũng như tăng hiệu suất công việc.Với cuộc cách mạng lần đầu đã xảy ra vào những năm 1784 bằng việc phát minh và sử dụng động cơ hơi nước nhằm thay sức người đã đưa con người đến một kỷ nguyên mới về sự hiệu quả của các thiết bị, tạo nên kỷ nguyên phát triển chưa từng có trước đây Trong cách mạng thứ hai và thứ ba, năng lượng điện đã xuất hiện và được áp dụng, tạo cơ sở cho các dây chuyền sản xuất với quy mô đa dạng Đồng thời, công nghệ thông tin và tự động hóa cũng đã phát triển Trong thời kỳ này internet, cuộc đua tự động hóa đã giúp cho thế giới phẳng hơn, khi giao tiếp giữa người với người được dễ dàng hơn, dù ở đâu trên thế giới cũng như các công việc mới được sinh ra mà trước đó không hề có Bên cạnh đó, việc tự động hóa máy móc nhờ các phát minh trong cuộc cách mạng thứ 3 đã tăng hiệu quả lao động thông qua việc hoạt động chính xác và nhanh chóng hơn với sự giúp sức của máy móc Hiện tại, chúng ta đang có những bước đầu để đến với cách mạng 4.0, hứa hẹn là sẽ mở ra một kỷ nguyên cho nhân loại khi trí tuệ nhân tạo ra đời cùng với vạn vật kết nối Cuộc cách mạng này hứa hẹn là sẽ thay đổi rất nhiều đến xã hội từ những vấn đề chuyên sâu như khoa học cơ bản, tin sinh học, robot, công nghệ nano cho đến công việc thường ngày như việc quản lý, phân loại…
Các công nghệ ngày càng len lỏi đến khắp nơi trong cuộc sống hơn Dễ thấy, tại các hệ thống siêu thị trong trung tâm thương mại, đại lý phân phối hoặc các địa điểm bán lẻ đều sử dụng phương pháp quét mã vạch để thanh toán hóa đơn đang là một giải pháp phổ biến, mang lại lợi ích tối ưu về thời gian và công sức
Tuy nhiên tại các địa điểm buôn bán như căn tin trường học hoặc nhà máy sản xuất, món ăn lại không có mã vạch nhưng lại cần tạo hóa đơn thanh toán cho số lượng lớn học sinh hoặc công nhân trong thời gian giới hạn Vấn đề cần giải quyết là tạo ra giải pháp tự động và nhanh chóng để tạo hóa đơn thanh toán cho các món ăn
Hiện tại, hầu hết trường học đều có căn tin phục vụ học sinh, tuy nhiên các căn tin này đều khá đơn sơ và hoạt động theo phương pháp cơ bản là người tính tiền sẽ nhìn trực tiếp các món mà học sinh đặt hàng để tính toán ra số tiền mà học sinh đã mua Đặt điểm rõ rệt nhất của cách hoạt động này là việc hầu hết các trường chỉ có 1
- 2 căn tin và số lượng nhân viên, người bán trong căn tin cũng rất hạn chế Trong khi đó, số lượng học sinh lại là vô cùng nhiều từ vài trăm đến cả ngàn học sinh nên việc có thể đáp ứng vấn đề phục vụ cho học sinh nhanh chóng với khoảng thời gian như
20 phút ra chơi hoặc 5 - 10 phút chuyển tiết thì phải cần nguồn nhân lực nhiều, gây lãng phí Do đó, vấn đề đặt ra là cần cải thiện chất lượng phục vụ học sinh ở căn tin trường học trong giờ giải lao để tiết kiệm nguồn nhân lực, dựa vào những công nghệ tiên tiến của cách mạng 4.0 đã mang lại
Cụ thể, ở đề tài này sẽ tập trung tìm hiểu để hình thành giải pháp khắc phục vấn đề nêu trên bằng cách sử dụng thuật toán nhận dạng hình ảnh nhằm xác định được các món cơ bản, thường được bán trong các căn tin trường học Các món sẽ được phân loại một cách cơ bản dựa trên danh sách có sẵn nhằm tạo thuận tiện cho việc tính tiền và đơn giản hoá số lượng món Kết quả có được từ mô hình sẽ là căn cứ để tạo hóa đơn thanh toán nhanh cho các món ăn tại căn tin của trường học Dựa trên cơ sở này, giải pháp được phát triển để giải quyết vấn đề tự động tính tiền và thanh toán cho những món ăn, thức uống mà không cần sử dụng mã vạch Dữ liệu hình ảnh các món ăn, món hàng dùng để thử nghiệm và đánh giá giải pháp được lấy tại căn tin của một trường học cụ thể.
Mục tiêu nghiên cứu của đề tài
- Mục tiêu tổng quát: đề tài nghiên cứu và phát triển giải pháp ứng dụng mô hình nhận dạng hình ảnh thông qua camera để tạo hóa đơn thanh toán nhanh và tự động các đồ ăn, thức uống cho người dùng tại căn tin trường học
- Mục tiêu cụ thể của đề tài bao gồm:
+ Xây dựng mô hình phát hiện các món ăn trên ảnh tĩnh, dữ liệu tự tạo và thu thập, dựa trên mạng thần kinh tích chập và mô hình nhận dạng đối tượng bằng YOLO
+ Áp dụng mô hình để nhận dạng món ăn, tạo hóa đơn thanh toán nhanh tại căn tin trường học
- Nghiên cứu tổng quan về xử lý hình ảnh
- Các phương pháp nhận dạng hình ảnh và đối tượng:
+ Kỹ thuật mô tả đặc trưng (Histogram of Oriented Gradients – HOG) + Kỹ thuật mô hình nơ-ron tích chập theo vùng (R-CNN)
+ Kỹ thuật mô hình nơ-ron tích chập theo vùng cải tiến (Faster R-CNN)
- Phương pháp sử dụng mô hình YOLO v5 với những nội dung:
Tổng quan về YOLO, kiến trúc mạng, nguyên lý hoạt động, kết quả đầu ra của YOLO, dự đoán bounding box, thuật toán sử dụng trong YOLOv5, cấu trúc của mô hình YOLOv5 trong việc nhận diện vật thể (Object Detection)
Trong luận văn này, đề xuất sử dụng máy học, thị giác máy tính trong đó giải pháp chủ yếu được sử dụng là mô hình YOLO để xác định được vật thể trong ảnh tĩnh, từ đó phân loại các vật thể xuất hiện trong ảnh Từ những kết quả có được, tôi sẽ so sánh, đưa ra nhận xét để chọn mô hình thích hợp cho vấn đề sử dụng mô hình trong thực tế cũng như là có một cơ sở cụ thể cho việc đề xuất sử dụng giải pháp thích hợp để nhận diện các đối tượng tương tự
- Những vấn đề liên quan đến phương pháp nhận dạng đối tượng, phát hiện và phân biệt các đối tượng cần quan tâm trong ảnh tĩnh cụ thể như:
+ Phát hiện các món ăn, món hàng được bán ở căn tin trường học
+ Nhận diện các món ăn, món hàng được bán tại căn tin trường học
+ Tự động tạo hóa đơn thanh toán nhanh
- Phạm vi nghiên cứu: Dữ liệu được xử lý là ảnh tĩnh được lấy trực tiếp từ Camera do người dùng chụp từ ứng dụng Camera được đặt tại căn tin trường học
- Trong giới hạn nghiên cứu của đề tài, tập trung xử lý hình ảnh được trích xuất từ các hình chụp khay đồ ăn, được mua bởi các học sinh trong căn tin trường học Trong đó, các vật thể được đề cập cụ thể trong ảnh gồm:
+ Dạng Tô (Như tô phở, bún)
+ Dạng Chai nước (pepsi, coca, …)
Các vật thể này được đơn giản hoá về các nhóm đối tượng có cùng giá trị hoặc độ nhận diện từ đó nhằm tăng độ chính xác cũng như là đơn giản hoá bài toán
- Tìm hiểu về kỹ thuật xử lý ảnh, các đặc trưng để phát hiện đối tượng
- Tìm hiểu các kĩ thuật phát hiện đối tượng trên ảnh tĩnh mà có liên quan đến vấn đề phát hiện và nhận dạng các món ăn
- Tìm hiểu về cách tạo và xuất hoá đơn thanh toán
- Xây dựng bộ dữ liệu huấn luyện về các món ăn, thức uống có tại căn tin trường học
- Xây dựng chương trình áp dụng mô hình nhận dạng hình ảnh để phát hiện các đối tượng là các món ăn thức uống thông qua một camera
- Ứng dụng chương trình vào thực tế để tạo hoá đơn thanh toán và đánh giá kết quả
Trong bài toán này, tôi sẽ sử dụng mô hình YOLO (You only look once) - một mô hình nhận diện vật thể theo thời gian Mô hình này được xây dựng dựa trên kỹ thuật mô hình Convolution Neural Network (CNN) một kỹ thuật kinh điển và hiệu quả trong việc phân loại và phát hiện vật thể Bên cạnh đó, tôi cũng sẽ sử dụng các phương pháp tái huấn luyện mô hình với một số điều chỉnh và huấn luyện mô hình từ đầu để xem xét kết quả của mô hình nào là tốt hơn
Về mặt khoa học: Đề tài đóng góp trong việc cung cấp thêm về vấn đề sử dụng mô hình cũng như việc áp dụng lý thuyết vào việc sử dụng các mô hình phát hiện vật thể hiện tại cho các đối tượng chưa từng được thực hiện nhận diện trước đây
Về mặt thực tiễn: Các kết quả và mô hình mà đề tài thực hiện và mang lại được sẽ giúp cho các trường học cũng như là các doanh nghiệp, hộ kinh doanh có thể đưa vào nhằm tính tiền tự động mà khôn dùng mã QRCode và giảm thời gian chờ của học sinh, công nhân từ đó có thể tiết kiệm chi phí phục vụ Đối với các căn tin trường học thì có thể gia tăng được tính chính xác cũng như là tiết kiệm chi phí khi phục vụ học sinh.
Cấu trúc luận văn
Chương 1: Giới thiệu tổng quan đề tài
Nội dung chủ yếu của chương là tìm hiểu về các vấn đề hình thành nên đề tài Các ứng dụng tạo hóa đơn thanh toán tiền tự động cho những mặt hàng bán lẻ hiện nay Từ đó đề xuất phương pháp vận dụng thuật toán nhận dạng hình ảnh để tạo hóa đơn thanh toán cho các món ăn, món hàng được bán cho học sinh ở căn tin trường học Kèm theo nội dung của đề tài như: ý nghĩa, phương pháp nghiên cứu và đối tượng nghiên cứu
Chương 2: Cơ sở lý thuyết
Tìm hiểu và trình bày sơ lược về các kiến thức cơ sở, được đề tài sử dụng bao gồm: những kỹ thuật áp dụng để nhận dạng đối tượng, phát hiện đối tượng, mạng thần kinh tích chập, các kiến thức xử lý ảnh, các thuật toán nhận dạng hình ảnh liên quan Tiếp đến là mô hình CNN, một mô hình phổ biến và là mô hình nền tảng mà mô hình YOLO sử dụng Cuối cùng là tôi sẽ giới thiệu mô hình YOLO, cấu trúc, cách hoạt động và điểm khác biệt là gì khi so với mô hình CNN Đề xuất mô hình để giải quyết vấn đề được tạo ra, đánh giá mô hình, cũng như cách huấn luyện dữ liệu mới (dữ liệu tự tạo) trong YOLO
Chương 3: Thiết kế và xây dựng mô hình ứng dụng
Trong chương này chủ yếu thực hiện thiết kế mô hình tạo hoá đơn thanh toán tự động, mô tả hệ thống, mô tả dữ liệu thu thập, khai báo danh sách các đối tượng được nhận dạng trong mô hình, mỗi công đoạn đều có các dữ liệu cụ thể, các thuật toán và mô hình cũng được đề xuất và thực thi trên các ví dụ cụ thể
Mô tả quy trình thực hiện phát hiện vật thể, thiết kế hệ thống nhận diện bằng YOLO Lên kịch bản sử dụng tập dữ liệu mẫu tự tạo, các thông số của mô hình, huấn luyện dữ liệu tự tạo, quá trình kiểm tra và phân tích ưu nhược điểm để có kết quả tốt nhất khi sử dụng mô hình ứng dụng
Chương 4: Thực nghiệm và đánh giá ứng dụng
Trong chương này mô tả quá trình thực nghiệm, kết quả và đánh giá kết quả thực nghiệm của ứng dụng đã xây dựng Ứng dụng xây dựng trên một ngôn ngữ lập trình và trên một bộ dữ liệu tự đề xuất
Xây dựng ứng dụng cho việc phát hiện vật thể một cách trực tiếp và theo thời gian thực thông qua camera được kết nối với máy tính và sử dụng mô hình tốt nhất sau khi huấn luyện
Xây dựng kịch bản chạy thử nghiệm, quá trình chạy thử nghiệm, và phân tích kết quả
Tóm lược luận văn: những kết quả đạt được của đề tài so với mục tiêu đặt ra, những hạn chế, cải tiến mở rộng của giải pháp và hướng nghiên cứu và phát triển tiếp theo cho đề tài hiện tại.
Tổng quan về đề tài
Hiện nay, tại nhiều hệ thống siêu thị, trung tâm thương mại, đại lý phân phối và điểm bán lẻ, việc sử dụng quét mã vạch để thanh toán sản phẩm đang trở thành lựa chọn phổ biến, tiết kiệm công sức và thời gian
Mặt khác, máy bán hàng tự động cũng đang dần rất phổ biến ở nhiều nơi, đặc biệt là các thành phố lớn hoặc ở các khu vực đông người của nhiều thành phố lớn nhỏ đều cũng đã xuất hiện máy bán hàng tự động Sự phổ biến của máy bán hàng tự động giúp cho mọi người tiện lợi hơn khi mua các thức uống hoặc thức ăn một cách gọn nhẹ thông qua chức năng chọn và thanh toán Mỗi mặt hàng đều sẽ được đặt tại từng ô và sẽ được chọn dựa theo số Sau đó, người dùng sẽ phải bỏ số tiền tương ứng vào nhằm thanh toán sản phẩm mình đã chọn
Hình 1 1 Mô hình máy bán tự động
Nguồn ảnh: https://cafebiz.vn/
Hình 1 2 Mô hình máy bán tự động
Tuy nhiên tại các địa điểm buôn bán như căn tin trường học hoặc nhà máy sản xuất, món ăn lại không có mã vạch nhưng lại cần tạo hóa đơn thanh toán cho số lượng lớn học sinh hoặc công nhân trong thời gian ngắn Ngoài ra, nếu sử dụng các máy bán hàng tự động trong trường hợp này thì máy bán hàng tự động cũng chỉ sẽ đáp ứng được cho học sinh hay công nhân đối với các sản phẩm như chai nước, sữa hay một số loại bánh nhất định Điều này có một số vấn đề sau: đầu tiên là các máy bán hàng tự động hiện tại còn gặp khá nhiều các vấn đề liên quan đến việc vận hành như máy hư, bị lỗi khi bán, tiếp đến là khi nhận tiền mặt thì các máy khá khó chịu với các tờ tiền không được thẳng, nhăn nheo, đặc biệt là không thối lại tiền thừa và cuối cùng là máy bán hàng tự động không đáp ứng được về mặt các thức ăn như bánh mì, phở, bún, các loại thức ăn chính nhằm cung cấp đủ dinh dưỡng cho học sinh hoặc người lao động có thể hoạt động một cách hiệu quả trong thời gian tiếp theo
Vấn đề đặt ra là cung cấp giải pháp để tạo hóa đơn thanh toán các món ăn một cách nhanh chóng và tự động Đề tài này nghiên cứu và xây dựng giải pháp giải quyết vấn đề nêu trên bằng cách áp dụng mô hình thuật toán nhận dạng hình ảnh món ăn để tạo hóa đơn thanh toán nhanh cho các các món ăn tại căn tin của trường học Dựa trên cơ sở đó, giải pháp được xây dựng giải quyết được vấn đề thanh toán tính tiền tự động cho các món hàng mà không cần gán mã vạch Dữ liệu hình ảnh các món ăn, món hàng dùng để thử nghiệm và đánh giá giải pháp được lấy tại căn tin của một trường học cụ thể Ý tưởng của đề tài là học sinh sau khi chọn món và các thức ăn đã được chế biến xong hoặc các mặt hàng có sẵn như chai nước, sữa, đã được chọn và đưa lên khay, học sinh sẽ đặt khay vào khu vực được quy định để thanh toán Tại khu vực này, căn tin sẽ lắp một camera có chức năng chụp ảnh và đưa ra thông tin trong khay có những sản phẩm nào, từ đó phân loại và dựa vào kết quả đó sẽ tính toán được giá trị của khay và xuất ra hóa đơn Học sinh sẽ cầm hoá đơn này để thanh toán tại quầy
Từ đó, sẽ giảm được khối lượng công việc của người bán cũng như là tăng độ chính xác và tốc độ phục vụ
Hình 1 3 Minh Họa khay đồ ăn học sinh Phạm vi của bài nghiên cứu này hiện chỉ đang xét một số các mặt hàng cố định bao gồm:
- Dạng Tô (Như tô phở, bún)
- Dạng Chai nước (pepsi, coca, …)
Và các mặt hàng này sẽ được định giá là như nhau ở mỗi loại sản phẩm Điều này cũng thể xem như là một mặt hạn chế vì trong một số trường hợp thì các sản phẩm như phở hay bún hoặc các loại nước sẽ có giá khác nhau tùy thuộc vào đặc trưng Tuy nhiên ở đây chỉ đang sử dụng các hình dáng chung để có thể phân loại nên việc gộp các sản phẩm này thành chung một giá sẽ là hữu hiệu nhất.
CƠ SỞ LÝ THUYẾT
Computer Vision - Thị giác máy tính
Thị giác máy tính là một mảng nhỏ trong công nghệ máy học với chức năng chính là trích xuất thông tin từ ảnh hoặc video để có thể hiểu được hoặc trình bày dưới dạng ngôn ngữ hoặc thông tin cần thiết cho người dùng Lĩnh vực thị giác máy tính bao gồm một số các mảng như phân loại ảnh, xác định vật thể, phát hiện vật thể và các mảng nhỏ khác tùy theo nhu cầu nhận diện hoặc trích xuất thông tin từ ảnh mà sẽ có những kỹ thuật khác nhau khi thực hiện Trong đó, phân loại hình ảnh chỉ đơn giản là gán cho hình ảnh một lớp dựa trên các đối tượng bên trong hình ảnh Xác định vật thể là xác định đối tượng trong ảnh bằng cách vẽ một hộp chứa (bounding box) xung quanh đối tượng và xuất ra hình ảnh phân loại của đối tượng Phát hiện đối tượng là một kỹ thuật kết hợp của cả hai trong đó nhiều đối tượng có thể được phát hiện trong một hình ảnh được cung cấp bởi một đầu ra chứa một số hộp chứa và nhiều lớp tích chập
Như đã được đề cập thì bằng việc sử dụng mạng nơ-ron học sâu và các thuật toán được xây dựng trên cơ sở mạng thần kinh tích chập, các hệ thống thị giác máy tính sử dụng hình ảnh 2D đã có được những thành tựu to lớn trong một số các tác vụ như phân loại hình ảnh (classification), phát hiện đối tượng (detection) và phân đoạn ngữ nghĩa (semantic segmentation) kể từ năm 2012 Trong nhiều trường hợp, các mô hình có thể đạt được hiệu suất tương tự hoặc thậm chí tốt hơn về phân loại/phát hiện hình ảnh 2D và phân đoạn ngữ nghĩa so với con người thực hiện.
Kỹ thuật mô tả đặc trưng (Histogram of Oriented Gradients – HOG)
Trước khi các mô hình học sâu (deep learning) ra đời và phát triển mạnh mẽ thì các thuật toán xử lý ảnh cũng đã xuất hiện và được ứng dụng trong một số các trường hợp Trong đó, có một thuật toán cổ điển nhưng được sử dụng khá rộng rãi và hiệu quả là kỹ thuật mô tả đặc trưng Kỹ thuật HOG lần đầu tiên được Dalal và Triggs giới thiệu trong bài báo CVPR 2005 Ở thời điểm ban đầu, HOG được thiết kế với mục tiêu là phát hiện người (human detection) nhưng sau đó với hiệu suất và ưu điểm của mô hình thực hiện được nên đã được phát triển mở rộng thêm cho các bài toán phát hiện nhiều đối tượng khác Cách hoạt động của phương pháp HOG một cách dễ hình dung, mô hình sẽ đếm số lượng hiện diện của các hướng đạo hàm (gradient orientation) tại các vùng cục bộ địa phương trong hình
Hình 2 1 Thuật toán Histogram of Oriented Gradients – HOG
Thuật toán HOG (Histogram of Oriented Gradients) là một kỹ thuật được sử dụng để mô tả hình dạng và đặc trưng của đối tượng trong ảnh HOG hoạt động bằng cách chia nhỏ ảnh thành các vùng nhỏ gọi là cell, sau đó tính histogram của các gradient hướng trong mỗi cell Histogram là một biểu đồ hiển thị sự phân bố của các giá trị trong một tập dữ liệu Trong trường hợp này, các giá trị là hướng của các gradient trong mỗi cell Các histogram của các cell được ghép lại để tạo thành một vector đặc trưng mô tả hình dạng và đặc trưng của đối tượng trong ảnh Để nâng cao hiệu quả trong việc nhận dạng, việc chuẩn hóa các histogram cục bộ có thể được thực hiện bằng cách chuẩn hóa độ tương phản Quá trình này thực hiện việc tính toán ngưỡng cường độ trong các khu vực lớn hơn của ảnh, được gọi là các khối, và các ngưỡng này được sử dụng để chuẩn hóa tất cả các ô trong từng khối Kết quả của quá trình chuẩn hóa là một vector đặc trưng có sự bất biến cao, giúp tăng khả năng đáp ứng đối với các biến đổi về điều kiện ánh sáng
Có 5 giai đoạn cơ bản để tạo ra một vector HOG cho hình ảnh, bao gồm:
Weight ed vote into spatial
Contrast normaliz e over overlappi ng spatial blocks
Thu thập các HOG’s over detecti on windo w
Mạng noron tích chập
Đầu tiên, trước khi đến với mạng thần kinh tích chập thì ta sẽ nhắc lại sơ về mạng lưới thần kinh trong máy học trước Mạng lưới thần kinh trong máy học đúng như tên gọi thì mô hình được xây dựng từ hình ảnh và cách vận hành của cấu trúc cơ quan thần kinh người Ở đó, mỗi điểm được đặc trưng như là các nơron thần kinh Các điểm nơron này chỉ hoạt động khi mà đạt một điều kiện nhất định và trong mạng nơron nhân tạo thì điều kiện để mạng hoạt động là dựa trên thuật toán hàm hoạt động (activation function) Có một số các hàm cơ bản thường được dùng như sigmoid, RELU,
Hình 2 2 Các lớp của mô hình mạng Noron tích chập Như hình vẽ minh hoạ, ta có thể thấy được là hàm thường được chia ra làm 3 thành phần chính với “lớp đầu vào”, các “lớp ẩn” và “lớp kết quả” (Input layer; Hidden layer; Output layer) Ở lớp đầu vào thì chính là dữ liệu đầu vào của chúng ta, sau đó dữ liệu sẽ đi qua các lớp ẩn với mục đích chính là sẽ tìm ra các tham số nhằm tạo ra một hàm có thể dự đoán được và có tỷ lệ chính xác khi so với lớp kết quả là cao nhất
Mô hình mạng thần kinh nhân tạo được xem như là mô hình cơ bản nhất của máy học và được sử dụng rộng rãi trong nhiều trường hợp và dùng trong nhiều bài toán khác nhau như bài toán dự đoán bao gồm cả hồi quy tuyến tính và hồi quy phi tuyến tính, bài toán phân loại Mô hình này còn có thể sử dụng trong cả việc phân loại ảnh, điển hình là bài toán phân loại số từ chữ viết tay được chạy trên mô hình mạng lưới thần kinh nhân tạo trên trang web
(http://neuralnetworksanddeeplearning.com/about.html)
Tuy nhiên, đặc điểm của mô hình này là độ chính xác của mô hình là tăng theo số lượng lớp ẩn và các nút trên lớp, đồng nghĩa với việc là đối với các dữ liệu ảnh thì số lượng đầu vào tương ứng với số điểm ảnh, do đó, ảnh có chất lượng càng cao và để tăng độ chính xác lên tốt nhất thì mô hình sẽ càng to ra Một ví dụ điển hình có thể thấy là trong bộ dữ liệu CIFAR-10 với kích thước ảnh là 32x32x3 (rộng 32, cao 32,
3 kênh màu) Từ dữ liệu trên ta có thể tính toán được rằng một nơ-ron được kết nối đầy đủ sẽ có trọng số 32x32x3 = 3072 trong lớp ẩn đầu tiên của Mạng nơ-ron thông thường Số lượng này thông thường thì các mô hình và các hệ máy cơ bản vẫn có thể xử lý một cách tốt nhưng khi gia tăng kích thước ảnh khi tăng số lượng điểm ảnh thì việc xử lý ngày càng khó và tốn nhiều tài nguyên hơn Ví dụ: một hình ảnh có kích thước phù hợp hơn, ví dụ: 200x200x3, sẽ dẫn đến các nơ-ron có trọng số 200x200x3
= 120.000 Hơn nữa, đối với các mô hình học sâu thì số lớp của mô hình ngày càng tăng và do đó các nút sẽ tăng lên rất nhiều
Do đó, đến một mức độ thì mô hình là quá lớn để huấn luyện và cũng quá nhiều tham số dẫn đến không hiệu quả Dựa trên đặc điểm này thì mô hình mạng tích chập được tạo ra để khắc phục được tình trạng tạo quá nhiều lớp ẩn cũng như là quá nhiều các nút trên từng lớp
Mạng thần kinh tích chập (CNN) là một mô hình học máy được thiết kế đặc biệt để xử lý ảnh CNN có cấu trúc hiệu quả hơn các mô hình học máy khác, vì nó có thể học các đặc điểm của ảnh một cách trực tiếp từ dữ liệu Điều này làm cho CNN dễ dàng đào tạo hơn và có thể đạt được độ chính xác cao hơn Mô hình hoạt động bằng cách quét qua ảnh với một bộ lọc Bộ lọc là một ma trận số có thể xác định các đặc điểm cụ thể trong ảnh Khi bộ lọc quét qua ảnh, nó sẽ tính toán tích chập của giá trị điểm ảnh với các trọng số của bộ lọc Tích chập là một phép toán toán học cho phép tìm hiểu các xu hướng trong dữ liệu Mô hình có thể học các đặc điểm khác nhau của ảnh, chẳng hạn như cạnh, góc và cấu trúc Các đặc điểm này sau đó có thể được sử dụng để phân loại ảnh hoặc xác định các đối tượng trong ảnh Đặc biệt, không giống như mạng nơ-ron thông thường, kiến trúc của mô hình CNN có cấu trúc tương tự như cách tổ chức của Visual Cortex - khu vực xử lý hình ảnh của bộ não con người Các nơ-ron trong Visual Cortex chỉ đáp lại các kích thích trong một phạm vi hẹp của trường thị giác, gọi là trường tiếp nhận Những trường đó chồng lên nhau tạo thành một tập hợp có nhiệm vụ bao phủ toàn bộ khu vực trực quan
Hình 2 3 Mô hình Convolution Neural Network Trong mô hình CNN, các lớp của mạng thần kinh tính chập có các nơ-ron được sắp xếp theo 3 chiều: chiều rộng, chiều cao, chiều sâu Trong đó chúng ta cũng cần phải hiểu rằng từ độ sâu ở đây đề cập đến chiều thứ ba đồng nghĩa với các nút kích hoạt, không phải độ sâu của mạng nơ-ron Ví dụ: hình ảnh đầu vào trong bộ ảnh nhận diện số viết tay từ 0 đến 9 của bộ dữ liệu CIFAR- 10 có kích thước 32x32x3 (với chiều rộng, chiều cao, chiều sâu hay còn có thể xem là màu sắc của ảnh tương ứng) Các nơ-ron trong một lớp kết nối với một vùng nhỏ của lớp trước, thay vì kết nối với toàn bộ các điểm ảnh của bức ảnh Hơn nữa, lớp đầu ra cuối cùng cho CIFAR-10 sẽ có kích thước 1x1x10, bởi vì ở phần cuối của kiến trúc của mạng CNN, mạng sẽ giảm toàn bộ hình ảnh thành một véc-tơ duy nhất gồm các điểm số của lớp, được sắp xếp dọc theo chiều sâu
Cấu trúc mạng thần kinh tích chập được xây dựng với cấu trúc có các thành phần như sau: lớp tích chập (Convolution layers), lớp tổng hợp (Pooling layers), lớp kết nối đầy đủ (fully connected)
Lớp tích chập (Convolution layers): những lớp tích chập được tạo thành từ các bộ lọc (còn gọi là hạt nhân) để áp dụng đối với một hình ảnh đầu vào Lớp tích chập tạo ra các ma trận đặc trưng biểu diễn của hình ảnh đầu khi đi qua các bộ lọc được áp dụng Các lớp tích chập thường được xếp chồng lên nhau để mô hình có thể tìm hiểu các đặc tính phức tạp hơn từ hình ảnh
Lớp tổng hợp (Pooling layers): Các lớp tổng hợp là một loại lớp tích chập được sử dụng trong học sâu Các lớp gộp làm giảm kích thước không gian của đầu vào, giúp xử lý dễ dàng hơn và giảm số lượng bộ nhớ Pooling cũng giúp giảm số lượng tham số và giúp đào tạo nhanh hơn Có hai loại chính: tổng hợp tối đa và tổng hợp trung bình Trong đó, tổng hợp trung bình lấy giá trị trung bình, trong khi tổng hợp tối đa lấy giá trị tối đa từ mỗi bản đồ tính năng Các lớp tổng hợp được sắp xếp sau lớp tích chập để giảm kích thước của đầu vào trước khi nó được đưa vào một lớp được kết nối đầy đủ
Lớp kết nối đầy đủ: là loại lớp cơ bản trong mạng thần kinh tích chập (CNN) Từng nơ-ron trong một lớp sẽ kết nối với toàn bộ các nơ-ron khác trong lớp trước đó Các lớp kết nối đầy đủ thường được sử dụng ở phần cuối của CNN- khi mục tiêu là lấy các tính năng mà các lớp trước đó đã học và sử dụng để thực hiện dự đoán Ví dụ: để phân loại hình ảnh của động vật, lớp kết nối đầy đủ sẽ lấy các đặc điểm đã học được bởi các lớp trước đó và sử dụng chúng để phân loại hình ảnh có chứa chó, mèo, chim, v.v
Qua những gì đề cập ở trên thì mô hình CNN hoạt động trên cơ chế trích xuất đặc trưng của dữ liệu trên từng vùng dữ liệu, điều này vô hình chung phù hợp với cách hoạt động của não người khi bộ não cũng sẽ nhận diện một đồ vật, vật thể dựa trên từng đặt điểm của vật đó Lấy ví dụ là để nhận diện được khuôn mặt thì não người sẽ nhận diện được các góc cạnh của khuôn mặt, rồi đến các cơ quan như mắt mũi miệng, từ đó sẽ cho ra kết quả hình ảnh mà mắt nhìn được là mặt người Mô hình
CNN có cơ chế tương tự như vậy Hình vẽ bên dưới sẽ cho thấy được khi đi qua từng lớp ẩn thì đặc trưng dữ liệu được học ra sao
Hình 2 4 Mô phỏng hình ảnh khi đi qua từng lớp (layer)
Kỹ thuật mô hình nơ-ron tích chập theo vùng (R-CNN)
R-CNN (Region-based Convolutional Neural Networks) là kiến trúc xây dựng cho bài toán phát hiện đối tượng cổ điển sử dụng học sâu để phát hiện đối tượng Nó được đề xuất bởi Girshick et al vào năm 2014 R-CNN hoạt động theo cách thức hai giai đoạn, liên quan đến đề xuất khu vực và phân loại đối tượng Dưới đây là kiến trúc R-CNN: Đề xuất khu vực (Region Proposal):
- Hình ảnh đầu vào (Input Image): Kiến trúc bắt đầu với một hình ảnh đầu vào
- Tìm kiếm có chọn lọc (Selective Search): thuật toán Tìm kiếm có chọn lọc được sử dụng trong mô hình nhằm tạo một tập hợp các đề xuất khu vực, là các các vùng hộp chứa đối tượng tiềm năng trong hình ảnh Tìm kiếm chọn lọc xác định các vùng dựa trên việc giống về màu sắc, kết cấu và các đặc điểm hình ảnh cấp thấp khác
- Nhóm khu vực (Region Pooling): Mỗi đề xuất khu vực được cắt từ hình ảnh đầu vào và thay đổi kích thước thành kích thước cố định để tạo thành một khu vực quan tâm (ROI) Lớp tổng hợp ROI biến đổi ROI có kích thước thay đổi thành bản đồ đối tượng có kích thước cố định, căn chỉnh các đối tượng được trích xuất với ranh giới ROI
Trích xuất tính năng tích chập (Convolutional Feature Extraction):
- CNN được đào tạo lại (Pretrained CNN): Các đề xuất khu vực được chuyển qua mạng thần kinh tích chập (CNN), thường được đào tạo trước cho nhiệm vụ phân loại hình ảnh quy mô lớn (ví dụ: ImageNet) CNN trích xuất các đặc trưng cấp cao từ mỗi ROI, cung cấp thông tin đại diện phong phú về khu vực được bản địa hóa (localized region)
Phân loại đối tượng (Object Classification):
- Lớp kết nối đầy đủ (Fully Connected Layers): Mô hình CNN sẽ trích xuất ra các đặc trưng từ lớp kết nối đầy đủ để thực hiện phân loại đối tượng Lớp này ánh xạ các tính năng thành xác suất của lớp bằng cách sử dụng các hàm kích hoạt softmax hoặc sigmoid, dự đoán sự hiện diện và danh mục của các đối tượng trong mỗi đề xuất khu vực
Hồi quy hộp chứa (Bounding Box Regression):
- Hồi quy hộp chứa: Ngoài phân loại đối tượng, R-CNN thực hiện hồi quy hộp chứa để tinh chỉnh tọa độ của hộp chứa đối tượng Các lớp được kết nối đầy đủ xuất ra các tọa độ hộp chứa bao gồm vị trí và kích thước được tinh chỉnh để phù hợp hơn với thực tế
Ngăn chặn không tối đa (NMS - Non-Maximum Suppression):
- Xử lý hậu kỳ (Post-processing): Các đề xuất khu vực được xếp hạng dựa trên điểm số đối tượng thu được từ nhánh phân loại đối tượng Loại bỏ không tối đa (NMS) được áp dụng để loại bỏ các hộp chứa không phù hợp và chồng chéo, chọn các phát hiện đáng tin cậy nhất cho từng phiên bản đối tượng R-CNN đã cho thấy sự vượt trội đáng kể so với các phương pháp trước đó bằng cách tận dụng sức mạnh của học sâu cho bài toán phát hiện vật thể Tuy nhiên, nó có tốc độ suy luận chậm do nhu cầu chuyển tiếp riêng biệt cho từng đề xuất khu vực Hạn chế này đã dẫn đến những cải tiến tiếp theo, chẳng hạn như Faster R-CNN và Fast R-CNN, nhằm cải thiện hiệu quả và đào tạo từ đầu đến cuối của quy trình phát hiện đối tượng Điều đáng chú ý là R-CNN đóng vai trò là nghiên cứu tiên phong trong việc sử dụng học sâu vào phát hiện vật thể và mở đường cho những tiến bộ tiếp theo trong lĩnh vực này
Hình 2 5 Kiến trúc mô hình R-CNN
Kỹ thuật mô hình nơ-ron tích chập theo vùng cải tiến (Faster R-CNN)
Faster R-CNN (Region-based Convolutional Neural Networks) là kiến trúc phát hiện vật thể được giới thiệu bởi Ren et al vào năm 2015 Nó đã cải thiện khuôn khổ R-CNN bằng cách tích hợp quy trình đề xuất khu vực vào chính mạng, làm cho quy trình phát hiện đối tượng tổng thể nhanh hơn và hiệu quả hơn Faster R-CNN đã cho thấy tiến bộ đáng kể về tốc độ và độ chính xác bằng việc sử dụng hai thành phần chính là Mạng đề xuất khu vực (RPN - Region Proposal Network) và bộ phát hiện Faster R-CNN Dưới đây là tổng quan về kiến trúc Faster R-CNN:
- Hình ảnh đầu vào (Input image): Kiến trúc bắt đầu với một hình ảnh đầu vào, hình ảnh này thường được thay đổi kích thước thành một kích thước cố định
- Các lớp tích chập (Convolutional Layers): Mạng thần kinh tích chập (CNN) đóng vai trò là mạng đường trục Phần này có chức năng trích xuất các đặc trưng phân cấp từ hình ảnh đầu vào, ghi lại cả chi tiết cấp thấp và thông tin ngữ nghĩa cấp cao
Mạng đề xuất khu vực (RPN):
- Các lớp tích chập được chia sẻ (Shared Convolutional Layers): RPN chia sẻ các lớp tích chập của mạng xương sống, cho phép nó tận dụng các tính năng được trích xuất
- Hộp neo (Anchor Boxes): RPN đề xuất các hộp chứa tiềm năng được gọi là hộp neo, là các hộp được xác định trước có kích thước và được định vị trên bản đồ đặc trưng (feature map) với các tỷ lệ khung hình khác nhau được tạo bởi các lớp tích chập được chia sẻ
- Đầu phân loại và hồi quy (Classification and Regression Heads): RPN áp dụng các lớp tích chập riêng biệt để dự đoán xác suất của một hộp neo chứa một đối tượng và để tinh chỉnh tọa độ của các hộp chứa được dự đoán, căn chỉnh chúng với giá trị thật (ground truth)
Khu vực quan tâm (RoI - Region of Interest) Tổng hợp:
- Tạo đề xuất (Proposal Generation): RPN tạo các đề xuất khu vực bằng cách xếp hạng các hộp neo dựa trên điểm số đối tượng của chúng Các đề xuất được xếp hạng cao nhất, thường là vài trăm đề xuất, được chọn để xử lý thêm
- Tổng hợp RoI (RoI Pooling): Mỗi đề xuất khu vực được gộp chung từ bản đồ đặc trưng do mạng đường trục tạo bằng cách sử dụng tổng hợp RoI Quá trình này chuyển đổi các đề xuất khu vực có kích thước thay đổi thành các bản đồ đối tượng có kích thước cố định, căn chỉnh các vùng đối tượng được trích xuất với khu vực quan tâm tương ứng
Bộ phát hiện Faster R-CNN (Fast R-CNN Detector):
- Các lớp chập được chia sẻ: Tương tự như RPN, bộ phát hiện Fast R-CNN chia sẻ các lớp chập của mạng đường trục với RPN, cho phép sử dụng lại đặc trưng
- RoI Align hoặc RoI Pooling: Các đề xuất khu vực gộp từ RPN được xử lý thông qua RoI Align hoặc RoI pooling, trích xuất các vectơ đặc trưng có kích thước cố định từ mỗi đề xuất khu vực
- Lớp kết nối đầy đủ (Fully Connected Layers): Các vectơ đặc trưng được đưa vào một tập hợp các lớp được kết nối đầy đủ, thực hiện phân loại đối tượng và hồi quy hộp chứa
- Đầu phân loại và hồi quy (Classification and Regression Heads): Xác suất lớp đầu ra của các lớp được kết nối đầy đủ cho từng vùng được đề xuất, cho biết sự hiện diện và danh mục của các đối tượng Họ cũng dự đoán các tọa độ hộp chứa được tinh chỉnh, điều chỉnh vị trí và kích thước của các đề xuất
Hình 2 6 Mô hình Fast R-CNN Trong quá trình đào tạo, cả RPN và trình dò Fast R-CNN đều được tối ưu hóa thông qua sử dụng lan truyền ngược và chức năng mất mát đa tác vụ xem xét phân loại và hồi quy hộp chứa
R-CNN nhanh hơn đã cải thiện đáng kể tốc độ phát hiện đối tượng bằng cách thống nhất quy trình đề xuất khu vực trong kiến trúc mạng, loại bỏ nhu cầu sử dụng các thuật toán tìm kiếm chọn lọc riêng biệt được sử dụng trong R-CNN Sự tích hợp này dẫn đến khả năng phát hiện vật thể chính xác và nhanh hơn, khiến nó trở thành một trong những kiến trúc có ảnh hưởng trong lĩnh vực này.
Mô hình YOLO v5
Khi nói đến mô hình YOLOv5 thì phải nhắc đến mô hình nền tảng là mô hình YOLO (viết tắt của từ “You only look once”), đây là mô hình phát hiện vật thể trong ảnh thông qua hai bước với bước đầu tiên là mô hình sẽ nhận diện vật thể và sau đó phân loại vật thể đã được nhận diện Dưới mạng CNN, chức năng của việc phát hiện, nhận dạng, phân loại các vật thể trong hình chụp trở nên khả thi Mô hình YOLO đặc trưng bởi việc kết hợp convolutional layers - các lớp tích chập và connected layers - lớp kết nối đầy đủ Trong đó, lớp tích chập giúp trích xuất các đặc trưng quan trọng từ ảnh, trong khi các lớp kết nối đầy đủ (connected layers) thực hiện chức năng dự đoán xác suất cùng với tọa độ của đối tượng Mô hình YOLO lần đầu tiên được giới thiệu vào năm 2016 bởi Joseph Redmon và đồng nghiệp qua bài báo “You Only Look Once: Unified, Real-Time Object Detection” Mô hình này khi xuất hiện đã khắc phục hầu hết các yếu điểm của mô hình trước đó là mô hình R-CNN
Hiện nay, có khá nhiều các mô hình nổi trội đang và đã được phát triển, tuy nhiên khi so sánh giữa tốc độ xử lý hình ảnh và độ chính xác thì mô hình YOLO đạt hiệu quả nhất trong số mô hình phát hiện đối tượng (object detection) Mô hình có thể chạy theo thời gian thực mà độ chính xác không chênh lệch nhiều khi so sánh với các mô hình khác Đi sâu hơn thì vì đây là mô hình phát hiện đối tượng nên mục tiêu của mô hình là phân loại (classification) và xác định vị trí (location) của vật thể trong khu vực ảnh Do đó, YOLO không chỉ phân loại các bức ảnh, mà còn có thể xác định vị trí của các vật thể trong các bức ảnh Một ưu điểm khác là YOLO được xây dựng theo kiểu end-to-end, có nghĩa là nó được huấn luyện trực tiếp để dự đoán các hộp chứa và độ tin cậy kiểu end-to-end Do đó YOLO dễ dàng huấn luyện hơn các mô hình phát hiện đối tượng khác, đồng thời đạt độ chính xác cao hơn
Nghiên cứu của đề tài, hướng vào phân tích mô hình YOLOv5 thay vì toàn bộ các phiên bản bởi vì có sự khác biệt khá nhiều giữa phiên bản v1 cho đến hiện tại và trong bài toán lần này tôi sẽ sử dụng mô hình YOLOv5
Một nguyên nhân khác mà nghiên cứu này đang tập trung vào phiên bản YOLOv5 của mô hình mà không phải là phiên bản v8 của mô hình là bởi hai lý do chính Đầu tiên là đối với mô hình YOLOv8 là phiên bản mới nhất và cũng là mạnh mẽ nhất, tuy nhiên với bộ dữ liệu chưa mang tính chất phức tạp cũng như các vật thể còn khá là đơn giản để nhận diện thì nếu so sánh giữa mức độ tốc độ và tính chính xác cũng như là độ lớn của mô hình thì YOLOv5 là hoàn toàn đáp ứng được và thích hợp hơn nhiều khi đưa vào thực tế vì các máy tại các trường học là khá yếu Thứ 2 là mô hình YOLOv5 hiện đang là một mô hình ổn định và thích hợp khi đưa vào kết nối với các ứng dụng theo thời gian thực, và đây cũng là một trong những lý do quan trọng mà tác giả sử dụng để đưa ra quyết định lựa chọn mô hình
Cũng tương tự như YOLOv1 đến YOLOv4 về sự kế thừa các phương pháp cơ bản của mô hình trước đó thì YOLOv5 cũng như vậy, đặc biệt là phiên bản v5 được xem như là có cấu trúc khá giống với phiên bản v4 Tuy nhiên, khác với các phiên bản trước đó, YOLOv5 sử dụng một số thuật toán phát hiện vật thể mới và cải tiến, cũng như tối ưu hóa các phép toán thực hiện song song, giúp mô hình tăng tốc độ nhận diện và giảm thời gian huấn luyện
YOLOv5 là một kiến trúc phổ biến để phát hiện đối tượng được xây dựng dựa trên các phiên bản trước của dòng YOLO (You Only Look Once) YOLOv5 giới thiệu một số cải tiến để cải thiện tính hiệu quả và độ chính xác của việc phát hiện Mô hình sử dụng phương pháp phát hiện một giai đoạn, nghĩa là nó dự đoán trực tiếp các hộp chứa và xác suất của lớp mà không cần sử dụng tạo đề xuất Dưới đây là tổng quan về kiến trúc YOLOv5:
Mạng xương sống (Backbone Network): YOLOv5 thường sử dụng mạng thần kinh tích chập (CNN) làm xương sống Mạng đường trục chịu trách nhiệm trích xuất các tính năng cấp cao từ hình ảnh đầu vào YOLOv5 cung cấp các tùy chọn xương sống khác nhau như CSPDarknet, EfficientNet hoặc MobileNetV3, cho phép người dùng cân bằng giữa độ chính xác và tốc độ suy luận dựa trên yêu cầu của họ
Trong đó, CSPDarknet53 thường được sử dụng nhất trong nhiều trường hợp CSPDarknet53 là một kiến trúc bắt nguồn từ kiến trúc Darknet, được sử dụng rộng rãi cho các tác vụ phát hiện và phân loại đối tượng Mô hình kết hợp khái niệm "cross- stage partial network" (CSP) để tăng tính hiệu quả và cải thiện hiệu suất của mạng
Kiến trúc bao gồm các khối phần dư (residual blocks) và các kết nối tắt (shortcut connections), cho phép trích xuất tính năng hiệu quả và luồng thông tin Tổng quan kiến trúc của CSPDarknet53 như sau:
- Lớp đầu vào: Lớp đầu vào lấy một hình ảnh làm đầu vào, thường được thay đổi kích thước thành một kích thước cố định
- Lớp tích chập: Kiến trúc bắt đầu với một số lớp tích chập thực hiện trích xuất tính năng ban đầu Việc nắm bắt các đặc tính cấp thấp như các cạnh và kết cấu sẽ được lớp này xử lý
- Khối CSP: Thành phần cốt lõi của CSPDarknet53 là khối CSP Khối này chia các bản đồ tính năng (feature map) thành hai nhánh: nhánh chính (main branch) và nhánh tắt (shortcut branch) Nhánh chính đi qua một loạt các lớp tích chập, trong khi nhánh tắt bỏ qua các lớp này và trực tiếp hợp nhất với nhánh chính đằng sau Cấu hình này cho phép sự lan truyền hiệu quả các đặc trưng của ảnh sau khi bị biến đổi mà hạn chế việc mất mát thông tin thông qua mạng này
- Khối dư: Khối CSP thường được theo sau bởi một số các khối dư Mỗi khối còn lại bao gồm một loạt các lớp tích chập và các kết nối nhảy (skip connections) Các kết nối nhảy cho phép độ dốc (gradient) được tính toán trong quá trình đào tạo diễn ra dễ dàng hơn và giúp giải quyết vấn đề độ dốc biến mất (vanishing gradient)
- Spatial Pyramid Pooling (SPP): SPP thường được thêm vào kiến trúc để nắm bắt thông tin đa quy mô SPP sẽ chia feature map thành các lưới khác nhau và áp dụng các hoạt động tổng hợp một cách độc lập trên mỗi lưới Điều này cho phép mạng xử lý các đối tượng có kích cỡ khác nhau
- Tổng hợp trung bình toàn cục (Global Average Pooling): Sau mô-đun SPP, lớp tổng hợp trung bình toàn cục được áp dụng để giảm kích thước không gian của các bản đồ đối tượng trong khi vẫn giữ lại thông tin theo kênh
- Các lớp kết nối đầy đủ (Fully connected layer): Phần kết thúc của kiến trúc là các lớp được kết nối đầy đủ để trích xuất ra được đặc trưng của ảnh nhằm đưa ra kết quả ở lớp đầu ra Các hàm kích hoạt như softmax hoặc sigmoid thường được áp dụng để xác định xác suất lớp hoặc điểm tin cậy
Đánh giá mô hình
Đầu tiên ta sẽ đến với hộp chứa Trong bài toán phát hiện vật thể, thì ước tính kích thước hộp chứa vô cùng quan trọng Ước tính hộp chứa 2D chỉ tập trung vào các hộp được căn chỉnh theo trục Phương pháp mã hóa hộp chỉ đơn giản dựa trên tọa độ tâm đơn giản của hộp chứa (x, y) và độ lệch của hộp chứa: chiều rộng: W và chiều cao: H
2.7.1 Tỷ lệ vùng giao nhau trên tổng vùng (Intersection over Union - IOU)
IOU được sử dụng như một thước đo nhằm xác định độ lệch giữa hộp chứa mà mô hình dự đoán và hộp chứa thực tế đã được dán nhãn trước đó Dựa theo tên gọi ta cũng có thể thấy được cách tính của phương pháp này đó là sẽ lấy diện tích vùng giao giữa hộp chứa dự đoán và hộp chứa thực tế chia cho tổng diện tích của hộp dự đoán và hộp thực tế hợp với nhau Dựa trên cách tính này có thể thấy giá trị thấp nhất là 0 khi hai hộp chứa không giao nhau và cao nhất là 1 khi hai hộp chứa giao nhau
Hình 2 11 Hình ảnh minh họa cách tính IOU
Hình 2 12 Hình ảnh minh họa hiệu quả của IOU
Trong quá trình huấn luyện và đánh giá mô hình, bài nghiên cứu này cũng sẽ sử dụng thêm phép toán Trung bình, độ chính xác trung bình (Mean Average Precision) hay mAP để làm thước đo cho độ chính xác của mô hình và thể hiện cho các độ mất mát sau: 1) mất mát phân loại hay sai số trong độ chính xác phân loại, 2) mất mát vị trí hoặc sai số giữa vùng dự đoán và vùng thực tế, 3) độ tin cậy mất mát hay sai số của bề mặt vật thể trong vùng Mean Average Precision được định nghĩa là diện tính vùng dưới của đường cong precision-recall, trong đó precision và recall lần được được tính như sau:
Thông thường một mô hình được đánh giá là tốt khi có giá trị Precision và Recall cao Trong khi đó, mAP lấy trung bình precision của các vùng giao nhau (Intersection over Union - IoU) đạt trên ngưỡng (threshold) đặt ra
Hình 2 13 Ảnh mô tả cách tính mAP
Nguồn ảnh từ: www.pyimagesearch.com
Như đã đề cập ở phần precision và recall thì trong mô hình YOLO sẽ có 3 thành phần tính mất mát bao gồm: mất mát phân loại, mất mát vị trí và mất mát trong phân loại vật thể Tất cả các phần tính mất mát đều sử dụng sai số trung bình bình phương được tính dựa trên IOU
Việc đặt ngưỡng cho IoU có thể ảnh hưởng đến giá trị mAP bằng việc hạn chế hoặc mở rộng kết quả phát hiện vật thể của mô hình, có thể dễ hình dung là nếu ngưỡng càng cao thì tỉ lệ vùng giao nhau bắt buộc càng lớn cũng đồng nghĩa là điều kiện để phát hiện vật thể càng chặt Hình ảnh dưới đây mô tả cho sự khác nhau giữa các mức ngưỡng khác nhau:
Hình 2 15 Lưới cắt của hình ảnh Trong đó, khi tính toán hàm mất mát phân loại được tính dựa trên sự xuất hiện của vật thể trong những ô cụ thể trong các lưới cắt của hình ảnh được mô tả như hình ảnh ở trên, Nếu một vật thể được phát hiện thì hàm mất mát tại mỗi ô sẽ được tính theo bình phương sai số của xác suất có điều kiện của lớp ở mỗi lớp theo phương trình:
- 1 𝑖𝑗 𝑜𝑏𝑗 = 1 là hàm indicator nếu hộp j tại ô i là giống nhau và khác nhau là = 0
- 𝑝′ 𝑖 (𝑐) ký hiệu cho xác suất lớp có điều kiện cho lớp c trong ô 𝑖
Hàm mất mát vị trí thì ước tính về sai số của hộp chứa được dự đoán về cả tọa độ và kích thước đối với hộp chứa thực tế đã được dán nhãn thông qua phương trình sau:
- 1 𝑖𝑗 𝑜𝑏𝑗 = 1 nếu hộp 𝑗 tại ô 𝑖 tương ứng là phát hiện được vật thể ngược lại nếu không là = 0
- 𝜆 𝑐𝑜𝑜𝑟𝑑 ký hiệu cho xác suất lớp có điều kiện cho lớp c trong ô 𝑖
Qua phương trình trên cũng có thể thấy được hàm mất mát chịu ảnh hưởng bởi căn bậc hai của kích thước của hộp chứa dự đoán Để tăng thêm ảnh hưởng của độ chính xác khi xác định hộp chứa, hệ số 𝜆 𝑐𝑜𝑜𝑟𝑑 được đặt ở giá trị là 5
Thành phần cuối cùng trong hàm mất mát của mô hình là hàm mất mát trong dự đoán vật thể Trong hàm này sẽ có liên quan đến ngưỡng (threshold) của độ tin cậy trong mỗi hộp chứa được dự đoán Phương trình của hàm mất mát phân loại vật thể được tính như sau:
- C là độ tin cậy và C’ là IOU của hộp chứa được dự đoán với hộp chứa thực tế được dán nhãn
- 𝜆 𝑛𝑜 𝑜𝑏𝑗 được đặt ban đầu là 0.5 để tránh trường hợp hàm mất mát này bỏ qua trường hợp ô không có vật thể
Dựa vào các thành phần đã được phân tích trên thì hàm mất mát tổng quát của
YOLO được tính theo tổng của các thành phần trên:
THIẾT KẾ VÀ XÂY DỰNG MÔ HÌNH ỨNG DỤNG
Mô hình phát hiện vật thể bằng YOLOv5
Mô hình YOLOv5 để phát hiện vật thể trong tập dữ liệu ảnh được thu thập riêng cho bộ dữ liệu Tổng quan từng bước thực hiện thí nghiệm trên bộ dữ liệu mới của bài nghiên cứu này sẽ được thực hiện theo các bước chính bao gồm: tiền xử lý dữ liệu, phát triển mô hình và đánh giá mô hình
Hình 3 1 Mô tả quy trình thực hiện phát hiện vật thể
Theo biểu đồ trên thì ta có thể hình dung được mô hình sẽ lấy dữ liệu đầu vào và gán nhãn cho từng vật thể được yêu cầu nhận diện trong ảnh Tiếp đến là sẽ sử dụng phân chia tập dữ liệu cho kiểm tra, huấn luyện và đánh giá khi đưa vào huấn luyện dữ liệu Ở bước tăng cường dữ liệu thì trong nhiều trường hợp, việc này sẽ giúp tạo ra thêm nhiều dữ liệu cũng như là tạo ra các nguồn dữ liệu đa dạng hơn ở các góc độ, độ nhiễu khác nhau đối với các trường hợp nguồn dữ liệu có giới hạn hoặc các góc độ thu thập dữ liệu là có giới hay đơn giản là nhiều người dùng có mong muốn mô hình được học tốt hơn và trong quá trình chạy thực tế tránh hiện tượng giảm độ chính xác khi các góc đối tượng thu thập nằm ngoài vùng dữ liệu Trong đề tài này thì với dữ liệu tự tạo là có giới hạn nên người thực hiện đã sử dụng bước tăng cường dữ liệu, nhằm tăng cường số lượng dữ liệu cũng như giúp mô hình có thể học được dữ liệu với nhiều góc được thu thập khác nhau sau khi tăng cường
Trong bước xây dựng mô hình, sẽ thực hiện sử dụng dữ liệu được tạo ra ở bước trên để đưa vào mô hình Trong quá trình huấn luyện, nếu kết quả mô hình đưa ra là tốt thì tiến hành chuyển qua bước tiếp theo, sẽ sử dụng mô hình tốt nhất để kiểm tra dựa trên các bức ảnh không tồn tại trong tập huấn luyện cũng như đánh giá mô hình để xem xét mô hình có suy luận ra là đúng không, nếu mô hình suy luận sai thì sẽ quay lại tiếp tục huấn luyện Các bước sẽ lặp đi lặp lại đến khi mô hình cho ra kết quả tốt nhất Từ kết quả tốt nhất có được sẽ xây dựng mô hình phát hiện vật thể theo thời gian thực thông qua camera trên laptop hoặc thiết bị kết nối.
Dữ liệu
Dữ liệu sử dụng trong bài luận này được thu thập chủ yếu tại căn tin của một trường trung học trên địa bàn Vũng Tàu Bộ dữ liệu bao gồm 798 bức ảnh với nhiều góc chụp khác nhau nhằm phục vụ cho việc có thể đảm bảo trong trường hợp khi đi vào thực tế có thể đáp ứng được nhiều góc khi lắp đặt camera, từ đó sẽ dễ dàng hơn cho người sử dụng Các ảnh sẽ được điều chỉnh lại từ ảnh gốc và có kích thước là 640x480 để phù hợp với mô hình YOLO v5 Ngoài ra, để đảm bảo được tình trạng mô hình bị học quá trùng khớp (overfitting) thì bộ dữ liệu huấn luyện và kiểm tra được chèn một số các ảnh nhiễu hay các ảnh không có vật thể cần được nhận diện vào Việc này giúp cho mô hình không thực hiện dự đoán khi bất cứ một bức ảnh nào khi đưa vào mô hình cũng sẽ cố gắng đưa ra nhận diện dù vật thể đó không nằm trong danh sách được nhận dạng Từ đó mô hình hoạt động một cách tốt hơn trong thực tế và đôi khi tránh được việc mô hình nhận diện sai
Bên cạnh đó thì ảnh cũng sẽ được thu thập một cách đa dạng là bao gồm cả việc ảnh chỉ chứa duy nhất một vật thể hay nhiều vật thể, từ đó có thể tăng khả năng nhận diện tốt hơn Trong bộ dữ liệu chứa 5 nhóm đối tượng bao gồm:
Bảng 3 1 Chi tiết nhóm đối tượng nhận dạng
Tên đối tượng Tên chi tiết Ghi chú
Hộp thức ăn - Hộp cơm
Các hộp này cùng một giá, được gán nhãn là “Com”
Hộp sữa - Sữa hộp Yomost
Các hộp này cùng một giá, được gán nhãn là “SuaHop”
Các tô này cùng chung một giá, được gán nhãn là “To”
Các chai này cùng chung một giá, được gán nhãn là “Chai” (Loại chai
Bánh mì Ổ bánh mì Bánh mì, được gán nhãn là “BanhMi” Hộp thức ăn, Bánh mì, Hộp sữa, Chai nước và Tô mì, đây là những món khá là phổ biến tại các trường học của địa phương
Hình 3 2 Một số hình ảnh dùng cho huấn luyện Trên đây là một số ảnh được dùng cho quá trình huấn luyện và thử nghiệm với một số ảnh chứa đơn lẻ các vật thể và một số các ảnh khác lại chứa đầy đủ các vật trong khay đựng và với nhiều góc chụp khác nhau Các đối tượng trong ảnh sẽ được gán nhãn từng vật thể bằng tay
Hình 3 3 Một số hình ảnh dùng cho huấn luyện
Bộ dữ liệu trong quá trình huấn luyện mô hình sẽ được chia làm 3 tập là: tập huấn luyện (training), đánh giá (validation), và kiểm tra (testing) Trong đó, tập huấn luyện phục vụ cho huấn luyện mô hình nhằm tìm ra được các tham số phù hợp cho việc phân loại và xác định vật thể Tập đánh giá với mục tiêu để đánh giá hiệu quả các tham số của mạng sau mỗi batch Sau đó, mạng sẽ sử dụng kết quả để tái huấn luyện và học nhằm tăng hiệu quả tính toán Cuối cùng là sau khi tìm được tham số tốt nhất từ việc huấn luyện thì mô hình sẽ sử dụng bộ tham số đó dùng cho tập kiểm tra và đánh giá kết quả là có tốt không nếu sử dụng những dữ liệu không nằm trong tập huấn luyện
Bộ dữ liệu sẽ được chia một cách ngẫu nhiên với tỷ lệ 60%, 20%, 20% với tương ứng cho tập huấn luyện, tập đánh giá và tập kiểm tra Tỷ lệ này được xem là hợp lý khi được sử dụng cho các bộ dữ liệu nhỏ và được dùng khá nhiều trong các nghiên cứu khác Bên cạnh đó, ngoài việc đáp ứng được việc chia một cách ngẫu nhiên thì dựa vào một số các ảnh mẫu phía trên có thể thấy có nhiều ảnh chỉ chứa một đối tượng duy nhất nên một số phương pháp thủ công được sử dụng nhằm làm cho các tập dữ liệu cũng chứa đầy đủ các đối tượng, không bị mất mát
Bảng 3 2 Tỉ lệ phân chia tổng số lượng hình ảnh huấn luyện
Tổng số ảnh Tập huấn luyện Tập đánh giá Tập kiểm tra
Với tỷ lệ này, số lượng của các tập đủ đáp ứng được số lượng cho từng bước trong huấn luyện và kiểm tra mô hình Ngoài số lượng ảnh trong từng tập đủ lớn không bị quá chênh lệch thì số lượng loại vật thể không bị mất cân bằng và tránh được các trường hợp nhận định sai kết quả về mặt thống kê như type I và type II errors.
Cấu trúc cây thư mục Data:
Dựa vào các dữ liệu bên dưới ta có thể thấy được phân bố dữ liệu nhìn chung là khá đồng đều giữa các đối tượng To, SuaHop và BanhMi, trong khi đó thì Com (Hộp thức ăn) và ChaiNuoc lại có phần nổi trội hơn về số lượng Điều này có khả năng sẽ gây ra việc mất cân bằng trong dự đoạn đối tượng khi mô hình huấn luyện và kiểm định Ngoài ra, có thể thấy được hầu hết các đối tượng đều phân bổ hầu hết ở trung tâm của bức ảnh đối với hình dưới góc trái và hình trên góc phải trong hình 3.3 Đây được xem là một lợi thế khi huấn luyện ra mô hình khi có trong mô hình có thể sẽ huấn luyện đúng hoặc các ảnh kiểm định sẽ vô cùng chính xác Tuy nhiên, trong thực tế sẽ có khả năng là các vật thể sẽ nằm ngoài rìa hoặc trong trường hợp các vật thể ngoài rìa vô tình lọt vào trong sẽ bị nhận định nhầm có khả năng xảy ra là vô cùng cao
Trái ngược với đó thì kích cỡ của các vật thể nằm trong ảnh có phân bố khá là rộng với phổ phân bố chiều dài và rộng khá lớn Tuy nhiên trong đó nhiều nhất vẫn là rơi vào khoảng từ 0.2 đến 0.4 của bức ảnh Nhìn chung với việc kích thước của vật trong ảnh phân bổ thế này sẽ tránh được trường hợp các vật thể quá nhỏ hoặc quá lớn khi đưa vào thực tế không được nhận ra
Một đặc điểm khác của bộ dữ liệu này đã làm tốt nữa là các vật thể được chụp với độ sáng tối khác nhau kết hợp với đó là các góc chụp khá đa dạng và có cả các trường hợp các vật thể bị che một phần Từ đó, giúp tăng cường được tính chính xác của mô hình trong thực tế với khả năng cao là các vật thể sẽ bị che một phần bởi các vật thể khác khi đặt lên chung một khay đựng, cũng như là độ sáng của khu vực nhận diện cũng sẽ không ổn định.
Tuy nhiên, có thể thấy được thì có khá nhiều các ảnh khi thu thập chỉ có duy nhất một vật thể trong ảnh Điều này có khả năng dẫn đến việc mô hình học không tốt và khả năng xảy trường hợp nhận dạng vị trí và phân loại sai.
Hình 3 4 Mô tả dữ liệu Thông thường, đối với những mô hình học máy sâu thì bộ dữ liệu lý tưởng sẽ cần đến hàng nghìn đến hàng trăm nghìn dữ liệu nhưng trong trường hợp số lượng lớp vật thể cần được nhận diện là 5 nhóm như trong nghiên cứu này thì số lượng dữ liệu như đã đề cập ở trên cũng có thể xem là phù hợp vì tổng số đối tượng trong các ảnh cũng khá nhiều
Bộ dữ liệu cũng có một vấn đề vừa là ưu điểm vừa là khuyết điểm đó là đặc điểm và hình thù của từng nhóm đối tượng khá là rộng, ví dụ như là nhóm đối tượng hộp thức ăn thì sẽ có đĩa hoặc hộp, trong đó, thành phần và hình cũng khác nhau, điều này giúp cho hình khái quát hơn và có thể học được đặc trưng của nhóm món này từ đó có thể phân loại Có thể hình dung là mô hình muốn nhận diện được hộp sữa thì mô hình sẽ học các vật có dạng hình hộp, các góc cạnh tỷ lệ như thế nào thì đó sẽ là hộp sữa Tương tự như vậy với bánh mì thì mô hình sẽ học đặc trưng là vật thể có màu vàng, có đường cong, hình elip, Tuy nhiên, trong trường hợp này nhóm vật thể Hộp thức ăn lại có quá nhiều đặc trưng khác biệt cũng sẽ làm cho mô hình có khả năng phán đoán sai nếu dữ liệu là chưa đủ và các đặc trưng của đối tượng này là nhiều và thay đổi liên tục Trong trường hợp các thành phần trong món ăn có sự thay đổi thì cũng có thể xảy ra việc mô hình nhận diện sai Dựa vào những hạn chế trên thì mô hình chỉ được đề xuất để sử dụng nhận dạng những khối hình học cơ bản, đặc trưng nhất quán cho từng món hoặc đối tượng, rõ nét ở đây có thể thấy là về phần hộp thức ăn trong tương lai nên thống nhất là hộp hoặc đĩa tùy theo đặc tính, sẽ tách ra làm một đối tượng khác trong các nghiên cứu hoặc phát triển trong tương lai
Dù rằng hiện tại, nguồn lực nghiên cứu là có giới hạn nên các hạn chế này tạm thời sẽ không được đề cập đến Trong định hướng tương lai tác giả sẽ thực hiện thêm các bước hoặc phân chia thêm thuộc tính vào bộ dữ liệu để mô hình có thể học tốt hơn.
3.2.1 Các yếu tố về mặt dữ liệu để mô hình đạt được kết quả tốt nhất
- Quy tắc khi sử dụng mô hình:
+ Tất cả các món được học sinh mua, phải được đặt vào một khay đựng + Các món phải được đặt rời nhau không được phép đặt chồng lên nhau + Khay đựng được đặt dưới Camera và cách một khoảng không vượt quá 1.5 mét, không có món nào nằm ngoài vùng của Camera
+ Góc camera phải thẳng đứng, vuông góc với khay đựng, hoặc lệch một góc khoảng 45 0
+ Các chai nước (nếu có) nên để ở tư thế nằm và rời nhau
+ Không đặt các đồ ăn thức uống nằm ngoài danh sách đã được đề xuất
- Đề xuất thuộc tính của các đối tượng cần nhận dạng Chỉ xét 5 đối tượng có thuộc tính được mô tả dưới đây:
THỰC NGHIỆM VÀ ĐÁNH GIÁ ỨNG DỤNG
Quy trình thực hiện thí nghiệm
Sau đây là quy trình thực hiện để chạy YOLOv5 cho bài toán đặt ra, bao gồm một số bước: chuẩn bị dữ liệu, xác định cấu hình mô hình, đào tạo và thực hiện suy luận
- Tập dữ liệu: Chuẩn bị tập dữ liệu đối tượng Bộ dữ liệu hình ảnh với mỗi hình ảnh được gắn nhãn cùng hộp chứa và nhãn lớp tương ứng cho các đối tượng
- Phân tách dữ liệu: Bộ dữ liệu được phân chia ngẫu nhiên bằng code, tuy nhiên vẫn đảm bảo được sự cân bằng trong cả tập huấn luyện và tập kiểm tra, tránh việc một số đối tượng chỉ nằm ở một tập duy nhất
- Tăng cường dữ liệu: Do có sự giới hạn về việc thu thập dữ liệu nên kỹ thuật tăng cường dữ liệu được sử dụng như cắt ngẫu nhiên, lật, chia tỷ lệ, xoay hoặc trộn màu để tăng tính đa dạng của các mẫu đào tạo và cải thiện khả năng khái quát hóa mô hình
- Chọn Biến thể Mẫu: Chọn biến thể YOLOv5 phù hợp nhất với yêu cầu về độ chính xác và tốc độ (ví dụ: YOLOv5s, YOLOv5m, YOLOv5l, YOLOv5x)
Mô hình YOLOv5s sẽ được thực thi trong quá trình chạy thực nghiệm Đào tạo:
- Khởi tạo: Khởi tạo mô hình YOLOv5 với cấu hình đã chỉ định
- Vòng lặp đào tạo: Mô hình sẽ chạy với 100 epoch và batch size là 16
- Sau khi mô hình đã huấn luyện xong thì sẽ lấy mô hình cho ra kết quả tốt nhất để chạy lại thử cho các ảnh không có trong cả tập huấn luyện và tập kiểm tra nhằm xác định xem mô hình có thực sự tốt hay không
Sau khi mô hình được xác định là tốt ở cả mô hình kết quả, thì dựa trên bộ tham số tốt nhất mà mô hình huấn luyện ra được, sẽ tiến hành viết một chương trình ứng dụng để liên kết trực tiếp với camera nhằm chạy bước suy luận trực tiếp theo thời gian thực và xác định vật thể.
Đánh giá
- Độ chính xác trung bình
Mô hình khi chạy với cấu hình batch size 16, 100 epoch và tham số ban đầu sẽ được chọn ngẫu nhiên có kết hợp với ảnh background Kết quả cho ra được rất tốt khi mAP[0,5: 0,95], kết quả tốt nhất sau khi huấn luyện được là 0.915 Có thể thấy là kết quả cho ra là vô cùng tốt khi độ chính xác đạt trên 0.9 Trong đó kết quả của từng nhóm đối tượng có giá trị như sau:
Bảng 4 1 Tỉ lệ kết quả từng nhóm đối tượng
Thông qua kết quả từ bảng trên, ta có thể thấy được độ chính xác của từng loại vật thể khá là tương đồng với nhau, trong đó độ chính xác cao nhất là Tô và thấp nhất là Sữa hộp Nguyên nhân cũng có thể là do đặc thù hình dán và kích thước của Tô là lớn và hình tròn và có màu nền khá khác biệt, có tính đồng nhất hơn khi so với các vật thể khác
Hình 4 1 Biểu đồ thể hiện độ chính xác và thông số trên từng epoch
Các biểu đồ trên thể hiện độ chính xác và thông số trên từng epoch Có thể thấy được giá trị mất mát khi huấn luyện giảm dần đều qua từng epoch và độ giảm khá ổn định cả ở phần tọa độ hộp, xác định vật thể và phân loại vật thể Trong khi đó, ở phần đánh giá, có thể thấy được đồ thị của các giá trị mất mát có xu hướng khá giống ở tập huấn luyện, tuy nhiên có độ dao động lớn khi tăng giảm thất thường ở giai đoạn 50 epoch đầu và sau đó ổn định dần ở các epoch sau Đối với độ chính xác của mô hình, trong những epoch đầu thì mô hình đã cho ra kết quả vô cùng tốt khi cả chỉ số precision và recall đều lên đến 0.9 sau 7 epoch đầu và nhìn chung là tăng đến các epoch cuối Tuy nhiên, thông qua biểu đồ có thể thấy precision có xu hướng ổn định hơn recall vì trong những epoch đầu thì recall còn có sự tăng giảm bất thường
Trong khi đó, tương tự ở mAP[0,5:0,95] ta thấy được chỉ số này tăng một cách chậm hơn khi so với precision, recall hay mAP0,5 Điều này thể hiện mô hình đã học và tăng dần qua các epoch và dần ổn định ở những epoch cuối mà không bị bão hòa về hiệu suất sau những epoch đầu Thông qua xu hướng của chỉ số này có thể thấy được việc huấn luyện qua nhiều epoch là cần thiết và con số 100 là phù hợp vì tại đây mô hình cho ra được hiệu quả tốt nhất, tránh trường hợp mô hình không đạt hiệu quả cao vì huấn luyện chưa đủ hay huấn luyện quá nhiều lại gây ra lãng phí về mặt tài nguyên
Kết quả của ma trận nhầm lẫn
Kết quả của ma trận nhầm lẫn được xem là một trong những phương pháp quan trọng trong việc đánh giá tính hiệu quả của mô hình phân lớp
Hình 4 2 Ma trận nhầm lẫn Thông qua ma trận nhầm lẫn có thể thấy hầu hết các nhóm đối tượng đều được phân loại rất chính xác Trong đó, các vật thể như Tô, Sữa hộp, Hộp thức ăn đều được phân loại đúng hoàn toàn Chai nước cũng khá đúng khi độ chính xác đạt đến 0.99 và thấp nhất là Bánh mì chỉ đạt 0.94 Tuy nhiên xét chung thì mô hình hoạt động rất tốt.
Có thể thấy, dựa trên đồ thị F1-curve thì mô hình đang có hiệu quả khá cao khi đạt giá trị F1 cao ngay từ những giá trị confidence thấp và ổn định khi đạt gần đến 1 Bên cạnh đó, các biểu đồ về Precision-confident hay Precision-recall đều cũng cho những kết quả tương tự
Hình 4 3 Đồ thị F1 – Confidence Curve
Hình 4 4 Đồ thị Precision – Confidence Curve
Hình 4 5 Đồ thị Precision – Recall Curve
Hình 4 6 Đồ thị Recall – Confidence Curve
Bên cạnh việc đánh giá thông qua các chỉ số chính xác cũng như xem các hình ảnh thực tế mà mô hình dự đoán trong quá trình huấn luyện, kiểm tra và suy luận (hình ảnh được thêm vào để dự đoán sau khi mô hình cho ra kết quả tốt nhất) được trình bày như sau: Đầu tiên là các hình được đưa vào trong tập huấn luyện với các hộp nhãn được đánh số từ 0 đến 4 Trong đó, 0 là tương ứng với Tô, 1 là hộp sữa, 2 là hộp hộp thức ăn, 3 là chai nước và 4 là bánh mì Đây được xem như là hình thức mã hoá để máy tính có thể hiểu được Hình bên dưới là tổng hợp của một số ảnh được truyền vào khi được dán nhãn
Hình 4 7 Hình ảnh đưa vào huấn luyện được đánh số từ 0 đến 4
Còn đây là các ảnh gốc được truyền vào ban đầu khi được dán nhãn trong bộ dữ liệu huấn luyện
Hình 4 8 Hình ảnh gốc được gán nhãn đưa vào huấn luyện
Bên dưới là các ảnh sử dụng khi dùng trong kiểm tra sau khi mô hình huấn luyện xong, các tham số sẽ kiểm tra dựa trên các bức ảnh này Trong ảnh sẽ bao gồm vật thể được xác định ô toạ độ với nhãn bên trên hoặc dưới và bên cạnh sẽ là chỉ số confidence của mô hình dự đoán
Dựa vào hình ảnh trực quan có thể thấy, đối với các ảnh thì dù có ở các góc độ, độ sáng tối hay chồng lấn của vật thể này lên vật thể khác thì mô hình đều cho ra kết quả rất tốt và các hệ số confidence hầu hết là cao
Dựa trên các kết quả này có thể thấy được bộ dữ liệu cũng như là các cấu hình đã khắc phục hoặc tránh được hầu hết các nhược điểm của mô hình Đầu tiên là các đối tượng cần phát hiện trong ảnh đã được thiết lập sao cho có kích thước từ vừa đến lớn Trong điều kiện thực tế và hướng đến trong tương lai khi ứng dụng kết quả của mô hình vào kinh doanh thì các khay đồ ăn sẽ được thiết lập gần và tránh để quá xa so với camera Điều này sẽ hạn chế được các vật thể nằm quá xa so với camera Tiếp đến là để khắc phục yếu điểm phát hiện các vật thể bị chồng lấp và che khuất lẫn nhau thì bộ dữ liệu đã tạo ra khá nhiều các mẫu dữ liệu các vật thể nằm xen kẽ nhau để từ đó, mô hình có thể học tốt hơn các đặc tính Như có thể thấy, kết quả cho ra là vô cùng khả quan
Hình 4 9 Kết quả hình ảnh sau khi dùng để kiểm tra
Và đây là các hình ảnh được truyền vào mô hình có kết quả tốt nhất Hình ảnh cho ra được khá tương tự với ảnh trong bộ kiểm tra, ảnh bao gồm vật thể, hộp chứa, nhãn và confidence của nhãn được đưa ra Quan sát những bức ảnh này cũng có thể nhận thấy được kết quả thấp nhất là 90%
Hình 4 10 Kết quả của các hình ảnh chứa nhiều vật thể sau khi kiểm tra Thử nghiệm với các hình ảnh được truyền vào ở Hình 4.10, hình ảnh được xem là gần sát với thực tế ở trường học khi các vật thể được đặt trên khay với độ sáng tối khác nhau Bên cạnh đó, số lượng và số loại các vật thể trong khay cũng nhiều và đa dạng với các góc chụp khác nhau Trong trường hợp các vật được đặt cách xa nhau và độ phủ lên nhau thấp, nhưng ánh sáng có sự khác nhau thì mô hình đều cho ra kết quả khá tốt Ngay cả trong trường hợp ảnh được chụp từ góc gần 90 độ xuống, các chai nước chỉ thấy được hình thù không rõ ràng hoặc chỉ thấy nắp chai thì mô hình vẫn cho ra kết quả tốt Điều này cho thấy được mô hình đã học được đặc trưng của vật thể hay cụ thể ở đây là chai nước một cách khá tốt Ở hình tiếp theo thì các chai nước bị phủ lên nhau khá nhiều thì mô hình vẫn cho ra được kết quả tốt khi nhận diện được một cách hoàn chỉnh và chính xác các vật thể trong ảnh
Dựa trên thử nghiệm các ảnh đưa vào thì mô hình dự đoán cho ra kết quả là chính xác, như vậy đánh giá một cách khách quan có thể thấy được mô hình đã học tốt dựa trên bộ dữ liệu được đưa vào và hoạt động tốt trong nhiều trường hợp với kịch bản khác nhau của dữ liệu mới được truyền vào.