1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nhận dạng mã vạch dùng xử lý ảnh

119 20 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 119
Dung lượng 5,07 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nhiệm vụ của phần mềm là để giải mã các thông tin mã vạch từ các hình ảnh mã vạch như là loại mã vạch, giá trị mã vạch cũng như xác định vị trí các mã vạch trong hình ảnh chụp được.. Tro

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

Trang 2

Cán bộ hướng dẫn khoa học : TS ĐỖ HỒNG TUẤN

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)

1 Chủ tịch hội đồng: PGS TS PHẠM HỒNG LIÊN

2 Cán bộ hướng dẫn khoa học: TS ĐỖ HỒNG TUẤN

3 Cán bộ chấm nhận xét 1: TS LÊ CHÍ THÔNG

4 Cán bộ chấm nhận xét 2: TS TRƯƠNG QUANG VINH

5 Thư ký hội đồng: TS HOÀNG TRANG

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA ĐIỆN – ĐIỆN TỬ

Trang 3

-

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ và tên học viên: Trần Việt Quốc MSHV: 11140050…… Ngày, tháng, năm sinh : 25/10/1982 Nơi sinh : Ninh Thuận… Chuyên ngành : Kỹ thuật điện tử Mã số: 605270 ……

I- TÊN ĐỀ TÀI: Nhận dạng mã vạch dùng xử lý ảnh II- NHIỆM VỤ VÀ NỘI DUNG LUẬN VĂN:

- Tìm hiểu các phương pháp phân đoạn ảnh

- Tìm hiểu lý thuyết về mã vạch

- Tìm hiểu và đưa ra phương pháp định vị & giải mã mã vạch

- Viết phần mềm nhận dạn g mã vạch

- Đánh giá kết quả phần mềm, kết luận và kiến nghị

III- NGÀY GIAO NHIỆM VỤ: 07/2011…

IV- NGÀY HOÀN THÀNH NHIỆM VỤ: 12/2012

V- CÁN BỘ HƯỚNG DẪN (Ghi đầy đủ học hàm, học vị ): …

……… TS Đỗ Hồng Tuấn Nội dung và đề cương Luận văn thạc sĩ đã được Hội Đồng Chuyên Ngành thông qua

Trang 4

biết ơn sâu sắc vì đã hướng dẫn em chu đáo và nhiệt tình Thầy đã dẫn dắt, tạo cho

em cách tư duy và làm việc một cách khoa học, hướng đến các đề tài khoa học mới mẽ và tiếp cận với các công nghệ hiện đại

Em xin chân thành cảm ơn các Thầy Cô trong khoa Điện – Điện tử - chuyên ngành Kỹ thuật Điện tử đã hết lòng dạy dỗ và truyền đạt những kiến thức vô cùng quý báu

Con xin gởi đến ba mẹ lòng kính trọng và biết ơn sâu sắc nhất Ba mẹ đã nuôi nấng, dạy dỗ con nên người và là chỗ dựa tinh thần vững chắc cho con trong suốt thời gian qua cũng như trong cuộc đời Đồng thời xin cảm ơn các bạn học cũng như bạn đồng nghiệp đã giúp đỡ tôi trong suốt thời gian qua

Do kiến thức còn có hạn và chưa trải nghiệm thực tế nhiều nên chắc chắn trong quá trình thực hiện đề tài luận văn tốt nghiệp này em còn những thiếu sót Em rất mong nhận được sự góp ý của các Quý Thầy Cô và bạn bè để giúp em hoàn thiện hơn kiến thức cũng như vững bước trong quá trình làm việc sau này

Xin chân thành cảm ơn!

Tp Hồ Chí Minh, tháng 12 năm 2012

Học viên

Trần Việt Quốc

Trang 5

TÓM TẮT LUẬN VĂN

Mã vạch là rất phổ biến và được nhìn thấy trên hầu hết các sản phẩm tiêu dùng

Mã vạch cung cấp chính xác và nhanh chóng dữ liệu lưu trữ mà đã được nhập liệu trước đó trên một hệ thống máy tính Bằng cách này giá cả và thông tin sản phẩm có thể đọc được rất nhanh Có nhiều loại mã vạch một chiều khác nhau như EAN8, EAN13, EAN128, UPC-A, UPC-E, v.v… Nhưng chủ yếu các mã vạch này bao gồm các đường thẳng song song với nhau dày hay mỏng trong một khung hình chữ nhật

mà thôi

Theo truyền thống một đầu đọc mã vạch bằng tia laser là cách để đọc mã vạch Tuy nhiên trong thời gian gần đây hệ thống đọc mã vạch dựa trên xử lý hình ảnh đã bắt đầu được triển khai và vượt trội hơn khi cung cấp nhiều thông tin hơn là đọc mã vạch bằng tia laser tại cùng một thời điểm [1] Ngày nay việc sử dụng các thiết bị

kỹ thuật số cá nhân (PDA) và điện thoại di động (MP) đang trở nên ngày càng phổ biến rộng rãi Chúng có thể được sử dụng để truy cập internet, chụp ảnh và quay video Vì vậy người tiêu dùng hoặc người sử dụng có thể chụp một hình ảnh của một mã vạch bằng cách sử dụng PDA/MP Rồi sau đó hình ảnh chụp được ấy sẽ được một phần mềm giải mã hình ảnh mã vạch nhằm biết được những thông tin chứa đựng bên trong mã vạch

Đề tài này tập trung vào việc nhận dạng mã vạch từ hình ảnh của sản phẩm có dán tem mã vạch, được chụp từ các máy ảnh kỹ thuật số Bước đầu tiên trong việc nhận dạng dữ liệu mã vạch là phải định vị được vị trí mã vạch Để giải quyết bài toán này, tôi đã dùng phép biến đổi và xấp xỉ Hough nhanh Vị trí và hướng của mã vạch được xác định bằng phương pháp này Để giải mã được dữ liệu mã vạch tôi đã dùng cách quét hàng tại vị trí và hướng của mã vạch đã được xác định ở bước trước Tuy nhiên để các dữ liệu mã vạch có thể được đọc đúng và chính xác thì đòi hỏi độ phân giải hình ảnh đủ cao Trong đề tài này chất lượng hình ảnh được cải thiện bằng phương pháp làm mượt B-Spline và kỹ thuật siêu phân giải Sau đó dữ liệu mã vạch được giải mã thông qua bộ lọc thích nghi

Trang 6

LỜI CAM ĐOAN

Tôi xin cam đoan nội dung trong luận văn này là do tôi học hỏi, vận dụng, viết và hiệu chỉnh lại nhằm đạt kết quả tốt hơn mà các tác giả đi trước đã trình bày, các kết quả mô phỏng, chương trình phần mềm trong đề tài đều là chân thực không trùng lắp với bất kỳ công trình nghiên cứu nào trước đây Các tài liệu tham khảo, nội dung, ý tưởng của các tác giả khác được tôi trích dẫn, biên dịch lại, các chú thích nguồn thu thập chính xác và rõ ràng để giới thiệu, trình bày về mặt lý thuyết

và từ những lý thuyết, ý tưởng đó để làm nền tảng cho tôi thực tế hóa những ý tưởng, phương pháp đó bằng cách xây dựng lên một phần mềm nhận dạng mã vạch theo như tên đề tài luận văn đã nêu

Tp Hồ Chí Minh, tháng 12 năm 2012

Trần Việt Quốc

Trang 7

MỤC LỤC

Trang

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

DANH SÁCH CÁC BẢNG 6

DANH SÁCH CÁC HÌNH 7

CHƯƠNG 1 11

MỞ ĐẦU 11

1.1 Cơ sở khoa học và thực tiễn của đề tài 11

1.2 Ý nghĩa của đề tài 12

1.3 Mục tiêu của đề tài 13

1.4 Đối tượng và phạm vi nghiên cứu của đề tài 13

1.4.1 Đối tượng nghiên cứu 13

1.4.2 Phạm vi của đề tài 14

1.5 Nội dung các chương 15

CHƯƠNG 2 17

XỬ LÝ HÌNH ẢNH TRONG NHẬN DẠNG MÃ VẠCH 17

2.1 Định vị mã vạch 18

2.2 Giải mã mã vạch 19

CHƯƠNG 3 21

PHÂN ĐOẠN ẢNH 21

3.1 Biến đổi Hough 22

3.2 Biến đổi Hough nhanh 23

3.3 Xấp xỉ biến đổi Hough nhanh 24

3.4 Cơ sở Splines (B-Spline) 26

CHƯƠNG 4 29

ĐỊNH VỊ MÃ VẠCH BẰNG PHÂN ĐOẠN ẢNH 29

4.1 Định vị mã vạch thông qua FHT 31

4.2 Định vị mã vạch thông qua FHTA 36

Trang 8

