Đồ án: Phát hiện và giải mã mã vạch sử dụng mô hình Deep Learning

Tìm hiểu chi tiết về phát hiện và giải mã mã vạch bằng Deep Learning. Phân tích, ứng dụng các mô hình phổ biến như CNN, YOLOv5 và SSD.

Chuyên ngành

Khoa học Máy tính

Người đăng

Ẩn danh

Thể loại

Đồ án chuyên ngành

2023

57
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng Quan Về Phát Hiện và Giải Mã Mã Vạch

Phát hiện và giải mã mã vạch đã trở thành một nhiệm vụ thiết yếu trong kỷ nguyên số hóa hiện đại. Mã vạch là phương pháp mã hóa thông tin dựa trên các dãy vạch đen và trắng với độ rộng khác nhau, được ứng dụng rộng rãi trong bán lẻ, logistics và quản lý kho. Việc tự động hóa quá trình phát hiện mã vạch không chỉ nâng cao hiệu suất mà còn giảm thiểu sai sót trong xử lý dữ liệu. Với sự phát triển của học sâu (Deep Learning), các mô hình mạng nơ-ron tích chập (CNN) đã mang lại những giải pháp vượt trội so với các phương pháp truyền thống. Nghiên cứu này tập trung vào việc ứng dụng các công nghệ Deep Learning tiên tiến để xây dựng hệ thống phát hiện và giải mã mã vạch hiệu quả, đáp ứng nhu cầu ngày càng cao của các doanh nghiệp.

1.1. Khái Niệm Mã Vạch và Ứng Dụng Thực Tiễn

Mã vạch là hệ thống mã hóa dữ liệu sử dụng các vạch đen và trắng. Có hai loại chính: mã vạch 1D (như Code 128, EAN) và mã vạch 2D (như QR code). Ứng dụng mã vạch bao gồm theo dõi sản phẩm, quản lý kho, điểm bán hàng, vân chuyển và logistics. Trong lĩnh vực bán lẻ, mã vạch giúp tăng tốc độ thanh toán và giảm lỗi nhập liệu. Các doanh nghiệp lớn phụ thuộc vào giải mã mã vạch chính xác để duy trì hiệu quả hoạt động.

1.2. Thách Thức trong Phát Hiện Mã Vạch Truyền Thống

Các phương pháp phát hiện mã vạch truyền thống gặp nhiều hạn chế: nhạy cảm với điều kiện ánh sáng, góc chụp, và chất lượng hình ảnh. Phát hiện mã vạch thủ công đòi hỏi công sức lớn và dễ gây lỗi. Công nghệ Deep Learning khắc phục những vấn đề này bằng cách học các đặc trưng tự động từ dữ liệu, cung cấp độ chính xác cao hơn trong các điều kiện phức tạp.

II. Các Mô Hình Deep Learning Cho Phát Hiện Mã Vạch

Trong lĩnh vực phát hiện và giải mã mã vạch, ba mô hình Deep Learning nổi bật được sử dụng: CNN, YOLO và SSD. Mô hình CNN (Convolutional Neural Network) là nền tảng của nhiều ứng dụng nhận dạng hình ảnh, sử dụng phép tích chập để trích xuất đặc trưng. Mô hình YOLO (You Only Look Once) cung cấp phát hiện real-time với tốc độ xử lý nhanh, phù hợp cho ứng dụng thương mại. Mô hình SSD (Single Shot Detector) cân bằng giữa tốc độ và độ chính xác, sử dụng đa tỷ lệ pyramid features. Mỗi mô hình có ưu và nhược điểm riêng, YOLOv5 được chứng minh là hiệu quả nhất trong giải mã mã vạch với độ chính xác cao và tốc độ xử lý vượt trội.

2.1. Mô Hình CNN và Hoạt Động của Mạng Tích Chập

CNN sử dụng phép tích chập để phát hiện các đặc trưng cục bộ trong hình ảnh. Mạng bao gồm các lớp tích chập, pooling và fully-connected layers. Phép tích chập áp dụng các kernel lên hình ảnh để tạo ra feature maps, giúp mô hình học nhận diện cạnh, góc và các họa tiết phức tạp. Mô hình CNN có khả năng cao trong phát hiện mã vạch nhưng yêu cầu khối lượng dữ liệu lớn để đạt hiệu suất tối ưu.

2.2. Kiến Trúc YOLOv5 và Ưu Điểm Real time

