1.3 Mục đích đề tài Mục đích của đề tài nhằm xây dựng một chương trình dùng để đọc mã vạch từ camera, từ đó có thể phát triển để ứng dụng vào các yêu cầu đọc mã vạch thực tế như thư viện
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NÔNG LÂM THÀNH PHỐ HỒ CHÍ MINH
KHOÁ LUẬN TỐT NGHIỆP
THIẾT KẾ VÀ CHẾ TẠO MÔ HÌNH NHẬN DẠNG MÃ VẠCH
ỨNG DỤNG CÔNG NGHỆ XỬ LÝ ẢNH
Họ và tên sinh viên: Hà Tấn Đắc
Trần Thành Tuân Ngành: CƠ ĐIỆN TỬ
Trang 2THIẾT KẾ VÀ CHẾ TẠO MÔ HÌNH NHẬN DẠNG MÃ VẠCH ỨNG
DỤNG CÔNG NGHỆ XỬ LÝ ẢNH
Tác giả
HÀ TẤN ĐẮC TRẦN THÀNH TUÂN
Khóa luận được đệ trình để đáp ứng yêu cầu
cấp bằng Kỹ sư ngành
CƠ ĐIỆN TỬ
Giáo viên hướng dẫn:
ThS Nguyễn Lê Tường
KS Huỳnh Cao Vân
Tháng 6 năm 2011
Trang 3LỜI CẢM ƠN
Sau gần 4 năm học tập và rèn luyện, những kiến thức mà Thầy/ Cô bộ môn Cơ
điện tử, khoa Cơ khí – Công nghệ, trường Đại học Nông Lâm TP.HCM truyền đạt đã
thực sự cung cấp những hành trang hữu ích và quý báu để giúp chúng em vững bước
và tự tin trên con đường sự nghiệp trước mắt
Em xin chân thành cảm ơn sự tậm tâm, lòng nhiệt tình không ngại khó khăn vất
vả mà các Thầy cô đã dành cho sinh viên chúng em trong suốt quãng thời gian vừa
qua Đặc biệt chúng em cũng hết sức biết ơn ThS Nguyễn Lê Tường đã hỗ trợ và tận
tình giúp đỡ chúng em trong suốt quá trình chúng em thực hiện đề tài Chúng em cũng
muốn gửi lời cảm ơn chân thành đến Quý Thầy/ Cô trong Hội đồng đã giành thời gian
quý báu của mình để nhận xét và đóng góp ý kiến để khóa luận của chúng em thêm
hoàn thiện
Cuối cùng, chúng em muốn gửi lời chúc sức khỏe, hạnh phúc và thành công
đến các thầy cô
TP Hồ Chí Minh, ngày 30 tháng 05 năm 2011
Trần Thành Tuân
Trang 4TÓM TẮT
Đề tài nghiên cứu “Thiết kế và chế tạo mô hình nhận dạng mã vạch ứng
dụng công nghệ xử lý ảnh” được tiến hành tại ĐẠI HỌC NÔNG LÂM TP.HCM,
thời gian từ 08/03/2011 đến 30/05/2011
Mục đích của đề tài này là tạo ra một công cụ viết bằng ngôn ngữ C# kết hợp với
bộ thư viện mã nguồn mở EmguCV để nhận dạng mã vạch và xuất cơ sở dữ liệu bằng công nghệ xử lý ảnh Các mã vạch được thiết kế sẵn và được dán lên thẻ Webcam được lắp trong hộp đen có chiếu sáng sẽ chụp hình mã vạch khi thẻ được đưa vào Ảnh chụp sẽ được lưu vào bộ nhớ RAM và chuyển thành ảnh xám Ảnh nhị phân chuyển từ ảnh xám sẽ được xử lý để tính diện tích từng vạch và hiển thị giá trị tương ứng của mỗi vạch đó Giá trị của mã vạch được so sánh với cơ sở dữ liệu có sẵn Nếu giá trị
mã vạch trên thẻ và giá trị mã vạch trong cơ sở dữ liệu khớp nhau thì chương trình sẽ hiển thị thông tin tương ứng với mã vạch đó
Trang 5MỤC LỤC
Trang tựa i
Lời cảm ơn ii
Tóm tắt đề tài iii
Mục lục iv
Danh sách chữ viết tắt vii
Danh mục hình vẽ viii
CHƯƠNG 1: MỞ ĐẦU 1.1 Lý do chọn đề tài 1
1.2 Nhiệm vụ đề tài 1
1.3 Mục đích đề tài 2
1.4 Phương pháp nghiên cứu 2
CHƯƠNG 2: TỔNG QUAN VÀ CÁC VẤN ĐỀ LIÊN QUAN 2.1 Xử lý ảnh và các vấn đề cơ bản trong xử lý ảnh 3
2.1.1 Xử lý ảnh là gì? 3
2.1.2 Các khái niệm cơ bản trong xử lý ảnh 4
2.1.3 Thu nhận ảnh 8
2.1.4 Ứng dụng của xử lý ảnh 8
2.2 Tổng quan về mã vạch 9
2.2.1 Lịch sử 9
2.2.2 Các dạng mã vạch 11
2.2.3 Các loại mã vạch thông dụng 14
2.2.4 Ứng dụng của mã vạch 16
2.3 Tổng quan về máy đọc mã vạch 17
2.3.1 Barcode Scanner 17
2.3.2 Cấu tạo cơ bản của máy quét barcode quang học 17
2.3.3 Nguyên lý hoạt động của máy quét barcode quang học 18
2.3.4 Phân loại máy quét barcode quang học 19
2.4 Tìm hiểu ngôn ngữ C# 25
2.5 EmguCV 26
2.6 Các phương pháp chiếu sáng 28
Trang 62.6.3 Chiếu sáng phân cực 29
2.6.4 Chiếu sáng đồng trục 29
2.6.5 Chiếu sáng theo cấu trúc 30
2.6.6 Chiếu sáng phía sau 30
2.7 Các phần mềm ứng dụng xử lý ảnh nhận dạng mã vạch 31
2.7.1 Phần mềm trong nước 31
2.7.2 Phần mềm nước ngoài 32
CHƯƠNG 3: VẬT LIỆU VÀ PHƯƠNG PHÁP NGHIÊN CỨU 3.1 Vật liệu và phương tiện 35
3.2 Phương pháp 35
3.2.1 Nghiên cứu lý thuyết 35
3.2.2 Phương pháp thực hiện 36
CHƯƠNG 4: KẾT QUẢ VÀ THẢO LUẬN 4.1 Hộp lấy ảnh và thẻ 37
4.1.1 Hộp lấy ảnh 37
4.1.2 Thẻ và mã vạch 40
4.2 Chương trình 42
4.2.1 Giao diện của chương trình 42
4.2.2 Cơ sở dữ liệu 42
4.2.3 Lưu đồ giải thuật của chương trình 43
4.3 Kết quả khảo nghiệm 47
CHƯƠNG 5: KẾT LUẬN VÀ ĐỀ NGHỊ 5.1 Kết quả đạt được 53
5.2 Hướng phát triển của đề tài 53
TÀI LIỆU THAM KHẢO 54
PHỤ LỤC 55
Trang 7DANH SÁCH CHỮ VIẾT TẮT
ASCII – American Standard Code for Information Interchange
CCD – Charge Coupled Device
CMOS – Complementary Metal-Oxide-Semiconductor
EAN – European Article Numbering
GIS – Geographic Information System
IDE – Integrated Development Environment
Laser – Light Amplification by Stimulated Emission of Radiation
LED – Light Emitting Diode
RFID – Radio-frequency identification
UPC – Universal Product Code
USB – Universal Serial Bus
Webcam – Web Camera
XML – eXtensible Markup Language
ID – Identìfy
Trang 8DANH SÁCH CÁC HÌNH
Chương 2
Hình 2.1 – Quá trình xử lý ảnh 3
Hình 2.2 – Các bước cơ bản trong một hệ thống xử lý ảnh 3
Hình 2.3 – Mã số EAN-13 14
Hình 2.4 – Ví dụ về code 39 15
Hình 2.5 – Cấu tạo code 128 15
Hình 2.6 – Mã vạch theo code EAN-13 16
Hình 2.7 – Tròng CCD 17
Hình 2.8 – Máy đọc mã vạch dạng cầm tay 22
Hình 2.9 – Máy đọc mã vạch dạng để bàn 22
Hình 2.10 – Máy quét mã vạch dạng không dây 23
Hình 2.11 – Máy kéo thẻ barcode 24
Hình 2.12 – Cấu trúc tổng quát của EmgCV 27
Hình 2.13 – Phương pháp chiếu sáng trực tiếp vào đối tượng 28
Hình 2.14 – Phương pháp chiếu sáng khuếch tán trước đối tượng 28
Hình 2.15 – Phương pháp chiếu sáng đồng trục 29
Hình 2.16 – Phương pháp chiếu sáng theo cấu trúc 30
Hình 2.17 – Phương pháp chiếu sáng phía sau 30
Hình 2.18 – Phần mềm nhận dạng mã vạch Barcode 12.0 của KlinkSoft 31
Hình 2.19 – Giao diện phần mềm DTK Barcode Reader SDK 32
Hình 2.20 – Giao diện phần mềm EvoBarcode 34
Chương 3
Trang 9Chương 4
Hình 4.1 – Hộp lấy ảnh thiết kế trên Pro/E 38
Hình 4.2 – Mô hình thực tế của hộp lấy ảnh 38
Hình 4.3 – Kết nối hộp lấy ảnh với máy tính 39
Hình 4.4 – Tạo font barcode với phần mềm High-Logic FontCreator 6.0 40
Hình 4.5 – Tạo mã vạch với font barcode 40
Hình 4.6 – Mã vạch 41
Hình 4.7 – Thẻ có dán mã vạch 41
Hình 4.8 – Giao diện chương trình nhận dạng mã vạch 42
Hình 4.9 – Cơ sở dữ liệu được tạo bằng Access 42
Hình 4.10 – Sơ đồ tổng quát của chương trình 43
Hình 4.11 – Giải thuật chuyển sang ảnh nhị phân 44
Hình 4.12 – Giải thuật tính diện tích một vạch 45
Hình 4.13 – Giải thuật nhận dạng vạch 46
Hình 4.14 – Kết quả khảo nghiệm với mã vạch có diện tích lớn nhất 47
Hình 4.15 – Kết quả khảo nghiệm với mã vạch có diện tích nhỏ nhất 48
Hình 4.16 – Kết quả khảo nghiệm với mã vạch ngẫu nhiên (02007) 49
Hình 4.17 – Kết quả khảo nghiệm với mã vạch ngẫu nhiên (92154) 50
Hình 4.18 – Kết quả khảo nghiệm với mã không hợp lệ 51
Hình 4.19 – Kết quả khảo nghiệm với trường hợp không có thẻ 52
Hình 4.20 – Kết quả khảo nghiệm với trường hợp bị kẹt thẻ 50
Trang 10Như ta cũng biết công nghệ xử lý ảnh đã rất phổ biến trong công nghiệp, được ứng dụng vào trong thực tế sản xuất Và với những camera thông dụng đủ tốt nhưng không quá đắt tiền nếu chúng ta viết một chương trình nhận dạng bằng camera thì sẽ tiết kiệm được giá thành hơn khi mua máy đọc mã vạch Hơn nữa với camera thì chúng ta còn có thể sử dụng trong các mục đích khác ngoài việc đọc mã vạch Đó là
ưu điểm rất lớn của xử lý ảnh trong công nghiệp
Vì vậy, chúng em muốn đi vào nghiên cứu và viết một chương trình nhận dạng
mã vạch ứng dụng công nghệ xử lý ảnh, và đã chọn đề tài: “Thiết kế và chế tạo mô
hình nhận dạng mã vạch ứng dụng công nghệ xử lý ảnh”
1.2 Nhiệm vụ đề tài
Thiết kế mã vạch
Viết chương trình nhận dạng mã vạch bằng ngôn ngữ C#
Thiết kế và thi công mô hình nhận dạng mã vạch
Tạo cơ sở dữ liệu
Trang 111.3 Mục đích đề tài
Mục đích của đề tài nhằm xây dựng một chương trình dùng để đọc mã vạch từ camera, từ đó có thể phát triển để ứng dụng vào các yêu cầu đọc mã vạch thực tế như
thư viện, nhà sách, siêu thị…
1.4 Phương pháp nghiên cứu
Dựa trên yêu cầu của đề tài chúng em đã thu thập tài liệu về mã vạch và cách giải mã mã vạch, tìm hiểu về các máy đọc mã vạch thực tế để ứng dụng vào việc thiết
Trang 12Hình 2.1 - Quá trình xử lý ảnh
Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là đặc trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối tượng trong không gian và nó có thể xem như một hàm n biến P(c1, c2, , cn) Do đó, ảnh trong xử
lý ảnh có thể xem như ảnh n chiều
Sơ đồ tổng quát của một hệ thống xử lý ảnh:
Hình 2.2 - Các bước cơ bản trong một hệ thống xử lý ảnh
XỬ LÝ ẢNH Ảnh
Ảnh
“Tốt Kết luận
Hệ quyết định
Đối sánh rút
ra kết luận Hậu
xử lý
Trang 132.1.2 Các khái niệm cơ bản trong xử lý ảnh
- Ảnh màu: thông thường, ảnh màu được tạo nên từ 3 ảnh xám đối với màu nền
đỏ (RED), xanh lá cây (GREEN), xanh lam (BLUE) Tất cả các màu trong tự nhiên đều có thể được tổng hợp từ 3 thành phần màu trên theo các tỷ lệ khác nhau Ví dụ về biểu diễn ảnh màu:
Ma trận biểu diễn mức xám của thành phần RED:
0 7 11 0
115 94 20 0
0 0 15 16
Trang 14Ma trận biểu diễn mức xám của thành phần GREEN:
Ảnh trong tự nhiên là những tín hiệu liên tục về không gian và giá trị độ sáng
Để có thể lưu trữ và biểu diễn ảnh bằng máy tính, con người phải tiến hành biến đổi các tín hiệu liên tục đó thành một số hữu hạn các tín hiệu rời rạc thông quá quá trình lượng tử hóa và lấy mẫu thành phần giá trị độ sáng
Một phần tử ảnh (Picture Element) là một giá trị biểu diễn cho mức xám hay cường độ ảnh tại một vị trí sau khi đã biến đổi ảnh thành một số hữu hạn các tín hiệu rời rạc
Trang 15 Khử nhiễu:
Có 2 loại nhiễu cơ bản trong quá trình thu nhận ảnh:
- Nhiều hệ thống: là nhiễu có quy luật có thể khử bằng các phép biến đổi
- Nhiễu ngẫu nhiên: vết bẩn không rõ nguyên nhân → khắc phục bằng các phép lọc
- Đặc điểm biên và đường biên: Đặc trưng cho đường biên của đối tượng và
do vậy rất hữu ích trong việc trích trọn các thuộc tính bất biến được dùng khi nhận dạng đối tượng Các đặc điểm này có thể được trích chọn nhờ toán tử gradient, toán tử
la bàn, toán tử Laplace, toán tử “chéo không” (zero crossing) v.v
Việc trích chọn hiệu quả các đặc điểm giúp cho việc nhận dạng các đối tượng ảnh chính xác, với tốc độ tính toán cao và dung lượng nhớ lưu trữ giảm xuống
Trang 16 Nhận dạng:
Nhận dạng tự động (automatic recognition), mô tả đối tượng, phân loại và phân nhóm các mẫu là những vấn đề quan trọng trong thị giác máy, được ứng dụng trong nhiều ngành khoa học khác nhau Tuy nhiên, một câu hỏi đặt ra là: mẫu (pattern) là gì? Watanabe, một trong những người đi đầu trong lĩnh vực này đã định nghĩa: “Ngược lại với hỗn loạn (chaos), mẫu là một thực thể (entity), được xác định một cách ang áng (vaguely defined) và có thể gán cho nó một tên gọi nào đó” Ví dụ mẫu có thể là ảnh của vân tay, ảnh của một vật nào đó được chụp, một chữ viết, khuôn mặt người hoặc một ký đồ tín hiệu tiếng nói Khi biết một mẫu nào đó, để nhận dạng hoặc phân loại mẫu đó có thể:
- Hoặc phân loại có mẫu (supervised classification), chẳng hạn phân tích phân biệt (discriminant analyis), trong đó mẫu đầu vào được định danh như một thành phần của một lớp đã xác định
- Hoặc phân loại không có mẫu (unsupervised classification hay clustering) trong đó các mẫu được gán vào các lớp khác nhau dựa trên một tiêu chuẩn đồng dạng nào đó Các lớp này cho đến thời điểm phân loại vẫn chưa biết hay chưa được định danh
Hệ thống nhận dạng tự động bao gồm ba khâu tương ứng với ba giai đoạn chủ yếu sau đây:
- Thu nhận dữ liệu và tiền xử lý
- Biểu diễn dữ liệu
- Nhận dạng, ra quyết định
Bốn cách tiếp cận khác nhau trong lý thuyết nhận dạng là:
- Đối sánh mẫu dựa trên các đặc trưng được trích chọn
- Phân loại thống kê
- Đối sánh cấu trúc
- Phân loại dựa trên mạng nơ-ron nhân tạo
Trong các ứng dụng rõ ràng là không thể chỉ dùng có một cách tiếp cận đơn lẻ
để phân loại “tối ưu” do vậy cần sử dụng cùng một lúc nhiều phương pháp và cách tiếpcận khác nhau Do vậy, các phương thức phân loại tổ hợp hay được sử dụng khi
Trang 17nhận dạng và nay đã có những kết quả có triển vọng dựa trên thiết kế các hệ thống lai (hybrid system) bao gồm nhiều mô hình kết hợp
Việc giải quyết bài toán nhận dạng trong những ứng dụng mới, nảy sinh trong cuộc sống không chỉ tạo ra những thách thức về thuật giải, mà còn đặt ra những yêu cầu về tốc độ tính toán Đặc điểm chung của tất cả những ứng dụng đó là những đặc điểm đặc trưng cần thiết thường là nhiều, không thể do chuyên gia đề xuất, mà phải được trích chọn dựa trên các thủ tục phân tích dữ liệu
2.1.3 Thu nhận ảnh
Thiết bị thu nhận ảnh là camera, scanner, webcam,… Các thiết bị thu nhận ảnh này có thể cho ảnh trắng đen B/W (Black and White), ảnh xám hoặc ảnh màu Với ảnh B/W mức màu z là 0 hoặc 1 Với ảnh đa cấp xám, mức xám biến thiên từ 0 đến 255 Ảnh màu, mỗi điểm ảnh lưu trữ trong 3 bytes và do đó ta có 2 8x3 = 2 24 màu (cỡ 16,
7 triệu màu)
Thiết bị ra ảnh có thể là máy in đen trắng, máy in màu hay máy vẽ (ploter) Máy vẽ cũng có nhiều loại: loại dùng bút, loại phun mực
Nhìn chung, các hệ thống thu nhận ảnh thực hiện 2 quá trình:
- Cảm biến: biến đổi năng lượng quang học (ánh sáng) thành năng lượng điện
- Tổng hợp năng lượng điện thành ảnh
2.1.4 Ứng dụng của xử lý ảnh
Nhận dạng và xử lý ảnh là một trong những lĩnh vực có nhiều ứng dụng trong thực tiễn như: hệ thống tin địa lý (GIS), quân sự, y học… Nhìn chung, mục tiêu của xử
lý ảnh có thể chia làm 3 hướng như sau:
- Xử lý ảnh ban đầu để có được ảnh mới theo một yêu cầu xác định (ví dụ như ảnh mờ cần xử lý để được ảnh rõ hơn)
- Phân tích ảnh để thu được các thông tin đặc trưng giúp cho việc phân loại, nhận biết ảnh (ví dụ phân tích ảnh vân tay để trích chọn các đặc trưng vân tay)
- Hiểu ảnh đầu vào để có những mô tả về ảnh ở mức cao hơn, sâu hơn (ví dụ từ ảnh một tai nạn giao thông phác họa hiện trường tai nạn)
Trang 182.2 Tổng quan về mã vạch
Mã vạch là sự thể hiện thông tin trong các dạng nhìn thấy trên các bề mặt mà máy móc có thể đọc được Nguyên thủy thì mã vạch lưu trữ dữ liệu theo bề rộng của các vạch được in song song cũng như của khoảng trống giữa chúng, nhưng ngày nay chúng còn được in theo các mẫu của các điểm, theo các vòng tròn đồng tâm hay chúng
ẩn trong các hình ảnh Mã vạch có thể được đọc bởi các thiết bị quét quang học gọi là máy đọc mã vạch hay được quét từ hình ảnh bằng các phần mềm chuyên biệt
Nội dung của mã vạch là thông tin về sản phẩm như: nước sản xuất, tên doanh nghiệp, lô, tiêu chuẩn chất lượng đăng ký, thông tin về kích thước sản phẩm, nơi kiểm tra
2.2.1 Lịch sử
Ý tưởng về mã vạch được phát triển bởi Norman Joseph Woodland và Bernard Silver Năm 1948 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 ước của một vị chủ tịch của một công ty buôn bán đồ ăn là làm sao để có thể tự động kiểm tra toàn bộ quy trình Một trong những ý tưởng đầu tiên của họ là sử dụng mã Morse để in những vạch rộng hay hẹp thẳng đứng Sau đó, họ chuyển sang sử dụng dạng "điểm đen" của mã vạch với các vòng tròn đồng tâm Họ đã gửi đến cơ quan quản lý sáng chế Mỹ ngày 20 tháng 10 năm 1949 công trình Classifying Apparatus and Method (Thiết bị và phương pháp phân loại) để lấy bằng sáng chế Bằng sáng chế đã được phát hành ngày 7 tháng 10 năm 1952
Thiết bị đọc mã vạch đầu tiên được thiết kế và xây dựng bởi Woodland (khi đó đang làm việc cho IBM) và Silver năm 1952 Nó bao gồm một đèn dây tóc 500 W và một ống chân không nhân quang tử được sản xuất bởi RCA cho các phim có âm thanh (nó để in theo phương pháp quang học lên trên phim) Thiết bị này đã không được áp dụng trong thực tế: để có dòng điện đo được bằng các nghiệm dao động (oscilloscope) thì đèn công suất 500 W gần như đã làm cháy giấy có mẫu mã vạch đầu tiên của họ
Nó đã không được sản xuất đại trà Năm 1962 họ bán sáng chế này cho công ty Philips, sau đó Philips lại bán nó cho RCA Phát minh ra tia laser năm 1960 đã làm cho các thiết bị đọc mã vạch trở nên rẻ tiền hơn, và sự phát triển của mạch bán dẫn
Trang 19(IC) làm cho việc giải mã các tín hiệu thu được từ mã vạch có ý nghĩa thực tiễn Đáng tiếc là Silver đã chết năm 1963 ở 38 tuổi trước khi có bất kỳ những gì thực tiễn thu được từ sáng chế này
Năm 1972, cửa hàng Kroger ở Cincinnati thử nghiệm việc sử dụng đầu đọc mã vạch điểm đen, với sự trợ giúp của RCA nhưng thử nghiệm đã không thu được thành công nào đáng kể Cùng thời gian đó, Woodland ở IBM đã phát triển mã vạch tuyến tính được chấp nhận vào ngày 3 tháng 4 năm 1973 như là Mã sản phẩm chung (tiếng Anh: Universal Product Code, hay UPC) Vào ngày 26 tháng 6 năm 1974, sản phẩm bán lẻ đầu tiên (gói 10 thanh kẹo cao su Juicy Fruit của Wrigley) đã được bán bằng cách sử dụng đầu đọc mã vạch tại siêu thị Marsh ở Troy, Ohio (Gói kẹo cao su này hiện nay nằm trong Viện bảo tàng quốc gia Hoa Kỳ ở Smithsonian.)
Năm 1992, Woodland đã được trao tặng giải thưởng Huy chương công nghệ quốc gia bởi Tổng thống George H W Bush
Năm 2004, Nanosys Inc sản xuất mã vạch nano (nanobarcode) - sợi dây kích thước nano (10-9 m) chứa các phần khác nhau của Si và GexSi1-x
Trang 20máy bay
Trang 23Trong hệ thống mã số EAN cho sản phẩm bán lẻ có hai loại, một loại sử dụng
13 con số (EAN-13) và loại kia sử dụng 8 con số (EAN-8)
Hình 2.3 - Mã số EAN-13 gồm 13 con số có cấu tạo như sau: từ trái sang phải
- Mã quốc gia: hai hoặc ba con số đầu
- Mã doanh nghiệp: có thể gồm từ bốn, năm hoặc sáu con số
- Mã mặt hàng: có thể là năm, bốn hoặc ba con số tuỳ thuộc vào mã doanh nghiệp
- Số cuối cùng là số kiểm tra
Để đảm bảo tính thống nhất và tính đơn nhất của mã số, mã quốc gia phải do tổ chức mã số vật phẩm quốc tế (EAN International) cấp cho các quốc gia là thành viên
Trang 24 Code 39
UPC và EAN dù là 2 lọai mã vạch có tính chất chuyên nghiệp và quốc tế nhưng khuyết điểm của nó là dung lượng có giới hạn và chỉ mã hóa được số, không mã hóa được chữ
Code 39 được phát triển sau UPC và EAN là ký hiệu chữ và số thông dụng nhất Nó không có chiều dài cố định như UPC và EAN do đó có thể lưu trữ nhiều lượng thông tin hơn bên trong nó Do tính linh họat như vậy, Code 39 được ưa chuộng rộng rãi trong bán lẻ và sản xuất Bộ ký tự này bao gồm tất cả các chữ hoa, các ký số
từ 0 đến 9 và 7 ký tự đặc biệt khác
Hình 2.4 - Ví dụ về code 39
Nhiều tổ chức đã chọn một dạng thức Code 39 để làm chuẩn công nghiệp của mình trong đó đáng chú ý là Bộ Quốc Phòng Mỹ đã lấy Code 39 làm bộ mã gọi là LOGMARS
Code 128
Code 128 là loại mã vạch tiết kiệm được không gian hơn so với code 39,do nó
có độ nén cao hơn,và nó được dùng trong công nghiệp vận tải và đóng gói Code 128
có thể mã hóa ký tự và số và những ký tự đặc biệt
Hình 2.5 - Cấu tạo code 128
Code 128 bao gồm ba loại:
- 128A - ký tự ASCII từ 00 đến 95(0 – 9,A-Z và mã điều khiển) và các ký tự
Trang 25- 128B - ký tự ASCII từ 32 đến 127(0 – 9,A-Z,a –z) và các ký tự đặc biệt
- 128C- các ký tự số từ 00 đến 99
2.2.4 Ứng dụng của mã vạch
Mã vạch được sử dụng ở những nơi mà các đồ vật cần phải đánh số với các thông tin liên quan để các máy tính có thể xử lý Thay vì việc phải đánh một chuỗi dữ liệu vào phần nhập liệu của máy tính thì người thao tác chỉ cần quét mã vạch cho thiết
bị đọc mã vạch Chúng cũng làm việc tốt trong điều kiện tự động hóa hoàn toàn, chẳng hạn như trong luân chuyển hành lý ở các sân bay
Các dữ liệu chứa trong mã vạch thay đổi tùy theo ứng dụng Trong trường hợp đơn giản nhất là một chuỗi số định danh được sử dụng như là chỉ mục trong cơ sở dữ liệu trong đó toàn bộ các thông tin khác được lưu trữ Các mã EAN-13 và UPC tìm thấy phổ biến trên hàng bán lẻ làm việc theo phương thức này
Hình 2.6 - Mã vạch theo code EAN-13
Trong các trường hợp khác, mã vạch chứa toàn bộ thông tin về sản phẩm, mà không cần cơ sở dữ liệu ngoài Điều này dẫn tới việc phát triển mã vạch tượng trưng
mà có khả năng biểu diễn nhiều hơn là chỉ các số thập phân, có thể là bổ sung thêm các ký tự hoa và thường của bảng chữ cái cho đến toàn bộ bảng mã ký tự ASCII và nhiều hơn thế Việc lưu trữ nhiều thông tin hơn đã dẫn đến việc phát triển của các ma trận mã (một dạng của mã vạch 2D), trong đó không chứa các vạch mà là một lưới các
ô vuông Các mã vạch cụm là trung gian giữa mã vạch 2D thực thụ và mã vạch tuyến tính, và chúng được tạo ra bằng cách đặt các mã vạch tuyến tính truyền thống trên các
Trang 262.3 Tổng quan về máy đọc mã vạch
Mã vạch và công nghệ mã vạch sẽ chẳng có ý nghĩa gì cả nếu chúng ta không
có những thiết bị đầu - cuối dùng để tạo và giải mã ký hiệu Có nhiều loại thiết bị dùng
để tạo và giải mã barcode mà trong đó Barcode Thermal Printer và Barcode Scanner là loại thông dụng nhất được ứng dụng rộng rãi trong cả buôn bán lẻ lẫn trong sản xuất công nghiệp, v.v
2.3.1 Barcode Scanner
Nếu các bạn có dịp vào đến tận các cơ sở in gia công nhãn mã vạch chuyên nghiệp, hay cửa hàng, siêu thị các bạn sẽ được nghe những tiếng kêu "bíp bíp" vang lên đây đó Và đó chính là thứ ngôn ngữ chung của họ nhà barcode scanner
Cũng mang tiếng là scanner, nhưng barcode scanner chỉ scan được duy nhất
"mã vạch" mà thôi Máy đọc thẻ mã vạch (gọi là Slot barcode reader), thực chất cũng
là 1 loại barcode scanner được trang bị tia quét nằm ngay trong khe kéo thẻ Hầu như tất cả các loại barcode scanner được sử dụng phổ biến ngày nay đều là loại barcode quang học trong đó người ta dùng tia sáng để nhận dạng mã vạch
2.3.2 Cấu tạo cơ bản của máy quét barcode quang học
Một máy quét barcode quang học cơ bản và đầy đủ gồm 3 thành phần:
Hình 2.7 - Tròng CCD
Trang 27- Loại Laser Scanner: gồm 1 mắt đọc tựa như mắt đọc của đầu đĩa hình, phát ra tia laser đỏ, sau đó người ta dùng kính phản xạ để tạo thành vệt sáng cắt ngang qua bề mặt của mã vạch Loại laser scanner không cần dùng tròng thu ánh sáng
Bộ phận truyền tín hiệu
Phát ra các xung điện tượng trưng cho các vạch và các khoảng trống thu được
từ bộ phận quét Thường bộ phận quét và bộ phận truyền được tích hợp trên cùng 1 board mạch
Bộ phận giải mã (Decoder)
Nhận tín hiệu xung điện từ bộ phận truyền và giải mã theo dạng thức của loại barcode được lập trình sẵn trong bộ nhớ Nếu giải mã thành công, 1 tiếng kêu "bíp" sẽ phát ra và tín hiệu được giải mã sẽ xuất hiện trên màn hình của phần mềm đang sử dụng
2.3.3 Nguyên lý hoạt động của máy quét barcode quang học
Các máy quét barcode bắn ra 1 chùm tia sáng, thường là màu đỏ Nếu nó rơi vào 1 vùng sáng, thì 1 con số zero sẽ được đọc Còn nếu nó rơi vào 1 vùng tối, thì máy
sẽ nhận dạng là con số 1 Như vậy, việc quét barcode sẽ phát ra 1 chuỗi gồm những con số zero và 1 Chuỗi này sẽ tượng trưng cho các ký tự hoặc ký số đã được mã hoá
và được truyền vào bộ giải mã Bộ giải mã có thể là phần cứng (bộ phận giải mã) có Firmware, hoặc cũng có thể là phần mềm được cài vào máy tính Khi chuỗi zero và 1 đưa vào bộ giải mã được nhận dạng là 1 loại barcode nào đó, thì nó sẽ được biên dịch thành mã số ban đầu và 1 tiếng "bíp" sẽ báo hiệu Còn bằng ngược lại thì máy sẽ không báo hiệu gì cả và không có mã số nào được hiển thị vì tín hiệu thu được không nằm trong các loại barcode được lập trình sẵn trong Firmware của phần cứng hoặc trong Software của phần mềm
Thông thường hầu hết các loại barcode scanner có mặt trên thị trường đều có sẵn bộ giải mã bên trong và ta không cần phải lập trình để giải mã barcode
Đặc điểm của scanner quang học là các vạch càng cao thì góc quét càng lớn và khả năng đọc mã vạch càng cao Vạch càng thấp thì chùm tia sáng đập vào nó càng ít (tức
Trang 28Như vậy, trong nguyên lý hoạt động của máy quét barcode quang học, ta thấy rằng khi 1 máy quét barcode còn tốt (tức bộ phận phát tia sáng còn tốt) không đọc được 1 loại barcode nào đó thì điều này có nghĩa là máy vẫn đọc được tín hiệu, nhưng không giải mã được vì chuỗi (0, 1) thu được không nằm trong bất kỳ loại barcode nào
có sẵn trong Firmware của máy
2.3.4 Phân loại máy quét barcode quang học
Tùy theo công nghệ chế tạo và tùy theo nhu cầu, mục đích sử dụng mà người ta phân loại barcode scanner theo nhiều cách khác nhau :
Phân loại theo công nghệ
Hiện nay máy quét barcode quang học được phân chia thành 2 loại:
- CCD Scanner: Các máy quét theo công nghệ CCD nói chung đáng tin cậy và rất bền Khuyết điểm chủ yếu của nó là chỉ quét được barcode trên bề mặt phẳng với
cự ly gần, không quét được barcode theo chiều cong như các loại barcode dán trên chai, nhưng bù lại giá thành của CCD scanner rẻ hơn nhiều so với loại laser scanner
- Laser Scanner: Các máy quét barcode dùng tia sáng laser cho ra tia sáng rất mãnh cắt ngang bề mặt barcode Ưu điểm của các máy quét dùng tia laser là quét rất nhạy, chính xác, có thể quét mã vạch trên bề mặt cong và có khả năng quét tầm xa Nhược điểm: không bền bằng máy quét CCD vì máy quét laser dùng mắt đọc tia laser tưong tự như mắt đọc của đầu đĩa Sau 1 thời gian đọc có giới hạn, mắt đọc có thể bị yếu đi xin ra hiện tượng "kén barcode" giống như hiện tượng kén đĩa của đầu đĩa hình
và có thể bị hư hẳn
Phân loại theo công dụng
Linear Barcode Scanner (Máy quét barcode tuyến tính hay 1-D):
Quét được các loại barcode 1-D thông dụng và 1 số không thông dụng Thường đây là loại barcode cầm tay (handheld scanner) phát ra tia sáng thẳng nằm ngang Linear Scanner quét được bao nhiêu loại barcode 1-D cần phải tra cứu ở sách hướng dẫn sử dụng, điều này có nghĩa là có 1 số loại ký hiệu barcode 1-D mà máy không quét được
Trang 29 2-D Barcode Scanner (máy quét barcode 2-D):
Còn gọi là Barcode Imager là loại máy quét hay máy đọc mã vạch 2-D như PDF-417, Data Matrix, MaxiCode, v.v và lẽ dĩ nhiên cũng có thể đọc được các loại mã vạch 1 chiều Barcode Imager có thể là loại cầm tay hoặc để bàn như trong siêu thị thường dùng
Máy quét mã vạch 2-D dùng tia laser sau đó phản xạ bằng 1 hệ thống lăng kính
để tạo thành 1 chùm sáng phủ trên mọi góc độ của ký hiệu mã vạch Chính vì vậy, khi quét loại mã vạch 1-D bằng máy quét mã vạch 2D, ta có thể quét theo bất cứ chiều nào cũng được, trong khi đó nếu dùng máy quét 1-D, ta phải bắn tia sáng cắt ngang qua toàn bộ mã vạch Đó cũng là lý do các siêu thị lớn thường chọn máy quét để bàn 2-D
để quét tính tiền các món hàng cho mau lẹ
Phân loại theo cổng giao tiếp
Có 3 loại cổng giao tiếp mà máy quét mã vạch thường sử dụng:
Loại dùng cổng Keyboard (còn gọi là Keyboard Wedge):
Với cổng giao tiếp này, khi kết nối với máy tính, ta phải rút dây bàn phím ra khỏi máy tính Sau đó ghim dây của scanner vào vị trí của bàn phím, rồi ghim dây của bàn phím vào đầu còn lại của dây scanner (hình bên cạnh) Đặc điểm của máy quét mã vạch dùng cổng Keyboard là sau khi được giải mã, các tín hiệu sẽ theo cổng keyboard
để hiển thị mã số ngay tại vị trí của con nháy, tương tự như khi ta gõ mã số bằng bàn phím Do đó ta chỉ cần dùng 1 phần mềm văn bản thông dụng như Nodepad, Word hay Excel cũng có thể quét được mã vạch.Thường các máy quét cầm tay hay sử dụng cổng Keyboard vì nó tiên lợi, dễ sử dụng và không cần driver gì cả
Loại dùng cổng RS-232 (còn gọi là cổng COM- cổng con chuột)
Máy quét mã vạch sử dụng giao diện RS-232 thường phải cung cấp thêm 1 nguồn điện 5VDC từ bên ngoài và phải dùng phần mềm đặc biệt kèm theo máy để setup Loại RS-232 cũng sử dụng một chương trình giải mã barcode bên trong tuy nhiên ta không thu được tín hiệu dạng văn bản từ giao diện RS-232 Nếu sử dụng 1 máy quét qua cổng COM để quét mã vạch mà không có phần mềm gì đặt biệt, ta chỉ nghe một tiếng "bíp" và không thu được gì cả Điều này làm cho nhiều người lầm
Trang 30giải mã rồi (bởi thế mới có tiếng "bíp" phát ra) Vấn đề là tín hiệu thu được từ cổng COM không xuất ra được dưới dạng văn bản để có thể hiển thị được mã số Do đó trong trường hợp này, một chương trình chuyển đổi tín hiệu sẽ được viết Nếu bạn là nhà lập trình thì đây chính là công đoạn mà bạn cần phải thực hiện Thường các loại máy quét để bàn và các loại máy quét 2-D hay sử dụng cổng RS-232
Loại dùng cổng USB
Cũng giống như dùng cổng Keyboard, máy quét mã vạch dùng cổng USB không cần dùng nguồn điện phụ trợ 5VDC từ bên ngoài, mà nguồn điện này được lấy trực tiếp từ cổng nối USB với cường độ dòng điện lên đến 500mA.Dùng cổng USB có thể cắm thẳng thiết bị vào máy tính mà không cần phải shutdown máy, tốc độ truyền
dữ liệu nhanh và dữ liệu quét cũng có thể đưa thẳng vào các phần mềm văn bản thông dụng như trường hợp máy quét dùng cổng keyboard
Phân loại theo cấu tạo
Tùy theo môi trường sử dụng và cách thức sử dụng mà các nhà chế tạo ra máy quét barcode có nhiều chủng loại barcode scanner khác nhau như dạng cầm tay, dạng
để bàn, dạng không dây, dạng đũa, dạng đọc thẻ mã vạch, dạng kéo thẻ v.v Dưới đây
là 1 số dạng scanner thông dụng:
Dạng cầm tay (handheld scanner):
Dạng cầm tay thường được sử dụng trong các cửa hàng bán lẻ, trong nhà sách, dùng để kiểm tra khi in mã vạch Dạng cầm tay có cả 2 dạng là CCD scanner và Laser scanner và thường là loại tuyến tính Tuy nhiên cũng vẫn có dạng cầm tay 2-D có thể quét được mã vạch 2 chiều Đa số các loại Handheld Scanner đều có kèm theo chân đứng và giá đở, do đó dạng cầm tay vẫn có thể để bàn được như thường Dạng cầm tay
là loại scanner rẻ tiền nhất trong số tất cả các chủng loại barcode scanner
Trang 31Hình 2.8 - Máy đọc mã vạch dạng cầm tay
Dạng để quầy hay để bàn (In-counter Scanner):
Dạng để bàn là loại 2-D barcode scanner sử dụng chùm tia sáng laser quét với tốc độ rất cao, có thể quét lên đến tốc độ 2000 scans/second Với tốc độ này, máy quét rất nhạy và có thể quét được các loại mã vạch kém chất lượng Dạng máy quét để bàn thường được dùng trong các siêu thị hay các trung tâm thương mại cỡ lớn Kết hợp với
hệ thống POS tạo thành điểm bán hàng mang tính chuyên nghiệp và hiện đại
Hình 2.9 - Máy đọc mã vạch dạng để bàn
Dạng desktop:
Là loại scanner nhỏ gọn được kết nối thường xuyên với máy vi tính giống như
là 1 thiết bị ngoại vi Dạng Desktop thường chỉ quét được barcode 1-D và được sử dùng cho các công việc văn phòng, các cơ quan hành chánh có nhu cầu quét mã vạch trên giấy tờ tài liệu
Dạng đọc thẻ, coupon, tài liệu:
Là loại máy quét 2-D sử dụng chùm tia laser và có tầm quét xa và rộng Tốc độ quét của loại này lên đến trên 1000 scans/second Dạng máy quét dùng để đọc thẻ,
Trang 32ở các quầy tính tiền trong các Club, quầy Bar, cửa hàng ăn uống khi thẻ barcode được
sử dụng như là thẻ hội viên (membership)
Dạng không dây "Mẹ bồng con"(Wireless Scanner):
Tựa như loại điện thoại "Mẹ bồng con", loại máy này gồm 2 phần: 1 phần nối với máy tính (coi như máy mẹ) và phần kia là scanner không dây sử dụng Pin sạc Loại scanner này dùng để quét mã vạch trên các món hàng lớn mà ta không thể "bê"
nó về quầy tính tiền được Thí dụ: quét mã vạch trên 1 cái "tủ lạnh" Chắc chắn ta phải dùng loại scanner này vì ta không thể mang tủ lạnh đến quầy tính tiền được
Hình 2.10 - Máy quét mã vạch dạng không dây
Dạng Portable Data Terminal:
Đây là dạng máy trạm theo công nghệ không dây RFID mà các công ty chuyên bán các thiết bị mã vạch của chúng ta thường gọi là "máy kiểm kho" Các Data Terminal thu thập dữ liệu và lưu trữ vào bộ nhớ của máy Sau đó có thể truy xuất dữ liệu tại máy hoặc Download về máy tính để xử lý Sự khác biệt giữa Data Terminal và loại máy "Mẹ bồng con" là Terminal hoạt động như 1 máy trạm, có Firmware và có thể lập trình cho dữ liệu thu thập, còn loại máy "Mẹ bồng con" hoạt động như 1 máy quét cầm tay thông thường, tức là dữ liệu thu thập được truyền thẳng về máy vi tính
Do đó nó được xếp vào loại Handheld Scanner chứ không phải theo công nghệ RFID Portable Data Terminal được sử dụng trong hệ thống kiểm kho, kiểm tra hàng hoá trên các kệ hàng hoặc thu thập dữ liệu ở những nơi không có máy tính
Dạng máy quét công nghiệp (Industrial Barcode Scanner):
Dạng máy quét công nghiệp dùng để kiểm tra hàng hoá sản xuất ngay tại đầu ra của băng chuyền Từ đó biết được chính xác số lượng, mã mặt hàng của mỗi sản phẩm, tiết kiệm được nhân lực và thời gian dùng để kiểm tra sản phẩm Dạng này có
Trang 33độ chính xác rất cao, được thiết kế treo giống như đèn sân khấu Chùm tia sáng phát ra
có miền quét rất sâu và phủ rộng, có thể quét cùng lúc nhiều loại mã vạch trong vùng phủ sáng Được sử dụng chủ yếu cho các khu công nghiệp, các xí nghiệp sản xuất hàng hoá trên băng chuyền Loại máy quét này cũng có thể được bố trí trong kho như hình bên phải Khi đó mỗi 1 kiện hàng được mang ra đều phải qua vùng phủ sáng của máy quét và do đó thông tin trên kiện hàng được ghi nhận Được sử dụng trong vận chuyển, giao nhận hàng
Dạng kéo thẻ (Barcode Slot Reader):
Dạng kéo thẻ barcode cùng với thẻ từ và thẻ thông minh được ứng dụng trong công nghệ nhận dạng tự động như hệ thống Access Control dùng để mở cửa, hệ thống Time Attendence dùng để chấm công, quản lý nhân sự Sự khác nhau giữa 1 máy barcode slot reader và 1 máy quét barcode thông thường là ở chỗ khi kéo thẻ barcode,
mã số được đưa vào máy đọc sẽ tác động 1 hiệu ứng điện và cơ học để làm mở cửa,
mở khoá (Access Control), hoặc mã số được đưa vào 1 phần mềm quản lý nhân sự nhằm mục đích chấm công, quản lý nhân viên
Hình 2.11 - Máy kéo thẻ barcode
Tóm lạ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 Chi phí đầu tư cho mỗi ứng dụng không cao lắm, nhưng làm sao để cho các doanh nghiệp thấy được tầm quan trọng và lợi ích của công nghệ barcode để có thể mạnh dạn đầu tư vào là một vấn đề mà cho tới nay chúng ta vẫn chưa giải quyết được Một số công ty đã ứng dụng được công nghệ barcode trong quản lý và trong thủ tục hành chánh nhưng chỉ là tự phát và con số đó rất thấp nếu so với số lượng các công ty lẽ ra nên ứng dụng các công nghệ tiên tiến tại