4.3 Kết quả mô phỏng và so sánh giữa FHT và FHTA 41

CHƯƠNG 5 54

GIẢI MÃ MÃ VẠCH 54

5.1 Những kiến thức, vấn đề cơ bản của mã vạch 54

5.1.1 Cấu trúc của EAN - 13: 54

5.1.2 Cấu trúc của EAN - 8: 58

5.1.3 Cấu trúc của UPC (Universal Product Code) 59

5.1.4 Cấu trúc của Code 39 67

5.1.5 Cấu trúc của Interleaved 2 of 5 75

5.1.6 Cấu trúc của Mã Data Matrix 76

5.2 Nêu vấn đề 82

5.3 Kỹ thuật giải mã 83

5.3.1 Xấp xỉ hình ảnh bằng làm mượt B-Spline 83

5.3.2 Áp dụng phương pháp làm mượt B-Spline để quét hàng mã vạch 84

5.3.3 Ước lượng những vị trí đỉnh 85

5.3.4 Kỹ thuật siêu phân giải làm hiện rõ mã vạch 87

5.3.5 Bộ lọc thích nghi 90

5.4 Kết quả mô phỏng 92

CHƯƠNG 6 97

KẾT HỢP GIỮA ĐỊNH VỊ VÀ GIẢI MÃ MÃ VẠCH 97

6.1 Kết quả mô phỏng 97

6.2 Kết quả nhận dạng mã vạch của phần mềm đọc mã vạch 101

CHƯƠNG 7 108

KẾT LUẬN 108

TÀI LIỆU THAM KHẢO 110

PHỤ LỤC 112

LÝ LỊCH TRÍCH NGANG 115

Trang 9

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

PDA - Personal Digital Assistance

MP - Mobile Phone

HT - Hough Transform

FHT - Fast Hough Transform

B-Spline - Basis Spline

FHTA - Fast Hough Transform Approximation

SNR - Signal to Noise Ratio

RSS - Residual Sum Squares

Trang 10

DANH SÁCH CÁC BẢNG

Bảng 1 Tám hướng và cách đánh nhãn tương ứng .26

Bảng 2 Thời gian thực thi của FHT 36

Bảng 3 Thời gian thực thi của FHTA 41

Bảng 4 Trật tự các kí số phía bên trái tùy vào kí số bắt đầu 56

Bảng 5 Giá trị các kí số được biểu diễn thông qua số nhị phân 57

Bảng 6 Tất cả các giá trị giải mã của hình ảnh mã vạch 1 94

Bảng 7 Tất cả các giá trị giải mã của hình ảnh mã vạch 2 95

Bảng 8 Tất cả các giá trị giải mã của hình ảnh mã vạch 3 96

Trang 11

DANH SÁCH CÁC HÌNH

Hình 1 Sơ đồ khối của phương pháp nhận dạng mã vạch 15

Hình 2 Sơ đồ khối của phương pháp định vị mã vạch 18

Hình 3 a) Không gian ảnh, b) Không gian tham số 22

Hình 4 a) Không gian ảnh, b) Không gian tham số .24

Hình 5 a) Đường thẳng 30°, b) Đánh nhãn cho đường thẳng 30° 25

c) Đường thẳng 120°, d) Đánh nhãn cho đường thẳng 120° 25

Hình 6 Mặt nạ 9 x 9 a) 8 đường thẳng, b) Đánh nhãn cho 8 đường thẳng 26

Hình 7 Trình tự định vị mã vạch 30

Hình 8 a) Hình ảnh ngõ vào 282x358, b) Hình ảnh phát hiện cạnh 30

Hình 9 a) Hình ảnh ngõ vào 1224x1632 b) Hình ảnh phát hiện cạnh 31

Hình 10 Sơ đồ giải thuật FHT 32

Hình 11.Mô phỏng hình ảnh 1 34

a) Kết quả FHT b) Định vị mã vạch 34

c) Phép phân tích hình thái nhị phân co ảnh d) nở ảnh 34

e) Phép chiếu theo chiều dọc f) Phép chiếu theo chiều ngang 34

Hình 12 Mô phỏng hình ảnh 2 35

a) Kết quả FHT b) Định vị mã vạch 35

c) Phép phân tích hình thái nhị phân co ảnh d) nở ảnh 35

e) Phép chiếu theo chiều dọc f) Phép chiếu theo chiều ngang 35

Hình 13 Sơ đồ giải thuật FHTA 37

Hình 14.Mô phỏng hình ảnh 1 39

a) Kết quả FHTA b) Định vị mã vạch 39

Trang 12

c) Phép phân tích hình thái nhị phân đóng d) mở 39

e) Phép chiếu theo chiều dọc f) Phép chiếu theo chiều ngang 39

Hình 15.Mô phỏng hình ảnh 2 40

a) Kết quả FHTA b) Định vị mã vạch 40

c) Phép phân tích hình thái nhị phân đóng d) mở 40

e) Phép chiếu theo chiều dọc f) Phép chiếu theo chiều ngang 40

Hình 16 Mô phỏng hình ảnh mã vạch EAN13 42

Hình 17 Mô phỏng hình ảnh mã vạch Code 25 .43

Hình 18 Mô phỏng hình ảnh mã vạch Code 128 .44

Hình 19 Mô phỏng hình ảnh mã vạch EAN8 45

Hình 20 Mô phỏng hình ảnh mã vạch EAN13 46

Hình 21 Mô phỏng hình ảnh mã vạch EAN13 47

Hình 22 Mô phỏng hình ảnh mã vạch EAN13 48

Hình 23 Mô phỏng hình ảnh mã vạch Code 39 .49

Hình 24 Mô phỏng hình ảnh mã vạch EAN13 50

Hình 25 Mô phỏng hình ảnh mã vạch UPC .51

Hình 26 Mô phỏng hình ảnh mã vạch UPC, Code 25, EAN13 .52

Hình 27 Mô phỏng 6 hình ảnh mã vạch EAN13 53

Hình 28 Chuẩn mã vạch EAN13 55

Hình 29 Chi tiết hóa dữ liệu mã vạch thông qua số nhị phân 57

Hình 30 a) Hình ảnh mã vạch b) Định vị mã vạch 82

c) 10 hàng quét từ vùng được xác định 82

Hình 31 a) Hàng quét 1-D b) Kết quả làm mượt B-spline (λ = 0,5) 85

c) Sai số giữa hàng quét và dữ liệu sau làm mượt B-spline 85

Trang 13

Hình 32 a) Một hàng quét mã vạch b) Đạo hàm của hàng quét 86

Hình 33 Dải ngưỡng 87

Hình 34 Cấu trúc của fs(x,y) 88

Hình 35 Sự tương quan giữa kí số và khoảng chia bên trong 91

Trục đứng: mức giá trị trong tầm [-1,1], 91

Trục ngang: biểu diễn chiều dài của một kí số .91

Hình 36 Hình ảnh giải mã 1 .92

Hình 37 Hình ảnh giải mã 2 .92

Hình 39 Giải mã hình ảnh 1 a) Hình ảnh mã vạch b) Hàng quét mã vạch 93

c) Làm mượt dữ liệu d) Kết quả phép làm mượt và xác định dải ngưỡng 93

Hình 40 Kết quả sau khi áp dụng kỹ thuật siêu phân giải cho hình ảnh 1 94

Hình 41 a) Hàng quét mã vạch 95

b) Kết quả sau khi áp dụng kỹ thuật siêu phân giải cho hình ảnh mã vạch 2 .95

Hình 42 a) Hàng quét mã vạch 96

b) Kết quả sau khi áp dụng kỹ thuật siêu phân giải cho hình ảnh mã vạch 3 .96

Hình 43 a-b)Hình ảnh kích thước 352x288, c-d) Kết quả định vị .98

Hình 44 a-b)Hình ảnh kích thước 1632x1224, c-d) Kết quả định vị .99

Hình 45 Hình ảnh có giá trị SNR thấp, khoảng cách giữa các mã vạch và máy ảnh kỹ thuật số quá xa, hình ảnh bị biến dạng cao, độ phân giải thấp, quá nhòe, mờ không đọc được 100

Hình 46 Kết quả nhận diện hình ảnh mã vạch Code 25 102

Hình 47 Kết quả nhận diện hình ảnh mã vạch Code 128 102

Hình 48 Kết quả nhận diện hình ảnh mã vạch EAN 8 103

Hình 49 Kết quả nhận diện hình ảnh mã vạch EAN 13 103

Trang 14

Hình 50 Kết quả nhận diện hình ảnh mã vạch EAN 13 104

Hình 51 Kết quả nhận diện hình ảnh mã vạch EAN 13 104

Hình 52 Kết quả nhận diện hình ảnh mã vạch Code 39 105