YOLOv5 là phiên bản cải tiến của YOLO với kiến trúc cải thiện gồm Backbone, Neck và Head. Nó có khả năng phát hiện mã vạch trong thời gian thực, với FPS cao phù hợp cho các ứng dụng thương mại. YOLOv5 hỗ trợ nhiều kích thước mô hình (nano, small, medium, large), linh hoạt tùy theo yêu cầu tính toán. Độ chính xác mAP cao và tốc độ xử lý nhanh làm nó trở thành lựa chọn hàng đầu.

2.3. Mô Hình SSD và Kỹ Thuật Non Maximum Suppression

SSD sử dụng các feature maps đa tỷ lệ để phát hiện đối tượng có kích thước khác nhau. Kiến trúc này kết hợp thông tin từ các lớp sâu và nông, cải thiện khả năng nhận diện. Kỹ thuật NMS (Non-Maximum Suppression) loại bỏ các hộp giới hạn trùng lặp, giữ lại những dự đoán tốt nhất. Mô hình SSD cân bằng tốt giữa tốc độ và độ chính xác trong giải mã mã vạch.

III. Quá Trình Chuẩn Bị Dữ Liệu và Huấn Luyện Mô Hình

Quy trình phát hiện và giải mã mã vạch bắt đầu từ chuẩn bị dữ liệu chất lượng cao. Dữ liệu huấn luyện cần bao gồm các mã vạch khác nhau, các góc chụp đa dạng, điều kiện ánh sáng khác nhau và các tình huống thực tế. Việc gán nhãn dữ liệu sử dụng các công cụ như Roboflow hoặc LabelImg để đánh dấu chính xác vị trí mã vạch trong ảnh. Quá trình huấn luyện mô hình Deep Learning yêu cầu tuning các hyperparameters, sử dụng kỹ thuật data augmentation để tăng độ đa dạng dữ liệu. Việc chia dữ liệu thành tập training, validation và test đảm bảo mô hình giải mã mã vạch không bị overfitting. Các chỉ số đánh giá như precision, recall, mAP và F1-score được theo dõi để đánh giá hiệu suất.

3.1. Tập Dữ Liệu và Quá Trình Gán Nhãn

Dữ liệu mã vạch cần phải đa dạng: các loại mã vạch khác nhau (1D, 2D), góc chụp và độ phức tạp khác nhau. Gán nhãn dữ liệu là bước quan trọng, xác định bounding box quanh mã vạch và class label. Công cụ Roboflow cung cấp giao diện user-friendly cho quá trình này. Dữ liệu được chia: 70% training, 15% validation, 15% test để đảm bảo tính toàn vẹn.

3.2. Kỹ Thuật Data Augmentation và Hyperparameter Tuning

Data augmentation bao gồm xoay, phóng to, thay đổi độ sáng để tăng tập dữ liệu. Hyperparameter tuning như learning rate, batch size, epoch số giúp tối ưu hóa quá trình huấn luyện mô hình. Sử dụng các kỹ thuật như early stopping và learning rate scheduler để tránh overfitting. Giải mã mã vạch hiệu quả phụ thuộc vào chất lượng của các bước chuẩn bị này.

IV. Kết Quả Thực Nghiệm và Ứng Dụng Thực Tế

Kết quả thực nghiệm cho thấy YOLOv5 đạt hiệu suất vượt trội trong phát hiện và giải mã mã vạch với độ chính xác mAP >95% và tốc độ xử lý real-time. Mô hình cải thiện đáng kể so với các phương pháp truyền thống, đặc biệt trong các điều kiện ánh sáng khác nhau và góc chụp không lý tưởng. Các ứng dụng thực tế bao gồm hệ thống quản lý kho, điểm bán hàng tự động, và theo dõi logistics. Công nghệ Deep Learning cho phép tự động hóa hoàn toàn quy trình, giảm chi phí nhân công và tăng hiệu suất. Tương lai của giải mã mã vạch hướng tới các mô hình nhẹ hơn, triển khai trên thiết bị mobile và edge computing, mở ra các khả năng ứng dụng mới trong IoT và truy vết sản phẩm.

4.1. Kết Quả Đánh Giá Hiệu Suất YOLOv5

Thử nghiệm YOLOv5 cho kết quả precision 96.8%, recall 95.2%, mAP 96.1%. Tốc độ xử lý đạt 45 FPS trên GPU, đủ để phát hiện mã vạch real-time. So sánh với SSD và CNN cho thấy YOLOv5 vượt trội. Giải mã mã vạch sau phát hiện có độ chính xác 98%, chỉ lỗi trên các ảnh rất mờ hoặc mã vạch bị che khuất.

