TỔNG QUAN
Tổng quan
Mã vạch là một phương pháp quản lý thông tin hiệu quả, sử dụng các vạch màu đen và trắng để biểu diễn ký tự và ký số Sự thay đổi độ rộng của các vạch này cho phép máy đọc nhận diện thông tin, trong đó vạch đen tương ứng với mức logic 1 và vạch trắng với mức logic 0 Nhờ vào sự kết hợp khác nhau của các vạch, ta có thể tạo ra nhiều loại ký tự và mã vạch khác nhau, phục vụ cho việc lưu trữ và truyền tải thông tin trong các sản phẩm hàng hóa.
Mã vạch là phương pháp lưu trữ và truyền đạt thông tin giúp nhà sản xuất, người tiêu dùng và cơ quan chức năng dễ dàng kiểm tra và quản lý nguồn gốc sản phẩm Sự phổ biến của mã vạch đặt ra yêu cầu cần có công cụ đọc và xuất thông tin từ chúng Tuy nhiên, do mã vạch nằm bên ngoài sản phẩm, chúng có thể bị ảnh hưởng bởi các yếu tố bên ngoài trong quá trình lưu thông, dẫn đến khó khăn trong việc nhận dạng và truy xuất thông tin qua máy đọc mã vạch.
Trong bối cảnh thị trường hiện nay, bên cạnh sự phát triển hàng hóa vì lợi ích kinh tế, hàng gian, hàng giả cũng đang tràn lan Dù đã có sự quản lý từ các cơ quan chức năng như hiệp hội bảo vệ người tiêu dùng và quản lý thị trường, người tiêu dùng vẫn cần tự bảo vệ mình Việc xác định nguồn gốc xuất xứ sản phẩm qua mã vạch trở nên cần thiết hơn bao giờ hết để đảm bảo chất lượng và tính minh bạch của hàng hóa.
Để giải quyết vấn đề liên quan, tác giả đã nghiên cứu về mã vạch và thực hiện đề tài “Nhận dạng mã vạch dùng xử lý ảnh” nhằm mục đích xác định thông tin từ mã vạch một cách hiệu quả.
Tình hình nghiên cứu trong và ngoài nước
Sự phát triển của các ngành khoa học, đặc biệt là công nghệ cao như điều khiển tự động, an ninh và y tế, đòi hỏi độ chính xác cao, đã làm nổi bật vai trò quan trọng của phần mềm xử lý ảnh trong phân tích và nhận dạng Nhiều nghiên cứu khoa học về xử lý ảnh đã được công bố, và tác giả đã kế thừa ý tưởng cũng như phương hướng xây dựng đề tài từ những nghiên cứu liên quan này.
1.2.1 Tình hình nghiên cứu trong nước
Vào năm 2004, nhóm tác giả Âu Dương Đạt và Lê Thành Nguyên từ trường Đại học Khoa học Tự nhiên đã phát triển ứng dụng “Quản lý phòng máy bằng mã vạch” nhằm quản lý sinh viên hiệu quả.
Năm 2012, Vũ Thành An và Nguyễn Thanh Hải đã giới thiệu một phương pháp mới trong xử lý ảnh y sinh, kết hợp biểu đồ Histogram và giá trị entropy để phát triển thuật toán tách điểm ảnh Thuật toán này sử dụng biến đổi Wavelet nhằm cải thiện chất lượng của ảnh tách và ảnh gốc.
Năm 2014, nhóm tác giả Đoàn Hòa Minh và Lưu Minh Thái từ trường Đại học Cần Thơ đã thực hiện nghiên cứu về mã vạch với đề tài “Quét mã vạch trên thẻ bằng điện thoại di động và ứng dụng trong điểm danh”, được đăng trên tạp chí khoa học của trường.
Phân đoạn tự động và bán tự động của đối tượng là một lĩnh vực quan trọng trong tiền xử lý dữ liệu Nghiên cứu "Phân đoạn ảnh CT/MRI để làm rõ khối u" năm 2016 của tác giả Nguyễn Thị Nhật Quỳnh và Nguyễn Thanh Hải đã áp dụng thuật toán phân đoạn tự động và bán tự động nhằm xác định rõ ràng khối u.
Nhóm tác giả Phạm Ngọc Hương Trà và Nguyễn Thanh Hải đã thực hiện nghiên cứu về tiền xử lý ảnh nhằm tăng cường khả năng chẩn đoán tiền ung thư Họ đã trình bày phương pháp phân vùng tự động khối u não bằng thuật toán phân ngưỡng Otsu, kết hợp với phân đoạn dựa trên đặc trưng của ảnh y sinh, nhằm thu được hình ảnh khối u não rõ ràng hơn vào năm 2016.
1.2.2 Tình hình nghiên cứu nước ngoài
Research on 1D barcode recognition has been conducted internationally The 2013 paper "Robust Angle Invariant 1D Barcode Detection" by Alessandro Zamberletti, Ignazio Gallo, and Simone Albertini utilized Hough Transform to identify 1D barcodes at various angles, achieving a success rate of 84% Additionally, another study titled "Barcode Recognition System" also focuses on barcode recognition techniques.
2013 của tác giả N M Z Hashim, N A Ibrahim, N M Sadd, F Sakaguchi và Z Zakaria sử dụng phần mềm Matlab nhận dạng được 3 loại mã vạch EAN 13, Code 39 và Code 128 [7]
In 2016, the article "Robust Algorithm for Developing Barcode Recognition System using Webcam" by authors Sampada S Upasani, Adarsh N Khandate, Ankita U Nikhare, Rupali A Mange, and R V Tomekar presented a method for identifying and extracting the area containing barcodes, followed by barcode recognition.
Mục tiêu và nhiệm vụ nghiên cứu
Mục tiêu của chúng tôi là nhận dạng mã vạch EAN_13 với độ chính xác cao, bao gồm khả năng nhận diện mã vạch không nằm ngang, có góc lệch nhỏ hơn 90 độ, cũng như xử lý các mã vạch bị mờ và khôi phục thông tin từ mã vạch hư hỏng Qua đó, chúng tôi hướng tới việc tự động hóa quy trình quản lý sản phẩm, giảm thiểu sức lao động của con người mà vẫn đảm bảo hiệu quả công việc.
Trình bày tổng quan về mã vạch, các phương pháp biến đổi ảnh được thực hiện trong luận văn
Tìm góc nghiêng của mã vạch đối với những mã vạch nằm nghiêng theo phương pháp Radon và xoay mã vạch về phương ngang theo góc nghiêng tìm được
Xác định vùng ảnh có chứa mã vạch và tách lấy mã vạch ra khỏi ảnh gốc
Xử lý nâng cao chất lượng ảnh bằng bộ lọc trung bình kết hợp tăng cường ảnh bằng histogram
Xây dựng thuật toán phân vùng ảnh bằng phương pháp ngưỡng tự động dùng thuật toán Otsu
Xây dựng thuật toán khôi phục ảnh mã vạch bị đứt nét
Xây dựng thuật toán nhận dạng mã mã vạch để thu nhận thông tin về nguồn gốc xuất xứ của sản phẩm
Viết chương trình nhận dạng mã vạch trên phần mềm Matlab 2018a
Kết luận, đánh giá và phân tích kết quả đạt được.
Phương pháp và đối tượng nghiên cứu
Phương pháp phân tích: tìm hiểu phân tích và áp dụng các phương pháp xử lý ảnh vào ứng dụng nhận dạng mã vạch
Phương pháp tham khảo tài liệu là quá trình thu thập thông tin từ sách báo điện tử và các tài liệu liên quan đến đề tài nghiên cứu, nhằm tạo ra cơ sở dữ liệu cho mục tiêu nghiên cứu Những dữ liệu này không chỉ hỗ trợ xây dựng cơ sở lý thuyết mà còn đóng vai trò quan trọng trong việc phát triển ứng dụng.
Phương pháp thực nghiệm là một phần quan trọng trong nghiên cứu, bên cạnh khảo sát lý thuyết, nhằm kiểm chứng kết quả Đối với đề tài này, hiệu suất của kết quả thực nghiệm được khảo sát và đánh giá thông qua phần mềm Matlab R2018a.
1.4.2 Đối tượng nghiên cứu Đề tài nghiên cứu nhận dạng và xử lý mã vạch EAN_13 dạng 1D với tập dữ liệu gồm 260 ảnh có chứa mã vạch trong đó có 50 ảnh thẳng, 50 ảnh nghiêng có các góc nghiêng khác, 50 ảnh nghiêng cùng 1 mã vạch có góc nghiêng nhỏ hơn 90 0 , 60 ảnh cùng một mã vạch có kích thước mã vạch lần lượt là
1 so với khung ảnh, 25 ảnh mã vạch thẳng bị đứt nét, 25 ảnh mã vạch nghiêng bị đứt nét được chụp bằng máy ảnh.
Bố cục của luận văn
Với các yêu cầu và mục tiêu đề ra, thông qua đó đề tài được xây dựng bao gồm các chương sau:
Chương 1 Tổng quan Trình bày khái quát về tình hình nghiên cứu và ứng dụng của mã vạch, từ đó đề cập đến mục đích của đề tài
Chương 2 Cơ sở lý thuyết Trình bày khái quát về mã vạch, những vấn đề cơ bản về xử lý ảnh, các phương pháp xử lý ảnh
Chương 3 Nhận dạng mã vạch: Trình bày quá trình xử lý và nhận dạng, trong đó từng bước cụ thể sẽ được xử lý và hiển thị kết quả
Chương 4 Kết quả và thảo luận: Trình bày các kết quả đạt được và thảo luận các vấn đề liên quan
Chương 5 Kết luận và hướng phát triển: Tổng kết lại kết quả đạt được và hướng phát triển cho tương lai
Chương 2 CƠ SỞ LÝ THUYẾT
Tổng quan về mã vạch
2.1.1 Giới thiệu Ý tưởng về mã vạch được phát triển bởi Norman Joseph Woodland và Bernard Silver Năm 1984 khi đang là sinh viên ở trường Đại Học tổng hợp Drexel, họ đã phát triển ý tưởng này sau khi được biết mong muốn của một vị chủ tịch của một công ty buôn bán đồ ăn yêu cầu nhân viên quản lý là làm sao để có thể tự động kiểm tra toàn bộ quy trình [9]
Mã vạch có nhiều loại khác nhau, được phân loại dựa trên dung lượng và dạng thông tin (ký tự hoặc ký số) cũng như lĩnh vực sử dụng Các loại mã vạch phổ biến trên thị trường bao gồm UPC, EAN, Code 39, Codabar và Code 128.
Bảng 2.1: Mô tả các dạng mã vạch được sử dung trong các ngành nghề
Hình dạng Lĩnh vực Lý do
- Công nghệ thực phẩm, các nhà buôn bán lẽ
- Sử dụng cho các nước Bắc
- Cần mã số, không cần mã chữ, đáng tin cậy
- Cần mã kiểm tra lỗi
Chương 2 CƠ SỞ LÝ THUYẾT
- Như là UPC, được sử dụng cho các nước không thuộc Bắc
- Cần mã số, không cần mã chữ, đáng tin cậy
- Cần mã kiểm tra lỗi
- Cần mã hóa cả số lẫn chữ, an toàn, không cần mã kiểm tra
- Cần dung lượng 128 ký tự
2.1.3 Các phương pháp đọc mã vạch
Hiện nay, có nhiều thiết bị nhận dạng mã vạch với các phương pháp khác nhau, tất cả đều có khả năng nhận diện mã vạch Tuy nhiên, không có phương pháp nào được coi là tốt nhất, vì mỗi phương pháp đều có ưu và nhược điểm riêng Các phương pháp nhận dạng mã vạch này luôn được nghiên cứu và phát triển để cải thiện hiệu quả.
Máy quét CCD sử dụng dãy đèn LED được bố trí để phát ra ánh sáng thành vệt thẳng ngang qua bề mặt mã vạch Ánh sáng phản xạ từ mã vạch được thu nhận bởi tròng CCD, bộ phận chuyển đổi tín hiệu ánh sáng thành tín hiệu số Một trong những ưu điểm nổi bật của máy quét CCD là giá thành rẻ.
Nhược điểm: Loại này chỉ quét được mã vạch trên bề mặt phẳng với cự li
Chương 2 CƠ SỞ LÝ THUYẾT
Máy quét Laser hoạt động bằng cách phát ra tia laser đỏ qua một mắt đọc và sử dụng kính phản xạ để tạo vệt sáng quét mã vạch mà không cần tròng thu ánh sáng Ưu điểm của máy quét Laser bao gồm việc không cần tròng thu ánh sáng, khả năng quét nhạy bén với độ chính xác cao, có thể quét mã vạch trên bề mặt cong và thực hiện quét ở khoảng cách xa.
Nhược điểm: Mắt đọc không bền, sau một thời gian có thể bị yếu đi do hiện tượng “kén mã vạch”
Đọc mã vạch bằng phần mềm Camera
Việc sử dụng camera trong các ứng dụng trên điện thoại thông minh ngày càng trở nên phổ biến, đặc biệt trong các công việc cần xử lý nhiều mã vạch đồng thời Camera có độ phân giải cao và tính năng lấy nét tự động giúp thu nhận hình ảnh đầu vào một cách chính xác, từ đó phần mềm có thể xử lý hiệu quả Ưu điểm nổi bật của công nghệ này là mang lại cái nhìn trực quan cho người dùng khi đọc mã vạch, đồng thời cho phép xử lý nhiều mã vạch cùng lúc Hơn nữa, tính di động cao của các thiết bị nhỏ gọn giúp người dùng dễ dàng sử dụng trong nhiều tình huống khác nhau.
Nhược điểm của công nghệ này bao gồm việc bị ảnh hưởng bởi ánh sáng môi trường, yêu cầu độ phân giải và khả năng lấy nét của camera phải cao và phù hợp Ngoài ra, khả năng đọc mã vạch trên bề mặt cong và ở khoảng cách xa hoặc gần cũng là một thách thức.
Mã vạch EAN-13
2.2.1 Cấu trúc thông tin của mã vạch EAN 13
Mã vạch EAN 13 gồm 13 chữ số thập phân, được chia thành bốn phần chính, giúp lưu trữ và truyền đạt thông tin sản phẩm đến người tiêu dùng, nhà phân phối và quản lý Thông qua mã vạch này, thông tin về nơi sản xuất, nhà sản xuất và mã sản phẩm được truyền tải một cách hiệu quả.
Chương 2 CƠ SỞ LÝ THUYẾT
Mã quốc gia là ba chữ số đầu tiên của EAN-13 dùng để xác định thành viên của tổ chức GS1 mà nhà sản xuất đã tham gia
Mã nhà sản xuất là mã duy nhất do cơ quan GS1 cấp cho từng nhà sản xuất Tất cả sản phẩm của một công ty sẽ sử dụng cùng một mã sản xuất, đảm bảo tính nhất quán và dễ nhận diện.
Mã sản phẩm được xác định bởi nhà sản xuất, nằm ngay sau mã nhà sản xuất Tổng chiều dài của mã nhà sản xuất và mã sản phẩm phải đạt 9 hoặc 10 chữ số, tùy thuộc vào độ dài của mã quốc gia (2-3 chữ số).
Số kiểm tra là một chữ số bổ sung dùng để xác minh tính chính xác của mã vạch đã được quét Nó được tính theo quy tắc modulo 10, với trọng số 3 và 1 trong phép tính kiểm tra.
Hình 2.1: Cấu trúc thông tin mã vạch EAN_13
2.2.2 Quy tắc mã hóa EAN_13 dạng mã nhị phân Để mã hóa EAN_13 gồm mười ba chữ số thì các chữ số được chia thành 3 nhóm: nhóm một là chữ số đầu tiên, nhóm thứ hai là sáu chữ số tiếp theo, nhóm thứ ba là sáu chữ số cuối Nhóm thứ hai được mã hóa bằng cách sử dụng một mẫu mà mỗi chữ số có hai cách để mã hóa, một mang tính chẵn “ký hiệu là chữ G” và một mang tính lẻ “ký hiệu bằng chữ L” Nhóm thứ ba sáu chữ số cuối được mã hóa bằng một mẫu mà mỗi chữ số chỉ có duy nhất một cách để mã hóa “ký hiệu bằng chữ R”
Nhóm một chữ số đầu tiên trong EAN_13 không được mã hóa trực tiếp bằng
Chương 2 CƠ SỞ LÝ THUYẾT hóa một cách gián tiếp dựa vào tính chẳn hay tính lẻ của sáu chữ số của nhóm thứ hai theo theo quy định chung của mã vạch EAN_13
Hình 2.2: Các nhóm chữ số trong mã vạch EAN-13
Bảng 2.2: Quy tắc mã hóa chữ số đầu tiên của mã vạch EAN-13
Chương 2 CƠ SỞ LÝ THUYẾT
Hình 2.3: Tính chẳn, lẻ của mã vạch EAN_13
Bảng 2.3: Quy luật mã hóa số thập phân tương ứng mã nhị phân EAN 13
Chuỗi nhị phân trong mã R là các bit bổ sung của chuỗi nhị phân trong mã L, trong khi chuỗi nhị phân trong mã G là chuỗi nhị phân trong mã R nhưng theo thứ tự bit ngược.
Chương 2 CƠ SỞ LÝ THUYẾT
Theo quy tắc mã hóa và giải mã trong mã vạch EAN_13, mỗi chữ số thập phân được chuyển đổi sang mã nhị phân dựa trên vị trí của nó trong chuỗi số Chữ số thuộc nhóm sáu chữ số đầu tiên sẽ được mã hóa theo hai quy tắc: mã G cho các chữ số mang tính chẵn và mã L cho các chữ số mang tính lẻ Trong khi đó, nhóm sáu chữ số sau sẽ được mã hóa bằng mã R.
Hình 2.4: Mã nhị phân của EAN_13 (mã L)
Hình 2.5: Mã nhị phân của EAN_13 (mã G)
Hình 2.6: Mã nhị phân của EAN_13 (mã R)
Chương 2 CƠ SỞ LÝ THUYẾT
2.2.3 Quy tắc mã hóa EAN_13 dạng mã vạch
EAN-13 là một mã vạch gồm 13 chữ số, được phân chia thành ba nhóm: nhóm đầu tiên gồm một chữ số, nhóm thứ hai gồm sáu chữ số và nhóm cuối cùng cũng gồm sáu chữ số Mã vạch này được thể hiện bằng 95 vạch kẻ song song, cách đều nhau.
Ba vạch đầu tiên (hai vạch đen và một vạch trắng) để mã hóa điểm bắt đầu hay còn được xem là điểm bắt đầu
Từ vạch thứ tư đến vạch thứ bốn mươi lăm, bốn mươi hai vạch tiếp theo sẽ mã hóa sáu chữ số từ chữ số thứ hai đến chữ số thứ bảy của mã EAN 13 Các chữ số này bao gồm cả số chẵn và số lẻ, và tập hợp các tính chẵn, lẻ này sẽ mã hóa chữ số đầu tiên của EAN 13 thông qua phương pháp mã hóa gián tiếp.
Năm vạch tiếp theo, từ vạch bốn mươi sáu đến vạch năm mươi, bao gồm hai vạch đen và ba vạch trắng ở giữa, được sử dụng để mã hóa điểm trung tâm của mã vạch.
Bốn mươi hai vạch từ 51 đến 92 được sử dụng để mã hóa sáu chữ số cuối từ chữ số thứ tám đến chữ số thứ mười ba, trong đó chữ số thứ 13 đóng vai trò là chữ số kiểm tra.
Ba vạch cuối từ vạch chín mươi ba đến vạch chín mươi lăm (hai vạch đen và một vạch trắng) để mã hóa điểm kết thúc
Hình 2.7: Mô tả EAN_13 dạng mã vạch
Một vạch có thể là màu đen (1) hoặc màu trắng (0) Tối đa bốn vạch màu đen có thể được nhóm lại để tạo thành một vạch màu đen rộng, trong khi đó, tối đa bốn vạch màu trắng cũng có thể được nhóm lại để tạo thành một vạch màu trắng rộng.
Chương 2 CƠ SỞ LÝ THUYẾT Điểm bắt đầu và điểm kết thúc của một mã vạch EAN-13 được mã hóa là 101 Điểm đánh dấu trung tâm của mã vạch được mã hóa là 01010
Các chữ số trong nhóm sáu số bên trái được mã hóa để bắt đầu bằng vạch màu trắng và kết thúc bằng vạch màu đen, trong khi các chữ số trong nhóm bên phải được mã hóa để bắt đầu bằng vạch màu đen và kết thúc bằng vạch màu trắng.
Cuối cùng, sự kết hợp của các vạch màu đen và vạch màu trắng có độ rộng thay đổi mà mã hóa được mã vạch EAN-13 [10].
Những khái niệm về ảnh số
2.3.1 Điểm ảnh và ảnh Điểm ảnh: là một phần tử của một ảnh Một điểm ảnh tại tọa độ (x,y) sẽ có cường độ xám hoặc màu nhất định mà mắt người cảm nhận sự liên tục về không gian và mức xám hoặc màu của ảnh số gần như ảnh thật Ảnh: Tập hợp tất cả các điểm ảnh được gọi là một ảnh, ảnh được xem là một ma trận các điểm ảnh có dung lượng là M×N với M là số điểm ảnh theo hàng, N là điểm ảnh theo cột và được biểu diễn dưới dạng ma trận như sau:
Mật độ điểm ảnh là yếu tố quyết định độ phân giải của một bức ảnh Độ phân giải cao hơn đồng nghĩa với việc bức ảnh có nhiều điểm ảnh hơn, giúp nội dung thông tin trở nên chi tiết và sắc nét hơn Vì vậy, một bức ảnh có cùng kích thước vật lý sẽ trở nên rõ ràng và chi tiết hơn khi có độ phân giải cao.
Một ảnh màu thường được tạo thành từ nhiều pixel mà trong đó mỗi pixel được
Chương 2 CƠ SỞ LÝ THUYẾT xanh lá (Green) và màu xanh dương (Blue) tại một vị trí cụ thể Các kênh màu Red, Green và Blue trong không gian màu RGB là những màu cơ bản mà từ đó có thể tạo ra các màu khác nhau bằng phương pháp pha trộn
Việc tính toán dung lượng của ảnh màu được biểu diễn như sau:
Crgb là dung lượng của ảnh (tính theo byte) m là kích thức chiều ngang của ảnh n là kích thước chiều dọc của ảnh m×n là tổng số pixel của ảnh
Ảnh đen trắng, hay còn gọi là ảnh xám, là một ma trận điểm ảnh trong đó mỗi điểm ảnh được biểu diễn bằng một giá trị tương ứng với mức xám Các mức xám này dao động từ màu đen đến màu trắng, với giá trị từ 0 đến 255.
2.3.5 Ảnh nhị phân Ảnh nhị phân là ảnh chỉ sử dụng hai trạng thái 0 hoặc 1 để biểu diễn cho một pixcel, trong đó trạng thái 0 tương ứng là màu đen, trạng thái 1 tương ứng là màu trắng Do đó ảnh nhị phân thường không được sử dụng trong thực tế nhưng ảnh nhị phân được ứng dụng nhiều trong xử lý ảnh.
Lọc ảnh
Lọc ảnh là bước quan trọng trong xử lý ảnh, giúp loại bỏ các thành phần không cần thiết và giữ lại những yếu tố chính cần xử lý Tùy thuộc vào mục đích và nhu cầu, có nhiều loại bộ lọc khác nhau để lựa chọn phù hợp.
Chương 2 CƠ SỞ LÝ THUYẾT
2.4.1 Lọc trong miền không gian
Lọc không gian tuyến tính cho một ảnh f kích thước M×N với mặt nạ lọc w có kích thước m×n
Một số bộ lọc được biểu diễn dưới dạng toán học
2.4.2 Lọc trong miền tần số
Phép biến đổi Fourier là công cụ quan trọng trong xử lý tín hiệu trên miền tần số, được ưa chuộng nhờ tính phổ biến và dễ sử dụng Một trong những ứng dụng nổi bật của nó là lọc tín hiệu trong miền tần số, nơi ảnh được xem như một tín hiệu hai chiều với các thành phần tần số khác nhau Các bước cơ bản để thực hiện lọc trong miền tần số được minh họa trong hình 2.8.
Chương 2 CƠ SỞ LÝ THUYẾT
Hình 2.8: Sơ đồ khối các bước thực hiện lọc ảnh trong miền tần số
Bộ lọc thông thấp lý tưởng (Ideal LowPass Filter – ILPF) có hàm truyền như sau:
Với D0 là giá trị không âm, D(u,v) đại diện cho khoảng cách từ điểm (u,v) đến trung tâm bộ lọc Các điểm có khoảng cách D(u,v) = D0 tạo thành một hình tròn, tuy nhiên, bộ lọc này không thực tế do các yếu tố khách quan.
Bộ lọc thông cao, khác với bộ lọc thông thấp làm mờ ảnh, thường được sử dụng để tăng cường độ sắc nét của hình ảnh bằng cách loại bỏ các thành phần tần số thấp thông qua biến đổi Fourier Để tạo ra bộ lọc thông cao từ bộ lọc thông thấp với hàm truyền Hlp(u,v), chúng ta có thể áp dụng công thức đơn giản.
Dò biên
Dò biên là công cụ quan trọng trong xử lý ảnh, giúp giảm khối lượng dữ liệu cần tính toán bằng cách giữ lại thông tin cần thiết Phát hiện biên của vật thể là một phương pháp hiệu quả để xác định các vùng khác biệt trong ảnh, vì hệ thống thị giác của con người rất nhạy cảm với biên và sự thay đổi gradient.
Chương 2 CƠ SỞ LÝ THUYẾT
2.5.1 Tách biên theo đạo hàm bậc 1
Có hai phương pháp chính để tách biên dựa trên đạo hàm bậc một: phương pháp đầu tiên là tạo gradient từ hai hướng trực giao trong ảnh, trong khi phương pháp thứ hai sử dụng một tập hợp đạo hàm có hướng.
Gradient biên của một ảnh G(j,k) được biểu diễn theo gradient hàng GR(j,k) và gradient cột GC(j,k) như trong hình Biên độ gradient trong không gian được cho bởi:
𝐺(𝑗, 𝑘) = [[𝐺 𝑅 (𝑗, 𝑘)] 2 + [𝐺 𝐶 (𝑗, 𝑘] 2 ] 1/2 (2.10) Hướng theo không gian của gradient ứng với trục ngang là:
Phương pháp đơn giản nhất để tính gradient trong ảnh rời rạc là tìm sự khác nhau giữa các pixel theo hàng và cột Gradient theo hàng là
Gradient đường chéo có thể tính bằng cách tìm sự khác nhau của các cặp đường chéo Đây là phép toán cơ bản của sai phân chéo Roberts
Tính theo biên độ ta có
Và theo căn bậc hai
Chương 2 CƠ SỞ LÝ THUYẾT
Mặc dù biên dốc xác định được đường biên của đối tượng nhưng phương pháp này cũng còn rất nhạy với sự thay đổi độ chói nhỏ trong ảnh [11]
2.5.2 Tách biên theo đạo hàm bậc 2
Phương pháp phát hiện biên sử dụng đạo hàm bậc hai dựa trên các dạng vi phân bậc hai để làm nổi bật biên Một biên được xác định khi có sự thay đổi không gian theo đạo hàm bậc hai, trong đó các phương pháp như Laplace và đạo hàm bậc hai trực tiếp được nghiên cứu và áp dụng.
Biến đổi Laplace của một ảnh F(x,y) trong miền liên tục được định nghĩa
𝐺(𝑥, 𝑦) = −∇ 2 {𝐹(𝑥, 𝑦)} (2.19) Trong đó, toán tử Laplace là
Dạng Laplace 4 điểm này có thể biển diễn theo phép chập
Phương pháp Laplace 4 điểm được chuẩn hóa nhằm tạo ra độ lợi trung bình cho các điểm ảnh có trọng số dương và âm trong ma trận 3×3 của các điểm ảnh liền kề.
Chương 2 CƠ SỞ LÝ THUYẾT
Bộ tách biên LOG (Laplacian of Gaussian Detector)
Trong đó, r² = x² + y² và σ đại diện cho độ lệch chuẩn, hàm này có tác dụng làm phẳng ảnh, dẫn đến hiện tượng mờ ảnh Mức độ mờ của ảnh phụ thuộc vào giá trị của độ lệch chuẩn Laplace của hàm này cũng được đề cập.
Việc thực hiện LoG tạo hai hiệu ứng: làm phẳng ảnh và tính Laplace.
Biến đổi Radon
Biến đổi Radon của một ảnh được xác định bằng tổng biến đổi Radon của từng pixel trong ảnh Phương pháp này được sử dụng để chuyển đổi các ảnh trong không gian hai chiều thành miền Radon, với mỗi đường thẳng trong ảnh tương ứng với một điểm trong miền Radon.
Công thức toán học của biến đổi Radon
Chương 2 CƠ SỞ LÝ THUYẾT
Phương trình mô tả việc tính toán tích phân dọc theo đường thẳng s trong ảnh, với ρ là khoảng cách từ đường thẳng đến gốc tọa độ O và θ là góc lệch so với phương ngang Biến đổi Radon thực hiện việc tính toán tích phân đường hình chiếu của ma trận ảnh theo các hướng xác định bằng các tia song song, xoay hệ trục tọa độ quanh O với các giá trị θ khác nhau, và chiều rộng của các tia được quy định là 1 pixel.
Tăng cường ảnh
2.7.1 Mở rộng độ tương phản Độ tương phản biểu diễn sự thay đổi độ sáng so với nền Những ảnh có độ tương phản thấp là kết quả của quá trình chụp ảnh trong môi trường thiếu ánh sáng, hay chất lượng của thiết bị Mở rộng độ tương phản là quá trình làm tăng khoảng giá trị mức xám trong ảnh nhằm giúp ảnh hiển thị tốt hơn [12]
Cách biến đổi tuyến tính
Với α, β, γ xác định độ tương phản tương đối, L là số mức xám tối đa của một ảnh
2.7.2 Phương pháp cân bằng lược đồ xám
Hàm biến đổi mức xám s=T(r) với 0 ≤ r ≤ L -1 luôn tạo ra giá trị mức xám ngõ ra s cho mỗi giá trị mức xám ngõ vào r Giả định rằng hàm T(r) tăng đơn điệu trong khoảng 0 ≤ r ≤ L -1, ta có 0 ≤ T(r) ≤ L -1, từ đó suy ra rằng r = T -1 (s) với 0 ≤ s ≤ L -1 Đặt p(r) và p(s) là các hàm mật độ xác suất tương ứng, nếu biết p(r) và T(r).
Chương 2 CƠ SỞ LÝ THUYẾT dr r ds p s p s ( ) r ( ) (2.30)
Hàm chuyển đổi tổng quát được đưa ra có dạng
Từ phương trình trên ta suy ra được
Với MN là tổng số điểm ảnh và nk là số điểm ảnh có giá trị rk, L đại diện cho số lượng mức xám có thể biểu diễn Hàm chuyển đổi rời rạc được xác định theo công thức cụ thể.
Phân đoạn ảnh
Trong một bức ảnh, có nhiều thành phần khác nhau với các thuộc tính và cường độ mức xám khác nhau Phân đoạn ảnh là quá trình tách bức ảnh thành các vùng có thuộc tính tương đồng.
2.8.1 Phương pháp phân đoạn theo biên độ chói
Là phương pháp phân đoạn ảnh dựa trên ngưỡng của độ chói hay các thành phần màu trong ảnh
Chương 2 CƠ SỞ LÝ THUYẾT
Giả sử ảnh f(x,y) là hình ảnh của một vật thể sáng trên nền tối, giá trị cường độ pixel của vật thể và nền được chia thành hai nhóm Một phương pháp để tách vật thể khỏi nền là chọn một ngưỡng T, từ đó bất kỳ điểm nào (x,y) với f(x,y) ≥ T sẽ được xác định là điểm vật thể, trong khi những điểm còn lại sẽ là điểm nền Do đó, ảnh được phân ngưỡng g(x,y) được định nghĩa dựa trên tiêu chí này.
Các điểm được đánh nhãn 1 biểu thị cho các vật thể, trong khi nhãn 0 đại diện cho nền Phương pháp này sử dụng ngưỡng toàn cục, trong đó giá trị ngưỡng T phụ thuộc vào mức xám.
2.8.2 Phương pháp phân đoạn theo vùng
Phương pháp phân đoạn theo vùng dựa trên thực tế không xem xét từng điểm ảnh như một phần của đối tượng hay giá trị mức xám của nó Thay vào đó, chúng ta kết hợp các cách kết nối giữa các điểm ảnh để xác định những điểm ảnh nào thuộc về cùng một vùng.
Phương pháp phân đoạn theo vùng trong toán học là một kỹ thuật hệ thống nhằm chia một bức ảnh I thành n vùng khác nhau Trong đó, R đại diện cho vùng ảnh hiện tại và quá trình phân đoạn ảnh sẽ thực hiện việc chia R thành các vùng nhỏ hơn, được ký hiệu là R1, R2, ,Rn.
Ri là một vùng kết nối; i = 1, 2, , n
Ri Rj = với mọi i và j sao cho i ≠ j
P(Ri Rj) = FALSE cho bất kỳ vùng liền kề Ri và Rj Ở đây P(Ri) là tiền đề logic định nghĩa trên các điểm trong tập Ri Điều kiện thứ
Chương 2 CƠ SỞ LÝ THUYẾT tiêu đề Điều kiện thứ ba cho biết tính không kết nối giữa các vùng Điều kiện thứ tư liên quan đến tính chất phải được thỏa mãn trong vùng phân đoạn, tức là P(Ri) TRUE nếu tất cả điểm ảnh trong Ri có cùng mức xám Điều kiện cuối cùng cho biết các vùng liền kề là khác nhau theo tiền đề P [14].
NHẬN DẠNG MÃ VẠCH
Sơ đồ khối tổng quát nhận dạng mã vạch
Đề tài tập trung vào việc nhận dạng mã vạch từ hình chụp, bao gồm các thách thức như mã vạch nằm ngang, ảnh bị mờ, chói do ánh sáng, mã vạch nghiêng với góc α < 90 độ, và các kích thước khác nhau Để giải quyết vấn đề này, phương pháp xử lý ảnh sẽ được áp dụng nhằm xoay mã vạch về phương ngang, tăng cường ảnh mờ, khôi phục ảnh bị đứt nét, và giải mã thông tin đã mã hóa trên hàng hóa Đặc biệt, nghiên cứu sẽ tập trung vào việc nhận dạng và giải mã thông tin từ mã vạch EAN-13 Hệ thống nhận dạng mã vạch sẽ được xây dựng theo các bước cụ thể được trình bày trong hình 3.1.
Hình 3.1: Sơ đồ khối các bước nhận dạng mã vạch
Chương 3 NHẬN DẠNG MÃ VẠCH
Xây dựng tập dữ liệu
Dữ liệu hình ảnh trong nghiên cứu bao gồm các mã vạch được chụp bằng máy ảnh trong điều kiện tự nhiên, với các dạng mã vạch có thể nằm thẳng hoặc nghiêng với các góc nhỏ hơn 90 độ Hình ảnh có thể gặp phải tình trạng mờ hoặc đứt nét do tác động từ môi trường bên ngoài, chẳng hạn như trong quá trình lưu thông, vận chuyển, hoặc do điều kiện thời tiết.
Để đánh giá hiệu quả của hệ thống nhận dạng mã vạch, tác giả đã xây dựng một tập dữ liệu gồm 260 ảnh mã vạch Tập dữ liệu này bao gồm 50 ảnh mã vạch nằm ngang, 50 ảnh mã vạch nằm nghiêng, 50 ảnh cùng một mã vạch với các góc nghiêng khác nhau, 60 ảnh với kích thước mã vạch đa dạng, cùng 25 ảnh mã vạch thẳng bị đứt nét và 25 ảnh mã vạch nghiêng bị đứt nét.
Bảng 3.1: Các dạng ảnh mã vạch nằm thẳng được sử dụng trong nhận dạng
Chương 3 NHẬN DẠNG MÃ VẠCH
Bảng 3.2: Các dạng mã vạch nằm nghiêng được sử dụng
Bảng 3.3: Mã vạch có kích thước khác nhau
Chương 3 NHẬN DẠNG MÃ VẠCH
Bảng 3.4: Ảnh mã vạch bị đứt nét được sử dụng trong nhận dạng.
Tiền xử lý
Tiền xử lý ảnh là bước thiết yếu trong quy trình xử lý ảnh, quyết định chất lượng dữ liệu ảnh trước khi đưa vào hệ thống nhận dạng và giải mã Chất lượng ảnh đầu vào có thể bị ảnh hưởng bởi nhiều yếu tố như thiết bị thu thập, điều kiện ánh sáng và sự can thiệp của con người Nếu không thực hiện tiền xử lý đúng cách, hệ thống nhận dạng sẽ cho kết quả không chính xác Do đó, việc thực hiện tiền xử lý ảnh một cách hiệu quả sẽ nâng cao độ chính xác trong quá trình nhận dạng.
Tác giả đã xây dựng khối tiền xử lý ảnh trong luận văn nhận dạng mã vạch, bao gồm các bước như thay đổi kích thước ảnh, chuyển đổi ảnh màu sang ảnh đơn sắc, và lọc làm mịn ảnh bằng bộ lọc trung bình Ngoài ra, quá trình còn bao gồm việc dò biên ảnh theo phương pháp Canny, tìm góc nghiêng của mã vạch thông qua biến đổi Radon, và xoay mã vạch về phương ngang Các bước tiếp theo là tách mã vạch ra khỏi ảnh góc, tăng cường ảnh, phân đoạn ảnh và khôi phục thông tin.
Chương 3 NHẬN DẠNG MÃ VẠCH
3.3.1 Sơ đồ khối tổng quát tiền xử lý nhận dạng mã vạch Đọc ảnh mã vạch Biến đổi kích thước ảnh Biến đổi ảnh đơn sắc
Xử lý mịn ảnh bằng bộ lọc trung bình
Dò biên theo phương pháp Canny Tìm góc nghiêng và xoay ảnh Tách mã vạch ra khỏi ảnh gốc
Tăng cường ảnhPhân đoạn ảnh theo pp OtsuKhôi phục thông tin ảnh gốc
Chương 3 NHẬN DẠNG MÃ VẠCH
3.3.2 Thay đổi kích thước ảnh
Để tối ưu hóa hiệu suất hệ thống nhận dạng, việc xử lý ảnh có dung lượng và kích thước lớn cần được thực hiện một cách cẩn thận Nếu không định dạng lại kích thước ảnh trước khi đưa vào hệ thống, sẽ tiêu tốn nhiều tài nguyên và thời gian để thu được kết quả Do đó, các ảnh ngõ vào cần được điều chỉnh kích thước về dạng mặc định (480×640) mà vẫn đảm bảo không mất đi các đặc trưng quan trọng của ảnh.
Hình 3.3: Ảnh gốc có kích thước
Hình 3.4: Ảnh được thay đổi về kích thước (480×640)
Hình 3.5: Ảnh gốc có kích thước
Hình 3.6: Ảnh được thay đổi về kích thước (480×640)
Hình 3.7: Ảnh gốc có kích thước
Hình 3.8: Ảnh được thay đổi về kích thước (480×640)
Chương 3 NHẬN DẠNG MÃ VẠCH
Trong không gian màu, mỗi điểm ảnh được tạo thành từ sự kết hợp của ba màu cơ bản là Đỏ (Red), Xanh lá (Green) và Xanh dương (Blue) Cường độ sáng của ba màu này quyết định màu sắc cuối cùng của điểm ảnh Để chuyển đổi một điểm ảnh màu RGB (Imàu) sang ảnh xám (Ixám), ta sử dụng một công thức nhất định.
Các trọng số α, β, γ được thiết lập tương ứng với các màu đỏ, màu xanh lá, màu xanh dương Theo tiêu chuẩn NTSC chúng ta có các trọng số
Hình 3.9: Ảnh màu có kích thước
Hình 3.10: Ảnh xám có kích thước
Hình 3.11: Ảnh màu có kích thước
Hình 3.12: Ảnh xám có kích thước
Chương 3 NHẬN DẠNG MÃ VẠCH
3.3.4 Xử lý làm mịn ảnh
Nhiễu là yếu tố không mong muốn trong xử lý hình ảnh, gây giảm độ chính xác của hệ thống và xuất phát từ nhiều nguyên nhân khác nhau Để giảm nhiễu, các phương pháp lọc ảnh với các mặt nạ lọc phù hợp cần được áp dụng Lọc trung bình là một kỹ thuật trong đó mỗi điểm ảnh được tính toán bằng giá trị trung bình của các điểm ảnh lân cận, dẫn đến ảnh sau xử lý trở nên mượt mà hơn nhưng cũng làm giảm độ sắc nét Mặc dù phương pháp này giúp loại bỏ nhiễu, nó cũng có thể làm mờ các biên ảnh, ảnh hưởng đến các bước xử lý tiếp theo Do đó, việc lựa chọn kích thước cửa sổ lọc là rất quan trọng, và tác giả đã chọn bộ lọc trung bình kích thước 3×3 để tối ưu hóa việc giảm nhiễu mà vẫn bảo toàn được các biên ảnh.
Lọc trung bình với f(x,y) là ảnh đầu vào và K là số pixcel trong cửa sổ lọc w(x,y) có kích thước N×N được xác định bởi biểu thức sau:
Hình 3.13: Ảnh trước khi qua bộ lọc trung bình
Hình 3.14: Ảnh sau khi qua bộ lọc trung bình
Chương 3 NHẬN DẠNG MÃ VẠCH
Hình 3.15: Ảnh xám trước khi qua bộ lọc trung bình
Hình 3.16: Ảnh sau khi qua bộ lọc trung bình
3.3.5 Dò biên theo phương pháp Canny
Một điểm ảnh được xem là biên khi có sự thay đổi đột ngột về cường độ mức xám, và khi tập hợp các điểm ảnh biên lại, ta sẽ hình thành đường biên ảnh Biên ảnh đóng vai trò quan trọng trong xử lý ảnh, vì nhiều phương pháp phân đoạn ảnh chủ yếu dựa vào đường biên này Có nhiều phương pháp dò biên như Sobel, Prewitt, Roberts và Canny, và lựa chọn phương pháp phù hợp phụ thuộc vào đối tượng xử lý cũng như mục đích sử dụng.
Phương pháp dò biên Canny nổi bật với khả năng tối ưu hóa tín hiệu trên nền nhiễu, giúp nâng cao độ chính xác trong việc phát hiện biên Phương pháp này giảm thiểu số điểm nằm trên đường biên, tạo ra các đường biên mỏng và rõ nét Quy trình dò biên Canny bao gồm nhiều bước quan trọng để đạt được hiệu quả cao trong việc xác định biên.
Dùng bộ lọc Gauss để thu được ảnh mịn hơn
Tính toán Gradient cục bộ của biên độ và hướng được tính
Chương 3 NHẬN DẠNG MÃ VẠCH
Để tìm điểm ảnh có biên độ lớn nhất, sử dụng phương pháp nonmaximal suppression Các điểm ảnh đỉnh được phân chia thành hai ngưỡng T1 và T2, với điều kiện T1 < T2 Những điểm ảnh có giá trị lớn hơn T2 được gọi là 'strong', trong khi các điểm ảnh nằm trong khoảng giữa T1 và T2 được gọi là 'weak'.
Liên kết các điểm’ weak’ có 8 kết nối đến điểm ‘strong’ là đường biên ảnh
Phương pháp dò biên Canny nổi bật với khả năng phát hiện các biên yếu và ít bị ảnh hưởng bởi nhiễu Tuy nhiên, việc chọn ngưỡng không phù hợp có thể dẫn đến kết quả không mong muốn: ngưỡng quá thấp tạo ra nhiều đường biên giả, trong khi ngưỡng quá cao có thể làm mất đi những đường biên mờ, dẫn đến hiện tượng đứt nét.
Hình 3.17: Kết quả dò biên với các ngưỡng khác nhau
Trong hệ thống nhận dạng mã vạch, để xác định đường biên của các vạch đen và trắng, tác giả đã chọn ngưỡng mặc định là 0.8 nhằm loại bỏ những thành phần biên không mong muốn.
Chương 3 NHẬN DẠNG MÃ VẠCH
Hình 3.18: Ảnh xám trước khi dò biên Hình 3.19: Ảnh sau khi dò biên Canny
Hình 3.20: Ảnh xám trước khi dò biên Hình 3.21: Ảnh sau khi dò biên Canny 3.3.6 Xoay mã vạch
Để đảm bảo quá trình nhận dạng mã vạch hiệu quả, các ảnh chứa mã vạch bị nghiêng cần được xoay về phương ngang trước khi tiến hành giải mã Nếu không, kết quả nhận dạng sẽ không chính xác.
Để xoay mã vạch về phương ngang, trước tiên cần xác định góc nghiêng của mã vạch, vì mỗi mã vạch bị nghiêng sẽ có góc nghiêng khác nhau Phương pháp biến đổi ảnh sang miền Radon được áp dụng để xác định góc nghiêng của mã vạch.
Chương 3 NHẬN DẠNG MÃ VẠCH
Biến đổi ảnh sang miền Radon là một quá trình chuyển đổi hình ảnh trong không gian hai chiều, trong đó mỗi đường thẳng trong ảnh tương ứng với một điểm trong miền Radon.
Công thức toán học của biến đổi Radon
Hình 3.22: Ảnh có mã vạch bị nghiêng bên trái
Hình 3.23: Ảnh có mã vạch được xoay về phương ngang
Hình 3.24: Ảnh có mã vạch bị nghiêng bên phải
Hình 3.25: Ảnh có mã vạch bị xoay về phương ngang
Chương 3 NHẬN DẠNG MÃ VẠCH
Để xử lý mã vạch, cần xác định và tách mã vạch ra khỏi hình ảnh gốc Mục tiêu là phát hiện nhanh chóng và chính xác vị trí của mã vạch, tác giả đã thực hiện các bước xác định vị trí mã vạch.
Dựa vào sự biến thiên của các vạch màu đen và trắng trong mã vạch, chúng ta có thể xác định vị trí của mã vạch Ảnh đầu vào được chuyển đổi sang ảnh nhị phân với ngưỡng mặc định, sau đó các thành phần trong ảnh sẽ được đánh dấu theo các điểm đồng mức Cuối cùng, tập hợp các thành phần có diện tích đồng mức lớn nhất sẽ được xác định là vị trí của mã vạch.
Hình 3.26: Các vùng đồng mức b Tách lấy mã vạch
Giải mã mã vạch
Sau khi tiền xử lý, ảnh mã vạch được biến đổi kích thước về dạng mặc định, lọc làm mịn bằng bộ lọc trung bình, và xác định góc nghiêng thông qua phương pháp chuyển ảnh sang miền Radon Tiếp theo, ảnh được xoay theo góc nghiêng đã tìm được Dựa vào sự thay đổi liên tục của các vạch đen và trắng, gradient được tính toán để xác định vùng chứa mã vạch, tách mã vạch ra khỏi ảnh gốc Ảnh sau đó được tăng cường bằng phương pháp cân bằng Histogram, phân đoạn và khôi phục thông tin, trước khi được đưa vào khối giải mã để nhận dạng mã vạch.
Chương 3 NHẬN DẠNG MÃ VẠCH Ảnh mã vạch
Xác định chuỗi thông tin
Giải mã chuỗi thông tin
Hình 3.47: Các bước giải mã mã vạch
3.4.1 Xác định chuỗi thông tin Để xác định chuỗi thông tin cần phải xác định được 59 vạch cần thiết của mã vạch gồm 30 vạch màu đen, 29 vạch màu trắng bằng phương pháp zero-crossing, quy trình thực hiện sẽ được tiến hành theo các bước như hình 3.44
Phương pháp Zero-Crossing chỉ thực hiện một lần quét ngang để đếm số lượng vạch đen và trắng trong mã vạch, dẫn đến độ tin cậy về độ chính xác của kết quả không cao Để cải thiện độ tin cậy và tính chính xác của hệ thống nhận dạng, cần áp dụng phương pháp quét nhiều đường thay vì chỉ quét một đường.
Xác định đường cắt ngang trung bình của mã vạch Tìm mã vạch cần xử lý
Xác định số pixcel của một vạch
Chương 3 NHẬN DẠNG MÃ VẠCH
Mã vạch EAN-13 có cấu trúc bao gồm 3 vạch bắt đầu, 42 vạch cho sáu chữ số bên trái, 5 vạch cho vị trí trung tâm, 42 vạch cho sáu chữ số bên phải, và 3 vạch kết thúc Mỗi chữ số trong mã vạch được tạo thành từ 7 vạch đen hoặc trắng, tương ứng với giá trị nhị phân Do đó, trong tổng số 95 vạch, chỉ cần xử lý các vạch quan trọng và loại bỏ những vạch không cần thiết, dẫn đến việc cần xây dựng một mảng mới để đọc mã vạch hiệu quả.
Sơ đồ của khối đọc mã vạch trong luận văn này như sau:
Hình 3.49: Sơ đồ của khối đọc mã vạch
Nguyên lý của khối đọc mã vạch:
Xây dựng chuỗi dữ liệu mẫu dựa trên cấu trúc mã vạch EAN 13 bao gồm 3 vạch bắt đầu, 42 vạch cho sáu chữ số bên trái, 5 vạch cho vị trí trung tâm, 42 vạch cho sáu chữ số bên phải, và 3 vạch kết thúc Mỗi chữ số trong mã vạch được tạo thành từ 7 vạch đen hoặc trắng, tương ứng với một chuỗi giá trị nhị phân Chuỗi giá trị nhị phân này được chuyển đổi thành giá trị thập phân theo quy định của mã vạch EAN 13 Để xác định chuỗi dữ liệu chứa thông tin của mã vạch, cần khôi phục thông tin từ ảnh nhị phân đầu vào.
Chương 3 NHẬN DẠNG MÃ VẠCH định, tính toán số vạch đen và vạch trắng và căn cứ vào 3 vạch bắt đầu, 5 vạch trung tâm, 3 vạch kết thúc theo quy định mã hóa EAN 13 như hình 2.7 mà ta xác định được chuỗi thông tin cần xử lý của mã vạch
Để xác định mã vạch EAN 13, trước tiên cần xác định số pixel của một vạch trong tổng số 95 vạch theo quy tắc mã hóa Tiếp theo, phân loại vạch đen và vạch trắng thành mức logic 0 hoặc 1 Sau khi so sánh với bảng mẫu mã hóa EAN 13, ta sẽ nhận được các số thập phân tương ứng Cuối cùng, dựa vào tính chẵn lẻ của sáu chữ số đầu, ta có thể xác định chữ số đầu tiên của mã vạch EAN 13.
Quá trình giải mã hoàn thành, xuất thông tin yêu cầu
Chương 4 KẾT QUẢ VÀ THẢO LUẬN
Kết quả và thảo luận cho thấy hệ thống đã được đánh giá qua việc nhận dạng 260 ảnh chứa mã vạch, được phân chia thành 5 trường hợp cụ thể Trong đó, có 50 ảnh thẳng với các mã vạch khác nhau, 50 ảnh có mã vạch bị nghiêng, và 60 ảnh thẳng với tỷ lệ kích thước ảnh khác nhau.
1 và 50 ảnh mã vạch có các vạch trắng và vạch đen bị đứt nét cần khôi phục lại như ban đầu.
Thí nghiệm 1
Dữ liệu đầu vào bao gồm 50 bức ảnh mã vạch rõ nét, nằm ngang và đa dạng về các loại mã vạch, được chụp từ máy ảnh trong điều kiện ánh sáng tự nhiên bình thường.
Hình 4.1: Một số hình ảnh mẫu có mã vạch nằm ngang
Chương 4 KẾT QUẢ VÀ THẢO LUẬN
Hình 4.2: Ảnh mã vạch sau tiền xử lý
Trong trường hợp ảnh mã vạch nằm ngang, rõ nét thì kết quả nhận dạng và giải mã đúng thông tin đạt 96%
Hình 4.3: Ảnh gốc Hình 4.4: Ảnh mã vạch bị xoay đứng
Hình 4.5: Ảnh gốc Hình 4.6: Ảnh mã vạch bị xoay đứng
Kết quả nhận dạng mã vạch bị sai thường xảy ra khi chuyển đổi ảnh sang miền Radon, đặc biệt khi mã vạch bị xoay 90 độ, dẫn đến việc không thể nhận dạng Để khắc phục tình trạng này, cần áp dụng một phương pháp xoay ảnh hiệu quả.
Chương 4 KẾT QUẢ VÀ THẢO LUẬN
Bảng 4.1: Kết quả nhận dạng mã vạch nằm ngang
Tổng số Nhận dạng đúng Nhận dạng sai
Thí nghiệm 2
Dữ liệu đầu vào bao gồm 50 hình ảnh sắc nét chứa mã vạch nghiêng sang trái và phải, với các góc nghiêng đa dạng, được thu thập trong điều kiện ánh sáng bình thường.
Hình 4.7: Một số ảnh mã vạch nằm nghiêng
Chương 4 KẾT QUẢ VÀ THẢO LUẬN
Trong trường hợp mã vạch rõ nét và nằm nghiêng thì kết quả nhận dạng và giải mã đạt 94%
Bảng 4.2: Trích một số ảnh mã vạch xoay bị sai
Kết quả nhận dạng sai mã vạch có thể xảy ra khi mã vạch bị xoay 90 độ, tương tự như trường hợp 1 Bên cạnh đó, một số mã vạch có thể được xoay ngang, nhưng với cấu trúc các đường nghiêng song song, dẫn đến việc sau khi trải qua giai đoạn tiền xử lý, kết quả thu được sẽ là các đường thẳng gãy khúc.
Bảng 4.3: Kết quả nhận dạng mã vạch nằm nghiêng
Tổng số ảnh Nhận dạng đúng Nhận dạng sai
Thí nghiệm 3
Tâp dữ liệu 50 ảnh ngõ vào là cùng một ảnh có mã vạch được thu thập với các
Chương 4 KẾT QUẢ VÀ THẢO LUẬN
Hình 4.9: Tập ảnh ngõ vào có góc nghiêng nhỏ hơn 90 0
Hình 4.10: Ảnh mã vạch có góc nghiêng nhỏ hơn 90 0 sau khi tiền xử lý
Trong trường hợp cùng 1 mã vạch có các góc nghiêng khác nhau thì kết quả nhận dạng và giải mã đúng thông tin đạt 94%
Chương 4 KẾT QUẢ VÀ THẢO LUẬN
Hình 4.11: Ảnh gốc nghiêng bên trái
Hình 4.12: Ảnh mã vạch sau khi xoay
Hình 4.13: Ảnh phân đoạn Otsu
Hình 4.14: Ảnh gốc nghiêng bên phải
Hình 4.15: Ảnh mã vạch sau khi xoay
Hình 4.16: Ảnh phân đoạn Otsu
Mã vạch không thể nhận dạng và giải mã thường là do chúng bị xoay 90 độ hoặc có cấu trúc vạch đen và trắng không đồng nhất, tạo thành các đường thẳng gãy khúc Điều này dẫn đến việc không thể khôi phục thông tin từ mã vạch.
Hình 4.17: Mã vạch là những đường thẳng gãy khúc
Bảng 4.4: Bảng kết quả mã vạch nằm nghiêng cùng một loại
Tổng số ảnh Nhận dạng đúng Nhận dạng sai
Chương 4 KẾT QUẢ VÀ THẢO LUẬN
Hình 4.18: Biểu đồ kết quả nhận dạng mã vạch.
Thí nghiệm 4
Tập dữ liệu là 60 ảnh ngõ vào cùng 1 mã vạch có tỉ lệ lần lượt là
9 1 so với kích thước ảnh
TH1 TH2 TH3 Đồ thị nhận dạng mã vạch Đúng Sai
Chương 4 KẾT QUẢ VÀ THẢO LUẬN
Hình 4.19: Mã vạch có kích thước khác nhau
Hình 4.20: Ảnh mã vạch có kích thước 1 4khung ảnh sau tiền lý
Bảng 4.5: Kết quả nhận dạng mã vạch có kích thước
Tổng số ảnh Nhận dạng đúng Nhận dạng sai
Bảng 4.6: Kết quả nhận dạng mã vạch có kích thước
Tổng số ảnh Nhận dạng đúng Nhận dạng sai
Chương 4 KẾT QUẢ VÀ THẢO LUẬN
Bảng 4.7: Kết quả nhận dạng mã vạch có kích thước
Tổng số ảnh Nhận dạng đúng Nhận dạng sai
Trong trường hợp mã vạch có các kích thước khác nhau: Đối với mã vạch có kích thước tỉ lệ là
4 so với kích thước ảnh và tỉ lệ là
1 so kích thước ảnh thị sau khi thực nghiệm thì kết quả thu được đạt 100% Đối với mã vạch có kích thước bằng tỉ lệ là
1 kích thước ảnh, sau khi trải qua quá trình nhận dạng và giải mã thì kết quả nhận dạng đúng thông tin mã vạch đạt được 85%
Hình 4.21: Mã vạch bị mất dần dữ liệu
Mã vạch được cấu tạo từ các vạch màu đen và trắng, dùng để biểu diễn thông tin Khi kích thước mã vạch giảm, khoảng cách giữa các vạch cũng thu hẹp, dẫn đến số pixel biểu diễn mã vạch giảm theo Điều này có thể khiến mã vạch không đủ thông tin cần thiết để hệ thống nhận dạng giải mã chính xác.
Chương 4 KẾT QUẢ VÀ THẢO LUẬN
Hình 4.22: Đồ thị nhận dạng mã vạch có kích thước khác nhau.