Hình 53 Kết quả nhận diện hình ảnh mã vạch EAN 13 105

Hình 54 Kết quả nhận diện hình ảnh mã vạch UPC-A .106

Hình 55 Kết quả nhận diện 3 hình ảnh mã vạch UPC-A, Code 25, EAN-13 106

Hình 56 Kết quả nhận diện 6 hình ảnh mã vạch EAN-13 .107

Trang 15

CHƯƠNG 1

MỞ ĐẦU 1.1 Cơ sở khoa học và thực tiễn của đề tài

Trong tiến trình hội nhập kinh tế Quốc tế hiện nay ngoài những vấn đề về năng suất, chất lượng của hàng hoá thì vấn đề tiêu thụ sản phẩm đặc biệt quan trọng Những năm gần đây một số doanh nghiệp trên địa bàn tỉnh Ninh Thuận nơi tôi sinh sống đã chuyển hướng sản xuất kinh doanh sang một số ngành nghề mới, xây dựng hạ tầng, mua sắm thiết bị để đầu tư vào các lĩnh vực như: Chế biến rượu nho, sản xuất bao bì để xuất khẩu, chế biến đồ gỗ, hàng thủ công mỹ nghệ… tuy nhiên một số vấn đề như bao bì, nhãn hiệu, mã số mã vạch của hàng hoá chưa được quan tâm đúng mức nên việc quản lý và tiêu thụ sản phẩm còn gặp nhiều khó khăn

Để tạo thuận lợi và nâng cao năng suất, hiệu quả trong bán hàng và quản lý kho người ta thường in trên hàng hoá một loại mã hiệu đặc biệt gọi là mã số mã vạch (MSMV) của hàng hoá Mã số, mã vạch của hàng hoá bao gồm hai phần: mã

số của hàng hoá và mã vạch là phần thể hiện mã số bằng vạch để cho máy đọc Công nghệ mã số mã vạch là một trong những công nghệ nhận dạng tự động các đối tượng là vật phẩm, dịch vụ, tổ chức v.v , dựa trên việc ấn định một mã (số hoặc chữ - số) cho đối tượng cần phân định, sau đó thể hiện mã đó dưới dạng các vạch để thiết bị đọc (máy quét) có thể đọc được và nhận biết được đối tượng đó

Công nghệ MSMV đã được ứng dụng rộng rãi trong các lĩnh vực của đời sống kinh tế, xã hội như sản xuất, kinh doanh, dịch vụ và các hoạt động quản lý, đặc biệt trong thương mại, hàng không, bưu điện, y tế và vận chuyển, giao nhận hàng hoá v.v Quy mô ứng dụng được thực hiện ở các cấp độ khác nhau như cơ sở, ngành, quốc gia, khu vực và trên phạm vi toàn cầu

Mã số của hàng hoá là một dãy con số dùng để phân định hàng hoá, áp dụng trong quá trình luân chuyển hàng hoá từ người sản xuất, qua bán buôn, lưu kho, phân phối, bán lẻ tới người tiêu dùng Nếu thẻ căn cước giúp ta phân biệt người này

Trang 16

với người khác thì mã số hàng hoá là “thẻ căn cước” của hàng hoá, giúp ta phân biệt được nhanh chóng và chính xác các loại hàng hoá khác nhau

Ngày nay ta có thể dễ dàng tìm thấy mã vạch trên các bao bì sản phẩm trong cuộc sống hàng ngày Sự xuất hiện của mã vạch trở nên phổ biến và quen thuộc với người tiêu dùng chứng tỏ các công nghệ hỗ trợ qui trình đọc mã vạch cũng phải phát triển đủ mạnh để có thể đáp ứng được yêu cầu sử dụng Mã vạch có thể được đọc bởi các máy quét quang học cũng có thể được quét từ hình ảnh bằng các phần mềm xử lý chuyên biệt Hiện nay máy quét quang học (Barcode Scanner) được ứng dụng rộng rãi bởi sự phức hợp của nó với mọi trường làm việc cũng như loại sản phẩm sử dụng mó vạch

Tuy nhiên phương pháp sử dụng máy quét mã vạch cũng có những ưu nhược điểm riêng Ưu điểm nổi bật của phương pháp này là tính tiện dụng, nhận dạng nhanh với độ chính xác cao Nhược điểm của nó là đòi hỏi về trang thiết bị cùng các phụ kiện đi kèm thường không gọn nhẹ và không mang tính khả chuyển ở khoảng cách lớn cũng như yêu cầu về chất lượng mã vạch phải tương đối tốt

Một câu hỏi đặt ra là trong những trường hợp người dùng không có sẵn các thiết bị quét mã vạch trong tay, họ chỉ có thể chụp ảnh của mã vạch mà muốn biết tất cả các thông tin liên quan đến sản phẩm có mã vạch đó thì phải đáp ứng yêu cầu này như thế nào? Và liệu phương pháp nào có khả năng nhận ra mã vạch khi mã vạch đó được chụp thành ảnh? Mở rộng hơn nữa là làm cách nào để trong một lần

xử lý có thể nhận diện ra nhiều mã vạch để rút ngắn thời gian làm việc, nâng cao năng suất lao động và hiệu quả công việc? Câu trả lời đó là dùng phầm mềm xử lý ảnh để nhận dạng mã vạch

1.2 Ý nghĩa của đề tài

Các loại máy quét, máy đọc barcode là cả 1 ngành công nghệ được chế tạo cho nhiều mục đích, nhiều ứng dụng khác nhau nhằm phục vụ cho con người tốt hơn trong các vấn đề về quản lý nói chung Tuy nhiên việc dùng xử lý ảnh để nhận diện sẽ rất linh hoạt, hiệu quả, tốn ít chi phí đầu tư cho mỗi ứng dụng hơn Do đó

Trang 17

nếu đề tài này được thực hiện thành công sẽ là một công cụ rất tốt và mạnh để trợ giúp cho con người hoàn thành công việc quản lý của mình, đem lại lợi ích kinh tế, đồng thời giúp tiết kiệm thời gian và nâng cao hiệu quả làm việc rất nhiều

1.3 Mục tiêu của đề tài

Nhận dạng được mã vạch ở trong một hình ảnh chụp được từ camera, hình ảnh scan…cụ thể nào đó Mục tiêu đặt ra của đề tài sẽ phải: nhận diện ra được mã vạch 1D thông dụng, đọc được giá trị mã vạch và xác định được vị trí mã vạch trong hình ảnh đầu vào đơn giản chỉ có một mã vạch Sau đó phát triển thêm một bước là bài toán có nhiều mã vạch 1D khác chủng loại, nằm nghiêng, nằm đứng bất

kỳ trong hình ảnh Công việc đặt ra là phải xác định và nhận diện được các chủng loại mã vạch đó Sau cùng là mở rộng bài toán phức tạp hơn nữa là hình ảnh mã vạch lẫn với hình ảnh các chíp trong board mạch trên một dây chuyền sản xuất (nền của hình ảnh phức tạp) Bài toán sẽ phải phân biệt hình ảnh chíp với hình ảnh mã vạch và tiến hành tách, nhận diện rồi cho ra kết quả giá mã vạch tương ứng

1.4 Đối tượng và phạm vi nghiên cứu của đề tài

1.4.1 Đối tượng nghiên cứu

Mã vạch gồm nhiều chủng lọai 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à người ta chia ra làm rất nhiều lọai, trong đó các dạng thông dụng trên thị trường mà ta thấy gồm UPC, EAN, Code 39, Interleaved 2 of 5, Codabar và Code 128 Ngoài ra, trong 1 số loại

mã vạch người ta còn phát triển làm nhiều Version khác nhau, có mục đích sử dụng khác nhau, thí dụ UPC có các version là UPC-A, UPC-B, UPC-C, UPC-D và UPC-E; EAN có các version EAN-8, EAN-13, EAN-14, Code 128 gồm Code 128 Auto, Code 128-A, Code 128-B, Code 128-C Người dùng mã vạch ngày càng quan tâm đến mã vạch 2 chiều (2D Barcode) vì nhận ra những đặc tính độc đáo của nó không

có mặt trong các ký hiệu tuyến tính truyền thống Ký hiệu 2 chiều nhằm vào hai ứng dụng chính:

Trang 18

- Sử dụng trên các món hàng nhỏ: Nếu in mã vạch tuyến tính, tức là các lọai mã vạch 1D thông dụng, trên các món hàng nhỏ thì thường gặp trở ngại về kích thước của mã vạch vẫn còn quá lớn so với các món hàng cực nhỏ Với sự phát triển của