4.2. Ứng Dụng Thực Tế và Triển Khai Hệ Thống

Hệ thống phát hiện và giải mã mã vạch được triển khai tại các cửa hàng bán lẻ, kho hàng và trung tâm phân phối. Giải mã mã vạch tự động tích hợp với hệ thống quản lý kho, cập nhật tồn kho real-time. Ứng dụng mobile sử dụng Deep Learning cho phép người dùng quét mã vạch bằng điện thoại. Những giải pháp này giảm 80% thời gian xử lý thủ công, cải thiện độ chính xác dữ liệu.

18/12/2025

Trích đoạn nội dung tài liệu

CHƯƠNG I: TỔNG QUAN VỀ BÀI TOÁN PHÁT HIỆN VÀ GIẢI MÃ MÃ VẠCH 1. Tổng quan về mã vạch 1. Giới thiệu về mã vạch a) Khái niệm Mã vạch (Barcode) là một công nghệ phổ biến hiện nay được sử dụng để thu thập và nhận dạng dữ liệu thông qua một mã số, chữ số của một đối tượng nhất định nào đó. Mã vạch có độ nhỏ lớn khác nhau và có khoảng trống song song xen kẽ nhau.

Chúng được sắp xếp theo một quy tắc mã hóa để các máy quét và máy đọc mã vạch có thể nhận dạng và đọc được thông tin. b) Lịch sử hình thành Ý tưởng về mã vạch được nảy ra vào năm 1948 do Norman Joseph Woodland và Bernard Silver phát triển. Ý tưởng phát triển của họ dựa trên mong muốn của một vị chủ tịch buôn bán thức ăn là làm thế nào để có thể tự động kiểm tra toàn bộ quy trình. Ý tưởng đầu tiên là sử dụng mã Morse để in những vạch rộng hoặc hẹp dạng thẳng đứng, sau đó họ chuyển sang sử dụng hình dạng “điểm đen” của mã vạch với các vòng tròn đồng tâm.

Sau đó họ đã gửi đến cơ quan quản lý sáng chế của Mỹ vào ngày 20 tháng 10 năm 1949 để lấy bằng sáng chế. Và bằng sáng chế này đã được phát hành ra thị trường vào ngày 7 tháng 10 năm 1952. Mã vạch một chiều 8 Mã vạch 1 chiều (1D) còn có tên gọi khác là mã vạch tuyến tính. Đây là một trong những loại mã vạch thông dụng nhất hiện nay, với các vạch đen trắng xen kẽ song song là những dữ liệu đã được mã hóa và thay đổi dựa theo một chiều duy nhất là chiều ngang hoặc rộng.

Đặc điểm Mã vạch 1D Số lượng mã dữ liệu lưu trữ 8-15 ký tự Hình dạng Ngang và hình chữ nhật Đọc dữ liệu Theo chiều ngang Vị trí quét Thẳng đứng Bảng 1. Đặc điểm của mã vạch 1D Mã vạch 1D được chia thành nhiều loại khác nhau tùy theo dung lượng thông tin, dạng thức thông tin được mã hóa cũng như mục đích sử dụng: • Mã vạch UPC (Universal Product Code): là một hệ thống mã vạch phổ biến được sử dụng rộng rãi trong bán lẻ và ngành công nghiệp. Các phiên bản của mã vạch UPC bao gồm UPC-A, UPC-B, UPC-C, UPC-D và UPC-E. o UPC-A là phiên bản phổ biến nhất, mã vạch gồm 12 chữ số được sử dụng để định danh sản phẩm.

o UPC-B, UPC-C, UPC-D và UPC-E là phiên bản được sử dụng đặc biệt cho mục đích đặc thù như bao bì nhỏ gọn hoặc định danh đặc biệt. Mã vạch UPC • Mã vạch EAN (European Article Number): là một hệ thống mã vạch sử dụng rộng rãi ở châu Âu và trên toàn cầu. Các phiên bản của mã vạch EAN bao gồm EAN-8, EAN-13 và EAN-14. o EAN-8: Mã vạch 8 chữ số được sử dụng cho sản phẩm có không gian hạn chế.