mã vạch 2 chiều người ta có thể in mã vạch nhỏ đến mức có thể đặt ngay trên món hàng có kích thước rất nhỏ Nội dung thông tin: Công nghệ 2 chiều cho phép mã hóa 1 lượng lớn thông tin trong một diện tích nhỏ hẹp Cả lượng thông tin lưu trong cùng một ký hiệu mã vạch 2D có thể coi như là 1 file dữ liệu nhỏ gọn (trong ngành gọi là PDF - Portable Data File) Do đó khi sử dụng lọai mã 2D, có thể không cần đến CSDL bên trong máy vi tính

- Quét tầm xa: Khi sử dụng các ký hiệu 2D, máy in không đòi hỏi in ở độ phân giải cao mà có thể in ở độ phân giải thấp vì trong ký hiệu 2D, các mảng điểm (pixel) hoặc các vạch (bar) rất lớn Điều này dẫn đến việc cho phép quét mã vạch 2D ở 1 khỏang cách xa lên đến 50 feet (khoảng 15m) Các ký hiệu barcode 2D có thể được chia làm 2 loại: Loại mã xếp chồng (Stacked Codes): như Code 16K, Code 49, PDF-417 và loại mã ma trận (Matrix Codes): như Data Matrix, Maxicode,Softstrip, Vericode, …

Đối tượng nghiên cứu của đề tài tập trung đi sâu vào tìm hiểu và nhận dạng một

số loại mã vạch 1D thông dụng và phổ biến trên thị trường hiện nay như: UPC, EAN 8, EAN 13, Code 25, Code 39, Code 128

1.4.2 Phạm vi của đề tài

Trong đề tài này mục tiêu của tôi là xây dựng một phần mềm nhận dạng mã vạch dựa trên xử lý hình ảnh Bao gồm một máy ảnh để chụp hình ảnh mã vạch của sản phẩm và một máy vi tính để đọc thông tin về sản phẩm đó thông qua hình ảnh

mã vạch đã chụp được đó Nhiệm vụ của phần mềm là để giải mã các thông tin mã vạch từ các hình ảnh mã vạch như là loại mã vạch, giá trị mã vạch cũng như xác định vị trí các mã vạch trong hình ảnh chụp được Sơ đồ khối nhận dạng mã vạch từ hình ảnh được thể hiện trong hình 1 Trong sơ đồ nhiều khối nhưng chỉ có hai phần quan trọng nhất: một là định vị mã vạch và hai là giải mã các thông tin chứa đựng trong mã vạch

Trang 19

Hình 1 Sơ đồ khối của phương pháp nhận dạng mã vạch Định vị mã vạch là thật ra là một bài toán phân vùng ảnh Do đó các thuật toán như biến đổi Hough (HT), biến đổi Hough nhanh (FHT) và Basis Spline (B-Spline)

đã được dùng để xác định một số đường thẳng và đường cong phù hợp và xấp xỉ biến đổi Hough nhanh đã được phát triển với để giảm thiểu các tính toán thời gian của HT / FHT

Độ phân giải hình ảnh có vai trò quan trọng trong việc giải mã mã vạch Trong

đề tài này tôi đã dùng một kỹ thuật siêu phân giải để tăng độ phân giải hình ảnh Để giải mã mã vạch tôi đã dùng cách ước tính điểm giữa của mỗi vạch đường thẳng

1.5 Nội dung các chương

- Chương 2: trình bày sơ lược về xử lý hình ảnh trong việc nhận dạng mã vạch

- Chương 3: trình bày tổng quan về phân vùng ảnh và các thuật toán HT, FHT, FHTA và B-Spline

- Chương 4: trình bày cách định vị mã vạch thông qua FHT, FHTA và kết quả thực nghiệm

- Chương 5: trình bày cách giải mã mã vạch

Trang 20

- Chương 6: trình bày các kết quả về định vị, giải mã mã vạch và hiệu quả

- Chương 7: Nêu nhận xét và hướng mở rộng vấn đề

Trang 21

CHƯƠNG 2

XỬ LÝ HÌNH ẢNH TRONG NHẬN DẠNG MÃ VẠCH

Việc dùng cách xử lý hình ảnh để nhận dạng mã vạch đã tăng hiệu quả rất lớn trong việc đọc mã vạch Để giải quyết các bài toán nhận diện mã vạch dùng xử lý ảnh có thể liệt kê ra các 4 công việc cụ thể như sau:

- Công việc 1: Từ một hình ảnh có chứa một mã vạch (barcode) 1D, nhiệm vụ cần phải làm là tách 01 barcode ra khỏi ảnh nền (background)

- Công việc 2: Nếu như hình ảnh barcode không thẳng hàng (nằm nghiêng một góc nào đó so với trục nằm ngang) thì nhiệm vụ của công việc cần phải làm là dùng giải thuật Hough để quay barcode cho thẳng hàng Sau đó tiến hành quét hàng để đọc giá trị mã vạch

- Công việc 3: Mở rộng bài toán là trong hình ảnh có nhiều mã vạch 1D khác nhau, khác chủng loại và có thể nằm nghiêng ở nhiều góc độ khác nhau Nhiệm vụ đặt ra là phải tách nhiều mã vạch 1D đó ra khỏi background, quay cho thẳng hàng

và sau đó tiến hành đọc giá trị mã vạch

- Công việc 4: Phát triển bài toán về sau, nếu như hình ảnh chụp được từ camera chứa background phức tạp như là hình ảnh chụp được từ trên cao của một dây chuyền sản xuất mạch điện của công ty điện tử Các hình ảnh mã vạch nằm trên background rất phức tạp Nhiệm vụ đặt ra là nhận diện được tem mã vạch được dán trên các sản phẩm điện tử

Với mục đích tăng hiệu quả và giảm thời gian tính toán, 4 bài toán cần giải quyết ở trên được chia thành hai phần chính: định vị và giải mã mã vạch Phần đầu tiên sẽ tìm thấy vị trí của mã vạch trong hình ảnh (có thể là chỉ có 1 mã vạch hoặc nhiều mã vạch trong hình ảnh, mà 1 mã vạch hoặc nhiều mã vạch đó có thể nằm thẳng hàng hoặc không thẳng hàng (nằm nghiêng một góc nào đó so với trục nằm ngang) Phần thứ hai sẽ giải mã các thông tin chứa trong mã vạch (với các mã vạch

Trang 22

cần giải mã đã được xác định ở phần thứ nhất ở trên) Và kết quả có được của việc định vị và giải mã mã vạch khi đó từ việc chỉ xem xét vùng mà có chứa hình ảnh mã vạch nhưng không phải là xét toàn bộ hình ảnh chứa mã vạch đó

Trong các bài báo có một số công trình nghiên cứu mà tác giả chỉ đơn thuần là nghiên cứu cách định vị mã vạch [2, 3, 4], một số tác giả chỉ nghiên cứu cách giải

mã mã vạch [5, 6, 7] và những tác giả khác xem xét toàn bộ vấn đề [8, 9, 10]

Trong chương này sẽ trình bày các kỹ thuật về cách định vị và giải mã mã vạch của các công trình đã nghiên cứu trước đây, cũng như hạn chế và nhược điểm của các công trình đó

2.1 Định vị mã vạch

Kỹ thuật lọc nhiều kênh Gabor đã được sử dụng để phân loại kết cấu và làm nhiệm vụ phân vùng ảnh Ở công trình nghiên cứu [2], kỹ thuật này được sử dụng cho việc định vị mã vạch Đầu tiên là hình ảnh đầu vào được lọc bằng cách dùng bộ lọc nhiều kênh Gabor trong tám hướng (0°, 22,5°, 45°, 67,5°, 90°, 112,5°, 135° và 157,5°) Kết quả thu được là 8 hình ảnh sau bộ lọc Gabor, cũng như các đặc tính của hình ảnh đó Sau đó các đặc trưng của hình ảnh được xác định, kiểm tra bằng cách sử dụng một trong hai phương pháp không có giám sát (K-Mean Clustering) hoặc các phương pháp giám sát Kết quả của phương pháp này là vị trí và hướng mã vạch được xác định Trong công trình nghiên cứu [8, 9], phương pháp Gradient đã được tác giả sử dụng Các hình ảnh được tính toán theo một số hướng (0°, 45°, 90°

và 135°) và sau đó tập trung xử lý các khu vực có mật độ cao trong hình ảnh đó

Hình 2 Sơ đồ khối của phương pháp định vị mã vạch

Hình 2 trình bày sơ đồ khối chính các bước định vị mã vạch [8] Tuy nhiên phương pháp này không xác định và kiểm tra được chi tiết cho các mã vạch khác

Trang 23

nhau tại các hướng và chất lượng khác nhau Hơn nữa thời gian xử lý của phương pháp này là rất cao mà chắc chắn một điều sẽ không thể sử dụng được trong các ứng dụng đòi hỏi phải đáp ứng thời gian thực

Biến đổi Hough (HT) đã được áp dụng rất nhiều trong nhiều bài toán phân vùng ảnh như phát hiện các đường thẳng và các đường cong Trong công trình nghiên cứu [10], HT đã được áp dụng cho việc định vị mã vạch Sau khi dùng biến đổi Hough, tất cả các pixel nằm trên cạnh được ánh xạ tới mặt phẳng Hough bằng cách

sử dụng phương trình đường thẳng Tác giả trong công trình nghiên cứu [10] giả định rằng tất cả các mã vạch nằm trên hướng 90 độ, vì họ chỉ nghiên cứu các hình ảnh như vậy Từ đó mặt phẳng Hough được xác định và các đường thẳng theo hướng 90o được vạch ra Sau đó vùng mà có chứa hình ảnh mã vạch được phát hiện như là vùng có chứa các đường thẳng đứng Giải thuật mà tác giả đã trình bày là ví

dụ của một trường hợp đặc biệt và không phải là áp dụng cho tất cả các hình ảnh mã vạch tại các hướng khác nhau Thêm vào đó thời gian tính toán của thuật toán này là không đáp ứng được cho các ứng dụng đòi hỏi thời gian thực, vì nó đòi hỏi nhiều phép nhân Tác giả của công trình nghiên cứu [3] đề xuất một giải pháp cần ít thời gian cho việc định vị mã vạch Hình ảnh ngõ vào là được ánh xạ tới miền wavelet bằng cách sử dụng một kỹ thuật biến đổi wavelet, vì vậy chiều dọc, ngang và đường chéo được xác định Sau đó dùng phép phân tích hình thái nhị phân (thu hẹp và giãn nở) và ngưỡng kích thước để xác định vị trí các vùng có chứa mã vạch Tuy nhiên với cách làm này hướng của mã vạch là không xác định được Sau đó biến đổi wavelet đã cải thiện được cách định vị mã vạch theo công trình nghiên cứu [4] Bằng phương pháp này các đặc trưng của wavelet kết hợp với các phép toán logic

OR sẽ cho kết quả là hình ảnh nhị phân Phép phân tích hình thái nhị phân được áp dụng cho hình ảnh nhị phân này với mục đích để định vị mã vạch Và để tìm ra hướng tồn tại của mã vạch tác giả đã dùng cách lấy ngưỡng với các góc bất kỳ

2.2 Giải mã mã vạch

Sau khi tìm thấy vị trí của mã vạch, vấn đề còn lại là phải giải mã mã vạch Để giải mã các thông tin chứa trong mã vạch, độ phân giải mã vạch đóng một vai trò rất

Trang 24

quan trọng trong việc giải mã Giả sử rằng chất lượng cũng như độ phân giải của mã vạch đủ cao theo công trình nghiên cứu [5, 8, 9, 10] hoặc các hình ảnh mã vạch chất lượng cao có được từ những hình ảnh có độ phân giải thấp sau khi sử dụng kỹ thuật siêu phân giải như trong công trình nghiên cứu [6, 7]

Để giải mã các thông tin chứa trong mã vạch, độ rộng của những vạch màu đen

và màu trắng (khoảng trống) trên mã vạch phải được biết đến Vị trí mà tại đó ta thấy đỉnh cao nhất đó chính là vị trí của những vạch đen và trắng được tìm thấy với phép nhận dạng vật thể theo phương pháp thống kê như trong công trình nghiên cứu [5] Thông tin về mã vạch được giải mã dựa vào khoảng cách giữa các vị trí mà ở

đó là đỉnh Trong công trình nghiên cứu [8], một ngưỡng cố định được áp dụng cho tất cả các điểm ảnh Nếu các giá trị của điểm ảnh nhỏ hơn mức ngưỡng, thì giá trị

đó được thay thế bằng số không Sau đó số lượng số không được tính để biết được

độ rộng của các dòng mã vạch Cách phát hiện sự chuyển tiếp giữa hai vùng đen trắng của mã vạch được nghiên cứu trong công trình [10] Giá trị chuyển tiếp được xác định bằng cách dùng phép toán đạo hàm bậc hai Sau đó ta đo khoảng cách giữa các dòng mã vạch đen và trắng, thông tin khoảng cách đó chính là chìa khoá cho việc giải mã mã vạch Cuối cùng ta dùng mạng thần kinh nhân tạo để giải mã như trong công trình nghiên cứu [9] Tuy nhiên hiệu quả của các phương pháp này phụ thuộc rất nhiều vào chất lượng hình ảnh của mã vạch

Trong công trình nghiên cứu [9, 10] kỹ thuật siêu phân giải được đề xuất cho việc xây dựng lại hình ảnh mã vạch chất lượng cao từ một hình ảnh có độ phân giải thấp hoặc chất lượng thấp Trong công trình nghiên cứu [6] tác giả chỉ xem xét việc cải thiện hình ảnh mã vạch nhưng không thực hiện công việc giải mã

Để đạt được mục đích cải thiện này ta dùng phép biến đổi Fourier Trong công trình nghiên cứu [7] thuật toán của kỹ thuật siêu phân giải cho kết quả hình ảnh có

độ phân giải mã vạch cao từ những hình ảnh có chất lượng không tốt lắm với khả năng lỗi là nhỏ nhất

Trang 25

CHƯƠNG 3

PHÂN ĐOẠN ẢNH

Phân đoạn ảnh là một công việc xử lý hình ảnh ở mức độ thấp nhằm mục đích phân vùng hình ảnh thành các vùng đồng nhất có cùng đặc tính của các điểm ảnh trong hình ảnh đó như công trình nghiên cứu [11] Ý tưởng chính của phân vùng ảnh là để đơn giản hóa và sắp xếp lại một vài chi tiết trong một hình ảnh, làm cho

nó có ý nghĩa và dễ dàng hơn cho công việc phân tích Như vậy phân đoạn ảnh là một công việc, một nhiệm vụ, một khâu vô cùng quan trọng trong xử lý hình ảnh số

ví dụ như các ứng dụng trong thị giác máy tính, kiểm tra chất lượng sản phẩm, chẩn đoán trong y học, phân tích hình ảnh từ xa, v.v…

Có rất nhiều kỹ thuật và các thuật toán đã được phát triển cho công việc phân vùng ảnh Tuy nhiên không có một giải pháp nào gọi là hoàn hảo tuyệt đối cả, mà là cần phải có sự kết hợp nhiều cách cộng thêm sự sáng tạo, cải biên, hiệu chỉnh thêm

để có hiệu quả cao nhất cho bài toán phân vùng ảnh

Xét ở quy mô rộng hơn, khái quát hơn thì có rất nhiều tiêu chí phân đoạn tùy theo bài toán cụ thể Ví dụ như ta muốn để sắp xếp lại các chi tiết trong một hình ảnh hoặc đánh dấu các điểm ảnh, điểm đặc biệt, điểm ảnh là cạnh thành một hoặc nhiều nhóm tương tự nhau về mặt tính chất, đặc điểm nào đó Việc tìm, sắp xếp, gom lại thành các nhóm như vậy thường được gọi là quá trình phân đoạn hay phân vùng như đã nêu trong công trình nghiên cứu [12]

Kỹ thuật gom nhóm là một kỹ thuật cực kỳ hữu ích trong nhiều ứng dụng như nhận dạng đối tượng và xấp xỉ Ví dụ như nếu các đối tượng có cùng đặc trưng là những đường thẳng thì sẽ được gom thành một nhóm nhờ công việc phân đoạn ảnh Chương này sẽ trình bày các kỹ thuật cũng như cách thức gom nhóm các đường thẳng và các đường cong Mà cụ thể là sẽ dùng biến đổi Hough, Biến đổi Hough nhanh và sự cải tiến của xấp xỉ biến đổi Hough nhanh cũng như kỹ thuật B-Splines

Trang 26

3.1 Biến đổi Hough

Biến đổi Hough (HT) thường được sử dụng để phát hiện các đối tượng có hình dạng như đường thẳng, đường cong và đường elip trên các hình ảnh nhị phân như trong công trình nghiên cứu [13] đã nêu Trong HT phương trình đường thẳng với

hệ số góc đơn giản nhất (1) được sử dụng để phát hiện các đường thẳng trong hình ảnh

Trong đó: m, c, (x, y) liên quan đến hệ số góc (độ dốc), điểm giao cắt với trục y

và tọa độ điểm ảnh mà tại đó tương ứng là cạnh

Đường thẳng được đặc trưng bởi các thông số m và c Các đường thẳng đi qua điểm (x, y) có giá trị tương đương (m, c) trong không gian tham số (2)

Mỗi điểm (x, y) trong không gian ảnh tương ứng với một đường thẳng trong không gian tham số (m, c) và mỗi điểm (m, c) trong không gian tham số tương ứng với một đường thẳng trong không gian ảnh (x, y) Vì vậy điểm ảnh mà tọa độ x và y tại đó là cạnh được nhóm lại theo phương trình (2) Mục đích là để tìm số lượng các điểm ảnh tại đó là cạnh tương ứng với tham số m và c Hình 3 minh họa cho mối quan hệ giữa không gian hình ảnh và không gian tham số

Hình 3 a) Không gian ảnh, b) Không gian tham số