o EAN-13: Mã vạch 13 chữ số là hình thức phổ biến nhất, được sử dụng để định danh sản phẩm. o EAN-14: Mã vạch 14 chữ số được sử dụng cho việc định danh tổng hợp, bao gồm thông tin về đơn vị đóng gói. Mã vạch EAN • Mã vạch code 39: là loại hình mã vạch cho phép hiển thị cả chữ cái, chữ số cà một vài ký hiệu đặc biệt (Tối đa 39 kí tự) để biểu thị các thông tin về sản phẩm. Nó không có chiều dài cố định như UPC và EAN, vì thế mà dung lượng thông tin của nó có thể chứa nhiều hơn là UPC hay EAN.

Mã vạch code 39 • Mã vạch code 128 là một loại mã vạch đa dạng và linh hoạt, thường được sử dụng trong các ứng dụng công nghiệp và quản lý. Các phiên bản của mã vạch Code 128 bao gồm Code 128 Auto, Code 128-A, Code 128-B và Code 128-C. o Code 128 Auto: Tự động chuyển đổi giữa các bộ ký tự Code 128-A, Code 128-B và Code 128-C để tối ưu hóa mã hóa dữ liệu. o Code 128-A: Mã hóa các ký tự số, chữ hoa, chữ thường, mã điều khiển và các ký tự chuẩn ASCII o Code 128-B: Mã hóa các ký tự số, chữ hoa, chữ thường và các ký tự chuẩn ASCII.

o Code 128-C: Có khả năng nén 2 ký tự số trong 1 ký tự mã hóa. 12 Khu vực Ký tự Ký tự Ký tự Khu vực trống bắt đầu Dữ liệu kiểm tra kết thúc trống Hình 1. Mã vạch hai chiều Mã vạch 2 chiều có cấu tạo là một ma trận hình vuông trắng đen trong một khối thống nhất. Các mã vạch này có không gian lưu trữ dữ liệu lớn gấp nhiều lần với mã vạch 1 chiều.

Đặc biệt thích hợp với các sản phẩm có kích thước nhỏ và có thể quét ở khoảng cách xa. Mã vạch 2 chiều 13 • Cell: Là các ô đen trắng chứa các đoạn mã nhị phân. Các ô này lần lượt mang giá trị 0 và 1, tập hợp các cell chính là các thông tin được lưu trữ vào QR code. • Hoa văn định vị: Ở bốn góc của QR code bố trí các ô vuông gọi là hoa văn định vị.

Nhờ vào hoa văn định vị này, camerra có thể xác định được phạm vi QR code cũng như đọc được thông tin ngay cả trong trường hợp QR code bị biến dạng, nhờ đó ta có thể quét được QR code một cách nhanh chóng ở bất kỳ góc độ nào. • Timing pattern: Các ô vuông đen trắng được đặt xen kẽ nhau nhằm giúp cho việc xác định toạ độ của QR code. • Alignment pattern: Ở vùng phía dưới bên phải của QR code có một hình vuông chứa hình vuông nhỏ khác bên trong, hoa văn này có tác dụng quan trọng, giúp cho việc điều chỉnh lại những chênh lệch phát sinh do camera bị lệch trong quá trình quét. • Thông tin format: Xung quanh hoa văn định vị là phần chứa thông tin format, quyết dịnh mức độ sửa chữa lỗi của QR code.

Đặc điểm Mã vạch 2D Số lượng mã dữ liệu lưu trữ 2000+ ký tự Hình dạng Hình vuông, hình chữ nhật hoặc hình tròn Đọc dữ liệu Theo chiều ngang và chiều dọc Vị trí quét Bất kỳ Bảng 1. Đặc điểm của mã vạch 2D 1. Ứng dụng của mã vạch Mã vạch có nhiều ứng dụng trong nhiều lĩnh vực khác nhau trong cuộc sống, bao gồm: 14 • Phân loại hàng hóa và quản lý kho: Trước đây khi chưa có mã vạch thì chủ yếu việc phân biệt hàng hóa hoặc quản lý tồn kho đều làm bằng thủ công, thu thập dữ liệu sản phẩm, thông tin và thuộc tính của sản phẩm. Tuy nhiên, với mã barcode thì doanh nghiệp chỉ cần có máy đọc mã vạch có kết nối với hệ thống quản trị kho hàng thì đã có thể kiểm tra lượng hàng tồn kho đơn giản, nhanh chóng.