Trang 27

3.2 Biến đổi Hough nhanh

Biến đổi Hough (HT) dùng để ánh xạ, sao chụp, biểu diễn từ miền không gian hình ảnh vào không gian tham số Một điểm xác định được biểu diễn thành nhiều điểm trong không gian tham số Như vậy là không gian tham số chứa rất nhiều điểm được ánh xạ Khi dùng HT thời gian thực thi là rất cao vì nó đòi hỏi phải sử dụng các phép nhân rất nhiều Vì vậy HT không phù hợp cho các hình ảnh có độ phân giải cao hoặc có kích thước lớn

Tác giả trong công trình nghiên cứu [14] muốn giảm thời gian thực thi và dung lượng lưu trữ của HT vì vậy tác giả đã phát triển, nghiên cứu một phương pháp mới

là biến đổi Hough nhanh (FHT) Trong FHT kết quả các điểm có thông số (m,c) được tìm thấy bằng cách chia thành các nhóm Để làm được điều này không gian tham số được đề nghị chia thành bốn phần chính Sau đó đo khoảng cách từ trung tâm của góc tọa độ đến các đường thẳng cần đo Nếu khoảng cách này lớn hơn giá trị ngưỡng, góc phần tư được chia một lần nữa và tiếp tục làm như cho đến khi kích thước góc phần tư đạt 1x1 Khi kích thước góc phần tư bằng 1x1 ta sẽ dược giá trị (m, c) cần tìm

Tuy nhiên phương pháp này gặp phải một số vấn đề vướng mắc như phát hiện các đường thẳng vuông góc, sai kết quả v.v… Trong công trình nghiên cứu [15], những vấn đề này đã được loại trừ với thuật toán cải tiến sau đây:

Mặt phẳng tham số kích thước 2Nx2N (-N đến N) được tạo ra cho một hình ảnh

có kích thước NxN và mặt phẳng tham số này được chia thành bốn phần Cả bốn phần tư đều có giá trị gốc tọa độ là (Cm và Cc) Sau đó do khoảng cách di từ các điểm (xi, yi) đến Cm, Cc bằng các phương trình sau đây

(3)

(4)

Trang 28

Để giảm thiểu số lượng tính toán một vector đại diện được định nghĩa Vector này cho ta biết nơi mà đường thẳng nằm trong không gian tham số đi qua một góc phần tư Nó bao gồm bốn thông số và mỗi thông số đại diện cho một góc phần tư Nếu khoảng cách này vượt giá trị ngưỡng thì các tham số hiện diện của vector tăng lên 1 giá trị

Góc phần tư lúc này được chia một lần nữa và cứ tiếp tục làm lại các bước như trên nếu các tham số của vectơ phần tử tương ứng có giá trị lớn hơn giá trị ngưỡng Các bước của quy trình này cứ tiếp tục lặp lại cho đến khi kích thước góc phần

tư là 1x1

Nếu kích thước góc phần tư bằng 1x1 thì (Cm, Cc) là kết quả của các cặp (m,c) Hình 4 minh họa không gian hình ảnh và không gian tham số Không gian hình ảnh biểu diễn cho hình ảnh nhị phân Ta có thể nhận thấy rằng mỗi cặp (m, c) nằm ở góc phần tư đầu tiên và góc phần tư này tiếp tục được chia nữa

Hình 4 a) Không gian ảnh, b) Không gian tham số

3.3 Xấp xỉ biến đổi Hough nhanh

Xấp xỉ biến đổi Hough nhanh (FHTA) đã được phát triển với mục đích làm giảm thời gian thực thi của HT / FHT

FHT về cơ bản phụ thuộc vào độ dốc (hệ số góc) m, và giao điểm c với trục y Mục đích của HT / FHT là tìm các cặp (m, c) tương ứng của các đường thẳng Tuy nhiên FHTA này chỉ tìm kiếm theo 8 góc độ hoặc 8 hướng (0°, 30°, 45°, 60°, 90°, 120°, 135° và 150°) Mỗi góc độ hoặc hướng được chuyển đổi thành dạng số bằng cách đánh nhãn Ta sẽ có một tập hợp cụ thể những giá trị được đánh nhãn biểu thị

Trang 29

vị trí các pixel mà ở đó có một đường thẳng đi qua Hình 5a) minh họa là một ví dụ

cụ thể trình bày các điểm ảnh mà đường thẳng có độ dốc 30° đi qua và hình 5b) minh họa những điểm ảnh được đánh nhãn là {2, 12, 13 và 14} Tương tự như hình 5c) minh họa các điểm ảnh mà đường thẳng có độ dốc là 120 ° đi qua và hình 5d) minh họa những điểm ảnh được đánh nhãn là {6, 10, 11 và 14}

Hình 5 a) Đường thẳng 30°, b) Đánh nhãn cho đường thẳng 30°

c) Đường thẳng 120°, d) Đánh nhãn cho đường thẳng 120°

Sáu đường thẳng có độ dốc hoặc hướng khác còn lại được xác định bằng cách đánh nhãn tương tự và được kết hợp với một mặt nạ 9x9 như trong hình 6 Quy trình này sẽ được trình bày trong phụ lục A Mặt nạ này sẽ được sử dụng để xác định 8 hướng của các đường thẳng trong hình ảnh Bảng 1 cho thấy 8 hướng và cách đánh nhãn cho mỗi hướng như thế nào

Trang 30

Hình 6 Mặt nạ 9 x 9 a) 8 đường thẳng, b) Đánh nhãn cho 8 đường thẳng

3.4 Cơ sở Splines (B-Spline)

Hàm spline gồm các đa thức bên trong cùng với một số điều kiện ràng buộc liên tục [16] Hàm Spline được sử dụng cho các ứng dụng xử lý đường cong Giả sử rằng với n + 1 điểm là t0, t1, , tn và thoả mãn t0<t1 < <tn Những điểm này được gọi là nốt hoặc các điểm ngắt Hàm spline với độ dốc k và lớn hơn giá trị 0 thoả

t0<t1 < <tn được thể hiện:

- Trên mỗi khoảng [ti-1, ti), S là đa thức với độ dốc ≤ k

- S có đạo hàm bậc (k-1) liên tục trên [t0, tn]

Vì thế ưu điểm chính của đa thức là số lượng lớn các điểm dữ liệu sẽ hoàn toàn phù hợp với các đa thức ít điểm hơn Tương tự như vậy, hàm cơ sở Splines (B-Splines) cũng thích hợp cho hàm spline chỉ ở một mức độ nhất định nào đó

Trang 31

Dùng B-Splines sẽ làm tăng hiệu quả và ổn định cho các hàm spline Hàm cơ sở Spline là được trình bày trong công trình nghiên cứu của tác giả [17]

Đường cong B-Spline xác định bởi công thức

(5)

Trong đó:

- Bi là tập hợp n + 1 điểm kiểm soát, k là cấp của đường cong

- Ni,k là hàm cơ sở B-Spline bậc k-1

Hàm cơ sở B-Spline thứ i là Ni,k(t) được định nghĩa bởi phương trình

đệ quy sau:

(6)

vectơ nút là [ti, , tm] là một dãy số nguyên tăng dần t0 < t1 < … < tm-1

Với đường cong B-Spline như được định nghĩa bởi công thức như ở trên

Với vectơ nút [T] = [t0 t1 … tn+k]

Sau khi thêm nút vào vectơ nút, ta có một đường cong mới

Với vectơ nút [Y] = [y0 y1 … ym+k]

Giả sử m > n Mục đích là xác định các đa giác kiểm soát mới Cj sao cho P(t) = R(y) Theo thuật toán ta có:

(7)

Hàm được tính như sau:

(8)

Trang 32

Tóm lại đường cong B-spline có nhiều ưu điểm hơn so với các đường cong khác Thông qua các đa thức tham số xác định riêng rẽ trên một số điểm kiểm soát lân cận với số bậc tuỳ ý không phụ thuộc vào số lượng các điểm kiểm soát, có nghĩa khi dịch chuyển điểm kiểm soát của đường cong thì chỉ một vài phân đoạn lân cận của điểm kiểm soát đó bị ảnh hưởng chứ không phải toàn bộ đường cong

Trang 33

CHƯƠNG 4

ĐỊNH VỊ MÃ VẠCH BẰNG PHÂN ĐOẠN ẢNH

Giả sử rằng một hình ảnh có chứa mã vạch (có thể là chỉ có 1 mã vạch hoặc nhiều mã vạch trong hình ảnh, mà 1 mã vạch hoặc nhiều mã vạch đó có thể nằm thẳng hàng hoặc không thẳng hàng), nhưng làm thế nào để xác định được vị trí mã vạch ở đâu trong hình ảnh này Chung quy đây là một bài toán định vị mã vạch mà

cả 4 vấn đề cần phải giải quyết đã được nêu ra ở trên Bài toán định vị mã vạch này

có thể được xem như là bài toán phân đoạn ảnh, nhằm tìm và xác định một vùng đặc biệt nào đó trong hình ảnh mà ta quan tâm thôi Công việc phân đoạn này có thể được áp dụng vào bài toán phát hiện cạnh trong một hình ảnh nào đó bằng cách sử dụng các kỹ thuật phát hiện đường thẳng

Mã vạch bao gồm các đường thẳng màu đen và các khoẳng trắng kết hợp lại mà thành Do đó mã vạch được đặc trưng bởi sự hiện diện của những đường thẳng và những đường thẳng sẽ chỉ cho ta biết vùng nào có hình ảnh mã vạch Để giải quyết bài toán này, FHT và FHTA được sử dụng cho việc định vị mã vạch Hình ảnh đầu vào phải là hình ảnh nhị phân Vì thế trước khi thực hiện các công việc tiếp theo, giai đoạn tiền xử lý hình ảnh đầu vào cần phải được thực hiện trước tiên Giai đoạn tiền xử lý gồm các công việc như chuyển đổi hình ảnh màu thật thành hình ảnh màu xám và phát hiện cạnh Giải thuật tìm thấy cạnh được thực hiện theo công trình nghiên cứu [17] Trình tự định vị mã vạch được thực hiện theo sơ đồ khối ở hình 7

Trang 34

Hình 7 Trình tự định vị mã vạch Trong chương này các giải pháp cho bài toán định vị mã vạch đã được kiểm tra

và thử nghiệm để có thể đưa ra lời đánh giá hiệu quả của giải pháp Theo như đã trình bày về các phương pháp định vị mã vạch trong chương 3, FHT và FHTA được lựa chọn để giải quyết bài toán định vị mã vạch và kết quả sẽ được hiển thị trong hình 8 và hình 9 theo công trình nghiên cứu [15]

Trong việc đánh giá kết quả thực nghiệm, bằng cách tính toán và so sánh thời gian nhanh chậm mà công việc định vị mã vạch thực hiện xong So sánh giữa 2 cách định vị thông qua FHT và FHTA sẽ được trình bày tại mục 4.3

Hình 8 a) Hình ảnh ngõ vào 282x358, b) Hình ảnh phát hiện cạnh

Trang 35

Hình 9 a) Hình ảnh ngõ vào 1224x1632 b) Hình ảnh phát hiện cạnh

4.1 Định vị mã vạch thông qua FHT

Ý tưởng cơ bản của FHT là tìm hệ số góc (độ dốc) và giao điểm của đường thẳng (m, c) Không gian tham số được chia thành bốn phần chính và sau đó đo khoảng cách giữa các đường thẳng với gốc tọa tọa độ trung tâm Sơ đồ thuật toán FHT được trình bày trong hình 10

Trang 36

Hình 10 Sơ đồ giải thuật FHT Giải thuật FHT là giải thuật định vị mã vạch Giải thuật nhận đối số ngõ vào là hình ảnh mã vạch và đầu ra là vùng có chứa mã vạch Trước khi thực hiện FHT ta thực hiện phương pháp phát hiện cạnh ta sẽ có được hình ảnh nhị phân mà đã được phát hiện cạnh Nếu hình ảnh ngõ vào không phải là màu xám thì ta cần phải chuyển đổi sang định dạng màu xám Sau đó ta tính toán hệ số biến đổi Hough nhanh cho các cặp tọa độ của điểm ảnh có giá trị trên hình ảnh Những giá trị này sẽ được dùng để đo khoảng cách trong FHT Ta tiến hành đo khoảng cách giữa đường thẳng và gốc toạ độ Nếu khoảng cách thỏa mãn giá trị đề ra thì ta chia hệ số góc và

Trang 37

giao điểm, rồi tiến hành chia kích thước hình ảnh nhị phân, chia mặt phẳng hough

Ta chia không gian tham số thành bốn phần Mỗi phần tư có hệ số góc Cm và tọa độ giao điểm với trục y là Cc Giá trị ban đầu của Cm và Cc là số không Nếu khoảng cách giữa các đường thẳng và (Cm, Cc) ở dưới giá trị ngưỡng thì góc phần tư này được chia lại một lần nữa và (Cm, Cc) được thay đổi tùy thuộc vào kích thước Công việc này cứ lặp lại tiếp tục cho đến khi kích thước hình ảnh bằng 1x1 Nếu như kích thước hình ảnh bằng 1x1 thì ta sẽ thu được kết quả những tọa độ của đường thẳng cần tìm

Để xác định vùng có mã vạch Ta áp dụng các phép hình thái học đối với ảnh nhị phân (phép co và giãn ảnh) để loại bỏ các điểm nhiễu Sau đó dùng phép chiếu hàng và cột sẽ trả về kết quả vùng chứa hình ảnh mã vạch Phép chiếu là công việc chuyển đổi dữ liệu hai chiều thành dữ liệu một chiều bằng cách chiếu theo chiều dọc hoặc chiều ngang Giá trị dữ liệu một chiều thu được là kết quả của phép chiếu được tạo thành với nhiều độ lớn khác nhau Bằng cách áp dụng phép lấy ngưỡng cho các nhóm, các nhóm khác nhau sẽ được tách rời và kết quả là ta có được tọa độ điểm đầu và cuối của mã vạch cần tìm

Hình 8 và 9 được sử dụng để đánh giá hiệu quả công việc thực hiện định vị mã vạch thông qua FHT Trước khi tiến hành mô phỏng ta tăng kích thước hình ảnh lên hai lần Nếu không thì thuật toán không bao giờ đạt được đến kích thước hình ảnh 1x1 Trong quá trình mô phỏng giá trị ngưỡng của khoảng cách được thể hiện trong các góc phần tư với kích thước là 0,6•n Các kết quả định vị mã vạch, phép phân tích hình thái ảnh nhị phân và đồ thị được hiển thị trong hình 11 và hình 12

Trang 38

Hình 11.Mô phỏng hình ảnh 1 a) Kết quả FHT b) Định vị mã vạch c) Phép phân tích hình thái nhị phân co ảnh d) nở ảnh e) Phép chiếu theo chiều dọc f) Phép chiếu theo chiều ngang

Pixel theo chiều ngang Pixel theo chiều dọc

Giá trị pixel

Giá

trị

pixel

Trang 39

Hình 12 Mô phỏng hình ảnh 2 a) Kết quả FHT b) Định vị mã vạch c) Phép phân tích hình thái nhị phân co ảnh d) nở ảnh e) Phép chiếu theo chiều dọc f) Phép chiếu theo chiều ngang

Vùng có chứa mã vạch được xác định thông qua phép phân tích hình thái với ảnh nhị phân và sau đó là phương pháp tổng hợp lại theo chiều ngang và chiều dọc

Pixel theo chiều ngang Pixel theo chiều dọc

Giá trị pixel

Giá

trị

pixel

Trang 40

Giãn và co ảnh là hai hoạt động cơ bản nhất của phép phân tích hình thái Phép giãn ảnh làm mở rộng các điểm ảnh của vùng biên bên ngoài và vùng ảnh bên trong Phép co ảnh lại làm thu hẹp các điểm ảnh của vùng biên bên ngoài và vùng ảnh bên trong như trong công trình nghiên cứu [18] Giãn và co ảnh thường được sử dụng như là công cụ phóng to hoặc thu nhỏ cũng như để làm nổi bật hoặc loại bỏ những chi tiết không liên quan Một số điểm ảnh được thêm vào hoặc xóa bỏ từ hình ảnh ban đầu phụ thuộc vào kích thước của hạt nhân (điểm trung tâm) và hướng di chuyển Nếu hai hoạt động này được kết hợp nhằm vào các mục đích, nhiệm vụ khác và khi đó còn có tên gọi khác là phép mở và đóng Phép mở là phép co ảnh tiếp sau đó là phép giãn ảnh và phép đóng là phép giãn ảnh tiếp theo sau đó là phép

co ảnh với cùng một cấu trúc hạt nhân (điểm trung tâm) Phép mở và đóng này được

sử dụng để giải thoát cho các điểm ảnh bị cô lập Hướng ngang và kích thước của phần tử cấu trúc là 5 được sử dụng cho phép mở Hướng dọc và kích thước của phần tử cấu trúc là 20 được sử dụng cho phép đóng Kết quả của phép mở và đóng được thể hiện trong hình 11 (c,d) và hình 12 (c,d)