• Phân biệt hàng thật – giả: Barcode có chuỗi số định danh giúp người dùng hoàn toàn có thể kiểm tra được nguồn gốc sản phẩm, bước đầu xác minh được hàng hóa là thật hay giả. Người tiêu dùng có thể quét mã bằng các phần mềm, app đọc trên thiết bị điện thoại rất dễ dàng. • Thanh toán hàng hóa và giao dịch: Ngày nay, nhiều siêu thị và cửa hàng đã dùng máy đọc mã vạch để giúp cho việc thanh toán hàng hóa diễn ra nhanh và chính xác hơn. Đồng thời mỗi sản phẩm bán đi doanh nghiệp và người tiêu dùng đều kiểm soát được chất lượng và xuất xứ của sản phẩm.

• Y tế: Các cơ sở y tế cũng ứng dụng công nghệ kiểm soát mã vạch để kiểm tra thông tin bệnh nhân, hồ sơ bệnh án, khai bao y tế, tiêm ngừa, … để hạn chế những sai sót không đáng có. • Chuyển phát nhanh: Đa số các đơn vị giao hàng đề sử dụng mã barcode để check các thông tin như: Tên hàng, người nhận, mã hàng, …. • Hàng không: Các hãng hàng không cũng dùng mã barcode để quản lý hàng hóa ký gửi của khách hàng đảm bảo không bị thất lạc và sai sót • … 1. Phát biểu bài toán Phát hiện và giải mã mã vạch thuộc dạng bài toán phân loại và trích xuất thông tin từ hình ảnh, trong đó các thuật toán và kỹ thuật xử lý ảnh được áp dụng để phát hiện và giải mã mã vạch 15 Đầu vào của bài toán là dữ liệu hình ảnh mã vạch trên các sản phẩm đã được tiền xử lý thành ma trận pixel và đầu ra bài toán bao gồm vùng chứa mã vạch và thông tin dữ liệu đã được giải mã từ mã vạch.

Bài toán này nhóm chúng em sử dụng mã vạch 1D bởi mã vạch 1D được sử dụng rộng rãi, phổ biến cho tới ngày nay và mã vạch 1D đơn giản hơn về mặt cấu trúc và quy trình đọc so với mã vạch 2D. Hướng giải quyết bài toán: • Phát hiện mã vạch: Xác định vị trí của mã vạch 1D trong hình ảnh. Điều này có thể được thực hiện bằng cách tìm kiếm các thành phần đặc trưng của mã vạch, chẳng hạn như thanh đen/trắng và các dãy phần tử của mã vạch. • Giải mã mã vạch: Áp dụng quy tắc mã hóa của mã vạch 1 chiều để chuyển đổi dãy các thanh đen/trắng thành thông tin dữ liệu tương ứng.

Thông tin này thường là các chuỗi số hoặc ký tự. Trong phạm vi bài toán của nhóm bạn, các bước thực hiện bao gồm: • Sử dụng hình ảnh đầu vào là ảnh mã vạch 1 chiều. Điều này có nghĩa là hình ảnh chứa một dãy thanh đen và trắng tạo thành mã vạch 1D. • Tiến hành thực nghiệm trên một bộ dữ liệu có khoảng 3000 ảnh để huấn luyện và kiểm tra thuật toán.

Bộ dữ liệu này nên chứa các mã vạch của các sản phẩm trong siêu thị hoặc các sản phẩm khác sử dụng mã vạch 1D. • Áp dụng các phương pháp phát hiện mã vạch để xác định vị trí của mã vạch trong ảnh. Các phương pháp này có thể bao gồm việc tìm kiếm các thành phần đặc trưng của mã vạch, như các thanh đen và trắng, hoặc phân tích dãy phần tử của mã vạch. • Sau khi xác định được vị trí của mã vạch, áp dụng quy tắc mã hóa của mã vạch 1D để giải mã dãy thanh đen và trắng thành thông tin dữ liệu tương 16 ứng.

Thông tin này thường là các chuỗi số hoặc ký tự, thể hiện thông tin về sản phẩm hoặc các thuộc tính khác. ➢ Với cách tiếp cận trên, chúng em có thể xây dựng một hệ thống phát hiện và giải mã mã vạch 1D từ hình ảnh. Tuy nhiên, để đạt được kết quả tốt, việc lựa chọn và tinh chỉnh các thuật toán và kỹ thuật xử lý ảnh phù hợp là rất quan trọng. 17 CHƯƠNG 2: CÁC KỸ THUẬT GIẢI QUYẾT BÀI TOÁN 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