Kết quả hình chiếu theo chiều ngang và dọc cho hình ảnh 8 và 9 được trình bày trong hình 11 (e, f) và 12 (e, f) Vùng mã vạch là vùng có biên độ cao không bị gián đoạn được thể hiện trên đường cong vì nơi này có cường độ biên độ cao, các đường thẳng gần kề nhau Kết quả thời gian thực hiện công việc định vị được trình bày trong bảng 2

Bảng 2 Thời gian thực thi của FHT

Hình ảnh Thời gian thực thi (mili giây) Hình ảnh 1 583.34 Hình ảnh 2 390.69

4.2 Định vị mã vạch thông qua FHTA

Mục đích của FHTA là để xác định vị trí vùng nào đó trên hình ảnh có các đường thẳng Để thực hiện công việc này ta dùng một mặt nạ trượt có kích thước

Ngày đăng: 03/09/2021, 14:03

HÌNH ẢNH LIÊN QUAN

Biến đổi Hough (HT) thường được sử dụng để phát hiện các đối tượng có hình dạng nhưđường thẳng, đường cong và đường  elip trên các hình ảnh nhị  phân nh ư trong công trình nghiên cứu [13] đã nêu - Nhận dạng mã vạch dùng xử lý ảnh
i ến đổi Hough (HT) thường được sử dụng để phát hiện các đối tượng có hình dạng nhưđường thẳng, đường cong và đường elip trên các hình ảnh nhị phân nh ư trong công trình nghiên cứu [13] đã nêu (Trang 26)
Hình 8. a) Hình ảnh ngõ vào 282x358, b)Hình ảnh phát hiện cạnh - Nhận dạng mã vạch dùng xử lý ảnh
Hình 8. a) Hình ảnh ngõ vào 282x358, b)Hình ảnh phát hiện cạnh (Trang 34)
Hình 9. a) Hình ảnh ngõ vào 1224x1632 b)Hình ảnh phát hiện cạnh - Nhận dạng mã vạch dùng xử lý ảnh
Hình 9. a) Hình ảnh ngõ vào 1224x1632 b)Hình ảnh phát hiện cạnh (Trang 35)
Hình 12. Mô phỏng hình ảnh 2 a) Kết quả FHT b) Định vị  mã v ạ ch  - Nhận dạng mã vạch dùng xử lý ảnh
Hình 12. Mô phỏng hình ảnh 2 a) Kết quả FHT b) Định vị mã v ạ ch (Trang 39)
Hình 14.Mô phỏng hình ảnh 1 a) Kết quả FHTA b) Định vị  mã v ạ ch  c) Phép phân tích hình thái nhị phân đ óng d) m ở - Nhận dạng mã vạch dùng xử lý ảnh
Hình 14. Mô phỏng hình ảnh 1 a) Kết quả FHTA b) Định vị mã v ạ ch c) Phép phân tích hình thái nhị phân đ óng d) m ở (Trang 43)
Hình 15.Mô phỏng hình ảnh 2 a) Kết quả FHTA b) Định vị  mã v ạ ch  c) Phép phân tích hình thái nhị phân đ óng d) m ở - Nhận dạng mã vạch dùng xử lý ảnh
Hình 15. Mô phỏng hình ảnh 2 a) Kết quả FHTA b) Định vị mã v ạ ch c) Phép phân tích hình thái nhị phân đ óng d) m ở (Trang 44)
Hình 17. Mô phỏng hình ảnh mã vạch Code 25. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 17. Mô phỏng hình ảnh mã vạch Code 25 (Trang 47)
Hình 18. Mô phỏng hình ảnh mã vạch Code 128. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 18. Mô phỏng hình ảnh mã vạch Code 128 (Trang 48)
Hình 19. Mô phỏng hình ảnh mã vạch EAN8. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 19. Mô phỏng hình ảnh mã vạch EAN8 (Trang 49)
Hình 23. Mô phỏng hình ảnh mã vạch Code 39. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 23. Mô phỏng hình ảnh mã vạch Code 39 (Trang 53)
Hình 24. Mô phỏng hình ảnh mã vạch EAN13. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 24. Mô phỏng hình ảnh mã vạch EAN13 (Trang 54)
Bảng 5. Giá trị các kí số được biểu diễn thông qua số nhị phân. Phía bên trái  - Nhận dạng mã vạch dùng xử lý ảnh
Bảng 5. Giá trị các kí số được biểu diễn thông qua số nhị phân. Phía bên trái (Trang 61)
5.2 Nêu vấn đề - Nhận dạng mã vạch dùng xử lý ảnh
5.2 Nêu vấn đề (Trang 86)
Hình 31. a) Hàng quét 1-D b) Kết quả làm mượt B-spline (λ = 0,5)                  c) Sai số giữa hàng quét và dữ liệu sau làm mượ t B-spline - Nhận dạng mã vạch dùng xử lý ảnh
Hình 31. a) Hàng quét 1-D b) Kết quả làm mượt B-spline (λ = 0,5) c) Sai số giữa hàng quét và dữ liệu sau làm mượ t B-spline (Trang 89)
Hình 32. a) Một hàng quét mã vạch b) Đạo hàm của hàng quét. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 32. a) Một hàng quét mã vạch b) Đạo hàm của hàng quét (Trang 90)
Hình 41. a) Hàng quét mã vạch - Nhận dạng mã vạch dùng xử lý ảnh
Hình 41. a) Hàng quét mã vạch (Trang 99)
b) Kết quả sau khi áp dụng kỹ thuật siêu phân giải cho hình ảnh mã vạch 2. Bảng 7. Tất cả các giá trị giải mã của hình ảnh mã vạch 2 - Nhận dạng mã vạch dùng xử lý ảnh
b Kết quả sau khi áp dụng kỹ thuật siêu phân giải cho hình ảnh mã vạch 2. Bảng 7. Tất cả các giá trị giải mã của hình ảnh mã vạch 2 (Trang 99)
b) Kết quả sau khi áp dụng kỹ thuật siêu phân giải cho hình ảnh mã vạch 3. Bảng 8. Tất cả các giá trị giải mã của hình ảnh mã vạch 3 - Nhận dạng mã vạch dùng xử lý ảnh
b Kết quả sau khi áp dụng kỹ thuật siêu phân giải cho hình ảnh mã vạch 3. Bảng 8. Tất cả các giá trị giải mã của hình ảnh mã vạch 3 (Trang 100)
Hình 42. a) Hàng quét mã vạch - Nhận dạng mã vạch dùng xử lý ảnh
Hình 42. a) Hàng quét mã vạch (Trang 100)
Việc định vị không thành công cho 8 trong tổng số 155 hình ảnh thử nghiệm (chiếm 5.2 phần trăm) - Nhận dạng mã vạch dùng xử lý ảnh
i ệc định vị không thành công cho 8 trong tổng số 155 hình ảnh thử nghiệm (chiếm 5.2 phần trăm) (Trang 102)
Hình 44. a-b)Hình ảnh kích thước 1632x1224, c-d) Kết quả định vị. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 44. a-b)Hình ảnh kích thước 1632x1224, c-d) Kết quả định vị (Trang 103)
Hình 47. Kết quả nhận diện hình ảnh mã vạch Code 128. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 47. Kết quả nhận diện hình ảnh mã vạch Code 128 (Trang 106)
Hình 49. Kết quả nhận diện hình ảnh mã vạch EAN13. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 49. Kết quả nhận diện hình ảnh mã vạch EAN13 (Trang 107)
Hình 51. Kết quả nhận diện hình ảnh mã vạch EAN13. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 51. Kết quả nhận diện hình ảnh mã vạch EAN13 (Trang 108)
Hình 50. Kết quả nhận diện hình ảnh mã vạch EAN13. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 50. Kết quả nhận diện hình ảnh mã vạch EAN13 (Trang 108)
Hình 53. Kết quả nhận diện hình ảnh mã vạch EAN13. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 53. Kết quả nhận diện hình ảnh mã vạch EAN13 (Trang 109)
Hình 55. Kết quả nhận diện 3 hình ảnh mã vạch UPC-A, Code 25, EAN-13. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 55. Kết quả nhận diện 3 hình ảnh mã vạch UPC-A, Code 25, EAN-13 (Trang 110)
Hình 54. Kết quả nhận diện hình ảnh mã vạch UPC-A. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 54. Kết quả nhận diện hình ảnh mã vạch UPC-A (Trang 110)
Hình 56. Kết quả nhận diện 6 hình ảnh mã vạch EAN-13. - Nhận dạng mã vạch dùng xử lý ảnh
Hình 56. Kết quả nhận diện 6 hình ảnh mã vạch EAN-13 (Trang 111)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN